/* Nick Orlando — site-wide styles */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --deep-blue:#171768;
  --deep-blue-2:#0d0d40;
  --bright-blue:#2A3EF2;
  --soft-blue:#6EA6FF;
  --light-blue:#C2D7EF;
  --ice:#E9EDF4;
  --black:#171719;
  --white:#FFFFFF;
  --off-white:#F4F6FA;
  --paper:#FAFAF7;
  --mid-gray:#6B7A99;
  --warm-gray:#DDE3F0;
  --line:#E2E5EC;
  --text:#171719;
  --muted:#5A6479;
  --serif:"Cormorant Garamond", "Times New Roman", serif;
  --sans:"Inter Tight", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --mono:"JetBrains Mono", ui-monospace, Menlo, monospace;
  --container: 1320px;
  --gut: 32px;
}
html,body{background:var(--paper);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:var(--bright-blue);color:#fff}

/* utilities */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gut)}
.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--mid-gray)}
.hairline{height:1px;background:var(--line);width:100%}
.serif{font-family:var(--serif);font-style:italic;font-weight:500}
.mono{font-family:var(--mono);letter-spacing:.02em}
.tag{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--deep-blue);padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:#fff}
.tag .dot{width:6px;height:6px;border-radius:50%;background:var(--bright-blue)}

/* type scale */
h1,h2,h3,h4{font-family:var(--sans);font-weight:600;letter-spacing:-.02em;color:var(--text);line-height:1.02}
.display{font-size:clamp(48px, 8.4vw, 132px);font-weight:600;letter-spacing:-.035em;line-height:.94}
.h1{font-size:clamp(40px, 5.4vw, 84px);letter-spacing:-.03em;line-height:.98}
.h2{font-size:clamp(30px, 3.6vw, 56px);letter-spacing:-.025em;line-height:1.02}
.h3{font-size:clamp(22px, 2vw, 32px);letter-spacing:-.02em;line-height:1.1}
.kicker{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--mid-gray)}
.lede{font-size:clamp(18px, 1.4vw, 22px);line-height:1.5;color:var(--text)}
p{color:var(--text)}
.muted{color:var(--muted)}
.dim{color:var(--mid-gray)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;font-size:14px;font-weight:500;letter-spacing:.01em;transition:transform .25s ease, background .25s ease, color .25s ease;border:1px solid transparent}
.btn .arr{display:inline-block;transition:transform .25s ease}
.btn:hover .arr{transform:translate(3px,-3px)}
.btn-primary{background:var(--deep-blue);color:#fff}
.btn-primary:hover{background:var(--bright-blue)}
.btn-ghost{background:#fff;color:var(--text);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--deep-blue)}
.btn-light{background:#fff;color:var(--deep-blue)}
.btn-dark{background:var(--black);color:#fff}
.btn-link{padding:0;background:none;color:var(--deep-blue);font-weight:600;font-size:13px;letter-spacing:.04em;border-bottom:1px solid currentColor;border-radius:0;padding-bottom:2px}

/* Header / nav */
.site-header{position:sticky;top:0;z-index:80;background:rgba(250,250,247,.78);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.01em;font-size:15px}
.brand svg{height:22px;width:auto;display:block}
.brand .word{display:inline-flex;gap:1px}
.brand-lockup{height:40px;width:auto;display:block}
@media(max-width:560px){ .brand-lockup{height:30px} }
.nav-links{display:flex;align-items:center;gap:6px}
.nav-link{position:relative;padding:10px 14px;font-size:14px;color:var(--text);border-radius:999px}
.nav-link:hover{background:#fff}
.nav-link .num{font-family:var(--mono);font-size:10px;color:var(--mid-gray);margin-right:6px;vertical-align:1px}
.nav-services{position:relative}
.nav-dd{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(8px);min-width:280px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:0 24px 60px rgba(23,23,104,.10);opacity:0;pointer-events:none;transition:opacity .2s ease, transform .2s ease}
.nav-services:hover .nav-dd, .nav-services:focus-within .nav-dd{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nav-dd a{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:10px;font-size:13px}
.nav-dd a:hover{background:var(--off-white)}
.nav-dd a .arr{font-family:var(--mono);font-size:11px;color:var(--mid-gray)}
.nav-cta{display:flex;align-items:center;gap:10px}
.menu-btn{display:none}
@media (max-width:980px){
  .nav-links{display:none}
  .menu-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:500}
}

/* mobile drawer */
.drawer{
  position:fixed;
  inset:0;
  background:rgba(8,10,24,.38);
  backdrop-filter:blur(10px);
  z-index:9999;
  display:flex;
  justify-content:flex-end;
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease;
}

.drawer.open{
  opacity:1;
  pointer-events:auto;
}

.drawer-panel{
  width:min(92vw,420px);
  height:100%;
  background:#fff;
  padding:28px 22px 32px;
  overflow-y:auto;
  transform:translateX(100%);
  transition:transform .32s cubic-bezier(.77,0,.18,1);
  box-shadow:-20px 0 60px rgba(0,0,0,.12);
}

.drawer.open .drawer-panel{
  transform:translateX(0);
}

.drawer-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:38px;
}

.drawer-close{
  border:0;
  background:none;
  color:var(--mid-gray);
  font-size:14px;
  cursor:pointer;
}

.drawer-main-nav{
  display:flex;
  flex-direction:column;
}

.drawer-services{
  display:flex;
  flex-direction:column;
}

.drawer-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
  color:var(--text);
  transition:.2s ease;
}

.drawer-link:hover{
  color:var(--bright-blue);
}

.drawer-link-main{
  font-size:36px;
  line-height:1;
  font-weight:500;
  letter-spacing:-0.05em;
  border-bottom:none;
  padding:12px 0;
}

.drawer-link .arr{
  color:var(--mid-gray);
  font-size:15px;
}

.drawer-label{
  font-size:11px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--mid-gray);
  margin-bottom:12px;
}

.drawer-divider{
  height:1px;
  background:var(--line);
  margin:28px 0;
}

.drawer-cta{
  width:100%;
  justify-content:center;
  margin-top:30px;
}

@media(max-width:640px){

  .drawer-panel{
    width:100vw;
    padding:24px 18px 28px;
  }

  .drawer-link-main{
    font-size:30px;
  }

}
/* Contact rows (contact.html) */
.footer-eho{display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.06em}
.footer-eho img{width:14px;height:auto;filter:invert(1) brightness(2);opacity:.85}
.contact-row{display:flex;align-items:center;gap:18px;padding:18px 22px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);transition:border-color .2s ease, background-color .2s ease}
.contact-row:hover{border-color:var(--bright-blue);background:rgba(42,62,242,.03)}
.contact-row:hover .contact-icon{color:var(--bright-blue);border-color:var(--bright-blue)}
.contact-icon{flex-shrink:0;width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);color:var(--ink);transition:all .2s ease}
.contact-text{flex:1;min-width:0}
.contact-text .mono{margin-bottom:4px;font-size:10px}
.contact-value{font-weight:600;font-size:15px;letter-spacing:-.005em}
.contact-row .arr{flex-shrink:0;color:var(--mid-gray);transition:color .2s ease, transform .2s ease}
.contact-row:hover .arr{color:var(--bright-blue);transform:translate(2px,-2px)}

