/* Homepage reading rhythm. Halo rendering and motion stay in their existing files. */
.home-refined{
  --space-sm:16px;--space-md:24px;--space-lg:32px;--space-xl:48px;
  --section-space:clamp(80px,9vw,128px);
  --gutter:clamp(24px,5vw,64px);
  --reading-rgb:12,19,26;
}
:root[data-theme="light"] .home-refined{--reading-rgb:250,250,250}
/* Reading copy stays sharp; local diffusion is drawn in the halo shader. */
.home-refined .reading-surface{position:relative;isolation:isolate}
.home-refined main{overflow-x:clip}
.home-refined .reading-surface::before{content:none}
.home-refined .hero-copy{max-width:620px}
.home-refined main h1,.home-refined main h2{font-weight:500;letter-spacing:-.035em;text-shadow:none}
.home-refined main h1{font-size:clamp(48px,6.8vw,96px);line-height:1.02;max-width:11.5ch}
.home-refined main h2{font-size:clamp(34px,4vw,54px);line-height:1.1;max-width:20ch}
.home-refined main h3{font-size:24px;font-weight:500;line-height:1.2;letter-spacing:-.02em}
.home-refined .lede{font-size:clamp(18px,1.6vw,21px);line-height:1.6;max-width:46ch}
.home-refined main>section{padding-block:var(--section-space)}
.home-refined .split{grid-template-columns:1.15fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}
.home-refined .split>.lede{padding-top:4px}
.home-refined .hero{min-height:100svh;padding-block:132px 104px}
.home-refined .hero .wrap{margin-inline:auto}
.home-refined .hero .event{margin-bottom:var(--space-md);font-size:14px}
.home-refined .hero .lede{margin-top:var(--space-md);max-width:40ch;color:var(--lumen);font-size:clamp(20px,1.8vw,23px);line-height:1.45}
.home-refined .hero-detail{margin-top:var(--space-sm);max-width:46ch;font-size:17px;line-height:1.6;color:var(--stone)}
.home-refined .hero .actions{margin-top:var(--space-lg);gap:12px}
.home-refined .hero .actions{transition:opacity .3s var(--ease),translate .3s var(--ease)}
.intro-pending .home-refined .hero .actions{animation:homepage-actions-enter .35s var(--ease) 1.15s both}
@keyframes homepage-actions-enter{from{opacity:0;visibility:hidden;translate:0 6px}to{opacity:1;visibility:visible;translate:0 0}}
.home-refined .actions :is(.key,.btn){min-height:52px;display:inline-flex;align-items:center;justify-content:center;font-weight:500}
/* Shared secondary outlines: one feathered trail, following each control's shape. */
.home-refined .outline-flow{position:relative}
.home-refined .outline-flow:not([aria-pressed="true"]){border-color:rgba(var(--lumen-rgb),.12)}
.home-refined .outline-flow .button-trace{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);pointer-events:none;overflow:visible;opacity:0;transition:opacity .18s var(--ease)}
.home-refined .button-trace :is(rect,.trace-strand){width:calc(100% - 2px);height:calc(100% - 2px);rx:var(--trace-radius,25px);fill:none;stroke:var(--trace-colour);stroke-width:2;stroke-linecap:butt;stroke-dasharray:var(--trace-dash,1.25 98.75);stroke-dashoffset:var(--trace-position);animation:button-outline-flow var(--strand-duration,2.3s) cubic-bezier(.42,.25,.58,.75) infinite;animation-play-state:paused}
.home-refined .button-trace :is(rect,.trace-strand):last-child{stroke-linecap:round}
:root[data-theme="light"] .home-refined .button-trace :is(rect,.trace-strand){stroke:var(--trace-light-colour);stroke-width:2.3}
.home-refined .outline-flow:focus-visible{box-shadow:none}
.home-refined .outline-flow:focus-visible .button-trace{opacity:1}
.home-refined .outline-flow:focus-visible .button-trace :is(rect,.trace-strand){animation-play-state:running}
@media(hover:hover){
  .home-refined .outline-flow:hover{box-shadow:none}
  .home-refined .outline-flow:not([aria-pressed="true"]):hover{border-color:rgba(var(--lumen-rgb),.12)}
  .home-refined .btn.outline-flow:hover{background:transparent}
  .home-refined .outline-flow:hover .button-trace{opacity:1}
  .home-refined .outline-flow:hover .button-trace :is(rect,.trace-strand){animation-play-state:running}
}
/* Overlapping continuous strokes keep the soft pulses free of segmented seams. */
.home-refined .outline-flow .trace-strand{stroke-width:1.3;stroke-linecap:round;opacity:.06}
:root[data-theme="light"] .home-refined .outline-flow .trace-strand{stroke-width:1.65;opacity:.085}
@keyframes button-outline-flow{from{stroke-dashoffset:var(--trace-position)}to{stroke-dashoffset:calc(var(--trace-position) - 100px)}}
:root[data-halo-motion="paused"] .home-refined .button-trace :is(rect,.trace-strand),.home-refined[data-outline-hidden="true"] .button-trace :is(rect,.trace-strand),.home-refined .outline-flow[data-outline-active="false"] .button-trace :is(rect,.trace-strand){animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){
  .home-refined .hero .actions{transition:none}
  .intro-pending .home-refined .hero .actions{animation:none}
  .home-refined .outline-flow .button-trace{transition:none}
  .home-refined .outline-flow .button-trace :is(rect,.trace-strand){animation:none!important}
}
.home-refined .aisle-code{display:none}

