/* Public site forest palette. Kept separate from content, photos and admin/quiz styles. */
@media screen {
  :root {
    color-scheme: dark;
    --forest-bg: #22372f;
    --forest-section: #283f35;
    --forest-panel: #304a3f;
    --forest-input: #3b5749;
    --forest-line: #526b5b;
    --forest-text: #f4f0e6;
    --forest-muted: #c0cdc1;
    --ink: var(--forest-text);
    --muted: var(--forest-muted);
    --paper: var(--forest-bg);
    --line: var(--forest-line);
    --gold: #d5bb8b;
    --gold-light: #ecd3a8;
    --forest: #1d3027;
    background: var(--forest-bg);
    color: var(--forest-text);
  }

  body, body.legacy-redesign, body.product-redesign {
    background: var(--forest-bg);
    color: var(--forest-text);
  }
  ::selection { color: #1d3027; background: #e4c995; }
  body :is(.site-header, .p-header) {
    background: #1d3027;
    border-color: var(--forest-line);
    color: var(--forest-text);
  }
  body :is(.mobile-nav, .p-mobile-nav) { background: #263e32; color: var(--forest-text); border-color: var(--forest-line); }
  body :is(.brand small, .p-brand small, .p-phone-summary small, .p-mobile-phones > strong, .p-breadcrumbs) { color: var(--forest-muted); }
  body :is(.p-menu-toggle, .menu-toggle, .p-mobile-nav a) { border-color: var(--forest-line); }
  body :is(.phone-panel, .p-phone-panel, .language-options) {
    color: var(--forest-text);
    background: #304a3e;
    border-color: #607562;
    box-shadow: 0 18px 40px #0b1b1480;
  }
  body :is(.phone-item strong, .p-phone-link strong) { color: var(--forest-muted); }
  body .p-phone-link { color: var(--forest-text); }
  body :is(.phone-item, .p-phone-link):hover { background: #3c5849; }
  body .language-options a { color: var(--forest-text) !important; }
  body .language-options a:is(:hover, [aria-current="true"]) { background: #425c4b; }
  body .language-switch summary { border-color: #a18c6599; }
  body :is(.p-region-switch, .region-switch) button:hover { background: #3c5849; }
  body :is(.p-region-switch, .region-switch) button[aria-pressed="true"] { background: #d5bb8b20; border-color: var(--gold); }

  body :is(.principles, .production-band, .soft) { background: var(--forest-section); }
  body :is(.category-entry, .model-card, .category-notice, .related-card, .certificate-card) {
    background: var(--forest-panel);
    color: var(--forest-text);
    border-color: var(--forest-line);
  }
  body :is(.cms-managed-blocks, .cms-managed-galleries) { background: var(--forest-section); }
  body :is(.cms-managed-block, .cms-managed-gallery-item) { background: var(--forest-panel); border-color: var(--forest-line); }
  body :is(.category-entry, .model-card, .related-card, .certificate-card) { box-shadow: 0 8px 24px #11261a12; }
  body :is(.category-meta strong, .model-price, .model-dimensions) { color: var(--forest-text); }
  body :is(.principle svg, .option .number), body .faq-item summary::after { color: #c1ceae; }
  body .model-badge { background: #49604b; color: #eee4c9; }
  body :is(.model-photo, .editorial-photo, .project-image) { background: #2b4135; }
  body .category-empty { background: #334e3d; }
  body .category-empty .category-illustration,
  body .empty-art { background: linear-gradient(145deg, #3f5b46, #294234); color: #b9c8a8; }
  body .filter { color: var(--forest-muted); border-color: var(--forest-line); }
  body .filter:is(.active, :hover) { background: #49634d; color: #fff5df; border-color: #9b9c72; }
  body .faq-item, body .model-specs > div { border-color: var(--forest-line); }
  body .text-link:hover, body .model-detail-link:hover { color: var(--gold-light); }

  body .button:not(.outline):not(.light),
  body .button.dark {
    color: #1d3027;
    background: var(--gold);
    border-color: var(--gold);
  }
  body .button:not(.outline):not(.light):hover,
  body .button.dark:hover { background: var(--gold-light); border-color: var(--gold-light); }
  body .button:is(.outline, .light) { color: var(--forest-text); border-color: #81917b; background: transparent; }
  body .button:is(.outline, .light):hover { color: #fff6e5; background: #49614b; border-color: #b1bc9e; }
  body :is(.skip, .p-skip) { background: var(--gold); color: #1d3027; }
  body :is(a, button, input, textarea, select):focus-visible { outline-color: #e1c38e; }

  body :is(.cta-section, .contact-art) { background: #1d3228; }
  body dialog { background: #2a4436; color: var(--forest-text); border: 1px solid #6b806b; }
  body .photo-dialog { background: #172a20; }
  body :is(.field input, .field textarea, .field select) {
    background-color: var(--forest-input);
    color: var(--forest-text);
    border-color: #7a907c;
    caret-color: var(--gold-light);
  }
  body :is(.field input, .field textarea)::placeholder { color: #c0cbbd; opacity: 1; }
  body .field select option { color: var(--forest-text); background: #344f40; }
  body :is(.dialog-inner > p, .contact-art p) { color: var(--forest-muted); }
  body .form-status { background: #43604d; }

  /* Price selectors remain distinct from country flags and language controls. */
  body :is(.price-currency-controls .currency, .p-price-currency .p-currency, .calc-price-currency .calc-currency-options, .cms-currency-switch) {
    background: var(--forest-panel);
    border-color: #82967d;
    color: var(--forest-text);
  }
  body :is(.price-currency-controls, .p-price-currency, .calc-price-currency) > span { color: var(--forest-muted); }
  body :is(.currency, .p-currency, .calc-currency-options, .cms-currency-switch) button { color: var(--forest-muted); }
  body :is(.currency, .p-currency, .calc-currency-options, .cms-currency-switch) button[aria-pressed="true"],
  body :is(.price-currency-controls, .p-price-currency, .calc-price-currency) :is(.currency, .p-currency, .calc-currency-options) button[aria-pressed="true"] {
    background: var(--gold);
    color: #1d3027;
    border-color: var(--gold);
  }
  body :is(.price-currency-controls, .p-price-currency, .calc-price-currency) button:focus-visible { outline-color: #ecd3a8; }
  body :is(.currency, .p-currency, .calc-currency-options, .cms-currency-switch) button:not([aria-pressed="true"]):hover { background: #425d49; color: var(--forest-text); }

  /* Shared legacy tokens cover retained copy and CMS-created components. */
  body.product-redesign,
  body.legacy-redesign > main,
  body.legacy-redesign #productModal,
  body.legal .doc-section {
    --primary: #d5bb8b;
    --primary-dark: #ecd3a8;
    --primary-light: #e1c89e;
    --gray-900: #f4f0e6;
    --gray-800: #e5e8dc;
    --gray-700: #d7dfd0;
    --gray-600: #c7d3c3;
    --gray-500: #c0cdc1;
    --gray-400: #b8c7b6;
    --gray-300: #6b846e;
    --gray-200: #526b5b;
    --gray-100: #3b5443;
    --gray-50: #283f35;
    --steel: #b6c6aa;
  }
  body.legacy-redesign main :is(.calc-form-wrapper, .advantage-card, .review-card, .article-table),
  body.legacy-redesign main .reviews-refined .reviews-summary { background: var(--forest-panel); border-color: var(--forest-line); }
  body.legacy-redesign main :is(.reviews-summary, .article-toc, .article-tip) { background: #304a3b; }
  body.legacy-redesign main :is(.calc-feature-icon, .advantage-icon) { background: #476047; color: var(--gold-light); }
  body.legacy-redesign main :is(.calc-form-title, .calc-success h3, .reviews-rating-big .number, .article-toc-title, .article-tip strong) { color: var(--forest-text); }
  body.legacy-redesign main :is(.article-content a:not(.btn), .article-toc a:hover, .review-category-link) { color: var(--gold-light); }
  body.legacy-redesign main .faq-question:hover { color: var(--gold-light); }
  body.legacy-redesign main .review-bar { background: #5d725b; }
  body.legacy-redesign main .review-bar-fill { background: var(--gold); }
  body.legacy-redesign main :is(.btn-primary, .article-cta-inline .btn),
  body.legacy-redesign #productModal .btn-primary { color: #1d3027; background: var(--gold); }
  body.legacy-redesign main :is(.form-select, .form-input),
  body.legacy-redesign #productModal .form-input {
    background-color: var(--forest-input);
    color: var(--forest-text);
    border-color: #7a907c;
  }
  body.legacy-redesign main .form-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23ecd3a8' stroke-width='1.6'/%3E%3C/svg%3E");
  }
  body.legacy-redesign main .form-select option { background: #344f40; color: var(--forest-text); }
  body.legacy-redesign main .form-input::placeholder,
  body.legacy-redesign #productModal .form-input::placeholder { color: #c0cbbd; opacity: 1; }
  body.legacy-redesign main .form-error { color: #ffd2c6; }
  body.legacy-redesign #productModal .modal-inner { background: var(--forest-panel); }
  body.legacy-redesign #productModal :is(.modal-inner h3, .modal-price) { color: var(--forest-text); }
  body.legacy-redesign > .float-messenger .float-messenger-tooltip { background: var(--forest-panel); color: var(--forest-text); }

  /* Product page keeps real photographs and RAL swatches unchanged. */
  body.product-redesign :is(.cms-product-photo, .cms-product-thumbs, .cms-real-gallery-item) { background: #2c4337; border-color: var(--forest-line); }
  body.product-redesign .cms-photo-color-badge { color: var(--forest-text); background: #263e32eb; border-color: #81917b; }
  body.product-redesign :is(.cms-product-info .section-label, .cms-product-price small, .p-breadcrumbs) { color: var(--forest-muted); }
  body.product-redesign .cms-ral-picker { background: var(--forest-panel); }
  body.product-redesign .ral-color-option { background: #3b5545; color: var(--forest-text); border-color: #6b826c; }
  body.product-redesign .ral-color-option:is(:hover, .active) { border-color: #d5bb8b; box-shadow: inset 0 0 0 1px #d5bb8b; }
  body.product-redesign .ral-color-option small { color: var(--forest-muted); }
  body.product-redesign .btn-primary { color: #1d3027; background: var(--gold); }
  body.product-redesign .btn-primary:hover { background: var(--gold-light); }
  body.product-redesign .btn-secondary { color: var(--forest-text); border-color: #81917b; background: transparent; }
  body.product-redesign .btn-secondary:hover { background: #425d49; }
  body.product-redesign .cms-lead-box { background: var(--forest-panel); border: 1px solid #748b74; color: var(--forest-text); }
  body.product-redesign .cms-lead-box :is(input, textarea) { background: var(--forest-input); color: var(--forest-text); border-color: #7a907c; }
  body.product-redesign .cms-lead-box :is(input, textarea)::placeholder { color: #c0cbbd; opacity: 1; }
  body.product-redesign .cms-lead-close { color: var(--forest-text); background: #49634d; }

  /* About page has its own preserved layouts and inline color choices. */
  body.about-preservation main { --soft-ink: #c7d3c3; --mist: #304a3f; --wash: #283f35; }
  body.about-preservation main .section.alt { background: var(--forest-section); }
  body.about-preservation main :is(.feature, .review, .info) { background: var(--forest-panel); }
  body.about-preservation main :is(.section-kicker, .section-text, .feature p, .review span, .info p, .info a) { color: var(--forest-muted); }
  body.about-preservation main .review p { color: #d7dfd0; }
  body.about-preservation main .info a:hover { color: var(--gold-light); }
  body.about-preservation main .btn-dark { color: #1d3027; background: var(--gold); }

  /* Legal pages keep the complete document readable; print styles stay original. */
  body.legal .doc-section { color: #d7dfd0; background: var(--forest-bg); }
  body.legal :is(.doc-item, .doc-meta, .doc-definitions, .doc-principle) { background: var(--forest-panel); border-color: var(--forest-line); }
  body.legal .doc-item { border-left-color: #a7b48a; }
  body.legal :is(.doc-item-num, .doc-section a) { color: var(--gold-light); }
  body.legal .doc-content h2 { color: var(--forest-text); }

  body :is(.site-footer, .p-footer) { background: #182b21; }
  body :is(.footer-grid p, .company-details, .footer-bottom, .p-footer-bottom, .p-footer-grid p, .p-footer-company-details) { color: #bfccba; }
  body :is(.footer-title, .p-footer-title) { color: #bbcaaa; }
  body :is(.footer-grid .brand small, .p-footer .p-brand small) { color: #bbcaaa; }
  @media (max-width: 680px) {
    body :is(.phone-panel, .p-phone-panel, .language-options) { box-shadow: 0 12px 28px #0b1b1480; }
  }
}
