/* Aliases scoped to body: WordPress emits --wp--preset--* on body, not :root,
   so :root cannot see them (it sits above body). Must match WP's scope. */
body{
  --c-cream:var(--wp--preset--color--cream); --c-ink:var(--wp--preset--color--ink);
  --c-spring:var(--wp--preset--color--spring); --c-spring-dark:var(--wp--preset--color--spring-dark); --c-rust:var(--wp--preset--color--rust);
  --c-gold:var(--wp--preset--color--gold); --c-navy:var(--wp--preset--color--navy);
  --c-grout:var(--wp--preset--color--grout); --c-soft:var(--wp--preset--color--soft);
  --c-tile:var(--wp--preset--color--tile);
  --f-disp:var(--wp--preset--font-family--toronto-subway);
  --f-mono:var(--wp--preset--font-family--jetbrains-mono);
  --f-body:var(--wp--preset--font-family--inter);
}
.roundel{width:44px;height:44px;border-radius:50%;background:var(--c-ink);
  display:flex;align-items:center;justify-content:center;position:relative}
.roundel::after{content:"";position:absolute;width:30px;height:30px;border-radius:50%;border:2px solid var(--c-cream)}
.roundel span{font-family:var(--f-disp);color:var(--c-spring);font-size:24px;z-index:2}
/* SITE HEADER - single dark sticky bar, spring top edge */
.site-head{position:sticky;top:0;z-index:60;background:var(--c-ink);color:var(--c-cream);
  border-top:3px solid var(--c-spring);box-shadow:0 1px 0 rgba(255,255,255,.06);transition:box-shadow .25s ease}
.site-head.scrolled{box-shadow:0 6px 24px rgba(0,0,0,.28)}
.site-head > .wp-block-group{max-width:1280px;margin:0 auto;padding:0 28px;
  display:flex;align-items:center;justify-content:space-between;gap:26px;height:90px;transition:height .25s ease}
.site-head.scrolled > .wp-block-group{height:62px}
.site-head .brand{display:flex;align-items:center;gap:14px;flex:none;text-decoration:none;color:var(--c-cream)}
.site-head .roundel{transition:width .25s ease,height .25s ease}
.site-head.scrolled .roundel{width:36px;height:36px}
.site-head .lock{display:flex;flex-direction:column;line-height:1}
.site-head .wm{font-family:var(--f-disp);font-size:24px;letter-spacing:.04em;text-transform:uppercase}
.site-head .wm .dot{display:inline-block;width:8px;height:8px;background:var(--c-spring);margin:0 .02em -1px}
.site-head .tagline{font-family:var(--f-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--c-spring);margin-top:5px;max-height:14px;opacity:.85;overflow:hidden;transition:.25s}
.site-head.scrolled .tagline{max-height:0;opacity:0;margin-top:0}
.site-head .head-end{display:flex;align-items:center;gap:18px;flex:none}
.site-head .wp-block-navigation a,
.site-head .wp-block-navigation-item__content{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:#D9D1BE;padding:10px 14px;border-bottom:2px solid transparent;transition:.15s}
.site-head .wp-block-navigation a:hover,
.site-head .wp-block-navigation .current-menu-item a{color:var(--c-cream);border-color:var(--c-spring)}
.site-head .ticket{background:var(--c-spring);color:var(--c-ink);white-space:nowrap}
.site-head .ticket:hover{background:var(--c-cream);color:var(--c-ink)}
.site-head .wp-block-navigation__responsive-container-open,
.site-head .wp-block-navigation__responsive-container-close{color:var(--c-cream)}
@media(max-width:880px){.site-head .tagline{display:none}}
@media(prefers-reduced-motion:reduce){
  .site-head,.site-head > .wp-block-group,.site-head .roundel,.site-head .tagline{transition:none}
}
.station-bullet{display:inline-block;width:18px;height:18px;border-radius:50%;border:4px solid var(--c-ink)}
.ticket{font-family:var(--f-disp);text-transform:uppercase;letter-spacing:.04em;
  background:var(--c-ink);color:var(--c-cream);padding:12px 22px;display:inline-flex;gap:9px;transition:.18s}
.ticket:hover{background:var(--c-spring);color:var(--c-ink)}
.spring-ticker{background:var(--c-ink);color:var(--c-cream);overflow:hidden;white-space:nowrap;border-top:2px solid var(--c-spring)}
.spring-ticker__run{display:inline-block;padding:9px 0;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;animation:spring-scroll 30s linear infinite}
.spring-ticker__run span{margin:0 24px}
.spring-ticker__run span::before{content:"●";color:var(--c-spring);margin-right:8px}
@keyframes spring-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.spring-ticker__run{animation:none}}
.station-tile{position:relative;display:flex;flex-direction:column;gap:10px;justify-content:space-between;
  min-height:172px;padding:24px;background:var(--c-cream);border:2px solid var(--c-ink);overflow:hidden;text-decoration:none;color:var(--c-ink);transition:.18s;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 33px,var(--wp--preset--color--grout) 33px,var(--wp--preset--color--grout) 35px),repeating-linear-gradient(90deg,transparent,transparent 70px,var(--wp--preset--color--grout) 70px,var(--wp--preset--color--grout) 72px)}
