:root {
  --door-grad: var(--accent-green);
  --door-soft: var(--surface-mint);
  --tbc-bg: #ffe2c2;
  --tbc-fg: #8a3b00;
  --line: var(--gray);
  --prose-size: clamp(1.0625rem, .28vw + 1rem, 1.25rem);
  --t-h1: clamp(2rem, 4.95vw + .79rem, 5.25rem);
  --t-h1-long: clamp(2.25rem, 4.7vw + .4rem, 5.25rem);
  --t-h2: clamp(2rem, 3.05vw + 1.26rem, 4rem);
  --t-h2-title: clamp(2rem, 4vw + .6rem, 4rem);
  --t-h2s: clamp(1.75rem, 3.1vw + .65rem, 3rem);
  --t-door: clamp(2rem, 2.29vw + 1.44rem, 3.5rem);
  --t-h3: clamp(1.25rem, 1.9vw + .79rem, 2.5rem);
  --t-h4: clamp(1.375rem, .95vw + 1.14rem, 2rem);
  --t-hero-lead: clamp(1.125rem, 1vw + .85rem, 1.75rem);
  --t-quote: min(clamp(1.5rem, 1.05vw + 1.24rem, 2.25rem), calc(3svh + 1.6vw));
  --u-h2s: var(--t-h2s);
}
body[data-door="homes"] { --door-grad: var(--accent-mint); --door-soft: #e6f1f1; }
body[data-door="business"] { --door-grad: var(--accent-lime); --door-soft: #f4f6e2; }

@media (min-width: 1024px) {
  .offset-md-4 { margin-left: calc(var(--c) * 4); }
  .offset-md-5 { margin-left: calc(var(--c) * 5); }
}
.pfacts .psym-spec { --spec-row-gap: var(--space-l); }
html:not(.js) .reveal { opacity: 1; translate: 0 0; }

.u-h2s { font-weight: var(--fw-black); text-transform: uppercase; line-height: 1; font-size: var(--u-h2s); text-wrap: balance; }
.u-h1, .u-h2 { text-wrap: balance; }
.u-h1 { font-size: var(--t-h1); }
.u-h2 { font-size: var(--t-h2); }
.u-h3 { font-size: var(--t-h3); }
.u-h4 { font-size: var(--t-h4); line-height: 1.2; }
.door__title { font-size: var(--t-door); }
.arch-promise__statement { font-size: var(--t-h2s); }
.arch-promise__eyebrow { font-size: var(--t-h4); }
.quote { --quote-size: var(--t-quote); }

.section[data-theme="light"]:not(.section--flush) + .section[data-theme="light"]:not(.section--flush):not(.cta-card):not(.quote):not(.arch-promise) { padding-top: 0; }

.sec__h2 { margin: 0; }
.sec__intro { margin: var(--space-m) 0 0; }

.tbc {
  display: inline-block; padding: 1px 8px; margin: 0 2px; border-radius: 999px;
  background: var(--tbc-bg); color: var(--tbc-fg); font-size: .78em; font-weight: var(--fw-bold);
  line-height: 1.5; text-transform: none; letter-spacing: 0; vertical-align: .08em; white-space: normal;
}
.chip {
  display: inline-flex; align-items: center; width: fit-content; padding: 3px 10px; border-radius: 999px;
  background: var(--tint-4); color: var(--ink); font-size: 13px; font-weight: var(--fw-medium); line-height: 1.4; text-transform: none;
}
.chip--client { background: #d9f0d1; }
.chip--own { background: #e3e0f6; }
.chip--tbc { background: var(--tbc-bg); color: var(--tbc-fg); }
[data-theme="dark"] .chip { background: rgba(255, 255, 255, .14); color: var(--paper); }

.prose { font-size: var(--prose-size); line-height: 1.6; color: var(--body-fg); max-width: 70ch; }
.prose > :first-child { margin-top: 0; }
.prose p { margin: 0 0 1em; }
.prose h2 { font-weight: var(--fw-black); text-transform: uppercase; line-height: 1.05; font-size: clamp(1.5rem, 1.6vw + .9rem, 2.25rem); margin: 2em 0 .7em; text-wrap: balance; }
.prose h3 { font-weight: var(--fw-bold); font-size: clamp(1.125rem, .4vw + 1.02rem, 1.375rem); line-height: 1.3; margin: 1.7em 0 .5em; }
.prose h4 { font-weight: var(--fw-bold); font-size: 1em; margin: 1.4em 0 .4em; }
.prose ul, .prose ol { margin: 0 0 1em; padding-left: 1.25em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li { margin: .35em 0; padding-left: .2em; }
.prose li::marker { color: #6b6b6b; }
.prose a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.prose a:hover { text-decoration-thickness: 2px; }
.prose strong { font-weight: var(--fw-bold); }
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }
.prose .md-check { list-style: none; padding-left: 0; }
.prose .md-check li { position: relative; padding-left: 2em; }
.prose .md-check li::before { content: ""; position: absolute; left: 0; top: .3em; width: 1.1em; height: 1.1em; border: 1.5px solid var(--ink); border-radius: 4px; }
.md-note { margin: 1.4em 0; padding: var(--space-m); background: var(--door-soft); border-left: 3px solid var(--ink); }
.md-note p:last-child { margin-bottom: 0; }

.md-table { width: 100%; margin: 1.4em 0; }
.md-table table { width: 100%; border-collapse: collapse; font-size: .92em; line-height: 1.45; }
.md-table th { text-align: left; font-size: 13px; font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .02em; padding: 10px 12px 10px 0; border-bottom: 1.5px solid var(--ink); vertical-align: bottom; }
.md-table td { padding: 12px 12px 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
@media (max-width: 767px) {
  .md-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .md-table table, .md-table tbody, .md-table tr, .md-table td { display: block; width: 100%; }
  .md-table tr { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .md-table td { border: 0; padding: 3px 0; }
  .md-table td[data-label]:not([data-label=""])::before { content: attr(data-label); display: block; font-size: 12px; font-weight: var(--fw-bold); text-transform: uppercase; color: #6b6b6b; }
}
.tbl__wrap table { font-size: var(--prose-size); }
.tbl__cell { font-size: inherit; max-width: none; }
.tbl__cell > :last-child { margin-bottom: 0; }
.tbl__note { margin: 0; color: #555; max-width: 80ch; }

.pg-hero { min-height: 92svh; }
.pg-hero__title { font-size: var(--t-h1-long); max-width: 16ch; }
.pg-hero__eyebrow { margin: var(--space-m) 0 0; opacity: .9; }
.pg-hero__eyebrow + .pg-hero__title { margin-top: var(--space-s); }
.pg-hero__lead { max-width: 30ch; font-size: var(--t-hero-lead); }
.pg-hero__lead--long { max-width: 46ch; font-size: clamp(1.125rem, .75vw + .95rem, 1.6rem); line-height: 1.3; }
.pg-hero__chips { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: var(--space-m) 0 0; opacity: .85; }
.pg-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: var(--fwt-cta-gap); }
.arch-hero__crumb { flex-wrap: wrap; row-gap: 4px; }

.lt-hero { padding-top: calc(var(--section-pad) + var(--header-h)); }
.lt-hero__crumb { display: flex; flex-wrap: wrap; gap: 4px var(--space-xs); margin-bottom: var(--space-l); }
.lt-hero__crumb a:hover { text-decoration: underline; text-underline-offset: 3px; }
.lt-hero__eyebrow { margin: 0 0 var(--space-base); }
.lt-hero__title { margin: 0; }
.lt-hero__title.u-h2 { font-size: var(--t-h2-title); }
.lt-hero__lead { margin: var(--space-m) 0 0; max-width: 34ch; }
.lt-hero__meta { margin: var(--space-l) 0 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; text-transform: none; font-size: 15px; }

.ans__box { padding: var(--space-l) var(--space-m); background: var(--door-grad); }
@media (min-width: 1024px) { .ans__box { padding: var(--space-xl) var(--space-xl); } }
.ans__label { margin: 0 0 var(--space-s); font-weight: var(--fw-bold); }
.ans__text { margin: 0; font-size: clamp(1.2rem, .9vw + .95rem, 1.75rem); line-height: 1.35; font-weight: var(--fw-medium); }

.stm__row { row-gap: var(--section-gap); }
.stm__eyebrow { margin: 0; }
.stm__text { margin: 0; }
.stm__aside { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-l); }

.txt__lede { margin: 0; }
.txt__row { row-gap: var(--space-xl); }
.txt__img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
@media (min-width: 1024px) { .txt__media { position: sticky; top: calc(var(--header-h) + var(--space-m)); align-self: flex-start; } }
.txt__asidebox { padding: var(--space-m); background: var(--door-soft); font-size: 1rem; }
@media (min-width: 1024px) { .txt__aside { order: 2; } .txt__aside + .txt__body { order: 1; margin-left: 0; } }

.cards__grid { display: grid; gap: var(--space-m); grid-template-columns: 1fr; }
@media (min-width: 768px) { .cards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
  .cards__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cards__grid--4.cards__grid--img { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cards__grid--4.cards__grid--txt { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.icard { display: flex; flex-direction: column; color: var(--ink); background: var(--white); }
.icard__img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--gray); }
.icard__img img { width: 100%; height: 100%; object-fit: cover; transition: scale 1s var(--ease-enter); }
.icard:hover .icard__img img { scale: 1.04; }
.icard__body { display: flex; flex-direction: column; gap: var(--space-s); padding: var(--space-m) var(--space-base) var(--space-base); flex: 1; }
.icard__title { font-weight: var(--fw-bold); font-size: clamp(1.25rem, .8vw + 1rem, 1.75rem); line-height: 1.15; }
.icard__text { flex: 1; }
.icard .card-arrow { align-self: flex-end; }
.tcard { display: flex; flex-direction: column; gap: var(--space-s); padding: var(--space-l) var(--space-m) var(--space-m); background: var(--door-grad); color: var(--ink); min-height: 220px; }
.tcard__title { font-weight: var(--fw-bold); font-size: clamp(1.25rem, .8vw + 1rem, 1.75rem); line-height: 1.15; }
.tcard__text { flex: 1; }
.tcard .card-arrow { align-self: flex-end; }
.tcard--soon { background: var(--accent-lavender); }
.tcard__soon { align-self: flex-end; padding: 4px 10px; border: 1px solid var(--ink); border-radius: 999px; }
.tcard .chip, .icard .chip { background: rgba(255, 255, 255, .7); }

.sit__grid { display: grid; grid-template-columns: 1fr; column-gap: var(--space-2xl); }
@media (min-width: 1024px) { .sit__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sit__item { padding: var(--space-l) 0; border-top: 1px solid var(--line); }
.sit__q { margin: 0 0 var(--space-base); font-size: clamp(1.25rem, 1vw + .95rem, 1.75rem); line-height: 1.2; font-weight: var(--fw-medium); text-wrap: pretty; }
.sit__a { font-size: 1.0625rem; }
.sit__a p:last-child { margin-bottom: 0; }
.sit__link { margin-top: var(--space-base); }

.steps__list { display: grid; gap: 0 var(--space-m); grid-template-columns: 1fr; counter-reset: s; }
@media (min-width: 768px) { .steps__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .steps__list { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } }
.steps__item { display: flex; flex-direction: column; gap: var(--space-s); padding: var(--space-m) 0 var(--space-l); border-top: 1.5px solid var(--ink); }
.steps__n { font-weight: var(--fw-black); font-size: clamp(2rem, 2vw + 1.2rem, 3rem); line-height: 1; color: #b9b9b9; }
.steps__title { margin: 0; font-weight: var(--fw-bold); font-size: clamp(1.125rem, .5vw + 1rem, 1.375rem); line-height: 1.2; }
.steps__text p { margin: 0 0 .6em; }
.steps__meta { margin-top: auto; background: var(--door-grad); }

.chk { display: grid; gap: var(--space-base) var(--space-2xl); grid-template-columns: 1fr; }
@media (min-width: 768px) { .chk--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.chk li { position: relative; padding-left: 40px; font-size: var(--prose-size); line-height: 1.5; }
.chk li::before { content: ""; position: absolute; left: 0; top: .15em; width: 24px; height: 24px; border-radius: 50%; background: var(--door-grad); }
.chk li::after { content: ""; position: absolute; left: 8px; top: calc(.15em + 6px); width: 8px; height: 5px; border-left: 2px solid var(--ink); border-bottom: 2px solid var(--ink); rotate: -45deg; }
.lst__after { margin-top: var(--space-l); }

.prj__grid { display: grid; gap: var(--space-m); grid-template-columns: 1fr; }
@media (min-width: 768px) { .prj__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .prj__grid:not(.prj__grid--2) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.prj { position: relative; display: flex; flex-direction: column; background: var(--white); color: var(--ink); }
.prj[hidden] { display: none; }
.prj__img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--gray); }
.prj__img img { width: 100%; height: 100%; object-fit: cover; transition: scale 1s var(--ease-enter); }
.prj:hover .prj__img img { scale: 1.04; }
.prj__meta { display: flex; flex-direction: column; gap: 6px; padding: var(--space-base) var(--space-base) var(--space-l); }
.prj__name { font-weight: var(--fw-bold); font-size: clamp(1.125rem, .5vw + 1rem, 1.5rem); line-height: 1.2; margin-top: 4px; }
.prj__type { color: #444; }
.prj__status { color: #6b6b6b; }
.prj > .card-arrow { position: absolute; right: var(--space-base); bottom: var(--space-base); }

.gcard__grid { display: grid; gap: var(--space-m); grid-template-columns: 1fr; }
@media (min-width: 768px) { .gcard__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .gcard__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gcard { display: flex; flex-direction: column; gap: var(--space-s); padding: var(--space-l) var(--space-m) var(--space-m); min-height: 260px; color: var(--ink); background: var(--accent-mint); }
.gcard[hidden] { display: none; }
.gcard[data-side="business"] { background: var(--accent-lime); }
.gcard__title { font-weight: var(--fw-bold); font-size: clamp(1.2rem, .6vw + 1rem, 1.6rem); line-height: 1.2; text-wrap: pretty; }
.gcard__text { flex: 1; }
.gcard__foot { display: flex; justify-content: space-between; align-items: center; gap: var(--space-base); }

.cdc__card { display: grid; gap: var(--space-xl); padding: var(--space-xl) var(--space-m); background: var(--accent-lavender); color: var(--ink); }
@media (min-width: 1024px) { .cdc__card { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--space-2xl); padding: var(--space-2xl) var(--space-xl); } }
.cdc__eyebrow { display: flex; align-items: center; gap: var(--space-xs); margin: 0 0 var(--space-base); font-weight: var(--fw-bold); }
.cdc__dot { width: 10px; height: 10px; border-radius: 50%; background: #6b5bd6; box-shadow: 0 0 0 4px rgba(107, 91, 214, .2); }
.cdc__title { margin: 0 0 var(--space-m); }
.cdc__title--inline { font-weight: var(--fw-black); text-transform: uppercase; font-size: clamp(1.3rem, 1vw + 1rem, 1.9rem); line-height: 1.05; }
.cdc__text { margin: 0; }
.cdc__text p { margin: 0 0 .8em; }
.cdc__text ul { margin: 0 0 .8em; padding-left: 1.25em; list-style: disc; }
.cdc__text li { margin: .3em 0; padding-left: .2em; }
.cdc__text > :last-child { margin-bottom: 0; }
.cdc__types { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--space-m); }
.cdc__types .chip { background: rgba(255, 255, 255, .75); }
.cdc__side { display: flex; flex-direction: column; justify-content: flex-end; gap: var(--space-base); }
.cdc__btn {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-base); width: 100%;
  padding: 18px 20px; border-radius: var(--radius-btn); background: var(--ink); color: var(--paper);
  font-weight: var(--fw-bold); text-transform: uppercase; font-size: 15px; cursor: not-allowed; opacity: .92;
}
.cdc__soon { padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .18); font-size: 12px; }
.cdc__small { margin: 0; }
.cdc__card--inline { margin: 2em 0; padding: var(--space-l) var(--space-m); grid-template-columns: 1fr; gap: var(--space-m); font-size: 1rem; }
.cdc__card--inline .cdc__text { font-size: 1rem; }

.form2__card { display: grid; gap: var(--space-xl); padding: var(--space-xl) var(--space-m); background: var(--accent-lavender); color: var(--ink); }
@media (min-width: 1024px) { .form2__card { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: var(--space-2xl); padding: var(--space-2xl) var(--space-xl); } }
.form2__title { margin: 0 0 var(--space-m); }
.form2__intro { margin: 0; }
.form2__form { display: flex; flex-direction: column; gap: var(--space-l); }
.form2__progress { color: var(--ink); }
.form2__step { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-l); min-width: 0; }
.form2__step[hidden] { display: none; }
.form2__legend { padding: 0; margin-bottom: var(--space-base); font-weight: var(--fw-bold); font-size: clamp(1.25rem, 1vw + 1rem, 1.75rem); }
.form2__q { margin: 0 0 var(--space-xs); font-weight: var(--fw-bold); width: 100%; }
.form2__doors { display: grid; gap: var(--space-base); grid-template-columns: 1fr; }
@media (min-width: 768px) { .form2__doors { grid-template-columns: 1fr 1fr; } }
.door-opt { position: relative; display: block; cursor: pointer; }
.door-opt input, .opt input { position: absolute; opacity: 0; pointer-events: none; }
.door-opt span { display: flex; flex-direction: column; gap: 4px; padding: var(--space-m); border: 1.5px solid var(--line); background: var(--white); transition: border-color .3s, background .3s; }
.door-opt strong { font-size: 1.25rem; }
.door-opt em { font-style: normal; color: #555; }
.door-opt input:checked + span { border-color: var(--ink); background: var(--door-soft); }
.door-opt input:focus-visible + span, .opt input:focus-visible + span { outline: 1px dashed var(--ink); outline-offset: 3px; }
.form2__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.form2__opts[hidden], .form2__stage[hidden] { display: none; }
.form2__where { display: grid; gap: var(--space-m); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.form2__where .fld--address, .form2__where .fld--suburb { grid-column: 1 / -1; }
@media (min-width: 768px) { .form2__where { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); } .form2__where .fld--suburb { grid-column: auto; } }
.opt { position: relative; cursor: pointer; }
.opt span { display: inline-flex; padding: 10px 16px; border: 1.5px solid var(--line); border-radius: 999px; background: var(--white); font-size: 15px; transition: border-color .3s, background .3s; }
.opt input:checked + span { border-color: var(--ink); background: var(--door-soft); }
.opt--sm span { padding: 6px 14px; }
.form2__row { display: grid; gap: var(--space-m); grid-template-columns: 1fr; }
@media (min-width: 768px) { .form2__row { grid-template-columns: 1fr 1fr; } }
.fld { display: flex; flex-direction: column; gap: 6px; min-width: 0; border: 0; padding: 0; margin: 0; }
.fld > span, .fld > legend { font-size: 13px; font-weight: var(--fw-bold); text-transform: uppercase; letter-spacing: .02em; padding: 0; }
.fld--radio { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; }
.fld--radio > legend { width: 100%; margin-bottom: 6px; }
.fld input, .fld select, .fld textarea {
  width: 100%; font: inherit; font-size: 1.0625rem; color: var(--ink); background: var(--white);
  border: 1.5px solid var(--line); border-radius: 0; padding: 12px 14px;
}
.fld input:focus, .fld select:focus, .fld textarea:focus { outline: none; border-color: var(--ink); }
.form2__actions { display: flex; flex-wrap: wrap; gap: var(--space-base); align-items: center; }
.form2__btn { display: inline-flex; align-items: center; justify-content: center; width: fit-content; padding: 16px 28px; background: var(--ink); color: var(--paper); font-weight: var(--fw-bold); text-transform: uppercase; font-size: 15px; border-radius: var(--radius-btn); transition: opacity .3s; }
.form2__btn:hover { opacity: .85; }
.form2__back { padding: 16px 8px; text-transform: uppercase; font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.form2__small { margin: 0; color: #555; }
.form2__small a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.form2__consent { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: center; font-size: 14px; line-height: 1.35; cursor: pointer; }
.form2__consent input { width: 18px; height: 18px; margin: 0; accent-color: var(--ink); }

.cinfo__list { display: grid; gap: var(--space-l) var(--space-2xl); grid-template-columns: 1fr; margin: 0; }
@media (min-width: 768px) { .cinfo__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cinfo__list div { padding-top: var(--space-base); border-top: 1px solid var(--line); }
.cinfo__list dt { margin-bottom: 6px; color: #555; }
.cinfo__list dd { margin: 0; }
.cinfo__list a { text-decoration: underline; text-underline-offset: 3px; }
.cinfo__qr img { display: block; width: 192px; height: auto; }

.doors__grid { display: grid; gap: var(--space-m); grid-template-columns: 1fr; }
@media (min-width: 1024px) { .doors__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.door { display: flex; flex-direction: column; color: var(--ink); background: var(--accent-mint); }
.door[data-side="business"] { background: var(--accent-lime); }
.door__img { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.door__img img { width: 100%; height: 100%; object-fit: cover; transition: scale 1s var(--ease-enter); }
.door:hover .door__img img { scale: 1.03; }
.door__body { display: flex; flex-direction: column; gap: var(--space-base); padding: var(--space-l) var(--space-m) var(--space-l); flex: 1; }
@media (min-width: 1024px) { .door__body { padding: var(--space-xl) var(--space-l); } }
.door__title { margin: 0; }
.door__facts { display: flex; flex-direction: column; gap: 6px; margin: var(--space-xs) 0 var(--space-base); }
.door__facts li { position: relative; padding-left: 20px; }
.door__facts li::before { content: ""; position: absolute; left: 0; top: .55em; width: 8px; height: 8px; border-radius: 50%; background: var(--ink); }
.door__go { margin-top: auto; width: fit-content; }

.router .hwh__card { min-height: 170px; gap: var(--space-s); }
.router__side { opacity: .7; }
@media (min-width: 1024px) { .router__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.showcase__track { height: var(--track-h, 600lvh); }
@media (prefers-reduced-motion: reduce) { .showcase__track { height: auto; } }

.home-hero .hero__text { padding-inline: var(--page-pad); gap: var(--space-m); }
.home-hero__h1 .hero__line { white-space: normal; text-wrap: balance; }
.home-hero__lead { margin: 0; max-width: 38ch; color: var(--fg); font-size: clamp(1.125rem, 1vw + .85rem, 1.75rem); }
.home-hero__cred { margin: 0; color: var(--fg); opacity: .8; }
.home-hero .hero__ctas { margin-top: var(--space-s); }
.home-hero .hero__media { background: var(--ink) url("../video/hero-loop-poster.webp") center / cover no-repeat; }
@media (orientation: portrait) { .home-hero .hero__media { background-image: url("../video/hero-loop-mobile-poster.webp"); } }

.psym-hero__top { position: absolute; top: calc(var(--header-h) + var(--space-base)); left: 0; right: 0; z-index: 5; }
.psym-hero__crumb { display: flex; flex-wrap: wrap; gap: 4px var(--space-xs); color: var(--paper); }
.psym-hero__crumb a:hover { text-decoration: underline; text-underline-offset: 3px; }
.psym-hero__h1 { margin: 0; display: flex; flex-direction: column; align-items: center; gap: var(--space-base); color: var(--paper); }
.psym-hero__h1 .psym-hero__title { display: block; }
.psym-hero__sub { display: block; color: var(--paper); max-width: 40ch; text-wrap: balance; }
.pfacts .psym-spec__value .tbc { font-size: .7em; }

.pgal__grid { display: grid; gap: var(--space-m); grid-template-columns: 1fr; }
@media (min-width: 768px) { .pgal__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pgal__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pgal__item { margin: 0; }
.pgal__img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.pgal__cap { margin-top: var(--space-xs); color: #555; }

.art-img__img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
@media (max-width: 767px) { .art-img__img { aspect-ratio: 4 / 3; } }
.art__toc { margin-bottom: var(--space-xl); }
@media (min-width: 1024px) { .art__toc nav { position: sticky; top: calc(var(--header-h) + var(--space-m)); max-height: calc(100vh - var(--header-h) - 48px); overflow: auto; } }
.art__toc-h { margin: 0 0 var(--space-base); font-weight: var(--fw-bold); }
.art__toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; border-left: 1.5px solid var(--line); }
.art__toc a { display: block; padding-left: var(--space-base); font-size: 15px; line-height: 1.35; color: #444; }
.art__toc a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.art__toc ol { position: relative; }
.art__toc nav { padding-left: 8px; margin-left: -8px; }
.art__toc ol::before { content: ""; position: absolute; left: -1.5px; top: 0; width: 3px; height: var(--toc-fill, 0px); background: var(--ink); transition: height .35s ease; }
.art__toc li { position: relative; }
.art__toc li::before { content: ""; position: absolute; left: -6.75px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--ink); box-shadow: 0 0 0 3px var(--paper); transform: scale(0); transition: transform .25s ease; }
.art__toc li.is-current::before { transform: scale(1); }
.art__toc li.is-current a { color: var(--ink); font-weight: var(--fw-bold); }
.art__toc a { transition: color .25s; }
.art__body h2, .art__body h3 { scroll-margin-top: calc(var(--header-h) + var(--space-m)); }
@media (prefers-reduced-motion: reduce) { .art__toc ol::before, .art__toc li::before, .art__toc a { transition: none; } }
.art__body > h2:first-child { margin-top: 0; }
.art__sources-h + ul { font-size: .85em; line-height: 1.5; }
.art__sources-h + ul a { word-break: break-word; }
.site-actions__book { display: none; }
@media (max-width: 767px) {
  .site-actions { gap: 12px; }
  .site-actions__book { display: inline-flex; white-space: nowrap; }
  .oic-logo, .site-actions__book, .site-actions .btn--icon { flex-shrink: 0; }
}
@media (max-width: 359px) { .site-actions__more { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }
.art-by { display: flex; align-items: center; gap: var(--space-base); margin: var(--space-l) 0 0; }
.art-by__photo { flex: none; display: block; }
.art-by__img { display: block; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; object-position: 50% 18%; }
.art-by__text { margin: 0; display: flex; flex-direction: column; gap: 2px; font-size: 15px; line-height: 1.35; }
.art-by__name { font-weight: var(--fw-bold); }
.art-by__name a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.art-by__meta { color: #444; }
.art-author { display: grid; grid-template-columns: 72px 1fr; gap: var(--space-m); align-items: start; margin: var(--space-2xl) 0 0; padding-top: var(--space-l); border-top: 1.5px solid var(--line); }
@media (min-width: 768px) { .art-author { grid-template-columns: 112px 1fr; gap: var(--space-l); } }
.art-author .art-author__img { display: block; width: 100%; height: auto; aspect-ratio: 1; border-radius: 50%; object-fit: cover; object-position: 50% 18%; }
.art-author .art-author__body p { margin: 0; }
.art-author .art-author__eyebrow { margin-bottom: var(--space-xs); }
.art-author .art-author__name { font-size: var(--t-h4); font-weight: var(--fw-bold); line-height: 1.2; color: var(--ink); }
.art-author .art-author__role { margin-top: 4px; color: #444; }
.art-author .art-author__bio { margin-top: var(--space-s); max-width: 52ch; }
.art-author .art-author__more { display: inline-block; margin-top: var(--space-s); }
.art-note { margin: var(--space-xl) 0 0; padding: var(--space-m); background: var(--door-soft); }
.art-note .art-note__h { margin: 0 0 var(--space-xs); font-weight: var(--fw-bold); }
.art-note .art-note__text { margin: 0; color: #444; line-height: 1.5; }

/* The download box Florian approved on 19 Oct 2026 (guide-pdf-prototype/, version B): the text across the top, then
   First name, Email and the button in one row with the tick box under it. The form is one grid, so on a phone the tick
   box always comes before the button, and First name and Email always share the width equally. */
.dl__card { display: grid; gap: var(--space-l); align-items: start; padding: var(--space-xl) var(--space-m); background: var(--accent-lime); }
body[data-door="homes"] .dl__card { background: var(--accent-mint); }
@media (min-width: 1024px) { .dl__card { padding: var(--space-2xl) var(--space-xl); } }
.dl__text { max-width: 760px; }
.dl__text p { margin: 0 0 var(--space-s); }
.dl__text p:last-child { margin-bottom: 0; }
.dl__title { font-weight: var(--fw-bold); }
.dl__small { color: #555; }
.dl__small a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.dl__form { display: grid; gap: var(--space-base); grid-template-areas: "name" "email" "tick" "btn"; }
.dl__form .fld input { width: 100%; }
.dl__form > label:nth-of-type(1) { grid-area: name; }
.dl__form > label:nth-of-type(2) { grid-area: email; }
.dl__form .form2__btn { grid-area: btn; align-self: end; }
.dl__consent { grid-area: tick; display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: center; font-size: 14px; line-height: 1.35; cursor: pointer; }
.dl__consent input { width: 18px; height: 18px; margin: 0; accent-color: var(--ink); }
@media (min-width: 600px) { .dl__form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "name email" "tick tick" "btn btn"; } }
@media (min-width: 1024px) { .dl__form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .55fr); grid-template-areas: "name email btn" "tick tick tick"; } .dl__form .form2__btn { width: 100%; } }
/* The download page (also its thank-you). */
.dlp__card { display: grid; gap: var(--space-base); padding: var(--space-xl) var(--space-m); background: var(--accent-lime); }
body[data-door="homes"] .dlp__card { background: var(--accent-mint); }
@media (min-width: 1024px) { .dlp__card { padding: var(--space-2xl) var(--space-xl); } }
.dlp__card .b-3 a { color: inherit; }
.dlp__h { margin-top: var(--space-2xl); }
.dlp__next { display: grid; gap: var(--space-m); margin-top: var(--space-l); }
@media (min-width: 768px) { .dlp__next { grid-template-columns: 1fr 1fr; } }
.dlp__next > div { padding: var(--space-l) var(--space-m); background: var(--white); display: grid; gap: var(--space-s); align-content: start; }
.dlp__back { margin-top: var(--space-l); }

.flt { padding-block: 0 var(--space-xl); }
.flt__bar { display: flex; flex-wrap: wrap; gap: 8px; }
.flt__btn { padding: 10px 16px; border-radius: 999px; border: 1.5px solid var(--line); font-size: 15px; background: var(--white); }
.flt__btn[aria-pressed="true"] { border-color: var(--ink); background: var(--ink); color: var(--paper); }

.btn--pill-cta::before { background: var(--accent-green-bright); opacity: .9; }
.btn--pill-cta { color: var(--ink); }
.btn--pill[aria-current="page"]::before { opacity: .3; }
.menu__disc-sub { font-size: 14px; font-weight: var(--fw-medium); line-height: 1.3; flex: none; }
@media (max-width: 768px) { .menu__disc-sub { display: none; } }

.site-footer__about { margin: var(--space-m) 0 0; color: #cfcfcf; max-width: 32ch; }
.site-footer__h { margin: var(--space-xl) 0 var(--space-base); color: #9a9a9a; }
@media (min-width: 1024px) { .site-footer__h { margin-top: 0; } }
.site-footer .site-footer__menu { margin: 0; align-items: flex-start; gap: 10px; }
.site-footer__menu a { color: var(--paper); }
.site-footer__menu a:hover { text-decoration: underline; text-underline-offset: 3px; }
.site-footer__contact p { margin: 0; }
.site-footer__areas { color: #bdbdbd; max-width: 60ch; }
.site-footer .tbc { font-size: 12px; }
@media (min-width: 1024px) { .site-footer .site-footer__legalcol { align-items: flex-end; } }

.img-missing { display: flex; align-items: center; justify-content: center; min-height: 160px; padding: 16px; background: var(--tbc-bg); color: var(--tbc-fg); font-size: 13px; text-align: center; }

.rv[hidden] { display: none !important; }
.rv-note { position: relative; z-index: 6; margin: var(--space-m) auto 0; max-width: calc(var(--page-max) - 2 * var(--page-pad)); width: calc(100% - 2 * var(--page-pad)); padding: 12px 16px; background: #fff7c2; color: #222; border: 1px solid #e6d36b; font-size: 14px; line-height: 1.45; }
.rv-note p { margin: 4px 0 0; }
.rv-note__tag { display: inline-block; padding: 1px 8px; border-radius: 999px; background: #222; color: #fff7c2; font-size: 11px; text-transform: uppercase; font-weight: var(--fw-bold); }
.arch-hero .rv-note, .psym-hero .rv-note, .hero .rv-note { position: absolute; left: var(--page-pad); right: var(--page-pad); bottom: var(--space-base); width: auto; margin: 0; z-index: 7; }
.rv-bar { position: fixed; left: 12px; bottom: 12px; z-index: 120; display: flex; flex-wrap: wrap; gap: 6px; max-width: calc(100vw - 24px); }
.rv-bar__btn { padding: 8px 12px; border-radius: 999px; background: #fff7c2; color: #222; border: 1px solid #e6d36b; font-size: 13px; font-weight: var(--fw-bold); box-shadow: 0 4px 16px rgba(0, 0, 0, .15); }
.rv-bar__btn[aria-pressed="true"] { background: #222; color: #fff7c2; }
.rv-plan { position: fixed; left: 12px; bottom: 60px; z-index: 120; width: min(560px, calc(100vw - 24px)); max-height: 60vh; overflow: auto; padding: 16px; background: #fffdf0; color: #222; border: 1px solid #e6d36b; box-shadow: 0 10px 40px rgba(0, 0, 0, .25); font-size: 13px; }
.rv-plan__h { margin: 0 0 8px; font-weight: var(--fw-bold); text-transform: uppercase; }
.rv-plan table { border-collapse: collapse; width: 100%; }
.rv-plan th { text-align: left; vertical-align: top; padding: 4px 10px 4px 0; white-space: nowrap; }
.rv-plan td { padding: 4px 0; word-break: break-word; }

.rv-bar__btn--tbc { background: var(--tbc-bg); border-color: #f0b27a; color: var(--tbc-fg); }
.tc__tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-s); margin-bottom: var(--space-xl); }
.tc__group { margin-bottom: var(--space-2xl, 96px); }
.tc__who { margin: var(--space-xs) 0 var(--space-l); color: #555; }
.tc__list { list-style: none; margin: 0; padding: 0; }
.tc__item { display: flex; flex-direction: column; gap: var(--space-s); padding: var(--space-m) 0; border-top: 1px solid var(--line); }
.tc__q { margin: 0; max-width: 62ch; }
.tc__n { font-weight: var(--fw-bold); }
.tc__where summary { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.tc__where ul, .tc__page ul { margin: var(--space-xs) 0 0; padding-left: 1.2em; display: flex; flex-direction: column; gap: 6px; }
.tc__where a, .tc__page a { text-decoration: underline; }
.tc mark { background: var(--tbc-bg); color: var(--tbc-fg); padding: 0 4px; border-radius: 3px; }
.tc__ans { display: flex; flex-direction: column; gap: 4px; max-width: 62ch; }
.tc__ans textarea { width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: var(--white); border: 1.5px solid var(--line); padding: 10px 12px; resize: vertical; }
.tc__ans textarea:focus { outline: none; border-color: var(--ink); }
.tc__page { padding: var(--space-s) 0; border-top: 1px solid var(--line); }
.tc__page summary { cursor: pointer; }
.tc__status { color: #555; }
@media print { .rv-bar, .site-header, .menu, .tc__tools { display: none; } .tc__where, .tc__page { break-inside: avoid; } }
.rvt__wrap { overflow-x: auto; }
.rvt__table { border-collapse: collapse; font-size: 13px; line-height: 1.4; min-width: 1100px; }
.rvt__table th { text-align: left; padding: 8px; border-bottom: 2px solid var(--ink); position: sticky; top: 0; background: var(--paper); }
.rvt__table td { padding: 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.rvt__table td a { text-decoration: underline; }
.rvt__table .num { text-align: right; font-variant-numeric: tabular-nums; }
.rvt__table tr.is-flag td:last-child { background: #fff3e6; }
.rvt__tbc { display: flex; flex-direction: column; gap: 10px; margin-top: var(--space-l); }
.rvt__tbc a { text-decoration: underline; }
body[data-kind="review"] .rvt__wrap { max-width: 100%; }
