/* Warm theme (final site from 25 Oct 2026; began as Option B, client feedback 22 Oct 2026). Quieter, residential, architectural.
   Loaded after styles.css + home-b.css; everything scoped to body.warm. Brass accent, no mono, no grid, no glow; cursor light in brass. */

.warm {
  --black: #0D0C0B; --char: #151311; --char-2: #1C1A17; --char-3: #24211D;
  --text-on-dark: #F3EFE8; --text-on-dark-muted: #A8A196;
  --line-dark: rgba(243,236,224,.09); --line-dark-strong: rgba(243,236,224,.18);
  --surface: #0D0C0B; --surface-2: #151311; --ink: #F3EFE8; --ink-muted: #A8A196;
  --line: rgba(243,236,224,.10); --line-strong: rgba(243,236,224,.20);
  --field-bg: #151311;
  --brass: #C4A57C; --brass-soft: #DCC8A8; --brass-deep: #A88A62;
  --blue: var(--brass); --blue-bright: var(--brass-soft); --blue-deep: var(--brass-deep); --blue-darker: var(--brass-deep);
  --blue-tint: rgba(196,165,124,.10); --blue-glow: transparent; --accent-ink: var(--brass);
  --shadow-glow: none;
  --font-mono: var(--font);
  --label: 500 12px/1.4 var(--font);
  background: var(--black); color: var(--text-on-dark);
}
.warm ::selection { background: rgba(196,165,124,.35); color: #fff; }
.warm a:not([class]) { color: var(--brass-soft); }
.warm a:not([class]):hover { color: #fff; }

/* ---------- Motifs off: grid, glow, ticks (cursor light kept, in brass) ---------- */
.warm .tech-grid::before, .warm .tech-grid-layer, .warm .b-hero__glow, .warm .glow-top::after,
.warm .ticks::before, .warm .ticks::after, .warm .b-contact__glow::before,
.warm .btn--primary::after,
.warm .filters__signal::before, .warm .filters__signal::after, .warm .process-rail__fill::after,
.warm .chip__dot { display: none !important; }

/* ---------- Cursor light in brass (same placements as index.html) ---------- */
.warm .card::before, .warm .card--dark:hover::before { background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 0%), rgba(196,165,124,.12), transparent 65%); }
.warm .card::after { background: radial-gradient(220px circle at var(--mx, 50%) var(--my, 0%), var(--brass), transparent 70%); }
.warm .svc::before { background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(196,165,124,.11), transparent 65%); }
.warm .btn--outline-light::before { background: radial-gradient(110px circle at var(--mx, 50%) var(--my, 50%), rgba(196,165,124,.28), transparent 70%); }
.warm .btn--primary::before { background: radial-gradient(90px circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,.35), transparent 70%); }
.warm .filter-btn::before { background: radial-gradient(80px circle at var(--mx, 50%) var(--my, 50%), rgba(196,165,124,.18), transparent 70%); }

/* ---------- Type: labels in Roboto, wider tracking, no mono, no dots ---------- */
.warm .eyebrow { font: var(--label); letter-spacing: .2em; color: var(--text-on-dark-muted); gap: 14px; }
.warm .eyebrow::before { width: 28px; height: 1px; background: var(--brass); box-shadow: none; }
.warm .h1, .warm .h2 { letter-spacing: .02em; }
.warm .h1 strong, .warm .h2 strong { font-weight: 400; color: var(--brass-soft); }
.warm .card__idx, .warm .step__num, .warm .process-detail__label, .warm .field__label,
.warm .svc__toggle, .warm .b-detail .mono, .warm .b-hero__scroll, .warm .filter-empty {
  font-family: var(--font); font-weight: 500; letter-spacing: .16em;
}
.warm .card__idx { color: var(--text-on-dark-muted); }
.warm .card__idx::after, .warm .card--dark .card__idx::after { background: var(--line-dark); }
.warm .filter-btn__n { font-family: var(--font); font-weight: 400; letter-spacing: 0; }
.warm .mobile-menu__nav .n { display: none; }
.warm .faq__q { grid-template-columns: minmax(0,1fr) auto; font-weight: 400; letter-spacing: .03em; }
.warm .faq__q::before { content: none; }
.warm .faq__a-inner { padding-left: 0; }
@media (max-width: 600px) { .warm .faq__q { grid-template-columns: minmax(0,1fr) auto; } .warm .faq__a-inner { padding: 0 0 22px; } }
.warm .ph-flag { font-family: var(--font); letter-spacing: .12em; }