/* Footer */
.site-footer{background:var(--deep-blue);color:#fff}
.footer-top{padding:80px var(--gut) 60px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;max-width:var(--container);margin:0 auto}
.footer-top h4{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:18px;font-weight:500}
.footer-top a{display:block;padding:6px 0;font-size:14px;color:rgba(255,255,255,.78)}
.footer-top a:hover{color:#fff}
.footer-cta{padding-right:24px}
.footer-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:18px;font-weight:500}
.footer-cta h3{font-family:var(--sans);font-size:clamp(28px,2.6vw,40px);line-height:1.08;letter-spacing:-.02em;color:#fff;margin-bottom:24px;font-weight:500}
.footer-cta h3 em{font-family:var(--serif);font-style:italic;color:var(--soft-blue);font-weight:500}
.footer-form{display:flex;align-items:stretch;border-bottom:1px solid rgba(255,255,255,.25);max-width:460px;transition:border-color .2s}
.footer-form:focus-within{border-color:rgba(255,255,255,.6)}
.footer-form input{flex:1;background:transparent;border:none;color:#fff;font:inherit;padding:14px 0;outline:none;font-size:15px}
.footer-form input::placeholder{color:rgba(255,255,255,.4)}
.footer-form button{background:transparent;color:#fff;padding:14px 0 14px 24px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;white-space:nowrap;transition:color .2s}
.footer-form button::after{content:"→";font-family:var(--sans);font-size:16px;letter-spacing:0;transition:transform .2s}
.footer-form button:hover{color:var(--soft-blue)}
.footer-form button:hover::after{transform:translateX(3px)}
.footer-microcopy{font-size:12px;color:rgba(255,255,255,.42);margin-top:14px;letter-spacing:.01em}

/* Reach Out */
.footer-reach .reach-line{display:flex;flex-direction:column;gap:2px;padding:8px 0!important}
.footer-reach .reach-label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.42)}
.footer-reach .reach-val{font-size:14px;color:rgba(255,255,255,.92);letter-spacing:-.005em}
.footer-reach .reach-line:hover .reach-val{color:var(--soft-blue)}
.footer-socials{display:flex;gap:10px;margin-top:18px}
.footer-socials a{display:flex!important;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:0!important;transition:.2s}
.footer-socials a:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);transform:translateY(-1px)}
.footer-socials svg{width:16px;height:16px;fill:rgba(255,255,255,.85)}
.footer-socials a:hover svg{fill:#fff}

/* ─── Luxury inline contact form (index.html) ──────────────────────────── */
.lux-form{display:grid;gap:0}
.lux-form .row{display:grid;gap:18px}
.lux-form .row.cols-2{grid-template-columns:1fr 1fr}
@media(max-width:720px){.lux-form .row.cols-2{grid-template-columns:1fr}}
.lux-field{position:relative;display:block}
.lux-field > span{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mid-gray);font-weight:500;margin-bottom:8px}
.lux-field input,.lux-field select,.lux-field textarea{
  width:100%;font:inherit;color:var(--text);background:transparent;
  border:none;outline:none;padding:14px 0;font-size:17px;font-weight:400;
  border-bottom:1px solid var(--line);transition:border-color .25s ease, color .25s ease;
}
.lux-field textarea{resize:vertical;min-height:96px;line-height:1.5}
.lux-field input::placeholder,.lux-field textarea::placeholder{color:#A6AEC0;font-weight:300}
.lux-field input:focus,.lux-field select:focus,.lux-field textarea:focus{border-bottom-color:var(--bright-blue)}
.lux-field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23171768' stroke-width='1.5' fill='none'/></svg>");background-repeat:no-repeat;background-position:right 4px center;cursor:pointer}

/* Variant: Card (filled deep-blue card with light inputs) */
.lux-form.variant-card{background:var(--deep-blue);color:#fff;padding:56px;border-radius:6px;gap:28px}
.lux-form.variant-card .lux-field > span{color:rgba(255,255,255,.55)}
.lux-form.variant-card .lux-field input,
.lux-form.variant-card .lux-field select,
.lux-form.variant-card .lux-field textarea{color:#fff;border-bottom-color:rgba(255,255,255,.18)}
.lux-form.variant-card .lux-field input:focus,
.lux-form.variant-card .lux-field select:focus,
.lux-form.variant-card .lux-field textarea:focus{border-bottom-color:var(--soft-blue)}
.lux-form.variant-card .lux-field input::placeholder,
.lux-form.variant-card .lux-field textarea::placeholder{color:rgba(255,255,255,.35)}
.lux-form.variant-card .lux-field select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23ffffff' stroke-width='1.5' fill='none'/></svg>")}

/* Variant: Bordered (clean boxed inputs on paper) */
.lux-form.variant-bordered .lux-field input,
.lux-form.variant-bordered .lux-field select,
.lux-form.variant-bordered .lux-field textarea{
  border:1px solid var(--line);border-radius:4px;padding:16px 18px;background:#fff;
}
.lux-form.variant-bordered .lux-field input:focus,
.lux-form.variant-bordered .lux-field select:focus,
.lux-form.variant-bordered .lux-field textarea:focus{border-color:var(--bright-blue);box-shadow:0 0 0 3px rgba(42,62,242,.08)}

/* Submit row */
.lux-submit-row{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:36px;flex-wrap:wrap}
.lux-form.variant-card .lux-submit-row{margin-top:8px}
.lux-fineprint{font-size:12px;color:var(--mid-gray);max-width:42ch;line-height:1.5}
.lux-form.variant-card .lux-fineprint{color:rgba(255,255,255,.5)}

/* Pill submit */
.lux-submit{display:inline-flex;align-items:center;gap:10px;background:var(--deep-blue);color:#fff;padding:18px 32px;border-radius:999px;font-weight:500;font-size:14px;letter-spacing:.04em;transition:transform .2s ease, background .2s ease}
.lux-submit:hover{background:var(--bright-blue);transform:translateY(-1px)}
.lux-form.variant-card .lux-submit{background:#fff;color:var(--deep-blue)}
.lux-form.variant-card .lux-submit:hover{background:var(--soft-blue);color:#fff}

.lux-submit.style-square{border-radius:2px;padding:20px 36px}
.lux-submit.style-link{background:transparent !important;color:inherit;padding:0;border-radius:0;border-bottom:1px solid currentColor;font-family:var(--serif);font-style:italic;font-size:22px;letter-spacing:0;font-weight:500}
.lux-submit.style-link:hover{transform:none;color:var(--bright-blue);border-bottom-color:var(--bright-blue)}
.lux-form.variant-card .lux-submit.style-link{color:var(--soft-blue);border-bottom-color:var(--soft-blue)}

/* Section wrapper that flips background to match the form variant */
.lux-section{padding:140px 0;transition:background .3s ease}
.lux-section .container{max-width:1100px}
.lux-section-head{text-align:center;margin-bottom:64px}
.lux-section-head .display{margin:18px 0 22px}
.lux-section-head .lede{max-width:60ch;margin:0 auto}
.lux-aside-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
@media(max-width:880px){.lux-aside-grid{grid-template-columns:1fr;gap:48px}}
.lux-aside-card{padding:40px;background:var(--off-white);border-radius:4px}

/* Disclaimer block — beneath all forms / contact info */
.mf-disclaimer,.contact-disclaimer{font-size:11.5px;line-height:1.6;color:var(--deep-blue);margin-top:18px;letter-spacing:.005em;max-width:64ch;font-weight:500}
.mf-disclaimer a,.contact-disclaimer a{color:var(--deep-blue);text-decoration:underline;text-underline-offset:2px;font-weight:600}
.mf-disclaimer a:hover,.contact-disclaimer a:hover{color:var(--bright-blue)}
.mf-disclaimer em,.contact-disclaimer em{font-family:var(--mono);font-style:normal;font-size:10.5px;letter-spacing:.08em;color:var(--deep-blue);font-weight:700}
.contact-disclaimer{padding:14px 0;border-top:1px solid var(--line);margin-top:24px}
.dark-bg .mf-disclaimer,.dark-bg .contact-disclaimer,
section.dark .mf-disclaimer,section.dark .contact-disclaimer,
.email-capture.dark .mf-disclaimer,.email-capture.dark .contact-disclaimer,
[style*="background:var(--deep-blue)"] .mf-disclaimer{color:rgba(255,255,255,.82)}
.dark-bg .mf-disclaimer a,.dark-bg .contact-disclaimer a,
section.dark .mf-disclaimer a,section.dark .contact-disclaimer a,
.email-capture.dark .mf-disclaimer a,.email-capture.dark .contact-disclaimer a,
[style*="background:var(--deep-blue)"] .mf-disclaimer a{color:#fff;text-decoration-color:rgba(255,255,255,.7);font-weight:600}
.dark-bg .mf-disclaimer em,.email-capture.dark .mf-disclaimer em,
section.dark .mf-disclaimer em,
[style*="background:var(--deep-blue)"] .mf-disclaimer em{color:#fff}

/* Inline email capture module */
.email-capture{padding:80px 0;background:var(--ice);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.email-capture .container{max-width:880px;text-align:center}
.email-capture .kicker{margin-bottom:18px}
.email-capture h3{font-family:var(--display);font-size:clamp(36px,4vw,52px);line-height:1.05;letter-spacing:-.02em;color:var(--deep-blue);margin-bottom:14px}
.email-capture h3 em{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--bright-blue)}
.email-capture p.lede{max-width:54ch;margin:0 auto 28px}
.email-capture form{display:flex;gap:10px;max-width:520px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.email-capture input{flex:1;min-width:240px;padding:18px 22px;border:1px solid var(--line);border-radius:999px;font:inherit;background:#fff}
.email-capture input:focus{outline:none;border-color:var(--bright-blue);box-shadow:0 0 0 3px rgba(42,62,242,.1)}
.email-capture button{padding:18px 28px;border-radius:999px;background:var(--deep-blue);color:#fff;font-weight:500;border:none;cursor:pointer;font:inherit;letter-spacing:.02em}
.email-capture button:hover{background:var(--bright-blue)}
.email-capture .micro{font-size:11px;color:var(--mid-gray);margin-top:14px;letter-spacing:.04em;text-transform:uppercase}
.email-capture.dark{background:var(--deep-blue);color:#fff;border-color:transparent}
.email-capture.dark h3{color:#fff}
.email-capture.dark h3 em{color:var(--soft-blue)}
.email-capture.dark p.lede{color:rgba(255,255,255,.75)}
.email-capture.dark input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#fff}
.email-capture.dark input::placeholder{color:rgba(255,255,255,.45)}
.email-capture.dark button{background:#fff;color:var(--deep-blue)}
.email-capture.dark button:hover{background:var(--soft-blue);color:#fff}
.email-capture .mf-disclaimer{margin:18px auto 0;text-align:left}
.email-capture.dark .mf-disclaimer{color:rgba(255,255,255,.55)}
.email-capture.dark .mf-disclaimer a{color:rgba(255,255,255,.7)}

/* Author portrait — editorial rectangular portrait above kickers/CTAs */
.author-portrait{display:flex;flex-direction:column;align-items:center;gap:16px;margin:0 auto 28px}
.author-portrait img{width:220px;height:280px;border-radius:18px;object-fit:cover;object-position:center top;border:1px solid var(--line);box-shadow:0 18px 44px rgba(20,30,80,.14)}
.author-portrait .ap-meta{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mid-gray);text-align:center}
.dark-bg .author-portrait img,section.dark .author-portrait img{border-color:rgba(255,255,255,.18);box-shadow:0 14px 36px rgba(0,0,0,.36)}
.dark-bg .author-portrait .ap-meta,section.dark .author-portrait .ap-meta{color:rgba(255,255,255,.55)}
@media(max-width:560px){.author-portrait img{width:188px;height:240px}}

/* Author byline strip — under article headers / above coverage grids */
.author-byline{display:flex;align-items:center;gap:22px;padding:24px 28px;background:var(--off-white);border:1px solid var(--line);border-radius:14px;margin:0 0 48px;max-width:760px}
.author-byline img{width:104px;height:104px;border-radius:50%;object-fit:cover;object-position:center top;flex-shrink:0}
.author-byline .ab-name{font-weight:600;color:var(--deep-blue);margin:0 0 3px;font-size:15px}
.author-byline .ab-title{font-size:13px;color:var(--mid-gray);margin:0;line-height:1.5}
.author-byline .ab-link{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bright-blue);text-decoration:none;flex-shrink:0}
.author-byline .ab-link:hover{color:var(--deep-blue)}
@media(max-width:680px){.author-byline{flex-wrap:wrap}.author-byline .ab-link{margin-left:0;width:100%}}

/* Sidebar portrait card — contact aside, etc. */
.aside-portrait{padding:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;margin-bottom:22px;background:#fff}
.aside-portrait img{width:100%;aspect-ratio:5/4;object-fit:cover;object-position:center top;display:block}
.aside-portrait-cap{padding:18px 22px}
.aside-portrait-cap .ap-name{font-weight:600;color:var(--deep-blue);font-size:15px;margin:0 0 4px}
.aside-portrait-cap .ap-line{font-size:13px;color:var(--mid-gray);margin:0;line-height:1.5}

/* "The Difference" comparison cards (sell-your-home §01) */
.td-section{background:var(--off-white);border-radius:24px;padding:56px 48px;margin-top:32px}
.td-head{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:end;margin-bottom:36px}
.td-head .td-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--mid-gray);margin-bottom:14px;font-weight:600}
.td-head h2{font-size:clamp(34px,4.4vw,56px);letter-spacing:-.03em;line-height:1.02;font-weight:600;color:var(--text)}
.td-head h2 em{font-family:var(--serif);font-style:italic;color:var(--bright-blue);font-weight:500}
.td-head .td-sub{font-size:15px;color:var(--muted);max-width:380px;justify-self:end;line-height:1.55}
.td-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.td-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 28px 28px;display:flex;flex-direction:column;min-height:300px;transition:border-color .2s,transform .2s,box-shadow .25s}
.td-card:hover{border-color:var(--bright-blue);transform:translateY(-2px);box-shadow:0 18px 40px rgba(20,30,80,.07)}
.td-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}
.td-icon{width:32px;height:32px;color:var(--deep-blue);flex-shrink:0}
.td-icon svg{width:100%;height:100%;display:block}
.td-dots{display:flex;gap:5px}
.td-dots i{width:6.5px;height:6.5px;border-radius:50%;background:var(--warm-gray);display:block}
.td-dots i.on{background:var(--bright-blue)}
.td-topic{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mid-gray);margin-bottom:14px;font-weight:600}
.td-stale{font-size:13px;color:var(--mid-gray);margin-bottom:18px;display:flex;flex-direction:column;gap:7px;padding-bottom:16px;border-bottom:1px dashed var(--line)}
.td-stale .lbl,.td-fresh .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mid-gray);font-weight:600;align-self:flex-start}
.td-stale .txt{text-decoration:line-through;text-decoration-color:rgba(107,122,153,.4);text-decoration-thickness:1px;line-height:1.5}
.td-fresh{font-size:14.5px;line-height:1.55;color:var(--text);margin-top:auto;display:flex;flex-direction:column;gap:8px}
.td-fresh .lbl{color:var(--bright-blue);display:inline-flex;align-items:center;gap:7px}
.td-fresh .lbl::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--bright-blue);display:block}
.td-fresh .txt{font-weight:500;color:var(--text);letter-spacing:-.005em}
.td-cta{margin-top:36px;text-align:center}
.td-cta .line{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.4vw,32px);color:var(--text);font-weight:500;line-height:1.25}
.td-cta .line em{color:var(--bright-blue);font-style:italic}
@media(max-width:980px){.td-grid{grid-template-columns:1fr}.td-head{grid-template-columns:1fr;gap:18px}.td-head .td-sub{justify-self:start}.td-section{padding:36px 24px}}

/* Timeline cards (sell-your-home §04) */
.tl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tl-grid > article:nth-child(n+5){grid-column:span 1}
.tl-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 26px 26px;display:flex;flex-direction:column;min-height:220px;transition:border-color .2s,transform .2s,box-shadow .25s}
.tl-card:hover{border-color:var(--bright-blue);transform:translateY(-2px);box-shadow:0 18px 40px rgba(20,30,80,.07)}
.tl-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}
.tl-week{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bright-blue);font-weight:600;background:rgba(42,62,242,.08);padding:6px 10px;border-radius:6px}
.tl-dots{display:flex;gap:5px;margin-top:8px}
.tl-dots i{width:6.5px;height:6.5px;border-radius:50%;background:var(--warm-gray);display:block}
.tl-dots i.on{background:var(--bright-blue)}
.tl-card h3{font-size:18px;font-weight:600;letter-spacing:-.012em;line-height:1.18;color:var(--text);margin-bottom:8px}
.tl-card p{font-size:14px;line-height:1.55;color:var(--muted);margin-top:auto}
@media(max-width:1080px){.tl-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.tl-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.tl-grid{grid-template-columns:1fr}}

/* Footer compliance disclaimer line */
.footer-tcpa{font-size:10.5px;line-height:1.6;color:rgba(255,255,255,.42);max-width:78ch;margin:18px 0 0;letter-spacing:.01em}
.footer-tcpa a{color:rgba(255,255,255,.55);text-decoration:underline;text-underline-offset:2px}

/* Report post (article) layout */
.report-article{padding:80px 0 120px;max-width:760px;margin:0 auto}
.report-article .container{max-width:760px}
.report-article .post-meta{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mid-gray);margin-bottom:18px}
.report-article .post-meta .tag{padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--bright-blue)}
.report-article h1.display{font-size:clamp(44px,5.5vw,76px);line-height:1.02;letter-spacing:-.02em;margin-bottom:24px}
.report-article .lede{font-family:var(--serif);font-size:24px;line-height:1.5;font-style:italic;color:var(--mid-gray);margin-bottom:48px;font-weight:400}
.report-article figure{margin:48px -160px}
.report-article figure img{width:100%;height:auto;border-radius:4px;display:block}
.report-article figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mid-gray);margin-top:12px;text-align:center}
.report-article p{font-size:18px;line-height:1.7;color:var(--ink);margin-bottom:24px}
.report-article .lede + p::first-letter,
.report-article figure + p::first-letter{font-family:var(--serif);font-size:5em;float:left;line-height:.85;padding:6px 14px 0 0;color:var(--deep-blue);font-weight:500}
.report-article h2{font-family:var(--display);font-size:36px;line-height:1.1;letter-spacing:-.015em;margin:64px 0 18px;color:var(--deep-blue)}
.report-article h3{font-family:var(--display);font-size:22px;line-height:1.2;margin:36px 0 12px;color:var(--deep-blue)}
.report-article blockquote{border-left:3px solid var(--bright-blue);padding:8px 0 8px 28px;margin:36px 0;font-family:var(--serif);font-size:28px;line-height:1.3;font-style:italic;color:var(--deep-blue)}
.report-article ul,.report-article ol{margin:0 0 24px 24px;font-size:18px;line-height:1.7}
.report-article li{margin-bottom:8px}
.report-article a{color:var(--bright-blue);text-decoration:underline;text-underline-offset:3px}
.report-article hr{border:none;border-top:1px solid var(--line);margin:48px 0}
.post-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:28px;border-top:1px solid var(--line);margin-top:64px;flex-wrap:wrap}
.post-footer .post-byline{display:flex;flex-direction:column;gap:4px}
.post-share{display:flex;gap:24px;align-items:center}
.post-share a{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mid-gray);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px;transition:color .15s ease, border-color .15s ease}
.post-share a:hover{color:var(--bright-blue);border-bottom-color:var(--bright-blue)}
@media(max-width:560px){.post-footer{flex-direction:column;align-items:flex-start}}
@media(max-width:880px){.report-article figure{margin:36px 0}}

