/* Red Ball Commercial Group website.
   Brand law: brand/BRAND-LAW.md in the second brain. Four colors, Lato only, no gradients,
   no frosted panels, light gray is structural only (hairlines and large fields, never small type).
   Luxury here comes from scale, space, weight contrast within Lato, and exact motion.
   Corners are square everywhere: the layout is architectural, not soft. */

:root {
  --red: #A6192E;
  --ink: #333F48;
  --rule: #A2AAAD;
  --white: #FFFFFF;
  --rule-on-ink: rgba(162, 170, 173, .45);

  --shell: 1360px;
  --gutter: clamp(1.25rem, 4.5vw, 3.5rem);
  --ease: cubic-bezier(0.32, 0.72, 0, 1);

  /* z-index scale: masthead over page, menu over masthead */
  --z-masthead: 10;
  --z-menu: 20;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--white);
  color: var(--ink);
  font-family: Lato, "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  font-size: 1.125rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { background: var(--red); color: var(--white); }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
p { margin: 0 0 1.1em; }
h1, h2, h3 { margin: 0; font-weight: 300; letter-spacing: -.025em; line-height: 1; }
strong { font-weight: 900; }

.shell { width: 100%; max-width: var(--shell); margin: 0 auto; padding: 0 var(--gutter); }
.skip { position: absolute; left: -999px; top: 0; background: var(--white); color: var(--ink); padding: .75rem 1rem; z-index: var(--z-menu); }
.skip:focus { left: 1rem; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }

/* Small labels: tracked capitals, always full-strength color, never light gray */
.label { font-size: .75rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; margin: 0; }

/* ---------- Masthead ---------- */
.masthead { position: relative; z-index: var(--z-masthead); background: var(--white); color: var(--ink); }
.masthead__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; height: 96px; }
.masthead__right { display: flex; align-items: center; gap: clamp(1.5rem, 2.6vw, 2.75rem); }
.lockup img { height: 34px; width: auto; }
.flag { display: block; width: 21px; height: 16px; }
.nav { display: flex; gap: clamp(1rem, 2.6vw, 2.75rem); } /* Same gap as the Contact button, 11/02/26 */
.nav a { position: relative; white-space: nowrap; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; padding: .5rem 0; }
.nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--red); transform: scaleX(0); transform-origin: right; transition: transform .6s var(--ease); }
.nav a:hover::after, .nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.nav__toggle { display: none; }
/* Contact is the always-visible next step, desktop and phone (Michelle, 10/19/26: "Action first" menu). */
.nav__cta { background: var(--red); color: var(--white); font: 700 .72rem/1 Lato, sans-serif; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; padding: .8rem 1.1rem; white-space: nowrap; transition: background .4s var(--ease); }
.nav__cta:hover, .nav__cta[aria-current="page"] { background: var(--ink); }
.lockup { flex-shrink: 0; } /* the lockup never squeezes; the header gives way instead */
/* Phones: the header is full (lockup, flag, Menu), so Contact rides as a red bar along the bottom of the screen. */
@media (max-width: 720px) {
  .masthead__right > .nav__cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1; text-align: center; font-size: .78rem; letter-spacing: .22em; padding: 1.1rem 1rem calc(1.1rem + env(safe-area-inset-bottom)); }
  .masthead__right > .nav__cta[aria-current="page"] { display: none; }
  body { padding-bottom: calc(3rem + env(safe-area-inset-bottom)); }
}

@media (max-width: 1320px) {
  .nav__toggle { display: inline-block; background: none; border: 1px solid var(--ink); color: var(--ink); font: 700 .75rem/1 Lato, sans-serif; letter-spacing: .2em; text-transform: uppercase; padding: .8rem 1.1rem; cursor: pointer; }
  .nav { position: fixed; inset: 0; z-index: var(--z-menu); background: var(--ink); color: var(--white); flex-direction: column; justify-content: center; padding: 0 var(--gutter); gap: 1.1rem; visibility: hidden; opacity: 0; transition: opacity .6s var(--ease), visibility 0s .6s; }
  .nav.is-open { visibility: visible; opacity: 1; transition: opacity .6s var(--ease); }
  .nav a { font-size: clamp(2.25rem, 9vw, 3.5rem); font-weight: 300; letter-spacing: -.025em; text-transform: none; line-height: 1.1; transform: translateY(1.5rem); opacity: 0; transition: transform .8s var(--ease), opacity .8s var(--ease); }
  .nav.is-open a { transform: none; opacity: 1; }
  .nav.is-open a:nth-of-type(2) { transition-delay: .05s; }
  .nav.is-open a:nth-of-type(3) { transition-delay: .1s; }
  .nav.is-open a:nth-of-type(4) { transition-delay: .15s; }
  .nav.is-open a:nth-of-type(5) { transition-delay: .2s; }
  .nav.is-open a:nth-of-type(6) { transition-delay: .25s; }
  .nav a::after { display: none; }
  .nav__close { position: absolute; top: 1.6rem; right: var(--gutter); border-color: rgba(255,255,255,.7) !important; color: var(--white) !important; }
  .lockup img { height: 26px; }
}
@media (min-width: 1321px) { .nav__close { display: none; } }
@media (max-width: 480px) { .lockup img { height: 21px; } .masthead__inner, .masthead__right { gap: .75rem; } }
@media (max-width: 360px) { .lockup img { height: 17px; } .masthead__right > .nav__toggle { padding: .8rem .9rem; } }

/* ---------- Buttons: a precise sweep, never a color swap ---------- */
.cta { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; background: var(--red); color: var(--white); text-decoration: none; font-weight: 700; font-size: .78rem; letter-spacing: .22em; text-transform: uppercase; padding: 1.25rem 2rem; white-space: nowrap; transition: color .5s var(--ease), transform .2s var(--ease); }
.cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--white); transform: scaleX(0); transform-origin: right; transition: transform .6s var(--ease); }
.cta:hover { color: var(--red); }
.cta:hover::before { transform: scaleX(1); transform-origin: left; }
.cta:active { transform: scale(.985); }
.textlink { position: relative; display: inline-block; font-weight: 700; font-size: .78rem; letter-spacing: .22em; text-transform: uppercase; text-decoration: none; padding-bottom: .5rem; }
.textlink::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--red); transform-origin: left; transition: transform .6s var(--ease); }
.textlink:hover::after { transform: scaleX(.35); }

/* ---------- Headline line masks ---------- */
/* The reveal mask must not clip descenders (the g in Angeny) or ascenders: pad it, then pull the layout back. */
.lines .line { display: block; overflow: hidden; padding: .1em 0 .26em; margin: -.1em 0 -.26em; }
.lines .line > span { display: inline-block; }
h1.lines, h2.lines { max-width: none; }

/* ---------- Hero ---------- */
/* The first screen of every page earns the scroll (Michelle, 10/19/26): the opening stops short of the fold and the
   next section's headline starts on screen, so no page looks finished at first glance (no "false bottom"). */
.hero + .section { padding-top: clamp(2.75rem, 4vw, 4.5rem); }
.hero { background: var(--ink); color: var(--white); min-height: calc(86dvh - 96px); display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(4rem, 9vh, 6rem) 0 clamp(2.5rem, 6vh, 4.5rem); }
.hero h1 { font-size: clamp(4.25rem, 13.5vw, 13rem); line-height: .9; letter-spacing: -.025em; }
/* Home hook "Stop guessing. / Start knowing." (10/19/26): twice the length of "Are you / ready?", so it is sized to
   hold two lines on a desktop and keep the subline and the seven answers above the fold. */
.hero--photo h1 { font-size: clamp(3.25rem, min(8.4vw, 12.5vh), 8.5rem); } /* width and height: short laptops keep the next section in view */
.hero__sub { margin: 2.25rem 0 0; font-size: clamp(1.15rem, 1.5vw, 1.4rem); font-weight: 300; line-height: 1.55; max-width: 38ch; }

/* Readiness meter: one question at a time. The sphere advances with each answer, then rolls
   along the same line to the visitor's score. The line is never filled: position carries it. */