.station-tile:hover{transform:translateY(-4px);box-shadow:6px 6px 0 var(--c-ink)}
.station-tile__line{position:absolute;top:0;left:0;width:8px;height:100%;background:var(--c-spring)}
.station-tile--rust .station-tile__line{background:var(--c-rust)}
.station-tile__top{display:flex;align-items:center;gap:11px}
.station-tile__name{font-family:var(--f-disp);font-size:25px;text-transform:uppercase;line-height:.9}
.station-tile__desc{font-size:13.5px;color:var(--wp--preset--color--soft);max-width:26ch}
.station-tile__foot{display:flex;justify-content:space-between;align-items:flex-end;font-family:var(--f-mono);font-size:11px}
.station-tile__foot b{font-family:var(--f-disp);font-size:20px}
.station-tile__foot em{color:var(--wp--preset--color--spring-dark);font-style:normal;font-weight:700}
.spring-line-diagram{position:relative;padding:34px 4px 10px}
.spring-line-diagram__rail{position:absolute;left:4px;right:4px;top:47px;height:7px;background:var(--c-spring);border-radius:99px}
.spring-line-diagram__stops{display:flex;justify-content:space-between;position:relative}
.spring-line-diagram .stop{display:flex;flex-direction:column;align-items:center;gap:14px;flex:1;text-decoration:none;color:var(--c-ink)}
.spring-line-diagram .stop .b{width:22px;height:22px;border-radius:50%;background:var(--c-cream);border:5px solid var(--c-ink);z-index:2;transition:.2s}
.spring-line-diagram .stop:hover .b{border-color:var(--c-spring);transform:scale(1.25)}
.spring-line-diagram .stop--hub .b{background:var(--c-rust);border-color:var(--c-ink)}
.spring-line-diagram .nm{font-family:var(--f-disp);font-size:14px;text-transform:uppercase}
.spring-line-diagram .stop:hover .nm{color:var(--c-spring-dark)}
/* ---- Home + shared section components (Phase C-1) ---- */
.spring-hero{position:relative;padding:78px 0 56px;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 63px,rgba(25,23,19,.04) 63px,rgba(25,23,19,.04) 64px)}
.spring-hero__eyebrow{display:inline-flex;align-items:center;gap:12px;margin-bottom:26px;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--c-ink)}
.spring-hero__eyebrow .b{width:12px;height:12px;background:var(--c-spring)}
.spring-hero__eyebrow::after{content:"";width:46px;height:2px;background:var(--c-ink);opacity:.35}
.spring-hero__title{font-family:var(--f-disp);font-size:clamp(58px,10.5vw,148px);line-height:.84;letter-spacing:.005em;text-transform:uppercase}
.spring-hero__title .l2{color:var(--c-spring)}
.spring-hero__sub{margin-top:28px;font-size:clamp(17px,1.7vw,21px);color:var(--c-soft);max-width:50ch;line-height:1.6}
.spring-hero__cta-row{margin-top:46px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.spring-hero__cta-row .ticket{font-size:16px;padding:15px 28px}
.spring-hero__alt{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--c-soft);border-bottom:2px solid transparent;padding-bottom:3px;transition:.15s;text-decoration:none}
.spring-hero__alt:hover{color:var(--c-ink);border-color:var(--c-spring)}
.spring-sec{padding:80px 0}
.spring-sec__head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:34px;gap:20px;flex-wrap:wrap;border-bottom:2px solid var(--c-ink);padding-bottom:16px}
.spring-sec__head h2{font-family:var(--f-disp);font-size:clamp(30px,4.4vw,52px);text-transform:uppercase;letter-spacing:.01em;line-height:.9}
.spring-sec__head .lk{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.spring-sec__head .lk:hover{color:var(--c-spring-dark,var(--c-spring))}
.spring-tilegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.spring-ext{background:var(--c-navy);color:var(--c-cream);position:relative;overflow:hidden}
.spring-ext .in{padding:74px 28px;max-width:1280px;margin:0 auto;position:relative;z-index:2}
.spring-ext__tag{display:inline-flex;align-items:center;gap:10px;border:2px solid var(--c-spring);color:var(--c-spring);font-family:var(--f-disp);font-size:14px;letter-spacing:.06em;text-transform:uppercase;padding:7px 14px;margin-bottom:22px}
.spring-ext h2{font-family:var(--f-disp);font-size:clamp(34px,5vw,64px);text-transform:uppercase;line-height:.9;letter-spacing:.01em;max-width:17ch}
.spring-ext__sub{color:#BFD2DA;margin-top:20px;max-width:52ch;font-size:17px}
.spring-ext__feat{display:flex;margin-top:40px;border:2px solid rgba(255,255,255,.25)}
.spring-ext__feat .f{flex:1;padding:22px;border-left:2px solid rgba(255,255,255,.25)}
.spring-ext__feat .f:first-child{border-left:0}
.spring-ext__feat .f .n{font-family:var(--f-disp);font-size:22px;text-transform:uppercase;color:var(--c-spring)}
.spring-ext__feat .f p{font-size:13px;color:#A9BFC8;margin-top:6px}
.cta-band{background:var(--c-spring);color:var(--c-ink)}
.cta-band .in{max-width:1280px;margin:0 auto;padding:56px 28px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.cta-band h2{font-family:var(--f-disp);font-size:clamp(28px,3.6vw,46px);text-transform:uppercase;line-height:.9;max-width:20ch}
.cta-band .ticket{background:var(--c-ink);color:var(--c-cream)}
.cta-band .ticket:hover{background:var(--c-cream);color:var(--c-ink)}

/* ---- Station + editorial components (Phase C-2) ---- */

/* Content-width container (matches mockup .wrap: centred 1280, 28px gutters) */
.wrap{max-width:1280px;margin:0 auto;padding:0 28px}

/* LINE-COLOUR MECHANISM */
.is-line-green{--line:var(--c-spring)}
.is-line-rust{--line:var(--c-rust)}
.is-line-gold{--line:var(--c-gold)}
.is-line-navy{--line:var(--c-navy)}

/* BREADCRUMB / line position */
.bread{border-bottom:2px solid var(--c-ink);background:var(--c-tile)}
.bread .wrap{display:flex;align-items:center;gap:14px;height:46px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-soft)}
.bread b{color:var(--c-ink);font-weight:700}
.bread .dotsep{width:5px;height:5px;background:var(--line);border-radius:50%}

/* STATION HERO — base (cream / pillar) */
.station{position:relative;padding:54px 0 0;background:repeating-linear-gradient(0deg,transparent,transparent 46px,rgba(0,0,0,.025) 46px,rgba(0,0,0,.025) 48px),var(--c-cream)}
.st-no{display:inline-flex;align-items:center;gap:12px;border:2px solid var(--c-ink);padding:7px 15px;margin-bottom:26px;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.st-no .b{width:13px;height:13px;border-radius:50%;border:4px solid var(--line)}
.st-sign{display:flex;align-items:flex-start;gap:26px}
.st-bull{width:64px;height:64px;border-radius:50%;border:9px solid var(--line);flex:none;margin-top:14px}
.station h1{font-family:var(--f-disp);font-size:clamp(58px,11vw,148px);line-height:.82;letter-spacing:.005em;text-transform:uppercase}
.station h1 small{display:block;font-family:var(--f-body);font-weight:700;font-size:clamp(13px,1.5vw,16px);letter-spacing:.28em;color:var(--c-soft);margin-bottom:10px}
.station .lede{margin-top:24px;font-size:clamp(17px,1.7vw,21px);color:var(--c-soft);max-width:60ch}

/* STATION HERO — navy waterfront modifier */
.station--navy{background:var(--c-navy);color:var(--c-cream);overflow:hidden}
.station--navy::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 46px,rgba(255,255,255,.04) 46px,rgba(255,255,255,.04) 48px);pointer-events:none}
.station--navy .wrap{position:relative;z-index:2;padding:54px 28px 0}
.station--navy .st-no{border:2px solid var(--c-spring);color:var(--c-spring)}
.station--navy .st-no .b{border:4px solid var(--c-spring);flex:none}
.station--navy .st-bull{border:9px solid var(--c-spring)}
.station--navy h1 .l2{color:var(--c-spring)}
.station--navy h1 small{font-size:clamp(12px,1.4vw,16px);letter-spacing:.28em;color:rgba(255,255,255,.45);margin-bottom:8px}
.station--navy .lede{margin-top:22px;font-size:clamp(16px,1.6vw,20px);color:rgba(191,210,218,.85);max-width:58ch;padding-bottom:46px}

/* "YOU ARE HERE" mini line diagram */
.youhere{margin:44px 0 0;padding:30px 0 8px;position:relative}
.youhere .rail{position:absolute;left:4px;right:4px;top:43px;height:7px;background:var(--c-ink);border-radius:99px;opacity:.18}
.youhere .railc{position:absolute;left:4px;top:43px;height:7px;width:42%;background:var(--line);border-radius:99px}
.ystops{display:flex;justify-content:space-between;position:relative;padding:0 4px}
.ystop{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1}
.ystop .b{width:18px;height:18px;border-radius:50%;background:var(--c-cream);border:5px solid var(--c-ink);opacity:.5}
.ystop.here .b{width:26px;height:26px;border-color:var(--line);opacity:1;box-shadow:0 0 0 4px var(--c-cream),0 0 0 6px var(--line)}
.ystop .nm{font-family:var(--f-disp);font-size:13px;letter-spacing:.03em;text-transform:uppercase;text-align:center;line-height:1;color:var(--c-soft)}
.ystop.here .nm{color:var(--c-ink)}

/* DEPARTURE BOARD — stat band */
.board{background:var(--c-ink);color:var(--c-cream);margin-top:50px}
.board .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.bcell{padding:30px 26px;border-left:1px solid #322c22}
.bcell:first-child{border-left:0}
.bcell .k{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#8d8676}
.bcell .v{font-family:var(--f-disp);font-size:clamp(30px,3.6vw,44px);line-height:1;margin-top:12px;letter-spacing:.01em}
.bcell .v em{font-style:normal;color:var(--c-spring)}
.bcell .n{font-family:var(--f-mono);font-size:11px;color:#b8b1a2;margin-top:9px;letter-spacing:.04em}
.bcell .n.up{color:var(--c-spring)}

/* THE TAKE — signature expert block */
.take{background:var(--c-tile);border:2px solid var(--c-ink);position:relative;padding:46px 44px 40px;background-image:repeating-linear-gradient(0deg,transparent,transparent 33px,var(--c-grout) 33px,var(--c-grout) 35px)}
.take::before{content:"";position:absolute;top:0;left:0;width:8px;height:100%;background:var(--line)}
.take .tag{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-disp);font-size:14px;letter-spacing:.05em;text-transform:uppercase;background:var(--c-ink);color:var(--c-cream);padding:7px 14px;margin-bottom:24px}
.take p{font-family:var(--f-disp);font-size:clamp(22px,2.6vw,32px);line-height:1.18;letter-spacing:.005em;max-width:30ch}
.take .by{display:flex;align-items:center;gap:13px;margin-top:28px}
.take .by .who{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-soft);line-height:1.5}
.take .by .who b{color:var(--c-ink)}

/* TWO-COL editorial */
.two{display:grid;grid-template-columns:1.3fr 1fr;gap:54px;align-items:start}
.prose h3{font-family:var(--f-disp);font-size:23px;text-transform:uppercase;letter-spacing:.02em;margin:30px 0 12px}
.prose h3:first-child{margin-top:0}
.prose p{color:var(--c-ink);margin-bottom:14px;max-width:62ch}
.prose p.soft{color:var(--c-soft)}
.aside{border:2px solid var(--c-ink);background:var(--c-cream)}
.aside .ah{background:var(--c-ink);color:var(--c-cream);font-family:var(--f-disp);font-size:15px;letter-spacing:.05em;text-transform:uppercase;padding:14px 20px}
.aside .row{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-top:1px solid var(--c-grout);font-size:14px}
.aside .row .l{display:flex;align-items:center;gap:10px;color:var(--c-soft);font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.aside .row .l .b{width:12px;height:12px;border-radius:50%;border:3px solid var(--line)}
.aside .row b{font-family:var(--f-disp);font-size:17px}

/* PRICE CHART (CSS bars) */
.chart{display:flex;align-items:flex-end;gap:14px;height:230px;border-left:2px solid var(--c-ink);border-bottom:2px solid var(--c-ink);padding:0 8px}
.col{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;height:100%;justify-content:flex-end}
.col .bar{width:100%;max-width:62px;background:var(--line);position:relative;transition:.6s cubic-bezier(.2,.8,.2,1)}
.col:last-child .bar{background:var(--c-rust)}
.col .bv{font-family:var(--f-disp);font-size:15px}
.col .yr{font-family:var(--f-mono);font-size:10.5px;color:var(--c-soft);letter-spacing:.06em}

/* TRANSIT callout */
.transit{background:var(--c-navy);color:var(--c-cream);overflow:hidden;position:relative}
.transit .wrap{padding:60px 28px;position:relative;z-index:2}
.transit .tag{display:inline-flex;align-items:center;gap:10px;border:2px solid var(--c-spring);color:var(--c-spring);font-family:var(--f-disp);font-size:14px;letter-spacing:.06em;text-transform:uppercase;padding:7px 14px;margin-bottom:20px}
.transit h2{font-family:var(--f-disp);font-size:clamp(30px,4.4vw,54px);text-transform:uppercase;line-height:.9;max-width:18ch}
.transit p{color:#BFD2DA;margin-top:18px;max-width:56ch;font-size:17px}
.transit .ll{position:absolute;height:6px;background:var(--c-spring);top:50%;left:-5%;width:110%;transform:rotate(-3deg);opacity:.22}

/* CONNECTIONS — nearby stops */
.conn{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cstop{border:2px solid var(--c-ink);background:var(--c-tile);padding:20px;display:flex;flex-direction:column;gap:10px;transition:.18s;background-image:repeating-linear-gradient(0deg,transparent,transparent 33px,var(--c-grout) 33px,var(--c-grout) 35px)}
.cstop:hover{transform:translateY(-4px);box-shadow:6px 6px 0 var(--c-ink)}
.cstop .b{width:16px;height:16px;border-radius:50%;border:4px solid var(--c)}
.cstop h4{font-family:var(--f-disp);font-size:21px;text-transform:uppercase;letter-spacing:.02em;line-height:.9}
.cstop .m{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.05em;color:var(--c-soft);margin-top:auto}
.c-green{--c:var(--c-spring)}.c-rust{--c:var(--c-rust)}.c-gold{--c:var(--c-gold)}.c-navy{--c:var(--c-navy)}

/* JOURNAL cards */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.post{border:2px solid var(--c-ink);background:var(--c-cream);display:flex;flex-direction:column;transition:.18s}
.post:hover{transform:translateY(-4px);box-shadow:6px 6px 0 var(--c-ink)}
.post .ph{height:7px;background:var(--line)}
.post .pc{padding:22px;display:flex;flex-direction:column;gap:11px;flex:1}
.post .cat{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-spring-dark)}
.post h4{font-family:var(--f-disp);font-size:21px;text-transform:uppercase;letter-spacing:.01em;line-height:.95}
.post .ex{font-size:13.5px;color:var(--c-soft)}
.post .meta{margin-top:auto;font-family:var(--f-mono);font-size:10.5px;color:var(--c-soft);letter-spacing:.05em}

/* WATERFRONT-ONLY: construction stripe */
.cstripe{height:10px;background:repeating-linear-gradient(90deg,var(--c-gold) 0,var(--c-gold) 18px,var(--c-ink) 18px,var(--c-ink) 32px)}

/* EXTENSION LINE DIAGRAM */
.extdiag{background:var(--c-navy);color:var(--c-cream);padding:48px 0 54px;position:relative}
.extdiag .wrap{position:relative}
.diag-label{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px}
.diag-label em{font-style:normal}
.drow{position:relative;padding:28px 0 46px}
.drow-line{position:absolute;left:0;right:0;top:41px;height:6px;border-radius:99px}
.drow-line.green{background:var(--c-spring);opacity:.85}
.drow-line.navy-dash{background:repeating-linear-gradient(90deg,rgba(255,255,255,.45) 0,rgba(255,255,255,.45) 14px,transparent 14px,transparent 24px)}
.dstops{display:flex;justify-content:space-between;position:relative}
.dst{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1;cursor:default}
.dst .b{width:20px;height:20px;border-radius:50%;background:var(--c-navy);border:5px solid var(--c-spring);position:relative;z-index:2;transition:.2s}
.dst.dark .b{background:var(--c-navy);border-color:rgba(255,255,255,.55)}
.dst.hub .b{width:26px;height:26px;background:var(--c-rust);border-color:var(--c-rust);box-shadow:0 0 0 3px rgba(200,69,46,.35)}
.dst .nm{font-family:var(--f-disp);font-size:13px;letter-spacing:.03em;text-transform:uppercase;text-align:center;line-height:1.1;color:rgba(255,255,255,.65)}
.dst.dark .nm{color:rgba(255,255,255,.75)}
.dst.hub .nm{color:var(--c-cream)}
.dst .pr{font-family:var(--f-mono);font-size:10px;color:rgba(255,255,255,.38);letter-spacing:.05em;text-align:center}
.dst.dark .pr{color:rgba(255,255,255,.45)}
.vconn-wrap{display:flex;justify-content:flex-end;padding-right:9px}
.vconn{width:6px;height:36px;background:rgba(255,255,255,.3)}
.ext-row-label{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px;text-align:right}
.uc-badge{display:inline-flex;align-items:center;gap:8px;background:var(--c-gold);color:var(--c-ink);font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:5px 12px;margin-bottom:22px}

/* RECONCILIATION MODIFIERS */
.cta-band--navy{background:var(--c-navy);color:var(--c-cream)}
.cta-band--navy .ticket{background:var(--c-spring);color:var(--c-ink)}
.cta-band--navy .ticket:hover{background:var(--c-cream);color:var(--c-ink)}
.station-tile--navy .station-tile__line{background:var(--c-navy)}
.station-tile--gold .station-tile__line{background:var(--c-gold)}
.is-line-navy .aside .ah{background:var(--c-navy)}
.is-line-navy .post .cat{color:var(--c-navy)}

/* Section padding + in-content avatar + bullet square (mockup .pad/.rd/.sq) */
.pad{padding:78px 0}
.rd{width:44px;height:44px;border-radius:50%;background:var(--c-ink);display:flex;align-items:center;justify-content:center;position:relative;flex:none}
.rd::after{content:"";position:absolute;width:30px;height:30px;border-radius:50%;border:2px solid var(--c-cream)}
.rd span{font-family:var(--f-disp);color:var(--c-spring);font-size:24px;z-index:2;line-height:1}
.take .by .rd{width:38px;height:38px}
.take .by .rd span{font-size:20px}
.sq{display:inline-block;width:.62em;height:.62em;background:var(--c-spring);vertical-align:baseline}

/* ---- Journal + article components (Phase C-3) ---- */

/* JOURNAL INDEX HERO */
.j-hero{position:relative;padding:60px 0 0;background:
  repeating-linear-gradient(0deg,transparent,transparent 46px,rgba(0,0,0,.025) 46px,rgba(0,0,0,.025) 48px),
  var(--c-cream)}
.j-hero h1{font-family:var(--f-disp);font-size:clamp(58px,10.5vw,144px);line-height:.82;letter-spacing:.005em;text-transform:uppercase}
.j-hero h1 .l2{color:var(--c-spring)}
.j-hero .sub{margin-top:26px;font-size:clamp(17px,1.7vw,20px);color:var(--c-soft);max-width:58ch}
.j-pills{margin-top:22px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:52px}
.j-pill{display:inline-flex;align-items:center;gap:8px;background:var(--c-ink);color:var(--c-cream);font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:7px 13px}
.j-pill em{color:var(--c-spring);font-style:normal}

/* CATEGORY FILTER chips */
.filter-wrap{background:var(--c-tile);border-bottom:2px solid var(--c-ink)}
.filter-wrap .wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:22px;padding-bottom:22px}
.filter-label{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--c-soft);margin-right:6px;white-space:nowrap}
.chip{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--c-ink);padding:7px 14px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:.15s;background:transparent;text-decoration:none;color:var(--c-ink)}
.chip:hover{background:var(--c-ink);color:var(--c-cream)}
.chip.on{background:var(--c-ink);color:var(--c-cream)}
.chip .cb{width:11px;height:11px;border-radius:50%;flex:none}
.cb-green{background:var(--c-spring)}
.cb-rust{background:var(--c-rust)}
.cb-gold{background:var(--c-gold)}
.cb-navy{background:var(--c-navy)}
.chip.on .cb{border:2px solid var(--c-spring)}

/* FEATURED POST card */
.j-feat{border:3px solid var(--c-ink);background:var(--c-tile);display:flex;position:relative;overflow:hidden;transition:.18s;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 46px,var(--c-grout) 46px,var(--c-grout) 48px);text-decoration:none;color:var(--c-ink)}
.j-feat:hover{box-shadow:8px 8px 0 var(--c-ink);transform:translateY(-3px)}
.j-feat .spine{width:10px;background:var(--c-spring);flex:none}
.j-feat .fc{padding:50px 56px;flex:1;display:flex;flex-direction:column;gap:20px}
.j-feat .f-eye{display:flex;align-items:center;gap:12px}
.j-feat .f-tag{background:var(--c-rust);color:var(--c-cream);font-family:var(--f-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;padding:5px 11px}
.j-feat .f-date{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-soft)}
.j-feat h2{font-family:var(--f-disp);font-size:clamp(34px,4.8vw,64px);text-transform:uppercase;letter-spacing:.01em;line-height:.88;max-width:22ch}
.j-feat .f-ex{font-size:17px;color:var(--c-soft);max-width:68ch;line-height:1.6}
.j-feat .f-meta{font-family:var(--f-mono);font-size:10.5px;color:var(--c-soft);letter-spacing:.08em;display:flex;align-items:center;gap:14px}
.f-dot{width:3px;height:3px;background:var(--c-soft);border-radius:50%;display:inline-block}
.j-feat .f-cta{margin-top:6px}
.j-feat .f-cta .ticket{font-size:14px;padding:11px 20px}

/* POST CARD colour-line modifiers (base .ph/.cat already in brand.css) */
.post .ph-rust{background:var(--c-rust)}
.post .ph-gold{background:var(--c-gold)}
.post .ph-navy{background:var(--c-navy)}
.post .ph-green{background:var(--c-spring)}
.post .cat-rust{color:var(--c-rust)}
.post .cat-gold{color:#A67A0C}
.post .cat-navy{color:var(--c-navy)}

/* NEWSLETTER signup */
.newsletter{background:var(--c-tile);border-top:2px solid var(--c-ink);border-bottom:2px solid var(--c-ink);
  background-image:repeating-linear-gradient(0deg,transparent,transparent 46px,var(--c-grout) 46px,var(--c-grout) 48px)}
.newsletter .wrap{padding:64px 28px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.nl-tag{display:inline-flex;align-items:center;gap:10px;background:var(--c-ink);color:var(--c-cream);font-family:var(--f-disp);font-size:14px;letter-spacing:.04em;text-transform:uppercase;padding:7px 14px;margin-bottom:20px}
.nl-tag .sq{width:10px;height:10px;background:var(--c-spring)}
.nl-h{font-family:var(--f-disp);font-size:clamp(28px,3.8vw,50px);text-transform:uppercase;letter-spacing:.01em;line-height:.9}
.nl-sub{margin-top:16px;font-size:15px;color:var(--c-soft);max-width:42ch}
.nl-fine{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;color:var(--c-soft);padding:12px 0 0}

/* EMAIL CAPTURE bar */
.search{display:flex;max-width:100%;border:3px solid var(--c-ink);background:var(--c-tile)}
.search .lbl{display:flex;align-items:center;background:var(--c-ink);color:var(--c-cream);padding:0 16px;font-family:var(--f-disp);font-size:14px;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.search input{flex:1;border:0;background:transparent;padding:17px 18px;font-family:var(--f-body);font-size:15px;outline:none}
.search button{border:0;background:var(--c-spring);color:var(--c-ink);padding:0 26px;font-family:var(--f-disp);font-size:16px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:.15s;white-space:nowrap}
.search button:hover{background:var(--c-ink);color:var(--c-cream)}

/* PAGINATION */
.pager{padding:44px 0 60px;border-top:2px solid var(--c-ink)}
.pager .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.pg-arrow{font-family:var(--f-disp);font-size:15px;letter-spacing:.04em;padding:10px 20px;border:2px solid var(--c-ink);background:transparent;cursor:pointer;transition:.15s;color:var(--c-ink);text-transform:uppercase;display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.pg-arrow:hover{background:var(--c-ink);color:var(--c-cream)}
.pg-stops{display:flex;align-items:center;gap:4px}
.pg-num{width:42px;height:42px;display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;border:2px solid transparent;cursor:pointer;transition:.15s;text-decoration:none;color:var(--c-ink)}
.pg-num:hover{border-color:var(--c-ink)}
.pg-num.on{background:var(--c-ink);color:var(--c-cream);border-color:var(--c-ink)}
.pg-num.ell{cursor:default;color:var(--c-soft);border-color:transparent}
.pg-label{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-soft)}

/* ARTICLE HEADER */
.art-header{padding:58px 0 0;background:
  repeating-linear-gradient(0deg,transparent,transparent 46px,rgba(0,0,0,.025) 46px,rgba(0,0,0,.025) 48px),
  var(--c-cream)}
/* eyebrow: wp:post-terms with className="art-eyebrow"; ::before injects the colour square */
.art-eyebrow{display:inline-flex;align-items:center;gap:10px;border:2px solid var(--c-ink);padding:7px 15px;margin-bottom:22px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--c-spring-dark)}
.art-eyebrow::before{content:"";display:inline-block;width:11px;height:11px;background:var(--line);flex:none}
.art-eyebrow span{color:var(--c-spring-dark)}
.art-hl{font-family:var(--f-disp);font-size:clamp(42px,7.5vw,100px);line-height:.86;letter-spacing:.005em;text-transform:uppercase;max-width:18ch}
.art-deck{margin-top:24px;font-size:clamp(17px,1.6vw,21px);color:var(--c-soft);max-width:56ch;line-height:1.55;font-weight:400}

/* ARTICLE BYLINE */
.art-byline{display:flex;align-items:center;gap:22px;margin-top:36px;padding-bottom:28px;flex-wrap:wrap}
.art-byline .by-who{display:flex;align-items:center;gap:12px}
.rd-sm{width:34px;height:34px;border-radius:50%;background:var(--c-ink);display:flex;align-items:center;justify-content:center;position:relative;flex:none}
.rd-sm::after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;border:2px solid var(--c-cream)}
.rd-sm span{font-family:var(--f-disp);color:var(--c-spring);font-size:17px;z-index:2;line-height:1}
.art-byline .by-name{font-family:var(--f-body);font-weight:600;font-size:14px;line-height:1.2}
.art-byline .by-name small{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-soft);font-weight:400;margin-top:2px}
.art-byline .by-sep{width:1px;height:28px;background:var(--c-grout)}
.art-byline .by-meta{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-soft)}
.art-byline .by-share{display:flex;align-items:center;gap:14px;margin-left:auto}
.art-byline .by-share a{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-soft);transition:.15s;border-bottom:1px solid transparent}
.art-byline .by-share a:hover{color:var(--c-spring-dark);border-color:var(--c-spring-dark)}