/* Status pages — 404 / thanks */
.status-page{min-height:80vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 24px;background:var(--off-white)}
.status-page .num{font-family:var(--display);font-size:clamp(120px,18vw,260px);line-height:.85;letter-spacing:-.04em;color:var(--deep-blue);margin-bottom:18px}
.status-page .num em{font-family:var(--serif);font-style:italic;color:var(--bright-blue);font-weight:500}
.status-page h1{font-family:var(--display);font-size:clamp(36px,4vw,56px);line-height:1.05;margin-bottom:18px;color:var(--deep-blue)}
.status-page p{max-width:48ch;margin:0 auto 36px;color:var(--mid-gray);font-size:18px;line-height:1.55}
.status-page .actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.lux-aside-card .label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mid-gray);font-weight:600;margin-bottom:24px;display:block}
.lux-aside-card .channel{display:flex;flex-direction:column;gap:4px;padding:18px 0;border-top:1px solid var(--line)}
.lux-aside-card .channel:last-child{border-bottom:1px solid var(--line)}
.lux-aside-card .channel .k{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mid-gray)}
.lux-aside-card .channel .v{font-family:var(--serif);font-size:22px;color:var(--text);font-style:italic}
.lux-aside-card .channel .v.mono{font-family:var(--mono);font-style:normal;font-size:16px;letter-spacing:.04em}

