/*
 * COOLXZ / neutral material palette.
 * Keep brand colour in signals and selected states; surfaces and type stay neutral.
 * This file changes colour only. CMS inline colours retain their normal priority.
 */
:root {
  /* Light materials and readable type. */
  --palette-white: #ffffff;
  --palette-paper: #f7f7f5;
  --palette-surface: #eff0f0;
  --palette-border: #dedfe0;
  --palette-border-strong: #a9afb3;
  --palette-input-border: #8a9095;
  --palette-ink: #202326;
  --palette-muted: #62666b;
  --palette-quiet: #656b70;

  /* Dark materials. The same neutral graphite connects every dark chapter. */
  --palette-graphite: #191b1c;
  --palette-dark-raised: #25282b;
  --palette-dark-line: #3d4247;
  --palette-on-dark: #f4f5f5;
  --palette-on-dark-muted: #a5abb0;
  --palette-on-dark-quiet: #929ba3;

  /* Brand green is bright on graphite; the darker shade is readable on white. */
  --palette-green: #82c54d;
  --palette-green-ink: #355b20;
  --palette-selected: #edf5e7;
  --palette-error: #ae2d2d;
  --palette-error-surface: #fff2f1;

  /* Existing public components use these aliases. */
  --ink: var(--palette-ink);
  --ink-2: var(--palette-dark-raised);
  --slate: #4f555b;
  --muted: var(--palette-muted);
  --paper: var(--palette-paper);
  --line: var(--palette-border);
  --blue: var(--palette-green-ink);
  --blue-bright: var(--palette-green-ink);
  --signal: var(--palette-green);
  --shadow: 0 24px 70px rgba(20, 23, 26, .08);
}

