/* Briary Hub launch page (template "hub"). Loaded only on that page, after editorial.css. */
.hub-hero {background:var(--green-950);color:#edf1e7;padding:clamp(3rem,6vw,5.5rem) 0 0;overflow:hidden;position:relative}
.hub-hero::before {content:"";position:absolute;inset:auto -10% -40% 40%;height:90%;background:radial-gradient(closest-side,#c6d8ac22,transparent);pointer-events:none}
.hub-hero :focus-visible {outline-color:var(--focus)}
.hub-hero__grid {display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,5.5rem);align-items:center;position:relative}
.hub-hero__eyebrow {display:flex;align-items:center;gap:.8rem;color:var(--leaf)}
.hub-badge {display:inline-block;padding:.2rem .55rem;border-radius:999px;background:var(--leaf);color:var(--green-950);letter-spacing:.1em;font-size:.66rem;font-weight:700}
.hub-hero h1 {color:var(--white);max-width:16ch;font-size:clamp(2.5rem,4.6vw,4.6rem);line-height:1.05}
.hub-hero .lead {margin-top:1.6rem;color:#c8d6c4;max-width:54ch}
.hub-hero__actions {display:flex;flex-wrap:wrap;gap:.9rem 1rem;margin-top:2.2rem}
.ux-v2 .hub-button {background:var(--leaf);border-color:var(--leaf);color:var(--green-950)}
.ux-v2 .hub-button:hover,.ux-v2 .hub-button:focus-visible {background:var(--white);border-color:var(--white);color:var(--green-950)}
.ux-v2 .hub-hero .button--outline-light:hover {background:#ffffff14;color:var(--white);border-color:var(--leaf)}
.hub-hero__note {margin-top:1.4rem;font-size:.85rem;color:#a8bba5}

/* The illustrative plot record. */
.hub-record {margin:0}
.hub-record__card {background:var(--paper);color:var(--ink);border-radius:10px;padding:clamp(1.1rem,2vw,1.6rem);box-shadow:0 30px 60px -20px #00000070,0 0 0 1px #ffffff12;transform:rotate(-.6deg)}
.hub-record__head {display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.hub-record__head strong {display:block;font-size:1.35rem;font-weight:600;letter-spacing:-.02em}
.hub-record__head span {font-size:.8rem;color:var(--ink-soft)}
.hub-record__head em {font-style:normal;font-size:.72rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .6rem;border-radius:999px;background:var(--leaf-light);color:var(--green-800);white-space:nowrap}
.hub-record__stages {display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;list-style:none;margin:1rem 0 .4rem;padding:0;font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}
.hub-record__stages li {border-top:4px solid var(--soft-2);padding-top:.4rem}
.hub-record__stages li.is-done {border-color:var(--green-700);color:var(--green-800)}
.hub-record__stages li.is-current {border-color:var(--leaf);color:var(--ink)}
.hub-record__items {list-style:none;margin:0;padding:0}
.hub-record__items li {display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.86rem;line-height:1.35}
.hub-record__items li:last-child {border-bottom:0}
.hub-record__label small {display:block;margin-top:.15rem;font-size:.74rem;color:var(--ink-soft)}
.hub-record__dot {width:.7rem;height:.7rem;border-radius:50%;background:var(--soft-2);box-shadow:inset 0 0 0 2px #b8c4b2}
.hub-record__status {font-size:.72rem;font-weight:650;padding:.25rem .55rem;border-radius:999px;background:var(--soft);color:var(--ink-soft);white-space:nowrap}
.hub-record__items .is-done .hub-record__dot {background:var(--green-700);box-shadow:none}
.hub-record__items .is-done .hub-record__status {background:#e0eed8;color:var(--success)}
.hub-record__items .is-review .hub-record__dot {background:#d9b44a;box-shadow:none}
.hub-record__items .is-review .hub-record__status {background:#f7efd6;color:#7a5a08}
.hub-record__items .is-due .hub-record__dot {background:#c9542f;box-shadow:none}
.hub-record__items .is-due .hub-record__status {background:#fbe7df;color:#94351a}
.hub-record figcaption {margin-top:1.1rem;font-size:.76rem;color:#a8bba5;text-align:right}

.hub-promises {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);list-style:none;margin:clamp(3rem,6vw,5rem) 0 0;padding:2.2rem 0 clamp(2.5rem,5vw,4rem);border-top:1px solid #ffffff26;position:relative}
.hub-promises h2 {font-size:1.15rem;letter-spacing:-.015em;font-weight:600;color:var(--white)}
.hub-promises p {margin-top:.5rem;font-size:.93rem;line-height:1.7;color:#bccdb9;max-width:40ch}

/* Shared two-column split. */
.hub-split {display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.hub-split h2 {max-width:20ch}
.hub-prose {margin-top:1.4rem;color:var(--ink-soft);font-size:1rem;line-height:1.8;max-width:56ch}
.hub-feature-points {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4) var(--space-4);list-style:none;margin:0;padding:0}
.hub-feature-points li {border-top:1px solid var(--line);padding-top:1.1rem}
.hub-feature-points li>span {display:block;font-size:.72rem;font-weight:650;color:var(--green-700);margin-bottom:.7rem}
.hub-feature-points h3,.hub-overview__grid h3,.hub-developer__points h3 {font-size:1.12rem;letter-spacing:-.015em;font-weight:600}
.hub-feature-points p,.hub-overview__grid p {margin-top:.45rem;font-size:.93rem;line-height:1.7;color:var(--ink-soft)}

/* The journey, design to handover. */
.hub-journey {background:var(--soft);border-block:1px solid var(--line)}
.hub-journey__stages {display:grid;grid-template-columns:repeat(var(--stages,5),minmax(0,1fr));gap:1rem;list-style:none;margin:0;padding:0;counter-reset:none}
.hub-journey__stages>li {background:var(--white);border:1px solid var(--line);border-radius:8px;padding:1.4rem 1.3rem 1.5rem;position:relative}
.hub-journey__stages>li:last-child:nth-child(n+5) {background:var(--green-950);border-color:var(--green-950);color:#edf1e7}
.hub-journey__step {display:flex;align-items:center;gap:.6rem;font-size:.72rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--green-700)}
.hub-journey__step span {display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--leaf-light);color:var(--green-900);letter-spacing:0}
.hub-journey__stages>li:last-child:nth-child(n+5) .hub-journey__step {color:var(--leaf)}
.hub-journey__stages>li:last-child:nth-child(n+5) .hub-journey__step span {background:var(--leaf);color:var(--green-950)}
.hub-journey__stages h3 {margin-top:1rem;font-size:1.12rem;font-weight:600;letter-spacing:-.015em}
.hub-journey__stages ul {list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.55rem}
.hub-journey__stages ul li {position:relative;padding-left:1.15rem;font-size:.88rem;line-height:1.5;color:var(--ink-soft)}
.hub-journey__stages ul li::before {content:"";position:absolute;left:0;top:.5em;width:.45rem;height:.45rem;border-radius:50%;background:var(--green-700)}
.hub-journey__stages>li:last-child:nth-child(n+5) ul li {color:#c8d6c4}
.hub-journey__stages>li:last-child:nth-child(n+5) ul li::before {background:var(--leaf)}

/* What's new. */
.hub-spotlights__grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.hub-spotlight {border:1px solid var(--line);border-radius:8px;padding:clamp(1.4rem,2vw,2rem);background:var(--white);display:flex;flex-direction:column}
.hub-spotlight .eyebrow {margin-bottom:.8rem}
.hub-spotlight h3 {font-size:1.35rem;font-weight:550}
.hub-spotlight>p:not(.eyebrow) {margin-top:.8rem;font-size:.93rem;line-height:1.75;color:var(--ink-soft)}
.hub-spotlight ul {list-style:none;margin:1.3rem 0 0;padding:1.1rem 0 0;border-top:1px solid var(--line);display:grid;gap:.5rem}
.hub-spotlight li {position:relative;padding-left:1.5rem;font-size:.88rem;line-height:1.5}
.hub-spotlight li::before {content:"";position:absolute;left:0;top:.3em;width:.85rem;height:.5rem;border-left:2px solid var(--green-700);border-bottom:2px solid var(--green-700);transform:rotate(-45deg) scale(.8)}

/* Developers' calculator. */
.hub-developer {padding-block:var(--space-7);background:var(--leaf-light);border-block:1px solid #d3dfc6}
.hub-developer__text {margin-top:1.3rem;font-size:1.05rem;line-height:1.75;color:var(--ink-soft);max-width:54ch}
.hub-developer__points {list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.hub-developer__points li {background:var(--white);border-radius:8px;padding:1.3rem 1.5rem;border:1px solid #d3dfc6}
.hub-developer__points p {margin-top:.4rem;font-size:.93rem;line-height:1.7;color:var(--ink-soft)}

/* Across the business. */
.hub-overview__grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);list-style:none;margin:0;padding:0}
.hub-overview__grid li {border-top:3px solid var(--green-900);padding-top:1.2rem}

/* Future Homes Standard. */
.hub-fhs {background:var(--green-900);color:#edf1e7;padding-block:clamp(3rem,5vw,4.5rem)}
.hub-fhs :focus-visible {outline-color:var(--focus)}
.hub-fhs__inner {display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.hub-fhs .eyebrow {color:var(--leaf)}
.hub-fhs h2 {color:var(--white)}
.hub-fhs p:not(.eyebrow) {font-size:1rem;line-height:1.8;color:#c8d6c4;max-width:62ch}
.hub-fhs .text-link {margin-top:1.3rem;color:var(--leaf)}
.hub-fhs .text-link:hover {color:var(--white)}

/* Services behind the record. */
.hub-services__links {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2rem}
.hub-services__links a {display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:56px;padding-block:.8rem;border-bottom:1px solid var(--line);text-decoration:none;font-weight:550}
.hub-services__links a:hover {color:var(--green-700)}

/* Floating result chips around the plot record. */
.hub-record {position:relative}
.hub-chip {position:absolute;display:flex;flex-direction:column;gap:.1rem;padding:.65rem .9rem;border-radius:10px;background:var(--white);color:var(--ink);font-size:.95rem;font-weight:650;letter-spacing:-.01em;box-shadow:0 18px 40px -16px #00000080;white-space:nowrap;animation:hub-float 7s ease-in-out infinite}
.hub-chip small {font-size:.66rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--green-700)}
.hub-chip--1 {top:-2.5rem;left:-2.2rem}
.hub-chip--2 {top:-2.5rem;right:1.2rem;animation-delay:-2.3s}
.hub-chip--3 {bottom:-.4rem;left:-2.6rem;animation-delay:-4.6s;background:var(--leaf)}
@keyframes hub-float {0%,100% {transform:translateY(0)} 50% {transform:translateY(-8px)}}

/* Methods and standards strip. */
.hub-standards {background:var(--green-900);color:#c8d6c4;border-top:1px solid #ffffff1a}
.hub-standards__inner {display:flex;align-items:center;gap:1rem 2rem;padding-block:1.15rem;flex-wrap:wrap}
.hub-standards p {font-size:.68rem;font-weight:650;letter-spacing:.13em;text-transform:uppercase;color:var(--leaf);flex:none}
.hub-standards ul {display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0;padding:0}
.hub-standards li {font-size:.78rem;padding:.25rem .65rem;border:1px solid #ffffff26;border-radius:999px;white-space:nowrap}
.hub-journey-nav a {text-decoration:none}

/* Deadlines under the plot record. */
.hub-deadlines {margin-top:var(--space-6);border:1px solid var(--line);border-radius:10px;background:var(--white);padding:clamp(1.4rem,3vw,2.4rem)}
.hub-deadlines h3 {font-size:1.25rem;font-weight:600}
.hub-deadlines dl {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3rem;margin:1.2rem 0 0}
.hub-deadlines dl>div {display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line);font-size:.88rem}
.hub-deadlines dt {font-weight:600}
.hub-deadlines dd {margin:0;color:var(--ink-soft);text-align:right;flex:0 0 42%}
.hub-deadlines>p {margin-top:1rem;font-size:.8rem;color:var(--ink-soft)}

/* Roles: tabs once the script runs, stacked panels without it. */
.hub-tabs__list {display:none}
.hub-tabs.is-tabbed .hub-tabs__list {display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.hub-tabs__list button {border:1px solid var(--line);background:var(--white);padding:.6rem 1.05rem;border-radius:999px;font-size:.9rem;font-weight:600;color:var(--ink-soft)}
.hub-tabs__list button:hover {border-color:var(--green-700);color:var(--ink)}
.hub-tabs__list button[aria-selected="true"] {background:var(--green-900);border-color:var(--green-900);color:var(--white)}
.hub-tabs__panel {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,4.5rem);padding:clamp(1.6rem,3vw,2.6rem);border-radius:12px;background:var(--soft);border:1px solid var(--line)}
.hub-tabs:not(.is-tabbed) .hub-tabs__panel+.hub-tabs__panel {margin-top:1rem}
.hub-tabs__role {font-size:.72rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--green-700)}
.hub-tabs__panel h3 {margin-top:.6rem;font-size:clamp(1.4rem,2vw,1.9rem);font-weight:500}
.hub-tabs__panel>div>p:last-child {margin-top:.9rem;color:var(--ink-soft);line-height:1.75}
.hub-tabs__panel ul {list-style:none;margin:0;padding:0;display:grid;gap:.7rem;align-content:start}
.hub-tabs__panel li {position:relative;padding:.85rem 1rem .85rem 2.6rem;background:var(--white);border-radius:8px;border:1px solid var(--line);font-size:.93rem;line-height:1.5}
.hub-tabs__panel li::before {content:"";position:absolute;left:1.05rem;top:1.15rem;width:.75rem;height:.45rem;border-left:2px solid var(--green-700);border-bottom:2px solid var(--green-700);transform:rotate(-45deg)}

/* The calculation suite. */
.hub-engine {background:var(--green-950);color:#edf1e7;padding-block:var(--space-7)}
.hub-engine .eyebrow {color:var(--leaf)}
.hub-engine h2 {color:var(--white)}
.ux-v2 .hub-engine .section-deck {color:#bccdb9}
.hub-engine__grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.hub-engine__card {background:#ffffff0a;border:1px solid #ffffff1f;border-radius:10px;padding:clamp(1.3rem,2vw,1.9rem);display:flex;flex-direction:column}
.hub-engine__card.is-wide {background:linear-gradient(160deg,#c6d8ac24,#ffffff08)}
.hub-engine__kicker {font-size:.7rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--leaf)}
.hub-engine__card h3 {margin-top:.7rem;font-size:1.3rem;font-weight:550;color:var(--white)}
.hub-engine__card>p:not(.hub-engine__kicker):not(.hub-engine__standards) {margin-top:.7rem;font-size:.92rem;line-height:1.7;color:#c8d6c4}
.hub-engine__card ul {list-style:none;margin:1rem 0 1.2rem;padding:0;display:grid;gap:.4rem}
.hub-engine__card li {position:relative;padding-left:1rem;font-size:.86rem;line-height:1.5;color:#e2eadb}
.hub-engine__card li::before {content:"";position:absolute;left:0;top:.55em;width:.35rem;height:.35rem;border-radius:50%;background:var(--leaf)}
.hub-engine__standards {margin-top:auto;padding-top:1rem;border-top:1px solid #ffffff1a;font:500 .74rem/1.6 ui-monospace,"Cascadia Mono",Consolas,monospace;color:#9fb59b}
.hub-engine__note {margin-top:1.5rem;font-size:.8rem;color:#9fb59b;max-width:80ch}

/* Future Homes timeline. */
.hub-timeline {display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:1rem;list-style:none;margin:var(--space-5) 0 0;padding:0}
.hub-timeline li {position:relative;padding-top:1.6rem;border-top:2px solid #ffffff33}
.hub-timeline li::before {content:"";position:absolute;top:-.5rem;left:0;width:.9rem;height:.9rem;border-radius:50%;background:var(--leaf);box-shadow:0 0 0 4px var(--green-900)}
.hub-timeline time {font-size:.78rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--leaf)}
.hub-timeline h3 {margin-top:.4rem;font-size:1.05rem;font-weight:600;color:var(--white)}
.hub-fhs .hub-timeline p {margin-top:.4rem;font-size:.86rem;line-height:1.6}
.hub-fhs__points {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;list-style:none;margin:var(--space-5) 0 0;padding:0}
.hub-fhs__points li {background:#ffffff0d;border:1px solid #ffffff1f;border-radius:10px;padding:1.3rem 1.4rem}
.hub-fhs__points h3 {font-size:1.08rem;font-weight:600;color:var(--white)}
.hub-fhs .hub-fhs__points p {margin-top:.45rem;font-size:.9rem;line-height:1.7}

/* Capability index. */
.hub-index__controls {display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.2rem;margin-bottom:1.6rem}
.hub-index__search {flex:1 1 320px;max-width:520px}
.hub-index__search input {width:100%;min-height:50px;padding:.7rem 1rem;border:1px solid var(--line);background:var(--white);font-size:.95rem}
.hub-index__filters {display:flex;flex-wrap:wrap;gap:.4rem}
.hub-index__filters button {border:1px solid var(--line);background:var(--white);padding:.5rem .9rem;border-radius:999px;font-size:.84rem;font-weight:600;color:var(--ink-soft)}
.hub-index__filters button[aria-pressed="true"] {background:var(--green-900);border-color:var(--green-900);color:var(--white)}
.hub-index__count {margin-left:auto;font-size:.84rem;color:var(--ink-soft)}
.hub-index:not(.is-searchable) .hub-index__search,.hub-index:not(.is-searchable) .hub-index__filters,.hub-index:not(.is-searchable) .hub-index__count {display:none}
.hub-index__groups {columns:3 320px;column-gap:1.5rem}
.hub-index__group {break-inside:avoid;margin-bottom:1.5rem;border-top:3px solid var(--green-900);padding-top:1rem}
.hub-index__group h3 {font-size:1.1rem;font-weight:600}
.hub-index__group ul {list-style:none;margin:.7rem 0 0;padding:0}
.hub-index__group li {padding:.6rem 0;border-bottom:1px solid var(--line)}
.hub-index__group li strong {display:block;font-size:.92rem;font-weight:600}
.hub-index__group li span {display:block;margin-top:.15rem;font-size:.84rem;line-height:1.55;color:var(--ink-soft)}
.hub-index__empty {padding:1.5rem;border:1px dashed var(--line);border-radius:8px;color:var(--ink-soft)}

.hub-trust {background:var(--soft);border-top:1px solid var(--line)}

@media(max-width:1180px) {
  .hub-journey__stages {grid-template-columns:repeat(3,minmax(0,1fr))}
  .hub-engine__grid,.hub-fhs__points {grid-template-columns:repeat(2,minmax(0,1fr))}
  .hub-deadlines dl {grid-template-columns:repeat(2,minmax(0,1fr))}
  .hub-chip--1 {left:-.6rem}.hub-chip--3 {left:-.8rem}
  .hub-spotlights__grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:960px) {
  .hub-hero__grid,.hub-split,.hub-fhs__inner,.hub-tabs__panel {grid-template-columns:1fr}
  .hub-timeline {grid-auto-flow:row;grid-template-columns:1fr 1fr;row-gap:2rem}
  .hub-record {max-width:560px}
  .hub-promises,.hub-overview__grid {grid-template-columns:1fr;gap:var(--space-3)}
}
@media(max-width:760px) {
  .hub-journey__stages,.hub-spotlights__grid,.hub-feature-points,.hub-services__links {grid-template-columns:1fr}
  .hub-record__card {transform:none}
  .hub-record__items li {grid-template-columns:auto 1fr;}
  .hub-record__status {grid-column:2;justify-self:start}
  .hub-engine__grid,.hub-fhs__points,.hub-deadlines dl,.hub-timeline {grid-template-columns:1fr}
  .hub-chip {display:none}
  .hub-index__count {margin-left:0}
}
@media(prefers-reduced-motion:reduce) {.hub-record__card {transform:none}.hub-chip {animation:none}}
