/* Twin Pick Rack — site stylesheet */

:root{
  --ink:#132A46;
  --ink-2:#1C3D62;
  --paper:#F5F7FA;
  --paper-dim:#E9EEF3;
  --line:#D8E0E9;
  --line-dark:#2A4A72;
  --steel:#57647A;
  --steel-light:#8996AC;
  --signal:#2ECB8E;
  --signal-dark:#1E9E6E;
  --teal:#1B7A8C;
  --teal-dark:#125A68;
  --white:#FFFFFF;

  --font-head:"Space Grotesk", sans-serif;
  --font-body:"Inter", sans-serif;

  --container:1200px;
  --radius:2px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:var(--teal-dark); text-decoration:none; }
a:hover{ color:var(--signal-dark); }
ul{ margin:0; padding:0; }
h1,h2,h3,h4,h5{
  font-family:var(--font-head);
  font-weight:600;
  line-height:1.15;
  margin:0 0 .5em;
  color:var(--ink);
  letter-spacing:-.01em;
}
h1{ font-size:clamp(2.1rem,4.4vw,3.4rem); font-weight:700; }
h2{ font-size:clamp(1.6rem,3vw,2.35rem); }
h3{ font-size:1.3rem; }
p{ margin:0 0 1em; color:var(--steel); }
p.lead{ font-size:1.15rem; color:var(--ink-2); }
.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--ink); color:#fff;
  padding:12px 18px; z-index:999;
}
.skip-link:focus{ left:12px; top:12px; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-body); font-weight:600; font-size:.92rem;
  letter-spacing:.01em;
  padding:13px 24px; border-radius:var(--radius);
  border:1.5px solid transparent; cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.btn svg{ width:14px; height:14px; flex:none; transition:transform .15s ease; }