.footer-mid{border-top:1px solid rgba(255,255,255,.10);border-bottom:1px solid rgba(255,255,255,.10);padding:36px var(--gut) 32px;max-width:var(--container);margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;flex-wrap:wrap-between;align-items:flex-start;gap:48px;flex-wrap:wrap}
.footer-mid p{font-size:11px;letter-spacing:.06em;color:rgba(255,255,255,.55);max-width:760px;margin:0 auto}
.footer-mid .micro-bio{font-size:11.5px;line-height:1.7;color:rgba(255,255,255,.42);max-width:720px;letter-spacing:0;font-weight:300}
.footer-mid .footer-tagline{font-family:var(--serif);font-size:30px;line-height:1.15;color:rgba(255,255,255,.92);letter-spacing:0;max-width:none;font-weight:500;flex-shrink:0;margin:0}
.footer-mid .footer-tagline em{font-style:italic;color:var(--soft-blue);font-weight:500}
.footer-bottom{padding:18px var(--gut) 32px;max-width:var(--container);margin:0 auto;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:rgba(255,255,255,.4);letter-spacing:.04em;text-align:center-spacing:.02em}
.footer-bottom a,.footer-legal a{color:rgba(255,255,255,.55);transition:color .2s}
.footer-bottom a:hover,.footer-legal a:hover{color:#fff}
.footer-compliance{padding:28px var(--gut) 14px;max-width:var(--container);margin:0 auto;font-size:11px;color:rgba(255,255,255,.42);line-height:1.7;display:flex;flex-direction:column;gap:18px;text-align:center}
.footer-compliance .compliance-name{color:rgba(255,255,255,.62);letter-spacing:.06em;font-weight:500;text-transform:uppercase;font-size:10.5px;font-family:var(--mono)}
.footer-compliance .compliance-broker{font-size:11.5px;letter-spacing:.01em}
.footer-compliance a{color:rgba(255,255,255,.62);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:1px;transition:.2s}
.footer-compliance a:hover{color:#fff;border-color:rgba(255,255,255,.5)}
.compliance-block{border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);margin:2px 0}
.compliance-offices{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:6px 0;justify-items:center}
.compliance-offices .office{padding:10px 0;display:flex;flex-direction:column;gap:1px;align-items:center}
.compliance-offices .office p{font-size:11.5px;line-height:1.55;color:rgba(255,255,255,.55);margin:0}
.compliance-offices .office .office-state{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.42);margin-bottom:4px}
.compliance-broker-row{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:14px 0 12px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:rgba(255,255,255,.62);letter-spacingg:.01em}
.compliance-broker-row .broker-label{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.42);margin-right:4px;white-space:nowrap}
.compliance-broker-row .dot{color:rgba(255,255,255,.3)}
.compliance-broker-row a{color:rgba(255,255,255,.78);border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:1px;transition:.2s;white-space:nowrap}
.compliance-broker-row a:hover{color:#fff;border-color:rgba(255,255,255,.5)}

/* Co-brand row */
.footer-cobrand{max-width:var(--container);margin:0 auto;padding:32px var(--gut) 18px;display:flex;align-items:center;justify-content:center;gap:32px}
.footer-cobrand .cobrand-mark{display:inline-flex;align-items:center;opacity:.92;transition:opacity .2s}
.footer-cobrand .cobrand-mark:hover{opacity:1}
.footer-cobrand .cobrand-nick img{height:34px;width:auto;display:block}
.footer-cobrand .cobrand-real img{height:32px;width:auto;display:block}
.footer-cobrand .cobrand-divider{width:1px;height:38px;background:rgba(255,255,255,.22)}

/* Media Kit reach line */
.footer-reach .reach-mediakit{margin-top:6px;padding-top:14px!important;border-top:1px solid rgba(255,255,255,.10)}

@media(max-width:880px){
  .footer-top{grid-template-columns:1fr 1fr;gap:36px;padding:56px var(--gut) 40px}
  .footer-cta{grid-column:1/-1;padding-right:0}
  .compliance-offices{grid-template-columns:1fr;gap:6px}
  .footer-cobrand{flex-wrap:wrap;gap:20px;padding:24px var(--gut) 14px}
  .footer-cobrand .cobrand-divider{display:none}
}

/* The Report — browse by category + disclaimer */
.browse-cat{display:flex;flex-direction:column;gap:10px;align-items:flex-start;max-width:560px}
.browse-cat-label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bright-blue);font-weight:600}
.browse-cat-chips{display:flex;flex-wrap:wrap;gap:6px}
.bc-chip{display:inline-flex;align-items:center;padding:7px 14px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:500;color:var(--text);background:#fff;transition:.15s}
.bc-chip:hover{border-color:var(--deep-blue)}
.bc-chip.is-active{background:var(--deep-blue);border-color:var(--deep-blue);color:#fff}
.report-disclaimer{margin:32px auto 0;max-width:62ch;text-align:left;padding-top:24px;border-top:1px solid var(--line)}
.report-disclaimer .rd-italic{font-family:var(--serif);font-style:italic;font-size:16px;line-height:1.5;color:var(--deep-blue);margin-bottom:10px}
.report-disclaimer .rd-body{font-size:14px;line-height:1.6;color:var(--muted)}

/* Modern contact form */
.modern-form{display:flex;flex-direction:column;gap:28px}
.modern-form .mf-row{display:grid;gap:20px}
.modern-form .mf-2col{grid-template-columns:1fr 1fr}
.modern-form .mf-field{position:relative}
.modern-form .mf-field input,
.modern-form .mf-field textarea{width:100%;font:inherit;font-size:16px;color:var(--ink,var(--text));background:transparent;border:none;border-bottom:1px solid var(--line);padding:24px 0 8px;outline:none;transition:border-color .2s;font-family:var(--sans)}
.modern-form .mf-field textarea{resize:vertical;line-height:1.55;padding-top:28px}
.modern-form .mf-field input:focus,
.modern-form .mf-field textarea:focus{border-bottom-color:var(--bright-blue)}
.modern-form .mf-field label{position:absolute;left:0;top:24px;font-size:16px;color:var(--mid-gray);pointer-events:none;transition:.2s ease;font-family:var(--sans)}
.modern-form .mf-field input:focus + label,
.modern-form .mf-field input:not(:placeholder-shown) + label,
.modern-form .mf-field textarea:focus + label,
.modern-form .mf-field textarea:not(:placeholder-shown) + label{top:2px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bright-blue);font-weight:600}
.modern-form .mf-opt{font-size:11px;letter-spacing:.04em;color:var(--mid-gray);text-transform:none;font-weight:400;margin-left:4px}
.modern-form .mf-chips{display:flex;flex-direction:column;gap:14px}
.modern-form .mf-chips-label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bright-blue);font-weight:600}
.modern-form .mf-chip-grid{display:flex;flex-wrap:wrap;gap:8px}
.modern-form .mf-chip-grid input{position:absolute;opacity:0;pointer-events:none}
.modern-form .mf-chip-grid label{display:inline-flex;align-items:center;padding:10px 18px;border:1px solid var(--line);border-radius:999px;font-size:14px;font-weight:500;color:var(--text);cursor:pointer;transition:.15s;background:#fff}
.modern-form .mf-chip-grid label:hover{border-color:var(--deep-blue)}
.modern-form .mf-chip-grid input:checked + label{background:var(--deep-blue);border-color:var(--deep-blue);color:#fff}
.modern-form .mf-submit-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:8px}
.modern-form .mf-response{font-size:13px;color:var(--muted);font-style:italic;font-family:var(--serif);font-size:15px}
.modern-form .mf-disclaimer{font-size:11.5px;line-height:1.6;color:var(--deep-blue);max-width:62ch;margin-top:8px;font-weight:500}
.modern-form .mf-disclaimer a{color:var(--deep-blue);text-decoration:underline;text-underline-offset:2px}
.modern-form .mf-disclaimer em{font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.1em;color:var(--deep-blue);font-weight:600}
/* Dark-bg disclaimer overrides — must beat .modern-form .mf-disclaimer specificity */
.dark-bg .modern-form .mf-disclaimer,
section.dark .modern-form .mf-disclaimer,
[style*="background:var(--deep-blue)"] .modern-form .mf-disclaimer{color:rgba(255,255,255,.82)}
.dark-bg .modern-form .mf-disclaimer a,
section.dark .modern-form .mf-disclaimer a,
[style*="background:var(--deep-blue)"] .modern-form .mf-disclaimer a{color:#fff;text-decoration-color:rgba(255,255,255,.7);font-weight:600}
.dark-bg .modern-form .mf-disclaimer em,
section.dark .modern-form .mf-disclaimer em,
[style*="background:var(--deep-blue)"] .modern-form .mf-disclaimer em{color:#fff}
@media(max-width:680px){
  .modern-form .mf-2col{grid-template-columns:1fr}
}

/* New Dev split section (work-with-me §3) */
.newdev-split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.newdev-edge{padding-top:28px;border-top:1px solid rgba(255,255,255,.18)}
.newdev-edge-kicker{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--soft-blue);text-transform:uppercase;font-weight:600;margin-bottom:14px}
.newdev-edge-line{font-family:var(--sans);font-size:30px;line-height:1.18;letter-spacing:-.01em;color:#fff;font-weight:500;margin-bottom:14px}
.newdev-edge-line .serif{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--soft-blue)}
.newdev-edge-sub{font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.65);max-width:42ch}
.newdev-caps{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.18)}
.newdev-caps li{display:grid;grid-template-columns:56px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.18);align-items:start}
.newdev-caps .cap-num{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--soft-blue);font-weight:600;padding-top:4px}
.newdev-caps .cap-title{font-family:var(--sans);font-size:19px;font-weight:600;letter-spacing:-.005em;color:#fff;margin-bottom:6px}
.newdev-caps .cap-body{font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.72)}
@media(max-width:980px){
  .newdev-split{grid-template-columns:1fr;gap:48px}
  .newdev-edge-line{font-size:26px}
}