.ready { margin-top: clamp(3rem, 8vh, 5.5rem); }
.ready__track { position: relative; border-top: 1px solid var(--rule-on-ink); }
.ready__ball { position: absolute; top: -12px; left: 0; width: 24px; height: 24px; pointer-events: none; transition: transform 1.4s var(--ease); }
.ready__zones { display: grid; grid-template-columns: repeat(3, 1fr); padding-top: .9rem; opacity: 0; transition: opacity .8s var(--ease); }
.ready__zones span { font-size: .72rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.ready__zones span:nth-child(2) { text-align: center; }
.ready__zones span:nth-child(3) { text-align: right; }
.ready.is-result .ready__zones { opacity: 1; }
.ready__stage { min-height: 12rem; padding-top: 2rem; }
.ready__stage > * { animation: stage-in .8s var(--ease) both; }
.ready__q { font-size: clamp(1.5rem, 2.4vw, 2.25rem); font-weight: 300; letter-spacing: -.02em; line-height: 1.2; margin: 0 0 1.75rem; max-width: 34ch; }
.ready__answers { display: flex; flex-wrap: wrap; gap: .75rem; }
.ready__answer { position: relative; isolation: isolate; overflow: hidden; appearance: none; background: none; color: var(--white); border: 1px solid rgba(255,255,255,.75); font: 700 .78rem/1 Lato, sans-serif; letter-spacing: .2em; text-transform: uppercase; padding: 1.15rem 1.5rem; cursor: pointer; transition: color .5s var(--ease), transform .2s var(--ease); }
.ready__answer::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--white); transform: scaleX(0); transform-origin: right; transition: transform .55s var(--ease); }
.ready__answer:hover { color: var(--ink); }
.ready__answer:hover::before { transform: scaleX(1); transform-origin: left; }
.ready__answer:active { transform: scale(.985); }
.ready__foot { display: flex; gap: 1.75rem; align-items: center; margin-top: 1.75rem; }
.ready__count { font-size: .72rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.ready__link { appearance: none; background: none; border: 0; color: var(--white); font: 700 .72rem/1 Lato, sans-serif; letter-spacing: .24em; text-transform: uppercase; padding: .35rem 0; cursor: pointer; border-bottom: 1px solid rgba(255,255,255,.75); }
.ready__result { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 1.5rem clamp(2rem, 5vw, 5rem); align-items: start; }
.ready__tier { font-size: clamp(2rem, 3.6vw, 3.25rem); font-weight: 300; letter-spacing: -.025em; line-height: 1.08; margin: 0 0 1rem; }
.ready__msg { font-size: 1.15rem; font-weight: 300; max-width: 44ch; margin: 0; }
.ready__gaps .label { margin: .5rem 0 1rem; }
.ready__gaps ul { list-style: none; margin: 0 0 2rem; padding: 0; }
.ready__gaps li { padding: .7rem 0; border-bottom: 1px solid var(--rule-on-ink); font-size: 1.05rem; }
.ready__actions { display: flex; flex-wrap: wrap; gap: 1.5rem 2rem; align-items: center; }
.ready__note { font-size: .9rem; margin: 1.25rem 0 0; }
@keyframes stage-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

@media (max-width: 760px) {
  .ready__answers { flex-direction: column; }
  .ready__answer { width: 100%; text-align: left; }
  .ready__result { grid-template-columns: 1fr; }
  .ready__zones span { font-size: .62rem; letter-spacing: .16em; }
}

/* ---------- Sections ---------- */
.section { padding: clamp(2.5rem, 4.5vw, 3.75rem) 0; } /* Tightened again 11/06/26 (Michelle): "just enough of the next section to know there is more", every page */
.section--ink { background: var(--ink); color: var(--white); }
.display { font-size: clamp(2.75rem, 6.8vw, 6.5rem); line-height: .98; letter-spacing: -.025em; max-width: 15ch; }
.offset { margin-top: clamp(3rem, 6vw, 5rem); margin-left: auto; width: min(100%, 42rem); }
.offset p { font-size: 1.2rem; font-weight: 300; line-height: 1.75; }
.offset .pull { font-size: clamp(1.6rem, 2.8vw, 2.4rem); font-weight: 900; letter-spacing: -.025em; line-height: 1.15; margin: 2.5rem 0; }

/* Discretion: three lines, one idea */
.discretion__lines { font-size: clamp(3.25rem, 10vw, 10rem); line-height: .95; letter-spacing: -.025em; }
.discretion__lines .line:nth-child(3) > span { font-weight: 900; }
.discretion__foot { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; margin-top: clamp(3rem, 6vw, 5rem); padding-top: 2rem; border-top: 1px solid var(--rule); }
.discretion__foot p { margin: 0; font-size: 1.2rem; font-weight: 300; max-width: 40ch; }
.discretion__foot p + p { justify-self: end; }
@media (max-width: 760px) { .discretion__foot { grid-template-columns: 1fr; } .discretion__foot p + p { justify-self: start; } }

/* The method: the sphere travels down the track as each step comes into view */
.method { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 7vw, 7rem); }
.method__head { position: sticky; top: 4rem; align-self: start; }
.method__head p { margin: 2rem 0 2.25rem; font-size: 1.2rem; font-weight: 300; max-width: 30ch; }
.steps { position: relative; padding-left: clamp(2rem, 4vw, 3.5rem); border-left: 1px solid var(--rule); }
.steps ol { list-style: none; margin: 0; padding: 0; }
.steps__ball { position: absolute; left: -11px; top: 0; width: 21px; height: 21px; transition: transform 1.1s var(--ease); }
.step { padding: 0 0 clamp(3.5rem, 7vw, 5.5rem); }
.step:last-child { padding-bottom: 0; }
.step h3 { font-size: clamp(1.9rem, 3.2vw, 3rem); letter-spacing: -.025em; line-height: 1.05; margin-bottom: 1.1rem; transition: color .6s var(--ease); }
.js .step.is-active h3 { color: var(--red); }
.step p { margin: 0; max-width: 50ch; font-weight: 300; font-size: 1.1rem; }
.step--pass { padding-top: clamp(1rem, 3vw, 2.5rem); }
.step--pass h3 { font-size: clamp(2.2rem, 3.8vw, 3.6rem); }
@media (max-width: 900px) { .method { grid-template-columns: 1fr; } .method__head { position: static; } }

/* Marketing statement */
.statement { font-size: clamp(2.5rem, 6.2vw, 6rem); line-height: 1; letter-spacing: -.025em; max-width: 17ch; }
.statement__foot { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: end; margin-top: clamp(3.5rem, 7vw, 6rem); padding-top: 2rem; border-top: 1px solid var(--rule-on-ink); }
.statement__foot p { margin: 0; font-size: 1.2rem; font-weight: 300; max-width: 44ch; }
@media (max-width: 760px) { .statement__foot { grid-template-columns: 1fr; } }

/* The advisor: the portrait runs to the page edge */
.person { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100dvh; }
.person__media { position: relative; overflow: hidden; background: var(--ink); }
.person__photo { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; filter: grayscale(1) contrast(1.05); }
.person__body { display: flex; flex-direction: column; justify-content: center; padding: clamp(4rem, 8vw, 8rem) var(--gutter) clamp(4rem, 8vw, 8rem) clamp(2.5rem, 6vw, 6.5rem); max-width: 46rem; }
.person h2 { font-size: clamp(2.75rem, 5vw, 4.75rem); letter-spacing: -.025em; }
.person__body .person__role { margin: 1.5rem 0 2.5rem; font-size: .75rem; font-weight: 700; letter-spacing: .2em; line-height: 2; max-width: none; }
.person__body p { font-size: 1.2rem; font-weight: 300; max-width: 42ch; }
.person__body .person__close { font-size: clamp(1.4rem, 2vw, 1.8rem); font-weight: 900; letter-spacing: -.02em; line-height: 1.3; margin: 2rem 0 3rem; max-width: 24ch; }
.tenure { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 1rem 0 3rem; padding-top: 1.75rem; border-top: 1px solid var(--rule); }
.tenure div { margin: 0; }
.tenure dt { font-size: clamp(2.5rem, 4vw, 3.75rem); font-weight: 300; letter-spacing: -.025em; line-height: 1; }
.tenure dd { margin: .75rem 0 0; font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; line-height: 1.5; }
@media (max-width: 900px) {
  .person { grid-template-columns: 1fr; min-height: 0; }
  .person__media { aspect-ratio: 4 / 5; }
  .person__body { padding: 4rem var(--gutter); }
}

@media (max-width: 600px) { .tenure dd { letter-spacing: .1em; font-size: .66rem; } }

/* Who we work with */
.who { margin-top: clamp(3.5rem, 7vw, 5.5rem); border-top: 1px solid var(--rule); }
.who__item { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1rem 2rem; align-items: baseline; padding: 2rem 0; border-bottom: 1px solid var(--rule); }
.who__item h3 { font-size: clamp(1.5rem, 2.4vw, 2.25rem); letter-spacing: -.025em; line-height: 1.1; }
.who__item p { margin: 0; font-weight: 300; font-size: 1.15rem; }
@media (max-width: 760px) { .who__item { grid-template-columns: 1fr; } }
/* Home, the short StoryBrand page (Michelle, 10/19/26: "less words... visually allow clicks... 5 seconds"):
   the opening (hook, a real question, the red ball slider), the levers, three steps, one close. */
.plan3__list { list-style: none; margin: clamp(2.5rem, 5vw, 4rem) 0 2.5rem; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem clamp(1.5rem, 3vw, 3rem); }
.plan3__list li { border-top: 1px solid var(--rule); padding-top: 1.5rem; }
.plan3__n { display: block; font-size: clamp(3rem, 6vw, 5rem); font-weight: 300; line-height: 1; letter-spacing: -.03em; }
.plan3__list h3 { margin: 1rem 0 .5rem; font-size: clamp(1.35rem, 2vw, 1.75rem); font-weight: 900; letter-spacing: -.02em; line-height: 1.15; }
.plan3__list p { margin: 0; font-weight: 400; }
@media (max-width: 760px) { .plan3__list { grid-template-columns: 1fr; } }