/* Shared chrome and controls. */
body { color: var(--palette-ink); background: var(--palette-white); }
::selection { color: var(--palette-ink); background: #dcebcf; }
:focus-visible { outline-color: var(--palette-green-ink); }
.skip-link { color: var(--palette-white); background: var(--palette-green-ink); }
.site-header, .site-header.scrolled {
  color: var(--palette-ink);
  background: rgba(255, 255, 255, .94);
  border-color: var(--palette-border);
  box-shadow: none;
}
.site-nav { background: var(--palette-white); border-color: var(--palette-border); }
.site-nav a, .brand-category, .nav-toggle { color: var(--palette-ink); }
.site-nav a::after { background: var(--palette-ink); }
.site-nav .nav-contact { color: var(--palette-green-ink); }
.brand-divider, .nav-toggle span { background: var(--palette-ink); }
.nav-toggle { border-color: var(--palette-border-strong); }
.scroll-progress { background: var(--palette-green); }
.header-cta, .scrolled .header-cta, .button-primary {
  color: var(--palette-white);
  background: var(--palette-graphite);
  border-color: var(--palette-graphite);
}
.header-cta:hover, .scrolled .header-cta:hover, .button-primary:hover {
  color: var(--palette-white);
  background: #353a3e;
  border-color: #353a3e;
}
.button-ghost { color: var(--palette-ink); background: transparent; border-color: var(--palette-border-strong); }
.button-ghost:hover { color: var(--palette-ink); background: var(--palette-surface); border-color: #858c91; }
.button:disabled, .button:disabled:hover {
  color: var(--palette-muted);
  background: var(--palette-border);
  border-color: var(--palette-border);
}
.eyebrow, .hero .eyebrow { color: var(--palette-muted); }
.eyebrow > span { background: #a3a9ad; }
.route-curtain { background: var(--palette-graphite); }

/* White first chapter and a neutral silver / black-glass control object. */
.hero { color: var(--palette-ink); background: var(--palette-white); }
.hero h1 { color: var(--palette-ink); }
.hero-summary { color: var(--palette-muted); }
.hero-topline, .hero-bottomline, .hero-topology { border-color: var(--palette-border); }
.hero-topline, .hero-topline > span:last-child, .hero-trust span,
.hero-bottomline, .hero-topology, .hero-topology summary { color: var(--palette-muted); }
.hero-trust span::before { background: #939b9f; }
.hero-bottomline a { color: var(--palette-ink); }
.hero-bottomline a span { border-color: var(--palette-border); }
.atelier-showcase { background: #f0f1f0; }
.showcase-word { color: #e1e3e3; }
.device-ground { background: #32373b; }
.control-metal-edge {
  background: linear-gradient(100deg, #777f86, #202529 62%, #a0a7ac);
  box-shadow: 2px 10px 12px rgba(22, 27, 31, .13);
}
.control-face {
  background: linear-gradient(135deg, #899198 0, #3a4147 2%, #191d21 14%, #101316 85%, #444b51 100%);
  border-color: #8c959c;
  box-shadow: inset 0 0 1px 1px rgba(203, 212, 219, .4), 0 30px 45px -28px rgba(16, 22, 27, .47);
}
.control-screen {
  color: #eef1f3;
  background: radial-gradient(ellipse at 5% 0, #3b454d, #191f24 65%);
  border-color: #515d66;
}
.screen-top i { background: var(--palette-green); }
.screen-room-art { color: #d0d8de; }
.screen-icons { border-color: rgba(225, 234, 239, .16); }
.screen-icons > div { color: #bec9d1; }
.screen-icons > div:first-child { color: #b9e296; }
.control-bottom { color: #a4afb7; }
.control-bottom i { background: var(--palette-green); box-shadow: 0 0 5px rgba(130, 197, 77, .4); }
.showcase-callout { color: var(--palette-quiet); }
.showcase-callout b { color: var(--palette-muted); }
.showcase-callout i { background: var(--palette-green); box-shadow: 0 0 0 4px #e2eadb; }
.showcase-index, .showcase-scene-title, .showcase-arrow { color: var(--palette-muted); }
.showcase-scene-title strong { color: var(--palette-ink); }
.showcase-scene { background: linear-gradient(0deg, #f0f1f0 85%, transparent); }
.showcase-description { color: var(--palette-muted); }
.atelier-showcase .room-scene-controls, .atelier-showcase .room-scene-controls button + button {
  border-color: #c9cdcf;
}
.atelier-showcase .room-scene-controls button {
  color: var(--palette-muted);
  background: transparent;
  box-shadow: none;
}
.atelier-showcase .room-scene-controls button:hover { color: var(--palette-ink); background: #e5e8e8; }
.atelier-showcase .room-scene-controls button[aria-pressed="true"] {
  color: var(--palette-green-ink);
  background: var(--palette-selected);
  border-color: #c9cdcf;
}
.atelier-showcase .showcase-states { border-color: #d6dadd; }
.atelier-showcase .showcase-states span, .atelier-showcase .showcase-states b { color: var(--palette-muted); }
.atelier-showcase[data-scene="sleep"] .control-screen {
  color: #ced9e2;
  background: radial-gradient(ellipse at 5% 0, #293746, #111922 65%);
}
.atelier-showcase[data-scene="away"] .control-screen {
  color: #a4afb8;
  background: radial-gradient(ellipse at 5% 0, #30363c, #15191d 65%);
}

/* Neutral paper carries content; fine green marks describe selection. */
.proof-strip, .solutions, .cases { background: var(--palette-paper); border-color: var(--palette-border); }
.proof-grid dl { border-color: var(--palette-border); }
.proof-intro strong, .proof-grid dt { color: var(--palette-ink); }
.proof-intro span, .proof-grid dd { color: var(--palette-muted); }
.section-heading h2, .delivery-title h2, .case-content h3 { color: var(--palette-ink); }
.section-heading > p, .delivery-title > p { color: var(--palette-muted); }
:is(.solutions, .products, .pms-teaser, .delivery, .cases) .eyebrow { color: var(--palette-muted); }
:is(.solutions, .products, .pms-teaser, .delivery, .cases) .eyebrow > span { background: #949da4; }
.category-tabs { border-color: var(--palette-border); }
.category-tab { color: var(--palette-muted); background: var(--palette-white); border-color: var(--palette-border); }
.category-tab:hover, .category-tab.is-active { color: var(--palette-green-ink); background: var(--palette-selected); border-color: var(--palette-green-ink); }
.category-tab:focus-visible { outline-color: var(--palette-green-ink); }
:is(.solutions, .products) .category-tabs { border-color: var(--palette-border); }
:is(.solutions, .products) .category-tab { color: var(--palette-muted); background: transparent; border-color: transparent; }
:is(.solutions, .products) .category-tab:hover,
:is(.solutions, .products) .category-tab.is-active { color: var(--palette-ink); background: transparent; border-color: transparent; }
:is(.solutions, .products) .category-tab::after { background: var(--palette-green-ink); }
.solution-list, .solution-row { border-color: var(--palette-border); }
.solution-number, .solution-copy > p, .solution-copy > span, .solution-tags b { color: var(--palette-muted); }
.solution-copy h3 { color: var(--palette-ink); }
.solution-image { background: var(--palette-white); border-color: var(--palette-border); }
.solution-row .round-link { color: var(--palette-ink); background: transparent; border-color: var(--palette-border-strong); }
.solution-row:is(:hover, :focus-within) .round-link { color: var(--palette-white); background: var(--palette-graphite); border-color: var(--palette-graphite); }
.solution-row > .card-hit:focus-visible { outline-color: var(--palette-green-ink); }
:is(.solutions, .cases) .section-more { border-color: var(--palette-border); }
:is(.solutions, .cases) .section-more > span { color: var(--palette-muted); }
:is(.solutions, .cases) .section-more .button-primary { color: var(--palette-white); background: var(--palette-graphite); border-color: var(--palette-graphite); }
:is(.solutions, .cases) .section-more .button-primary:hover { color: var(--palette-white); background: #353a3e; border-color: #353a3e; }

/* The dark hardware gallery keeps its original light CMS title colour valid. */
.products { color: var(--palette-on-dark); background: var(--palette-graphite); }
.products .heading-light, .products .heading-light h2 { color: var(--palette-on-dark); }
.products .heading-light > p, .products .eyebrow { color: var(--palette-on-dark-muted); }
.products .category-tabs { border-color: var(--palette-dark-line); }
.products .category-tab { color: var(--palette-on-dark-muted); }
.products .category-tab:is(:hover, .is-active) { color: var(--palette-on-dark); }
.products .category-tab::after { background: var(--palette-green); }
.products .product-card { color: var(--palette-on-dark); background: transparent; border-color: var(--palette-dark-line); }
.products .product-image { background: #f5f6f6; }
.products .product-top span, .products .product-body > p, .products .product-body > span { color: var(--palette-on-dark-muted); }
.products .product-top b { color: var(--palette-on-dark-quiet); }
.products .product-body h3 { color: var(--palette-on-dark); }
.products .product-body dl, .products .product-body dl div { border-color: var(--palette-dark-line); }
.products .product-body dt { color: var(--palette-on-dark-quiet); }
.products .product-body dd { color: #c4cacf; }
.products .card-detail { color: #dce2e6; border-color: #50585f; }
.products .product-cta, .products .section-more { border-color: var(--palette-dark-line); }
.products .product-cta p, .products .section-more > span { color: var(--palette-on-dark-muted); }
.products .product-cta a { color: var(--palette-on-dark); }
.products .product-cta a:hover { color: var(--palette-green); }
.products .section-more .button-primary { color: var(--palette-graphite); background: var(--palette-on-dark); border-color: var(--palette-on-dark); }
.products .section-more .button-primary:hover { color: var(--palette-graphite); background: var(--palette-green); border-color: var(--palette-green); }
.products .section-more .button-primary:disabled { color: var(--palette-muted); background: #d0d5d8; border-color: #d0d5d8; }
.products .section-more.has-error [data-more-status] { color: #ffb8b4; }
.case-content > p, .case-content > span, .case-content b { color: var(--palette-muted); }
.case-content > a { color: var(--palette-ink); }
.case-content > a:hover { color: var(--palette-green-ink); }

/* Delivery remains white and precise; the active rail is the colour signal. */
.delivery { background: var(--palette-white); }
.delivery-title > p, .delivery-flow-heading > div > span,
.delivery-step-caption > small, .delivery-list[data-delivery-flow] p,
.delivery-step-tags > b, .delivery-flow-footer { color: var(--palette-muted); }
.delivery-flow-heading > div > b { color: var(--palette-ink); }
.delivery-flow-heading > button { color: var(--palette-muted); background: var(--palette-white); border-color: var(--palette-border-strong); }
.delivery-flow-heading > button:hover { color: var(--palette-ink); background: var(--palette-surface); border-color: #858c91; }
.delivery-flow-rail { background: var(--palette-border); }
.delivery-flow-rail > i { background: var(--palette-green); box-shadow: none; }
.delivery-flow-rail > b::after { background: linear-gradient(180deg, transparent, var(--palette-green), transparent); }
.delivery-list[data-delivery-flow] article.delivery-flow-step { border-color: var(--palette-border); }
.delivery-list[data-delivery-flow] article.is-current::before { background: var(--palette-paper); box-shadow: none; }
.delivery-list[data-delivery-flow] .delivery-step-number { color: var(--palette-muted); background: var(--palette-white); border-color: var(--palette-border-strong); }
.delivery-list[data-delivery-flow] article.is-current .delivery-step-number { color: var(--palette-white); background: var(--palette-graphite); border-color: var(--palette-graphite); box-shadow: 0 0 0 5px var(--palette-white); }
.delivery-list[data-delivery-flow] h3, .delivery-list[data-delivery-flow] article.is-current h3 { color: var(--palette-ink); }
.delivery-active-label, .delivery-flow-footer > b { color: var(--palette-green-ink); }
.delivery-list[data-delivery-flow] article.is-current .delivery-step-caption > small,
.delivery-list[data-delivery-flow] article.is-current .delivery-step-tags > b { color: var(--palette-muted); }
.delivery-step-arrow { stroke: #7e868c; }
.delivery-list[data-delivery-flow] article.is-current .delivery-step-arrow { stroke: var(--palette-green-ink); }
.delivery-flow-footer i { background: var(--palette-green); box-shadow: none; }
.delivery-list[data-delivery-flow] .delivery-step-hit:focus-visible { outline-color: var(--palette-green-ink); }

/* Software, collection and detail pages use the same materials. */
.pms-teaser, .pms-hero { color: var(--palette-ink); background: var(--palette-paper); border-color: var(--palette-border); }
.pms-heading, .pms-teaser .pms-heading { color: var(--palette-ink); }
.pms-brand, .pms-teaser .pms-brand, .pms-description, .pms-teaser .pms-description,
.pms-body, .pms-window-label, .pms-teaser .pms-window-label,
.pms-window-footer, .pms-teaser .pms-window-footer { color: var(--palette-muted); border-color: var(--palette-border); }
.pms-tags > span, .pms-teaser .pms-tags > span { color: var(--palette-muted); background: transparent; border-color: var(--palette-border); }
.pms-cover, .pms-teaser .pms-cover { background: var(--palette-white); border-color: var(--palette-border); box-shadow: 0 30px 60px -30px rgba(20, 23, 26, .2); }
a.pms-cover:hover, .pms-teaser .pms-cover:hover { border-color: var(--palette-border-strong); box-shadow: 0 36px 65px -30px rgba(20, 23, 26, .25); }
.pms-cover img, .pms-teaser .pms-cover img { background: var(--palette-paper); border-color: var(--palette-border); }
.pms-teaser .button { color: var(--palette-white); background: var(--palette-graphite); border-color: var(--palette-graphite); }
.pms-teaser .button:hover { color: var(--palette-white); background: #353a3e; border-color: #353a3e; }
.pms-overview, .pms-gallery { background: var(--palette-white); }
.pms-features { background: var(--palette-paper); border-color: var(--palette-border); }
.pms-feature-card { background: var(--palette-white); border-color: var(--palette-border); }
.pms-feature-card > span, .pms-feature-card p { color: var(--palette-muted); }
.pms-feature-card h3 { color: var(--palette-ink); }
.pms-gallery .detail-media { background: var(--palette-white); border-color: var(--palette-border); box-shadow: 0 24px 60px rgba(20, 23, 26, .06); }
.pms-gallery .detail-gallery-stage { background: var(--palette-paper); }
.pms-gallery figcaption { color: var(--palette-muted); }
.inner-hero { color: var(--palette-on-dark); background: var(--palette-graphite); border-color: var(--palette-dark-line); }
.inner-hero .eyebrow, .inner-grid > div:first-child > p:last-child, .inner-index span { color: var(--palette-on-dark-muted); }
.inner-index strong { color: var(--palette-on-dark); }
.inner-hero .inner-index { border-color: var(--palette-dark-line); }
.collection-section, .detail-hero, .related-section { color: var(--palette-ink); background: var(--palette-paper); border-color: var(--palette-border); }
.collection-card, .related-grid > a { color: var(--palette-ink); background: var(--palette-white); border-color: var(--palette-border); box-shadow: none; }
.collection-card:hover { border-color: var(--palette-border-strong); box-shadow: 0 20px 40px rgba(20, 23, 26, .075); }
.related-grid > a:hover { border-color: var(--palette-border-strong); }
.collection-card:focus-visible { outline-color: var(--palette-green-ink); }
.collection-image, .related-grid > a > img { background: #eff1f2; border-color: var(--palette-border); }
.collection-image span { color: var(--palette-ink); background: var(--palette-white); border-color: var(--palette-border-strong); }
.collection-copy > p, .collection-copy > span, .related-grid > a > p { color: var(--palette-muted); }
.collection-copy h2, .related-grid > a > h3 { color: var(--palette-ink); }
.collection-copy > b, .related-grid > a > span { color: var(--palette-ink); border-color: var(--palette-border); }
.collection-section .public-empty { color: var(--palette-muted); background: var(--palette-white); border-color: var(--palette-border); }
.collection-section .collection-pagination { border-color: var(--palette-border); }
.collection-pagination > a { color: var(--palette-ink); background: var(--palette-white); border-color: var(--palette-border-strong); }
.collection-pagination > a:hover { color: var(--palette-white); background: var(--palette-graphite); border-color: var(--palette-graphite); }
.collection-pagination > span { color: var(--palette-muted); }
.collection-cta { color: var(--palette-ink); background: var(--palette-surface); border-color: var(--palette-border); }
.collection-cta p { color: var(--palette-muted); }
.detail-copy h1, .detail-layout h2 { color: var(--palette-ink); }
.detail-back, .detail-copy > .eyebrow, .detail-copy > p:not(.eyebrow),
.detail-layout aside > p, .detail-layout .rich-text, .detail-parameters dt { color: var(--palette-muted); }
.detail-back:hover, .detail-layout aside > a:hover { color: var(--palette-green-ink); }
.detail-hero .detail-media { background: var(--palette-white); border-color: var(--palette-border); box-shadow: none; }
.detail-media .detail-gallery-stage { background: #eff1f2; }
.detail-media .detail-gallery-arrow { color: var(--palette-white); background: var(--palette-graphite); border-color: rgba(255, 255, 255, .75); box-shadow: 0 6px 16px rgba(20, 23, 26, .1); }
.detail-media .detail-gallery-arrow:hover { color: var(--palette-graphite); background: var(--palette-green); border-color: var(--palette-green); }
.detail-media .detail-media-meta { color: var(--palette-muted); background: rgba(255, 255, 255, .95); border-color: var(--palette-border); }
.detail-media .detail-gallery-thumb { border-color: var(--palette-border); }
.detail-media .detail-gallery-thumb.is-active { border-color: var(--palette-green-ink); box-shadow: 0 0 0 2px rgba(53, 91, 32, .14); }
.detail-media .detail-gallery-toggle { color: var(--palette-muted); background: var(--palette-white); border-color: var(--palette-border-strong); }
.detail-media .detail-gallery-toggle:hover { color: var(--palette-white); background: var(--palette-graphite); border-color: var(--palette-graphite); }
.detail-section { background: var(--palette-white); }
.detail-layout aside, .detail-layout aside > a, .detail-layout article section + section,
.detail-parameters dl, .detail-parameters dl div { border-color: var(--palette-border); }
.detail-layout aside > a, .detail-parameters dd { color: var(--palette-ink); }

/* The Remotion film is media; this palette recolours its player, not its pixels. */
.pms-motion { background: var(--palette-white); border-color: var(--palette-border); }
.pms-motion-heading { background: var(--palette-graphite); border-color: var(--palette-dark-line); }
.pms-motion-heading > div:first-child > span, .pms-motion-top-tools > span { color: var(--palette-on-dark-muted); }
.pms-motion-heading strong { color: var(--palette-on-dark); }
.pms-motion-toggle { color: var(--palette-on-dark); background: transparent; border-color: #616b73; }
.pms-motion-toggle:hover { color: var(--palette-on-dark); background: #30363b; border-color: #929ba3; }
.pms-motion-toggle:disabled { color: var(--palette-on-dark-muted); background: var(--palette-dark-raised); border-color: var(--palette-dark-line); }
.pms-motion-stage, .pms-motion-video, .pms-motion-caption { background: var(--palette-paper); }
.pms-motion-system, .pms-motion-system i, .pms-motion-description,
.pms-motion-status, .pms-motion-fallback { color: var(--palette-muted); }
.pms-motion-phases, .pms-motion-phases button + button { border-color: var(--palette-border); }
.pms-motion-phases button, .pms-motion-phases button > span { color: var(--palette-muted); background: transparent; }
.pms-motion-phases button:hover { color: var(--palette-ink); background: var(--palette-surface); border-color: var(--palette-border); }
.pms-motion-phases button[aria-pressed="true"], .pms-motion-phases button[aria-pressed="true"] > span { color: var(--palette-green-ink); background: var(--palette-selected); border-color: var(--palette-border); }
.pms-motion button:focus-visible { outline-color: var(--palette-green-ink); }
.pms-motion-heading button:focus-visible { outline-color: var(--palette-green); }
.pms-motion-fallback a { color: var(--palette-green-ink); }
.pms-motion.is-media-error .pms-motion-status { color: var(--palette-error); }

/* Final chapter, enquiry feedback and the footer. */
.contact { color: var(--palette-on-dark); background: var(--palette-graphite); }
.contact-copy h2 { color: var(--palette-on-dark); }
.contact-copy .eyebrow, .contact-copy > p, .contact-direct > span { color: var(--palette-on-dark-muted); }
.contact-copy .eyebrow > span { background: #949da4; }
.contact-direct a { color: var(--palette-on-dark); }
.contact-direct a:hover { color: var(--palette-green); }
.contact-form, .contact-success { color: var(--palette-ink); background: var(--palette-white); }
.contact-form label, .contact-form .inquiry-plan-picker legend, .contact-form .form-note,
.contact-success p { color: var(--palette-muted); }
.contact-form input, .contact-form select, .contact-form textarea,
.contact-form .inquiry-plan-trigger { color: var(--palette-ink); background: var(--palette-white); border-color: var(--palette-input-border); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: var(--palette-quiet); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus,
.contact-form .inquiry-plan-trigger:focus-visible,
.contact-form .inquiry-plan-picker.is-open .inquiry-plan-trigger { border-color: var(--palette-green-ink); box-shadow: 0 0 0 3px rgba(130, 197, 77, .16); }
.contact-form .inquiry-plan-menu { color: var(--palette-ink); background: var(--palette-white); border-color: var(--palette-border-strong); box-shadow: 0 18px 38px rgba(20, 23, 26, .13); }
.contact-form .inquiry-plan-option { color: var(--palette-ink); background: var(--palette-white); border-color: var(--palette-border); }
.contact-form .inquiry-plan-option.is-active { color: var(--palette-ink); background: var(--palette-paper); border-color: var(--palette-border-strong); }
.contact-form .inquiry-plan-option[aria-selected="true"] { color: var(--palette-green-ink); background: var(--palette-selected); border-color: #aac593; }
.contact-form .inquiry-plan-option-check { color: var(--palette-green-ink); }
.contact-form .inquiry-plan-thumbnail { background: var(--palette-white); border-color: var(--palette-border); }
.contact-form .inquiry-plan-trigger[aria-invalid="true"] { border-color: var(--palette-error); }
.contact-form .inquiry-plan-trigger:disabled, .contact-form input:disabled,
.contact-form select:disabled, .contact-form textarea:disabled { color: var(--palette-muted); background: var(--palette-paper); border-color: var(--palette-border); }
.contact-form .button-primary, .contact-success .button { color: var(--palette-white); background: var(--palette-graphite); border-color: var(--palette-graphite); }
.contact-form .button-primary:hover, .contact-success .button:hover { color: var(--palette-white); background: #353a3e; border-color: #353a3e; }
.contact-form .button-primary:disabled, .contact-form .button-primary:disabled:hover { color: var(--palette-muted); background: var(--palette-border); border-color: var(--palette-border); }
.contact-success-icon { color: var(--palette-green-ink); background: var(--palette-selected); border-color: #cedfc2; }
.contact-success h3 { color: var(--palette-ink); }
.contact-form .required-mark, .contact-form .inquiry-plan-error { color: var(--palette-error); }
.contact-form .form-error { color: var(--palette-error); background: var(--palette-error-surface); border-color: var(--palette-error); }
.site-footer { color: #c5cbd0; background: #121415; border-color: #30353a; }
.footer-grid p, .footer-contact span, .footer-bottom, .footer-records { color: #9aa3ab; border-color: #30353a; }
.footer-contact a { color: #e8ebed; }
.footer-links a { color: #b4bdc5; }
.footer-links a:hover, .footer-records a:hover { color: var(--palette-white); }
.footer-record-divider { color: #727d87; }
.footer-qr-frame { background: var(--palette-white); }

/* Native architectural pavilion: neutral atmosphere, deliberately green signals. */
.ap-pavilion {
  --ap-white: var(--palette-on-dark);
  --ap-muted: var(--palette-on-dark-muted);
  --ap-line: rgba(224, 231, 237, .14);
  --ap-green: var(--palette-green);
  color: var(--palette-on-dark);
  background: var(--palette-graphite);
  border-color: #30363b;
}
.ap-pavilion::before {
  background: radial-gradient(ellipse at 67% 31%, rgba(214, 225, 235, .065), transparent 52%), linear-gradient(135deg, rgba(255, 255, 255, .02), transparent 55%);
}
.ap-topline, .ap-intro > span, .ap-scene-note > span, .ap-scene-note p { color: var(--palette-on-dark-muted); }
.ap-topline > span:first-child, .ap-intro p, .ap-scene-note h3 { color: var(--palette-on-dark); }
.ap-topline i { background: var(--palette-green); box-shadow: 0 0 12px rgba(130, 197, 77, .25); }
.ap-stage::after { background: linear-gradient(90deg, transparent, rgba(214, 225, 235, .1), transparent); }
.ap-signal-track { stroke: #8eac78; }
.ap-signal-packet { stroke: var(--palette-green); }
.ap-device-point { fill: var(--palette-green); stroke: #294c19; }
.ap-core-led, .ap-climate-led { fill: var(--palette-green); }
.ap-model-labels { fill: var(--palette-on-dark-muted); }
.ap-model-labels path { stroke: #616e78; }
.ap-console { background: rgba(10, 13, 16, .12); }
.ap-scene-buttons button { color: var(--palette-on-dark-muted); background: transparent; border-color: transparent; }
.ap-scene-buttons button > span { color: var(--palette-on-dark-quiet); }
.ap-scene-buttons button:hover { color: var(--palette-on-dark); background: rgba(224, 231, 237, .04); }
.ap-scene-buttons button[aria-pressed="true"] { color: var(--palette-on-dark); background: rgba(130, 197, 77, .08); border-color: #567b3c; }
.ap-scene-buttons button[aria-pressed="true"] > span { color: #b9e296; }
.ap-scene-buttons button[aria-pressed="true"]::after { background: var(--palette-green); }
.ap-states { color: var(--palette-on-dark-quiet); }
.ap-states b { color: #c9d1d7; }
.ap-play { color: var(--palette-on-dark-muted); }
.ap-play:hover { color: var(--palette-on-dark); }
.ap-play:disabled { color: var(--palette-on-dark-muted); }
.ap-pathways a:hover, .ap-pathways a:focus-visible { background: rgba(224, 231, 237, .035); }
.ap-pathways a::before { background: var(--palette-green); }
.ap-pathways a > span, .ap-pathways p { color: var(--palette-on-dark-muted); }
.ap-pathways h3 { color: var(--palette-on-dark); }
.ap-pathways b { color: #c8d1d8; border-color: #525d66; }
.ap-footnote { color: var(--palette-on-dark-quiet); }

/* Focus is dark green on light surfaces and bright green on graphite. */
.products :focus-visible, .inner-hero :focus-visible, .contact :focus-visible,
.site-footer :focus-visible, .ap-pavilion :is(button, a):focus-visible { outline-color: var(--palette-green); }
.contact .contact-form :focus-visible, .contact .contact-success :focus-visible { outline-color: var(--palette-green-ink); }