/* Buyer process stepper (work-with-me) */
.buyer-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.buyer-stepper .bs-track{position:absolute;top:18px;left:24px;right:24px;height:1px;background:var(--rule);z-index:0}
.buyer-stepper .bs-step{position:relative;background:#fff;border:1px solid var(--rule);border-radius:14px;padding:28px 24px 22px;display:flex;flex-direction:column;gap:10px;z-index:1}
.buyer-stepper .bs-num{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--bright-blue);font-weight:600}
.buyer-stepper .bs-title{font-family:var(--sans);font-size:21px;font-weight:600;letter-spacing:-.005em;color:var(--deep-blue);margin-top:2px}
.buyer-stepper .bs-body{font-size:14.5px;line-height:1.6;color:var(--muted);flex:1}
.buyer-stepper .bs-divider{height:1px;background:var(--rule);margin:6px 0 4px}
.buyer-stepper .bs-payoff{font-family:var(--serif);font-size:16px;line-height:1.45;color:var(--deep-blue);font-style:italic}
.buyer-stepper .bs-payoff-label{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--bright-blue);text-transform:uppercase;font-style:normal;margin-right:8px;padding:2px 7px;background:rgba(42,62,242,.08);border-radius:3px;font-weight:600;vertical-align:1px}
@media(max-width:980px){
  .buyer-stepper{grid-template-columns:repeat(2,1fr)}
  .buyer-stepper .bs-track{display:none}
}
@media(max-width:560px){
  .buyer-stepper{grid-template-columns:1fr}
}

/* Phase cards (sell-your-home process) */
.phase-card{border-radius:18px}
.phase-step{display:grid;grid-template-columns:48px 1fr;gap:22px;padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--rule)}
.phase-step-last{padding-bottom:0;margin-bottom:0;border-bottom:0}
.phase-num{font-family:var(--mono);font-size:13px;color:var(--bright-blue);letter-spacing:.08em;padding-top:4px}
.phase-step h4.h4{font-family:var(--sans);font-size:20px;font-weight:600;letter-spacing:-.005em;margin-bottom:8px;color:var(--deep-blue)}
.phase-step .phase-body{font-size:15.5px;line-height:1.6;color:var(--muted)}
@media(max-width:760px){
  .phase-grid{grid-template-columns:1fr !important}
  .phase-grid aside{min-height:0 !important;padding:32px !important}
  .phase-grid > div:last-child{padding:32px !important}
}