/* Close */
.close h2 { font-size: clamp(3rem, 8vw, 8rem); line-height: .95; letter-spacing: -.025em; max-width: 13ch; }
.close p { font-size: clamp(1.2rem, 1.7vw, 1.5rem); font-weight: 300; margin: 2.25rem 0 3rem; }

/* ---------- Footer: the Hub banner, then the directory ---------- */
.footer { background: var(--white); color: var(--ink); padding: 0 0 3.5rem; }
.signature { display: grid; grid-template-columns: auto auto auto; justify-content: space-between; align-items: center; gap: 2rem; padding: clamp(3.5rem, 6vw, 5rem) 0; border-bottom: 1px solid var(--rule); }
.signature > * + * { padding-left: 2rem; border-left: 1px solid var(--rule); }
.signature__lockup { height: 38px; width: auto; }
.signature__tagline { height: 22px; width: auto; }
.signature__hold { display: flex; align-items: center; gap: 1rem; margin: 0; font-weight: 900; font-size: 1.05rem; line-height: 1.3; letter-spacing: -.01em; }
.signature__hold img { width: 26px; height: 26px; flex: none; }
@media (max-width: 1000px) {
  .signature { grid-template-columns: 1fr; justify-content: start; }
  .signature > * + * { padding-left: 0; border-left: 0; }
  .signature__tagline { height: auto; width: min(100%, 420px); }
}
.footer__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; padding-top: 3.5rem; }
.footer h4 { margin: 0 0 1.25rem; font-size: .72rem; letter-spacing: .24em; text-transform: uppercase; font-weight: 700; }
.footer ul { list-style: none; margin: 0; padding: 0; }
.footer li { margin-bottom: .6rem; font-size: .95rem; }
.footer a { text-decoration: none; }
.footer a:hover { text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 5px; }
.footer__legal { margin-top: 3.5rem; font-size: .85rem; line-height: 1.65; } /* brokerage line on one line where it fits (Michelle, 10/19/26) */
.footer__legal p { margin: 0 0 .5rem; }
@media (max-width: 760px) { .footer__grid { grid-template-columns: 1fr 1fr; } }

/* ---------- Inner pages ---------- */
.hero--page { min-height: 62dvh; }
.hero--page .label { margin-bottom: 2rem; }
.hero--page h1 { font-size: clamp(3.25rem, min(9vw, 12vh), 9rem); }
.two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(3rem, 7vw, 7rem); }
.two__col .display { font-size: clamp(2.25rem, 4.2vw, 4rem); margin-bottom: 2rem; max-width: 17ch; }
.two__col p { font-size: 1.15rem; font-weight: 300; max-width: 44ch; }
.two__col .textlink { margin-top: 1rem; }
@media (max-width: 900px) { .two { grid-template-columns: 1fr; } }

/* Referral form: labels above fields, white rules on dark gray */
.formwrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 7vw, 7rem); }
@media (min-width: 901px) { .formwrap__head .display { font-size: clamp(2.75rem, 4.2vw, 4.5rem); } } /* sized to its column so "Collaborate." fits */
.formwrap__head p { margin-top: 2rem; font-size: 1.2rem; font-weight: 300; max-width: 30ch; }
.form { display: grid; gap: 2rem; }
.form__kind { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .9rem 2.5rem; }
.form__kind legend { margin-bottom: 1rem; }
.form__kind label { display: flex; gap: .85rem; align-items: center; font-size: 1.1rem; cursor: pointer; }
.form__kind input { accent-color: var(--red); width: 18px; height: 18px; }
.form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.form__grid label { display: grid; gap: .6rem; font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
/* Missed required fields (10/19/26): a Red Ball red underline and a "Required" note, nothing louder */
label.is-missing input, label.is-missing select, label.is-missing textarea { border-bottom-color: #A6192E; box-shadow: 0 2px 0 #A6192E; }
label.is-missing::after, fieldset.is-missing legend::after { content: "Required"; display: block; margin-top: .4rem; font-weight: 400; letter-spacing: .08em; text-transform: none; }
.form__wide { grid-column: 1 / -1; }
.form input[type=text], .form input[type=email], .form input[type=tel], .form select, .form textarea { font: 400 1.05rem/1.4 Lato, sans-serif; letter-spacing: 0; text-transform: none; color: var(--white); background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,.75); border-radius: 0; padding: .6rem 0; }
.form select option { color: var(--ink); }
.form textarea { resize: vertical; }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-bottom-color: var(--white); box-shadow: 0 1px 0 0 var(--white); }
.form .cta { justify-self: start; border: 0; cursor: pointer; font-family: Lato, sans-serif; }
.form__note { font-size: .85rem; margin: 0; }
@media (max-width: 900px) { .formwrap { grid-template-columns: 1fr; } .form__grid { grid-template-columns: 1fr; } }

/* ---------- The Network: directory ---------- */
.network__group { margin-top: clamp(3rem, 6vw, 4.5rem); }
.network__group > .label { margin-bottom: 2rem; }
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 2.5rem); }
@media (max-width: 1000px) { .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .cards { grid-template-columns: 1fr; } }
.card { display: grid; gap: .5rem; text-decoration: none; }
.card[hidden] { display: none; }
.card__photo { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; filter: grayscale(1) contrast(1.05); margin-bottom: 1rem; transition: filter .8s var(--ease); }
.card:hover .card__photo, .card:focus-visible .card__photo { filter: none; }
.card__name { font-size: clamp(1.6rem, 2.3vw, 2.1rem); font-weight: 300; letter-spacing: -.025em; line-height: 1.1; }
.card:hover .card__name { color: var(--red); }
.card__title { font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; line-height: 1.8; }
.card__where { font-size: .95rem; font-weight: 300; }
.card__photo--empty, .portrait--empty { display: grid; place-items: center; align-content: center; gap: 1.25rem; background: var(--ink); color: var(--white); filter: none; }
.card__photo--empty img, .portrait--empty img { width: 34%; height: auto; }
.card__photo--empty span, .portrait--empty span { font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.network__none { margin-top: 3rem; }
.network__none p { font-size: 1.2rem; font-weight: 300; max-width: 46ch; }

/* ---------- The Network: one person ---------- */
.hero--person { min-height: 0; padding-top: clamp(3.5rem, 8vw, 6rem); }
.person-hero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: end; }
.person-hero h1 { font-size: clamp(3.5rem, 9vw, 8.5rem); margin-top: 1.75rem; }
.person-hero__more { margin: 2rem 0 0; font-size: 1.1rem; font-weight: 300; line-height: 1.7; }
.person-hero__where { margin: 1.5rem 0 0; font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.portrait { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; }
@media (max-width: 860px) { .person-hero { grid-template-columns: 1fr; } .person-hero__photo { max-width: 26rem; } }
.lifestyle figure { margin: 0; }
.lifestyle figure img { width: 100%; max-height: 88dvh; object-fit: cover; }
.lifestyle figcaption { padding-top: 1.25rem; padding-bottom: 1.25rem; font-size: 1.2rem; font-weight: 300; }
.lifestyle__empty { display: grid; place-items: center; aspect-ratio: 21 / 8; background: var(--rule); color: var(--ink); }
.lifestyle__empty span { font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.person-body { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 6vw, 6rem); }
.person-body__bio p { font-size: 1.25rem; font-weight: 300; line-height: 1.75; max-width: 48ch; }
.person-body__bio p:first-child { font-size: clamp(1.5rem, 2.4vw, 2.1rem); font-weight: 300; letter-spacing: -.02em; line-height: 1.3; }
.person-facts { margin: 0; border-top: 1px solid var(--rule); }
.person-facts > div { padding: 1.25rem 0; border-bottom: 1px solid var(--rule); }
.person-facts dt { font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; margin-bottom: .5rem; }
.person-facts dd { margin: 0; font-size: 1.05rem; line-height: 1.7; }
.person-facts a { text-decoration: none; border-bottom: 1px solid var(--red); }
.tocome, .tocome-inline { font-size: .72rem !important; font-weight: 700 !important; letter-spacing: .2em; text-transform: uppercase; }
@media (max-width: 860px) { .person-body { grid-template-columns: 1fr; } }
.close__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 2.5rem; }
.textlink--light { color: var(--white); }

/* ---------- Motion (only when the visitor has not asked for less) ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js .rise { opacity: 0; transform: translateY(32px); transition: opacity 1.2s var(--ease), transform 1.2s var(--ease); transition-delay: calc(var(--i, 0) * 110ms); }
  .js .rise.is-in { opacity: 1; transform: none; }
  .js .lines .line > span { transform: translateY(105%); transition: transform 1.3s var(--ease); }
  .js .lines .line:nth-child(2) > span { transition-delay: .12s; }
  .js .lines .line:nth-child(3) > span { transition-delay: .24s; }
  .js .lines.is-in .line > span { transform: none; }
  .js .person__photo { transform: scale(1.06); transition: transform 2.4s var(--ease); }
  .js .person__media.is-in .person__photo { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ready__ball, .steps__ball, .nav, .nav a { transition: none; }
  .ready__stage > * { animation: none; }
}

.network__none .cta { margin-top: .5rem; }

/* Advisor pages: read-more bio and plain-language Q&A (AEO) */
.bio-more { margin-top: 1.25rem; }
.bio-more summary { cursor: pointer; color: var(--red); font-weight: 700; letter-spacing: .04em; margin-bottom: 1rem; }
.faq h2.label { margin-bottom: 1.5rem; }
.faq h3 { font-size: 1.15rem; font-weight: 900; margin: 0 0 .25rem; color: var(--ink); }
.faq p { font-size: 1.1rem; font-weight: 300; line-height: 1.7; max-width: 60ch; margin: 0 0 1.5rem; }