/* Three operational areas read as one open, aligned list. */
.home-refined .places{grid-template-columns:minmax(0,1fr);margin-top:56px;gap:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none!important}
.home-refined .place{display:grid;grid-template-columns:1fr 2.2fr;gap:48px;padding:var(--space-lg) 0;border-top:1px solid var(--hair)}
.home-refined .place:last-child{border-bottom:1px solid var(--hair)}
.home-refined .place+.place{border-left:0}
.home-refined .place .where{display:none}
.home-refined .place h3{margin-top:0;font-size:clamp(28px,2.6vw,36px)}
.home-refined .place ul{display:grid;grid-template-columns:1fr 1fr;gap:16px 32px;margin:0;line-height:1.6;font-size:17px}
.home-refined .place li{padding:0;border:0}
.home-refined .place li:hover{padding-left:0}

/* Three editorial entries share the page, separated by fine rules. */
.home-refined .ways-grid{grid-template-columns:minmax(0,1fr);margin-top:56px;gap:0;perspective:none}
.home-refined .way{display:grid;grid-template-columns:1fr 1.25fr .8fr;align-items:center;gap:40px;padding:36px 0 40px;min-height:0;border:0;border-top:1px solid var(--hair);border-radius:0;background:none;box-shadow:none!important;transform:none!important}
.home-refined .way:last-child{border-bottom:1px solid var(--hair)}
.home-refined .way::after{display:none}
.home-refined .way-title{grid-column:1;align-self:start}
.home-refined .way h3{font-size:clamp(28px,2.6vw,36px);max-width:15ch;transform:none!important}
.home-refined .way .who{display:block;margin-top:12px;font:400 14px/1.4 var(--body);letter-spacing:0;color:var(--stone);text-transform:lowercase}
.home-refined .way .who::first-letter{text-transform:uppercase}
.home-refined .way-copy{grid-column:2;align-self:start}
.home-refined .way p{font-size:17px;line-height:1.65;max-width:42ch}
.home-refined .way .more{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--space-sm);padding:13px 20px;font-size:16px;text-decoration:none}
.home-refined .way .orbit{grid-column:3;grid-row:1;height:112px;width:100%;margin:0;transform:none!important}

