:root{
  --frame-ink:#0c1119;
  --frame-navy:#0b1728;
  --frame-navy-2:#101d30;
  --frame-coral:#ef575b;
  --frame-coral-dark:#d9444b;
  --frame-paper:#fbfbfa;
  --frame-line:#d9dde3;
  --frame-copy:#5b626d;
  --frame-max:1184px;
  --site-max:1184px;
  --site-max-wide:1240px;
  --site-columns:12;
  --site-gutter:24px;
  --site-edge:32px;
  --site-inline:64px;
  --space-1:8px;
  --space-2:16px;
  --space-3:24px;
  --space-4:32px;
  --space-5:48px;
  --space-6:64px;
  --space-section-sm:68px;
  --space-section-md:100px;
  --space-section-lg:112px;
  --radius-sm:12px;
  --radius-md:16px;
  --radius-lg:24px;
  --bp-tablet:980px;
  --bp-mobile:720px;

  /* Typography system */
  --font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:650;
  --weight-bold:740;
  --weight-heavy:850;

  --type-eyebrow:.76rem;
  --type-label:.78rem;
  --type-small:.84rem;
  --type-body-sm:1rem;
  --type-body:1rem;
  --type-body-lg:clamp(1.06rem,1.5vw,1.125rem);
  --type-card-title:clamp(1.25rem,1.8vw,1.5rem);
  --type-section-sm:clamp(2.15rem,3vw,2.55rem);
  --type-section-md:clamp(2.35rem,3.3vw,2.85rem);
  --type-section-lg:clamp(2.625rem,3.6vw,3.125rem);
  --type-display:clamp(3.625rem,5vw,4.25rem);

  --tracking-eyebrow:.14em;
  --tracking-tight:-.025em;

  /* Semantic color system */
  --color-text:var(--frame-ink);
  --color-text-muted:var(--frame-copy);
  --color-text-inverse:#fff;
  --color-text-inverse-muted:#c4ccd6;
  --color-accent:var(--frame-coral);
  --color-accent-hover:var(--frame-coral-dark);
  --color-accent-bright:var(--frame-coral);
  --color-eyebrow-light:#c92836;
  --color-eyebrow-dark:#ff8d95;
  --color-surface:var(--frame-paper);
  --color-surface-dark:#08192b;
  --color-border:var(--frame-line);
  --color-border-dark:rgba(255,255,255,.22);

  /* Component tokens */
  --radius-control:8px;
  --radius-card:12px;
  --radius-feature:14px;
  --radius-pill:999px;
  --control-sm:44px;
  --control-md:48px;
  --control-lg:50px;
}

body{background:var(--color-surface);color:var(--color-text);font-family:var(--font-sans);font-size:16px;line-height:1.6}

h1,h2,h3,h4,h5,h6,
button,input,select,textarea{
  font-family:var(--font-sans);
}
.legacy-home-section,.legacy-home-footer{display:none!important}
.container,.site-container{width:min(var(--site-max),calc(100% - var(--site-inline)));margin-inline:auto}
.site-container--wide{width:min(var(--site-max-wide),calc(100% - var(--site-inline)))}
.site-grid{display:grid;grid-template-columns:repeat(var(--site-columns),minmax(0,1fr));column-gap:var(--site-gutter)}
.grid-debug::before{position:fixed;inset:0;z-index:9999;width:min(var(--site-max),calc(100% - var(--site-inline)));margin-inline:auto;pointer-events:none;content:"";background-image:linear-gradient(to right,rgba(239,87,91,.1) 0,rgba(239,87,91,.1) calc(100% - var(--site-gutter)),transparent calc(100% - var(--site-gutter)),transparent 100%);background-size:calc((100% + var(--site-gutter))/var(--site-columns)) 100%;border-inline:1px solid rgba(239,87,91,.18)}
.section-shell{padding-block:var(--space-section-md)}
.section-shell--compact{padding-block:var(--space-section-sm)}
.section-shell--large{padding-block:var(--space-section-lg)}
.eyebrow{margin:0 0 18px;color:var(--color-eyebrow-light);font-family:var(--font-sans);font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.frame-section h2{max-width:940px;font-family:var(--font-sans);font-size:var(--type-section-lg);font-weight:700;line-height:1.12;letter-spacing:-.02em;text-wrap:balance}
.frame-section p,.decision-section p,.guide-frame-section p,.journey-section p,.closing-section p{max-width:65ch;font-size:clamp(1rem,1.2vw,1.08rem)}
.button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;padding:13px 20px;font-family:var(--font-sans);font-size:1rem;font-weight:800;border-radius:var(--radius-pill)}
.button.accent{background:var(--color-accent);border-color:var(--color-accent)}
.button.accent:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}


/* Contrast-aware eyebrow treatment */
.frame-hero .eyebrow,
.decision-section .eyebrow,
.guide-frame .eyebrow,
.journey-section .eyebrow,
.resource-frame .eyebrow,
.faq-panel .eyebrow,
.contact-panel .eyebrow,
.frame-footer .eyebrow{
  color:var(--color-eyebrow-dark);
}

.process-section .eyebrow,
.closing-section > .eyebrow{
  color:var(--color-eyebrow-light);
}


.frame-hero h1,
.frame-section h2,
.decision-copy h2,
.guide-frame-copy h2,
.journey-layout>h2,
.faq-panel h2,
.contact-panel h2{
  text-wrap:balance;
}