/* ARTICLE RULE + BODY */
.art-rule{height:3px;background:var(--line);margin:0}
.art-body{padding:64px 0 80px}

/* PROSE COLUMN -- applied via wp:post-content className="prose-col" */
.prose-col{max-width:720px;margin:0 auto;padding:0 28px}
.prose-col p{font-size:18px;line-height:1.78;color:var(--c-ink);margin-bottom:1.4em;max-width:68ch}
.prose-col p.lede-p{font-size:19px;line-height:1.72;font-weight:500;color:var(--c-ink);margin-bottom:1.6em}
.prose-col h3{font-family:var(--f-disp);font-size:clamp(24px,3vw,34px);text-transform:uppercase;letter-spacing:.02em;line-height:.9;margin:2.4em 0 .7em;color:var(--c-ink)}
.prose-col h3:first-child{margin-top:0}
.prose-col .muted{color:var(--c-soft)}

/* ARTICLE LIST */
.prose-col ul.art-list{list-style:none;margin:0 0 1.4em;padding:0}
.prose-col ul.art-list li{display:flex;align-items:baseline;gap:12px;font-size:18px;line-height:1.72;color:var(--c-ink);padding:8px 0;border-bottom:1px solid var(--c-grout)}
.prose-col ul.art-list li:last-child{border-bottom:0}
.prose-col ul.art-list li::before{content:"";width:10px;height:10px;border-radius:50%;border:3px solid var(--line);flex:none;margin-top:3px}