/* Generic editorial section chrome */
section{padding:72px 0}
section.tight{padding:48px 0}
section.dark{background:var(--deep-blue);color:#fff}
section.dark p, section.dark .muted{color:rgba(255,255,255,.7)}
section.dark h1, section.dark h2, section.dark h3{color:#fff}
section.dark .kicker{color:var(--soft-blue)}
section.dark .hairline{background:rgba(255,255,255,.12)}
.section-head{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:end;margin-bottom:48px}
.section-num{font-family:var(--mono);font-size:12px;color:var(--mid-gray);letter-spacing:.05em}
@media(max-width:760px){.section-head{grid-template-columns:1fr;gap:14px;margin-bottom:32px}}

/* Cards */
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px}
.card.dark{background:var(--deep-blue);color:#fff;border-color:rgba(255,255,255,.10)}
.card.ice{background:var(--ice);border-color:transparent}
.card-eyebrow{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}

/* image placeholder */
.ph{position:relative;background:linear-gradient(135deg,#1A2666 0,#2A3EF2 100%);border-radius:14px;overflow:hidden;color:rgba(255,255,255,.85);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.ph::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg, rgba(255,255,255,0.04) 0 12px, transparent 12px 24px);pointer-events:none}
.ph .ph-tag{position:absolute;top:14px;left:14px;background:rgba(0,0,0,.45);padding:4px 10px;border-radius:999px;font-size:10px;letter-spacing:.12em;color:#fff;backdrop-filter:blur(4px)}
.ph.light{background:linear-gradient(135deg,#E9EDF4 0,#C2D7EF 100%);color:var(--deep-blue)}
.ph.light::before{background:repeating-linear-gradient(135deg, rgba(23,23,104,0.06) 0 12px, transparent 12px 24px)}
.ph.warm{background:linear-gradient(135deg,#1a1a1a,#3a3a3a)}

/* reel tile — clickable thumbnail + play overlay */
.reel-tile{position:relative;display:block;overflow:hidden;background:linear-gradient(135deg,#1A2666 0,#2A3EF2 100%);text-decoration:none;color:#fff;transition:transform .35s ease}
.reel-tile::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg, rgba(255,255,255,0.04) 0 12px, transparent 12px 24px);pointer-events:none;z-index:2}
.reel-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:1}
.reel-tile .reel-tag{position:absolute;top:12px;left:12px;background:rgba(0,0,0,.55);padding:4px 10px;border-radius:999px;font-size:10px;letter-spacing:.12em;color:#fff;backdrop-filter:blur(4px);z-index:4;text-transform:uppercase;font-weight:600}
.reel-tile .reel-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--deep-blue);display:flex;align-items:center;justify-content:center;z-index:3;transition:transform .25s ease, background .25s ease;box-shadow:0 4px 18px rgba(0,0,0,.35)}
.reel-tile .reel-play svg{width:16px;height:16px;margin-left:2px}
.reel-tile:hover .reel-play{transform:translate(-50%,-50%) scale(1.12);background:#fff}
.reel-tile:hover img{transform:scale(1.04)}
.reel-tile img{transition:transform .6s ease}

/* Hero with image bg */
.hero-image{position:relative;border-radius:18px;overflow:hidden}
.hero-image .ph{position:absolute;inset:0;border-radius:0}

/* numbered list */
.numbered{counter-reset:n}
.numbered .item{counter-increment:n;display:grid;grid-template-columns:80px 1fr;gap:24px;padding:32px 0;border-top:1px solid var(--line)}
.numbered .item:last-child{border-bottom:1px solid var(--line)}
.numbered .item::before{content:"0" counter(n);font-family:var(--mono);font-size:13px;color:var(--mid-gray)}
.numbered .item h3{font-size:clamp(22px,2vw,32px);letter-spacing:-.02em;margin-bottom:10px}
.numbered .item p{color:var(--muted);max-width:64ch}
@media(max-width:760px){.numbered .item{grid-template-columns:1fr;gap:8px}}

/* Adjacent-Services card pattern (4-up) */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.svc-card{padding:30px 28px 28px;display:flex;flex-direction:column;gap:14px;min-height:340px;transition:transform .25s ease, box-shadow .25s ease}
.svc-card:hover{transform:translateY(-3px);box-shadow:0 24px 48px -28px rgba(13,24,86,.28)}
.svc-card .svc-tag{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bright-blue);font-weight:500;margin:0}
.svc-card h3{font-size:22px;line-height:1.2;letter-spacing:-.01em;margin:0;text-wrap:pretty}
.svc-card p.body{font-size:14.5px;line-height:1.6;color:var(--muted);margin:0}
.svc-card .svc-more{margin-top:auto;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--bright-blue);font-weight:500;text-decoration:none;align-self:flex-start;border-bottom:1px solid transparent;padding-bottom:2px;transition:border-color .2s ease}
.svc-card .svc-more:hover{border-bottom-color:var(--bright-blue)}
.svc-card.is-dark{background:var(--deep-blue);color:#fff;border-color:transparent}
.svc-card.is-dark h3{color:#fff}
.svc-card.is-dark p.body{color:rgba(255,255,255,.78)}
.svc-card.is-dark .svc-tag{color:var(--soft-blue)}
.svc-card.is-dark .svc-more{color:var(--soft-blue)}
.svc-card.is-dark .svc-more:hover{border-bottom-color:var(--soft-blue)}
@media(max-width:1080px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.svc-grid{grid-template-columns:1fr}.svc-card{min-height:0}}

/* "vs." editorial comparison */
.vs-wrap{position:relative;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 30px 60px -40px rgba(13,24,86,.18)}
.vs-head{display:grid;grid-template-columns:1fr 120px 1fr;align-items:stretch}
.vs-head .vs-side{padding:36px 32px 30px;display:flex;flex-direction:column;gap:6px}
.vs-head .vs-side .lab{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.55);font-weight:500}
.vs-head .vs-side .name{font-family:'Cormorant Garamond',serif;font-size:54px;line-height:1;letter-spacing:-.01em;color:#fff;font-weight:500}
.vs-head .vs-side .sub{font-size:13px;color:rgba(255,255,255,.7);margin-top:8px;letter-spacing:.01em}
.vs-head .vs-coop{background:var(--deep-blue)}
.vs-head .vs-condo{background:#fff;color:var(--text)}
.vs-head .vs-condo .lab{color:var(--mid-gray)}
.vs-head .vs-condo .name{color:var(--text);font-style:italic}
.vs-head .vs-condo .sub{color:var(--muted)}
.vs-head .vs-divider{background:linear-gradient(180deg,var(--deep-blue) 0%, var(--deep-blue) 50%, #fff 50%, #fff 100%);position:relative;display:flex;align-items:center;justify-content:center}
.vs-head .vs-divider .vs-badge{position:absolute;width:80px;height:80px;border-radius:999px;background:var(--bright-blue);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:32px;font-weight:500;box-shadow:0 14px 32px -10px rgba(31,55,255,.55), 0 0 0 6px #fff}
.vs-row{display:grid;grid-template-columns:1fr 120px 1fr;border-top:1px solid var(--line);align-items:stretch;transition:background .2s ease}
.vs-row:hover .vs-cat{color:var(--bright-blue)}
.vs-row .vs-cell{padding:26px 30px;font-size:15.5px;line-height:1.55;display:flex;align-items:center}
.vs-row .vs-cell.left{color:var(--text);background:#fcfcfb;border-right:1px solid var(--line);justify-content:flex-end;text-align:right}
.vs-row .vs-cell.right{color:var(--text);border-left:1px solid var(--line)}
.vs-row .vs-cat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--off-white);transition:color .2s ease}
.vs-row .vs-cat .num{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--mid-gray);font-weight:500}
.vs-row .vs-cat .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--deep-blue);text-align:center;line-height:1.2;padding:0 6px}
@media(max-width:880px){
  .vs-head, .vs-row{grid-template-columns:1fr}
  .vs-head .vs-divider{height:64px;background:linear-gradient(90deg,var(--deep-blue) 0%, var(--deep-blue) 50%, #fff 50%, #fff 100%)}
  .vs-head .vs-side .name{font-size:42px}
  .vs-row .vs-cell.left, .vs-row .vs-cell.right{justify-content:flex-start;text-align:left;border-right:none;border-left:none}
  .vs-row .vs-cell.left{border-bottom:1px solid var(--line);background:#fcfcfb}
  .vs-row .vs-cat{padding:10px 14px;flex-direction:row;gap:10px;justify-content:flex-start;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
}

/* Comparison table */
.compare{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.compare-head{display:grid;grid-template-columns:1fr 1fr;background:var(--off-white);border-bottom:1px solid var(--line)}
.compare-head > div{padding:18px 24px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--mid-gray);font-weight:600}
.compare-head > div:first-child{border-right:1px solid var(--line)}
.compare-head > div:last-child{color:var(--deep-blue)}
.compare-row{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.compare-row > div{padding:22px 24px;font-size:15px;color:var(--muted)}
.compare-row > div:first-child{border-right:1px solid var(--line);background:#fcfcfb}
.compare-row > div:last-child{color:var(--text)}
.compare-row:first-child{border-top:none}
@media(max-width:760px){
  .compare-head, .compare-row{grid-template-columns:1fr}
  .compare-head > div:first-child, .compare-row > div:first-child{border-right:none;border-bottom:1px solid var(--line)}
}

/* Editorial comparison: Standard vs How I Work */
.cmp-grid[data-cmp-mode="split"] .cmp-row{
  display:grid;grid-template-columns:160px 1fr 1fr;gap:24px;align-items:stretch;
  padding:28px 0;border-top:1px solid var(--line);
}
.cmp-grid[data-cmp-mode="split"] .cmp-row:first-of-type{border-top:none}
.cmp-grid .cmp-topic{display:flex;align-items:center;gap:14px}
.cmp-num{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--mid-gray);background:var(--ice);border-radius:999px;padding:6px 10px}
.cmp-label{font-family:var(--serif);font-style:italic;font-size:24px;color:var(--deep-blue)}
.cmp-side{padding:24px;border-radius:14px}
.cmp-side .cmp-pill{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:5px 10px;border-radius:999px;margin-bottom:12px}
.cmp-side p{font-size:16px;line-height:1.55}
.cmp-grid[data-cmp-mode="split"] .cmp-standard{background:var(--off-white);border:1px solid var(--line);position:relative}
.cmp-grid[data-cmp-mode="split"] .cmp-standard .cmp-pill{background:#fff;color:var(--mid-gray);border:1px solid var(--line)}
.cmp-grid[data-cmp-mode="split"] .cmp-standard p{color:var(--mid-gray);text-decoration:line-through;text-decoration-color:rgba(110,114,123,.4);text-decoration-thickness:1px}
.cmp-grid[data-cmp-mode="split"] .cmp-standard::before{content:"×";position:absolute;top:18px;right:20px;font-size:22px;color:var(--mid-gray);line-height:1}
.cmp-grid[data-cmp-mode="split"] .cmp-nick{background:var(--deep-blue);color:#fff;border:1px solid var(--deep-blue);position:relative}
.cmp-grid[data-cmp-mode="split"] .cmp-nick .cmp-pill{background:rgba(255,255,255,.12);color:var(--soft-blue)}
.cmp-grid[data-cmp-mode="split"] .cmp-nick p{color:rgba(255,255,255,.92)}
.cmp-grid[data-cmp-mode="split"] .cmp-nick::before{content:"";position:absolute;top:22px;right:22px;width:14px;height:14px;border:1.5px solid var(--soft-blue);border-radius:50%;background:linear-gradient(135deg,transparent 49%,var(--soft-blue) 49%,var(--soft-blue) 51%,transparent 51%)}

/* Toggle (single column flip mode) */
.cmp-toggle{display:inline-flex;position:relative;background:var(--off-white);border:1px solid var(--line);border-radius:999px;padding:6px;margin-bottom:36px;gap:0;overflow:hidden}
.cmp-toggle-btn{position:relative;z-index:2;background:transparent;border:0;font:inherit;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--mid-gray);padding:10px 22px;border-radius:999px;cursor:pointer;transition:color .25s ease}
.cmp-toggle-btn.is-active{color:#fff}
.cmp-toggle-pill{position:absolute;top:6px;left:6px;height:calc(100% - 12px);background:var(--deep-blue);border-radius:999px;transition:transform .35s cubic-bezier(.4,.1,.2,1),width .35s cubic-bezier(.4,.1,.2,1);z-index:1}
.cmp-toggle[hidden]{display:none !important}

/* Toggle mode: only show one column at a time */
.cmp-grid[data-cmp-mode="toggle"] .cmp-row{
  display:grid;grid-template-columns:160px 1fr;gap:24px;align-items:stretch;
  padding:18px 0;border-top:1px solid var(--line);
}
.cmp-grid[data-cmp-mode="toggle"] .cmp-row:first-of-type{border-top:none}
.cmp-grid[data-cmp-mode="toggle"] .cmp-side{padding:20px 24px}
.cmp-grid[data-cmp-mode="toggle"][data-active="standard"] .cmp-nick{display:none}
.cmp-grid[data-cmp-mode="toggle"][data-active="nick"] .cmp-standard{display:none}
.cmp-grid[data-cmp-mode="toggle"] .cmp-standard{background:var(--off-white);border:1px solid var(--line)}
.cmp-grid[data-cmp-mode="toggle"] .cmp-standard .cmp-pill{background:#fff;color:var(--mid-gray);border:1px solid var(--line)}
.cmp-grid[data-cmp-mode="toggle"] .cmp-standard p{color:var(--mid-gray)}
.cmp-grid[data-cmp-mode="toggle"] .cmp-nick{background:var(--deep-blue);color:#fff;border:1px solid var(--deep-blue)}
.cmp-grid[data-cmp-mode="toggle"] .cmp-nick .cmp-pill{background:rgba(255,255,255,.12);color:var(--soft-blue)}
.cmp-grid[data-cmp-mode="toggle"] .cmp-nick p{color:rgba(255,255,255,.92)}

@media(max-width:760px){
  .cmp-grid[data-cmp-mode="split"] .cmp-row,
  .cmp-grid[data-cmp-mode="toggle"] .cmp-row{grid-template-columns:1fr}
  .cmp-grid .cmp-topic{margin-bottom:6px}
}

/* Hero variants */
.hero-variant{display:none}
#hero-section[data-hero-mode="current"] .hero-variant[data-hero="current"],
#hero-section[data-hero-mode="strip"] .hero-variant[data-hero="strip"],
#hero-section[data-hero-mode="split"] .hero-variant[data-hero="split"]{display:block}

/* Variant A: hero strip */
.hero-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}
.hero-strip-item{display:flex;flex-direction:column;gap:10px}
.hero-strip-img{aspect-ratio:4/3;border-radius:12px;overflow:hidden;position:relative;background:var(--off-white)}
.hero-strip-img img{width:100%;height:100%;object-fit:cover;display:block}
.hero-strip-img.has-play::after{content:"▶";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--deep-blue);font-size:14px;display:flex;align-items:center;justify-content:center}
.hero-strip-meta{display:flex;align-items:center;gap:10px}
.hero-strip-meta .mono{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--mid-gray)}
.hero-strip-meta .lbl{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--text)}
@media(max-width:760px){.hero-strip{grid-template-columns:repeat(2,1fr)}}

/* Variant B: editorial split */
.hero-split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;min-height:560px}
.hero-split-copy{padding:24px 0}
.hero-split-meta{display:flex;gap:24px;flex-wrap:wrap;margin-top:36px;padding-top:24px;border-top:1px solid var(--line);font-size:13px;color:var(--mid-gray)}
.hero-split-meta strong{color:var(--text);font-weight:700;letter-spacing:.01em}
.hero-split-media{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:560px}
.hsm-tile{position:relative;border-radius:14px;overflow:hidden;background:var(--off-white)}
.hsm-tile img{width:100%;height:100%;object-fit:cover;display:block}
.hsm-video{grid-column:1 / span 2;background:#0d0d40;color:#fff}
.hsm-video .ph{height:100%}
.hsm-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--deep-blue);font-size:18px;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2}
@media(max-width:880px){.hero-split{grid-template-columns:1fr}.hero-split-media{height:auto}}

/* FAQ — numbered, generous spacing */
.faq{border-top:1px solid var(--line);counter-reset:faq}
.faq details{border-bottom:1px solid var(--line);padding:32px 0;counter-increment:faq;transition:padding .25s ease}
.faq details[open]{padding:36px 0 40px}
.faq summary{display:grid;grid-template-columns:72px 1fr 36px;gap:32px;align-items:start;list-style:none;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:counter(faq,decimal-leading-zero);font-family:var(--mono);font-size:14px;font-weight:500;letter-spacing:.04em;color:var(--mid-gray);padding-top:6px;transition:color .25s ease}
.faq details[open] summary::before{color:var(--deep-blue)}
.faq summary h3{font-family:var(--sans);font-size:clamp(19px,1.5vw,24px);font-weight:600;letter-spacing:-.01em;line-height:1.3;color:var(--text);transition:color .25s ease}
.faq summary:hover h3{color:var(--deep-blue)}
.faq summary .plus{justify-self:end;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:300;color:var(--deep-blue);transition:transform .35s ease, background .25s ease, color .25s ease, border-color .25s ease}
.faq details[open] summary .plus{transform:rotate(45deg);background:var(--deep-blue);color:#fff;border-color:var(--deep-blue)}
.faq .answer{padding:18px 36px 0 104px;color:var(--muted);max-width:78ch;line-height:1.7;font-size:16px}
@media(max-width:720px){.faq summary{grid-template-columns:48px 1fr 32px;gap:18px}.faq .answer{padding-left:66px;padding-right:0}}
section.dark .faq{border-color:rgba(255,255,255,.14)}
section.dark .faq details{border-color:rgba(255,255,255,.14)}
section.dark .faq summary::before{color:rgba(255,255,255,.5)}
section.dark .faq summary h3{color:#fff}
section.dark .faq summary:hover h3{color:var(--soft-blue)}
section.dark .faq summary .plus{border-color:rgba(255,255,255,.3);color:#fff}
section.dark .faq details[open] summary .plus{background:#fff;color:var(--deep-blue);border-color:#fff}
section.dark .faq .answer{color:rgba(255,255,255,.78)}

/* Map chip layout — vertical stack so long city names never truncate */
.market-chips{display:flex!important;flex-direction:column;gap:5px;list-style:none;margin:0;padding:0;margin-top:auto}
.market-chips li{display:block;text-align:left;font-size:12px;line-height:1.2;padding:7px 12px;border-radius:8px;background:rgba(255,255,255,.07);color:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.1);letter-spacing:.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.market-chips.chips-light li{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.24)}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease, transform .8s ease}
.reveal.in{opacity:1;transform:none}
.reveal-stagger > *{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;transition-delay:calc(var(--i,0)*80ms)}
.reveal-stagger.in > *{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal,.reveal-stagger>*{opacity:1;transform:none;transition:none}}

/* Hero word fade */
.hero-words .w{display:inline-block;opacity:0;transform:translateY(.5em);animation:wordIn .7s ease forwards;animation-delay:calc(var(--wd,0)*60ms + 100ms)}
@keyframes wordIn{to{opacity:1;transform:none}}
.hero-fade{opacity:0;transform:translateY(10px);animation:heroFadeUp .8s ease forwards;animation-delay:var(--fd,400ms)}
@keyframes heroFadeUp{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.hero-words .w,.hero-fade{opacity:1;transform:none;animation:none}}

/* Map region pulse on load */
.geo-region path.shape{transform-origin:center;transform-box:fill-box}
.geo-region.pulse path.shape{animation:regionPulse 1.4s ease-out}
@keyframes regionPulse{0%{filter:brightness(1)}40%{filter:brightness(1.55)}100%{filter:brightness(1)}}

/* Stat hover reveal */
.stat{position:relative;cursor:default;transition:background .3s ease}
.stat:hover{background:var(--ice)}
.stat .story{display:block;font-size:12px;color:var(--mid-gray);margin-top:8px;max-height:0;opacity:0;overflow:hidden;transition:max-height .35s ease, opacity .25s ease}
.stat:hover .story{max-height:80px;opacity:1}

/* Stat block */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:32px 24px;border-right:1px solid var(--line)}
.stat:last-child{border-right:none}
.stat .num{font-family:var(--sans);font-size:clamp(40px,4vw,64px);font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--deep-blue)}
.stat .lbl{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mid-gray);margin-top:10px}
@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}.stat{border-right:none;border-bottom:1px solid var(--line)}.stat:nth-child(even){border-right:none}.stat:nth-child(odd){border-right:1px solid var(--line)}}

/* Marquee */
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--off-white)}
.marquee-track{display:flex;gap:60px;padding:24px 0;white-space:nowrap;animation:marq 28s linear infinite;font-family:var(--serif);font-style:italic;font-size:clamp(28px,3.2vw,52px);color:var(--deep-blue)}
.marquee-track span{display:inline-flex;align-items:center;gap:60px}
.marquee-track .sep{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--bright-blue)}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Page hero */
.page-hero{padding:80px 0 60px;border-bottom:1px solid var(--line)}
.page-hero .kicker{margin-bottom:24px}
.page-hero h1{margin-bottom:24px}
.page-hero .lede{max-width:62ch;color:var(--muted)}

/* === Pattern D — Hover-reveal cards (gentle lift + shadow + arrow nudge) === */
.card{transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease}
a .card,a.card,.card a,.numbered .item,.coverage-tile,.faq details,.reel-tile{transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease}
.card:hover,a.card:hover,a:hover .card,.coverage-tile:hover{transform:translateY(-4px);box-shadow:0 22px 44px rgba(23,23,104,.10);border-color:rgba(23,23,104,.18)}
.card.dark:hover{box-shadow:0 22px 44px rgba(0,0,0,.32);border-color:rgba(255,255,255,.22)}
.numbered .item:hover{background:linear-gradient(90deg, var(--off-white) 0%, transparent 80%)}
.numbered .item{transition:background .3s ease}
/* Arrow nudge on cards containing an .arr glyph */
.card .arr,.coverage-tile .arr{display:inline-block;transition:transform .3s ease}
.card:hover .arr,a:hover .card .arr,.coverage-tile:hover .arr{transform:translate(3px,-3px)}

/* === Pattern C — Sticky split section: image holds while text scrolls; subtle scale via scroll-timeline === */
.split-sticky{position:sticky;top:96px;align-self:start;display:block;will-change:transform;transition:box-shadow .6s ease}
@supports (animation-timeline: view()){
  .split-sticky{animation:splitScale linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
  @keyframes splitScale{
    0%{transform:scale(.985)}
    20%{transform:scale(1)}
    80%{transform:scale(1)}
    100%{transform:scale(1.04)}
  }
}
@media(prefers-reduced-motion:reduce){.split-sticky{animation:none;transform:none}}

/* === Pattern E — Section number kicker: animated hairline that draws in === */
.section-num{position:relative;display:inline-flex;align-items:center}
.section-num::after{content:"";display:inline-block;height:1px;background:currentColor;width:0;margin-left:14px;opacity:.4;transition:width 1s cubic-bezier(.2,.7,.2,1) .15s, opacity .6s ease .15s;align-self:center}
.section-num.in::after,.reveal.in .section-num::after,.in .section-num::after{width:56px;opacity:.55}
section.dark .section-num::after{background:rgba(255,255,255,.6)}
@media(prefers-reduced-motion:reduce){.section-num::after{width:56px;transition:none}}

/* === Coverage section — service-area cards w/ pill tags + full-width property card === */
.coverage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.coverage-card{background:var(--off-white);border:1px solid var(--line);border-radius:18px;padding:26px;display:flex;flex-direction:column;gap:14px}
.coverage-card .cv-icon{width:34px;height:34px;color:var(--deep-blue)}
.coverage-card .cv-icon svg{width:100%;height:100%;display:block}
.coverage-card .cv-mono{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mid-gray);font-weight:600}
.coverage-card h3{font-size:22px;font-weight:600;letter-spacing:-.018em;line-height:1.1;color:var(--text);margin:6px 0 0}
.coverage-card p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
.coverage-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.coverage-tags .pill{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;padding:7px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--text)}
.coverage-tags .pill::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--bright-blue);display:block}
.coverage-wide{margin-top:18px;background:var(--off-white);border:1px solid var(--line);border-radius:18px;padding:26px;display:grid;grid-template-columns:auto 1fr;gap:24px 32px;align-items:center}
.coverage-wide .cv-left{display:flex;flex-direction:column;gap:10px}
.coverage-wide .cv-icon{width:34px;height:34px;color:var(--deep-blue)}
.coverage-wide .cv-icon svg{width:100%;height:100%;display:block}
.coverage-wide h3{font-size:22px;font-weight:600;letter-spacing:-.018em;line-height:1.1;color:var(--text);margin:0 0 6px}
.coverage-wide p{font-size:14px;line-height:1.55;color:var(--muted);margin:0 0 14px;max-width:60ch}
@media(max-width:980px){
  .coverage-grid{grid-template-columns:1fr}
  .coverage-wide{grid-template-columns:1fr;gap:14px;align-items:start}
}


/* ============ Editorial testimonial carousel (.tc-) ============ */
.tc-section{background:var(--deep-blue);color:#fff;border-radius:20px;padding:48px 44px;position:relative;overflow:hidden}
.tc-section::before{content:"";position:absolute;left:44px;top:48px;bottom:48px;width:1px;background:rgba(255,255,255,.08)}
.tc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;margin-bottom:36px;position:relative;z-index:2}
.tc-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:600}
.tc-counter{font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--soft-blue);margin-top:6px}
.tc-arrows{display:flex;gap:10px}
.tc-arrow{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:transparent;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.25s;padding:0}
.tc-arrow:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.5)}
.tc-arrow.is-active{border-color:var(--soft-blue);box-shadow:0 0 0 2px rgba(157,189,255,.18)}
.tc-body{position:relative;z-index:2;padding-left:36px}
.tc-quote{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(22px,2.4vw,34px);line-height:1.3;letter-spacing:-.008em;font-weight:400;color:rgba(255,255,255,.36);margin:0 0 36px;max-width:1100px}
.tc-quote em{font-style:normal;color:#fff;font-weight:500}
.tc-quote::before{content:open-quote}
.tc-quote::after{content:close-quote}
.tc-foot{display:flex;align-items:center;gap:16px;padding-left:36px;position:relative;z-index:2;flex-wrap:wrap}
.tc-avatar{width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--soft-blue);flex-shrink:0}
.tc-meta{display:flex;flex-direction:column;gap:3px}
.tc-name{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:22px;font-weight:500;color:#fff}
.tc-role{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:500}
.tc-divider{width:1px;height:32px;background:rgba(255,255,255,.18);margin:0 14px}
.tc-result{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--soft-blue);padding:7px 14px;border:1px solid rgba(157,189,255,.32);border-radius:999px}
.tc-result::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--soft-blue)}
.tc-slide{display:none}
.tc-slide.is-active{display:block}
@media (max-width:760px){
  .tc-section{padding:32px 24px;border-radius:16px}
  .tc-section::before{left:24px;top:32px;bottom:32px}
  .tc-body,.tc-foot{padding-left:20px}
  .tc-divider{display:none}
}

