:root {
    --primary: #166534;
    --primary-hover: #14532d;
    --accent: #ea580c;
    --accent-hover: #c2410c;
    --bg-main: #ffffff;
    --bg-secondary: #f8fafc;
    --text-primary: #0f172a;
    --text-secondary: #475569;
    --border-color: #e2e8f0;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    padding: 0;
    font-family: 'Hahmlet', serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.7;
    color: var(--text-primary);
    background-color: var(--bg-main);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a,
a:hover,
a:focus {
    text-decoration: none;
    transition: color 0.2s ease-in-out, opacity 0.2s ease-in-out;
}

button {
    cursor: pointer;
    border: none;
    background: transparent;
    font-family: inherit;
    transition: transform 0.2s ease-in-out, background-color 0.2s ease-in-out, color 0.2s ease-in-out;
}

button:active {
    transform: scale(0.97);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
    margin-bottom: 0.5em;
    font-family: 'Hahmlet', serif;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
    color: inherit;
}

ul,
ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

#cookieConsentBanner {
    display: block;
}

#cookieConsentModal {
    display: flex;
}

@media (max-width: 768px) {
    h1 {
        font-size: clamp(1.75rem, 5vw, 2.25rem);
        line-height: 1.25;
    }

    h2 {
        font-size: clamp(1.4rem, 4vw, 1.75rem);
        line-height: 1.3;
    }

    h3 {
        font-size: clamp(1.15rem, 3.5vw, 1.35rem);
    }

    h4,
    h5,
    h6 {
        font-size: 1rem;
    }

    p,
    span,
    a,
    li {
        overflow-wrap: break-word;
        word-break: break-word;
    }
}

/* ===== header ===== */
header#header {
    overflow: visible;
}

header#header a,
header#header button {
    outline: none;
}

/* ===== hero ===== */
#hero {
    overflow: hidden;
}

#hero h1,
#hero h2,
#hero h3 {
    hyphens: auto;
}

@media (max-width: 767px) {
    #hero h1 {
        line-height: 1.25;
    }
}

/* ===== about ===== */
#about {
    hyphens: auto;
}

#about h2,
#about h3 {
    line-height: 1.2;
}

/* ===== categories ===== */
#categories {
    overflow: hidden;
}

#categories .js-filter-btn.active {
    background-color: var(--primary, #166534);
    border-color: var(--primary, #166534);
    color: #ffffff;
}

#categories .js-category-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

#categories .js-category-card:hover {
    transform: translateY(-3px);
}

/* ===== catalog ===== */
#catalog {
    overflow: hidden;
    hyphens: auto;
}

#catalog button:focus,
#catalog a:focus {
    outline: 2px solid #ea580c;
    outline-offset: 2px;
}

/* ===== blog ===== */
#blog article {
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    hyphens: auto;
}

#blog article:hover {
    border-color: #166534;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

/* ===== inquiry ===== */
#inquiry input:focus,
#inquiry select:focus,
#inquiry textarea:focus {
    border-color: var(--primary);
}

/* ===== faq ===== */
#faq {
    hyphens: auto;
}

#faq .js-faq-content {
    transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

#faq .js-faq-item {
    border-color: var(--border-color);
}

#faq .js-faq-item:hover {
    border-color: #cbd5e1;
}

/* ===== contacts ===== */
#contacts {
    overflow: hidden;
}

#contacts iframe {
    filter: grayscale(10%);
    transition: filter 0.3s ease;
}

#contacts iframe:hover {
    filter: grayscale(0%);
}

/* ===== footer ===== */
#footer {
    overflow: hidden;
}

#footer a {
    text-decoration: none;
}

#footer a:hover {
    text-decoration: underline;
}