/* ---------- Buttons: solid brass, flat, no bloom ---------- */
.warm .btn--primary { background: var(--brass); color: #14110D; box-shadow: none; transition: background 300ms ease, color 300ms ease; }
.warm .btn--primary:hover { background: var(--brass-soft); color: #14110D; box-shadow: none; }
.warm .btn--outline-light { background: transparent; border-color: rgba(243,236,224,.3); -webkit-backdrop-filter: none; backdrop-filter: none; }
.warm .btn--outline-light:hover { border-color: var(--brass); color: #fff; box-shadow: none; }
.warm .btn--ghost::after { background: var(--brass); box-shadow: none; }
.warm .btn .arrow { transition: transform 400ms var(--ease); }

/* ---------- Chips become a quiet text line ---------- */
.warm .chip { min-height: 0; padding: 0; border: 0; background: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; font-family: var(--font); font-size: 14px; font-weight: 400; letter-spacing: .04em; text-transform: none; color: var(--text-on-dark-muted) !important; }
.warm .b-hero__chips { gap: 8px 0; }
.warm .b-hero__chips .chip + .chip::before { content: ""; width: 1px; height: 12px; margin: 0 16px; background: var(--line-dark-strong); }

/* ---------- Hero ---------- */
.warm .b-hero__media img { object-position: 70% 50%; }
.warm .b-hero::before { background: linear-gradient(90deg, rgba(13,12,11,.9) 0%, rgba(13,12,11,.55) 45%, rgba(13,12,11,.1) 100%), linear-gradient(0deg, var(--black) 0%, rgba(13,12,11,.35) 35%, transparent 65%); }
.warm .b-hero__bar::before { background: var(--brass); box-shadow: none; }
.warm .b-hero__scroll i::after { background: var(--brass); box-shadow: none; }
.warm .b-hero__chev { color: var(--brass); }
@media (prefers-reduced-motion: no-preference) {
  .warm .b-hero__media { animation: wFade 2s var(--ease) both; }
  .warm .b-hero__copy > *, .warm .b-hero__bar { animation-name: wRise; }
}
@keyframes wFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes wRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ---------- Process ---------- */
.warm .process-rail__track { background: var(--line-dark-strong); }
.warm .process-rail__fill { background: var(--brass); box-shadow: none; }
.warm .step__node { width: 9px; height: 9px; top: -27px; border-radius: 50%; }
.warm .step.is-done .step__node, .warm .step.is-active .step__node { background: var(--brass); border-color: var(--brass); box-shadow: none; }
.warm .process-detail { border-color: var(--line-dark); }
.warm .process-detail__num { color: var(--brass); font-weight: 300; }
.warm .process-detail__btn:hover { border-color: var(--brass); background: transparent; color: var(--brass); }
.warm .process-detail.is-swapping .process-detail__body, .warm .process-detail.is-swapping .process-detail__num { filter: none; }

/* ---------- Filters: plain underline, no glowing signal ---------- */
.warm .filters__signal { height: 1px; background: var(--brass); box-shadow: none; }
.warm .no-js .filter-btn.is-active::after { height: 1px; background: var(--brass); }
.warm .filter-fade { animation-name: wRise; }

/* ---------- Process: six steps, same as the process page ---------- */
.warm .process-steps { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
.warm .step__title { font-size: clamp(16px, 1.45vw, 19px); line-height: 1.2; }
@container (max-width: 1000px) { .warm .process-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 52px; } .warm .process-rail__track { display: none; } .warm .step__node { top: -26px; } }
@container (max-width: 560px) { .warm .process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Projects (placeholder): one large + two stacked, captions over the photo ---------- */
.b-proj { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 20px); min-height: clamp(560px, 52vw, 760px); }
.b-proj__item { position: relative; min-width: 0; overflow: hidden; border-radius: var(--radius-md); background: var(--char); isolation: isolate; }
.b-proj__item:first-child { grid-row: 1 / 3; }
.b-proj__fig { position: absolute; inset: 0; margin: 0; }
.b-proj__fig img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.75) brightness(.8); transition: transform 1.4s var(--ease), filter 700ms ease; }
.b-proj__item::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(0deg, rgba(13,12,11,.88) 0%, rgba(13,12,11,.35) 38%, rgba(13,12,11,0) 62%); }
.b-proj__cap { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; flex-direction: column; gap: 8px; padding: clamp(22px, 2.6vw, 36px); }
.b-proj__loc { margin: 0; display: flex; align-items: center; gap: 12px; font: var(--label); letter-spacing: .2em; text-transform: uppercase; color: var(--brass-soft); }
.b-proj__loc::before { content: ""; width: 24px; height: 1px; background: var(--brass); }
.b-proj__t { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(20px, 1.9vw, 26px); letter-spacing: .04em; text-transform: uppercase; line-height: 1.15; color: #fff; }
.b-proj__item:first-child .b-proj__t { font-size: clamp(24px, 2.6vw, 36px); }
.b-proj__svc { margin: 0; font-size: 16px; color: var(--text-on-dark); max-height: 0; opacity: 0; transform: translateY(8px); transition: max-height 600ms var(--ease), opacity 400ms ease, transform 600ms var(--ease); }
.b-proj__item:hover .b-proj__fig img { transform: scale(1.04); filter: saturate(.9) brightness(.9); }
.b-proj__item:hover .b-proj__svc { max-height: 3em; opacity: 1; transform: none; }
@media (hover: none) { .b-proj__svc { max-height: none; opacity: 1; transform: none; } }
@media (max-width: 860px) {
  .b-proj { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; min-height: 0; }
  .b-proj__item, .b-proj__item:first-child { grid-row: auto; aspect-ratio: 4 / 3; }
  .b-proj__svc { max-height: none; opacity: 1; transform: none; }
}

/* ---------- Services ---------- */
.b-svc-cta { display: flex; justify-content: center; margin-top: clamp(40px, 5vw, 64px); }
.warm .svc { background: var(--char); border-color: var(--line-dark); }
.warm .svc:hover { border-color: var(--line-dark-strong); }
.warm .svc__media img { filter: saturate(.75) brightness(.8); }
.warm .svc:hover .svc__media img, .warm .svc.is-open .svc__media img { filter: saturate(.9); transform: scale(1.02); }
.warm .svc__title strong { font-weight: 400; }
.warm .svc__toggle:hover .svc__icon { border-color: var(--brass); }
.warm .svc.is-open { border-color: rgba(196,165,124,.35); box-shadow: none; }
.warm .svc.is-open .svc__icon { background: var(--brass); border-color: var(--brass); box-shadow: none; }
.warm .svc.is-open .svc__icon::before, .warm .svc.is-open .svc__icon::after { background: #14110D; }

/* ---------- Feature band ---------- */
.warm .b-feature::before { background: linear-gradient(0deg, var(--black) 0%, rgba(13,12,11,.55) 45%, rgba(13,12,11,.25) 100%), linear-gradient(90deg, rgba(13,12,11,.7), transparent 60%); }
.warm .b-feature__img { filter: saturate(.7); }
.warm .b-feature__quote strong { font-weight: 400; color: var(--brass-soft); }

/* ---------- FAQ ---------- */
.warm .faq__q:hover .faq__icon { border-color: var(--brass); }
.warm .faq__item[open] .faq__icon { background: transparent; border-color: var(--brass); color: var(--brass); box-shadow: none; }

/* ---------- Forms ---------- */
.warm .input:focus, .warm .cselect__trigger:focus-visible, .warm .cselect.is-open .cselect__trigger { border-color: var(--brass); box-shadow: 0 0 0 3px rgba(196,165,124,.16); }
.warm .cmenu__opt[aria-selected="true"]::after { background: var(--brass); box-shadow: none; }
.warm :focus-visible { outline-color: var(--brass); }

/* ---------- Contact ---------- */
.warm .b-detail a:hover { color: var(--brass-soft); }
.warm .map-embed__pin { background: var(--brass); box-shadow: none; }
.warm .map-embed__pin::before, .warm .map-embed__pin::after { border-color: rgba(196,165,124,.6); }
.warm .map-embed__poster { background-image: radial-gradient(circle at 50% 45%, rgba(196,165,124,.14), transparent 45%); }

/* ---------- Inner pages (pages.css) ---------- */
.warm .p-hero::before { background: linear-gradient(90deg, rgba(13,12,11,.9) 0%, rgba(13,12,11,.58) 45%, rgba(13,12,11,.15) 100%), linear-gradient(0deg, var(--black) 0%, rgba(13,12,11,.35) 35%, transparent 65%); }
.warm .p-hero__glow, .warm .p-hero__grid, .warm .p-who__glow, .warm .nf__glow { display: none; }
.warm .p-hero__chips .chip + .chip::before, .warm .p-mosaic figcaption .chip + .chip::before { content: ""; width: 1px; height: 12px; margin: 0 16px; background: var(--line-dark-strong); }
.warm .p-mosaic figcaption .chip, .warm .p-who__cap .chip { color: #fff !important; text-shadow: 0 1px 8px rgba(0,0,0,.6); }
.warm .p-rail { background: var(--black); }
.warm .p-rail__fill { background: var(--brass); box-shadow: none; }
.warm .p-rail__list a.is-active .p-rail__node { background: var(--brass); border-color: var(--brass); box-shadow: none; }
.warm .p-rail__list a.is-done .p-rail__node { background: rgba(196,165,124,.4); }
.warm .p-rail__list a::before { background: linear-gradient(90deg, rgba(196,165,124,.14), rgba(196,165,124,0)); }
.warm .p-rail__count b { text-shadow: none; color: var(--brass-soft); }
.warm .p-step__label::after, .warm .p-vals__grid::after, .warm .p-who__seg i:first-child { background: var(--brass); box-shadow: none; }
.warm .p-list h4, .warm .p-value__list .n, .warm .p-vals__k, .warm .p-who__apps .n { color: var(--brass); }
.warm .p-list li::before { width: 5px; height: 5px; border-radius: 50%; background: var(--brass); box-shadow: none; }
.warm .p-who__statement strong { text-shadow: none; color: var(--brass-soft); font-weight: 400; }
.warm .p-who__apps a::before { background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%), rgba(196,165,124,.12), transparent 70%); }
.warm .p-who__apps a::after, .warm .p-vals__list .bar, .warm .p-vals__cells li::after { background: var(--brass); box-shadow: none; }
.warm .p-vals__grid::before { background: radial-gradient(520px circle at var(--mx, 50%) var(--my, 50%), rgba(196,165,124,.08), transparent 70%); }
.warm .p-vals__cells li { background: var(--char); }
.warm .p-vals__cells li::before { background: radial-gradient(240px circle at var(--mx, 50%) var(--my, 50%), rgba(196,165,124,.12), transparent 70%); }
.warm .p-vals__cells li:hover { border-color: rgba(196,165,124,.4); }
.warm .p-vals__list li:hover .w { text-shadow: none; color: var(--brass-soft); }
.warm .p-rail__n, .warm .p-step__label, .warm .p-facts dt, .warm .p-vals__k, .warm .p-vals__n, .warm .p-rail__label { letter-spacing: .16em; }
@media (max-width: 860px) { .warm .p-rail { background: rgba(13,12,11,.94); } .warm .p-rail__list a::before { background: var(--brass); box-shadow: none; } }

/* ---------- Legal pages (legal.css) ---------- */
.warm .legal__toc a span, .warm .legal-section__num, .warm .legal-table td:first-child { color: var(--brass); }
.warm .legal-section ul li::before { width: 5px; height: 5px; border-radius: 50%; background: var(--brass); box-shadow: none; }

/* ---------- 404 ---------- */
.warm .nf__code { font-family: var(--font-display); font-weight: 300; }

/* ---------- Cookie modal ---------- */
.warm, .warm .cookie { --paper: #F3EFE8; --accent: var(--brass); --accent-ink-on: #14110D; --cookie-accent-hover: var(--brass-soft); --cookie-border: rgba(196,165,124,.3); --cookie-backdrop: rgba(13,12,11,.62); --cookie-muted: #CFC8BC; --cookie-dim: #A8A196; --cookie-line: rgba(243,236,224,.09); --cookie-line-strong: rgba(243,236,224,.2); --cookie-track: rgba(243,236,224,.12); }
.warm .cookie__panel { box-shadow: 0 40px 90px -30px rgba(0,0,0,.8); }
.warm .cookie__btn--primary, .warm .cookie__always { background: var(--brass); color: #14110D; }
.warm .cookie__btn--primary:hover { background: var(--brass-soft); }
.warm .cookie__always { font-family: var(--font); letter-spacing: .14em; }
.warm .cookie__switch input:checked ~ .cookie__track { box-shadow: none; }

/* ---------- Header + footer ---------- */
.warm .site-header { border-bottom: 0; box-shadow: none; }
.warm .site-header--overlay { background: linear-gradient(180deg, rgba(13,12,11,.55), rgba(13,12,11,0)); }
.warm .site-header--overlay.is-scrolled, body.warm.menu-open .site-header--overlay { background: rgba(13,12,11,.86); }
.warm .site-header .nav__link::after { background: var(--brass); box-shadow: none; }
.warm .footer__legal button { color: var(--brass-soft); }
.warm .footer__legal button:hover { color: #fff; }
.warm .footer__credit a { color: var(--brass-soft); }
.warm .footer__credit a:hover { color: #fff; }