/* ============ Numbered benefit cards (.nb-) — canonical "what you get" pattern ============
   Use for unranked benefit / capability lists across the site (luxury §01,
   work-with-me §01, anywhere there's an icon + title + body group of 3-6 items).
   Dot indicator is optional and reads as "intensity / position", not strict sequence. */
.nb-section{background:var(--off-white);border-radius:24px;padding:56px 48px;margin-top:32px}
.nb-head{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:end;margin-bottom:36px}
.nb-head .nb-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--mid-gray);margin-bottom:14px;font-weight:600}
.nb-head h2{font-size:clamp(36px,4.4vw,56px);letter-spacing:-.025em;line-height:1.02;font-weight:600}
.nb-head h2 em{font-family:var(--serif);font-style:italic;color:var(--bright-blue);font-weight:500}
.nb-head .nb-sub{font-size:15px;color:var(--muted);max-width:380px;justify-self:end;line-height:1.55}
.nb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.nb-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 26px;display:flex;flex-direction:column;justify-content:space-between;min-height:200px;transition:border-color .2s,transform .2s,box-shadow .25s}
.nb-card:hover{border-color:var(--bright-blue);transform:translateY(-2px);box-shadow:0 18px 40px rgba(20,30,80,.07)}
.nb-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:42px}
.nb-icon{width:32px;height:32px;color:var(--deep-blue);flex-shrink:0}
.nb-icon svg{width:100%;height:100%;display:block}
.nb-dots{display:flex;gap:5px;margin-top:8px}
.nb-dots i{width:6.5px;height:6.5px;border-radius:50%;background:var(--warm-gray);display:block}
.nb-dots i.on{background:var(--bright-blue)}
.nb-card h3{font-size:19px;font-weight:600;letter-spacing:-.012em;line-height:1.18;margin-bottom:8px;color:var(--text)}
.nb-card p{font-size:13.5px;line-height:1.55;color:var(--muted)}
/* Dark variation — for sections on deep-blue backgrounds */
.nb-section.dark{background:var(--deep-blue);color:#fff}
.nb-section.dark h2{color:#fff}
.nb-section.dark h2 em{color:var(--soft-blue)}
.nb-section.dark .nb-head .nb-sub{color:rgba(255,255,255,.7)}
.nb-section.dark .nb-head .nb-kicker{color:rgba(255,255,255,.5)}
.nb-section.dark .nb-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
.nb-section.dark .nb-card:hover{border-color:var(--soft-blue);box-shadow:none}
.nb-section.dark .nb-card h3{color:#fff}
.nb-section.dark .nb-card p{color:rgba(255,255,255,.65)}
.nb-section.dark .nb-icon{color:var(--soft-blue)}
.nb-section.dark .nb-dots i{background:rgba(255,255,255,.16)}
.nb-section.dark .nb-dots i.on{background:var(--soft-blue)}
@media(max-width:980px){.nb-grid{grid-template-columns:1fr}.nb-head{grid-template-columns:1fr;gap:18px}.nb-head .nb-sub{justify-self:start}.nb-section{padding:36px 24px}.nb-top{margin-bottom:24px}}

/* ============ Image-led step cards (.hy-) — canonical "process" pattern ============
   Use whenever a flow has photography to back it. The step counter chip lives on
   the image; dot row reads as "where in the process you are." */
.hy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.hy-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s,transform .25s,box-shadow .25s}
.hy-card:hover{border-color:var(--bright-blue);transform:translateY(-3px);box-shadow:0 18px 40px rgba(20,30,80,.07)}
.hy-img{aspect-ratio:5/3;background:var(--off-white);position:relative;overflow:hidden}
.hy-img img{width:100%;height:100%;object-fit:cover;display:block}
.hy-img .step{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.96);font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--deep-blue);padding:6px 10px;border-radius:999px;font-weight:600}
.hy-img .progress{position:absolute;bottom:14px;left:14px;display:flex;gap:5px;background:rgba(255,255,255,.92);padding:6px 10px;border-radius:999px}
.hy-img .progress i{width:5px;height:5px;border-radius:50%;background:var(--warm-gray);display:block}
.hy-img .progress i.on{background:var(--bright-blue)}
.hy-body{padding:24px 26px 28px;display:flex;flex-direction:column;gap:8px;flex:1}
.hy-body h3{font-size:20px;font-weight:600;letter-spacing:-.014em;line-height:1.18;color:var(--text)}
.hy-body p{font-size:14px;line-height:1.55;color:var(--muted)}
.hy-body .more{margin-top:auto;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--bright-blue);padding-top:14px}
@media(max-width:980px){.hy-grid{grid-template-columns:1fr}}