/* Heavy display type: the headline tracking is tuned for light weights, so heavy letters touch. Loosen only the bold. */
h1 strong, h2 strong, h3 strong { font-weight: 900; letter-spacing: -.012em; }
h1, h2, h3 { font-kerning: normal; text-rendering: optimizeLegibility; }
/* The full stop on oversized type carries the brand (Michelle, 10/05/26). Display headlines only, never body text. */
.dot { color: var(--red); }

/* Label above an advisor's name: white, with the divider in Red Ball Red (Michelle chose this, 10/06/26). */
.hero--person .label .bar { color: var(--red); }

/* Advisors and agents form on the home page: keep the rows natural height beside the taller heading. */
#agent-form { align-content: start; }
#agent-form .cta { justify-self: start; }

/* What's Hot */
.draftnote { background: #EEEEEE; color: var(--ink); padding: 1rem var(--gutter); font-size: .95rem; line-height: 1.5; max-width: none; }
.draftnote strong { color: var(--red); }
.post__hero { min-height: 0; padding-bottom: clamp(2.5rem, 6vh, 4.5rem); }
.post__title { font-size: clamp(2rem, 4.6vw, 3.9rem); font-weight: 900; letter-spacing: -.02em; line-height: 1.08; max-width: 24ch; margin: 1.25rem 0 1rem; }
.post__date { margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
/* One left edge for the whole post: the hero headline and the body share the shell gutter (Michelle, 10/23/26:
   a centered text column under a left-set headline read as off center). */
.post__wrap > * { max-width: 44rem; }
.post__wrap > .post__stats { max-width: 64rem; }
.post__answer, .post__body p, .post__stat-l { text-wrap: pretty; }
.post__answer { font-size: clamp(1.35rem, 2.2vw, 1.85rem); font-weight: 300; line-height: 1.4; letter-spacing: -.01em; margin: 0 0 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid var(--rule); }
.post__body p, .post__list { font-size: 1.15rem; font-weight: 300; line-height: 1.75; margin: 0 0 1.4rem; }
.post__body strong { font-weight: 900; }
.post__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; margin: 0 0 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid var(--rule); }
@media (min-width: 900px) { .post__stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.post__stat { display: flex; flex-direction: column; gap: .35rem; padding-left: 1rem; border-left: 3px solid var(--red); }
.post__stat-v { font-size: clamp(1.9rem, 3.4vw, 2.6rem); font-weight: 900; line-height: 1.05; letter-spacing: -.02em; color: var(--ink); }
.post__stat-l { font-size: .95rem; line-height: 1.45; color: var(--ink); }

/* ---------- Offering: a live listing on What's Hot (Michelle, 10/23/26: "look like we mean business") ----------
   One rule system: every hairline spans its full grid, same weight, same color. Scale and space do the selling. */
.offer__hero { justify-content: flex-end; }
.hero h1.offer__title { font-size: clamp(2.6rem, 7.4vw, 7.5rem); line-height: .98; letter-spacing: -.03em; margin: 1.5rem 0 0; }
.offer__title .line { white-space: nowrap; }
.offer__foot { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem 3rem; align-items: end; margin-top: clamp(2rem, 4vw, 3rem); }
.offer__lede { margin: 0; font-size: clamp(1.25rem, 1.9vw, 1.6rem); font-weight: 300; line-height: 1.4; max-width: 32ch; text-wrap: balance; }
.offer__actions { display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.offer__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: clamp(3rem, 7vh, 5rem) 0 0; border-top: 1px solid var(--rule-on-ink); }
.offer__stat { display: flex; flex-direction: column; padding: clamp(1.5rem, 3vw, 2.25rem) 1.5rem 0; }
.offer__stat:first-child { padding-left: 0; }
.offer__stat + .offer__stat { border-left: 1px solid var(--rule-on-ink); }
.offer__stat dd { margin: 0; font-size: clamp(2.75rem, 5.5vw, 5rem); font-weight: 900; line-height: 1; letter-spacing: -.03em; }
.offer__stat dt { margin-top: .9rem; font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; line-height: 1.6; max-width: 24ch; }
.offer__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 2rem clamp(2rem, 5vw, 5rem); align-items: start; }
.offer__k { padding-top: .9rem; }
.offer__statement { margin: 0; font-size: clamp(1.9rem, 3.6vw, 3.25rem); font-weight: 300; line-height: 1.15; letter-spacing: -.02em; max-width: 22ch; text-wrap: balance; }
.offer__detail { margin: 2rem 0 0; font-size: 1.15rem; line-height: 1.75; max-width: 46ch; text-wrap: pretty; }
/* Tighter rhythm than the general .section (Michelle, 10/23/26: "close up the spacing between sections"). */
.offer__story, .offer__built, .offer__how, .offer__adv { padding: 0 0 clamp(3.5rem, 6vw, 5rem); }
.offer__story { padding-top: clamp(4rem, 8vw, 6.5rem); }
.offer__adv { padding-bottom: clamp(4.5rem, 8vw, 6.5rem); }
.offer__adv + .close { padding: clamp(4.5rem, 8vw, 7rem) 0; }
.offer__feats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 2rem; }
.offer__feats li { border-top: 2px solid var(--red); padding-top: 1.5rem; }
.offer__feats h3 { font-size: clamp(1.4rem, 2vw, 1.75rem); font-weight: 900; letter-spacing: -.02em; line-height: 1.15; margin: 0 0 .75rem; text-wrap: balance; }
.offer__feats p { margin: 0; font-size: 1rem; line-height: 1.65; text-wrap: pretty; }
.offer__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.offer__steps li { border-top: 1px solid var(--rule); padding-top: 1.5rem; }
.offer__n { display: block; color: var(--red); font-size: .78rem; font-weight: 900; letter-spacing: .2em; margin-bottom: 1.25rem; }
.offer__steps h3 { font-size: 1.3rem; font-weight: 700; letter-spacing: -.01em; line-height: 1.25; margin: 0 0 .6rem; }
.offer__steps p { margin: 0; font-size: 1rem; line-height: 1.65; text-wrap: pretty; }
.offer__person { display: grid; grid-template-columns: clamp(7rem, 12vw, 10rem) minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); align-items: end; border-top: 1px solid var(--rule); padding-top: 2rem; }
.offer__person img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.offer__name { margin: 0 0 .4rem; font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: 900; letter-spacing: -.02em; line-height: 1.1; }
.offer__name a { text-decoration: none; }
.offer__role { margin: 0 0 1.25rem; font-size: 1rem; line-height: 1.6; }
.offer__direct { margin: 0; display: flex; flex-wrap: wrap; gap: .5rem 2rem; font-weight: 700; }
.offer__direct a { text-decoration: none; border-bottom: 1px solid var(--red); padding-bottom: .15rem; }
@media (max-width: 899px) {
  .offer__foot, .offer__grid { grid-template-columns: 1fr; }
  .offer__k { padding-top: 0; }
  .offer__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .offer__stat { padding: 1.5rem 0 1.5rem 1.25rem; }
  .offer__stat:nth-child(odd) { padding-left: 0; border-left: 0; }
  .offer__stat:nth-child(n + 3) { border-top: 1px solid var(--rule-on-ink); }
  .offer__steps, .offer__feats { grid-template-columns: 1fr; }
}
@media (max-width: 559px) {
  .offer__person { grid-template-columns: 1fr; align-items: start; }
  .offer__person img { width: 9rem; }
  .offer__direct a { overflow-wrap: anywhere; }
}
.post__h { font-size: 1.15rem; font-weight: 900; letter-spacing: 0; margin: 2rem 0 .75rem; line-height: 1.3; }
.post__list { padding-left: 1.4rem; }
.post__next { font-weight: 400; border-left: 2px solid var(--red); padding-left: 1.25rem; margin-top: 2rem; }
.post__sources { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--rule); font-size: .95rem; }
.post__sources ol { padding-left: 1.2rem; margin: .75rem 0 0; }
.post__sources a { word-break: break-word; }
.hot__list { display: grid; gap: 0; max-width: 52rem; }
.hot__item { display: grid; gap: .6rem; padding: 2.25rem 0; border-top: 1px solid var(--rule); text-decoration: none; color: var(--ink); }
.hot__item:last-child { border-bottom: 1px solid var(--rule); }
.hot__title { font-size: clamp(1.4rem, 2.4vw, 2rem); font-weight: 900; letter-spacing: -.02em; line-height: 1.15; }
.hot__answer { font-size: 1.05rem; font-weight: 300; line-height: 1.6; max-width: 60ch; }
.hot__date { font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.hot__item:hover .hot__title { color: var(--red); }

/* Who we work with: the audience in Lato Black, the question they ask beneath a short red rule, the support line quieter. */
.who__item h3 { font-weight: 900; }
.who__body { display: grid; gap: .6rem; }
.who__q { font-size: clamp(1.2rem, 2vw, 1.55rem); font-weight: 400; line-height: 1.3; letter-spacing: -.01em; border-left: 2px solid var(--red); padding-left: 1rem; }
.who__d { font-size: 1rem !important; font-weight: 300; line-height: 1.55; padding-left: calc(1rem + 2px); }

.post__legal { font-size: .95rem !important; font-weight: 400 !important; margin-top: 1.5rem; }

.post__credit { font-size: .95rem !important; font-weight: 700 !important; margin-top: 1rem; }

.post__related { margin: 2.5rem 0 0; font-size: 1.05rem; font-weight: 700; }
.post__related a { color: var(--ink); text-decoration-color: var(--red); text-underline-offset: .25em; }

.post__links { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin: 2rem 0 1rem !important; }

/* What's Hot contrast (Michelle, 10/07/26): body in Lato Regular, links in Red Ball Red and clearly clickable, the latest item in Dark Gray. */
.post__answer { font-weight: 400; color: var(--ink); }
.post__body p, .post__list { font-weight: 400; color: var(--ink); }
.post__sources { font-weight: 400; }
.post__body a, .post__sources a, .post__related a, .post__links a { color: var(--red); font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25em; }
.post__body a:hover, .post__sources a:hover, .post__related a:hover, .post__links a:hover { color: var(--ink); }
.post__links a { letter-spacing: .04em; text-transform: none; font-size: 1.05rem; padding-bottom: 0; }
.post__links a::before, .post__links a::after { display: none; }
.post__links a.textlink::after { display: inline; content: "\00a0\2192"; position: static; background: none; transform: none; width: auto; height: auto; }
.post__related a { font-weight: 700; }
.hot__item .label { color: var(--red); }
.hot__answer { font-weight: 400; color: var(--ink); }
.hot__more { font-size: .72rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--red); border-bottom: 2px solid var(--red); justify-self: start; padding-bottom: .2rem; }
.hot__item--lead { background: var(--ink); color: var(--white); padding: 2.75rem clamp(1.5rem, 4vw, 3rem); border-top: 0; }
.hot__item--lead .label, .hot__item--lead .hot__title, .hot__item--lead .hot__answer { color: var(--white); }
.hot__item--lead .hot__more { color: var(--white); border-color: var(--red); }
.hot__item--lead:hover .hot__title { color: var(--white); text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: .15em; }

