/*
Theme Name:   Salient Child (Novos)
Theme URI:    https://dailymindmedicine.tv
Description:  Child theme of Salient. Novos palette, the Daily Mind Medicine page
              styling, and the logo files.
Author:       Novos Network
Template:     salient
Version:      5.7.0
*/

/* ==========================================================================
   HOW THIS TARGETS THINGS

   Salient replaces WPBakery's row implementation and silently discards
   el_class, el_id and css= on [vc_row]. Classes on COLUMNS and TEXT BLOCKS do
   survive. So every section is one column carrying its class, and the row
   behind it is reached with :has().

   Salient's DOM:  .wpb_row > .row_col_wrap_N > .vc_col-sm-N.dmm-x
   ========================================================================== */

:root{
  --nv-accent:#81C3CF;
  --nv-accent-deep:#5FA7B5;
  --nv-ink:#2C2C2A;
  --nv-body:#5F5E5A;
  --nv-muted:#888780;
  --nv-bone:#F7F6F3;
  --nv-bone-2:#ECEAE4;
  --nv-line:#E0DDD6;
  --nv-dark:#1A1A19;
}

/* ---------- section backgrounds + rhythm (row reached via its column) ----- */

/* ---------- full bleed ----------------------------------------------------
   Measured live: Salient sets width:100% on rows, so negative margins moved a
   row left without widening it (the page appeared shifted with white on the
   right). So the row is left exactly where Salient puts it, which also keeps
   the content aligned with the header logo, and only the BACKGROUND is
   stretched, via a ::before pinned to the viewport. */
.wpb_row:has(.dmm-sec){
  position:relative;
  background:transparent !important;
  overflow:visible !important;
  width:auto !important; max-width:none !important;
  margin-left:0 !important; margin-right:0 !important;
  padding-left:0 !important; padding-right:0 !important;
}
.wpb_row:has(.dmm-sec)::before{
  content:""; display:block !important; position:absolute;
  top:0; bottom:0; left:calc(50% - 50vw); width:100vw;
  z-index:0; pointer-events:none;
}
.wpb_row:has(.dmm-sec) > [class*="row_col_wrap"]{ position:relative; z-index:2; }
body{ overflow-x:clip; }