/* ============ Adjacent Services row (.adj-) — canonical cross-link block ============
   Use at the bottom of every service page. Default is 4 cards; max one accent
   (.adj-card.dark) per row, always in slot 2 for visual rhythm. */
.adj-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.adj-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 26px 24px;display:flex;flex-direction:column;gap:12px;min-height:220px;transition:border-color .2s,transform .2s,box-shadow .25s;color:var(--text)}
.adj-card:hover{border-color:var(--bright-blue);transform:translateY(-2px);box-shadow:0 18px 40px rgba(20,30,80,.07)}
.adj-card .adj-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mid-gray);font-weight:600}
.adj-card h3{font-size:18px;font-weight:600;letter-spacing:-.012em;line-height:1.22;color:var(--text);margin:0}
.adj-card p{font-size:13.5px;line-height:1.55;color:var(--muted);margin:0}
.adj-card .adj-link{margin-top:auto;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--bright-blue);font-weight:600;padding-top:8px}
.adj-card.dark{background:var(--deep-blue);border-color:transparent;color:#fff}
.adj-card.dark:hover{border-color:var(--soft-blue);box-shadow:none}
.adj-card.dark .adj-tag{color:var(--soft-blue)}
.adj-card.dark h3{color:#fff}
.adj-card.dark p{color:rgba(255,255,255,.72)}
.adj-card.dark .adj-link{color:var(--soft-blue)}
@media(max-width:1080px){.adj-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.adj-grid{grid-template-columns:1fr}}

/* ============ Global mobile pass ============
   Tightens spacing, collapses inline 3-col grids,
   shrinks display type bands, neutralizes article
   image bleed. Touches the broad set of layouts that
   don't already have component-specific mobile rules. */

/* Tablet & below */
@media(max-width:880px){
  :root{ --gut: 22px }
  section{padding:56px 0}
  section.tight{padding:36px 0}
  .lux-section{padding:88px 0}
  /* Inline 3-col grids used in the-report.html, the report
     index, "Where to Watch", "compliance-offices", etc. */
  [style*="grid-template-columns:repeat(3,1fr)"]{
    grid-template-columns:repeat(2,1fr) !important;
  }
  .compliance-offices{grid-template-columns:repeat(2,1fr) !important}
  /* Inline 2-col / 1.4fr+1fr+1fr grids */
  [style*="grid-template-columns:1.4fr 1fr 1fr"]{
    grid-template-columns:1fr !important;
  }
  /* Cards that use inline padding:32px → tighten */
  [style*="padding:32px"]{padding:24px !important}
  [style*="padding:34px"]{padding:24px !important}
  [style*="padding:40px"]{padding:28px !important}
  [style*="padding:48px"]{padding:32px !important}
  [style*="padding:56px"]{padding:36px !important}
  /* Article hero bleeds already pull to ~24/22px gutter */
  .report-article{font-size:16.5px}
}

/* Phones */
@media(max-width:640px){
  :root{ --gut: 18px }
  html,body{font-size:15.5px}
  section{padding:44px 0}
  section.tight{padding:28px 0}
  .lux-section{padding:64px 0}
  .nav{height:68px;gap:12px}
  /* All inline 3-col grids → single column on phones */
  [style*="grid-template-columns:repeat(3,1fr)"]{
    grid-template-columns:1fr !important;
  }
  .compliance-offices{grid-template-columns:1fr !important;gap:14px}
  /* Inline 2-col grids */
  [style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr !important;
  }
  [style*="grid-template-columns:repeat(2,1fr)"]{
    grid-template-columns:1fr !important;
  }
  /* Card-y padding bumps */
  [style*="padding:32px"]{padding:20px !important}
  [style*="padding:34px"]{padding:20px !important}
  [style*="padding:40px"]{padding:22px !important}
  [style*="padding:48px"]{padding:24px !important}
  [style*="padding:56px"]{padding:28px !important}
  [style*="padding:64px"]{padding:32px !important}
  /* Buttons — slightly more tappable, less wide */
  .btn{padding:13px 20px;font-size:13.5px}
  /* Section head — already collapses at 760px but tighten margin */
  .section-head{margin-bottom:24px}
  /* Numbered list - drop counter column */
  .numbered .item{padding:22px 0}
  .numbered .item::before{font-size:11px;margin-bottom:4px}
  /* Footer top - already collapsed at 880, tighten further */
  .footer-top{grid-template-columns:1fr !important;gap:32px !important;padding:44px var(--gut) 32px !important}
  .footer-cta{padding-right:0}
  /* FAQ - tighten plus button column */
  .faq summary{grid-template-columns:38px 1fr 28px;gap:14px}
  .faq details{padding:22px 0}
  .faq details[open]{padding:24px 0 28px}
  .faq .answer{padding-left:52px;font-size:15px}
  /* Article body */
  .report-article p,.report-article ul,.report-article ol{font-size:16px}
  .report-article h2{font-size:26px;margin:40px 0 14px}
  .report-article h3{font-size:19px;margin:28px 0 10px}
  .report-article blockquote{font-size:20px;padding-left:18px;margin:24px 0}
  .report-article .lede + p::first-letter,
  .report-article figure + p::first-letter{font-size:3.6em;padding:4px 10px 0 0}
  /* Hero strip — full single column on small phones */
  .hero-strip{grid-template-columns:1fr}
  /* Marquee — smaller on phones */
  .marquee-track{font-size:24px;gap:36px}
  .marquee-track span{gap:36px}
}