/* Share block: easy to forward. */
.share { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--rule); }
.share__row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.share__btn { appearance: none; border: 0; cursor: pointer; background: var(--ink); color: var(--white); font: 700 .75rem/1 Lato, sans-serif; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; padding: 1rem 1.4rem; transition: background .3s var(--ease); }
.share__btn:hover, .share__btn:focus-visible { background: var(--red); }
.share__ok { margin: .9rem 0 0; font-size: .95rem; font-weight: 700; min-height: 1.4em; word-break: break-all; }

/* Heavy type tracking (Michelle, 10/07/26): the headline tracking is tuned for Lato Light. Anything set in Lato Black gets a touch of room so the letters never touch. */
h1 strong, h2 strong, h3 strong, .statement strong,
.discretion__lines .line:nth-child(3) > span,
.who__item h3, .hot__title, .post__title, .post__h, .faq h3,
.offset .pull, .person__body .person__close, .person__close,
.hero h1 strong, .close h2 strong { letter-spacing: .006em; }

/* The post headline sits inside .hero, whose rule is tighter: match its specificity. */
.hero h1.post__title { letter-spacing: .006em; }

/* ---------- Home hero: asset-class crossfade (Michelle, 10/16/26) ----------
   A rotating pool, one photo per asset class per visit (10/17/26), Class B or better, in the warm low-color grade, under a flat dark gray layer so the type
   reads. Flat color only: no gradients. Slow and quiet; a visitor who prefers less motion sees the first image still. */
.hero--photo { position: relative; isolation: isolate; overflow: hidden; justify-content: center; padding-bottom: clamp(4rem, 9vh, 6rem); } /* Text centered on the photo, 11/02/26 */
.hero .asked__q { color: var(--white); } /* Questions on the photo, 11/02/26 */
.hero .asked__label { color: var(--white); }
.hero__media { position: absolute; inset: 0; z-index: -1; background: var(--ink); }
.hero__slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0;
  filter: grayscale(.45) sepia(.16) saturate(.85) contrast(.96); transition: opacity 1.8s ease; }
.hero__slide.is-on { opacity: 1; }
.hero__media::after { content: ""; position: absolute; inset: 0; background: rgba(51, 63, 72, .72); }
@media (prefers-reduced-motion: reduce) { .hero__pause { display: none; } }
.form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.section.network { padding-top: clamp(3.5rem, 6vw, 5.5rem); }
/* What's Hot list fills the page width: lead story across the top, the rest in two columns (launch blocker 5, 10/18/26) */
@media (min-width: 900px) {
  .hot__list { max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2.5rem, 5vw, 5rem); }
  .hot__item--lead { grid-column: 1 / -1; }
  .hot__item--lead .hot__answer { max-width: 62ch; }
  .hot__item:nth-last-child(-n+2):not(.hot__item--lead) { border-bottom: 1px solid var(--rule); }
}
.close h2 + .close__actions { margin-top: clamp(2.5rem, 4vw, 3.5rem); } /* the article close: headline no longer touches its button (10/18/26) */
.hero__what { color: var(--white); margin: 0 0 1.75rem; }
/* Two lines, one block (Michelle, 10/19/26): the second line is tracked out to end exactly where the first does.
   Both lines share a size, so the extra tracking holds at every screen width. Measured in Lato 700: .5465em on line
   two against the label's .24em makes both lines 306px of ink at 12px. Retune if either line's words change. */