/* PULL QUOTE */
.pull-quote{margin:2.6em 0;padding:32px 36px 32px 42px;position:relative;background:var(--c-tile);border:2px solid var(--c-ink);
  background-image:repeating-linear-gradient(0deg,transparent,transparent 33px,var(--c-grout) 33px,var(--c-grout) 35px)}
.pull-quote::before{content:"";position:absolute;top:0;left:0;width:8px;height:100%;background:var(--line)}
.pull-quote blockquote{font-family:var(--f-disp);font-size:clamp(24px,3vw,36px);line-height:1.14;letter-spacing:.01em;text-transform:uppercase;color:var(--c-ink);max-width:22ch}
.pull-quote cite{display:block;margin-top:18px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-soft);font-style:normal}

/* INLINE TAKE -- scoped override (base .take already in brand.css) */
.prose-col .take{margin:2.4em 0}
.prose-col .take p{max-width:28ch}

/* INLINE STAT BOARD */
.stat-board{margin:2.4em 0;border:2px solid var(--c-ink);background:var(--c-ink);overflow:hidden}
.stat-board .sb-head{background:var(--c-ink);color:var(--c-cream);display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:2px solid var(--line)}
.stat-board .sb-head .b{width:11px;height:11px;background:var(--line)}
.stat-board .sb-head span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--c-cream)}
.stat-board .sb-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.stat-board .sc{padding:22px 20px;border-right:1px solid #322c22;border-top:1px solid #322c22}
.stat-board .sc:nth-child(3n){border-right:0}
.stat-board .sc:nth-child(-n+3){border-top:0}
.stat-board .sk{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#8d8676}
.stat-board .sv{font-family:var(--f-disp);font-size:clamp(26px,3.2vw,38px);line-height:1;color:var(--c-cream);margin-top:10px;letter-spacing:.01em}
.stat-board .sv em{font-style:normal;color:var(--c-spring)}
.stat-board .sn{font-family:var(--f-mono);font-size:10.5px;color:#b8b1a2;margin-top:8px;letter-spacing:.04em}
.stat-board .sn.up{color:var(--c-spring)}

/* AUTHOR CARD */
.author-card{max-width:720px;margin:0 auto;padding:0 28px 80px}
.author-strip{border:2px solid var(--c-ink);background:var(--c-tile);display:flex;align-items:center;gap:30px;padding:32px 36px;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 33px,var(--c-grout) 33px,var(--c-grout) 35px);position:relative}
.author-strip::before{content:"";position:absolute;top:0;left:0;width:8px;height:100%;background:var(--line)}
.author-strip .ard{width:64px;height:64px;border-radius:50%;background:var(--c-ink);display:flex;align-items:center;justify-content:center;position:relative;flex:none}
.author-strip .ard::after{content:"";position:absolute;width:46px;height:46px;border-radius:50%;border:2px solid var(--c-cream)}
.author-strip .ard span{font-family:var(--f-disp);color:var(--c-spring);font-size:32px;z-index:2;line-height:1}
.author-strip .abody{flex:1}
.author-strip .aname{font-family:var(--f-disp);font-size:22px;text-transform:uppercase;letter-spacing:.02em;line-height:1}
.author-strip .atag{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-spring-dark);margin-top:4px}
.author-strip .abio{font-size:14px;color:var(--c-soft);margin-top:10px;max-width:44ch;line-height:1.6}
.author-strip .ticket{flex:none;font-size:14px;padding:10px 18px}

@media(max-width:880px){
  .j-feat .fc{padding:28px 28px}
  .newsletter .wrap{grid-template-columns:1fr}
  .art-byline .by-share{margin-left:0;width:100%}
  .author-strip{flex-wrap:wrap;gap:20px}
  .author-strip .ticket{width:100%}
  .stat-board .sb-grid{grid-template-columns:repeat(2,1fr)}
  .stat-board .sc:nth-child(3n){border-right:1px solid #322c22}
  .stat-board .sc:nth-child(2n){border-right:0}
  .stat-board .sc:nth-child(-n+2){border-top:0}
  .stat-board .sc:nth-child(n+3){border-top:1px solid #322c22}
}
@media(max-width:600px){
  .prose-col{padding:0 20px}
  .pull-quote blockquote{font-size:22px}
  .pager .wrap{justify-content:center;flex-direction:column;align-items:center;gap:16px}
  .stat-board .sb-grid{grid-template-columns:1fr}
}

/* ---- mono utility (Phase C-3 audit: used in templates, missed in port) ---- */
.mono{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}

/* ---- About + Contact components (Phase C-4) ---- */

/* PRINCIPLE TILE colour modifier (green) - adds to the station-tile system already in brand.css.
   .station-tile__line defaults to spring in the base rule; this is the explicit sibling modifier
   so .station-tile--green reads consistently alongside --rust / --gold / --navy. */
.station-tile--green .station-tile__line{background:var(--c-spring)}

/* PRINCIPLES SECTION wrapper (tile bg + full-width rules) */
.about-principles{background:var(--c-tile);border-top:2px solid var(--c-ink);border-bottom:2px solid var(--c-ink);padding:78px 0}

/* BROKERAGE AFFILIATION strip */
.affil{background:var(--c-tile);border-top:2px solid var(--c-ink);border-bottom:2px solid var(--c-ink)}
.affil .wrap{display:flex;align-items:center;gap:20px;padding-top:20px;padding-bottom:20px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-soft);flex-wrap:wrap}
.affil .dot{width:8px;height:8px;border-radius:50%;background:var(--c-spring);flex:none}

/* 4-up principles grid modifier (about "How I ride" section uses spring-tilegrid--four) */
.spring-tilegrid--four{grid-template-columns:repeat(4,1fr)}

/* CONTACT FORM - enamel tile style */
.form-wrap{border:2px solid var(--c-ink);background:var(--c-tile);
  background-image:repeating-linear-gradient(0deg,transparent,transparent 33px,var(--c-grout) 33px,var(--c-grout) 35px)}
.form-header{background:var(--c-ink);color:var(--c-cream);padding:17px 24px;display:flex;align-items:center;gap:12px}
.form-header .fdot{width:12px;height:12px;background:var(--c-spring);flex:none}
.form-header span{font-family:var(--f-disp);font-size:16px;letter-spacing:.05em;text-transform:uppercase}
.form-body{padding:28px 24px 26px}
.field{margin-bottom:20px}
.field label{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--c-soft);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;border:2px solid var(--c-ink);background:var(--c-cream);padding:13px 15px;font-family:var(--f-body);font-size:15px;color:var(--c-ink);outline:none;-webkit-appearance:none;appearance:none;transition:.15s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--c-spring);background:var(--c-tile)}
.field input::placeholder,.field textarea::placeholder{color:#b8b0a0}
.field textarea{resize:vertical;min-height:126px;line-height:1.5}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M0 0l6 8 6-8z' fill='%23191713'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:42px;cursor:pointer}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.btn-spring{font-family:var(--f-disp);font-size:18px;letter-spacing:.05em;text-transform:uppercase;background:var(--c-spring);color:var(--c-ink);border:2px solid var(--c-spring);padding:16px 34px;display:inline-flex;align-items:center;gap:10px;cursor:pointer;transition:.18s;width:100%;justify-content:center;margin-top:6px}
.btn-spring:hover{background:var(--c-spring-dark);border-color:var(--c-spring-dark)}
.btn-spring:active{transform:translateY(1px)}

/* CONTACT ASIDE extensions (rdot = solid green dot variant; link + ticket overrides) */
.rdot{width:10px;height:10px;background:var(--c-spring);flex:none}
.aside .row a{font-size:14px;font-weight:600;color:var(--c-ink)}
.aside .row a:hover{color:var(--c-spring-dark)}
.aside .row .ticket{font-size:13px;padding:9px 16px}

/* "WHICH LINE ARE YOU ON?" split widget */
.line-split{border:2px solid var(--c-ink);margin-top:14px;background:var(--c-tile)}
.line-split .lsh{background:var(--c-ink);color:var(--c-cream);font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:11px 18px}
.line-choice{display:grid;grid-template-columns:1fr 1fr}
.lc{padding:20px 18px;display:flex;flex-direction:column;gap:9px;transition:.15s;cursor:pointer}
.lc:first-child{border-right:1px solid var(--c-ink)}
.lc:hover{background:var(--c-cream)}
.lc .lc-dot{width:20px;height:20px;border-radius:50%;border:5px solid var(--c-ink)}
.lc:first-child .lc-dot{border-color:var(--c-spring)}
.lc:last-child .lc-dot{border-color:var(--c-rust)}
.lc h4{font-family:var(--f-disp);font-size:20px;text-transform:uppercase;letter-spacing:.02em;line-height:.95;margin-top:2px}
.lc p{font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-soft)}

