/* Surface colours are separate from the navy/orange brand palette. */
:root,
html[data-theme="light"] {
  color-scheme: light;
  --theme-background: #e7eaee;
  --theme-surface: #f4f6f8;
  --theme-soft: #dce1e7;
  --theme-raised: #cfd6df;
  --theme-text: #17212c;
  --theme-muted: #4d5968;
  --theme-border: #b9c2cd;
  --theme-input-border: #6b7b8d;
  --theme-accent-text: #9e3b00;
  --theme-accent-soft: #fff1e8;
  --theme-header: #e7ebf0f5;
  --theme-footer: #d7dee6;
  --theme-shadow: 0 14px 36px #27394f16;
  --silver-panel: linear-gradient(135deg, #fbfcfd 0%, #eef1f5 48%, #e2e7ed 100%);
  --silver-section: linear-gradient(120deg, #e5e9ee 0%, #d5dce4 100%);
  --silver-edge: inset 0 1px 0 #ffffffd9;
  --unit-grey: var(--theme-muted);
  --unit-light: var(--theme-soft);
  --orange-text: var(--theme-accent-text);
  --border: var(--theme-border);
  --shadow: var(--theme-shadow);
}

html[data-theme="dark"] {
  color-scheme: dark;
  --theme-background: #10171f;
  --theme-surface: #19232e;
  --theme-soft: #141e28;
  --theme-raised: #22303d;
  --theme-text: #edf2f7;
  --theme-muted: #aebbc8;
  --theme-border: #344352;
  --theme-input-border: #687c8e;
  --theme-accent-text: #ff9a57;
  --theme-accent-soft: #38271e;
  --theme-header: #0d1620f7;
  --theme-footer: #0d1620;
  --theme-shadow: 0 14px 40px #00000024;
  --unit-grey: var(--theme-muted);
  --unit-light: var(--theme-soft);
  --orange-text: var(--theme-accent-text);
  --border: var(--theme-border);
  --shadow: var(--theme-shadow);
}

body {
  background: var(--theme-background);
  color: var(--theme-text);
}

/* Breadcrumbs inside a dark hero need the hero's text palette in both modes. */
html[data-theme] .inner-hero .breadcrumbs li {
  color: #aebbc8;
}

html[data-theme] .inner-hero .breadcrumbs [aria-current] {
  color: #edf2f7;
}

html[data-theme] .inner-hero .breadcrumbs a:hover {
  color: #ff9a57;
}

html[data-theme] .card-number {
  color: var(--theme-muted);
}

/* Header and footer follow the selected theme; photo and brand panels retain
   their intentional dark treatment in either mode. */
html[data-theme] .utility-bar {
  background: var(--theme-soft);
  color: var(--theme-muted);
  border-color: var(--theme-border);
}

html[data-theme] .site-header {
  background: var(--theme-header);
  color: var(--theme-text);
  border-color: var(--theme-border);
}

html[data-theme] .main-nav > a:not(.header-quote) {
  color: var(--theme-muted);
  border-color: var(--theme-border);
}

html[data-theme] .main-nav > a:not(.header-quote):hover,
html[data-theme] .main-nav > a[aria-current="page"]:not(.header-quote) {
  color: var(--theme-accent-text);
}

html[data-theme] .menu-toggle {
  color: var(--theme-text);
  border-color: var(--theme-input-border);
}

html[data-theme] .site-footer {
  background: var(--theme-footer);
  color: var(--theme-text);
}

html[data-theme] .footer-brand p {
  color: var(--theme-text);
}

html[data-theme] .footer-brand > span,
html[data-theme] .footer-main > div:not(.footer-brand) > a:not(.text-link),
html[data-theme] .footer-cta p,
html[data-theme] .footer-legal,
html[data-theme] .company-registration {
  color: var(--theme-muted);
}

html[data-theme] .footer-legal {
  border-color: var(--theme-border);
}

html[data-theme] .footer-cta .text-link,
html[data-theme] .footer-cta .text-link svg,
html[data-theme] .footer-main a:hover {
  color: var(--theme-accent-text);
}

/* Cool silver surfaces: broad highlights, graphite edges and soft depth. */
html[data-theme="light"] .site-header {
  background: linear-gradient(115deg, #fafbfdf5, #dce2e9f5 60%, #f0f3f6f5);
  box-shadow: 0 4px 20px #27394f12, var(--silver-edge);
}

html[data-theme="light"] .utility-bar,
html[data-theme="light"] .trust-strip {
  background: linear-gradient(100deg, #e4e9ef, #f2f4f7 48%, #d9e0e8);
  box-shadow: var(--silver-edge);
}

html[data-theme="light"] .site-footer {
  background: linear-gradient(125deg, #edf0f4, #d2dae3);
  border-top: 1px solid var(--theme-border);
  box-shadow: var(--silver-edge);
}

html[data-theme="light"] :is(.services-section, .industries-section, .coverage-section, .content-soft, .quote-section) {
  background: var(--silver-section);
}

html[data-theme="light"] :is(.card, .detail-panel, .service-card, .case-card, .content-service-card, .content-check-panel, .content-partner-node, .quote-form, .contact-form, .enquiry-success, .cookie-banner) {
  background: var(--silver-panel);
  border-color: var(--theme-border);
  box-shadow: var(--silver-edge), 0 8px 24px #27394f0a;
}

html[data-theme="light"] :is(.service-card:hover, .case-card:hover, .content-service-card[href]:hover) {
  border-color: var(--theme-accent-text);
  box-shadow: var(--silver-edge), var(--theme-shadow);
}

html[data-theme="light"] .content-partner-node.active {
  border-color: var(--unit-orange);
}

html[data-theme="light"] :is(.content-enquiry-panel, .content-partner-flow, .content-map-wrap, .contact-quote-card, .form-note, .file-drop, .file-list li, .enquiry-reference, .content-cookie-table th) {
  background: var(--silver-section);
  box-shadow: var(--silver-edge);
}

html[data-theme="light"] :is(.content-enquiry-panel, .content-partner-flow, .content-map-wrap, .contact-quote-card, .review-card, .service-card-link, .content-check-list li, .content-panel-note, .content-benefit, .content-audience-list, .content-audience-list li, .content-region, .content-case-row, .content-draft-tag, .content-cookie-table th, .content-cookie-table td, .content-legal-body .content-policy-note, .quote-sidebar-note, .quote-step + .quote-step, .machine-card, .quote-actions, .contact-details > div) {
  border-color: var(--theme-border);
}

html[data-theme="light"] :is(.industry-tags span, .content-country-tags span, .content-config-placeholder, .upload-symbol, .review-card, .enquiry-form .button-secondary, .cookie-actions .button-secondary) {
  background: var(--silver-panel);
  border-color: var(--theme-border);
  box-shadow: var(--silver-edge);
}

html[data-theme="light"] :is(.industry-tags span, .industry-tags svg, .map-legend, .feature-list li, .content-intro > p, .content-service-card p, .content-check-panel p, .content-body p, .content-enquiry-panel p, .content-panel-note, .content-benefit p, .content-partner-node p, .content-region p, .content-draft-tag, .content-case-copy p, .content-legal-nav a, .content-legal-body p, .content-legal-body li, .content-cookie-table td, .quote-progress-text, .quote-progress-list button, .quote-sidebar-note p, .step-intro, .field-optional, .field-hint, .form-note, .file-drop p, .form-footnote, .form-submitting, .review-card dt, .enquiry-reference span, .contact-details dt, .config-placeholder, .contact-quote-card p),
html[data-theme="light"] .enquiry-success > p:not(.eyebrow),
html[data-theme="light"] .contact-information > p:not(.eyebrow) {
  color: var(--theme-muted);
}

html[data-theme="light"] .content-dark .content-intro > p {
  color: #aab4bf;
}

html[data-theme="light"] .content-about-panel .content-panel-note {
  color: #aab4bf;
  border-color: #35404b;
}

html[data-theme="light"] .case-art-1,
html[data-theme="light"] .content-case-art.art-2 {
  background: var(--silver-section);
}

html[data-theme="light"] .art-2 .content-case-art-icon {
  background: var(--silver-panel);
  border-color: var(--theme-border);
}

html[data-theme="light"] .art-2 .content-case-art-label {
  color: var(--theme-muted);
}

html[data-theme="light"] .content-number {
  color: var(--theme-accent-text);
}

html[data-theme="light"] .content-legal-nav a[aria-current="page"] {
  color: var(--theme-accent-text);
}

html[data-theme="light"] .quote-progress-list [aria-current="step"] {
  color: var(--theme-text);
}

html[data-theme="light"] .enquiry-form input:not([type="radio"]):not([type="checkbox"]):not([type="file"]):not([type="hidden"]),
html[data-theme="light"] .enquiry-form select,
html[data-theme="light"] .enquiry-form textarea {
  background: #f8fafc;
  border-color: var(--theme-input-border);
  box-shadow: inset 0 2px 4px #27394f08;
}

html[data-theme="light"] .enquiry-form input::placeholder,
html[data-theme="light"] .enquiry-form textarea::placeholder {
  color: #586677;
}

html[data-theme="light"] :is(.job-choice, .service-choice) {
  background: var(--theme-surface);
  border-color: var(--theme-input-border);
}

html[data-theme="light"] :is(.job-choice, .service-choice):has(input:checked) {
  background: var(--theme-accent-soft);
  border-color: var(--theme-accent-text);
}

html[data-theme="light"] :is(.file-drop, .enquiry-form .button-secondary, .cookie-actions .button-secondary) {
  border-color: var(--theme-input-border);
}

html[data-theme="light"] .file-drop input::file-selector-button {
  background: var(--silver-panel);
  border-color: var(--theme-input-border);
}

html[data-theme="light"] .page-tool--theme {
  background: var(--silver-panel);
  border-color: var(--theme-input-border);
  color: var(--theme-text);
  box-shadow: var(--silver-edge), 0 4px 18px #27394f26;
}

@media (hover: hover) {
  html[data-theme="light"] .page-tool--theme:hover {
    background: #f8fafc;
  }
}

/* General content surfaces and typography. */
html[data-theme="dark"] .lead,
html[data-theme="dark"] .text-link,
html[data-theme="dark"] .breadcrumbs [aria-current],
html[data-theme="dark"] .content-service-card,
html[data-theme="dark"] .content-panel-link,
html[data-theme="dark"] .content-legal-body strong {
  color: var(--theme-text);
}

html[data-theme="dark"] .text-link:hover {
  color: var(--theme-accent-text);
}

html[data-theme="dark"] .card,
html[data-theme="dark"] .detail-panel,
html[data-theme="dark"] .trust-strip,
html[data-theme="dark"] .service-card,
html[data-theme="dark"] .industry-tags span,
html[data-theme="dark"] .case-card,
html[data-theme="dark"] .content-service-card,
html[data-theme="dark"] .content-check-panel,
html[data-theme="dark"] .content-partner-node,
html[data-theme="dark"] .cookie-banner {
  background: var(--theme-surface);
  border-color: var(--theme-border);
}

html[data-theme="dark"] .coverage-section,
html[data-theme="dark"] .content-soft,
html[data-theme="dark"] .content-enquiry-panel,
html[data-theme="dark"] .content-partner-flow,
html[data-theme="dark"] .content-map-wrap,
html[data-theme="dark"] .content-cookie-table th {
  background: var(--theme-soft);
  border-color: var(--theme-border);
}

html[data-theme="dark"] .content-country-tags span,
html[data-theme="dark"] .content-config-placeholder {
  background: var(--theme-raised);
  border-color: var(--theme-border);
}

html[data-theme="dark"] .trust-strip span,
html[data-theme="dark"] .card-number,
html[data-theme="dark"] .map-legend,
html[data-theme="dark"] .feature-list li,
html[data-theme="dark"] .industry-tags span,
html[data-theme="dark"] .industry-tags svg,
html[data-theme="dark"] .content-intro > p,
html[data-theme="dark"] .content-service-card p,
html[data-theme="dark"] .content-check-panel p,
html[data-theme="dark"] .content-body p,
html[data-theme="dark"] .content-enquiry-panel p,
html[data-theme="dark"] .content-panel-note,
html[data-theme="dark"] .content-benefit p,
html[data-theme="dark"] .content-partner-node p,
html[data-theme="dark"] .content-region p,
html[data-theme="dark"] .content-draft-tag,
html[data-theme="dark"] .content-case-copy p,
html[data-theme="dark"] .content-legal-nav a,
html[data-theme="dark"] .content-legal-body p,
html[data-theme="dark"] .content-legal-body li,
html[data-theme="dark"] .content-cookie-table td {
  color: var(--theme-muted);
}

html[data-theme="dark"] .service-card-link,
html[data-theme="dark"] .content-check-list li,
html[data-theme="dark"] .content-panel-note,
html[data-theme="dark"] .content-benefit,
html[data-theme="dark"] .content-audience-list,
html[data-theme="dark"] .content-audience-list li,
html[data-theme="dark"] .content-region,
html[data-theme="dark"] .content-case-row,
html[data-theme="dark"] .content-draft-tag,
html[data-theme="dark"] .content-cookie-table th,
html[data-theme="dark"] .content-cookie-table td,
html[data-theme="dark"] .content-legal-body .content-policy-note,
html[data-theme="dark"] .how-card:not(:last-child):after {
  border-color: var(--theme-border);
}

html[data-theme="dark"] .service-icon,
html[data-theme="dark"] .step-count,
html[data-theme="dark"] .content-icon,
html[data-theme="dark"] .content-legal-nav a[aria-current="page"] {
  background: var(--theme-accent-soft);
  color: var(--theme-accent-text);
  border-color: #805034;
}

html[data-theme="dark"] .content-number,
html[data-theme="dark"] .content-faq-layout p a,
html[data-theme="dark"] .content-legal-body a,
html[data-theme="dark"] .content-case-copy h2 a:hover {
  color: var(--theme-accent-text);
}

html[data-theme="dark"] .content-partner-node.active,
html[data-theme="dark"] .service-card:hover,
html[data-theme="dark"] .content-service-card[href]:hover {
  border-color: var(--unit-orange);
}

html[data-theme="dark"] .case-art-1,
html[data-theme="dark"] .content-case-art.art-2 {
  background: #233240;
  color: #b6c9db;
}

html[data-theme="dark"] .case-art-1 > span,
html[data-theme="dark"] .art-2 .content-case-art-label {
  color: var(--theme-muted);
}

html[data-theme="dark"] .art-2 .content-case-art-icon {
  background: var(--theme-surface);
  border-color: var(--theme-border);
  color: var(--theme-accent-text);
}

html[data-theme="dark"] .coverage-land {
  fill: #2a3f50;
  stroke: #678197;
}

html[data-theme="dark"] .coverage-map radialGradient stop:first-child {
  stop-color: #304554;
}

html[data-theme="dark"] .coverage-map radialGradient stop:last-child {
  stop-color: #17232e;
}

html[data-theme="dark"] .home-map svg g[fill="#6f8294"],
html[data-theme="dark"] .content-map-wrap svg g[fill="#6f8294"] {
  fill: #b3c6d7;
}

/* Quote, contact, review and confirmation forms. */
html[data-theme="dark"] .quote-section,
html[data-theme="dark"] .contact-quote-card,
html[data-theme="dark"] .form-note,
html[data-theme="dark"] .file-drop,
html[data-theme="dark"] .file-list li,
html[data-theme="dark"] .enquiry-reference {
  background: var(--theme-soft);
}

html[data-theme="dark"] .quote-form,
html[data-theme="dark"] .contact-form,
html[data-theme="dark"] .enquiry-success,
html[data-theme="dark"] .upload-symbol,
html[data-theme="dark"] .review-card,
html[data-theme="dark"] .enquiry-form .button-secondary,
html[data-theme="dark"] .cookie-actions .button-secondary {
  background: var(--theme-surface);
  color: var(--theme-text);
  border-color: var(--theme-border);
}

html[data-theme="dark"] .enquiry-form input:not([type="radio"]):not([type="checkbox"]):not([type="file"]):not([type="hidden"]),
html[data-theme="dark"] .enquiry-form select,
html[data-theme="dark"] .enquiry-form textarea,
html[data-theme="dark"] .file-drop input::file-selector-button {
  background: var(--theme-background);
  color: var(--theme-text);
  border-color: var(--theme-input-border);
}

html[data-theme="dark"] .enquiry-form input::placeholder,
html[data-theme="dark"] .enquiry-form textarea::placeholder {
  color: #97a8b8;
}

html[data-theme="dark"] .form-field label,
html[data-theme="dark"] .machine-card legend,
html[data-theme="dark"] .quote-back,
html[data-theme="dark"] .quote-progress-list [aria-current="step"],
html[data-theme="dark"] .contact-details a {
  color: var(--theme-text);
}

html[data-theme="dark"] .quote-progress-text,
html[data-theme="dark"] .quote-progress-list button,
html[data-theme="dark"] .quote-sidebar-note p,
html[data-theme="dark"] .step-intro,
html[data-theme="dark"] .field-optional,
html[data-theme="dark"] .field-hint,
html[data-theme="dark"] .form-note,
html[data-theme="dark"] .file-drop p,
html[data-theme="dark"] .form-footnote,
html[data-theme="dark"] .form-submitting,
html[data-theme="dark"] .review-card dt,
html[data-theme="dark"] .enquiry-success > p:not(.eyebrow),
html[data-theme="dark"] .enquiry-reference span,
html[data-theme="dark"] .contact-information > p:not(.eyebrow),
html[data-theme="dark"] .contact-details dt,
html[data-theme="dark"] .config-placeholder,
html[data-theme="dark"] .contact-quote-card p {
  color: var(--theme-muted);
}

html[data-theme="dark"] .step-dot,
html[data-theme="dark"] .quote-sidebar-note,
html[data-theme="dark"] .quote-step + .quote-step,
html[data-theme="dark"] .machine-card,
html[data-theme="dark"] .quote-actions,
html[data-theme="dark"] .contact-details > div,
html[data-theme="dark"] .contact-quote-card {
  border-color: var(--theme-border);
}

html[data-theme="dark"] .job-choice,
html[data-theme="dark"] .service-choice,
html[data-theme="dark"] .choice-indicator,
html[data-theme="dark"] .file-drop,
html[data-theme="dark"] .enquiry-form .button-secondary,
html[data-theme="dark"] .cookie-actions .button-secondary {
  border-color: var(--theme-input-border);
}

html[data-theme="dark"] .quote-progress-track {
  background: var(--theme-border);
}

html[data-theme="dark"] .quote-progress-track span {
  background: var(--unit-orange);
}

html[data-theme="dark"] .quote-progress-list [aria-current="step"] .step-dot {
  background: var(--unit-orange);
  border-color: var(--unit-orange);
  color: var(--unit-navy);
}

html[data-theme="dark"] .quote-progress-list .is-complete .step-dot,
html[data-theme="dark"] .success-mark {
  background: #1d3b32;
  border-color: #457861;
  color: #a2e4bf;
}

html[data-theme="dark"] .job-choice:has(input:checked),
html[data-theme="dark"] .service-choice:has(input:checked) {
  background: var(--theme-accent-soft);
  border-color: var(--unit-orange);
  box-shadow: 0 0 0 1px var(--unit-orange);
}

html[data-theme="dark"] .job-choice:has(input:checked) .choice-indicator {
  border-color: var(--unit-orange);
  background: var(--theme-background);
}

html[data-theme="dark"] .quote-step-kicker,
html[data-theme="dark"] .job-choice-icon,
html[data-theme="dark"] .privacy-check a,
html[data-theme="dark"] .upload-symbol,
html[data-theme="dark"] .review-heading button {
  color: var(--theme-accent-text);
}

html[data-theme="dark"] .enquiry-form input[type="checkbox"],
html[data-theme="dark"] .enquiry-form input[type="radio"] {
  accent-color: var(--unit-orange);
}

html[data-theme="dark"] .enquiry-demo,
html[data-theme="dark"] .content-editorial-notice {
  background: #30271c;
  border-color: #77613e;
  color: #e5cfa5;
}

html[data-theme="dark"] .content-editorial-notice strong,
html[data-theme="dark"] .content-editorial-notice p,
html[data-theme="dark"] .content-editorial-notice > svg {
  color: #e5cfa5;
}

html[data-theme="dark"] .form-error-summary {
  background: #381f25;
  border-color: #d87881;
  color: #ffb4b9;
}

html[data-theme="dark"] .field-error,
html[data-theme="dark"] .remove-machine,
html[data-theme="dark"] .form-error-summary p {
  color: #ffb4b9;
}

html[data-theme="dark"] .enquiry-form [aria-invalid="true"] {
  border-color: #ef929a !important;
}

html[data-theme="dark"] :focus-visible,
html[data-theme="dark"] .enquiry-form input:focus,
html[data-theme="dark"] .enquiry-form select:focus,
html[data-theme="dark"] .enquiry-form textarea:focus,
html[data-theme="dark"] .job-choice:has(input:focus-visible),
html[data-theme="dark"] .quote-sidebar button:focus-visible,
html[data-theme="dark"] .enquiry-form button:focus-visible {
  outline-color: #ff9a57;
}

@media (max-width: 900px) {
  html[data-theme] .main-nav {
    background: var(--theme-background);
  }

  html[data-theme="light"] .main-nav {
    background: var(--silver-panel);
  }
}