/* Hero */
.frame-hero{min-height:100vh;min-height:100svh;align-items:end;background:var(--frame-navy)}
.frame-hero::before{background-image:url("miami-mockup-hero.png");background-position:center 52%}
.frame-hero::after{background:linear-gradient(90deg,rgba(3,9,19,.9) 0%,rgba(3,9,19,.72) 46%,rgba(3,9,19,.32) 76%),linear-gradient(0deg,rgba(3,9,19,.82),transparent 58%)}
.frame-hero .topbar{padding-top:20px}
.frame-hero .share-round img{width:18px;height:18px;filter:brightness(0) invert(1)}
.frame-hero .brand{gap:11px}
.frame-hero .brand img{width:38px;height:38px}
.brand-copy{display:grid;color:var(--color-text-inverse);font-size:.72rem;font-weight:850;letter-spacing:.06em;line-height:1.04;text-transform:uppercase}
.brand-copy small{margin-top:4px;font-size:.55rem;font-weight:650;letter-spacing:.16em;opacity:.76}
.frame-hero .hero-content{padding:150px 0 72px}
.frame-hero .hero-copy{grid-column:1/span 7;max-width:760px;display:grid;gap:12px}
.frame-hero .hero-content .eyebrow{margin:0;color:var(--color-eyebrow-dark);font-size:var(--type-eyebrow);font-weight:var(--weight-heavy);letter-spacing:.15em}
header.hero.frame-hero h1{width:auto;max-width:14ch;margin:0;font-family:var(--font-sans);font-size:var(--type-display);font-weight:700;line-height:1.08;letter-spacing:-.022em;white-space:normal;text-wrap:balance}
header.hero.frame-hero .hero-title-line{display:block;white-space:nowrap}
header.hero.frame-hero .hero-title-line + .hero-title-line{margin-top:.16em}
header.hero.frame-hero .lead{display:block;max-width:860px;width:auto;margin:10px 0 0;color:#eef1f5;font-size:var(--type-body-lg);font-weight:400;line-height:1.72;white-space:normal;opacity:.96}.frame-hero .actions{margin-top:24px}
.frame-hero .button{min-height:var(--control-md);padding:11px 18px;font-size:.9rem;font-weight:800}
.frame-hero .trustline{margin-top:22px;font-size:.96rem}

/* Decision canvas */
.decision-section{
  position:relative;
  overflow:hidden;
  color:var(--color-text-inverse);
  background:
    radial-gradient(
      circle at 67% 48%,
      #182b45 0,
      #102139 27%,
      #0b1a2d 58%,
      #081525 100%
    );
}

.decision-section::before{
  position:absolute;
  inset:0;
  pointer-events:none;
  content:"";
  background:
    linear-gradient(
      90deg,
      rgba(3,10,20,.18),
      transparent 32%,
      transparent 73%,
      rgba(3,10,20,.18)
    );
  box-shadow:
    inset 0 22px 52px rgba(0,0,0,.18),
    inset 0 -20px 48px rgba(0,0,0,.16);
}

.decision-layout{
  position:relative;
  z-index:1;
  align-items:center;
}

/* Left copy */
.decision-copy{
  grid-column:1/span 4;
  align-self:center;
  padding-top:0;
}

.decision-copy h2{
  max-width:100%;
  margin-bottom:24px;
  font-size:var(--type-section-md);
  font-weight:700;
  line-height:1.12;
  letter-spacing:-.02em;
}

.decision-copy p:last-child{
  max-width:38ch;
  margin-bottom:0;
  color:var(--color-text-inverse-muted);
  font-size:var(--type-body);
  line-height:1.65;
}

/* Diagram */
.decision-map{position:relative;grid-column:5/span 8;width:100%;max-width:700px;min-height:398px;justify-self:center;isolation:isolate}

.decision-wiring{position:absolute;inset:0;z-index:auto;pointer-events:none;color:rgba(232,237,244,.5)}

.decision-guide{position:absolute;left:15%;right:15%;top:50%;height:1px;border-top:1px dashed rgba(205,214,225,.34)}

.decision-guide::before,
.decision-guide::after{
  position:absolute;
  top:0;
  width:1px;
  height:56px;
  content:"";
  border-left:1px dashed rgba(205,214,225,.46);
}

.decision-guide::before{left:0}
.decision-guide::after{right:0}

.decision-route{
  position:absolute;
  inset:0;
  display:block;
}

.decision-route i{position:absolute;z-index:1;display:block;height:1px;background:rgba(226,233,242,.5);box-shadow:none}

.decision-route .route-vertical{
  width:1px;
  height:44px;
}

.decision-route .route-node{position:absolute;z-index:3;width:9px;height:9px;background:var(--color-accent);border:2px solid #ffe3de;border-radius:50%;box-shadow:0 0 0 2px rgba(242,91,82,.12)}

/* Top left connector */
.route-budget .route-a{left:227px;top:64px;width:15px}
.route-budget .route-vertical{left:241px;top:64px;height:42px}
.route-budget .route-b{left:241px;top:105px;width:46px}
.route-budget .route-node{left:223px;top:60px}

/* Top right connector */
.route-commute .route-a{right:227px;top:64px;width:15px}
.route-commute .route-vertical{right:241px;top:64px;height:42px}
.route-commute .route-b{right:241px;top:105px;width:46px}
.route-commute .route-node{right:223px;top:60px}

/* Bottom left connector */
.route-neighborhood .route-a{left:227px;top:276px;width:15px}
.route-neighborhood .route-vertical{left:241px;top:244px;height:33px}
.route-neighborhood .route-b{left:241px;top:244px;width:34px}
.route-neighborhood .route-node{left:223px;top:272px}

/* Bottom right connector */
.route-timeline .route-a{right:227px;top:276px;width:15px}
.route-timeline .route-vertical{right:241px;top:244px;height:33px}
.route-timeline .route-b{right:241px;top:244px;width:34px}
.route-timeline .route-node{right:223px;top:272px}

/* Center goal */
.decision-goal{position:absolute;left:50%;top:184px;z-index:3;display:grid;width:172px;height:172px;padding:16px;place-items:center;align-content:center;color:var(--color-text-inverse);text-align:center;background:radial-gradient(circle at 50% 40%,#162944 0,#0d1d32 72%);border:3px solid var(--color-accent);border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.12),0 0 20px rgba(242,91,82,.06),inset 0 0 20px rgba(49,80,118,.18);transform:translate(-50%,-50%)}

.decision-goal i{
  font-size:2.3rem;
  filter:drop-shadow(0 0 6px rgba(255,255,255,.1));
}

.decision-goal small{
  margin:7px 0 4px;
  color:var(--color-accent);
  font-size:.64rem;
  font-weight:850;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.decision-goal strong{
  max-width:120px;
  font-size:.98rem;
  line-height:1.18;
}

/* Four decision cards */
.decision-card{position:absolute;z-index:2;display:grid;width:208px;height:118px;grid-template-columns:34px 1fr;gap:10px;padding:13px;color:var(--color-text-inverse);background:linear-gradient(145deg,rgba(20,39,64,.94),rgba(12,27,47,.93));border:1px solid rgba(231,238,247,.38);border-radius:var(--radius-card);box-shadow:0 8px 22px rgba(1,7,15,.14),inset 0 0 14px rgba(66,95,130,.05)}

.decision-card i{align-self:start;color:#f4f7fb;font-size:1.62rem;filter:drop-shadow(0 0 4px rgba(255,255,255,.06))}

.decision-card strong{display:block;margin:1px 0 6px;font-size:.78rem;line-height:1.3;letter-spacing:.05em;text-transform:uppercase}

.decision-card span{display:block;color:#d2d8e1;font-size:.76rem;line-height:1.45}

.card-budget{left:20px;top:22px}
.card-commute{right:20px;top:22px}
.card-neighborhood{left:20px;top:224px;border-color:rgba(231,238,247,.38)}
.card-timeline{right:20px;top:224px}

/* Recommended path */
.decision-recommendation{position:absolute;left:50%;top:298px;z-index:4;display:grid;justify-items:center;gap:5px;transform:translateX(-50%)}

.decision-recommendation::before{
  position:absolute;
  left:50%;
  bottom:100%;
  width:2px;
  height:35px;
  content:"";
  background:var(--color-accent);
  transform:translateX(-50%);
}

.decision-recommendation::after{
  position:absolute;
  left:50%;
  top:-6px;
  width:8px;
  height:8px;
  content:"";
  background:var(--color-accent);
  border:2px solid #ffbbb5;
  border-radius:50%;
  transform:translateX(-50%);
}

.decision-recommendation span{min-width:156px;padding:6px 14px;color:var(--color-accent);text-align:center;background:#10213a;border:1.5px solid var(--color-accent);border-radius:var(--radius-pill);font-size:.67rem;font-weight:850}

.decision-recommendation small{
  color:#c8d0dc;
  font-size:.64rem;
  white-space:nowrap;
}

/* Proven process */
.process-section{
  background:#fff;
}

.process-layout>.process-heading{
  grid-column:1/7;
}

.process-heading{
  max-width:940px;
  margin-bottom:52px;
}

.process-heading h2{
  margin-bottom:0;
}

.process-list{
  position:relative;
  display:grid;
  grid-column:1/-1;
  gap:22px;
}

/*
  Desktop geometry follows the mockup:
  31% flow | 15% copy | 7% number rail | 15% copy | 32% flow
  Standard rows span the first two tracks with the photo.
  Reverse rows span the last two tracks with the photo.
*/
.process-row{
  position:relative;
  display:grid;
  grid-template-columns:31fr 15fr 7fr 15fr 32fr;
  column-gap:0;
  align-items:center;
  min-width:0;
}

/* Standard rows: photo | rail | copy | flow */
.process-row>.process-photo{
  grid-column:1/3;
  grid-row:1;
}

.process-row>.process-copy{
  grid-column:4;
  grid-row:1;
}

.process-row>.process-flow{
  grid-column:5;
  grid-row:1;
}

/* Reverse rows: flow | copy | rail | photo */
.process-row.is-reverse>.process-flow{
  grid-column:1;
  grid-row:1;
}

.process-row.is-reverse>.process-copy{
  grid-column:2;
  grid-row:1;
}

.process-row.is-reverse>.process-photo{
  grid-column:4/6;
  grid-row:1;
}

/* Photography */
.process-photo{
  position:relative;
  overflow:hidden;
  width:100%;
  min-height:0;
  aspect-ratio:2.95 / 1;
  border-radius:var(--radius-feature);
}

.process-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Copy blocks */
.process-copy{
  position:static;
  align-self:center;
  min-width:0;
  padding:0 18px 0 0;
}

.process-row.is-reverse .process-copy{
  padding:0 0 0 24px;
}

.process-copy h3{
  max-width:17ch;
  margin:0 0 8px;
  font-size:var(--type-card-title);
  font-weight:700;
  line-height:1.25;
  letter-spacing:-.012em;
}

.process-copy p{
  max-width:24ch;
  margin:0;
  color:var(--color-text-muted);
  font-size:.98rem;
  line-height:1.6;
}

/*
  The mockup uses one vertical center rail.
  Number circles are aligned near the top of each row with the heading,
  not vertically centered in the row.
*/
.process-number{
  position:absolute;
  left:49.5%;
  top:10px;
  z-index:3;
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  color:var(--color-text-inverse);
  background:var(--frame-navy);
  border:2px solid var(--color-accent);
  border-radius:50%;
  font-size:.78rem;
  font-weight:850;
  line-height:1;
  transform:translateX(-50%);
}

/* Vertical connector rail between the numbered circles */
.process-row:not(:last-child)::after{
  position:absolute;
  left:49.5%;
  top:54px;
  z-index:1;
  width:1px;
  height:calc(100% - 30px);
  content:"";
  background:#d9dde3;
  transform:translateX(-50%);
}

/* Supporting mini-flow cards */
.process-flow{
  display:flex;
  min-height:138px;
  align-self:center;
  align-items:center;
  justify-content:space-around;
  gap:var(--space-1);
  padding:16px;
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:var(--radius-card);
}

.flow-item{
  display:grid;
  min-width:58px;
  justify-items:center;
  gap:7px;
  color:#454c56;
  font-size:.62rem;
  font-weight:720;
  line-height:1.2;
  text-align:center;
}

.flow-item i{
  font-size:1.6rem;
}

.flow-arrow{
  color:#9ba1aa;
  font-size:1.1rem;
}

/* Bottom roadmap link */
.process-link{
  display:flex;
  min-height:var(--control-md);
  grid-column:1/-1;
  align-items:center;
  justify-content:center;
  margin-top:24px;
  color:var(--frame-coral-dark);
  font-size:.84rem;
  font-weight:800;
}

.process-link:hover{
  color:var(--frame-navy);
}

/* South Florida guide */
.guide-frame-section{
  background:#f4f5f6;
}

.guide-section-grid>.guide-frame{
  grid-column:1/-1;
}

.guide-frame{
  position:relative;
  isolation:isolate;
  width:100%;
  aspect-ratio:2.52 / 1;
  min-height:0;
  overflow:hidden;
  color:var(--color-text-inverse);
  background:var(--frame-navy);
  border:1px solid rgba(211,221,232,.66);
  border-radius:var(--radius-card);
  box-shadow:
    0 10px 28px rgba(11,23,40,.10),
    0 0 0 2px rgba(255,255,255,.46);
}

/* Full-bleed aerial image */
.guide-frame::before{
  position:absolute;
  inset:0;
  z-index:-2;
  content:"";
  background-image:url("south-florida-aerial-guide.webp");
  background-position:center 70%;
  background-size:112% auto;
  background-repeat:no-repeat;
}

/* Dark editorial overlay: strongest under the copy, lighter toward the right */
.guide-frame::after{
  position:absolute;
  inset:0;
  z-index:-1;
  content:"";
  background:
    linear-gradient(
      90deg,
      rgba(5,18,34,.94) 0%,
      rgba(5,18,34,.86) 22%,
      rgba(5,18,34,.62) 42%,
      rgba(5,18,34,.28) 60%,
      rgba(5,18,34,.10) 100%
    ),
    linear-gradient(
      180deg,
      rgba(5,14,27,.12) 0%,
      rgba(5,14,27,.03) 40%,
      rgba(4,13,25,.22) 100%
    );
}

/* Left editorial copy block */
.guide-frame-copy{
  position:absolute;
  left:4.4%;
  top:50%;
  z-index:3;
  width:31%;
  max-width:355px;
  padding:0;
  transform:translateY(-50%);
}

.guide-frame-copy .eyebrow{
  margin:0 0 10px;
  color:var(--color-eyebrow-dark);
  font-size:var(--type-eyebrow);
  font-weight:850;
  letter-spacing:.16em;
}

.guide-frame-copy h2{
  max-width:330px;
  margin:0 0 14px;
  color:var(--color-text-inverse);
  font-size:var(--type-section-lg);
  font-weight:740;
  line-height:1.02;
  letter-spacing:-.03em;
}

.guide-frame-copy p:not(.eyebrow){
  max-width:32ch;
  margin:0 0 18px;
  color:#eef1f4;
  font-size:var(--type-body);
  line-height:1.65;
}

.guide-frame-copy .button{
  min-height:var(--control-sm);
  padding:10px 18px;
  color:#111827;
  background:#fff;
  border-color:var(--color-text-inverse);
  border-radius:var(--radius-pill);
  font-size:.76rem;
  font-weight:800;
}

/* Map pins */
.guide-pins{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}

.area-pin{
  position:absolute;
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--color-text-inverse);
  font-size:.64rem;
  font-weight:800;
}

.area-pin i{
  position:relative;
  display:block;
  width:26px;
  height:26px;
  flex:0 0 26px;
  background:var(--color-accent);
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  filter:drop-shadow(0 3px 6px rgba(2,8,17,.38));
  font-size:0;
}

.area-pin i::before{
  content:none!important;
}

.area-pin i::after{
  position:absolute;
  left:50%;
  top:50%;
  width:7px;
  height:7px;
  content:"";
  background:#152238;
  border-radius:50%;
  transform:translate(-50%,-50%);
}

.area-pin span{
  padding:5px 9px;
  background:rgba(8,17,30,.94);
  border:1px solid rgba(219,228,238,.48);
  border-radius:var(--radius-control);
  box-shadow:0 5px 14px rgba(2,8,17,.24);
  white-space:nowrap;
}

/* These intentionally tuck slightly underneath the drawer, as in the mockup */
.area-pin.palm{
  left:53.8%;
  top:20.5%;
}

.area-pin.broward{
  left:54.6%;
  top:33.0%;
}

.area-pin.miami{
  left:49.3%;
  top:58.0%;
}

/* Right guide drawer */
.guide-drawer-preview{
  position:absolute;
  top:5.2%;
  right:2.4%;
  bottom:5.2%;
  z-index:4;
  width:27%;
  padding:18px 20px;
  color:var(--color-text-inverse);
  background:rgba(8,20,36,.96);
  border:1px solid rgba(220,229,239,.18);
  border-radius:var(--radius-feature);
  box-shadow:
    0 14px 30px rgba(1,8,18,.28),
    inset 0 0 0 1px rgba(255,255,255,.02);
  backdrop-filter:blur(10px);
}

.guide-drawer-preview .eyebrow{
  margin:0 0 8px;
  color:var(--color-eyebrow-dark);
  font-size:.54rem;
  font-weight:850;
  letter-spacing:.17em;
}

.guide-drawer-preview h3{
  max-width:240px;
  margin:0 0 12px;
  color:var(--color-text-inverse);
  font-size:1.08rem;
  font-weight:760;
  line-height:1.12;
  letter-spacing:-.016em;
}

.guide-drawer-preview .guide-chip-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  margin:0;
}

.guide-drawer-preview .guide-chip{
  display:flex;
  min-height:39px;
  align-items:center;
  justify-content:flex-start;
  padding:7px 10px;
  color:#f4f6f8;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(224,232,242,.30);
  border-radius:var(--radius-control);
  font-size:.64rem;
  font-weight:740;
  text-align:left;
}

.guide-drawer-preview .guide-chip.is-secondary{
  display:flex;
}

.guide-drawer-preview .guide-chip:last-child{
  grid-column:1/-1;
}

.guide-drawer-preview .guide-more{
  display:flex;
  width:100%;
  min-height:38px;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:7px;
  padding:7px 10px;
  color:#eef2f6;
  background:rgba(2,12,24,.44);
  border:1px solid rgba(223,231,241,.38);
  border-radius:var(--radius-control);
  font-size:.62rem;
  font-weight:760;
}

/* Story journey */
.journey-section{
  position:relative;
  overflow:hidden;
  color:var(--color-text-inverse);
  background:
    radial-gradient(circle at 50% 16%,rgba(20,47,76,.34) 0%,rgba(9,29,49,.18) 32%,transparent 58%),
    linear-gradient(180deg,#07182a 0%,#081a2d 100%);
}

.journey-section.section-shell{
  padding-block:88px 96px;
}

.journey-layout>.eyebrow{
  grid-column:1/-1;
  margin:0 0 8px;
  color:var(--color-eyebrow-dark);
  font-size:var(--type-eyebrow);
  font-weight:700;
  letter-spacing:.14em;
}

.journey-layout>h2{
  grid-column:1/7;
  max-width:620px;
  margin:0;
  color:var(--color-text-inverse);
  font-size:var(--type-section-lg);
  font-weight:730;
  line-height:1.04;
  letter-spacing:-.026em;
}

/* Five tall editorial journey cards */
.journey-grid{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-column:1/-1;
  grid-template-columns:repeat(5,minmax(0,1fr));
  margin-top:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.22);
  background:var(--color-surface-dark);
}

.journey-card{
  position:relative;
  min-width:0;
  overflow:hidden;
  background:var(--color-surface-dark);
  border-right:1px solid rgba(255,255,255,.22);
}

.journey-card:last-child{
  border-right:0;
}

/* Dark cinematic image treatment like the mockup */
.journey-card::before{
  position:absolute;
  inset:0 0 auto;
  z-index:1;
  height:72%;
  pointer-events:none;
  content:"";
  background:
    linear-gradient(
      180deg,
      rgba(4,12,23,.22) 0%,
      rgba(4,12,23,.20) 42%,
      rgba(4,12,23,.62) 100%
    ),
    linear-gradient(
      90deg,
      rgba(4,12,23,.14),
      transparent 45%,
      rgba(4,12,23,.14)
    );
}

.journey-card img{
  display:block;
  width:100%;
  aspect-ratio:.82 / 1;
  height:auto;
  object-fit:cover;
  filter:saturate(.72) brightness(.58) contrast(1.08);
}

/* Rebuild labels so only the number is coral and the word is white */
.journey-label{
  position:absolute;
  left:18px;
  top:18px;
  z-index:6;
  display:flex;
  align-items:center;
  gap:4px;
  color:var(--color-text-inverse);
  font-size:0;
  font-weight:850;
  letter-spacing:.075em;
  text-transform:uppercase;
  text-shadow:
    0 1px 3px rgba(0,0,0,.65),
    0 0 8px rgba(0,0,0,.28);
}

.journey-label::before,
.journey-label::after{
  font-size:.68rem;
  line-height:1;
}

.journey-label::before{
  color:var(--color-accent-bright);
}

.journey-label::after{
  color:var(--color-text-inverse);
}

.journey-card:nth-child(1) .journey-label::before{content:"01"}
.journey-card:nth-child(1) .journey-label::after{content:"GOALS"}
.journey-card:nth-child(2) .journey-label::before{content:"02"}
.journey-card:nth-child(2) .journey-label::after{content:"NUMBERS"}
.journey-card:nth-child(3) .journey-label::before{content:"03"}
.journey-card:nth-child(3) .journey-label::after{content:"NEIGHBORHOODS"}
.journey-card:nth-child(4) .journey-label::before{content:"04"}
.journey-card:nth-child(4) .journey-label::after{content:"OFFER"}
.journey-card:nth-child(5) .journey-label::before{content:"05"}
.journey-card:nth-child(5) .journey-label::after{content:"KEYS"}

/* Copy panel */
.journey-copy{
  position:relative;
  z-index:2;
  min-height:132px;
  padding:18px 20px 22px;
  background:
    linear-gradient(180deg,rgba(8,25,43,.98),#08192b 100%);
}

.journey-copy p{
  max-width:21ch;
  margin:0;
  color:var(--color-text-inverse);
  font-size:.98rem;
  font-weight:500;
  line-height:1.6;
}

/*
  Curved coral journey path from the mockup.
  It replaces the current straight horizontal rule.
*/
.journey-grid::after{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  content:"";
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 420' preserveAspectRatio='none'%3E%3Cpath d='M45 270 C105 272 118 165 180 164 C236 164 245 285 302 276 C348 268 356 172 414 178 C470 185 480 294 540 285 C592 278 598 205 652 207 C706 210 714 286 766 274 C812 264 810 174 848 164' fill='none' stroke='%23ef575b' stroke-width='6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:100% 100%;
  filter:drop-shadow(0 1px 1px rgba(255,255,255,.12));
}

/* Existing node elements are placed directly on the curved path */
.journey-node{
  position:absolute;
  z-index:5;
  width:15px;
  height:15px;
  background:var(--color-accent);
  border:4px solid #fff;
  border-radius:50%;
  box-shadow:0 0 0 2px rgba(239,87,91,.25);
  transform:translate(-50%,-50%);
}

.journey-card:nth-child(1) .journey-node{left:22.5%;top:64.3%}
.journey-card:nth-child(2) .journey-node{left:51%;top:65.7%}
.journey-card:nth-child(3) .journey-node{left:70%;top:67.9%}
.journey-card:nth-child(4) .journey-node{left:83%;top:65.2%}
.journey-card:nth-child(5) .journey-node{left:24%;top:39.1%}

/* Toolkit bar */
.resource-frame{
  display:grid;
  grid-column:1/-1;
  grid-template-columns:repeat(12,minmax(0,1fr));
  column-gap:var(--site-gutter);
  align-items:center;
  margin-top:28px;
  padding:28px 34px;
  background:var(--frame-navy-2);
  border:1px solid rgba(255,255,255,.34);
  border-radius:10px;
  box-shadow:
    inset 4px 0 0 var(--color-accent),
    inset 0 0 0 1px rgba(255,255,255,.025);
}

.resource-frame>div:first-child{
  grid-column:1/7;
}

.resource-frame>.resource-actions{
  grid-column:7/13;
  justify-self:end;
}

.resource-frame .eyebrow{
  margin:0 0 5px;
  color:var(--color-eyebrow-dark);
  font-size:var(--type-eyebrow);
  font-weight:700;
  letter-spacing:.11em;
}

.resource-frame h3{
  margin:0;
  color:var(--color-text-inverse);
  font-size:clamp(1.35rem,2vw,1.6rem);
  font-weight:700;
  line-height:1.18;
  letter-spacing:-.015em;
}

.resource-frame p{
  margin:4px 0 0;
  color:var(--color-text-inverse-muted);
  font-size:.96rem;
  line-height:1.55;
}

.resource-frame .resource-actions{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
}

.resource-frame .resource-actions .button,
.resource-frame .resource-actions .resource-link{
  display:inline-flex;
  min-width:190px;
  min-height:46px;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:10px 20px;
  border-radius:var(--radius-pill);
  font-size:.92rem;
  font-weight:800;
  white-space:nowrap;
}

.resource-frame .resource-actions .button{
  color:#0b1728;
  background:#fff;
  border:1px solid #fff;
}

.resource-frame .resource-actions .resource-link{
  color:var(--color-text-inverse);
  background:var(--color-accent);
  border:1px solid var(--color-accent);
}

.resource-frame .resource-actions .resource-link:hover{
  background:var(--color-accent-hover);
  border-color:var(--color-accent-hover);
}


/* FAQ / contact finish */
.closing-section{color:var(--color-text-inverse);background:#fff;border-top:1px solid var(--color-border)}
.closing-grid{align-items:start}.closing-grid>.faq-panel{grid-column:1/7}.closing-grid>.contact-panel{grid-column:7/13}
.faq-panel,.contact-panel{min-height:420px;padding:30px 32px;background:rgba(16,29,48,.96);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-feature)}
.faq-panel h2,.contact-panel h2{margin-bottom:24px;color:var(--color-text-inverse);font-size:var(--type-section-md);font-weight:700;line-height:1.12;letter-spacing:-.02em}
.faq-panel .faq-list{border-color:rgba(255,255,255,.24)}
.faq-panel details{border-color:rgba(255,255,255,.23)}
.faq-panel summary{padding:24px 48px 24px 0;color:var(--color-text-inverse);font-size:1rem;font-weight:700}
.faq-panel summary::after{top:9px;color:var(--frame-coral)}
.faq-panel details p{padding-bottom:24px;color:var(--color-text-inverse-muted);font-size:.98rem;line-height:1.65}
.contact-panel{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 46%;align-items:center;align-self:start;background:var(--frame-navy-2)}
.contact-panel::after{position:absolute;top:0;right:0;bottom:0;z-index:-2;width:46%;content:"";background:url("hatcher-profile-640.jpg") center 32%/cover no-repeat;opacity:1}
.contact-panel::before{position:absolute;inset:0;z-index:-1;content:"";background:linear-gradient(90deg,var(--frame-navy-2) 0%,var(--frame-navy-2) 48%,rgba(16,29,48,.82) 60%,rgba(16,29,48,.24) 80%,rgba(16,29,48,.02) 100%)}
.contact-panel-copy{position:relative;z-index:1;max-width:390px}
.contact-panel p:not(.eyebrow){color:#d5dbe3;font-size:1rem;line-height:1.65}
.contact-panel .contact-links{display:grid;gap:var(--space-1);margin:var(--space-2) 0}
.contact-panel .contact-links a,.contact-panel .contact-links button{width:max-content;min-height:36px;padding:4px 0;border:0;border-radius:0;font-size:.84rem}
.contact-panel .contact-links img{filter:brightness(0) invert(1)}
.contact-panel .contact-links span{display:flex;align-items:center;gap:8px;color:#d5dbe3;font-size:.8rem}
.contact-panel .button{display:none!important}

/* Compact footer */
.frame-footer{background:#06111f;border-top:1px solid rgba(255,255,255,.14)}
.footer-layout>.frame-footer-main,.footer-layout>.legal{grid-column:1/-1}
.frame-footer-main{display:flex;align-items:center;justify-content:space-between;gap:24px}
.frame-footer-brand{display:flex;align-items:center;gap:12px;color:#fff}
.frame-footer-brand img{width:40px;filter:brightness(0) invert(1)}
.frame-footer-brand strong{display:block;font-size:.74rem;letter-spacing:.09em;text-transform:uppercase}
.frame-footer-brand span{display:block;margin-top:2px;color:#aeb8c5;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}
.frame-footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;color:#cbd2db;font-size:.72rem}
.frame-footer-nav a,.frame-footer-nav button{display:inline-flex;min-height:var(--control-sm);align-items:center;padding:0 4px}
.frame-footer-nav button{color:inherit;background:none;border:0;font:inherit}
.frame-footer-nav a:hover,.frame-footer-nav button:hover{color:#fff}
.frame-footer .social-links{margin:0}
.frame-footer .social-links a{width:44px;height:44px}
.frame-footer .legal{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:26px;padding-top:16px;font-size:.68rem}
.frame-footer .legal p{margin:0;font-size:inherit}
.seller-note{color:#9fa9b6}
.seller-note button{min-height:var(--control-sm);padding:0;color:var(--color-text-inverse);background:none;border:0;border-bottom:1px solid currentColor}

.guide-drawer-preview .guide-chip-grid button{min-height:44px}
.contact-details a,.contact-details button{min-height:44px}
.frame-footer .legal a{display:inline-flex;min-height:var(--control-sm);align-items:center}

@media(max-width:720px){
  .container{width:min(calc(100% - 28px),var(--frame-max))}
  .brand-copy{display:none}.frame-hero{min-height:100svh}.frame-hero .hero-content{padding:132px 0 56px}.frame-hero .hero-copy{grid-column:1/-1;max-width:none;gap:var(--space-2)}.frame-hero h1{max-width:8.5ch;font-size:clamp(2.4rem,10.5vw,3rem);line-height:1.04}.frame-hero .hero-title-line{white-space:normal}.frame-hero .hero-title-line + .hero-title-line{margin-top:.24em}.frame-hero .lead{max-width:28ch;font-size:1rem;line-height:1.5}.frame-hero .actions{display:grid}.frame-hero .button{min-height:var(--control-lg);padding:12px 20px}.frame-hero .trustline{margin-top:12px;font-size:.82rem}
  .decision-layout{gap:34px}.decision-copy h2{max-width:12ch;font-size:2.2rem}.decision-copy p:last-child{font-size:.84rem;line-height:1.58}.decision-map{display:block;min-height:730px}.decision-goal{left:50%;top:300px;width:188px;height:188px;min-height:0;border-radius:50%;transform:translate(-50%,-50%)}.decision-card,.decision-card:nth-child(n){position:absolute;width:calc(50% - 6px);min-height:178px;grid-template-columns:34px 1fr;gap:7px;padding:14px 11px}.decision-card i{font-size:1.55rem}.decision-card strong{font-size:.61rem}.decision-card span{font-size:.65rem}.card-budget{left:0;right:auto;top:0;bottom:auto}.card-commute{left:auto;right:0;top:0;bottom:auto}.card-neighborhood{left:0;right:auto;top:535px;bottom:auto}.card-timeline{left:auto;right:0;top:535px;bottom:auto}.decision-recommendation{top:430px}.decision-recommendation span{min-width:170px}.decision-recommendation small{font-size:.62rem}.decision-guide{left:10px;right:10px;top:300px}.decision-guide::before,.decision-guide::after{top:-92px;height:185px}.decision-route .route-vertical,.decision-route .route-b{display:none}.decision-route .route-a{width:2px;background:rgba(226,233,242,.82)}.route-budget .route-a{left:25%;top:178px;height:29px}.route-budget .route-node{left:calc(25% - 5px);top:173px}.route-commute .route-a{left:75%;right:auto;top:178px;height:29px}.route-commute .route-node{left:calc(75% - 5px);right:auto;top:173px}.route-neighborhood .route-a{left:25%;top:394px;height:141px}.route-neighborhood .route-node{left:calc(25% - 5px);top:530px}.route-timeline .route-a{left:75%;right:auto;top:394px;height:141px}.route-timeline .route-node{left:calc(75% - 5px);right:auto;top:530px}
  .process-heading{margin-bottom:28px}
  .process-row,.process-row.is-reverse{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:14px;
    padding-bottom:28px;
    border-bottom:1px solid var(--frame-line);
  }
  .process-row.is-reverse .process-flow{order:3}
  .process-row.is-reverse .process-copy{order:2}
  .process-row.is-reverse .process-photo{order:1}
  .process-photo{min-height:0;aspect-ratio:1.9 / 1}
  .process-photo img{width:100%;height:100%}
  .process-copy,.process-row.is-reverse .process-copy{
    position:relative;
    padding:0 0 0 52px;
  }
  .process-number,.process-row.is-reverse .process-number{
    left:0;
    top:-2px;
    transform:none;
  }
  .process-row:not(:last-child)::after{display:none}
  .process-flow{min-height:104px}
  .process-link{justify-content:flex-start}
  .guide-frame{aspect-ratio:auto;min-height:0;padding:34px 22px 22px}
  .guide-frame::before{background-position:center 48%}
  .guide-frame::after{background:linear-gradient(180deg,rgba(5,18,34,.92) 0%,rgba(5,18,34,.72) 38%,rgba(5,18,34,.54) 58%,rgba(5,18,34,.92) 100%)}
  .guide-frame-copy{position:relative;left:auto;top:auto;width:auto;max-width:310px;transform:none}
  .guide-frame-copy h2{max-width:280px;font-size:2.35rem}
  .guide-frame-copy p:not(.eyebrow){max-width:29ch}
  .guide-frame-copy .button{width:auto}
  .guide-pins{position:relative;inset:auto;height:175px;margin-top:20px}
  .area-pin.palm{left:38%;top:0}
  .area-pin.broward{left:auto;right:1%;top:58px}
  .area-pin.miami{left:17%;top:auto;bottom:0}
  .guide-drawer-preview{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:100%;margin-top:22px;padding:20px}
  .guide-drawer-preview h3{max-width:250px}
  .guide-drawer-preview .guide-chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .journey-grid{margin-inline:0;grid-template-columns:repeat(5,minmax(190px,1fr));overflow-x:auto}
  .journey-section.section-shell{padding-block:44px 48px}
  .journey-layout>h2{font-size:2rem}
  .resource-frame{display:grid;grid-template-columns:1fr;row-gap:18px;padding:20px}
  .resource-frame>div:first-child,.resource-frame>.resource-actions{grid-column:1/-1;justify-self:stretch}
  .resource-frame .resource-actions{width:100%;display:grid;grid-template-columns:1fr;gap:10px}
  .resource-frame .resource-actions .button,.resource-frame .resource-actions .resource-link{width:100%;min-width:0;justify-content:center}
  .closing-grid{gap:16px}.faq-panel,.contact-panel{padding:22px}.contact-panel{display:block;min-height:560px;padding-bottom:270px}.contact-panel::after{background-position:50% 100%;background-size:auto 300px}.contact-panel::before{background:linear-gradient(180deg,#102238 0%,#102238 56%,rgba(16,34,56,.18) 100%)}
  .frame-footer-main{align-items:flex-start;flex-direction:column}.frame-footer-nav{justify-content:flex-start;gap:14px}.frame-footer .legal{flex-direction:column}
}

@media(hover:hover){
  .decision-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}
  .process-row:hover .process-photo img,.journey-card:hover img{transform:scale(1.025)}
  .process-photo img,.journey-card img{transition:transform .35s ease}
  .area-pin:hover{background:var(--frame-coral-dark)}
}

/* Shared responsive grid: 12 desktop / 8 tablet / 4 mobile */
@media(max-width:1024px){
  :root{--site-columns:8;--site-gutter:20px;--site-edge:24px;--site-inline:48px;--space-section-sm:56px;--space-section-md:100px;--space-section-lg:88px}
  .frame-hero .hero-content>*{grid-column:1/7}
  .decision-layout{grid-template-columns:repeat(8,minmax(0,1fr));column-gap:var(--site-gutter);row-gap:32px}.decision-copy{grid-column:1/9;padding-top:0}.decision-copy h2{max-width:520px}.decision-map{grid-column:1/9;justify-self:center;max-width:760px}
  .process-layout>.process-heading{grid-column:1/7}.process-layout>.process-list,.process-layout>.process-link{grid-column:1/9}
  .process-row,.process-row.is-reverse{
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    column-gap:var(--site-gutter);
    row-gap:14px;
  }
  .process-row>.process-photo,.process-row.is-reverse>.process-photo{
    grid-column:1/6;
    grid-row:1;
  }
  .process-row>.process-copy,.process-row.is-reverse>.process-copy{
    grid-column:6/9;
    grid-row:1;
    padding:18px 0 0 42px;
  }
  .process-row>.process-flow,.process-row.is-reverse>.process-flow{
    grid-column:1/9;
    grid-row:2;
  }
  .process-number,.process-row.is-reverse .process-number{
    left:calc(62.5% + 7px);
    top:14px;
  }
  .process-row:not(:last-child)::after{
    display:none;
  }
  .guide-frame{aspect-ratio:auto;min-height:500px}
  .guide-frame-copy{left:4%;top:50%;width:34%;max-width:330px;padding:0;transform:translateY(-50%)}
  .guide-drawer-preview{top:6%;right:3%;bottom:6%;width:34%;padding:18px}
  .guide-pins{display:block}
  .journey-layout>.eyebrow,.journey-layout>.journey-grid,.journey-layout>.resource-frame{grid-column:1/9}
  .journey-layout>h2{grid-column:1/7}
  .journey-grid{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto}
  .resource-frame{grid-template-columns:repeat(8,minmax(0,1fr));column-gap:var(--site-gutter)}
  .resource-frame>div:first-child{grid-column:1/5}
  .resource-frame>.resource-actions{grid-column:5/9}
  .resource-frame .resource-actions{gap:10px}
  .resource-frame .resource-actions .button,.resource-frame .resource-actions .resource-link{min-width:150px}
  .closing-grid{grid-template-columns:repeat(8,minmax(0,1fr));column-gap:var(--site-gutter);align-items:start}.closing-grid>.faq-panel{grid-column:1/5}.closing-grid>.contact-panel{grid-column:5/9}.faq-panel,.contact-panel{min-height:420px}.contact-panel{grid-template-columns:1fr 44%}
  .footer-layout>.frame-footer-main,.footer-layout>.legal{grid-column:1/9}
}

@media(max-width:720px){
  :root{--site-columns:4;--site-gutter:16px;--site-edge:16px;--site-inline:32px;--space-section-sm:48px;--space-section-md:68px;--space-section-lg:76px}
  .container,.site-container{width:min(var(--site-max),calc(100% - 32px))}
  .frame-hero .hero-content>*{grid-column:1/5}
  .decision-layout{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--site-gutter);row-gap:32px}.decision-copy,.decision-map{grid-column:1/5}
  .process-layout>.process-heading,.process-layout>.process-list,.process-layout>.process-link{grid-column:1/5}
  .process-row,.process-row.is-reverse{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--site-gutter);row-gap:16px}
  .process-row>.process-photo,.process-row.is-reverse>.process-photo{grid-column:1/5;grid-row:1}.process-row>.process-copy,.process-row.is-reverse>.process-copy{grid-column:1/5;grid-row:2}.process-row>.process-flow,.process-row.is-reverse>.process-flow{grid-column:1/5;grid-row:3}
  .guide-frame{display:grid;height:auto;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--site-gutter);padding:24px}.guide-frame-copy{grid-column:1/5;padding-left:0}.guide-pins{grid-column:1/5}.guide-drawer-preview{grid-column:1/5;width:100%}
  .journey-layout>.eyebrow,.journey-layout>h2,.journey-layout>.journey-grid,.journey-layout>.resource-frame{grid-column:1/5}.journey-grid{margin-inline:0}
  .resource-frame{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--site-gutter);row-gap:24px;padding:24px}.resource-frame>div:first-child,.resource-frame>.resource-actions{grid-column:1/5;justify-self:stretch}
  .closing-grid{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--site-gutter);row-gap:16px}.closing-grid>.faq-panel,.closing-grid>.contact-panel{grid-column:1/5}.contact-panel{display:block}
  .footer-layout>.frame-footer-main,.footer-layout>.legal{grid-column:1/5}
}

/* Budget Planner CTA */
.resource-frame .resource-actions a.resource-link[href$="First_Time_Homebuyer_Budget_Planner.xlsx"]{
  color:#fff;
  background:var(--color-accent);
  border-color:var(--color-accent);
}

.resource-frame .resource-actions a.resource-link[href$="First_Time_Homebuyer_Budget_Planner.xlsx"]:hover{
  color:#fff;
  background:var(--color-accent-hover);
  border-color:var(--color-accent-hover);
}


/* Resource CTA priority */
.resource-frame .resource-actions > :nth-child(2){
  color:#fff!important;
  background:var(--color-accent)!important;
  border-color:var(--color-accent)!important;
}

.resource-frame .resource-actions > :nth-child(2):hover{
  color:#fff!important;
  background:var(--color-accent-hover)!important;
  border-color:var(--color-accent-hover)!important;
}


/* =========================================================
   Responsive QA pass
   Final overrides intentionally live at the end of the file
   so they win over earlier breakpoint rules.
   ========================================================= */

/* Prevent accidental horizontal overflow from wide visual sections. */
html,
body{
  max-width:100%;
  overflow-x:hidden;
}

img,
svg{
  max-width:100%;
}

/* Large laptop / compact desktop */
@media (max-width:1200px){
  :root{
    --site-inline:48px;
  }

  .frame-hero .hero-copy{
    grid-column:1/span 8;
    max-width:760px;
  }

  header.hero.frame-hero h1{
    font-size:clamp(3.25rem,5vw,4.05rem);
  }

  .decision-map{
    transform:scale(.96);
    transform-origin:center;
  }

  .process-copy h3{
    font-size:clamp(1.1rem,1.65vw,1.35rem);
  }

  .process-copy p{
    font-size:.92rem;
  }

  .guide-frame-copy{
    width:32%;
  }

  .guide-drawer-preview{
    width:29%;
  }

  .resource-frame .resource-actions .button,
  .resource-frame .resource-actions .resource-link{
    min-width:170px;
  }
}

/* Tablet / landscape tablet */
@media (max-width:1024px){
  :root{
    --site-columns:8;
    --site-gutter:20px;
    --site-inline:40px;
    --space-section-sm:56px;
    --space-section-md:80px;
    --space-section-lg:92px;
  }

  .frame-hero{
    min-height:100svh;
  }

  .frame-hero .hero-content{
    padding:132px 0 64px;
  }

  .frame-hero .hero-content>*{
    grid-column:1/8;
  }

  .frame-hero .hero-copy{
    max-width:720px;
  }

  header.hero.frame-hero h1{
    max-width:13ch;
    font-size:clamp(3rem,6.3vw,3.8rem);
  }

  .frame-hero .topbar{
    padding-top:16px;
  }

  /* Decision canvas: stack copy above visual and remove desktop scaling assumptions. */
  .decision-layout{
    grid-template-columns:repeat(8,minmax(0,1fr));
    row-gap:40px;
  }

  .decision-copy{
    grid-column:1/9;
    max-width:680px;
  }

  .decision-copy h2{
    max-width:14ch;
  }

  .decision-map{
    grid-column:1/9;
    max-width:720px;
    transform:none;
  }

  /* Process section: image + copy first, flow card below. */
  .process-row,
  .process-row.is-reverse{
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    column-gap:20px;
    row-gap:18px;
    padding-bottom:18px;
  }

  .process-row>.process-photo,
  .process-row.is-reverse>.process-photo{
    grid-column:1/6;
    grid-row:1;
  }

  .process-row>.process-copy,
  .process-row.is-reverse>.process-copy{
    grid-column:6/9;
    grid-row:1;
    align-self:center;
    padding:0 0 0 42px;
  }

  .process-row>.process-flow,
  .process-row.is-reverse>.process-flow{
    grid-column:1/9;
    grid-row:2;
  }

  .process-number,
  .process-row.is-reverse .process-number{
    left:calc(62.5% + 4px);
    top:50%;
    transform:translate(-50%,-50%);
  }

  .process-row:not(:last-child)::after{
    display:none;
  }

  .process-photo{
    aspect-ratio:2.35/1;
  }

  .process-flow{
    min-height:116px;
  }

  /* Guide: keep composition intact but give the drawer more usable width. */
  .guide-frame{
    min-height:520px;
    aspect-ratio:auto;
  }

  .guide-frame-copy{
    left:4%;
    width:35%;
    max-width:320px;
  }

  .guide-frame-copy h2{
    font-size:clamp(2.15rem,4.3vw,2.8rem);
  }

  .guide-drawer-preview{
    top:5%;
    right:3%;
    bottom:5%;
    width:36%;
    padding:18px;
  }

  .area-pin.palm{left:48%;top:18%}
  .area-pin.broward{left:49%;top:36%}
  .area-pin.miami{left:46%;top:60%}

  /* Journey cards remain horizontally scrollable rather than becoming unreadably narrow. */
  .journey-grid{
    grid-template-columns:repeat(5,minmax(190px,1fr));
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:inline proximity;
  }

  .journey-card{
    scroll-snap-align:start;
  }

  .resource-frame{
    grid-template-columns:repeat(8,minmax(0,1fr));
    row-gap:20px;
  }

  .resource-frame>div:first-child{
    grid-column:1/5;
  }

  .resource-frame>.resource-actions{
    grid-column:5/9;
    width:100%;
  }

  .resource-frame .resource-actions{
    gap:10px;
  }

  .resource-frame .resource-actions .button,
  .resource-frame .resource-actions .resource-link{
    min-width:0;
    flex:1 1 0;
  }

  .closing-grid{
    grid-template-columns:repeat(8,minmax(0,1fr));
    column-gap:20px;
    align-items:start;
  }

  .closing-grid>.faq-panel{
    grid-column:1/5;
  }

  .closing-grid>.contact-panel{
    grid-column:5/9;
  }

  .faq-panel,
  .contact-panel{
    min-height:440px;
    padding:26px;
  }

  .contact-panel{
    grid-template-columns:minmax(0,1fr) 44%;
  }
}

/* Portrait tablet / large phone */
@media (max-width:820px){
  :root{
    --site-inline:32px;
    --space-section-md:72px;
  }

  .frame-hero .hero-content>*{
    grid-column:1/9;
  }

  header.hero.frame-hero h1{
    max-width:11ch;
  }

  .decision-copy h2{
    font-size:clamp(2.15rem,7vw,2.65rem);
  }

  /* Decision canvas gets a dedicated stacked mobile/tablet layout. */
  .decision-map{
    min-height:700px;
    max-width:620px;
  }

  .decision-card,
  .decision-card:nth-child(n){
    width:calc(50% - 8px);
    min-height:170px;
  }

  .decision-goal{
    top:294px;
  }

  .card-neighborhood,
  .card-timeline{
    top:520px;
  }

  .decision-recommendation{
    top:420px;
  }

  .process-heading{
    margin-bottom:34px;
  }

  .process-row,
  .process-row.is-reverse{
    grid-template-columns:1fr;
    row-gap:16px;
    padding-bottom:30px;
    border-bottom:1px solid var(--color-border);
  }

  .process-row>.process-photo,
  .process-row.is-reverse>.process-photo{
    grid-column:1;
    grid-row:1;
  }

  .process-row>.process-copy,
  .process-row.is-reverse>.process-copy{
    position:relative;
    grid-column:1;
    grid-row:2;
    padding:0 0 0 58px;
  }

  .process-row>.process-flow,
  .process-row.is-reverse>.process-flow{
    grid-column:1;
    grid-row:3;
  }

  .process-number,
  .process-row.is-reverse .process-number{
    left:0;
    top:0;
    transform:none;
  }

  .process-photo{
    aspect-ratio:1.8/1;
  }

  .process-flow{
    min-height:110px;
  }

  /* Guide becomes a stacked feature card; no overlapping drawer. */
  .guide-frame{
    display:block;
    min-height:0;
    padding:34px 28px 28px;
  }

  .guide-frame::before{
    background-size:cover;
    background-position:center 58%;
  }

  .guide-frame::after{
    background:
      linear-gradient(180deg,
        rgba(5,18,34,.94) 0%,
        rgba(5,18,34,.74) 36%,
        rgba(5,18,34,.46) 58%,
        rgba(5,18,34,.92) 100%);
  }

  .guide-frame-copy{
    position:relative;
    left:auto;
    top:auto;
    width:auto;
    max-width:430px;
    transform:none;
  }

  .guide-frame-copy h2{
    max-width:10ch;
  }

  .guide-pins{
    position:relative;
    inset:auto;
    height:180px;
    margin:22px 0;
  }

  .area-pin.palm{left:46%;top:2%}
  .area-pin.broward{left:58%;top:36%}
  .area-pin.miami{left:26%;top:auto;bottom:4%}

  .guide-drawer-preview{
    position:relative;
    inset:auto;
    width:100%;
    margin-top:18px;
    padding:22px;
  }

  .guide-drawer-preview h3{
    max-width:330px;
  }

  .journey-layout>h2{
    grid-column:1/-1;
  }

  /* Resource actions stack at this width to avoid squeezed labels. */
  .resource-frame{
    display:grid;
    grid-template-columns:1fr;
    row-gap:22px;
    padding:26px;
  }

  .resource-frame>div:first-child,
  .resource-frame>.resource-actions{
    grid-column:1;
    justify-self:stretch;
  }

  .resource-frame .resource-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }

  .resource-frame .resource-actions .button,
  .resource-frame .resource-actions .resource-link{
    width:100%;
  }

  /* Closing cards stack; equal height constraint is no longer useful. */
  .closing-grid{
    grid-template-columns:1fr;
    row-gap:20px;
  }

  .closing-grid>.faq-panel,
  .closing-grid>.contact-panel{
    grid-column:1;
  }

  .faq-panel,
  .contact-panel{
    min-height:0;
  }

  .contact-panel{
    min-height:480px;
  }

  .frame-footer-main{
    align-items:flex-start;
    flex-direction:column;
  }

  .frame-footer-nav{
    justify-content:flex-start;
  }
}

/* Mobile */
@media (max-width:720px){
  :root{
    --site-columns:4;
    --site-gutter:16px;
    --site-inline:32px;
    --space-section-sm:48px;
    --space-section-md:64px;
    --space-section-lg:72px;
  }

  .container,
  .site-container{
    width:min(var(--site-max),calc(100% - 32px));
  }

  .frame-hero{
    min-height:100svh;
  }

  .frame-hero .hero-content{
    padding:116px 0 44px;
  }

  .frame-hero .hero-copy,
  .frame-hero .hero-content>*{
    grid-column:1/5;
    max-width:none;
  }

  header.hero.frame-hero h1{
    max-width:10.5ch;
    font-size:clamp(2.5rem,11vw,3.35rem);
    line-height:1.06;
  }

  header.hero.frame-hero .hero-title-line{
    white-space:normal;
  }

  header.hero.frame-hero .lead{
    max-width:29ch;
    font-size:1rem;
    line-height:1.55;
  }

  .frame-hero .actions{
    display:grid;
    gap:10px;
    margin-top:18px;
  }

  .frame-hero .button{
    width:100%;
    min-height:50px;
  }

  .frame-hero .trustline{
    max-width:32ch;
    margin-top:16px;
    font-size:.84rem;
    line-height:1.5;
  }

  /* Decision canvas */
  .decision-layout{
    grid-template-columns:repeat(4,minmax(0,1fr));
    row-gap:28px;
  }

  .decision-copy,
  .decision-map{
    grid-column:1/5;
  }

  .decision-copy h2{
    max-width:11ch;
    margin-bottom:16px;
    font-size:clamp(2rem,9vw,2.5rem);
  }

  .decision-copy p:last-child{
    max-width:34ch;
    font-size:.95rem;
  }

  .decision-map{
    min-height:690px;
  }

  .decision-card,
  .decision-card:nth-child(n){
    width:calc(50% - 6px);
    min-height:172px;
    grid-template-columns:30px 1fr;
    gap:7px;
    padding:13px 10px;
  }

  .decision-card i{
    font-size:1.4rem;
  }

  .decision-card strong{
    font-size:.65rem;
  }

  .decision-card span{
    font-size:.67rem;
  }

  .decision-goal{
    top:294px;
    width:176px;
    height:176px;
  }

  .decision-goal strong{
    font-size:.9rem;
  }

  .decision-recommendation{
    top:420px;
  }

  .card-neighborhood,
  .card-timeline{
    top:518px;
  }

  .decision-guide{
    left:8px;
    right:8px;
    top:294px;
  }

  .decision-route .route-vertical,
  .decision-route .route-b{
    display:none;
  }

  /* Process */
  .process-layout>.process-heading,
  .process-layout>.process-list,
  .process-layout>.process-link{
    grid-column:1/5;
  }

  .process-copy h3{
    max-width:20ch;
    font-size:1.25rem;
  }

  .process-copy p{
    max-width:32ch;
    font-size:.95rem;
  }

  .process-flow{
    overflow:hidden;
    gap:6px;
    padding:14px 10px;
  }

  .flow-item{
    min-width:0;
    font-size:.58rem;
  }

  .flow-item i{
    font-size:1.45rem;
  }

  /* Guide */
  .guide-frame{
    padding:28px 20px 22px;
  }

  .guide-frame-copy h2{
    max-width:9ch;
    font-size:clamp(2.15rem,10vw,2.65rem);
  }

  .guide-frame-copy p:not(.eyebrow){
    font-size:.95rem;
  }

  .guide-frame-copy .button{
    min-height:48px;
    width:100%;
  }

  .guide-pins{
    height:165px;
  }

  .area-pin{
    font-size:.58rem;
  }

  .guide-drawer-preview{
    padding:18px;
  }

  .guide-drawer-preview .guide-chip-grid{
    grid-template-columns:1fr 1fr;
  }

  .guide-drawer-preview .guide-chip{
    min-height:44px;
  }

  /* Journey */
  .journey-section.section-shell{
    padding-block:64px;
  }

  .journey-layout>.eyebrow,
  .journey-layout>h2,
  .journey-layout>.journey-grid,
  .journey-layout>.resource-frame{
    grid-column:1/5;
  }

  .journey-layout>h2{
    font-size:clamp(2.1rem,9vw,2.6rem);
  }

  .journey-grid{
    margin-top:20px;
    grid-template-columns:repeat(5,minmax(220px,1fr));
  }

  .journey-copy{
    min-height:124px;
    padding:16px 18px 20px;
  }

  .journey-copy p{
    font-size:.9rem;
  }

  .resource-frame{
    padding:22px 20px;
  }

  .resource-frame .resource-actions{
    grid-template-columns:1fr;
  }

  /* Closing */
  .closing-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    row-gap:18px;
  }

  .closing-grid>.faq-panel,
  .closing-grid>.contact-panel{
    grid-column:1/5;
  }

  .faq-panel,
  .contact-panel{
    padding:22px;
    border-radius:var(--radius-card);
  }

  .faq-panel h2,
  .contact-panel h2{
    font-size:clamp(2rem,9vw,2.5rem);
  }

  .faq-panel summary{
    padding:20px 38px 20px 0;
    font-size:.96rem;
  }

  .contact-panel{
    display:block;
    min-height:560px;
    padding-bottom:285px;
  }

  .contact-panel::after{
    width:100%;
    top:auto;
    height:300px;
    background-position:center 20%;
  }

  .contact-panel::before{
    background:
      linear-gradient(180deg,
        var(--frame-navy-2) 0%,
        var(--frame-navy-2) 53%,
        rgba(16,29,48,.74) 66%,
        rgba(16,29,48,.08) 100%);
  }

  .contact-panel-copy{
    max-width:none;
  }

  /* Footer */
  .frame-footer-main{
    gap:18px;
  }

  .frame-footer-nav{
    gap:8px 14px;
  }

  .frame-footer .legal{
    flex-direction:column;
    gap:10px;
  }
}

/* Small mobile */
@media (max-width:480px){
  :root{
    --site-inline:24px;
  }

  .container,
  .site-container{
    width:calc(100% - 24px);
  }

  .frame-hero .hero-content{
    padding-top:108px;
  }

  header.hero.frame-hero h1{
    max-width:11ch;
    font-size:clamp(2.3rem,11.5vw,2.95rem);
  }

  .frame-hero .topbar{
    padding-top:12px;
  }

  .decision-map{
    min-height:720px;
  }

  .decision-card,
  .decision-card:nth-child(n){
    min-height:180px;
  }

  .decision-goal{
    width:164px;
    height:164px;
  }

  .process-number{
    width:42px;
    height:42px;
  }

  .process-copy,
  .process-row.is-reverse .process-copy{
    padding-left:54px;
  }

  .flow-arrow{
    font-size:.9rem;
  }

  .guide-frame{
    padding-inline:16px;
  }

  .guide-drawer-preview .guide-chip-grid{
    grid-template-columns:1fr;
  }

  .guide-drawer-preview .guide-chip:last-child{
    grid-column:auto;
  }

  .journey-grid{
    grid-template-columns:repeat(5,minmax(210px,1fr));
  }

  .resource-frame h3{
    font-size:1.25rem;
  }

  .faq-panel,
  .contact-panel{
    padding:20px;
  }

  .contact-panel{
    padding-bottom:270px;
  }

  .contact-panel::after{
    height:280px;
  }

  .frame-footer-nav{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* Accessibility: preserve touch targets and avoid motion surprises. */
@media (pointer:coarse){
  .button,
  .guide-chip,
  .guide-more,
  .contact-links a,
  .contact-links button,
  .frame-footer-nav a,
  .frame-footer-nav button{
    min-height:44px;
  }
}

@media (prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto;
  }

  .process-photo img,
  .journey-card img,
  .decision-card{
    transition:none!important;
    transform:none!important;
  }
}


/* =========================================================
   Small-screen refinement: Decision Canvas + Contact card
   ========================================================= */

@media (max-width:720px){

  /* ---------------------------
     Decision Canvas
     Convert the desktop diagram into a clean mobile card grid.
     --------------------------- */
  .decision-section{
    overflow:hidden;
  }

  .decision-layout{
    row-gap:30px;
  }

  .decision-copy{
    max-width:none;
  }

  .decision-copy h2{
    max-width:12ch;
    margin-bottom:14px;
  }

  .decision-copy p:last-child{
    max-width:36ch;
    font-size:.95rem;
    line-height:1.6;
  }

  .decision-map{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-areas:
      "goal goal"
      "budget commute"
      "neighborhood timeline"
      "recommend recommend";
    gap:14px;
    width:100%;
    max-width:none;
    min-height:0;
    padding:0;
  }

  /* Remove desktop connector geometry on mobile. */
  .decision-wiring,
  .decision-guide,
  .decision-route{
    display:none!important;
  }

  .decision-goal{
    position:relative;
    left:auto;
    top:auto;
    grid-area:goal;
    width:168px;
    height:168px;
    margin:0 auto 8px;
    transform:none;
  }

  .decision-card,
  .decision-card:nth-child(n){
    position:relative;
    left:auto;
    right:auto;
    top:auto;
    bottom:auto;
    width:100%;
    height:auto;
    min-height:164px;
    grid-template-columns:32px minmax(0,1fr);
    gap:8px;
    padding:14px 12px;
  }

  .card-budget{grid-area:budget}
  .card-commute{grid-area:commute}
  .card-neighborhood{grid-area:neighborhood}
  .card-timeline{grid-area:timeline}

  .decision-card i{
    font-size:1.45rem;
  }

  .decision-card strong{
    margin-bottom:5px;
    font-size:.67rem;
    line-height:1.35;
  }

  .decision-card span{
    font-size:.68rem;
    line-height:1.45;
  }

  .decision-recommendation{
    position:relative;
    left:auto;
    top:auto;
    grid-area:recommend;
    margin-top:2px;
    transform:none;
  }

  .decision-recommendation::before{
    display:none;
  }

  .decision-recommendation::after{
    display:none;
  }

  .decision-recommendation span{
    min-width:0;
    width:min(100%,220px);
    padding:8px 14px;
  }

  .decision-recommendation small{
    max-width:28ch;
    white-space:normal;
    text-align:center;
    line-height:1.45;
  }


  /* ---------------------------
     "Let's Make Your Move" card
     Stable stacked layout with full-width portrait below copy.
     --------------------------- */
  .contact-panel{
    display:flex;
    min-height:0;
    flex-direction:column;
    padding:0;
    overflow:hidden;
  }

  .contact-panel-copy{
    position:relative;
    z-index:2;
    width:100%;
    max-width:none;
    padding:24px 22px 22px;
  }

  .contact-panel h2{
    max-width:11ch;
    margin-bottom:18px;
  }

  .contact-panel p:not(.eyebrow){
    max-width:31ch;
    font-size:.96rem;
    line-height:1.6;
  }

  .contact-panel .contact-links{
    margin:16px 0 0;
  }

  .contact-panel .contact-links a,
  .contact-panel .contact-links button{
    width:100%;
    min-height:44px;
    justify-content:flex-start;
  }

  .contact-panel .contact-links span{
    line-height:1.45;
  }

  /* Portrait becomes a dedicated bottom image area instead of competing with text. */
  .contact-panel::after{
    position:relative;
    top:auto;
    right:auto;
    bottom:auto;
    left:auto;
    z-index:0;
    display:block;
    width:100%;
    height:auto;
    min-height:300px;
    flex:0 0 300px;
    background:
      url("hatcher-profile-640.jpg")
      center 24% / cover
      no-repeat;
    content:"";
  }

  .contact-panel::before{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    content:"";
    background:
      linear-gradient(
        180deg,
        var(--frame-navy-2) 0%,
        var(--frame-navy-2) 49%,
        rgba(16,29,48,.88) 57%,
        rgba(16,29,48,.16) 75%,
        rgba(16,29,48,0) 100%
      );
  }
}

@media (max-width:480px){
  .decision-map{
    grid-template-columns:1fr;
    grid-template-areas:
      "goal"
      "budget"
      "commute"
      "neighborhood"
      "timeline"
      "recommend";
    gap:12px;
  }

  .decision-card,
  .decision-card:nth-child(n){
    min-height:0;
    padding:16px 14px;
  }

  .decision-goal{
    width:156px;
    height:156px;
  }

  .contact-panel-copy{
    padding:22px 18px 18px;
  }

  .contact-panel::after{
    min-height:280px;
    flex-basis:280px;
    background-position:center 20%;
  }
}


/* Let's Make Your Move — authoritative contact hover states
   No hover media query: works even when DevTools/touch emulation changes hover detection. */
.contact-panel .contact-links a,
.contact-panel .contact-links button{
  transition:
    color .18s ease,
    background-color .18s ease,
    transform .18s ease,
    border-color .18s ease;
}

/* Target the actual phone/email controls directly. */
.contact-panel .contact-links a[href^="tel:"],
.contact-panel .contact-links a[href^="mailto:"],
.contact-panel .contact-links button{
  color:#d5dbe3;
}

/* Hover the control AND force every text child to inherit the new color. */
.contact-panel .contact-links a[href^="tel:"]:hover,
.contact-panel .contact-links a[href^="mailto:"]:hover,
.contact-panel .contact-links button:hover{
  color:var(--color-eyebrow-dark)!important;
  transform:translateX(4px);
}

.contact-panel .contact-links a[href^="tel:"]:hover *,
.contact-panel .contact-links a[href^="mailto:"]:hover *,
.contact-panel .contact-links button:hover *{
  color:var(--color-eyebrow-dark)!important;
}

/* Explicitly override the existing fixed span color. */
.contact-panel .contact-links a[href^="tel:"]:hover span,
.contact-panel .contact-links a[href^="mailto:"]:hover span,
.contact-panel .contact-links button:hover span{
  color:var(--color-eyebrow-dark)!important;
}

/* SVG/image icons are white by default; shift them to coral on hover. */
.contact-panel .contact-links a[href^="tel:"]:hover img,
.contact-panel .contact-links a[href^="mailto:"]:hover img,
.contact-panel .contact-links button:hover img{
  filter:
    brightness(0)
    saturate(100%)
    invert(55%)
    sepia(75%)
    saturate(1400%)
    hue-rotate(315deg)
    brightness(105%)
    contrast(102%)!important;
}

/* Add a visible underline so the hover change is unmistakable. */
.contact-panel .contact-links a[href^="tel:"]:hover span,
.contact-panel .contact-links a[href^="mailto:"]:hover span{
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}

/* Keyboard accessibility */
.contact-panel .contact-links a[href^="tel:"]:focus-visible,
.contact-panel .contact-links a[href^="mailto:"]:focus-visible,
.contact-panel .contact-links button:focus-visible{
  color:var(--color-eyebrow-dark)!important;
  outline:2px solid var(--color-accent);
  outline-offset:4px;
  border-radius:4px;
}

.contact-panel .contact-links a[href^="tel:"]:focus-visible *,
.contact-panel .contact-links a[href^="mailto:"]:focus-visible *,
.contact-panel .contact-links button:focus-visible *{
  color:var(--color-eyebrow-dark)!important;
}


/* =========================================================
   Let's Make Your Move — final hover correction
   Override any global contact-link/card hover treatment.
   ========================================================= */
.contact-panel .contact-links a[href^="tel:"],
.contact-panel .contact-links a[href^="mailto:"],
.contact-panel .contact-links button{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  color:#d5dbe3!important;
  text-decoration:none;
}

.contact-panel .contact-links a[href^="tel:"]:hover,
.contact-panel .contact-links a[href^="mailto:"]:hover,
.contact-panel .contact-links button:hover{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  color:var(--color-eyebrow-dark)!important;
  transform:translateX(4px);
}

.contact-panel .contact-links a[href^="tel:"]:hover span,
.contact-panel .contact-links a[href^="mailto:"]:hover span,
.contact-panel .contact-links button:hover span{
  color:var(--color-eyebrow-dark)!important;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}

.contact-panel .contact-links a[href^="tel:"]:hover img,
.contact-panel .contact-links a[href^="mailto:"]:hover img,
.contact-panel .contact-links button:hover img{
  filter:
    brightness(0)
    saturate(100%)
    invert(69%)
    sepia(25%)
    saturate(4591%)
    hue-rotate(313deg)
    brightness(105%)
    contrast(105%)!important;
}

/* Prevent broad sitewide hover selectors from painting the link background. */
.contact-panel .contact-links a:hover::before,
.contact-panel .contact-links a:hover::after,
.contact-panel .contact-links button:hover::before,
.contact-panel .contact-links button:hover::after{
  background:transparent!important;
  box-shadow:none!important;
}


/* =========================================================
   Final patch — Let's Make Your Move
   1) remove pill/dark hover background from phone + email
   2) make text/icon coral on hover/focus/active
   3) soften the hard edge where the portrait begins
   Paste at the very end so it wins.
   ========================================================= */

/* Base contact links in the closing card */
.contact-panel .contact-links a[href^="tel:"],
.contact-panel .contact-links a[href^="mailto:"],
.contact-panel .contact-links a[href^="sms:"],
.contact-panel .contact-links button{
  display:inline-flex!important;
  align-items:center!important;
  gap:10px!important;
  width:max-content!important;
  min-height:36px!important;
  padding:4px 0!important;
  margin:0!important;
  background:none!important;
  background-color:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:#d5dbe3!important;
  text-decoration:none!important;
  -webkit-tap-highlight-color:transparent;
}

/* Explicitly kill any inherited pseudo-element backgrounds */
.contact-panel .contact-links a[href^="tel:"]::before,
.contact-panel .contact-links a[href^="tel:"]::after,
.contact-panel .contact-links a[href^="mailto:"]::before,
.contact-panel .contact-links a[href^="mailto:"]::after,
.contact-panel .contact-links a[href^="sms:"]::before,
.contact-panel .contact-links a[href^="sms:"]::after{
  display:none!important;
  content:none!important;
  background:none!important;
  box-shadow:none!important;
}

/* Force inner text to the neutral base color */
.contact-panel .contact-links a[href^="tel:"] span,
.contact-panel .contact-links a[href^="mailto:"] span,
.contact-panel .contact-links a[href^="sms:"] span,
.contact-panel .contact-links button span{
  color:#d5dbe3!important;
  background:none!important;
}

/* Hover / focus / active */
.contact-panel .contact-links a[href^="tel:"]:hover,
.contact-panel .contact-links a[href^="tel:"]:focus-visible,
.contact-panel .contact-links a[href^="tel:"]:active,
.contact-panel .contact-links a[href^="mailto:"]:hover,
.contact-panel .contact-links a[href^="mailto:"]:focus-visible,
.contact-panel .contact-links a[href^="mailto:"]:active,
.contact-panel .contact-links a[href^="sms:"]:hover,
.contact-panel .contact-links a[href^="sms:"]:focus-visible,
.contact-panel .contact-links a[href^="sms:"]:active,
.contact-panel .contact-links button:hover,
.contact-panel .contact-links button:focus-visible,
.contact-panel .contact-links button:active{
  background:none!important;
  background-color:transparent!important;
  border:0!important;
  border-color:transparent!important;
  box-shadow:none!important;
  color:var(--color-eyebrow-dark)!important;
  transform:translateX(4px)!important;
  outline:none!important;
}

/* Hover / focus / active children */
.contact-panel .contact-links a[href^="tel:"]:hover *,
.contact-panel .contact-links a[href^="tel:"]:focus-visible *,
.contact-panel .contact-links a[href^="tel:"]:active *,
.contact-panel .contact-links a[href^="mailto:"]:hover *,
.contact-panel .contact-links a[href^="mailto:"]:focus-visible *,
.contact-panel .contact-links a[href^="mailto:"]:active *,
.contact-panel .contact-links a[href^="sms:"]:hover *,
.contact-panel .contact-links a[href^="sms:"]:focus-visible *,
.contact-panel .contact-links a[href^="sms:"]:active *,
.contact-panel .contact-links button:hover *,
.contact-panel .contact-links button:focus-visible *,
.contact-panel .contact-links button:active *{
  color:var(--color-eyebrow-dark)!important;
  background:none!important;
}

/* Underline only the text for clarity */
.contact-panel .contact-links a[href^="tel:"]:hover span,
.contact-panel .contact-links a[href^="tel:"]:focus-visible span,
.contact-panel .contact-links a[href^="tel:"]:active span,
.contact-panel .contact-links a[href^="mailto:"]:hover span,
.contact-panel .contact-links a[href^="mailto:"]:focus-visible span,
.contact-panel .contact-links a[href^="mailto:"]:active span,
.contact-panel .contact-links a[href^="sms:"]:hover span,
.contact-panel .contact-links a[href^="sms:"]:focus-visible span,
.contact-panel .contact-links a[href^="sms:"]:active span{
  text-decoration:underline!important;
  text-decoration-thickness:1px!important;
  text-underline-offset:4px!important;
}

/* Icon color shift for raster/svg-as-image icons */
.contact-panel .contact-links a[href^="tel:"]:hover img,
.contact-panel .contact-links a[href^="tel:"]:focus-visible img,
.contact-panel .contact-links a[href^="tel:"]:active img,
.contact-panel .contact-links a[href^="mailto:"]:hover img,
.contact-panel .contact-links a[href^="mailto:"]:focus-visible img,
.contact-panel .contact-links a[href^="mailto:"]:active img,
.contact-panel .contact-links a[href^="sms:"]:hover img,
.contact-panel .contact-links a[href^="sms:"]:focus-visible img,
.contact-panel .contact-links a[href^="sms:"]:active img{
  filter:
    brightness(0)
    saturate(100%)
    invert(68%)
    sepia(46%)
    saturate(2327%)
    hue-rotate(309deg)
    brightness(104%)
    contrast(101%)!important;
}

/* Accessible focus ring without the dark rectangle */
.contact-panel .contact-links a[href^="tel:"]:focus-visible,
.contact-panel .contact-links a[href^="mailto:"]:focus-visible,
.contact-panel .contact-links a[href^="sms:"]:focus-visible,
.contact-panel .contact-links button:focus-visible{
  outline:2px solid rgba(255,142,149,.72)!important;
  outline-offset:5px!important;
  border-radius:4px!important;
}

/* Soften the portrait edge into the navy background */
.contact-panel::after{
  -webkit-mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,.55) 14%, rgba(0,0,0,.92) 28%, #000 40%, #000 100%);
  mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,.55) 14%, rgba(0,0,0,.92) 28%, #000 40%, #000 100%);
}

.contact-panel::before{
  background:
    linear-gradient(90deg,
      var(--frame-navy-2) 0%,
      var(--frame-navy-2) 43%,
      rgba(16,29,48,.92) 52%,
      rgba(16,29,48,.68) 60%,
      rgba(16,29,48,.28) 74%,
      rgba(16,29,48,.06) 88%,
      rgba(16,29,48,0) 100%)!important;
}

@media (max-width:720px){
  .contact-panel::after{
    -webkit-mask-image:none;
    mask-image:none;
  }

  .contact-panel::before{
    background:
      linear-gradient(
        180deg,
        var(--frame-navy-2) 0%,
        var(--frame-navy-2) 47%,
        rgba(16,29,48,.9) 58%,
        rgba(16,29,48,.5) 72%,
        rgba(16,29,48,.06) 100%
      )!important;
  }
}


/* =========================================================
   Final pre-launch QA hardening
   ========================================================= */

*,
*::before,
*::after{
  box-sizing:border-box;
}

img{
  display:block;
  max-width:100%;
  height:auto;
}

a,
button,
summary{
  touch-action:manipulation;
}

/* Prevent grid/flex children from forcing horizontal overflow. */
.hero-copy,
.decision-copy,
.decision-map,
.process-copy,
.process-flow,
.guide-frame-copy,
.guide-drawer-preview,
.journey-card,
.resource-frame > *,
.faq-panel,
.contact-panel,
.contact-panel-copy,
.frame-footer-main,
.frame-footer-nav{
  min-width:0;
}

/* Long contact strings and supporting labels may wrap instead of overflowing. */
.contact-panel .contact-links,
.contact-panel .contact-links span,
.decision-recommendation small,
.resource-frame p,
.frame-footer .legal{
  overflow-wrap:anywhere;
}

/* Consistent keyboard visibility throughout the landing page. */
.frame-section a:focus-visible,
.frame-section button:focus-visible,
.frame-hero a:focus-visible,
.frame-hero button:focus-visible,
.frame-footer a:focus-visible,
.frame-footer button:focus-visible,
.faq-panel summary:focus-visible{
  outline:3px solid var(--color-eyebrow-dark);
  outline-offset:4px;
}

/* On light sections use the darker accessible coral focus color. */
.process-section a:focus-visible,
.process-section button:focus-visible,
.closing-section a:focus-visible,
.closing-section button:focus-visible{
  outline-color:var(--color-eyebrow-light);
}

/* FAQ summary remains a clear keyboard target. */
.faq-panel summary{
  cursor:pointer;
}

.faq-panel summary:focus-visible{
  border-radius:4px;
}

/* Modern viewport unit added after fallbacks for mobile browser chrome. */
.frame-hero{
  min-height:100dvh;
}

/* Avoid accidental overflow from transforms while preserving visual motion. */
.process-section,
.guide-frame-section,
.journey-section,
.closing-section{
  max-width:100%;
}

/* Medium-width resource CTA safety net. */
@media (min-width:721px) and (max-width:900px){
  .resource-frame .resource-actions{
    grid-template-columns:1fr;
  }
}

/* Very narrow devices: allow phone/email labels to use available width. */
@media (max-width:420px){
  .contact-panel .contact-links a,
  .contact-panel .contact-links button{
    width:100%!important;
    max-width:100%;
  }

  .contact-panel .contact-links span{
    min-width:0;
    white-space:normal;
  }

  .frame-footer .legal{
    font-size:.72rem;
    line-height:1.55;
  }
}

/* Respect reduced-motion preferences everywhere relevant. */
@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}


/* =========================================================
   Responsive Design System — intentional states by breakpoint
   Desktop > compact desktop > tablet > mobile > small mobile
   ========================================================= */

/* ---------- Compact desktop: 1025–1199 ---------- */
@media (min-width:1025px) and (max-width:1199px){
  :root{
    --site-inline:48px;
    --site-gutter:22px;
    --space-section-md:88px;
    --space-section-lg:100px;
  }

  .frame-hero .hero-copy{
    grid-column:1/span 8;
    max-width:740px;
  }

  header.hero.frame-hero h1{
    max-width:13ch;
    font-size:clamp(3.35rem,5.2vw,4.05rem);
  }

  .decision-copy{
    grid-column:1/span 4;
  }

  .decision-map{
    grid-column:5/span 8;
    max-width:660px;
  }

  .process-row{
    grid-template-columns:30fr 16fr 7fr 16fr 31fr;
  }

  .process-copy h3{
    font-size:clamp(1.08rem,1.65vw,1.3rem);
  }

  .process-copy p{
    font-size:.93rem;
  }

  .guide-frame-copy{
    width:33%;
  }

  .guide-drawer-preview{
    width:30%;
  }

  .resource-frame .resource-actions{
    gap:12px;
  }

  .resource-frame .resource-actions .button,
  .resource-frame .resource-actions .resource-link{
    min-width:160px;
  }
}

/* ---------- Tablet: 768–1024 ---------- */
@media (min-width:768px) and (max-width:1024px){
  :root{
    --site-columns:8;
    --site-inline:40px;
    --site-gutter:20px;
    --space-section-sm:56px;
    --space-section-md:78px;
    --space-section-lg:90px;
  }

  /* Hero */
  .frame-hero{
    min-height:100dvh;
  }

  .frame-hero .hero-content{
    padding:132px 0 64px;
  }

  .frame-hero .hero-content>*{
    grid-column:1/8;
  }

  .frame-hero .hero-copy{
    max-width:700px;
  }

  header.hero.frame-hero h1{
    max-width:12ch;
    font-size:clamp(3rem,6.4vw,3.75rem);
  }

  header.hero.frame-hero .lead{
    max-width:680px;
  }

  /* Decision Canvas: intentional tablet composition */
  .decision-layout{
    grid-template-columns:repeat(8,minmax(0,1fr));
    row-gap:38px;
  }

  .decision-copy{
    grid-column:1/9;
    max-width:680px;
  }

  .decision-copy h2{
    max-width:13ch;
  }

  .decision-map{
    grid-column:1/9;
    max-width:720px;
    justify-self:center;
  }

  /* Process: image + copy, flow below */
  .process-row,
  .process-row.is-reverse{
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    column-gap:20px;
    row-gap:18px;
    padding-bottom:24px;
  }

  .process-row>.process-photo,
  .process-row.is-reverse>.process-photo{
    grid-column:1/6;
    grid-row:1;
  }

  .process-row>.process-copy,
  .process-row.is-reverse>.process-copy{
    grid-column:6/9;
    grid-row:1;
    align-self:center;
    padding:0 0 0 44px;
  }

  .process-row>.process-flow,
  .process-row.is-reverse>.process-flow{
    grid-column:1/9;
    grid-row:2;
  }

  .process-number,
  .process-row.is-reverse .process-number{
    left:calc(62.5% + 3px);
    top:50%;
    transform:translate(-50%,-50%);
  }

  .process-row:not(:last-child)::after{
    display:none;
  }

  .process-photo{
    aspect-ratio:2.2/1;
  }

  .process-flow{
    min-height:112px;
  }

  /* South Florida Guide: split composition without overlay collisions */
  .guide-frame{
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    column-gap:20px;
    min-height:560px;
    padding:36px;
    aspect-ratio:auto;
  }

  .guide-frame-copy{
    position:relative;
    left:auto;
    top:auto;
    grid-column:1/5;
    width:auto;
    max-width:360px;
    align-self:center;
    transform:none;
  }

  .guide-pins{
    position:absolute;
    inset:0;
  }

  .guide-drawer-preview{
    position:relative;
    inset:auto;
    grid-column:6/9;
    width:auto;
    align-self:center;
    padding:22px;
  }

  .area-pin.palm{left:48%;top:20%}
  .area-pin.broward{left:49%;top:39%}
  .area-pin.miami{left:45%;top:61%}

  /* Journey: deliberate horizontal sequence */
  .journey-layout>h2{
    grid-column:1/8;
  }

  .journey-grid{
    grid-template-columns:repeat(5,minmax(210px,1fr));
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
  }

  .journey-card{
    scroll-snap-align:start;
  }

  /* Resources */
  .resource-frame{
    grid-template-columns:1fr;
    row-gap:22px;
  }

  .resource-frame>div:first-child,
  .resource-frame>.resource-actions{
    grid-column:1;
    justify-self:stretch;
  }

  .resource-frame .resource-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
  }

  .resource-frame .resource-actions .button,
  .resource-frame .resource-actions .resource-link{
    width:100%;
    min-width:0;
  }

  /* Closing */
  .closing-grid{
    grid-template-columns:1fr;
    row-gap:22px;
  }

  .closing-grid>.faq-panel,
  .closing-grid>.contact-panel{
    grid-column:1;
  }

  .faq-panel,
  .contact-panel{
    min-height:0;
  }

  .contact-panel{
    min-height:460px;
    grid-template-columns:minmax(0,1fr) 42%;
  }
}

/* ---------- Mobile: 480–767 ---------- */
@media (min-width:480px) and (max-width:767px){
  :root{
    --site-columns:4;
    --site-inline:32px;
    --site-gutter:16px;
    --space-section-sm:48px;
    --space-section-md:64px;
    --space-section-lg:72px;
  }

  .container,
  .site-container{
    width:min(var(--site-max),calc(100% - 32px));
  }

  /* Hero: conversion-first */
  .frame-hero{
    min-height:100dvh;
  }

  .frame-hero .hero-content{
    padding:112px 0 44px;
  }

  .frame-hero .hero-copy,
  .frame-hero .hero-content>*{
    grid-column:1/5;
    max-width:none;
  }

  header.hero.frame-hero h1{
    max-width:10.5ch;
    font-size:clamp(2.55rem,10vw,3.15rem);
    line-height:1.06;
  }

  header.hero.frame-hero .lead{
    max-width:31ch;
    font-size:1rem;
    line-height:1.55;
  }

  .frame-hero .actions{
    display:grid;
    gap:10px;
    margin-top:18px;
  }

  .frame-hero .button{
    width:100%;
    min-height:52px;
  }

  .frame-hero .trustline{
    max-width:32ch;
    margin-top:14px;
    font-size:.84rem;
    line-height:1.5;
  }

  /* Decision Canvas: guided card sequence */
  .decision-layout{
    grid-template-columns:repeat(4,minmax(0,1fr));
    row-gap:28px;
  }

  .decision-copy,
  .decision-map{
    grid-column:1/5;
  }

  .decision-map{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-areas:
      "goal goal"
      "budget commute"
      "neighborhood timeline"
      "recommend recommend";
    gap:14px;
    min-height:0;
    max-width:none;
  }

  .decision-wiring,
  .decision-guide,
  .decision-route{
    display:none!important;
  }

  .decision-goal{
    position:relative;
    left:auto;
    top:auto;
    grid-area:goal;
    width:164px;
    height:164px;
    margin:0 auto 6px;
    transform:none;
  }

  .decision-card,
  .decision-card:nth-child(n){
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
    min-height:160px;
    grid-template-columns:30px minmax(0,1fr);
    gap:8px;
    padding:14px 12px;
  }

  .card-budget{grid-area:budget}
  .card-commute{grid-area:commute}
  .card-neighborhood{grid-area:neighborhood}
  .card-timeline{grid-area:timeline}

  .decision-card strong{
    font-size:.67rem;
  }

  .decision-card span{
    font-size:.69rem;
  }

  .decision-recommendation{
    position:relative;
    left:auto;
    top:auto;
    grid-area:recommend;
    transform:none;
  }

  .decision-recommendation::before,
  .decision-recommendation::after{
    display:none;
  }

  /* Process: vertical story */
  .process-row,
  .process-row.is-reverse{
    display:grid;
    grid-template-columns:1fr;
    row-gap:16px;
    padding-bottom:30px;
    border-bottom:1px solid var(--color-border);
  }

  .process-row>.process-photo,
  .process-row.is-reverse>.process-photo{
    grid-column:1;
    grid-row:1;
  }

  .process-row>.process-copy,
  .process-row.is-reverse>.process-copy{
    position:relative;
    grid-column:1;
    grid-row:2;
    padding:0 0 0 58px;
  }

  .process-row>.process-flow,
  .process-row.is-reverse>.process-flow{
    grid-column:1;
    grid-row:3;
  }

  .process-number,
  .process-row.is-reverse .process-number{
    left:0;
    top:0;
    transform:none;
  }

  .process-photo{
    aspect-ratio:1.75/1;
  }

  .process-flow{
    min-height:106px;
  }

  /* Guide: true mobile feature stack */
  .guide-frame{
    display:block;
    min-height:0;
    padding:28px 22px 22px;
  }

  .guide-frame::before{
    background-size:cover;
    background-position:center 56%;
  }

  .guide-frame::after{
    background:
      linear-gradient(180deg,
        rgba(5,18,34,.94) 0%,
        rgba(5,18,34,.76) 35%,
        rgba(5,18,34,.48) 58%,
        rgba(5,18,34,.92) 100%);
  }

  .guide-frame-copy{
    position:relative;
    inset:auto;
    width:auto;
    max-width:420px;
    transform:none;
  }

  .guide-frame-copy h2{
    max-width:9ch;
    font-size:clamp(2.2rem,9vw,2.7rem);
  }

  .guide-frame-copy .button{
    width:100%;
    min-height:50px;
  }

  .guide-pins{
    position:relative;
    inset:auto;
    height:170px;
    margin:22px 0 18px;
  }

  .area-pin.palm{left:42%;top:0}
  .area-pin.broward{left:auto;right:4%;top:58px}
  .area-pin.miami{left:18%;top:auto;bottom:0}

  .guide-drawer-preview{
    position:relative;
    inset:auto;
    width:100%;
    margin-top:16px;
    padding:20px;
  }

  /* Journey: intentionally swipeable */
  .journey-layout>h2{
    grid-column:1/5;
  }

  .journey-grid{
    grid-template-columns:repeat(5,minmax(78vw,1fr));
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    gap:0;
  }

  .journey-card{
    scroll-snap-align:start;
  }

  .journey-grid::after{
    display:none;
  }

  .journey-node{
    display:none;
  }

  /* Resources */
  .resource-frame{
    grid-template-columns:1fr;
    row-gap:20px;
    padding:22px 20px;
  }

  .resource-frame>div:first-child,
  .resource-frame>.resource-actions{
    grid-column:1;
    justify-self:stretch;
  }

  .resource-frame .resource-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }

  .resource-frame .resource-actions .button,
  .resource-frame .resource-actions .resource-link{
    width:100%;
    min-height:50px;
  }

  /* FAQ */
  .closing-grid{
    grid-template-columns:1fr;
    row-gap:18px;
  }

  .closing-grid>.faq-panel,
  .closing-grid>.contact-panel{
    grid-column:1;
  }

  .faq-panel,
  .contact-panel{
    min-height:0;
    padding:22px;
  }

  .faq-panel summary{
    padding:20px 38px 20px 0;
    font-size:.98rem;
  }

  /* Let's Make Your Move: text first, portrait second */
  .contact-panel{
    display:flex;
    flex-direction:column;
    padding:0;
    overflow:hidden;
  }

  .contact-panel-copy{
    width:100%;
    max-width:none;
    padding:24px 22px 20px;
  }

  .contact-panel .contact-links a,
  .contact-panel .contact-links button{
    width:100%!important;
    min-height:46px!important;
  }

  .contact-panel::after{
    position:relative;
    inset:auto;
    display:block;
    width:100%;
    height:300px;
    flex:0 0 300px;
    background:url("hatcher-profile-640.jpg") center 20%/cover no-repeat;
    content:"";
    -webkit-mask-image:none;
    mask-image:none;
  }

  .contact-panel::before{
    background:
      linear-gradient(180deg,
        var(--frame-navy-2) 0%,
        var(--frame-navy-2) 47%,
        rgba(16,29,48,.88) 59%,
        rgba(16,29,48,.42) 75%,
        rgba(16,29,48,.05) 100%)!important;
  }

  /* Footer */
  .frame-footer-main{
    align-items:flex-start;
    flex-direction:column;
  }

  .frame-footer-nav{
    justify-content:flex-start;
    gap:10px 14px;
  }

  .frame-footer .legal{
    flex-direction:column;
    gap:10px;
  }
}

/* ---------- Small mobile: <480 ---------- */
@media (max-width:479px){
  :root{
    --site-columns:4;
    --site-inline:24px;
    --site-gutter:14px;
    --space-section-sm:44px;
    --space-section-md:58px;
    --space-section-lg:66px;
  }

  .container,
  .site-container{
    width:calc(100% - 24px);
  }

  /* Hero */
  .frame-hero .hero-content{
    padding:104px 0 40px;
  }

  header.hero.frame-hero h1{
    max-width:11ch;
    font-size:clamp(2.3rem,11.5vw,2.95rem);
  }

  .frame-hero .topbar{
    padding-top:12px;
  }

  /* Decision Canvas: single-column guided sequence */
  .decision-map{
    grid-template-columns:1fr;
    grid-template-areas:
      "goal"
      "budget"
      "commute"
      "neighborhood"
      "timeline"
      "recommend";
    gap:12px;
  }

  .decision-card,
  .decision-card:nth-child(n){
    min-height:0;
    padding:16px 14px;
  }

  .decision-goal{
    width:154px;
    height:154px;
  }

  .decision-recommendation small{
    white-space:normal;
    text-align:center;
  }

  /* Process */
  .process-copy,
  .process-row.is-reverse .process-copy{
    padding-left:54px;
  }

  .process-flow{
    overflow:hidden;
    padding:12px 8px;
    gap:4px;
  }

  .flow-item{
    min-width:0;
    font-size:.56rem;
  }

  .flow-arrow{
    font-size:.9rem;
  }

  /* Guide */
  .guide-frame{
    padding-inline:16px;
  }

  .guide-drawer-preview .guide-chip-grid{
    grid-template-columns:1fr;
  }

  .guide-drawer-preview .guide-chip:last-child{
    grid-column:auto;
  }

  /* Journey */
  .journey-grid{
    grid-template-columns:repeat(5,minmax(84vw,1fr));
  }

  /* Contact */
  .contact-panel-copy{
    padding:22px 18px 18px;
  }

  .contact-panel::after{
    height:280px;
    flex-basis:280px;
  }

  /* Footer */
  .frame-footer-nav{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* =========================================================
   Mobile visual QA corrections
   Decision Canvas / Journey / Footer
   ========================================================= */

@media (max-width:767px){

  /* Decision Canvas — restore proper mobile gutters and breathing room */
  .decision-section{
    padding-block:56px 64px;
  }

  .decision-layout{
    width:calc(100% - 32px);
    max-width:var(--site-max);
    margin-inline:auto;
  }

  .decision-copy{
    width:100%;
    padding:0;
  }

  .decision-copy .eyebrow{
    margin-bottom:12px;
  }

  .decision-copy h2{
    max-width:12ch;
    margin:0 0 16px;
    font-size:clamp(2.15rem,9vw,2.6rem);
    line-height:1.08;
    letter-spacing:-.025em;
  }

  .decision-copy p:last-child{
    max-width:34ch;
    font-size:.95rem;
    line-height:1.6;
  }

  /* Journey — mobile uses cards only; remove the desktop coral route completely */
  .journey-grid::after{
    display:none!important;
    content:none!important;
    background:none!important;
    background-image:none!important;
  }

  .journey-node{
    display:none!important;
  }

  /* Footer — centered mobile composition */
  .frame-footer-main{
    align-items:center!important;
    text-align:center;
  }

  .frame-footer-brand{
    justify-content:center;
    text-align:center;
  }

  .frame-footer-nav{
    width:100%;
    justify-content:center!important;
    text-align:center;
  }

  .frame-footer .social-links{
    width:100%;
    justify-content:center;
  }

  .frame-footer .legal{
    align-items:center;
    text-align:center;
  }

  .frame-footer .legal > *,
  .seller-note{
    width:100%;
    text-align:center;
  }
}

@media (max-width:479px){
  .decision-layout{
    width:calc(100% - 24px);
  }

  .decision-section{
    padding-block:52px 58px;
  }

  .decision-copy h2{
    max-width:11ch;
    font-size:clamp(2.05rem,10.5vw,2.45rem);
  }

  .frame-footer-nav{
    align-items:center!important;
  }

  .frame-footer-nav a,
  .frame-footer-nav button{
    justify-content:center;
  }
}


/* =========================================================
   Mobile Art Direction Pass
   Intentional mobile composition, cleaner rhythm, no awkward
   headline breaks, fewer desktop carryovers.
   ========================================================= */

@media (max-width:767px){

  /* ---------- Global mobile rhythm ---------- */
  :root{
    --mobile-section-y:64px;
    --mobile-card-pad:22px;
    --mobile-gap:20px;
  }

  .section-shell,
  .section-shell--compact,
  .section-shell--large{
    padding-block:var(--mobile-section-y);
  }

  .frame-section h1,
  .frame-section h2,
  .frame-section h3,
  .frame-hero h1,
  .decision-copy h2,
  .guide-frame-copy h2,
  .journey-layout>h2,
  .faq-panel h2,
  .contact-panel h2{
    text-wrap:balance;
  }

  .frame-section p,
  .decision-section p,
  .guide-frame-section p,
  .journey-section p,
  .closing-section p,
  .resource-frame p,
  .process-copy p{
    text-wrap:pretty;
    orphans:2;
    widows:2;
  }

  /* ---------- Hero ---------- */
  .frame-hero .hero-content{
    padding:116px 0 48px;
  }

  .frame-hero .hero-copy{
    gap:10px;
  }

  .frame-hero .hero-content .eyebrow{
    margin-bottom:4px;
    line-height:1.4;
  }

  header.hero.frame-hero h1{
    max-width:13ch;
    font-size:clamp(2.5rem,10vw,3.2rem);
    line-height:1.04;
    letter-spacing:-.028em;
  }

  /* Remove desktop-forced line breaks on phones. */
  header.hero.frame-hero .hero-title-line{
    display:inline;
    white-space:normal;
  }

  header.hero.frame-hero .hero-title-line + .hero-title-line{
    margin-top:0;
  }

  header.hero.frame-hero .hero-title-line + .hero-title-line::before{
    content:" ";
  }

  header.hero.frame-hero .lead{
    max-width:32ch;
    margin-top:8px;
    line-height:1.58;
  }

  .frame-hero .actions{
    margin-top:18px;
  }

  .frame-hero .trustline{
    max-width:34ch;
    margin-top:16px;
    line-height:1.5;
  }

  /* ---------- Decision Canvas ---------- */
  .decision-section{
    padding-block:64px 68px;
  }

  .decision-layout{
    row-gap:28px;
  }

  .decision-copy{
    max-width:100%;
  }

  .decision-copy h2{
    max-width:15ch;
    margin-bottom:16px;
    font-size:clamp(2.15rem,8.7vw,2.55rem);
    line-height:1.08;
  }

  .decision-copy p:last-child{
    max-width:36ch;
    font-size:.98rem;
    line-height:1.62;
  }

  .decision-map{
    gap:12px;
  }

  .decision-goal{
    width:160px;
    height:160px;
    margin-bottom:8px;
  }

  .decision-card,
  .decision-card:nth-child(n){
    min-height:0;
    padding:18px 16px;
    border-radius:14px;
  }

  .decision-card strong{
    font-size:.72rem;
    line-height:1.35;
  }

  .decision-card span{
    font-size:.76rem;
    line-height:1.5;
  }

  .decision-recommendation{
    margin-top:4px;
  }

  .decision-recommendation span{
    width:auto;
    min-width:180px;
    padding:9px 16px;
  }

  /* ---------- Process ---------- */
  .process-heading{
    margin-bottom:34px;
  }

  .process-heading h2{
    max-width:14ch;
  }

  .process-list{
    gap:28px;
  }

  .process-row,
  .process-row.is-reverse{
    row-gap:14px;
    padding-bottom:28px;
  }

  .process-photo{
    aspect-ratio:1.65/1;
    border-radius:14px;
  }

  .process-copy,
  .process-row.is-reverse .process-copy{
    padding-left:56px;
  }

  .process-copy h3{
    max-width:22ch;
    margin-bottom:7px;
    font-size:1.28rem;
    line-height:1.24;
  }

  .process-copy p{
    max-width:36ch;
    font-size:.96rem;
    line-height:1.58;
  }

  .process-flow{
    min-height:100px;
    border-radius:14px;
  }

  /* ---------- South Florida Guide ---------- */
  .guide-frame-section{
    padding-block:var(--mobile-section-y);
  }

  .guide-frame{
    padding:28px 20px 22px;
    border-radius:16px;
  }

  .guide-frame-copy{
    max-width:none;
  }

  .guide-frame-copy .eyebrow{
    margin-bottom:12px;
  }

  .guide-frame-copy h2{
    max-width:12ch;
    margin-bottom:14px;
    font-size:clamp(2.2rem,9vw,2.65rem);
    line-height:1.06;
  }

  .guide-frame-copy p:not(.eyebrow){
    max-width:34ch;
    margin-bottom:20px;
    line-height:1.58;
  }

  .guide-frame-copy .button{
    width:100%;
  }

  .guide-pins{
    height:160px;
    margin:24px 0 20px;
  }

  .guide-drawer-preview{
    margin-top:0;
    padding:20px;
    border-radius:14px;
  }

  .guide-drawer-preview h3{
    max-width:20ch;
    font-size:1.2rem;
    line-height:1.25;
  }

  /* ---------- Journey ---------- */
  .journey-section.section-shell{
    padding-block:64px 68px;
  }

  .journey-layout>h2{
    max-width:14ch;
    font-size:clamp(2.15rem,8.8vw,2.55rem);
    line-height:1.08;
  }

  .journey-grid{
    margin-top:22px;
    grid-template-columns:repeat(5,minmax(82vw,1fr));
    border-radius:14px;
    border:0;
    gap:12px;
    background:transparent;
  }

  .journey-card{
    border:1px solid rgba(255,255,255,.18);
    border-radius:14px;
  }

  .journey-card:last-child{
    border-right:1px solid rgba(255,255,255,.18);
  }

  .journey-copy{
    min-height:118px;
    padding:18px;
  }

  .journey-copy p{
    max-width:30ch;
    font-size:.94rem;
    line-height:1.55;
  }

  /* ---------- Resources ---------- */
  .resource-frame{
    margin-top:24px;
    padding:22px 20px;
    border-radius:14px;
  }

  .resource-frame h3{
    max-width:24ch;
    line-height:1.25;
  }

  .resource-frame p{
    max-width:34ch;
    margin-top:8px;
  }

  .resource-frame .resource-actions{
    margin-top:2px;
  }

  /* ---------- Closing / FAQ ---------- */
  .closing-section{
    padding-block:64px;
  }

  .closing-grid{
    row-gap:18px;
  }

  .faq-panel,
  .contact-panel{
    border-radius:14px;
  }

  .faq-panel{
    padding:22px 20px;
  }

  .faq-panel h2{
    max-width:13ch;
    margin-bottom:18px;
    font-size:clamp(2.05rem,8.7vw,2.45rem);
    line-height:1.08;
  }

  .faq-panel summary{
    padding:19px 36px 19px 0;
    line-height:1.45;
    text-wrap:pretty;
  }

  /* Contact: cleaner, more editorial mobile card */
  .contact-panel{
    min-height:0;
  }

  .contact-panel-copy{
    padding:24px 20px 22px;
  }

  .contact-panel h2{
    max-width:14ch;
    margin-bottom:16px;
    font-size:clamp(2.1rem,8.8vw,2.5rem);
    line-height:1.06;
  }

  .contact-panel p:not(.eyebrow){
    max-width:34ch;
    line-height:1.58;
  }

  .contact-panel .contact-links{
    gap:6px;
    margin-top:18px;
  }

  .contact-panel .contact-links a,
  .contact-panel .contact-links button{
    width:100%!important;
    min-height:48px!important;
    padding:8px 0!important;
  }

  .contact-panel::after{
    height:300px;
    flex-basis:300px;
    background-position:center 18%;
  }

  /* ---------- Footer ---------- */
  .frame-footer{
    padding-top:36px;
    padding-bottom:30px;
  }

  .frame-footer-main{
    gap:20px;
  }

  .frame-footer-brand{
    width:100%;
    flex-direction:column;
    gap:10px;
  }

  .frame-footer-nav{
    width:100%;
    gap:6px 14px;
    justify-content:center!important;
  }

  .frame-footer .social-links{
    display:flex;
    width:100%;
    justify-content:center;
    gap:10px;
  }

  .frame-footer .legal{
    width:100%;
    margin-top:22px;
    padding-top:18px;
    gap:10px;
    line-height:1.55;
  }
}

/* ---------- Small phones ---------- */
@media (max-width:479px){
  :root{
    --mobile-section-y:58px;
  }

  .frame-hero .hero-content{
    padding-top:104px;
  }

  header.hero.frame-hero h1{
    max-width:12ch;
    font-size:clamp(2.3rem,11vw,2.9rem);
  }

  .decision-copy h2{
    max-width:14ch;
  }

  .decision-card,
  .decision-card:nth-child(n){
    padding:17px 14px;
  }

  .process-copy h3{
    max-width:21ch;
  }

  .guide-frame-copy h2{
    max-width:11ch;
  }

  .journey-grid{
    grid-template-columns:repeat(5,minmax(86vw,1fr));
  }

  .faq-panel h2,
  .contact-panel h2{
    max-width:13ch;
  }

  .contact-panel::after{
    height:275px;
    flex-basis:275px;
  }

  .frame-footer-nav{
    flex-direction:column;
    align-items:center!important;
  }

  .frame-footer-nav a,
  .frame-footer-nav button{
    justify-content:center;
  }
}