/* BOOK A CALL button (full-width green link-button) */
.book-ticket{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--c-spring);color:var(--c-ink);font-family:var(--f-disp);font-size:16px;letter-spacing:.04em;text-transform:uppercase;padding:16px 22px;margin-top:14px;cursor:pointer;transition:.18s;border:2px solid var(--c-spring);text-decoration:none}
.book-ticket:hover{background:var(--c-spring-dark);border-color:var(--c-spring-dark)}

/* OFFICE / AREA callout strip */
.office-strip{margin-top:14px;border:2px solid var(--c-ink);background:var(--c-tile);padding:18px 20px;border-left:7px solid var(--c-spring)}
.office-strip .os-label{font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--c-spring);margin-bottom:6px}
.office-strip .os-main{font-family:var(--f-disp);font-size:19px;text-transform:uppercase;letter-spacing:.02em;line-height:1}
.office-strip .os-sub{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-soft);margin-top:7px;line-height:1.7}

/* REASSURANCE STRIP - ink bar with spring top border */
.reassure{background:var(--c-ink);border-top:2px solid var(--c-spring)}
.reassure .wrap{display:flex;align-items:stretch;flex-wrap:wrap}
.rc{flex:1;min-width:220px;padding:20px 26px;border-right:1px solid #3a352c;display:flex;align-items:flex-start;gap:12px}
.rc:last-child{border-right:0}
.rcdot{width:7px;height:7px;background:var(--c-spring);flex:none;margin-top:4px}
.rc span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#C9C2B4;line-height:1.6}

/* SITE FOOTER - ink terminus with transit-board column structure */
.spring-foot{background:var(--c-ink);color:var(--c-cream);border-top:2px solid var(--c-spring)}
.spring-foot__grid{display:grid;grid-template-columns:1.5fr 1fr 1.3fr 1fr;gap:40px;padding:64px 0 44px}
.spring-foot__brand .roundel{margin-bottom:18px}
.spring-foot__name{font-family:var(--f-disp);font-size:26px;letter-spacing:.02em;text-transform:uppercase;line-height:1.05;margin:0 0 12px}
.spring-foot__tag{font-family:var(--f-body);font-size:14px;color:#C9C2B4;max-width:30ch;line-height:1.6;margin:0 0 18px}
.spring-foot__legal{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;line-height:1.7;color:#8A8473}
.spring-foot__label{display:flex;align-items:center;gap:9px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-spring);margin:0 0 18px}
.spring-foot__label::before{content:"";width:9px;height:9px;border-radius:50%;border:2px solid var(--c-spring);flex:none}
.spring-foot__nav{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.spring-foot a{color:#E4DCC9;text-decoration:none;font-family:var(--f-body);font-size:14.5px;transition:color .18s ease}
.spring-foot a:hover{color:var(--c-spring)}
.spring-foot__contact{font-family:var(--f-body);font-size:14.5px;line-height:1.75;color:#E4DCC9;font-style:normal}
.spring-foot__contact a{display:block}
.spring-foot__social{display:flex;gap:10px}
.spring-foot__social a{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid #3a352c;border-radius:50%;font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;color:#C9C2B4;transition:border-color .18s ease,color .18s ease}
.spring-foot__social a:hover{border-color:var(--c-spring);color:var(--c-spring)}
.spring-foot__bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;padding:22px 0 40px;border-top:1px solid #3a352c;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;color:#8A8473}
.spring-foot__bottom a{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em}
@media(max-width:860px){
  .spring-foot__grid{grid-template-columns:1fr 1fr;gap:34px;padding:48px 0 32px}
  .spring-foot__brand{grid-column:1 / -1}
}
@media(max-width:520px){.spring-foot__grid{grid-template-columns:1fr}.spring-foot__bottom{flex-direction:column;align-items:flex-start}}

/* Scroll reveal - gated behind .reveal-on so no-JS users see content immediately */
.reveal-on .rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal-on .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal-on .rv{opacity:1;transform:none;transition:none}}
