
/* Brand palette derived from the supplied charcoal and orange logo. */
:root {
  --brand-orange: #ff7900;
  --brand-orange-soft: #ffc18a;
  --brand-orange-dark: #a34100;
  --brand-charcoal: #1d2526;
  --g: var(--brand-charcoal);
  --m: var(--brand-orange-dark);
  --bone: #faf5ed;
  --cream: #fffcf6;
  --surface: #efe5d7;
  --ink: #1d2526;
  --mut: #53595a;
  --walnut: #30393a;
  --line: #c9bbae;
  --pk: #ffdab7;
  --focus-ring: 3px solid #a34100;
}

/* Consultation entry and the shared editorial collection. */
.site-header .header-consultation { justify-content: center; padding: .8rem 1rem; background: #ff7900; color: #172021; border: 1px solid #ff7900; font: 750 .72rem/1.4 var(--sans); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; white-space: nowrap; }
.site-header .header-consultation:hover { background: #1b2425; color: #fff; border-color: #1b2425; text-decoration: none; }
.blog-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; }
.blog-card { background: #fff; border: 1px solid #bec7c3; min-width: 0; }
.blog-card > a { display: block; height: 100%; color: #1b2425; text-decoration: none; }
.blog-card figure { position: relative; overflow: hidden; margin: 0; }
.blog-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.blog-card figcaption { position: absolute; right: .75rem; bottom: .75rem; background: #1b2425e6; color: #fff; padding: .3rem .5rem; font-size: .65rem; }
.blog-card a > div { padding: 1.5rem; }
.blog-card h3 { font: clamp(1.65rem,3vw,2.5rem)/1.1 var(--se); margin-bottom: .9rem; }
.blog-card a:hover h3 { text-decoration: underline; text-underline-offset: .2em; }
.blog-card .text-link { font-size: .8rem; }
.consultation-is-open { overflow: hidden; }
#consultation-dialog { width: min(940px,92vw); max-width: none; max-height: 90svh; padding: 0; border: 1px solid #ff7900; color: #1b2425; background: #fff; overflow: auto; box-shadow: 0 30px 100px #0006; }
#consultation-dialog::backdrop { background: #0e191cbd; }
.consultation-layout { display: grid; grid-template-columns: 38% 1fr; }
.consultation-visual { position: relative; min-height: 100%; background: #1b2425; overflow: hidden; }
.consultation-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.consultation-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,#10191bea,transparent 90%); }
.consultation-visual > div { position: absolute; z-index: 1; bottom: 2rem; left: 1.8rem; right: 1.8rem; }
.consultation-visual p { color: #fff; font: 2rem/1.1 var(--se); }
.consultation-visual span { color: #ffd0a6; font: .65rem/1.5 var(--sans); text-transform: uppercase; letter-spacing: .08em; }
.consultation-copy { padding: 2.8rem 2.5rem 2rem; }
.consultation-copy h2 { font-size: clamp(2rem,4vw,3rem); line-height: 1.04; margin-bottom: 1rem; }
.consultation-copy > p { font-size: .9rem; line-height: 1.65; }
.consultation-copy > .eyebrow { font-size: .65rem; color: #923900; }
.consultation-copy label { display: block; font: 700 .8rem/1.5 var(--sans); margin-bottom: .5rem; }
.consultation-copy select { display: block; width: 100%; min-height: 46px; border: 1px solid #7d8a85; background: #fff; padding: .7rem; color: #1b2425; font: .9rem/1.5 var(--sans); }
.consultation-checklist { margin-block: 1.2rem; padding: 1rem; border-left: 3px solid #ff7900; background: #f1f3ef; }
.consultation-checklist h3 { font: 700 .8rem/1.5 var(--sans); margin-bottom: .3rem; }
.consultation-checklist p { font-size: .8rem; margin: 0; }
.consultation-copy .actions { gap: .8rem; }
.consultation-copy .actions .btn { font-size: .78rem; }
.consultation-copy .text-link { font-size: .78rem; }
.consultation-copy .consultation-status { font-size: .73rem; color: #505959; margin: 1.2rem 0 0; }
.consultation-close { position: absolute; z-index: 3; top: .6rem; right: .6rem; min-width: 44px; min-height: 44px; border: 1px solid #a5b0aa; background: #fff; color: #1b2425; font: 1.8rem/1 var(--sans); cursor: pointer; }
@media (max-width:1100px) {
  .site-header > nav { flex-wrap: wrap; padding-block: .7rem; }
  .site-header .nav-links { width: 100%; justify-content: space-between; }
}
@media (max-width:650px) {
  .blog-grid { grid-template-columns: 1fr; gap: 1.3rem; }
  .consultation-layout { grid-template-columns: 1fr; }
  .consultation-visual { display: none; }
  .consultation-copy { padding: 3.4rem 1.3rem 1.4rem; }
  .consultation-copy h2 { font-size: 2.25rem; }
  .site-header .header-consultation { margin-top: .25rem; }
}
.site-header { border-bottom-color: #d6c7b9; }
.logo i { color: var(--brand-orange-dark); }
.site-footer { background: var(--brand-charcoal); border-top-color: var(--brand-orange); }
.notification-strip { background: var(--brand-charcoal); }
.notification-label,
.notification-strip a:hover .notification-link,
.site-footer a:hover { color: var(--brand-orange-soft); }
.notification-strip a:focus-visible, .site-footer :focus-visible,
.lab-section :focus-visible { outline-color: var(--brand-orange-soft); }
.btn, .btn.sm { background: var(--brand-orange); border-color: var(--brand-orange); color: #1d2526; }
.btn:hover, .btn.sm:hover { background: #e76a00; border-color: #e76a00; color: #172021; }
.btn.o { background: transparent; border-color: var(--brand-charcoal); color: var(--brand-charcoal); }
.btn.o:hover { background: var(--brand-charcoal); border-color: var(--brand-charcoal); color: #fff5e8; }
.btn.y { background: var(--brand-orange); color: var(--brand-charcoal); }
.text-link:hover { color: var(--brand-orange-dark); }
.skip-link { background: var(--brand-charcoal); color: var(--cream); }
.catalog-card {
  --plate: #ffe1c1;
  --plate-ink: #713100;
  --plate-line: #773a1725;
}
.catalog-card--olive { --plate: #dce0df; --plate-ink: #253536; --plate-line: #25353624; }
.catalog-card--slate { --plate: #cdd5d6; --plate-ink: #253536; --plate-line: #25353624; }
.catalog-card--clay { --plate: #ffd3aa; --plate-ink: #713100; --plate-line: #71310024; }
.catalog-card--walnut { --plate: #e2cbb6; --plate-ink: #51351d; --plate-line: #51351d24; }
.catalog-card-action > span { color: #1d2526; background: #ffc18a; }
.catalog-card-link:is(:hover,:focus-visible) .catalog-card-action > span { background: #1d2526; color: #fff5e8; }
[data-drawing="plan"] { --intro-tint: #eee7dc; }
[data-drawing="elevation"] { --intro-tint: #f3e2d1; }
[data-drawing="section"] { --intro-tint: #e5e8e6; }
.footer-drawing { color: #ffbd83; border-color: #ffbd8359; background: radial-gradient(ellipse at 80% 50%,#374244,#222c2d 71%); }
.footer-drawing-copy p { color: #fff4e6; }
.spatial-model { color: #ffbd83; }
.spatial-model-floor { background-color: #3b4140e0; }
.spatial-model-volume .spatial-model-wall--back { background: #253032e8; }
.spatial-model-volume .spatial-model-wall--side { background: repeating-linear-gradient(90deg,#ffb77e69 0 1px,#3d4543ed 1px 8px); }
.spatial-model-volume .spatial-model-ceiling { color: #ffd4ac; }
.spatial-model-ceiling span { background: #ffb16e; box-shadow: 0 0 11px #ff790080; }
.editorial-project--featured, .folio-cover { background: var(--brand-charcoal); color: #fff4e6; }
.folio-cover figcaption { color: #fff4e6; }
.editorial-project--featured h3, .editorial-project--featured .eyebrow { color: #fff4e6; }
.editorial-project--featured :focus-visible { outline-color: #ffc18a; }
.editorial-brief { border-top-color: var(--brand-orange); }
.spatial-hero .hero-copy h1 em { color: #ffc18a; }
.spatial-hero .hero-copy .btn { background: var(--brand-orange); border-color: var(--brand-orange); color: #1d2526; }
.spatial-hero .hero-copy .btn:hover { background: #ffb16e; border-color: #ffb16e; }
.spatial-hero .hero-copy .btn.o { background: #1d252680; color: #fff4e6; border-color: #fff4e6b3; }
.spatial-hero .hero-copy .btn.o:hover { background: #fff4e6; color: #1d2526; }
.spatial-hero .index-marker, .hero-model-plate,
.hero-scene figcaption span { color: #ffc18a; }
.spatial-hero .hero-model-plate { background: #1d2526e6; border-color: #ffbd8380; }
.spatial-hero :focus-visible { outline-color: #ffc18a; }
.studio-index { background: #222b2c; border-color: #ffbd8349; }
.studio-index a, .studio-index a:last-child { border-color: #ffbd8349; }
.studio-index a:hover { background: #394344; }
.studio-index a span { color: #ffc18a; }
#material-lab { background: #202a2b; }
#material-lab .lab-copy .eyebrow, .lab-views button .ui-icon { color: #ffc18a; }
.lab-views button:hover, .lab-views button[aria-pressed="true"] { background: #3b4546; }
.lab-views button[aria-pressed="true"] { box-shadow: inset 3px 0 var(--brand-orange); }
.lab-section .chip[aria-pressed="true"] { border-color: var(--brand-orange); }
.project-showcase { background: #1d2526; }
.showcase-tabs button { background: #1d2526ed; }
.showcase-tab-meta, .showcase-heading .eyebrow,
.showcase-panel .eyebrow, .showcase-fallback .eyebrow,
.showcase-footer .text-link { color: #ffc18a; }
.showcase-tabs button[aria-selected="true"] { background: #fff1df; color: #1d2526; box-shadow: inset 0 4px var(--brand-orange); }
.showcase-tabs button[aria-selected="true"] .showcase-tab-meta { color: #964000; }
.showcase-panel .btn { background: var(--brand-orange); border-color: var(--brand-orange); color: #1d2526; }
.showcase-panel .btn:hover { background: #ffc18a; border-color: #ffc18a; color: #1d2526; }
@media (max-width:760px) {
  .studio-index a:nth-child(-n+2),.studio-index a:nth-child(even) { border-color: #ffbd8349; }
}

/* Studio first, institute second. Shared across both divisions. */
.division-heading { display: grid; grid-template-columns: 1.25fr 1fr; gap: 3rem; align-items: end; margin-bottom: 2.2rem; }
.division-heading h2 { margin-bottom: 0; }
.division-heading > p { max-width: 44ch; margin-bottom: .35rem; }
.service-preview-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; margin-bottom: 2rem; }
.service-preview { min-width: 0; background: #fff; border: 1px solid var(--line); }
.service-preview > a { display: block; height: 100%; color: var(--ink); text-decoration: none; }
.service-preview figure { position: relative; aspect-ratio: 4/3; overflow: hidden; margin: 0; }
.service-preview figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.service-preview figcaption { position: absolute; inset: auto .75rem .75rem auto; padding: .3rem .55rem; background: #1b2425e6; color: #fff; font-size: .65rem; letter-spacing: .05em; }
.service-preview-copy { padding: 1.6rem; border-top: 3px solid var(--brand-orange); }
.service-preview-copy > .ui-icon { width: 30px; height: 30px; color: #a13d00; margin-bottom: .8rem; }
.service-preview-copy h3 { font-size: clamp(1.5rem,2.3vw,2rem); line-height: 1.12; margin-bottom: .8rem; }
.service-preview-copy .text-link { margin-top: .6rem; font-size: .8rem; }
.service-preview > a:hover img { transform: scale(1.045); }
.service-preview > a:focus-visible { outline-offset: 5px; }
.studio-process { background: #fff; border-block: 1px solid var(--line); }
.process-grid { list-style: none; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); padding: 0; margin: 0; border-top: 1px solid var(--line); }
.process-grid li { position: relative; padding: 2rem 1.5rem 1rem 0; min-width: 0; }
.process-grid li + li { border-left: 1px solid var(--line); padding-left: 1.5rem; }
.process-grid .ui-icon { width: 36px; height: 36px; color: #a13d00; margin-bottom: 1.25rem; }
.process-number { position: absolute; right: 1.2rem; top: 2rem; color: #6a7372; font-size: .72rem; letter-spacing: .1em; }
.process-grid h3 { font-size: 1.65rem; line-height: 1.15; }
.process-grid p { font-size: .93rem; line-height: 1.7; }
.scope-note { font-size: .85rem; color: #505959; max-width: 85ch; margin-top: 1.25rem; }
.institute-gateway { border-top: 6px solid var(--brand-orange); background: #f2f3ef; }
.institute-gateway .hero-plate { margin: 0; }
.home-programs { border-top: 1px solid var(--line); }
.service-guide { background: #f7f7f3; }
.service-guide .actions { margin-top: 2rem; }
.service-shortcuts { display: flex; flex-wrap: wrap; gap: .65rem; margin-bottom: 2.5rem; }
.service-shortcuts a { padding: .55rem .85rem; border: 1px solid var(--line); color: var(--ink); background: white; font-size: .82rem; text-decoration: none; }
.service-shortcuts a:hover { border-color: #a13d00; text-decoration: underline; }
@media (max-width:900px) {
  .process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .process-grid li { border-bottom: 1px solid var(--line); }
  .process-grid li:nth-child(3) { border-left: 0; padding-left: 0; }
  .service-preview-copy { padding: 1.1rem; }
}
@media (max-width:760px) {
  .division-heading { grid-template-columns: 1fr; gap: 1rem; }
  .service-preview-grid { grid-template-columns: 1fr; }
  .service-preview-copy { padding: 1.5rem; }
}
@media (max-width:420px) {
  .process-grid { grid-template-columns: 1fr; }
  .process-grid li + li { border-left: 0; padding-left: 0; }
}
@media (prefers-reduced-motion:reduce) {
  .service-preview figure img { transition: none; }
  .service-preview > a:hover img { transform: none; }
}

/* Browsable collections and architectural service stories. */
.site-header > nav { position: relative; }
.site-header .nav-links { gap: clamp(.2rem,1vw,1rem); }
.site-header .nav-item { display: flex; align-items: center; }
.nav-disclosure summary { display: grid; place-items: center; min-width: 32px; min-height: 44px; cursor: pointer; list-style: none; color: #a13d00; }
.nav-disclosure summary::-webkit-details-marker { display: none; }
.nav-disclosure { border: 0; padding: 0; margin: 0; }
.nav-disclosure > summary { padding: 0; border: 0; }
.site-header .nav-disclosure > summary { display: flex; gap: .5rem; padding: .35rem .45rem; font: 650 .86rem/1.4 var(--sans); color: #1b2425; }
.site-header .nav-disclosure > summary .ui-icon { color: #a13d00; }
.site-header .nav-disclosure > summary[aria-current] > span { color: #a13d00; text-decoration: underline; text-underline-offset: .36em; }
.nav-disclosure > summary::after, .nav-disclosure[open] > summary::after,
.concept-choice > summary::after, .concept-choice[open] > summary::after { content: none; }
.nav-mega .nav-mega-title { color: #1b2425; }
.nav-disclosure summary .ui-icon { width: 15px; height: 15px; }
.nav-disclosure[open] > summary .ui-icon { transform: rotate(180deg); }
.nav-mega { z-index: 90; }
.nav-disclosure[open] > summary { background: #fff0e2; }
.nav-mega { position: absolute; inset: 100% 0 auto; display: grid; grid-template-columns: 1fr 280px; padding: 2rem; gap: 2rem; background: #fff; color: #1b2425; border: 1px solid var(--line); border-top: 3px solid #ff7900; box-shadow: 0 24px 48px #101b1c30; max-height: min(75vh,600px); overflow: auto; }
.nav-mega-title { font: 2rem/1.15 var(--se); margin-bottom: 1.2rem; }
.nav-mega-links { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: .3rem 1.2rem; padding: 0; }
.site-header .nav-mega-links a { display: grid; grid-template-columns: 24px 1fr 16px; gap: .65rem; min-height: 60px; border-bottom: 1px solid #dce0dd; font-size: .84rem; padding: .65rem 0; }
.nav-mega-links .ui-icon { color: #a13d00; width: 21px; height: 21px; }
.nav-mega-links .ui-icon:last-child { width: 15px; }
.site-header .nav-overview { display: inline-flex; gap: .7rem; margin-top: 1rem; color: #923900; }
.nav-mega-feature { background: #1b2425; color: #fff; padding: 0 0 1rem; }
.nav-mega-feature img { width: 100%; height: 145px; object-fit: cover; }
.nav-mega-feature p { padding: 1rem 1.1rem 0; font-family: var(--se); font-size: 1.35rem; line-height: 1.2; margin: 0 0 .4rem; color: #fff; }
.site-header .nav-mega-feature a { color: #ffb570; padding-inline: 1.1rem; gap: .5rem; font-size: .77rem; }
.nav-mega-feature > span { display: block; padding-inline: 1.1rem; color: #dce2e1; font-size: .65rem; }
.explorer-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.5rem; }
.explorer-filters button { background: transparent; border: 1px solid #b7c0bc; padding: .7rem 1rem; border-radius: 0; color: #1b2425; font: 650 .82rem/1.4 var(--sans); cursor: pointer; }
.explorer-filters button[aria-pressed="true"] { background: #1b2425; color: #fff; border-color: #1b2425; box-shadow: inset 0 -3px #ff7900; }
.experience-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.3rem; margin-bottom: 2rem; }
.experience-card { position: relative; min-width: 0; background: #1b2425; color: #fff; overflow: hidden; }
.experience-card[hidden] { display: none; }
.experience-card > a { display: block; position: relative; height: 100%; color: inherit; text-decoration: none; }
.experience-card figure { margin: 0; height: clamp(340px,33vw,460px); overflow: hidden; }
.experience-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.experience-card figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,#10191bf5 0%,#10191baa 27%,transparent 80%); pointer-events: none; }
.experience-card figcaption { position: absolute; top: .8rem; right: .8rem; z-index: 1; font-size: .62rem; padding: .25rem .5rem; background: #1b2425d9; color: #fff; }
.experience-card-copy { position: absolute; inset: auto 1.5rem 1.5rem; z-index: 1; }
.experience-number { display: flex; justify-content: space-between; align-items: center; font-size: .68rem; letter-spacing: .12em; color: #ffb570; margin-bottom: .7rem; }
.experience-card h3 { font-size: clamp(1.7rem,2.5vw,2.3rem); line-height: 1.06; color: white; margin-bottom: .7rem; }
.experience-card p { font-size: .84rem; line-height: 1.5; margin-bottom: 1rem; color: #edf0ec; max-width: 38ch; }
.experience-arrow { display: flex; gap: .6rem; align-items: center; color: #ffb570; font-size: .76rem; font-weight: 700; }
.experience-card > a:hover img { transform: scale(1.06); }
.experience-card > a:focus-visible { outline: 3px solid #ff7900; outline-offset: -5px; }
.concept-room { background: #1b2425; color: #edf0ec; }
.concept-room .eyebrow { color: #ffb570; }
.concept-room h2 { color: #fff; }
.concept-room p:not(.eyebrow), .concept-room .material-swatches li { color: #dce2df; }
.concept-room .concept-choice-body > p { margin-top: 0; }
.concept-room .concept-choice-body ul { padding-left: 0; }
.concept-layout { display: grid; grid-template-columns: minmax(0,4fr) minmax(0,7fr); gap: 2rem; align-items: start; }
.concept-instruction { color: #c2ccca; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.concept-choice { border-top: 1px solid #65716d; }
.concept-choice:last-child { border-bottom: 1px solid #65716d; }
.concept-choice summary { display: flex; gap: 1rem; align-items: center; cursor: pointer; list-style: none; min-height: 76px; font: 1.65rem/1.1 var(--se); padding-block: 1rem; }
.concept-choice summary::-webkit-details-marker { display: none; }
.concept-choice summary > span { font: .68rem/1 var(--sans); color: #ffb570; }
.concept-choice summary .ui-icon { margin-left: auto; width: 18px; height: 18px; }
.concept-choice[open] summary { color: #ffb570; }
.concept-choice-body { padding: 0 0 1.4rem 2rem; }
.concept-choice-body p { font-size: .88rem; }
.concept-choice-body .text-link { color: #ffb570; font-size: .8rem; }
.material-swatches { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .7rem; padding: 0; list-style: none; margin: 1rem 0; }
.material-swatches li { font-size: .65rem; line-height: 1.5; }
.material-swatch { display: block; height: 55px; margin-bottom: .5rem; border: 1px solid #ffffff40; box-shadow: 4px 4px 0 #0d1415; transform: skewY(-4deg); }
.swatch-0 { background: repeating-linear-gradient(100deg,#875b37 0 2px,#b38863 2px 8px,#946b45 8px 10px); }
.swatch-1 { background: linear-gradient(135deg,#dad6c9 10%,#bebaa9 35%,#e6e1d8 38%,#bdb7a7 60%,#d5cfbe); }
.swatch-2 { background: repeating-linear-gradient(0deg,#344d61 0 1px,#42596c 1px 3px); }
.material-swatches--bold .swatch-0 { background: #ae6043; }
.material-swatches--bold .swatch-1 { background: repeating-linear-gradient(100deg,#382f28 0 2px,#605044 2px 8px); }
.material-swatches--bold .swatch-2 { background: #9b9385; }
.material-swatches--light .swatch-0 { background: repeating-linear-gradient(0deg,#ddd5c3 0 1px,#f1eadc 1px 3px); }
.material-swatches--light .swatch-1 { background: #bfa98d; }
.material-swatches--light .swatch-2 { background: repeating-linear-gradient(100deg,#805f3c 0 2px,#a77f51 2px 8px); }
.concept-frame { margin: 0; }
.concept-frame img { width: 100%; height: clamp(330px,37vw,520px); object-fit: cover; }
.concept-frame figcaption { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: space-between; padding-block: .8rem; font-size: .7rem; color: #dce2df; border-bottom: 1px solid #65716d; }
.service-detail-hero { padding: 0; background: #1b2425; color: #fff; }
[data-drawing] .service-detail-hero { background-image: none; }
.service-detail-hero > .editorial-spread { width: 100%; display: grid; grid-template-columns: 1fr; gap: 0; }
.service-detail-hero .editorial-copy { grid-area: 1/1; z-index: 2; width: min(1180px,90%); margin: auto; padding-block: 4rem; }
.service-detail-hero .editorial-copy h1 { color: #fff; max-width: 13ch; font-size: clamp(3rem,6.8vw,6.5rem); }
.service-detail-hero .eyebrow { color: #ffb570; }
.service-detail-hero .lead-p { max-width: 38ch; color: #fff; }
.service-detail-hero .editorial-frame { grid-area: 1/1; position: relative; margin: 0; min-height: 620px; }
.service-detail-hero .editorial-frame img { position: absolute; inset: 0; height: 100%; width: 100%; object-fit: cover; }
.service-detail-hero .editorial-frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,#10191bf5 0%,#10191bd9 33%,#10191b33 72%); }
.service-detail-hero .editorial-frame figcaption { position: absolute; right: 5%; bottom: 1rem; z-index: 2; color: #fff; border: 0; max-width: 90%; }
.service-detail-hero .btn.o { color: #fff; border-color: #fff; background: #1b24255e; }
.service-detail-hero .btn.o:hover { color: #1b2425; background: #fff; }
.service-jump { background: #fff; border-bottom: 1px solid var(--line); }
.service-jump .w { display: flex; flex-wrap: wrap; gap: .3rem 2rem; }
.service-jump a { display: flex; align-items: center; gap: .5rem; min-height: 60px; color: #1b2425; font-size: .8rem; text-decoration: none; border-bottom: 2px solid transparent; }
.service-jump a:hover { border-color: #ff7900; }
.story-layout { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,4fr); gap: 3rem; align-items: center; }
.story-render { margin: 0; }
.story-render img { width: 100%; aspect-ratio: 5/4; object-fit: cover; }
.story-render figcaption { font-size: .7rem; margin-top: .6rem; color: #505959; }
.story-notes h3 { font-size: 2.6rem; line-height: 1.1; }
.story-notes ol { list-style: none; padding: 0; margin-block: 1.5rem; }
.story-notes li { display: flex; gap: 1rem; padding-block: .8rem; border-bottom: 1px solid var(--line); font-size: .85rem; }
.story-notes li span { color: #a13d00; font-size: .7rem; padding-top: .2rem; }
.related-services { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--line); }
.related-services a { display: flex; gap: 1rem; justify-content: space-between; align-items: center; padding: 1.3rem; color: #1b2425; border-bottom: 1px solid var(--line); font: 1.6rem/1.2 var(--se); }
@media (max-width:1050px) {
  .site-header .brand-logo { width: 185px; }
  .site-header .nav-links { gap: .1rem; }
  .nav-mega { grid-template-columns: 1fr 230px; gap: 1.2rem; padding: 1.4rem; }
}
@media (max-width:900px) {
  .site-header .nav-links { width: 100%; justify-content: space-between; }
  .nav-mega { grid-template-columns: 1fr; max-height: 65vh; }
  .nav-mega-feature { display: none; }
  .experience-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .concept-layout { grid-template-columns: minmax(0,1fr) minmax(0,1.3fr); gap: 1.2rem; }
  .story-layout { gap: 1.5rem; }
}
@media (max-width:650px) {
  .site-header .nav-links { justify-content: start; gap: .2rem .4rem; }
  .nav-mega { padding: 1rem; max-height: 65vh; }
  .nav-mega-title { font-size: 1.6rem; }
  .nav-mega-links { grid-template-columns: 1fr; }
  .site-header .nav-mega-links a { font-size: .84rem; min-height: 50px; }
  .concept-layout, .story-layout { grid-template-columns: 1fr; }
  .concept-choice summary { min-height: 68px; }
  .service-detail-hero .editorial-frame { min-height: 600px; }
  .service-detail-hero .editorial-frame::after { background: linear-gradient(90deg,#10191bf0,#10191ba8); }
  .service-detail-hero .editorial-copy { padding-block: 3rem 5rem; }
  .service-detail-hero .editorial-copy h1 { font-size: clamp(2.8rem,11vw,4.2rem); }
  .service-detail-hero .actions { align-items: start; }
  .service-jump .w { gap: 0 1.4rem; }
  .service-jump a { min-height: 48px; font-size: .76rem; }
  .related-services { grid-template-columns: 1fr; }
}
@media (max-width:500px) {
  .experience-grid { grid-template-columns: 1fr; }
  .experience-card figure { height: 390px; }
  .experience-card-copy { inset-inline: 1.4rem; }
}
@media (prefers-reduced-motion:no-preference) {
  .experience-card { transition: transform .35s ease, box-shadow .35s ease; }
  @media (hover:hover) { .experience-card:hover { transform: perspective(1200px) translateY(-5px) rotateX(1deg); box-shadow: 0 18px 35px #10191b30; } }
  .concept-frame:not([hidden]) { animation: concept-arrive .45s ease-out both; }
}
@keyframes concept-arrive { from { opacity: .6; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion:reduce) { .experience-card img { transition: none; } .experience-card > a:hover img { transform: none; } }


/* Logo-led identity: neutral architecture, charcoal structure, orange energy. */
:root {
  --brand-orange: #ff7900;
  --brand-orange-soft: #ffb570;
  --brand-orange-dark: #a13d00;
  --brand-charcoal: #1b2425;
  --g: var(--brand-charcoal);
  --m: var(--brand-orange-dark);
  --bone: #f7f7f3;
  --cream: #ffffff;
  --surface: #e9ece9;
  --ink: var(--brand-charcoal);
  --mut: #505959;
  --walnut: #303a3b;
  --line: #bfc7c5;
}
.site-header { background: #fff; border-bottom: 2px solid var(--brand-orange); }
.site-header > nav { min-height: 98px; }
.site-header .logo, .site-footer .footer-col .logo {
  display: inline-flex;
  align-items: center;
  padding: 0;
  line-height: 1;
  text-decoration: none;
}
.site-header .brand-logo { width: 218px; height: auto; display: block; }
.site-footer .footer-col .logo {
  background: #fff;
  border-radius: 4px;
  padding: 12px 14px;
  margin-bottom: .9rem;
  max-width: 100%;
}
.site-footer .brand-logo { display: block; width: 232px; max-width: 100%; height: auto; }
.site-header .nav-links a[aria-current] {
  color: var(--brand-orange-dark);
  text-decoration-color: var(--brand-orange);
  text-decoration-thickness: 2px;
}
.notification-strip { border-bottom: 1px solid #ff79006b; }
.notification-label { color: #ffb570; }
.surface, .bg-light, .editorial-gallery { background: var(--surface); }
.editorial-cover { background-color: var(--bone); }
[data-drawing="plan"], [data-drawing="elevation"], [data-drawing="section"] { --intro-tint: #e6ece9; }
[data-drawing] .page-intro {
  background-image: linear-gradient(90deg,var(--bone) 0%,transparent 82%),
    repeating-linear-gradient(90deg,#273c3315 0 1px,transparent 1px 32px),
    repeating-linear-gradient(0deg,#273c3315 0 1px,transparent 1px 32px);
  border-color: #bec8c3;
}
.eyebrow { color: #923900; }
.index-marker { color: var(--brand-orange); }
.inset-panel { background: #fff; border-color: var(--line); box-shadow: 0 14px 34px #17232108; }
.editorial-brief { border-top-color: var(--brand-orange); }
.catalog-card,
.catalog-card--olive,
.catalog-card--slate,
.catalog-card--clay,
.catalog-card--walnut {
  --plate: #e3e9e6;
  --plate-ink: #243435;
  --plate-line: #1d353d1f;
  border-color: #bcc7c3;
  box-shadow: 0 6px 18px #1523240b;
}
.catalog-card:nth-child(odd) { --plate: #ffdfc1; --plate-ink: #753000; --plate-line: #a0440026; }
.catalog-card-plate { border-bottom: 3px solid var(--brand-orange); }
.catalog-card-icon { background: #ffffffad; }
.catalog-card-action > span { background: var(--brand-orange); color: var(--brand-charcoal); }
.catalog-card-action { color: var(--brand-charcoal); }
.editorial-link-list li { border-bottom-color: #c0cac6; }
.editorial-link-list a .ui-icon { color: var(--brand-orange-dark); }
.editorial-project--featured, .folio-cover { background: var(--brand-charcoal); }
.folio-drawing img { background: #e7eae5; }
.site-footer {
  background: #1b2425;
  border-top: 5px solid var(--brand-orange);
}
.site-footer .footer-col h2 { color: #ffb570; }
.footer-drawing {
  background: radial-gradient(ellipse at 80% 50%,#354346,#202b2d 71%);
  color: #ff9c42;
  border-color: #ff79005e;
}
.footer-drawing-copy p { color: #fff; }
.footer-elevation .elevation-labels { fill: #ffb570; opacity: 1; }
.footer-socials .social-icons a, .site-footer .social-icons li > span { border-color: #ff9c427d; }
.footer-bottom { border-color: #687575; }
.spatial-hero { background: #172021; }
.hero-scene::before {
  background: linear-gradient(90deg,#101a1cf5 0%,#101a1ce8 27%,#101a1c66 58%,#101a1c00 84%),
    linear-gradient(0deg,#101a1cca 0%,transparent 35%);
}
.hero-scene::after { border-color: #ff9e4d80; }
.spatial-hero .hero-copy h1 em { color: #ff9e4d; }
.spatial-hero .hero-copy .eyebrow { color: #fff; }
.spatial-hero .index-marker { color: #ff9e4d; }
.spatial-hero .hero-copy .btn { background: #ff7900; border-color: #ff7900; color: #172021; }
.spatial-hero .hero-copy .btn.o { background: #18242699; border-color: #f2f5ef; color: #fff; }
.spatial-hero .hero-copy .btn.o:hover { color: #172021; background: #fff; }
.spatial-hero .hero-model-plate { background: #172426ef; border-color: #ff7900a6; }
.hero-model-plate > span { color: #ff9e4d; }
.studio-index { background: #182224; border-top: 3px solid #ff7900; }
#material-lab { background: #1b2729; }
#material-lab .lab-copy .eyebrow { color: #ffb570; }
#material-lab .editorial-lab .lab-plate { background: #dce2de; border-color: #7f908a; }
#material-lab .lab-plate .stage {
  background-color: #e4e8e1;
  background-image: linear-gradient(90deg,#324b3e1b 1px,transparent 1px),
    linear-gradient(#324b3e1b 1px,transparent 1px),radial-gradient(ellipse at 55% 48%,#fff,transparent 73%);
}
.lab-views button[aria-pressed="true"] { background: #3a4749; box-shadow: inset 0 -3px var(--brand-orange); }
.project-showcase { background: #182224; }
.showcase-tabs button[aria-selected="true"] { background: #fff; box-shadow: inset 0 4px var(--brand-orange); }
.showcase-panel .btn { background: #ff7900; }
.showcase-footer .text-link { color: #ffb570; }
@media (min-width:901px) { html { scroll-padding-top: 10rem; } }
@media (max-width:900px) {
  .site-header > nav { min-height: 88px; }
  .site-header .brand-logo { width: 196px; }
}
@media (max-width:650px) {
  .site-header > nav { padding-block: .65rem .45rem; }
  .site-header .brand-logo { width: 190px; }
}
@media (max-width:760px) {
  .hero-scene::before {
    background: linear-gradient(90deg,#101a1cf0,#101a1cb8 70%,#101a1c70),linear-gradient(0deg,#101a1cc4,transparent 32%);
  }
}
/* Direct enquiry form in the consultation dialog. */
#consultation-dialog { width: min(1000px,94vw); }
.consultation-copy { padding: 2.8rem 2rem 1.5rem; }
.consultation-copy h2 { font-size: clamp(2rem,3.2vw,2.7rem); }
.consultation-copy label { font-size: .76rem; margin-bottom: .3rem; }
.enquiry-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem 1rem; }
.enquiry-wide { grid-column: 1/-1; }
.consultation-copy .enquiry-fields input, .consultation-copy .enquiry-fields select, .consultation-copy .enquiry-fields textarea { width: 100%; min-height: 42px; margin: 0; border: 1px solid #7d8a85; border-radius: 0; padding: .55rem .65rem; font: .85rem/1.4 var(--sans); background: #fff; color: #1b2425; }
.consultation-copy .enquiry-fields textarea { resize: vertical; min-height: 68px; }
.field-optional { font-size: .67rem; font-weight: 400; }
.consultation-copy .enquiry-consent { display: flex; align-items: start; gap: .6rem; font-weight: 400; font-size: .73rem; line-height: 1.6; margin-block: 1rem; }
.enquiry-consent input { flex: 0 0 auto; width: 17px; height: 17px; margin-top: .2rem; accent-color: #a13d00; }
.enquiry-consent a { color: #923900; }
.enquiry-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.enquiry-submit { width: 100%; justify-content: center; cursor: pointer; }
.enquiry-submit:disabled { opacity: .65; cursor: wait; }
.enquiry-feedback { font-size: .85rem; font-weight: 650; color: #17513c; margin: .8rem 0 0; }
.enquiry-feedback:empty { display: none; }
.enquiry-feedback.is-error { color: #a02121; }
.enquiry-storage-note { margin: .7rem 0 0; font-size: .67rem; line-height: 1.6; color: #505959; }
@media (max-width:650px) {
  .consultation-copy { padding: 3rem 1.2rem 1.3rem; }
  .consultation-copy h2 { font-size: 2rem; }
  .enquiry-fields { gap: .7rem; }
  .consultation-copy .enquiry-fields input, .consultation-copy .enquiry-fields select, .consultation-copy .enquiry-fields textarea { font-size: 16px; }
}
@media (max-width:420px) { .enquiry-fields { grid-template-columns: 1fr; } }

.consultation-close-wrap { position: sticky; top: 0; height: 0; z-index: 3; }
/* Compact consultation: three fields and a clear submit action. */
#consultation-dialog { width: min(760px,94vw); max-height: 90svh; }
.consultation-layout { grid-template-columns: 31% 1fr; }
.consultation-copy { padding: 2.4rem 1.65rem 1.4rem; }
.consultation-copy > .eyebrow { font-size: .6rem; margin-bottom: .6rem; }
.consultation-copy h2 { font-size: 1.95rem; margin-bottom: .6rem; }
.consultation-copy > p { font-size: .8rem; line-height: 1.5; margin-bottom: 1rem; }
.enquiry-fields { gap: .7rem; }
.consultation-copy .enquiry-consent { margin-block: .85rem; font-size: .7rem; }
.consultation-visual > div { left: 1.2rem; right: 1.2rem; bottom: 1.4rem; }
.consultation-visual p { font-size: 1.45rem; }
.consultation-visual span { font-size: .56rem; }
@media (max-width:650px) {
  .consultation-layout { grid-template-columns: 1fr; }
  #consultation-dialog { width: min(420px,94vw); }
  .consultation-copy { padding: 3rem 1.25rem 1.3rem; }
  .consultation-copy h2 { font-size: 1.8rem; }
  .enquiry-fields { grid-template-columns: 1fr; }
}

/* Compact phone/tablet header; native disclosures retain no-JavaScript access. */
.mobile-navigation { flex: 1; border: 0; margin: 0; padding: 0; }
.mobile-navigation > summary { display: none; }
.mobile-navigation > summary::after, .mobile-navigation[open] > summary::after { content: none; }
.mobile-navigation > .nav-links { justify-content: flex-end; }
.site-header > nav { gap: 1rem; }
@media (max-width:1100px) {
  .site-header > nav { display: flex; flex-wrap: nowrap; min-height: 76px; gap: .6rem; padding-block: .55rem; }
  .site-header .logo { margin-right: auto; min-width: 0; }
  .site-header .brand-logo { width: 145px; max-width: 100%; }
  .mobile-navigation { flex: 0 0 auto; }
  .mobile-navigation > summary { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; min-height: 44px; padding: 0; border: 1px solid #a9b4af; color: #1b2425; }
  .mobile-navigation > summary > span { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
  .mobile-navigation > summary .ui-icon { width: 21px; height: 21px; }
  .mobile-navigation > .nav-links { position: absolute; z-index: 96; top: 100%; left: 0; width: 100%; max-height: calc(100svh - 140px); overflow-y: auto; display: flex; flex-direction: column; align-items: stretch; justify-content: start; margin: 0; padding: .65rem 1rem; gap: 0; background: #fff; border: 1px solid #a9b4af; border-bottom: 3px solid #ff7900; box-shadow: 0 18px 30px #10191b33; }
  .site-header .nav-item { display: block; width: 100%; border-bottom: 1px solid #dce2df; }
  .site-header .nav-item:last-child { border-bottom: 0; }
  .site-header .nav-item > a, .site-header .nav-disclosure > summary { min-height: 48px; width: 100%; justify-content: space-between; padding: .65rem .35rem; font-size: .9rem; }
  .site-header .nav-disclosure .nav-mega { position: static; max-height: none; overflow: visible; display: block; box-shadow: none; padding: .9rem; border: 1px solid #c4cdc8; margin-bottom: .8rem; }
  .site-header .nav-mega-links { grid-template-columns: 1fr; margin: 0; }
  .site-header .nav-mega-title { font-size: 1.4rem; }
  .site-header .nav-mega-feature { display: none; }
  .site-header .header-consultation { width: 110px; min-height: 44px; margin: 0; padding: .45rem; white-space: normal; text-align: center; font-size: .64rem; line-height: 1.35; }
}
@media (max-width:360px) {
  .site-header .brand-logo { width: 112px; }
  .site-header .header-consultation { width: 102px; font-size: .61rem; }
  .site-header > nav { gap: .4rem; }
}
/* Comfortable touch targets and a fully visible no-JavaScript fallback. */
@media (max-width:1100px) {
  .site-footer .footer-col li > a, .site-footer .footer-legal-links a { display: inline-flex; align-items: center; min-height: 44px; }
  .no-js .site-header > nav { flex-wrap: wrap; }
  .no-js .mobile-navigation { flex-basis: 100%; order: 3; }
  .no-js .mobile-navigation > .nav-links { position: static; max-height: none; box-shadow: none; margin-top: .5rem; }
}
@media (max-width:650px) {
  .experience-card p, .catalog-card-summary { font-size: .9rem; line-height: 1.65; }
  .explorer-filters button { min-height: 44px; }
}