/* The feasibility report stays the tangible centrepiece. */
.home-refined .report-grid,.home-refined .rollout{gap:clamp(40px,6vw,80px);grid-template-columns:1fr 1.1fr}
.home-refined .report-intro{position:sticky;top:200px;align-self:start}
.home-refined .report-intro h2{font-size:clamp(34px,3.4vw,46px);max-width:19ch}
.home-refined .report-intro .lede{margin-top:var(--space-md);font-size:18px}
.home-refined .filters{margin-top:var(--space-lg)}
.home-refined .filters button{min-height:44px;font:500 13px/1.2 var(--body);letter-spacing:0;padding:10px 14px}
.home-refined .filters button[aria-pressed="true"]:hover{color:var(--night)}
.home-refined .receipt li{padding-block:var(--space-sm)}

/* A readable four-stage sequence replaces the long scroll gaps. */
.home-refined .rollout{grid-template-columns:.75fr 1.65fr;margin-top:56px}
.home-refined .map{border-radius:0;border:0;border-top:1px solid var(--hair);background:none;box-shadow:none!important;padding:var(--space-lg) 0;max-width:400px}
.home-refined .map .live b{font-family:var(--head);font-size:32px;letter-spacing:-.025em}
.home-refined .stores{gap:10px}
@property --store-flow-colour{syntax:"<color>";inherits:true;initial-value:#E9CA8C}
.home-refined .stores{--store-blue:#E9CA8C;--store-pink:#E3BAA3;--store-green:#D0B880}
:root[data-theme="light"] .home-refined .stores{--store-blue:#A88135;--store-pink:#A76A46}
/* Rollout waves use the same blue, pink and Halo Green as the halo. */
.home-refined .store{--store-colour:#E9CA8C;--store-rgb:233,202,140}
.home-refined .store:nth-child(3n + 2){--store-colour:#E3BAA3;--store-rgb:227,186,163}
.home-refined .store:nth-child(3n){--store-colour:#D0B880;--store-rgb:208,184,128}
.home-refined .store.on{background:var(--store-flow-colour);border-color:var(--store-flow-colour);box-shadow:0 0 12px color-mix(in srgb,var(--store-flow-colour) 36%,transparent)}
.home-refined .store.pilot.on{box-shadow:0 0 0 4px color-mix(in srgb,var(--store-flow-colour) 16%,transparent),0 0 16px color-mix(in srgb,var(--store-flow-colour) 50%,transparent)}
:root[data-theme="light"] .home-refined .store{--store-colour:#A88135;--store-rgb:168,129,53}
:root[data-theme="light"] .home-refined .store:nth-child(3n + 2){--store-colour:#A76A46;--store-rgb:167,106,70}
:root[data-theme="light"] .home-refined .store:nth-child(3n){--store-colour:#D0B880;--store-rgb:208,184,128}

/* A soft light signal travels across the live dots without changing their count. */
.home-refined .store{position:relative;--store-flow-colour:var(--store-colour);animation:store-colour-flow 12.6s linear var(--store-colour-delay,0s) infinite;animation-play-state:paused}
.home-refined .store::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.6),color-mix(in srgb,var(--store-flow-colour) 24%,transparent) 58%,transparent 78%);box-shadow:0 0 0 1px color-mix(in srgb,var(--store-flow-colour) 34%,transparent),0 0 16px color-mix(in srgb,var(--store-flow-colour) 65%,transparent);opacity:0;transform:scale(.96);animation:store-data-flow 4.2s ease-in-out var(--store-delay,0s) infinite;animation-play-state:paused;visibility:hidden}
.home-refined .stores[data-stores-active="true"] .store,.home-refined .stores[data-stores-active="true"] .store::after{animation-play-state:running}
.home-refined .stores[data-stores-active="true"] .store.on::after{visibility:visible}
@keyframes store-colour-flow{0%,100%{--store-flow-colour:var(--store-blue)}33.333%{--store-flow-colour:var(--store-pink)}66.667%{--store-flow-colour:var(--store-green)}}
@keyframes store-data-flow{0%,42%,100%{opacity:0;transform:scale(.96)}18%{opacity:.85;transform:scale(1.14)}}
:root[data-halo-motion="paused"] .home-refined .store,:root[data-halo-motion="paused"] .home-refined .store::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.home-refined .store{animation:none}.home-refined .store::after{animation:none;display:none}}

.home-refined .map .phase{font-size:16px;line-height:1.6}
.home-refined .steps li{display:grid;grid-template-columns:1fr 1.3fr;gap:32px;padding:var(--space-lg) 0 var(--space-xl);opacity:1}
.home-refined .steps li:last-child{padding-bottom:var(--space-lg)}
.home-refined .steps .n{font:500 14px/1 var(--body);font-variant-numeric:tabular-nums;color:var(--stone)}
.home-refined .steps h3{margin-top:12px;font-size:26px}
.home-refined .steps p{margin-top:0;font-size:17px;line-height:1.65;max-width:48ch}
.home-refined .bespoke{display:grid;grid-template-columns:1fr 2.2fr;gap:48px;margin-top:var(--space-xl);padding:var(--space-lg) 0 0;border:0;border-top:1px solid var(--hair);border-radius:0;background:none;box-shadow:none!important;line-height:1.7;max-width:none}
.home-refined .bespoke h3{font-size:clamp(28px,2.6vw,36px)}
.home-refined .bespoke p{font-size:17px;color:var(--stone);max-width:65ch}

/* Evidence sits directly beneath the commitment, without hanging labels. */
.home-refined main>.promise{padding-block:clamp(96px,11vw,160px)}
.home-refined .promise-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(48px,8vw,112px);align-items:start;text-align:left}
.home-refined .promise h2{font-size:clamp(36px,4.8vw,64px);max-width:19ch;margin:0}
.home-refined .promise .lede{margin:var(--space-md) 0 0;max-width:43ch}
.home-refined .shelf{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:0;padding:0;max-width:none;border:0}
.home-refined .shelf::before,.home-refined .label::before{display:none}
.home-refined .label{display:grid;grid-template-columns:124px 1fr;gap:24px;align-items:center;min-width:0;width:auto;padding:var(--space-md) 0;border:0;border-top:1px solid var(--hair);border-radius:0;background:none;box-shadow:none!important;text-align:left}
.home-refined .label:last-child{border-bottom:1px solid var(--hair)}
.home-refined .label b{font:500 clamp(44px,4.8vw,64px)/1.1 var(--head);letter-spacing:-.035em}
.home-refined .label span{margin:0;font-size:16px;max-width:23ch;line-height:1.5}
.home-refined .referral{margin:var(--space-lg) 0 0;font-size:16px}
.home-refined .contact .split{grid-template-columns:1fr 1.1fr}
.home-refined .contact form{padding:var(--space-lg);gap:24px;border:1px solid var(--hair);border-radius:12px;background:rgba(var(--glass-rgb),.86);box-shadow:none!important}
.home-refined label.f{font-size:16px;font-weight:500;gap:8px}
.home-refined .contact label.f :is(input,textarea){font-weight:400;border:0;border-bottom:1px solid var(--hair);border-radius:0;padding:12px 4px;background:transparent;box-shadow:none}
.home-refined .contact label.f :is(input,textarea):focus{border-bottom-color:var(--glow);outline:2px solid var(--glow);outline-offset:4px}
.home-refined .contact fieldset{padding-block:0 var(--space-sm)}
.home-refined .direct{margin-top:var(--space-lg)}
.home-refined footer{padding-block:64px 96px;background:transparent;}
.home-refined footer .foot{gap:var(--space-lg)}
.home-refined footer .foot p{font-size:16px;line-height:1.6}
:root[data-theme="light"] .home-refined footer .foot-brand img{filter:brightness(0);opacity:.88}
.home-refined footer nav{gap:0}
.home-refined footer nav h2{font-size:15px;margin-bottom:12px}
.home-refined footer nav a{display:flex;align-items:center;min-height:40px;font-size:15px}

@media(max-width:960px){
  .home-refined .dock nav .opt{display:none}
  .home-refined .menu-btn{display:inline-block}
  .home-refined .split,.home-refined .report-grid,.home-refined .rollout,.home-refined .contact .split{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}
  .home-refined .places{grid-template-columns:minmax(0,1fr);gap:var(--space-md)}
  .home-refined .place{grid-template-columns:1fr 2fr;gap:var(--space-md)}
  .home-refined .place ul{grid-template-columns:minmax(0,1fr)}
  .home-refined .place ul{margin:0}
  .home-refined .way{grid-template-columns:.85fr 1.15fr;gap:var(--space-md) 40px}
  .home-refined .way .orbit{grid-column:1;grid-row:2;height:100px;max-width:240px}
  .home-refined .way-copy{grid-column:2;grid-row:1/3}
  .home-refined .report-intro{position:static}
  .home-refined .report-intro h2{max-width:24ch}
  .home-refined .map{position:relative;top:auto}
  .home-refined .map .phase{display:block;min-height:0}
  .home-refined .promise-grid{grid-template-columns:1fr 1fr;gap:40px}
  .home-refined .label{grid-template-columns:100px 1fr;gap:16px}
}
@media(max-width:380px){
  .home-refined .dock__bar{gap:8px}
  .home-refined .mark{font-size:22px;gap:8px}
  .home-refined .dock nav{gap:6px}
  .home-refined .menu-btn{font-size:14px;padding:11px 12px}
  .home-refined .dock .key{font-size:14px;padding:11px 12px}
}
@media(max-width:600px){
  .home-refined .hero{padding-block:132px 104px;align-items:center}
  .home-refined main h1{font-size:clamp(44px,12vw,64px);max-width:11.5ch}
  .home-refined main h2{font-size:36px;max-width:19ch}
  .home-refined .hero .lede{font-size:20px;margin-top:var(--space-md)}
  .home-refined .hero-detail{font-size:16px}
  .home-refined .event{gap:10px}
  .home-refined .hero .actions{display:grid;justify-items:start;gap:12px}
  .home-refined .hero .actions :is(.key,.btn){width:auto}
  .home-refined .place{display:block}
  .home-refined .place ul{margin-top:var(--space-sm)}
  .home-refined .steps li{grid-template-columns:minmax(0,1fr);gap:var(--space-md)}
  .home-refined .bespoke{grid-template-columns:minmax(0,1fr);gap:var(--space-md)}
  .home-refined .ways-grid{margin-top:var(--space-lg)}
  .home-refined .way{grid-template-columns:minmax(0,1fr);gap:var(--space-md);padding-block:var(--space-lg)}
  .home-refined .way-title,.home-refined .way-copy,.home-refined .way .orbit{grid-column:1;grid-row:auto}
  .home-refined .way h3{font-size:30px;max-width:none}
  .home-refined .way .who{margin-top:8px}
  .home-refined .way .orbit{height:88px;width:220px;max-width:100%;margin:0}
  .home-refined .report-grid{gap:var(--space-xl)}
  .home-refined .report-intro h2{font-size:36px}
  .home-refined .filters{gap:8px}
  .home-refined .map{padding:var(--space-md) 0}
  .home-refined .promise-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}
  .home-refined .shelf{grid-template-columns:minmax(0,1fr);gap:0;margin-top:0}
  .home-refined .label{display:grid;grid-template-columns:112px 1fr;gap:var(--space-sm);align-items:center}
  .home-refined .label span{margin:0}
  .home-refined .contact form{padding:var(--space-md)}
  .home-refined .referral{margin-top:var(--space-lg)}
}
