/* Light is the existing NHN palette. Only the explicit dark choice changes surfaces. */
.nhn-theme-toggle { display: inline-flex; align-items: center; justify-content: center; flex: none; gap: 9px; min-width: 48px; min-height: 48px; padding: 10px 12px; border: 1px solid #c2a46f50; border-radius: 28px; background: transparent; color: #f3f0e8; font: 500 11px/1.2 Manrope, Arial, sans-serif; cursor: pointer; transition: border-color .2s, background-color .2s; }
.nhn-theme-toggle:hover { border-color: #c2a46f; background: #c2a46f12; }
.nhn-theme-toggle:focus-visible { outline: 2px solid #c2a46f; outline-offset: 4px; }
.nhn-theme-icon { flex: none; overflow: visible; fill: none; stroke: #c2a46f; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.nhn-theme-moon { display: none; }
[data-nhn-theme="dark"] .nhn-theme-sun { display: none; }
[data-nhn-theme="dark"] .nhn-theme-moon { display: block; }
.nhn-theme-toggle--menu { position: absolute; top: max(24px, env(safe-area-inset-top)); right: max(158px, calc(env(safe-area-inset-right) + 126px)); z-index: 3; }
.nhn-signature-menu .nhn-theme-toggle { font-size: 11px; }
.nhn-theme-controls-ready .nhn-signature-header > .nhn-booking-entry { margin-left: auto !important; }

/* Keep --paper as cream: the original dark heroes also use it for their text. */
html[data-nhn-theme="dark"] { color-scheme: dark; --ink: #f3f0e8; --muted: #c3cec7; --line: #c2a46f40; --accent-ink: #c2a46f; background: #102b24; }
html[data-nhn-theme="dark"] body { background: #102b24; color: #f3f0e8; }
html[data-nhn-theme="dark"] :is(.entry, .work-section, .services-section, .nhn-pricing, .process-section, .site-footer, .nhn-footer, .mobile-nav, .ticker) { background-color: #102b24; color: #f3f0e8; }
html[data-nhn-theme="dark"] :is(.services-section, .nhn-pricing, .process-section, .nhn-footer, .ticker) { border-color: #c2a46f40; }
html[data-nhn-theme="dark"] .nhn-pricing-card { background: #1c3c32; border-color: #c2a46f50; border-top-color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-pricing-card:hover { border-color: #c2a46f; }
html[data-nhn-theme="dark"] :is(.nhn-pricing-note, .nhn-footer-contact address, .nhn-footer-vat, .nhn-footer-bottom) { color: #c3cec7; }
html[data-nhn-theme="dark"] :is(.nhn-pricing-card h4, .nhn-pricing-price, .nhn-pricing-price-text, .project-caption h3, .service-item summary, .process-grid h3, .nhn-footer h2) { color: #f3f0e8; }
html[data-nhn-theme="dark"] :is(.nhn-pricing-card-content, .nhn-pricing-duration, .project-caption > span, .service-item p, .process-grid p, .section-heading > p, .services-intro > p) { color: #c3cec7; }
html[data-nhn-theme="dark"] :is(.nhn-pricing-filter, .pill-link) { color: #f3f0e8; border-color: #c2a46f70; }
html[data-nhn-theme="dark"] :is(.nhn-pricing-filter[aria-pressed="true"], .pill-link:hover, .universe-tabs button.active) { color: #102b24; background: #c2a46f; border-color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-pricing-filter[aria-pressed="true"] > span { color: #102b24; }
html[data-nhn-theme="dark"] .universe-tabs button:not(.active):hover { background: #1c3c32; }
html[data-nhn-theme="dark"] .category-filters button { color: #c3cec7; }
html[data-nhn-theme="dark"] .category-filters button.active { color: #f3f0e8; border-color: #c2a46f; }
html[data-nhn-theme="dark"] .project-view { background: #c2a46f; color: #102b24; }
html[data-nhn-theme="dark"] .contact-section { background: #1c3c32; color: #f3f0e8; }
html[data-nhn-theme="dark"] .contact-form :is(input[type="text"], input[type="email"], textarea) { color: #f3f0e8; border-color: #c2a46f80; background: transparent; }
html[data-nhn-theme="dark"] .contact-form :is(input, textarea)::placeholder { color: #c3cec7; }
html[data-nhn-theme="dark"] :is(.submit-button, .nhn-newsletter-provider input[type="submit"], .nhn-newsletter-provider button[type="submit"], .skip-link) { background: #c2a46f; color: #102b24; }
html[data-nhn-theme="dark"] .submit-button:hover { background: #f3f0e8; color: #102b24; }
html[data-nhn-theme="dark"] .contact-intro .nhn-booking-entry--contact { border-color: #c2a46f; color: #f3f0e8; background: #102b24; }
html[data-nhn-theme="dark"] :is(.project-dialog, .legal-dialog) { background: #102b24; color: #f3f0e8; }
html[data-nhn-theme="dark"] .dialog-content { background: #1c3c32; }
html[data-nhn-theme="dark"] :is(button, a, input, textarea):focus-visible { outline-color: #c2a46f; }
html[data-nhn-theme="dark"] ::selection { background: #c2a46f; color: #102b24; }

/* The full-screen navigation follows the same visitor preference. */
html[data-nhn-theme="dark"] .nhn-signature-menu { --menu-forest: #f3f0e8; --menu-paper: #102b24; }
html[data-nhn-theme="dark"] .nhn-signature-menu-main { background: #102b24; }
html[data-nhn-theme="dark"] .nhn-signature-menu-aside { background: #1c3c32; }
html[data-nhn-theme="dark"] .nhn-signature-menu-link { border-color: #c2a46f40; }
html[data-nhn-theme="dark"] :is(.nhn-signature-menu-number, .nhn-signature-menu-main-foot p) { color: #c3cec7; }
html[data-nhn-theme="dark"] :is(.nhn-signature-menu-eyebrow, .nhn-signature-menu-arrow, .nhn-signature-menu-link[aria-current="page"] .nhn-signature-menu-number) { color: #c2a46f; }
html[data-nhn-theme="dark"] .nhn-signature-menu :is(button, a):focus-visible { outline-color: #c2a46f; }
html[data-nhn-theme="dark"] :is(.nhn-proposal-tools, .nhn-proposal-toast) { background: #1c3c32f5; color: #f3f0e8; border-color: #c2a46f70; }
html[data-nhn-theme="dark"] .nhn-proposal-tools button { border-color: #c2a46f40; }
html[data-nhn-theme="dark"] .nhn-proposal-tools button:is(:hover, [aria-pressed="true"]) { background: #c2a46f20; }

@media (max-width: 760px) {
  .nhn-theme-controls-ready .nhn-signature-header { gap: 6px; padding-inline: 4%; }
  .nhn-theme-controls-ready .nhn-signature-header .nhn-brand { width: clamp(104px, 32vw, 160px); }
  .nhn-theme-toggle--header { width: 48px; height: 48px; padding: 12px; border-color: transparent; }
  .nhn-theme-toggle--header .nhn-theme-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  .nhn-theme-toggle--menu { top: max(17px, env(safe-area-inset-top)); left: 6%; right: auto; border-color: #102b2460; color: #102b24; }
  .nhn-theme-toggle--menu .nhn-theme-icon { stroke: #6e5730; }
  .nhn-theme-controls-ready .nhn-signature-menu-main { padding-top: 91px; }
  .nhn-theme-controls-ready .nhn-signature-menu-eyebrow { margin-bottom: 26px; padding-right: 0; }
  html[data-nhn-theme="dark"] .nhn-theme-toggle--menu { color: #f3f0e8; border-color: #c2a46f70; }
  html[data-nhn-theme="dark"] .nhn-theme-toggle--menu .nhn-theme-icon { stroke: #c2a46f; }
}
@media (max-width: 680px) {
  .nhn-theme-controls-ready .nhn-gateway .gateway-header.nhn-signature-header { grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 10px 6px; }
  .nhn-theme-controls-ready .nhn-gateway .gateway-header.nhn-signature-header .nhn-brand { width: clamp(104px, 32vw, 160px); }
  .nhn-theme-controls-ready .nhn-gateway .gateway-header.nhn-signature-header > .nhn-theme-toggle--header { grid-column: 3; grid-row: 1; }
  .nhn-theme-controls-ready .nhn-gateway .gateway-header.nhn-signature-header > .nhn-signature-menu-trigger { grid-column: 4; grid-row: 1; }
}
@media (prefers-reduced-motion: reduce) { .nhn-theme-toggle { transition: none; } }
html.motion-paused .nhn-theme-toggle { transition: none; }
@media print { .nhn-theme-toggle { display: none !important; } }