/* Shared controls and the expanded catalogue. */
[hidden] { display: none !important; }
.primary-button, .secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border-radius: 4px; padding: .7rem 1.1rem; font-size: 14px; font-weight: 600; line-height: 1.5; text-align: center; }
.primary-button, .primary-button:visited { background: #166534; color: #fff !important; }
.primary-button:hover, .primary-button:focus-visible { background: #14532d; color: #fff !important; }
.secondary-button { background: #f1f5f9; color: #0f172a; border: 1px solid #cbd5e1; }
.secondary-button:hover { background: #e2e8f0; color: #0f172a; }
:is(a,button)[class*="bg-[#166534]"]:not([class*="bg-[#166534]/"]), :is(a,button)[class*="bg-emerald-"], .js-filter-btn.active, .js-filter-btn.active:hover { color: #fff !important; }
:is(a,button)[class*="bg-[#166534]"]:hover, :is(a,button)[class*="bg-emerald-"]:hover { color: #fff !important; }
:is(a,button)[class*="bg-[#166534]"] :is(span,i), :is(a,button)[class*="bg-emerald-"] :is(span,i) { color: inherit !important; }
#categories .js-filter-btn:not(.active) { background: #fff; color: #475569 !important; border: 1px solid #e2e8f0; }
#categories .js-filter-btn:not(.active):hover { color: #166534 !important; border-color: #166534; }
.catalog-controls { margin: 0 0 28px; }
.catalog-filters { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:20px; }
.catalog-filter { border:1px solid #cbd5e1; background:white; color:#475569; border-radius:5px; padding:8px 14px; font-size:13px; }
.catalog-filter:hover { color:#166534; border-color:#166534; }
.catalog-filter.active, .catalog-filter.active:hover { background:#166534; border-color:#166534; color:white; }
.purpose-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:13px; }
.purpose-row select { background:white; color:#0f172a; border:1px solid #cbd5e1; padding:8px 12px; border-radius:4px; max-width:100%; }
#catalog-count { margin-left:auto; color:#475569; }
#catalog-empty { padding:20px; border:1px dashed #cbd5e1; text-align:center; margin-top:12px; }
.product-photo { width:100%; height:220px; object-fit:contain; padding:18px; background:#fff; }
.source-link { color:#166534; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.source-link:hover { color:#14532d; }
.guide-read { display:flex; justify-content:space-between; align-items:center; width:100%; background:#166534; color:white; border-radius:4px; padding:10px 14px; font-size:13px; font-weight:600; }
.guide-read:hover { background:#14532d; color:white; }
.selected-product-status { margin-top:8px; font-size:12px; color:#166534; overflow-wrap:anywhere; }
.site-modal { position:fixed; inset:0; z-index:100; background:rgba(15,23,42,.66); display:flex; align-items:center; justify-content:center; padding:24px; }
.modal-panel { background:white; border-radius:8px; box-shadow:0 24px 80px #0005; width:100%; max-width:800px; max-height:calc(100dvh - 48px); overflow:auto; overscroll-behavior:contain; color:#0f172a; }
.modal-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:22px 26px; border-bottom:1px solid #e2e8f0; }
.modal-heading h3 { font-size:21px; line-height:1.5; margin:0; }
.modal-close { flex-shrink:0; width:32px; height:32px; background:#f1f5f9; border-radius:4px; font-size:24px; color:#475569; line-height:1; }
.modal-content { padding:22px 26px; font-size:14px; line-height:1.95; color:#475569; }
.modal-content p { margin:0 0 18px; word-break:keep-all; overflow-wrap:anywhere; }
.modal-content p:last-child { margin-bottom:0; }
.modal-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; padding:18px 26px; border-top:1px solid #e2e8f0; }
.article-reference { font-size:12px; background:#f8fafc; border-radius:4px; padding:12px; }
.cookie-banner-inner { max-width:1280px; margin:auto; display:flex; align-items:center; gap:24px; }
#cookieConsentBanner { position:fixed; inset:auto 0 0; z-index:80; background:#0f172a; color:#e2e8f0; border-top:1px solid #334155; padding:20px 24px; box-shadow:0 -4px 20px #0002; }
#cookieConsentBanner p { font-size:13px; line-height:1.7; margin:0; }
#cookieConsentBanner a { text-decoration:underline; color:#86efac; }
.cookie-actions { display:flex; gap:8px; flex-shrink:0; }
#cookieConsentModal .modal-panel { max-width:560px; }
.cookie-choice { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding:16px 0; border-top:1px solid #e2e8f0; }
.cookie-choice small { display:block; font-size:12px; margin-top:4px; }
.cookie-choice input { margin-top:6px; accent-color:#166534; height:18px; width:18px; flex-shrink:0; }
.cookie-reopen { text-align:left; font-size:13px; }
.map-container { min-height:440px; }
.map-container iframe { position:absolute; inset:0; width:100%; height:100%; }
.map-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; padding:30px; text-align:center; background:#f1f5f9; }
.map-placeholder>i { font-size:36px; color:#166534; }
.map-privacy-note { color:#64748b; font-size:12px; }
/* The original policies had two stacked 8rem offsets and nested narrow wrappers. */
main.legal-page-container { padding:36px 0 56px !important; min-height:0 !important; display:block !important; }
.legal-page-container > div, .legal-page-container .legal-page-section, .legal-page-container .legal-page-section > div, .legal-page-container .container { width:100% !important; max-width:1240px !important; margin-left:auto !important; margin-right:auto !important; }
.legal-page-container > div { padding-left:32px !important; padding-right:32px !important; }
.legal-page-container .legal-page-section, .legal-page-container .legal-page-container { min-height:0 !important; padding:0 !important; }
.legal-page-container .page-title { font-size:clamp(26px,3vw,36px); line-height:1.4; }
.legal-page-container .policy-text-body { font-size:15px; line-height:1.85 !important; }
.legal-page-container .policy-text-body h2 { font-size:24px; margin-top:1.5rem !important; }
.legal-page-container .policy-text-body h3 { font-size:20px; margin:1.5rem 0 .6rem !important; }
.legal-page-container .policy-text-body p { margin:0 0 1rem; }
.legal-page-container .policy-text-body ul { list-style:disc; padding-left:1.4rem; margin:0 0 1rem; }
.legal-page-container .policy-text-body li { margin:.3rem 0; }
.legal-page-container .policy-text-body a { color:#166534; text-decoration:underline; overflow-wrap:anywhere; }
.confirmation-shell { width:min(100% - 32px,900px); margin:40px auto 64px; }
.confirmation-panel { border:1px solid #e2e8f0; border-radius:8px; padding:32px; background:#fff; }
.confirmation-panel h1 { font-size:28px; }
.thank-you-panel { text-align:center; padding:48px 24px; }
.thank-you-panel p { color:#475569; margin:8px 0; }
.thank-you-panel .primary-button { margin-top:24px; }
.thank-you-icon { display:flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%; margin:0 auto 24px; background:#dcfce7; color:#166534; font-size:36px; }
.confirmation-panel dl { display:grid; grid-template-columns:120px minmax(0,1fr); gap:12px 20px; margin:24px 0; }
.confirmation-panel dd { margin:0; overflow-wrap:anywhere; white-space:pre-wrap; }
.form-error { color:#991b1b; background:#fef2f2; padding:16px; margin:20px 0; border-radius:4px; }
@media(max-width:800px) {
  .cookie-banner-inner { flex-direction:column; align-items:stretch; gap:12px; }
  .cookie-actions { flex-wrap:wrap; justify-content:flex-end; }
  #cookieConsentBanner { padding:14px 16px; }
  .site-modal { padding:12px; }
  .modal-panel { max-height:calc(100dvh - 24px); }
  .modal-heading, .modal-content, .modal-actions { padding:18px; }
  .modal-heading h3 { font-size:18px; }
  .legal-page-container > div { padding-left:20px !important; padding-right:20px !important; }
  main.legal-page-container { padding-top:28px !important; }
  .map-container { min-height:340px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; } }