.hero__what > span { display: block; white-space: nowrap; }
.hero__what-2 { letter-spacing: .5465em; }
@media (max-width: 360px) { .hero__what { font-size: .68rem; } }
/* Preview-only marker on sample sections (10/19/26); the launch build never renders them */
.sample-tag { color: #A6192E; font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; vertical-align: middle; margin-left: .5rem; }

/* Short screens: page openings shrink to their content so the next section's headline starts on screen (10/19/26). */
@media (max-height: 820px) and (min-width: 761px) {
  .hero--page { min-height: 0; }
  .hero--page h1 { font-size: clamp(3rem, min(9vw, 10.5vh), 9rem); }
}
/* Small, short phones (320x600 class): the home hook steps down so the Talk button stays on the first screen. */
@media (max-width: 400px) and (max-height: 660px) {
  .hero { padding-top: 2rem; }
  .hero--photo h1 { font-size: 2.6rem; }
  .hero__what { margin-bottom: 1rem; }
}

/* Home: questions people are asking right now, one at a time under the hook; each is a link (Michelle, 10/19/26). */
.asked { margin: clamp(1.5rem, 3vh, 2.25rem) 0 0; max-width: 46rem; }
.asked__label { margin: 0 0 .6rem; }
.asked__qs { display: grid; }
.asked__q { grid-area: 1 / 1; align-self: start; color: var(--ink); text-decoration: none; font-size: clamp(1.2rem, 1.9vw, 1.6rem); font-weight: 400; line-height: 1.35; letter-spacing: -.01em; opacity: 0; visibility: hidden; transition: opacity .9s var(--ease), visibility 0s .9s; }
.asked__q.is-on { opacity: 1; visibility: visible; transition: opacity .9s var(--ease); }
.asked__q:hover { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 1px; text-underline-offset: .25em; }
.levers__h { font-size: clamp(2rem, 4.2vw, 4rem); line-height: 1.02; max-width: 22ch; }
.ready__title { margin: 0 0 1.1rem; }
.asked + .ready { margin-top: clamp(1.75rem, 4.5vh, 3rem); }

/* Home opening: the choices read as quiet text links, not boxes (Michelle, 10/19/26: "Stay luxury and don't oversell").
   Advisor pages keep their own quiz styling. */
.hero--photo .ready__answers { gap: 1rem 2.25rem; }
.hero--photo .ready__answer { border: 0; border-bottom: 1px solid rgba(255,255,255,.55); padding: 0 0 .45rem; width: auto; text-align: left; }
.hero--photo .ready__answer::before { display: none; }
.hero--photo .ready__answer:hover, .hero--photo .ready__answer:focus-visible { color: var(--white); border-bottom-color: var(--red); }
@media (max-width: 760px) { .hero--photo .ready__answers { flex-direction: row; } .hero--photo .ready__answer { width: auto; } }

/* Home, the levers (10/19/26): six decisions in a quiet row, one sentence at a time. */
.levers { margin-top: clamp(2.25rem, 4.5vw, 3.5rem); }
.levers__tabs { display: flex; flex-wrap: wrap; gap: 1rem 2.25rem; border-bottom: 1px solid var(--rule); padding-bottom: 1rem; }
.levers__tabs button { background: none; border: 0; border-bottom: 2px solid transparent; padding: 0 0 .45rem; cursor: pointer; font: 700 .78rem/1 Lato, sans-serif; letter-spacing: .22em; text-transform: uppercase; color: var(--ink); }
.levers__tabs button:hover { border-bottom-color: var(--rule); }
.levers__tabs button[aria-selected="true"] { border-bottom-color: var(--red); }
.levers__panel { margin-top: clamp(1.75rem, 3.5vw, 2.75rem); min-height: 7.5rem; }
.levers__name { margin: 0; font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 900; letter-spacing: -.02em; line-height: 1; }
.levers__line { margin: .9rem 0 0; font-size: clamp(1.2rem, 2vw, 1.55rem); font-weight: 400; line-height: 1.4; max-width: 36ch; }
.hot__now { margin: 1.5rem 0 0; font-size: clamp(1.05rem, 1.5vw, 1.25rem); font-weight: 400; }
.hot__now .label { margin-right: 1rem; }

/* What's Hot (10/19/26): Closing soon, Buyers are asking for, The read. */
.hot__soon { display: grid; gap: clamp(.75rem, 1.5vw, 1.25rem); margin: 1rem 0 clamp(3.5rem, 7vw, 5.5rem); }
.soon { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); background: var(--ink); color: var(--white); text-decoration: none; min-height: 14rem; }
.soon:not(:has(.soon__img)) { grid-template-columns: 1fr; }
.soon__img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.45) sepia(.16) saturate(.85) contrast(.96); }
.soon__body { display: flex; flex-direction: column; gap: .75rem; padding: clamp(1.75rem, 3.5vw, 2.75rem); }
.soon .label { color: var(--white); }
.soon__title { font-size: clamp(1.5rem, 2.6vw, 2.25rem); font-weight: 900; letter-spacing: -.02em; line-height: 1.1; }
.soon__when { font-size: clamp(1.05rem, 1.5vw, 1.25rem); font-weight: 400; }
.soon__go { align-self: flex-start; margin-top: auto; font-size: .78rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; padding-bottom: .45rem; border-bottom: 1px solid var(--red); }
.soon:hover .soon__title { text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: .15em; }
.demand { margin: 0 0 clamp(3.5rem, 7vw, 5.5rem); }
.demand__list { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0 clamp(1.5rem, 4vw, 3.5rem); }
.demand__list li { padding: 1rem 0; border-bottom: 1px solid var(--rule); font-size: clamp(1.05rem, 1.5vw, 1.25rem); font-weight: 700; }
.demand__ask { margin: 1.5rem 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1.25rem; }
.hot__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; margin-bottom: 1rem; filter: grayscale(.45) sepia(.16) saturate(.85) contrast(.96); }
@media (max-width: 760px) { .soon { grid-template-columns: 1fr; } .soon__img { aspect-ratio: 16 / 9; height: auto; } }
.hot__h1 { font-size: clamp(2.6rem, min(5.6vw, 9vh), 5.75rem) !important; }
.hot__sec { color: var(--red); margin: 0 0 1rem; }
.photo-credit { display: block; margin-top: .6rem; font-size: .72rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.photo-credit a { color: inherit; }
.soon .photo-credit { margin-top: .75rem; }
.post__fig { margin: 0 0 clamp(1.75rem, 3.5vw, 2.5rem); }
.post__fig img { width: 100%; height: auto; display: block; filter: grayscale(.45) sepia(.16) saturate(.85) contrast(.96); }
.post__fig figcaption { margin-top: .5rem; font-size: .8rem; }
.hot__item { align-content: start; }

/* Home welcome and the three doors (Michelle, 10/23/26, macro to micro). */
.welcome__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 2.5rem clamp(2rem, 6vw, 6rem); align-items: start; }
.welcome__text p { font-size: clamp(1.2rem, 1.7vw, 1.45rem); font-weight: 400; line-height: 1.6; max-width: 46ch; margin: 0 0 1.1rem; }
.welcome__text .welcome__last { font-weight: 700; }
.doors { display: grid; gap: 1rem; }
.door { display: block; border: 1px solid var(--rule); padding: 1.5rem 1.75rem; color: var(--ink); text-decoration: none; transition: border-color .4s var(--ease), background .4s var(--ease); }
.door:hover, .door:focus-visible { border-color: var(--red); }
.door__q { display: block; font-size: clamp(1.3rem, 2vw, 1.65rem); font-weight: 700; letter-spacing: -.01em; line-height: 1.2; }
.door__q::after { content: "\00a0\2192"; color: var(--red); }
.door__line { display: block; margin-top: .5rem; font-size: 1rem; }
.ready--section { margin-top: 0; scroll-margin-top: 3rem; }
@media (max-width: 860px) { .welcome__grid { grid-template-columns: 1fr; } }


/* What's Hot, 11/02/26: the offering on gray, then at most four quick reads */
.hot__offer h2 { font-size: clamp(3rem, min(8vw, 12vh), 7.5rem); line-height: .98; margin: 1.5rem 0 0; }
.hot__offer-go { margin-top: 2.25rem; }
.hot .hot__h1 { font-size: clamp(2.25rem, 4.6vw, 4.25rem); line-height: 1.02; margin: 1rem 0 clamp(2rem, 4vw, 3rem); }
.hot__list--quick { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(2rem, 5vw, 5rem); max-width: none; }
.hot__list--quick .hot__item { align-content: start; padding: 1.75rem 0; border-bottom: 0; }
.hot__demand { margin-top: clamp(3rem, 6vw, 4.5rem); }
@media (max-width: 760px) { .hot__list--quick { grid-template-columns: 1fr; } }


/* Advisor blog post (Michelle, 11/04/26): brand display type, red only on the full stop and links, numbers as the one big moment. */
.hero h1.blog__title { font-size: clamp(2.25rem, 5vw, 4.5rem); font-weight: 300; line-height: 1.08; letter-spacing: -.02em; max-width: none; margin: 1.25rem 0 0; }
.blog__title strong { font-weight: 900; }
.blog__by { margin: 1.5rem 0 0; font-size: 1rem; font-weight: 400; }
.blog__by a { color: inherit; text-decoration: underline; text-underline-offset: .25em; }
.post__answer.blog__lede { border-bottom: 0; padding-bottom: 0; margin-bottom: clamp(2.5rem, 5vh, 4rem); font-weight: 300; }
.post__wrap > .blog__stats { max-width: none; }
.blog__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 clamp(3rem, 7vh, 5rem); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.blog__stat { display: flex; flex-direction: column; padding: 2rem 1.5rem; }
.blog__stat:first-child { padding-left: 0; }
.blog__stat + .blog__stat { border-left: 1px solid var(--rule); }
.blog__stat dd { margin: 0; font-size: clamp(2.5rem, 4.8vw, 4.25rem); font-weight: 900; line-height: 1; letter-spacing: -.025em; color: var(--ink); font-variant-numeric: tabular-nums; }
.blog__stat dt { margin-top: .75rem; font-size: 1rem; font-weight: 400; line-height: 1.4; color: var(--ink); }
.blog__h { font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 900; line-height: 1.2; letter-spacing: -.01em; margin: clamp(2.5rem, 5vh, 3.5rem) 0 1rem; color: var(--ink); }
.post__body p.blog__pull { font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 300; line-height: 1.2; letter-spacing: -.02em; max-width: none; margin: clamp(2.5rem, 5vh, 3.5rem) 0; color: var(--ink); }
.blog__pull strong { display: block; font-weight: 900; }
.blog__sources { margin: 3rem 0 0; padding-top: 1.5rem; border-top: 1px solid var(--rule); font-size: .95rem; font-weight: 400; line-height: 1.6; color: var(--ink); }
@media (max-width: 767px) {
  .blog__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .blog__stat { padding: 1.5rem 0 1.5rem 1.25rem; }
  .blog__stat:nth-child(odd) { padding-left: 0; border-left: 0; }
  .blog__stat:nth-child(n + 3) { border-top: 1px solid var(--rule); }
}