/* section backgrounds paint on the stretched backdrop; padding stays on the row */
.wpb_row:has(.dmm-hero)::before  { background-color:var(--nv-dark); }
.wpb_row:has(.dmm-listen)::before{ background-color:var(--nv-bone); }
.wpb_row:has(.dmm-ways)::before  { background-color:#fff; }
.wpb_row:has(.dmm-about)::before { background-color:var(--nv-bone); }
.wpb_row:has(.dmm-band)::before  { background-color:var(--nv-dark); }
.wpb_row:has(.dmm-kairos)::before{ background-color:#fff; }
.wpb_row:has(.dmm-optin)::before { background-color:var(--nv-bone); }

.wpb_row:has(.dmm-hero)  { padding:100px 0 120px !important; }
.wpb_row:has(.dmm-listen){ padding:36px 0 80px !important; }
.wpb_row:has(.dmm-ways)  { padding:88px 0 !important; }
.wpb_row:has(.dmm-about) { padding:80px 0 !important; }
.wpb_row:has(.dmm-band)  { padding:88px 0 !important; }
.wpb_row:has(.dmm-kairos){ padding:70px 0 !important; }
.wpb_row:has(.dmm-optin) { padding:80px 0 !important; }

/* ---------- atmosphere on the dark sections ------------------------------ */
/* display:block is load-bearing. Salient uses a clearfix that sets
   `display:table` on .wpb_row::before and ::after, which collapses an
   absolutely positioned pseudo-element to width:0. Measured on the live page:
   without this line the gradient layer computed to 0px x 0px and the diagonal
   to 0px wide, so neither ever painted. */
/* Sized in vw/vh, not px. The rows are full-bleed now, so fixed pixel glows
   shrink to nothing on a wide monitor: measured at 1860px they covered 48% of
   the width where the comp covered 70%. These values reproduce the comp's
   proportions at any window size. */
.wpb_row:has(.dmm-hero)::before{
  background-image:
    radial-gradient(70vw 60vh at 22% 8%, rgba(129,195,207,.20), transparent 62%),
    radial-gradient(59vw 55vh at 82% 88%, rgba(129,195,207,.12), transparent 60%),
    linear-gradient(168deg, rgba(255,255,255,.06) 0%, transparent 45%, rgba(0,0,0,.30) 100%);
}
.wpb_row:has(.dmm-band)::before{
  background-image:radial-gradient(59vw 45vh at 50% 0%, rgba(129,195,207,.20), transparent 66%);
}
/* angled divider under the hero. Match --nv-next to the Listen background. */
/* Same reasoning: a fixed 88px slope across a 1860px row is 2.7 degrees, which
   reads as flat. 6.9vw holds the comp's 3.9 degree angle at any width. */
.wpb_row:has(.dmm-hero)::after{
  content:""; display:block !important; position:absolute; left:0; right:0; bottom:-1px;
  height:clamp(34px, 3.4vw, 90px);
  background:var(--nv-bone); clip-path:polygon(0 100%,100% 0,100% 100%);
  z-index:1; pointer-events:none;
}


/* ---------- typography --------------------------------------------------- */
.dmm-sec h1,.dmm-sec h2,.dmm-sec h3{ color:var(--nv-ink); }
.dmm-sec h1 em,.dmm-sec h2 em,.dmm-sec h3 em{
  font-style:italic; font-weight:400; color:var(--nv-accent);
}
.dmm-hero h1{ font-size:clamp(26px,3.4vw,40px); line-height:1.15; margin:0 auto 16px; max-width:20ch; }
.dmm-sec h2{ font-size:clamp(27px,3.6vw,38px); line-height:1.2; margin-bottom:14px; }
.dmm-sec h3{ font-size:22px; margin-bottom:12px; }
.dmm-center,.dmm-center p,.dmm-center h1,.dmm-center h2,.dmm-center h3{ text-align:center; }
.dmm-lede p{ font-size:clamp(15px,1.5vw,17px); line-height:1.65; max-width:50ch; margin:0 auto 4px; }

.dmm-eyebrow,.dmm-eyebrow p{
  font-size:12px !important; font-weight:500; letter-spacing:.18em;
  text-transform:uppercase; color:var(--nv-muted); margin-bottom:14px !important;
}

/* light text on the dark sections */
.dmm-hero h1,.dmm-band h2{ color:#fff; }
.dmm-hero .wpb_text_column p,.dmm-band .wpb_text_column p{ color:rgba(255,255,255,.78); }
.dmm-hero .dmm-eyebrow p,.dmm-band .dmm-eyebrow p{ color:rgba(255,255,255,.55) !important; }

/* ---------- buttons (plain links; Salient removes vc_btn) ---------------- */
.dmm-btns{ margin:22px 0 0; }
.dmm-btns.center{ text-align:center; }
a.dmm-btn{
  display:inline-flex; align-items:center; justify-content:center;
  font:600 13px/1 Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase;
  padding:17px 34px; border-radius:80px; text-decoration:none;
  border:1px solid transparent; margin:6px 5px; transition:.22s ease;
  background:var(--nv-accent); color:#fff !important;
}
a.dmm-btn:hover{ background:var(--nv-accent-deep); color:#fff !important; }
a.dmm-btn.ghost-light{ background:transparent; color:#fff !important; border-color:rgba(255,255,255,.42); }
a.dmm-btn.ghost-light:hover{ background:#fff; color:var(--nv-dark) !important; border-color:#fff; }
a.dmm-btn.ghost-dark{ background:transparent; color:var(--nv-ink) !important; border-color:#C9C6BC; }
a.dmm-btn.ghost-dark:hover{ background:var(--nv-ink); color:#fff !important; }

/* ---------- the mark ------------------------------------------------------
   Salient removes vc_single_image, and its own rules on images inside content
   columns outrank a bare `img.class` selector (they are scoped under
   #ajax-content-wrap, so they carry ID specificity). The wrapper owns the
   width and the img is forced to fill it. ------------------------------------ */
.dmm-markwrap{ max-width:180px; margin:0 auto 30px; }
.dmm-markwrap.lg{ max-width:280px; margin:0 auto; }
.dmm-markwrap img{
  display:block !important; width:100% !important; max-width:100% !important;
  height:auto !important; margin:0 !important;
}

/* ---------- cards -------------------------------------------------------- */
.dmm-card > .vc_column-inner{
  background:#fff; border:1px solid var(--nv-line); border-radius:18px;
  padding:38px 34px !important; height:100%;
}
.dmm-card--feature > .vc_column-inner{
  border-color:var(--nv-accent); box-shadow:0 20px 54px -30px rgba(95,167,181,.7);
}
.dmm-card{ position:relative; }
.dmm-tag{
  position:absolute; top:-11px; left:34px; z-index:3;
  background:var(--nv-accent); color:#fff; font:600 10px Inter,sans-serif;
  letter-spacing:.15em; text-transform:uppercase; padding:5px 14px; border-radius:80px;
}
.dmm-card ul{ list-style:none; padding:0; margin:0 0 6px; }
.dmm-card li{
  font-size:14px; padding:8px 0 8px 24px; position:relative;
  border-top:1px solid var(--nv-bone-2); color:var(--nv-body);
}
.dmm-card li:first-child{ border-top:0; }
.dmm-card li::before{
  content:""; position:absolute; left:2px; top:15px; width:7px; height:7px;
  border-radius:50%; background:var(--nv-accent);
}

/* ---------- soft panel (Kairos) ------------------------------------------ */
.dmm-panel > .vc_column-inner{
  background:var(--nv-bone-2); border:1px solid var(--nv-line);
  border-radius:18px; padding:42px !important;
}

/* ---------- hero stat strip ---------------------------------------------- */
.dmm-stats{
  display:flex; justify-content:center; flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.12); padding-top:24px; margin-top:30px;
}
.dmm-stats span{
  font-size:12px; letter-spacing:.13em; text-transform:uppercase;
  color:rgba(255,255,255,.55); padding:0 20px;
}
.dmm-stats span + span{ border-left:1px solid rgba(255,255,255,.16); }

/* ---------- fact strip --------------------------------------------------- */
.dmm-facts{ display:flex; gap:34px; flex-wrap:wrap; margin-top:26px; padding-top:22px; border-top:1px solid var(--nv-line); }
.dmm-facts dt{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--nv-muted); margin-bottom:4px; }
.dmm-facts dd{ margin:0; font-family:"Libre Baskerville",Georgia,serif; font-size:19px; color:var(--nv-ink); font-weight:700; }

/* ---------- podcast app pills -------------------------------------------- */
.dmm-platforms{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.dmm-platforms a{
  font:500 12px Inter,sans-serif; letter-spacing:.06em; text-transform:uppercase;
  color:var(--nv-ink); text-decoration:none; background:#fff;
  border:1px solid #D3D1C7; border-radius:80px; padding:10px 20px; transition:.2s;
}
.dmm-platforms a:hover{ border-color:var(--nv-ink); background:var(--nv-bone-2); }

/* ---------- player ------------------------------------------------------- */
.dmm-player iframe{ display:block; width:100%; height:600px; border:0; border-radius:12px; }


@media(max-width:768px){
  .wpb_row:has(.dmm-hero)::after{ height:34px !important; }
  .dmm-stats span{ padding:6px 14px; }
  .dmm-stats span + span{ border-left:0; }
  .dmm-player iframe{ height:480px; }
  .dmm-card > .vc_column-inner,.dmm-panel > .vc_column-inner{ padding:28px 24px !important; }
  .dmm-optin .gform_fields{ grid-template-columns:1fr; }
  .dmm-facts{ gap:22px; }
}

/* ==========================================================================
   HEADER
   Verified against the live page on 2026-08-26 by injecting this CSS into
   dailymindmedicine.tv and inspecting the result. Measured facts:
     * #header-outer is position:fixed, 78px tall, background white, no inline
       style and no classes (none added on scroll either, so one rule holds).
     * #logo is an <a class="no-image"> containing text, not an image.
     * The nav is ul.sf-menu inside #top nav.
     * Menu items are custom links, so WordPress never adds current-menu-item.
       The active underline is therefore matched on the href instead.
   ========================================================================== */

/* Transparent while the hero is behind it, solid dark once you scroll past.
   Fully transparent everywhere would be unreadable over the bone feed section,
   so a small script adds .nv-solid past 60px. */
#header-outer,
#header-outer .container{ background:transparent !important; }
#header-outer{
  box-shadow:none !important; border-bottom:0 !important;
  transition:background .25s ease, border-color .25s ease;
}
#header-outer.nv-solid,
#header-outer.nv-solid .container{ background:#1A1A19 !important; }
#header-outer.nv-solid{ border-bottom:1px solid rgba(255,255,255,.08) !important; }

/* the hero sits directly under the fixed header, so close the gap it reserves */
#header-space{ height:0 !important; }

/* logo: replace the text with the Novos wordmark */
/* Dane: DMM mark in the corner instead of the Novos wordmark, much smaller. */
#header-outer #logo{
  display:block !important; width:40px !important; height:40px !important;
  background:url("assets/dmm-mark-white.png") center / contain no-repeat !important;
  font-size:0 !important; text-indent:-9999px; overflow:hidden; white-space:nowrap;
}

/* nav links */
#header-outer #top nav > ul > li > a{
  font-family:Inter,sans-serif !important; font-size:12px !important; font-weight:500 !important;
  letter-spacing:.13em !important; text-transform:uppercase !important;
  color:rgba(255,255,255,.72) !important; opacity:1 !important;
}
#header-outer #top nav > ul > li > a:hover{ color:#fff !important; }
/* kill Salient's own underline animation so ours is the only one */
#header-outer #top nav > ul > li > a .menu-title-text:after{ display:none !important; }

/* current page. Matched on href because these are custom links and WordPress
   never flags them as current. Uses box-shadow so it sits tight under the text. */
#header-outer #top nav a[href*="daily-mind-medicine"]{
  color:#fff !important; box-shadow:inset 0 -1px 0 0 var(--nv-accent);
}

/* the Join Free pill. Give this menu item the CSS class  nv-cta  in
   Appearance -> Menus (enable "CSS Classes" under Screen Options first). */
#header-outer #top nav > ul > li.nv-cta{ margin-left:14px; display:flex; align-items:center; }
#header-outer #top nav > ul > li.nv-cta > a{
  background:var(--nv-accent) !important; color:#fff !important;
  border-radius:80px !important; padding:11px 22px !important;
  line-height:1 !important; letter-spacing:.08em !important; box-shadow:none !important;
}
#header-outer #top nav > ul > li.nv-cta > a:hover{ background:var(--nv-accent-deep) !important; }

/* desktop only: drop the search icon and the hamburger.
   Left alone below 1000px, where Salient needs the hamburger for mobile nav. */
@media(min-width:1000px){
  #header-outer #search-btn,
  #header-outer .slide-out-widget-area-toggle{ display:none !important; }
}

/* ==========================================================================
   JOIN MODAL
   Any link with class .dmm-open opens it. Markup lives in the page content so
   the Gravity Forms shortcode runs; behaviour is in functions.php.
   ========================================================================== */
.dmm-modal-holder{ margin:0 !important; }
.dmm-modal{
  position:fixed; inset:0; z-index:99999; display:none;
  align-items:center; justify-content:center; padding:24px;
}
.dmm-modal.is-open{ display:flex; }
.dmm-modal__scrim{ position:absolute; inset:0; background:rgba(8,8,8,.74); }
.dmm-modal__panel{
  position:relative; width:100%; max-width:440px; max-height:88vh; overflow:auto;
  background:#fff; border-radius:18px; padding:36px 32px 32px;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.65);
}
.dmm-modal__panel h3{ font-size:24px; margin:0 0 10px; color:var(--nv-ink); }
.dmm-modal__panel > p{ font-size:15px; color:var(--nv-body); margin:0 0 18px; }
.dmm-modal__close{
  position:absolute; top:10px; right:14px; background:none; border:0;
  font-size:28px; line-height:1; color:var(--nv-muted); cursor:pointer; padding:4px 8px;
}
.dmm-modal__close:hover{ color:var(--nv-ink); }

@media(max-width:600px){
  .dmm-modal__panel{ padding:30px 22px 26px; }
}

/* ==========================================================================
   SPLIT HERO  (.dmm-split)
   Mirrors the original site: copy on the left, feed on the right.
   DOM order is copy -> player -> callout, which is the mobile order.
   Desktop uses grid placement so the callout sits under the copy while the
   player spans both rows on the right.
   Salient's inner-row wrapper is .row_col_wrap_12_inner, matched loosely
   because the numeric suffix varies.
   ========================================================================== */
.dmm-split .inner_row > [class*="row_col_wrap"]{
  display:grid !important;
  grid-template-columns:1.02fr 1fr;
  gap:26px 46px;
  align-items:start;
  width:100%;
}
.dmm-split .dmm-hcopy  { grid-column:1; grid-row:1; }
.dmm-split .dmm-hcta   { grid-column:1; grid-row:2; }
.dmm-split .dmm-hplayer{ grid-column:2; grid-row:1 / span 2; align-self:stretch; }
/* the feed matches the bottom of the join callout on the left */
.dmm-split .dmm-hplayer,
.dmm-split .dmm-hplayer .vc_column-inner,
.dmm-split .dmm-hplayer .wpb_wrapper,
.dmm-split .dmm-hplayer .wpb_raw_code,
.dmm-split .dmm-hplayer .dmm-player{ height:100% !important; }
.dmm-split .dmm-hplayer .wpb_raw_code{ margin-bottom:0 !important; }
/* the grid owns the widths; neutralise Salient's column widths */
.dmm-split .dmm-hcopy,
.dmm-split .dmm-hcta,
.dmm-split .dmm-hplayer{ width:auto !important; max-width:none !important; float:none !important; }

/* left-aligned copy, like the original site */
.dmm-left,.dmm-left p,.dmm-left h1{ text-align:left !important; }
.dmm-split .dmm-hcopy h1{
  font-size:clamp(30px,3.6vw,50px); line-height:1.1; margin:0 0 16px; max-width:none;
}
.dmm-split .dmm-hcopy .dmm-lede p{ margin:0 0 26px; max-width:44ch; }
.dmm-split .dmm-platforms{ justify-content:flex-start; }
/* pills sit on a dark ground here */
.dmm-split .dmm-platforms a{
  background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.22); color:#fff;
}
.dmm-split .dmm-platforms a:hover{ background:rgba(255,255,255,.14); border-color:#fff; }
.dmm-split .dmm-player iframe{ height:100% !important; min-height:480px; }

/* the join callout */
.dmm-callout{
  border:1px solid rgba(255,255,255,.16); border-radius:16px;
  background:rgba(255,255,255,.04); padding:24px 26px 26px; margin-top:4px;
}
.dmm-callout__eyebrow{
  font:500 11px Inter,sans-serif !important; letter-spacing:.18em;
  text-transform:uppercase; color:var(--nv-accent) !important; margin:0 0 8px !important;
}
.dmm-callout h3{ color:#fff !important; font-size:21px; margin:0 0 8px; }
.dmm-callout p{ color:rgba(255,255,255,.72) !important; font-size:14px; margin:0 0 26px; }
.dmm-callout .dmm-btn{ margin:0; }

/* the split hero has no angled divider: the feed sits inside it */
.wpb_row:has(.dmm-split)::after{ display:none !important; }
.wpb_row:has(.dmm-split){ padding:104px 0 64px !important; }

@media(max-width:1000px){
  .dmm-split .inner_row > [class*="row_col_wrap"]{
    grid-template-columns:1fr; gap:26px;
  }
  /* copy, then the player, then the join callout — Phil's mobile order */
  .dmm-split .dmm-hcopy  { grid-column:1; grid-row:1; }
  .dmm-split .dmm-hplayer{ grid-column:1; grid-row:2; }
  .dmm-split .dmm-hcta   { grid-column:1; grid-row:3; }
  .dmm-split .dmm-player iframe{ height:430px !important; min-height:0; }
  .wpb_row:has(.dmm-split){ padding:96px 0 48px !important; }
}

/* phones: tighten the copy block so the feed sits higher */
@media(max-width:600px){
  .dmm-split .dmm-hcopy h1{ font-size:clamp(26px,7.2vw,34px); margin-bottom:12px; }
  .dmm-split .dmm-hcopy .dmm-lede p{ margin-bottom:18px; font-size:15px; }
  .dmm-split .dmm-platforms{ gap:7px; }
  .dmm-split .dmm-platforms a{ font-size:11px; padding:8px 14px; letter-spacing:.04em; }
  .dmm-split .dmm-hcopy .dmm-eyebrow{ margin-bottom:8px !important; }
  .dmm-callout{ padding:20px 20px 22px; }
}

/* ==========================================================================
   GRAVITY FORMS  (Orbital theme framework)
   Read off the live page: the form ships as
     .gform_wrapper.gform-theme.gform-theme--foundation
                   .gform-theme--framework.gform-theme--orbital
   Orbital is driven by CSS custom properties and lays fields out on its own
   12-column grid, using .gfield--width-half / --width-full. So:
     * recolour it through its variables rather than fighting specificity
     * do NOT replace its grid. An earlier 2-column override collapsed the
       spans and stacked every field full width.
   The submit button does not read the button variables, so it is stated
   outright.
   ========================================================================== */
.dmm-modal .gform_wrapper.gform-theme,
.dmm-optin .gform_wrapper.gform-theme{
  --gform-theme-color-primary:#81C3CF;
  --gform-theme-color-primary-rgb:129,195,207;
  --gform-theme-color-primary-contrast:#fff;
  --gform-theme-color-primary-darker:#5FA7B5;
  --gform-theme-color-primary-shade:#5FA7B5;
  --gform-theme-color-primary-lighter:#A5D5DE;
  --gform-theme-control-border-radius:10px;
  --gform-theme-border-radius:10px;
  --gform-theme-control-border-color:#D3D1C7;
  --gform-theme-control-border-color-hover:#B4B2A9;
  --gform-theme-control-border-color-focus:#81C3CF;
  --gform-theme-control-padding-inline:18px;
  --gform-theme-control-label-color-primary:#2C2C2A;
}

/* keep Orbital's own grid, just tighten the gaps */
.dmm-modal .gform_wrapper .gform_fields,
.dmm-optin .gform_wrapper .gform_fields{
  column-gap:10px !important; row-gap:10px !important;
}

/* the Novos pill submit */
.dmm-modal .gform_wrapper .gform_footer input[type=submit],
.dmm-modal .gform_wrapper .gform_footer button[type=submit],
.dmm-modal .gform_wrapper .gform_button,
.dmm-optin .gform_wrapper .gform_footer input[type=submit],
.dmm-optin .gform_wrapper .gform_button{
  width:100% !important; background:var(--nv-accent) !important; color:#fff !important;
  border:0 !important; border-radius:80px !important; padding:17px 24px !important;
  font:600 13px Inter,sans-serif !important; letter-spacing:.08em !important;
  text-transform:uppercase !important; cursor:pointer !important; box-shadow:none !important;
}
.dmm-modal .gform_wrapper .gform_button:hover,
.dmm-optin .gform_wrapper .gform_button:hover{ background:var(--nv-accent-deep) !important; }

.dmm-modal .gform_wrapper .gform_footer,
.dmm-optin .gform_wrapper .gform_footer{ margin:14px 0 0 !important; padding:0 !important; }
.dmm-modal .gform_wrapper{ margin:0; }
.dmm-modal .gform_confirmation_message,
.dmm-optin .gform_confirmation_message{
  font-family:"Libre Baskerville",Georgia,serif; font-size:16px; color:var(--nv-ink); padding:14px 0;
}

/* ==========================================================================
   MODAL POLISH
   Measured on the live modal: wpautop wraps the close button in its own <p>
   and can leave an empty one, which was adding ~40px above the eyebrow. The
   Orbital inputs are sized by line-height, not padding, so height is set
   directly. The "indicates required fields" legend is hidden visually but
   left readable by screen readers, since every field already carries an
   asterisk.
   ========================================================================== */
.dmm-modal__panel{ padding:26px 30px 30px !important; }
.dmm-modal__panel > p:first-child{ margin:0 !important; padding:0 !important; height:0 !important; }
.dmm-modal__panel > p:empty{ display:none !important; }
.dmm-modal__panel > p{ padding-bottom:0 !important; }
.dmm-modal__panel .dmm-eyebrow{ padding-bottom:0 !important; margin-bottom:10px !important; }
.dmm-modal__panel h3{ margin-bottom:6px !important; }
.dmm-modal__panel > p:not(.dmm-eyebrow){ margin-bottom:20px !important; }

.dmm-modal .gform_required_legend{
  position:absolute !important; width:1px !important; height:1px !important;
  overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important;
}

/* roomier fields */
.dmm-modal .gform_wrapper .gform_fields,
.dmm-optin .gform_wrapper .gform_fields{ row-gap:12px !important; }
.dmm-modal .gform_wrapper input[type=text],
.dmm-modal .gform_wrapper input[type=email],
.dmm-optin .gform_wrapper input[type=text],
.dmm-optin .gform_wrapper input[type=email]{
  height:52px !important; line-height:52px !important;
}

/* ==========================================================================
   THE WHITE BAR ABOVE THE FOOTER
   Not the modal. Measured on the live page, every element in the modal's
   chain is height:0 and transparent. The bar is Salient's own page wrapper:
       .container-wrap { background:#fff; padding:0 0 40px }
   Scoped with :has() so only pages built from these sections are affected;
   the rest of the site keeps Salient's default.
   ========================================================================== */
.container-wrap:has(.dmm-sec){
  padding-bottom:0 !important;
  background:var(--nv-dark) !important;
}