.btn:hover svg{ transform:translateX(3px); }
.btn-signal{ background:var(--signal); color:var(--ink); border-color:var(--signal); }
.btn-signal:hover{ background:var(--signal-dark); border-color:var(--signal-dark); color:var(--ink); }
.btn-outline-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.btn-outline-light:hover{ background:#fff; border-color:#fff; color:var(--ink); }
.btn-outline-dark{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn-outline-dark:hover{ background:var(--ink); color:#fff; }
.btn-ghost-teal{ background:transparent; color:var(--teal-dark); border-color:var(--teal-dark); }
.btn-ghost-teal:hover{ background:var(--teal-dark); color:#fff; }
.btn-block{ width:100%; justify-content:center; }

/* ---------- topbar ---------- */
.topbar{ background:var(--ink); border-bottom:1px solid var(--line-dark); }
.topbar .container{ display:flex; justify-content:flex-end; align-items:center; padding-top:8px; padding-bottom:8px; gap:22px; }
.topbar a{ color:#D9DCE0; font-size:.82rem; font-weight:500; display:inline-flex; align-items:center; gap:7px; }
.topbar a:hover{ color:var(--signal); }
.topbar svg{ width:14px; height:14px; color:var(--signal); }

/* ---------- header / nav ---------- */
.site-header{ position:sticky; top:0; z-index:80; background:var(--ink); }
.nav-row{ display:flex; align-items:center; justify-content:space-between; padding:14px 0; }
.brand{ display:inline-flex; align-items:center; }
.brand img{ height:48px; width:auto; display:block; }
.nav-list{ display:flex; align-items:center; gap:6px; list-style:none; }
.nav-list > li{ position:relative; }
.nav-list > li > a{
  color:#EDEEEF; font-family:var(--font-head); font-weight:500; font-size:.95rem;
  padding:10px 16px; display:inline-block; letter-spacing:.01em;
}
.nav-list > li > a:hover{ color:var(--signal); }
.nav-caret{ display:inline-block; margin-left:5px; width:8px; height:8px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-3px) rotate(45deg); }
.dropdown{
  list-style:none; position:absolute; left:8px; top:100%; margin-top:2px;
  background:var(--ink-2); min-width:230px; border:1px solid var(--line-dark);
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .15s ease, transform .15s ease, visibility .15s;
  box-shadow:0 18px 34px rgba(0,0,0,.35);
}
.nav-list > li:hover > .dropdown,
.nav-list > li:focus-within > .dropdown{ opacity:1; visibility:visible; transform:translateY(0); }
.dropdown a{ display:block; padding:11px 18px; color:#D9DCE0; font-size:.88rem; border-top:1px solid rgba(255,255,255,.06); }
.dropdown li:first-child a{ border-top:none; }
.dropdown a:hover{ background:var(--ink); color:var(--signal); }
.dropdown li.has-sub{ position:relative; }
.dropdown li.has-sub > a{ display:flex; align-items:center; justify-content:space-between; gap:14px; }
.dropdown-caret{ display:inline-block; flex:none; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(-45deg); opacity:.7; }
.dropdown-sub{
  list-style:none; position:absolute; left:100%; top:-1px; margin-left:2px;
  background:var(--ink-2); min-width:250px; max-height:min(70vh,520px); overflow-y:auto;
  border:1px solid var(--line-dark);
  opacity:0; visibility:hidden; transform:translateX(6px);
  transition:opacity .15s ease, transform .15s ease, visibility .15s;
  box-shadow:0 18px 34px rgba(0,0,0,.35);
}
.dropdown li.has-sub:hover > .dropdown-sub,
.dropdown li.has-sub:focus-within > .dropdown-sub{ opacity:1; visibility:visible; transform:translateX(0); }
.dropdown-sub a{ display:block; padding:10px 16px; color:#D9DCE0; font-size:.82rem; border-top:1px solid rgba(255,255,255,.06); white-space:nowrap; }
.dropdown-sub li:first-child a{ border-top:none; }
.dropdown-sub a:hover{ background:var(--ink); color:var(--signal); }
.nav-toggle{
  display:none; background:transparent; border:1px solid var(--line-dark); border-radius:var(--radius);
  width:44px; height:40px; padding:0; cursor:pointer; align-items:center; justify-content:center;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:20px; height:2px; background:#fff; position:relative; transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle span::before{ position:absolute; top:-6px; }
.nav-toggle span::after{ position:absolute; top:6px; }
.nav-toggle.open span{ background:transparent; }
.nav-toggle.open span::before{ transform:translateY(6px) rotate(45deg); }
.nav-toggle.open span::after{ transform:translateY(-6px) rotate(-45deg); }

/* ---------- hero (home, crossfade) ---------- */
.hero{ position:relative; min-height:640px; display:flex; align-items:center; overflow:hidden; background:var(--ink); }
.hero-slide{
  position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .9s ease;
  background-size:cover; background-position:center;
}
.hero-slide.is-active{ opacity:1; visibility:visible; z-index:1; }
.hero-slide::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(19,42,70,.94) 8%, rgba(19,42,70,.72) 42%, rgba(19,42,70,.35) 78%);
}
.hero-inner{ position:relative; z-index:2; padding:120px 0 90px; }
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:10px; text-transform:uppercase; letter-spacing:.14em;
  font-size:.78rem; font-weight:600; color:var(--signal); margin-bottom:18px;
}
.hero-eyebrow::before{ content:""; width:26px; height:2px; background:var(--signal); }
.hero-slide-content{ max-width:640px; opacity:0; transform:translateY(14px); transition:opacity .6s ease .15s, transform .6s ease .15s; }
.hero-slide.is-active .hero-slide-content{ opacity:1; transform:translateY(0); }
.hero h1{ color:#fff; margin-bottom:18px; }
.hero p{ color:#DADDE1; font-size:1.12rem; max-width:540px; }
.hero-actions{ margin-top:28px; display:flex; gap:14px; flex-wrap:wrap; }
.hero-dots{ position:absolute; z-index:3; left:24px; bottom:28px; display:flex; gap:10px; }
@media(min-width:992px){ .hero-dots{ left:calc((100vw - var(--container))/2 + 24px); } }
.hero-dot{ width:34px; height:3px; background:rgba(255,255,255,.3); border:none; cursor:pointer; padding:0; }
.hero-dot.is-active{ background:var(--signal); }

/* ---------- subpage hero ---------- */
.page-hero{ position:relative; padding:150px 0 88px; background:var(--ink); overflow:hidden; }
.page-hero-bg{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:.28; }
.page-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(19,42,70,.55), rgba(19,42,70,.96)); }
.page-hero-content{ position:relative; z-index:2; max-width:760px; }
.page-hero h1{ color:#fff; margin-bottom:16px; }
.page-hero p{ color:#DADDE1; font-size:1.1rem; }
.page-hero .hero-actions{ margin-top:26px; }

/* small legal hero */
.page-hero.page-hero-sm{ padding:130px 0 60px; }

/* ---------- section kicker ---------- */
.kicker{
  display:inline-flex; align-items:center; gap:9px; text-transform:uppercase; letter-spacing:.14em;
  font-size:.76rem; font-weight:700; color:var(--teal-dark); margin-bottom:14px;
}
.kicker::before{ content:""; width:8px; height:8px; background:var(--signal); }
.kicker-light{ color:var(--signal); }

section{ padding:76px 0; }
.section-tight{ padding:56px 0; }
.section-dim{ background:var(--paper-dim); }
.section-ink{ background:var(--ink); color:#fff; }
.section-ink h2, .section-ink h3, .section-ink h4{ color:#fff; }
.section-ink p{ color:#C9CCD1; }
.text-center{ text-align:center; }

/* ---------- grid utilities ---------- */
.grid{ display:grid; gap:32px; }
.grid-2{ grid-template-columns:1fr; }
.grid-3{ grid-template-columns:1fr; }
.grid-6{ grid-template-columns:repeat(2,1fr); }
@media(min-width:700px){
  .grid-2{ grid-template-columns:1fr 1fr; }
  .grid-3{ grid-template-columns:repeat(3,1fr); }
}
@media(min-width:900px){
  .grid-6{ grid-template-columns:repeat(3,1fr); }
}

/* ---------- home: intro strip ---------- */
.intro-strip{ max-width:760px; }

/* ---------- service cards (home) ---------- */
.service-card{
  display:block; background:var(--white); border:1px solid var(--line); padding:34px 28px;
  border-left:3px solid var(--line); transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;
  height:100%;
}
.service-card:hover{ border-left-color:var(--signal); transform:translateY(-4px); box-shadow:0 20px 40px rgba(19,42,70,.12); }
.service-card .service-icon{ width:46px; height:46px; margin-bottom:20px; color:var(--teal-dark); }
.service-card h3{ font-size:1.1rem; margin-bottom:10px; }
.service-card h3 a{ color:var(--ink); }
.service-card p{ font-size:.94rem; margin-bottom:14px; }
.service-card .service-partners{ display:block; font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; color:var(--steel-light); font-weight:600; }
.service-card .service-more{ display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-weight:600; font-size:.86rem; color:var(--teal-dark); }
.service-card .service-more svg{ width:12px; height:12px; transition:transform .15s ease; }
.service-card:hover .service-more svg{ transform:translateX(4px); }

/* ---------- values ---------- */
.values-media{ position:relative; }
.values-media img{ width:100%; height:100%; object-fit:cover; }
.values-list{ list-style:none; }
.values-list li{ display:flex; gap:16px; padding:18px 0; border-top:1px solid var(--line); }
.values-list li:first-child{ border-top:none; }
.values-num{ font-family:var(--font-head); font-weight:700; font-size:1.4rem; color:var(--signal-dark); flex:none; width:34px; }
.values-list h4{ margin-bottom:4px; font-size:1.05rem; }
.values-list p{ margin:0; font-size:.92rem; }

/* ---------- how-we-work: icon stepper ---------- */
.work-process-head{ max-width:640px; margin-bottom:52px; }
.work-process-head p{ margin:0; }
.work-steps{ display:grid; gap:44px; position:relative; }
@media(min-width:800px){
  .work-steps{ grid-template-columns:repeat(3,1fr); }
  .work-steps::before{
    content:""; position:absolute; top:28px; left:calc(100%/6); right:calc(100%/6);
    height:1px; background:rgba(255,255,255,.16); z-index:0;
  }
}
.work-step{ position:relative; z-index:1; }
.work-step-icon{
  width:56px; height:56px; border-radius:50%; background:var(--ink); border:1.5px solid var(--signal);
  display:flex; align-items:center; justify-content:center; color:var(--signal); margin-bottom:22px;
}
.work-step-icon svg{ width:24px; height:24px; }
.work-step-tag{ display:block; text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; font-weight:700; color:var(--signal); margin-bottom:8px; }
.work-step h4{ color:#fff; margin-bottom:8px; }
.work-step p{ font-size:.94rem; margin:0; }

/* ---------- checklist ---------- */
.checklist-card{ background:var(--ink); color:#fff; padding:34px; border-top:4px solid var(--signal); }
.checklist-card h4{ color:#fff; text-transform:uppercase; letter-spacing:.08em; font-size:.9rem; margin-bottom:18px; }
.checklist-card ul{ list-style:none; }
.checklist-card li{ position:relative; padding:11px 0 11px 26px; font-size:.92rem; color:#D5D8DC; border-top:1px solid rgba(255,255,255,.1); }
.checklist-card li:first-child{ border-top:none; }
.checklist-card li::before{ content:""; position:absolute; left:0; top:19px; width:9px; height:9px; border:2px solid var(--signal); }

/* ---------- solution cards ---------- */
.solution-grid{ display:grid; grid-template-columns:1fr; gap:26px; }
@media(min-width:620px){ .solution-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1080px){ .solution-grid{ grid-template-columns:repeat(4,1fr); gap:22px; } }
.solution-card{
  display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line);
  overflow:hidden; height:100%; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.solution-card:hover{ transform:translateY(-5px); box-shadow:0 20px 40px rgba(19,42,70,.12); border-color:var(--line); }
.solution-card-media{ position:relative; overflow:hidden; background:var(--paper-dim); }
.solution-card-media img{
  width:100%; height:100%; object-fit:cover; aspect-ratio:4/3;
  filter:grayscale(45%) contrast(1.02); transition:filter .3s ease, transform .4s ease;
}
.solution-card:hover .solution-card-media img{ filter:grayscale(0%); transform:scale(1.05); }
.solution-card-body{ position:relative; padding:22px 22px 24px; border-top:3px solid var(--signal); flex:1; display:flex; flex-direction:column; }
.solution-card-body h3{ font-size:1.02rem; margin-bottom:10px; }
.solution-card-body p{ font-size:.88rem; margin-bottom:14px; flex:1; }
.solution-fit{
  display:inline-flex; align-self:flex-start; margin-top:auto; padding:6px 12px; background:var(--paper-dim);
  border-left:2px solid var(--teal-dark); font-size:.74rem; font-weight:600; color:var(--teal-dark);
}

/* ---------- solution detail pages ---------- */
.breadcrumb{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:.82rem; color:#AEBBCC; margin-bottom:16px; }
.breadcrumb a{ color:#AEBBCC; }
.breadcrumb a:hover{ color:var(--signal); }
.breadcrumb span{ opacity:.5; }
.detail-media{ overflow:hidden; background:var(--paper-dim); border:1px solid var(--line); }
.detail-media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; display:block; filter:contrast(1.02); }
.related-list{ list-style:none; display:flex; flex-wrap:wrap; gap:10px 16px; }
.related-list li{ position:relative; padding-left:16px; }
.related-list li::before{ content:""; position:absolute; left:0; top:9px; width:7px; height:7px; background:var(--signal); }
.related-list a{ font-weight:600; font-size:.92rem; }

/* ---------- catalog explorer ---------- */
.catalog-explorer{ background:var(--ink); border-top:4px solid var(--signal); }
.catalog-preview{
  display:grid; grid-template-columns:1fr; gap:0;
  border-bottom:1px solid rgba(255,255,255,.12);
}
@media(min-width:860px){ .catalog-preview{ grid-template-columns:360px 1fr; } }
.catalog-preview-media{
  position:relative; background:#0D1F35; display:flex; align-items:center; justify-content:center;
  aspect-ratio:4/3; overflow:hidden;
}
@media(min-width:860px){ .catalog-preview-media{ aspect-ratio:auto; } }
.catalog-preview-media img{
  width:100%; height:100%; object-fit:contain; padding:22px;
  opacity:0; transform:scale(.97); transition:opacity .25s ease, transform .25s ease;
}
.catalog-preview-media img.is-loaded{ opacity:1; transform:scale(1); }
.catalog-preview-body{ padding:28px 30px; display:flex; flex-direction:column; justify-content:center; gap:10px; }
.catalog-preview-eyebrow{ text-transform:uppercase; letter-spacing:.1em; font-size:.74rem; font-weight:700; color:var(--signal); }
.catalog-preview-body h3{ color:#fff; font-size:1.5rem; margin:0; }
.catalog-preview-body p{ color:#B9C4D2; font-size:.92rem; margin:0; max-width:52ch; }
.catalog-preview-link{
  display:inline-flex; align-items:center; gap:6px; margin-top:6px; align-self:flex-start;
  font-size:.82rem; font-weight:600; color:#fff; padding:9px 16px; border:1px solid rgba(255,255,255,.3);
  transition:border-color .15s ease, background .15s ease;
}
.catalog-preview-link:hover{ background:var(--signal); border-color:var(--signal); color:var(--ink); }

.catalog-menu{ padding:30px; display:grid; grid-template-columns:1fr; gap:32px; }
@media(min-width:620px){ .catalog-menu{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1080px){ .catalog-menu{ grid-template-columns:repeat(4,1fr); gap:36px; padding:34px 36px; } }
@media(min-width:820px){ .catalog-menu.catalog-menu-3col{ grid-template-columns:repeat(3,1fr); } }
.catalog-col{ display:flex; flex-direction:column; gap:22px; }
.catalog-group h3{
  color:#fff; font-size:.98rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-bottom:12px;
}
.catalog-group h4{
  color:#fff; font-size:.86rem; font-weight:600; margin-bottom:6px; margin-top:14px;
}
.catalog-group h4:first-of-type{ margin-top:0; }
.catalog-items{ list-style:none; }
.catalog-item{
  display:block; width:100%; text-align:left; background:none; border:0; cursor:pointer;
  padding:5px 0; font-size:.88rem; line-height:1.35; color:#AEB7C2; font-family:inherit;
  border-left:2px solid transparent; padding-left:10px; margin-left:-10px;
  transition:color .15s ease, border-color .15s ease;
}
.catalog-item:hover, .catalog-item:focus-visible{ color:#fff; }
.catalog-item.is-active{ color:var(--signal); border-left-color:var(--signal); font-weight:600; }

/* ---------- dealer partner banner ---------- */
.partner-banner{
  display:flex; flex-wrap:wrap; align-items:center; gap:28px;
  background:var(--ink); color:#fff; padding:28px 32px; border-top:4px solid var(--signal);
  margin-bottom:28px;
}
.partner-banner-logos{ display:flex; align-items:center; gap:18px; flex:none; }
.partner-banner-logos img{ height:40px; width:auto; max-width:200px; object-fit:contain; }
.partner-banner-logos img.is-boxlogix, .partner-banner-logos img.is-wpss, .partner-banner-logos img.is-advancelifts{ background:#fff; padding:6px 10px; }
.partner-banner-x{ color:var(--signal); font-weight:700; font-size:1.1rem; }
.partner-banner-copy{ flex:1 1 380px; }
.partner-banner-tag{
  display:inline-flex; align-items:center; gap:8px; text-transform:uppercase; letter-spacing:.1em;
  font-size:.74rem; font-weight:700; color:var(--signal); margin-bottom:6px;
}
.partner-banner-tag::before{ content:""; width:8px; height:8px; background:var(--signal); }
.partner-banner-copy p{ margin:0; color:#D5D8DC; font-size:.92rem; max-width:64ch; }

/* ---------- embedded partner site ---------- */
.site-iframe-wrap{
  border-top:4px solid var(--signal); background:var(--white); box-shadow:0 20px 50px rgba(19,42,70,.14);
}
.site-iframe-wrap iframe{
  display:block; width:100%; height:1100px; border:0;
}
@media(max-width:720px){ .site-iframe-wrap iframe{ height:760px; } }
.iframe-fallback{ margin:16px 2px 0; font-size:.86rem; text-align:right; }
.iframe-fallback a{ font-weight:600; }

/* crops fixed-height header/footer bands out of an embedded partner site (their own nav/CTA bar
   and site footer) by overscaling the iframe, shifting it up, and pinning the wrapper to the
   visible height so both the shifted-up top and the excess at the bottom get clipped */
.site-iframe-wrap.crop-embed-header{ overflow:hidden; height:1100px; }
.site-iframe-wrap.crop-embed-header iframe{ height:1780px; margin-top:-185px; }
@media(max-width:720px){
  .site-iframe-wrap.crop-embed-header{ height:760px; }
  .site-iframe-wrap.crop-embed-header iframe{ height:1368px; margin-top:-100px; }
}
@media(max-width:592px){
  .site-iframe-wrap.crop-embed-header iframe{ height:1726px; margin-top:-100px; }
}

/* crops the header (with its CTA button) plus the newsletter-signup block and footer out of
   the BoxLogix embed by overscaling the iframe, shifting it up, and pinning the wrapper to the
   visible height so both the shifted-up top and the excess at the bottom get clipped */
.site-iframe-wrap.crop-embed-boxlogix{ overflow:hidden; height:1100px; }
.site-iframe-wrap.crop-embed-boxlogix iframe{ height:2234px; margin-top:-108px; }
@media(max-width:720px){
  .site-iframe-wrap.crop-embed-boxlogix{ height:760px; }
  .site-iframe-wrap.crop-embed-boxlogix iframe{ height:2359px; margin-top:-93px; }
}

/* crops Rytec's sticky nav out of the embed by shifting the iframe up by the nav's height, and
   pins the wrapper to end right after the "Find Your Door" hero/intro section so nothing below
   it (the long product catalog and footer) shows in the cropped window */
.site-iframe-wrap.crop-embed-rytec{ overflow:hidden; height:1560px; }
.site-iframe-wrap.crop-embed-rytec iframe{ height:1760px; margin-top:-180px; }
@media(max-width:720px){
  .site-iframe-wrap.crop-embed-rytec{ height:660px; }
  .site-iframe-wrap.crop-embed-rytec iframe{ height:800px; margin-top:-100px; }
}

/* Advance Lifts' page is laid out fluidly rather than on fixed breakpoints, so the phone number's
   position shifts unpredictably at in-between widths and a simple percentage-width iframe with a
   static crop height can't reliably keep the number in and everything below it out. Instead
   site.js renders the iframe at a fixed reference width (so the embedded page always computes the
   same layout) and scales that rendering down to fit the wrapper, so the crop height below always
   lines up with the same point on the page&mdash;just under the phone number&mdash;at any screen size. */
.site-iframe-wrap.crop-embed-fixedwidth{ overflow:hidden; height:850px; }
.site-iframe-wrap.crop-embed-fixedwidth iframe{ display:block; border:0; transform-origin:top left; }

/* ---------- process ---------- */
.process-step{ padding:30px 26px; background:var(--white); border:1px solid var(--line); height:100%; }
.process-step span{
  display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px;
  font-family:var(--font-head); font-weight:700; color:var(--ink); background:var(--signal); margin-bottom:18px;
}
.process-step h4{ margin-bottom:10px; }
.process-step p{ font-size:.92rem; margin:0; }

/* ---------- CTA panel ---------- */
.cta-panel{
  background:var(--ink); color:#fff; padding:52px 44px;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:26px;
  background-image:radial-gradient(circle at 88% 18%, rgba(46,203,142,.18), transparent 55%);
}
.cta-panel h2{ color:#fff; margin-bottom:8px; }
.cta-panel p{ margin:0; max-width:520px; }
.cta-panel-copy{ flex:1 1 380px; }

/* ---------- partner marquee ---------- */
.marquee{ overflow:hidden; position:relative; padding:6px 0; }
.marquee::before, .marquee::after{
  content:""; position:absolute; top:0; bottom:0; width:90px; z-index:2; pointer-events:none;
}
.marquee::before{ left:0; background:linear-gradient(90deg, var(--paper), transparent); }
.marquee::after{ right:0; background:linear-gradient(270deg, var(--paper), transparent); }
.marquee-track{ display:flex; width:max-content; gap:64px; animation:marquee 34s linear infinite; align-items:center; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee-track img{ height:34px; width:auto; max-width:150px; object-fit:contain; filter:grayscale(100%) opacity(.55); transition:filter .2s ease; }
.marquee-track img:hover{ filter:grayscale(0%) opacity(1); }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); border-top:1px solid var(--line-dark); padding:20px 0; }
.site-footer .container{ display:flex; flex-direction:column; gap:12px; align-items:center; justify-content:space-between; color:#B8BBC0; font-size:.85rem; }
.site-footer a{ color:#B8BBC0; }
.site-footer a:hover{ color:var(--signal); }
.footer-links{ display:flex; gap:10px; align-items:center; }
@media(min-width:640px){ .site-footer .container{ flex-direction:row; } }

/* ---------- legal / prose ---------- */
.prose{ max-width:760px; }
.prose h3{ margin-top:2.2em; padding-top:1.4em; border-top:1px solid var(--line); }
.prose h3:first-child{ margin-top:0; padding-top:0; border-top:none; }
.prose ul{ list-style:none; margin-bottom:1em; }
.prose ul li{ position:relative; padding-left:22px; margin-bottom:8px; color:var(--steel); }
.prose ul li::before{ content:""; position:absolute; left:0; top:9px; width:7px; height:7px; background:var(--signal); }
.prose .effective-date{ display:inline-block; padding:6px 14px; background:var(--paper-dim); font-size:.82rem; font-weight:600; color:var(--steel); margin-bottom:2em; }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* ---------- gallery ---------- */
.gallery-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:18px;
}
@media(min-width:640px){ .gallery-grid{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:960px){ .gallery-grid{ grid-template-columns:repeat(4,1fr); gap:22px; } }
.gallery-item{
  display:block; position:relative; overflow:hidden; background:var(--paper-dim);
  border:none; padding:0; cursor:pointer; border-radius:var(--radius);
}
.gallery-item img{
  width:100%; height:100%; aspect-ratio:4/3; object-fit:cover;
  filter:grayscale(35%) contrast(1.02); transition:filter .3s ease, transform .4s ease;
}
.gallery-item:hover img, .gallery-item:focus-visible img{ filter:grayscale(0%); transform:scale(1.04); }
.gallery-item::after{
  content:""; position:absolute; inset:0; opacity:0; transition:opacity .2s ease;
  background:linear-gradient(180deg, transparent 55%, rgba(19,42,70,.55));
}
.gallery-item:hover::after, .gallery-item:focus-visible::after{ opacity:1; }
.gallery-item-video{ background:#000; }
.gallery-item-video video{ width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; display:block; pointer-events:none; }
.gallery-play-icon{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:1;
  width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(19,42,70,.72); color:#fff; transition:background .2s ease, transform .2s ease;
}
.gallery-play-icon svg{ width:22px; height:22px; margin-left:2px; }
.gallery-item-video:hover .gallery-play-icon, .gallery-item-video:focus-visible .gallery-play-icon{
  background:var(--signal); transform:translate(-50%,-50%) scale(1.08);
}

/* ---------- lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  background:rgba(10,17,28,.94); opacity:0; visibility:hidden; transition:opacity .2s ease, visibility .2s;
  padding:56px 20px;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox-figure{ margin:0; max-width:min(1100px,92vw); max-height:100%; display:flex; flex-direction:column; align-items:center; gap:14px; }
.lightbox-img{ max-width:100%; max-height:76vh; width:auto; object-fit:contain; box-shadow:0 30px 70px rgba(0,0,0,.5); }
.lightbox-video{ max-width:100%; max-height:76vh; width:auto; box-shadow:0 30px 70px rgba(0,0,0,.5); }
.lightbox-video[hidden]{ display:none; }
.lightbox-caption{ color:#DADDE1; font-size:.92rem; text-align:center; }
.lightbox-close{
  position:absolute; top:20px; right:20px; width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); color:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.lightbox-close:hover{ background:rgba(255,255,255,.18); }
.lightbox-close svg{ width:18px; height:18px; }
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); color:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.lightbox-nav:hover{ background:rgba(255,255,255,.18); }
.lightbox-nav svg{ width:22px; height:22px; }
.lightbox-prev{ left:16px; }
.lightbox-next{ right:16px; }
@media(min-width:768px){ .lightbox-prev{ left:36px; } .lightbox-next{ right:36px; } }
body.lightbox-open{ overflow:hidden; }

/* ---------- responsive nav ---------- */
@media(max-width:900px){
  .nav-toggle{ display:flex; }
  .nav-list{
    position:fixed; inset:0 0 0 auto; width:min(320px,86vw); height:100vh;
    background:var(--ink); flex-direction:column; align-items:flex-start; gap:0;
    padding:100px 28px 28px; transform:translateX(100%); transition:transform .25s ease;
    overflow-y:auto; box-shadow:-20px 0 40px rgba(0,0,0,.3);
  }
  .nav-list.is-open{ transform:translateX(0); }
  .nav-list > li{ width:100%; }
  .nav-list > li > a{ padding:14px 0; width:100%; border-bottom:1px solid var(--line-dark); }
  .dropdown{
    position:static; opacity:1; visibility:visible; transform:none; background:transparent;
    border:none; box-shadow:none; display:none; margin-top:0;
  }
  .nav-list > li.is-open .dropdown{ display:block; }
  .dropdown a{ padding:12px 0 12px 14px; border-top:none; border-bottom:1px solid rgba(255,255,255,.06); }
  .dropdown-sub{
    position:static; opacity:1; visibility:visible; transform:none; background:transparent;
    border:none; box-shadow:none; display:none; margin:0; max-height:none; overflow:visible;
  }
  .dropdown li.has-sub.is-open > .dropdown-sub{ display:block; }
  .dropdown-sub a{ padding:11px 0 11px 28px; border-top:none; border-bottom:1px solid rgba(255,255,255,.06); white-space:normal; }
  .dropdown-caret{ transform:rotate(45deg); transition:transform .15s ease; }
  .dropdown li.has-sub.is-open > a > .dropdown-caret{ transform:rotate(225deg); }
  .nav-scrim{ position:fixed; inset:0; background:rgba(0,0,0,.5); opacity:0; visibility:hidden; transition:opacity .2s ease; z-index:70; }
  .nav-scrim.is-open{ opacity:1; visibility:visible; }
}

@media(max-width:640px){
  section{ padding:56px 0; }
  .hero{ min-height:560px; }
  .hero-inner{ padding:100px 0 70px; }
  .cta-panel{ padding:38px 26px; }
  .topbar .container{ justify-content:center; gap:14px; flex-wrap:wrap; }
  .topbar a{ font-size:.74rem; gap:5px; }
}