/* What's Hot hierarchy (Michelle, 11/04/26): the off-market lead gets weight from structure and its facts, not size; red is saved for it, the reads go quiet. */
.hot__lead { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 3rem clamp(3rem, 7vw, 7rem); align-items: center; }
.hot__offer h2 { font-size: clamp(2.5rem, min(5.4vw, 10vh), 5.25rem); line-height: 1.02; }
.hot__flag { display: flex; align-items: center; gap: .75rem; margin: 0; font-size: .82rem; }
.hot__flag-ball { width: 1.15em; height: 1.15em; flex: none; }
.hot__flag--box { display: inline-block; background: var(--red); color: var(--white); padding: .6rem .9rem; }
.hot__facts { margin: 0; border-top: 1px solid var(--rule-on-ink); }
.hot__fact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.25rem; align-items: baseline; padding: 1.25rem 0; border-bottom: 1px solid var(--rule-on-ink); }
.hot__fact dd { margin: 0; font-size: clamp(1.75rem, 2.8vw, 2.5rem); font-weight: 900; line-height: 1; letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.hot__fact dt { font-size: 1rem; font-weight: 400; line-height: 1.35; }
@media (max-width: 860px) {
  .hot__lead { grid-template-columns: 1fr; }
}

/* What's Hot reads (Michelle, 11/05/26): the content carries the heat, never the color. */
.hot .hot__h1 { color: var(--ink); }
.heat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(2rem, 4vw, 4rem); } /* every read the same size, no lead (Michelle, 11/06/26) */
.heat__item { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 1.25rem; align-items: start; padding: 1.5rem 0; border-top: 1px solid var(--rule); color: var(--ink); text-decoration: none; }
.heat__item--text { grid-template-columns: 1fr; }
.heat__item--lead { grid-column: 1; grid-row: 1 / span 3; grid-template-columns: 1fr; align-content: start; padding-top: 0; border-top: 0; }
.heat__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; filter: grayscale(.45) sepia(.16) saturate(.85) contrast(.96); }
.heat__item--lead .heat__img { aspect-ratio: 3 / 2; }
.heat__body { display: grid; gap: .6rem; align-content: start; }
.heat__body .label { color: var(--red); }
.heat__title { font-size: clamp(1.3rem, 1.9vw, 1.6rem); font-weight: 900; line-height: 1.15; letter-spacing: -.01em; text-wrap: balance; }
.heat__item--lead .heat__title { font-size: clamp(2rem, 3.6vw, 3.25rem); line-height: 1.04; letter-spacing: -.02em; }
.heat__hook { font-size: 1rem; font-weight: 400; line-height: 1.45; text-wrap: pretty; }
.heat__item--lead .heat__hook { font-size: clamp(1.15rem, 1.6vw, 1.35rem); }
.heat__item:hover .heat__title { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.heat .photo-credit { font-size: .8rem; color: var(--ink); }
@media (max-width: 860px) {
  .heat { grid-template-columns: 1fr; }
  .heat__item--lead { grid-column: auto; grid-row: auto; padding-bottom: 2rem; }
}
/* Advisors, Agents and Commercial Partners (Michelle, 11/04/26): their own display headline and two solid doors, not boxes. */
.partners { margin-top: clamp(3rem, 5vw, 4rem); }
.partners__h { font-size: clamp(2rem, min(3.8vw, 8vh), 3.5rem); line-height: 1.04; margin: 0 0 clamp(1.5rem, 3vw, 2rem); }
.partners__line { font-size: clamp(1.1rem, 1.4vw, 1.25rem); font-weight: 400; line-height: 1.5; max-width: 52ch; margin: 1rem 0 clamp(1.5rem, 3vw, 2rem); }
.partners__doors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.partner { display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem; min-height: clamp(9rem, 12vw, 11rem); padding: clamp(1.25rem, 2.2vw, 1.75rem); background: var(--ink); color: var(--white); text-decoration: none; transition: background .4s var(--ease); }
.partner:hover, .partner:focus-visible { background: var(--red); }
.partner__q { font-size: clamp(1.35rem, 2vw, 1.85rem); font-weight: 900; line-height: 1.08; letter-spacing: -.02em; text-wrap: balance; }
.partner__line { font-size: 1rem; font-weight: 400; }
.partner__line::after { content: "\00a0\2192"; }
@media (max-width: 860px) { .partners__doors { grid-template-columns: 1fr; } }

/* Buyers are asking for (Michelle, 11/05/26): its own section under the lead, one type per line, the question to owners beside it. Same parts on laptop and phone. */
.asks__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "ask label" "ask list"; grid-template-rows: auto 1fr; gap: 1rem clamp(3rem, 7vw, 7rem); }
.asks__label { grid-area: label; color: var(--red); margin: 0; }
.asks__ask { grid-area: ask; align-self: start; }
.asks__q { font-size: clamp(2rem, 3.6vw, 3.25rem); font-weight: 900; line-height: 1.08; letter-spacing: -.02em; margin: 0 0 2rem; text-wrap: balance; }
.asks__list { grid-area: list; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.asks__list li { padding: 1rem 0; border-bottom: 1px solid var(--rule); font-size: clamp(1.15rem, 1.7vw, 1.4rem); font-weight: 700; line-height: 1.3; }
.asks + .hot { padding-top: 0; }
@media (max-width: 860px) {
  .asks__grid { grid-template-columns: 1fr; grid-template-areas: "label" "list" "ask"; grid-template-rows: none; gap: 1.5rem; }
  .asks__ask { margin-top: 1rem; }
}

/* Big headlines balance their lines at every width, so no word is stranded alone with the red full stop (Michelle, 11/05/26). */
.lines .line > span, .display, .statement, .post__title, .offer__statement { text-wrap: balance; }

/* Red Ball Media candor line above the close (Michelle, 11/05/26). */
.mk__candor { font-size: clamp(1.25rem, 2vw, 1.6rem); font-weight: 300; line-height: 1.4; margin: 0 0 clamp(1.5rem, 3vw, 2.5rem); }

/* For Advisors, rebuilt 11/05/26: collaborators first; the money sits lower, on ink. The advisor grid stays on The Network only (Michelle, 11/05/26). */
/* The first line names the reader (Michelle, 11/05/26). White on ink: red on #333F48 does not read. */
.ph__kicker { color: var(--white); font-size: clamp(1.1rem, 1.6vw, 1.35rem); font-weight: 700; letter-spacing: .01em; margin: 0; }
.fa-ways__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5rem); }
.fa-way { border-top: 1px solid var(--rule); padding-top: clamp(2rem, 4vw, 3rem); }
.fa-way__h { font-size: clamp(1.75rem, 2.8vw, 2.5rem); font-weight: 900; line-height: 1.08; letter-spacing: -.02em; margin: 1rem 0 1.25rem; text-wrap: balance; }
.fa-way p:not(.label) { font-size: clamp(1.1rem, 1.4vw, 1.25rem); line-height: 1.6; max-width: 52ch; margin: 0; }
.fa-group { padding-top: 0; }
.fa-group__h { font-size: clamp(2rem, min(3.8vw, 8vh), 3.5rem); line-height: 1.04; margin: 1rem 0 clamp(2rem, 4vw, 3rem); }
@media (max-width: 860px) { .fa-ways__grid { grid-template-columns: 1fr; } }

/* Referrals: the moments a call starts from, one per line (Michelle, 11/05/26, Satterfield). */
.moments { list-style: none; margin: 1rem 0 1.5rem; padding: 0; border-top: 1px solid var(--rule); }
.moments li { padding: .85rem 0; border-bottom: 1px solid var(--rule); line-height: 1.5; }
.moments strong { display: block; font-weight: 700; }
.moments__also { margin-top: 2rem; font-size: 1rem; }
.moments__also a { white-space: nowrap; color: inherit; text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: .2em; }
/* The tagline's periods are red by brand law; its own class, so the build's red-dot pass leaves it alone. */
.ref-tag__rule { padding-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--rule); }
.ref-tag__line { font-size: clamp(2.25rem, 4.6vw, 4.25rem); font-weight: 300; line-height: 1.04; letter-spacing: -.02em; margin: 0; max-width: none; }
.ref-tag__line strong { font-weight: 900; }
.ref-tag__dot { color: var(--red); }

/* Referrals, 11/06/26: the moments stand alone; "Our standard" sits below the tagline as its own section. */
.ref-moments { max-width: 46rem; }
.ref-std .label { margin-bottom: 1.5rem; }

/* Referrals, 11/06/26: tagline leads the section; the two answers sit side by side, each under a label, split by a hairline. */
.ref-pair .ref-tag__line { font-size: clamp(2rem, 3.8vw, 3.5rem); }
.ref-pair__cols { margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--rule); }
/* Stacked: the list, then Our standard, read top to bottom so nothing is scrolled past (Michelle, 11/06/26). */
.ref-pair__cols { grid-template-columns: 1fr; gap: clamp(2.5rem, 4vw, 3.5rem); }
.ref-pair__cols > .two__col { max-width: 48rem; }
.ref-pair__cols > .two__col + .two__col { border-top: 1px solid var(--rule); padding-top: clamp(2.5rem, 5vw, 4rem); }
.ref-pair__label { margin-bottom: 1.5rem; }
@media (max-width: 860px) { .ref-pair__cols { grid-template-columns: 1fr; } .ref-pair__cols > .two__col + .two__col { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule); padding-top: 2.5rem; } }

/* Underlines are red on white surfaces, site-wide (Michelle, 11/06/26). On dark gray they keep the text color, since red does not read on #333F48. */
:where(body *) { text-decoration-color: var(--red); }
:where(.section--ink, .hero, .soon, .partner, .hot__item--lead, .share__btn) :where(*), :where(.section--ink, .hero, .soon, .partner, .hot__item--lead) { text-decoration-color: currentColor; }
.ref-pair__after { margin-top: 1.5rem; }

/* Common Ground, 11/06/26: eXp's nine core values as a quiet grid; tighter section spacing on this page (Michelle). */
.values { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; margin-top: clamp(3rem, 5vw, 4rem); padding-top: clamp(2.5rem, 4vw, 3rem); border-top: 1px solid var(--rule); }
.values__h { font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 300; line-height: 1.04; letter-spacing: -.02em; margin: 0; }
.values__h strong { font-weight: 900; }
.values__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.values__item { display: flex; align-items: center; gap: .9rem; padding: 1.25rem 0; border-bottom: 1px solid var(--rule); font-size: clamp(1.05rem, 1.4vw, 1.2rem); font-weight: 700; color: var(--ink); }
.values__item:nth-child(-n+3) { padding-top: 0; }
.values__icon { width: 2rem; height: 2rem; flex: none; color: var(--ink); }
@media (max-width: 860px) { .values { grid-template-columns: 1fr; } .values__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .values__item:nth-child(3) { padding-top: 1.25rem; } }
.cg__invite a { color: inherit; text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: .2em; }
.fa-ways__label { margin-bottom: 1.5rem; }

/* Featured Listings on What's Hot, 11/06/26: one per advisor, photo required. */
.feat__label { color: var(--red); margin-bottom: 1.5rem; }
.feat__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(2rem, 5vw, 4rem); border-top: 1px solid var(--rule); }
.feat__item { display: grid; grid-template-columns: clamp(7rem, 11vw, 9.5rem) minmax(0, 1fr); gap: 1.25rem; align-items: start; padding: 1.5rem 0; border-bottom: 1px solid var(--rule); color: var(--ink); text-decoration: none; }
.feat__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.feat__body { display: grid; gap: .35rem; }
.feat__brief { font-size: .72rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--red); }
.feat__title { font-size: clamp(1.05rem, 1.4vw, 1.2rem); font-weight: 700; line-height: 1.3; }
.feat__blurb { font-size: 1rem; line-height: 1.45; }
.feat__who { font-size: .9rem; }
.feat__go { margin-top: .25rem; font-size: .72rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.feat__item:hover .feat__title { text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: .2em; }
@media (max-width: 860px) { .feat__grid { grid-template-columns: 1fr; } }
.feat__head { font-size: clamp(1.3rem, 1.9vw, 1.6rem); font-weight: 900; line-height: 1.15; letter-spacing: -.01em; margin-bottom: .2rem; } /* listing headline, written by Red Ball (Michelle, 11/06/26) */

/* Two sections of the same color in a row share one gap instead of doubling it (Michelle, 11/06/26, What's Hot). */
.section:not(.section--ink) + .section:not(.section--ink), .section--ink + .section--ink { padding-top: 0; }

/* What's Hot masthead with the off-market slot in the same dark band (11/06/26). */
.hot__mast { min-height: 0; }
.hot__offmkt { margin-top: clamp(2.5rem, 5vw, 3.5rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--rule-on-ink); }
.hot__offmkt-h { margin: 1.25rem 0 0; font-size: clamp(2rem, 3.6vw, 3.25rem); font-weight: 300; line-height: 1.04; letter-spacing: -.02em; }
.hot__offmkt-h strong { font-weight: 900; }
.hot__offmkt-line { margin: 1.25rem 0 0; max-width: 46ch; font-size: clamp(1.05rem, 1.4vw, 1.2rem); line-height: 1.5; }
.hot__reads { color: var(--red); margin-bottom: 1.5rem; }

/* For Advisors on-page form, 11/06/26. */
.fa-start { margin-top: clamp(3rem, 6vw, 4.5rem); padding-top: clamp(2.5rem, 5vw, 3.5rem); border-top: 1px solid var(--rule-on-ink); display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.fa-start .display { font-size: clamp(2.25rem, 4vw, 3.75rem); margin: 0; }
.fa-start .form__note a { color: inherit; }
@media (max-width: 900px) { .fa-start { grid-template-columns: 1fr; } }

/* Article titles at reading size (Michelle, 11/06/26: "Why is this masthead so big?"). The general .hero h1 rule was overriding .post__title. */
.hero h1.post__title { font-size: clamp(2.25rem, 4.2vw, 3.75rem); line-height: 1.08; letter-spacing: -.015em; max-width: 26ch; }
.method__one { font-size: clamp(2.5rem, 4.6vw, 4.5rem) !important; white-space: nowrap; } /* "Facts first." on one line (Michelle, 11/06/26) */

/* Home reorganized 11/06/26: the readiness check leads and says what you get; the six levers at a glance. */
.ready__h { font-size: clamp(2rem, 4.2vw, 3.75rem); line-height: 1.04; margin: 0; color: var(--white); }
.ready__lede { margin: 1.25rem 0 clamp(2rem, 4vw, 2.75rem); max-width: 44ch; font-size: clamp(1.1rem, 1.6vw, 1.35rem); line-height: 1.5; color: var(--white); }
.ready-sec .ready { margin-top: 0; }
.levers-grid { list-style: none; margin: clamp(2rem, 4vw, 3rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(2rem, 4vw, 3.5rem); border-top: 1px solid var(--rule); }
.lever { padding: clamp(1.5rem, 2.5vw, 2rem) 0; border-bottom: 1px solid var(--rule); }
.lever__name { margin: 0; font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 900; letter-spacing: -.015em; line-height: 1.1; }
.lever__line { margin: .6rem 0 0; font-size: clamp(1.05rem, 1.4vw, 1.2rem); line-height: 1.45; max-width: 30ch; }
@media (max-width: 860px) { .levers-grid { grid-template-columns: 1fr; } }
.welcome__doors .doors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } /* doors full width once the welcome paragraph left, 11/06/26 */
@media (max-width: 860px) { .welcome__doors .doors { grid-template-columns: 1fr; } }
.levers-line { margin: clamp(1.25rem, 2.5vw, 1.75rem) 0 0; font-size: .82rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; } /* the six as one quiet line on Home, 11/06/26 */
.levers-line span { color: var(--red); margin: 0 .5em; }
.ready__skip { margin: clamp(1.75rem, 3vw, 2.25rem) 0 0; padding-top: 1.25rem; border-top: 1px solid var(--rule-on-ink); font-size: 1rem; color: var(--white); } /* shortcut to Advisory and Buy Box, 11/06/26 */
.ready__skip a { color: var(--white); font-weight: 700; text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: .25em; margin-left: .5em; }
.ready__skip a::after { content: "\00a0\2192"; color: var(--white); }
.ready__skip span { color: var(--red); margin: 0 .25em 0 .75em; }
.ready.is-result .ready__skip { display: none; }

.partners-row { margin: 0; padding: 1.25rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); font-size: clamp(1.05rem, 1.4vw, 1.2rem); } /* advisors, agents and partners as one quiet row, 11/06/26 */
.partners-row a { font-weight: 700; color: var(--ink); text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: .25em; margin-left: .6em; }
.partners-row a::after { content: "\00a0\2192"; color: var(--red); }
.partners-row span { color: var(--red); margin: 0 .2em 0 .8em; }
/* Masthead corner, 11/06/26: the door for advisors, agents and partners, and a small pause icon. */
.hero__corner { position: absolute; right: var(--gutter); bottom: 1.5rem; z-index: 1; display: flex; align-items: center; gap: 1.25rem; }
.hero__pros-btn { display: inline-flex; align-items: center; gap: .6rem; color: var(--white); text-decoration: none; font: 700 .78rem/1 Lato, sans-serif; letter-spacing: .2em; text-transform: uppercase; padding: .6rem 0; border-bottom: 2px solid var(--red); }
.hero__pros-btn img { width: 1.15rem; height: 1.15rem; }
.hero__pros-btn::after { content: "\00a0\2192"; }
.hero__pause { width: 1.9rem; height: 1.9rem; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; background: none; cursor: pointer; position: relative; padding: 0; }
.hero__pause::before, .hero__pause::after { content: ""; position: absolute; top: 50%; width: 2px; height: .65rem; margin-top: -.325rem; background: var(--white); }
.hero__pause::before { left: calc(50% - 4px); } .hero__pause::after { left: calc(50% + 2px); }
.hero__pause[aria-pressed="true"]::after { display: none; }
.hero__pause[aria-pressed="true"]::before { left: calc(50% - 2px); width: 0; height: 0; margin-top: -.35rem; background: none; border-left: .55rem solid var(--white); border-top: .35rem solid transparent; border-bottom: .35rem solid transparent; }
@media (prefers-reduced-motion: reduce) { .hero__pause { display: none; } }
@media (max-width: 600px) { .hero__corner { left: var(--gutter); right: var(--gutter); justify-content: space-between; } .hero__pros-btn { font-size: .68rem; letter-spacing: .12em; white-space: nowrap; } }
/* 11/06/26: the flag opens the Global Network; the group address is a button. */
.flag-link { display: block; }
.footer a.footer__btn { display: inline-block; background: var(--ink); color: var(--white); padding: .85rem 1.25rem; font-weight: 700; text-decoration: none; }
.footer a.footer__btn:hover { background: var(--red); text-decoration: none; }
