/* 01 Reset */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body, h1, h2, h3, p, ul { margin: 0; }
ul { padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
a { color: inherit; text-decoration: none; }

/* 02 Variables */
:root {
    --color-primary: #294a63;
    --color-secondary: #41627c;
    --color-accent: #e09e3d;
    --color-surface: #eef1f4;
    --color-white: #ffffff;
    --color-muted: #9ca3af;
    --color-nav-border: rgb(36 83 119 / 20%);
    --color-primary-soft: rgb(41 74 99 / 10%);
    --color-shadow: rgb(9 25 82 / 15%);
    --color-text: #294a63;
    --color-ui-dark: #1f2937; /* UI utility: accessible neutral for generic error text. */
    --font-family: "Titillium Web", Arial, sans-serif;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 12px;
    --radius-button: 10px;
    --radius-card: 10px;
    --space-page: 16px;
    --space-section-sm: 48px;
    --space-section-md: 64px;
    --space-section-lg: 80px;
    --header-offset: 8px;
    --transition-fast: 150ms ease;
    --shadow-floating: 0 5px 9px var(--color-shadow);
    --focus-ring: 0 0 0 3px var(--color-white), 0 0 0 6px var(--color-accent);
}

/* 03 Base */
html { color: var(--color-text); background: var(--color-white); }
body {
    min-width: 320px;
    overflow-x: hidden;
    font-family: var(--font-family);
    font-size: 16px;
    line-height: 1.4;
    text-rendering: optimizeLegibility;
}
body.menu-is-open { overflow: hidden; }

.skip-link {
    position: fixed;
    z-index: 200;
    top: 8px;
    left: 8px;
    padding: 10px 16px;
    transform: translateY(-150%);
    border-radius: var(--radius-sm);
    background: var(--color-white);
    color: var(--color-primary);
}
.skip-link:focus { transform: translateY(0); }
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}
:focus-visible { outline: none; box-shadow: var(--focus-ring); }

/* 04 Typography */
.type-display { font-size: clamp(1.5rem, 1.15rem + 1.5vw, 2.75rem); line-height: 1.3; font-weight: 700; }
.type-h1 { font-size: clamp(2rem, 1.65rem + 1.4vw, 3.5rem); line-height: 1.2; font-weight: 700; }
.type-h2 { font-size: clamp(1.75rem, 1.5rem + 1vw, 2.5rem); line-height: 1.25; font-weight: 700; }
.type-h3 { font-size: clamp(1.25rem, 1.1rem + .5vw, 1.75rem); line-height: 1.3; font-weight: 600; }
.type-body-lg { font-size: 1.125rem; line-height: 1.4; }
.type-body { font-size: 1rem; line-height: 1.4; }
.type-small { font-size: .875rem; line-height: 1.4; }

/* 05 Layout */
.section-container {
    width: 100%;
    padding-inline: var(--space-page);
}
.section { padding-block: clamp(64px, 8vw, 120px); }
.section--light { background: var(--color-white); color: var(--color-primary); }
.section--dark { background: var(--color-secondary); color: var(--color-white); }

/* 06 Header */
.site-header {
    position: fixed;
    z-index: 80;
    inset: var(--header-offset) 0 auto;
    padding-inline: var(--header-offset);
}
.site-header__panel {
    position: relative;
    display: flex;
    min-height: 68px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 18px;
    border: 1px solid var(--color-nav-border);
    border-radius: var(--header-radius);
    background: var(--header-bg);
    box-shadow: var(--header-shadow);
    backdrop-filter: blur(var(--header-blur));
}
.header-position--overlay { position: absolute; }
.header-style--solid .site-header__panel { background: var(--color-surface); backdrop-filter: none; }
.header-style--transparent .site-header__panel { border-color: transparent; background: transparent; box-shadow: none; backdrop-filter: none; }
.brand-link { display: inline-flex; align-items: center; }
.brand { display: inline-flex; color: var(--color-primary); }
.brand--full { width: 120px; height: 32px; }
.brand--compact { width: 40px; height: 40px; }
.brand--desktop-full,.brand--desktop-compact { display: none; }
.brand--mobile-selected { display: inline-flex; max-width: 128px; }
.site-header__shop, .desktop-nav { display: none; }
.menu-toggle { display: inline-flex; }

.icon-button {
    display: inline-flex;
    width: 44px;
    height: 44px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--color-primary);
}
.icon-button:hover { background: var(--color-primary-soft); }
.menu-toggle__lines,
.menu-toggle__lines::before,
.menu-toggle__lines::after {
    width: 26px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
}
.menu-toggle__lines { position: relative; }
.menu-toggle__lines::before,
.menu-toggle__lines::after { position: absolute; left: 0; content: ""; }
.menu-toggle__lines::before { top: -7px; }
.menu-toggle__lines::after { top: 7px; }

/* 07 Navigation */
.desktop-nav__list { display: flex; align-items: center; }
.desktop-nav__list a {
    display: block;
    padding: 10px 12px;
    font-size: 1rem;
    font-weight: 600;
    transition: color var(--transition-fast);
}
.desktop-nav__list a:hover,
.desktop-nav__list a:focus-visible { color: var(--color-accent); }

.mobile-menu { position: fixed; z-index: 100; inset: 0; }
.mobile-menu[hidden] { display: none; }
.mobile-menu__backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    border: 0;
    background: rgb(31 41 55 / 52%);
}
.mobile-menu__panel {
    position: relative;
    display: flex;
    width: min(88vw, 420px);
    height: 100%;
    margin-left: auto;
    flex-direction: column;
    overflow-y: auto;
    background: var(--color-surface);
    box-shadow: -10px 0 30px rgb(9 25 82 / 18%);
}
.mobile-menu__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--color-nav-border);
}
.mobile-menu__top .icon-button { font-size: 2.25rem; line-height: 1; }
.mobile-menu .desktop-nav__list { display: flex; flex-direction: column; align-items: stretch; }
.mobile-menu .desktop-nav__list li { border-bottom: 1px solid var(--color-nav-border); }
.mobile-menu .desktop-nav__list a { padding: 15px 24px; font-size: 1.5rem; font-weight: 700; }
.mobile-menu__shop { margin: auto 24px 24px; }

/* 08 Buttons */
.btn {
    display: inline-flex;
    min-height: 48px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 11px 24px;
    border: 2px solid transparent;
    border-radius: var(--radius-button);
    font-weight: 600;
    line-height: 1.4;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);
}
.btn-primary { background: var(--color-primary); color: var(--color-white); }
.btn-primary:hover { background: var(--color-secondary); }
.btn-accent { background: var(--color-accent); color: var(--color-white); }
.btn-accent:hover { background: var(--color-primary); }
.btn-outline { border-color: var(--color-white); color: var(--color-white); }
.btn-outline:hover { background: var(--color-white); color: var(--color-primary); }
.btn-link {
    min-height: auto;
    padding: 0 0 2px;
    border-width: 0 0 2px;
    border-radius: 0;
    border-bottom-color: var(--color-accent);
    color: var(--color-primary);
}
.btn-link:hover { color: var(--color-secondary); }
.site-header .site-header__shop { display: none; }

.draft-preview-banner { position: fixed; z-index: 1000; inset: 0 0 auto; min-height: 36px; padding: 7px 16px; background: var(--color-accent); color: var(--color-primary); font-weight: 700; text-align: center; }
.is-draft-preview .site-header { top: 60px; }

/* 09 Hero */
.hero {
    position: relative;
    display: flex;
    height: 100svh;
    min-height: 600px;
    align-items: flex-start;
    overflow: hidden;
    background: var(--color-primary);
}
.hero__media,
.hero__media img,
.hero__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__media img { object-fit: cover; object-position: 52% center; }
.hero__overlay {
    background: linear-gradient(90deg, rgb(23 54 77 / 60%) 0%, rgb(108 189 251 / 0%) 100%);
}
.hero__content {
    position: relative;
    z-index: 1;
    margin-top: 145px;
    color: var(--color-white);
}
.hero__logo { width: clamp(150px, 20vw, 220px); height: auto; color: var(--color-white); filter: drop-shadow(0 2px 2px rgb(0 0 0 / 38%)); }
.hero .type-display { margin-top: 4px; }
.hero-align--center .hero__content { text-align: center; }
.hero-align--center .hero__logo { margin-inline: auto; }
.hero-align--right .hero__content { text-align: right; }
.hero-align--right .hero__logo { margin-left: auto; }
.hero-overlay--none .hero__overlay { display: none; }
.hero-overlay--soft .hero__overlay { opacity: .65; }
.hero-overlay--strong .hero__overlay { opacity: 1; background-image: linear-gradient(90deg, rgb(23 54 77 / 78%) 0%, rgb(108 189 251 / 0%) 100%); }
.hero-overlay-direction--right .hero__overlay { transform: scaleX(-1); }
.hero-overlay-direction--top .hero__overlay { transform: rotate(90deg) scaleY(1.8); }
.hero-overlay-direction--bottom .hero__overlay { transform: rotate(-90deg) scaleY(1.8); }
.hero-image-position--left .hero__media img { object-position: left center; }
.hero-image-position--center .hero__media img { object-position: center; }
.hero-image-position--right .hero__media img { object-position: right center; }
.hero-image-position--top .hero__media img { object-position: center top; }
.hero-image-position--bottom .hero__media img { object-position: center bottom; }
.hero-height--compact { height: 68svh; min-height: 480px; }
.hero-height--large { height: 92svh; min-height: 680px; }
.hero-height--full { height: 100svh; min-height: 480px; }

/* 10 Sections */
.product-overview { padding-block: 16px var(--space-section-sm); background: var(--color-white); }
.product-overview__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.product-category-card { min-width: 0; }
.product-category-card__link {
    display: grid;
    min-height: 150px;
    grid-template-columns: minmax(112px, 38%) 1fr auto;
    align-items: center;
    gap: 16px;
    padding: 16px;
    border: 2px solid var(--color-white);
    border-radius: var(--radius-card);
    outline: 1px solid transparent;
    background: var(--color-surface);
    transition: outline-color var(--transition-fast), transform var(--transition-fast);
}
.product-category-card__link:hover { outline-color: var(--color-primary); transform: translateY(-2px); }
.product-category-card__image { position: relative; aspect-ratio: 1; min-width: 0; mix-blend-mode: multiply; }
.product-category-card__image img { width: 100%; height: 100%; object-fit: contain; }
.product-category-card__content { min-width: 0; }
.product-category-card__content h2 { overflow-wrap: anywhere; }
.text-link {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    margin-top: 16px;
    border-bottom: 2px solid var(--color-accent);
    font-weight: 600;
}
.text-link span { transition: transform var(--transition-fast); }
.text-link:hover span { transform: rotate(45deg); }
.text-link--light { color: var(--color-white); }

.about-tutorials { padding-block: var(--space-section-sm); background: var(--color-primary); color: var(--color-white); }
.about-tutorials__grid { display: grid; gap: 48px; }
.split-content { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; gap: 24px; }
.split-content__content { display: flex; align-items: flex-start; flex-direction: column; }
.split-content__body { max-width: 560px; margin-top: 16px; }
.split-content .text-link { margin-top: 24px; }
.split-content__image { aspect-ratio: 16 / 9; overflow: hidden; border-radius: 8px; }
.split-content__image img { width: 100%; height: 100%; object-fit: cover; }
.tag {
    display: inline-flex;
    padding: 4px 8px;
    border: 2px solid currentColor;
    border-radius: var(--radius-sm);
    font-weight: 700;
    line-height: 1.2;
}
.tag--dark { color: var(--color-primary); }

.certificate-banner { padding: var(--space-section-sm) 16px; background: var(--color-white); }
.certificate-banner__inner { position: relative; overflow: hidden; border-radius: 20px; background: var(--color-surface); }
.certificate-banner__content { position: relative; z-index: 1; padding: 32px 32px 128px; }
.certificate-banner__body { max-width: 560px; margin-block: 16px 24px; }
.certificate-banner__visual {
    position: absolute;
    inset: auto 0 0;
    display: flex;
    height: 112px;
    align-items: center;
    justify-content: flex-end;
    overflow: hidden;
    padding-right: 10%;
    clip-path: polygon(0 0, 100% 35%, 100% 100%, 0 100%);
    background: var(--color-primary);
}
.certificate-banner__mark { color: rgb(255 255 255 / 18%); font-size: 8rem; font-weight: 700; line-height: 1; transform: rotate(-7deg); }

.home-contact { overflow: hidden; background: var(--color-white); }
.home-contact__main { display: grid; }
.home-contact__content { padding: var(--space-section-md) 16px; text-align: center; }
.heading-accent { display: inline-block; padding-bottom: 8px; border-bottom: 5px solid var(--color-accent); }
.home-contact__body { max-width: 560px; margin: 16px auto 32px; }
.home-contact__status { color: var(--color-muted); font-size: .875rem; font-weight: 700; letter-spacing: .03em; }
.map-static {
    position: relative;
    display: grid;
    min-height: 360px;
    place-items: center;
    overflow: hidden;
    padding: 32px;
    background: var(--color-surface);
    color: var(--color-secondary);
    text-align: center;
}
.map-static::before { position: absolute; inset: 0; background: linear-gradient(to bottom, var(--color-white), transparent 38%); content: ""; }
.map-static__grid {
    position: absolute;
    inset: -20%;
    opacity: .55;
    background-image: linear-gradient(var(--color-nav-border) 1px, transparent 1px), linear-gradient(90deg, var(--color-nav-border) 1px, transparent 1px);
    background-size: 42px 42px;
    transform: rotate(-8deg);
}
.map-static__marker {
    position: relative;
    display: grid;
    width: 64px;
    height: 64px;
    place-items: center;
    border-radius: 50% 50% 50% 0;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: 2rem;
    font-weight: 700;
    transform: rotate(-45deg);
}
.map-static__marker::first-letter { transform: rotate(45deg); }

.shop-cta { padding-block: var(--space-section-sm); background: var(--color-white); }
.shop-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }

/* Homepage section manager: only allowlisted classes are emitted by the renderer. */
.home-managed-section.section-spacing--compact { padding-block: 32px; }
.home-managed-section.section-spacing--normal { padding-block: 64px; }
.home-managed-section.section-spacing--spacious { padding-block: 96px; }
.home-managed-section.section-theme--light { background: var(--color-white); color: var(--color-text); }
.home-managed-section.section-theme--primary { background: var(--color-primary); color: var(--color-white); }
.home-managed-section.section-theme--secondary { background: var(--color-secondary); color: var(--color-white); }
.home-articles{padding-block:var(--space-section-md);background:var(--color-surface)}.home-articles__header{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}.home-articles__header h2{margin:.15em 0 0;font-size:clamp(1.8rem,4vw,3rem);overflow-wrap:anywhere}.home-articles__links{display:flex;gap:18px;flex-wrap:wrap}.home-articles__links a{color:inherit;font-weight:700}.home-articles__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.home-articles .article-card{color:var(--color-text);border:0;border-radius:var(--radius-card);overflow:hidden;box-shadow:0 8px 28px rgba(20,35,50,.12)}.article-card__image{display:block}.article-card__body{padding:20px}.article-card__body h2,.article-card__body h3{margin:.55rem 0;line-height:1.16;overflow-wrap:anywhere}.article-card__body h3{font-size:1.35rem}.article-card__categories{margin:10px 0 0;color:#596579;font-size:.9rem}.article-card__excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.article-card__body time{display:block;margin-top:12px}.article-card__body .article-read{display:inline-flex;gap:6px;margin-top:14px;font-weight:700}.section-theme--primary .home-articles__header,.section-theme--secondary .home-articles__header{color:var(--color-white)}@media(max-width:900px){.home-articles__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.home-articles__header{align-items:start;flex-direction:column}.home-articles__grid{grid-template-columns:1fr}}
.product-overview.section-layout--relaxed .product-overview__grid { gap: 32px; }
.about-tutorials.section-layout--reversed .split-content { flex-direction: column-reverse; }
.certificate-banner.section-layout--centered .certificate-banner__content { text-align: center; }
.certificate-banner.section-layout--centered .certificate-banner__body { margin-inline: auto; }
.home-contact.section-layout--stacked .home-contact__main { grid-template-columns: 1fr; }
.documents-hero{padding-block:calc(var(--space-section-md) + 90px) var(--space-section-sm);background:var(--color-primary);color:var(--color-white)}.documents-public{min-height:45vh;padding-block:var(--space-section-md);background:var(--color-surface)}.documents-public__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.document-public-card{display:grid;grid-template-columns:auto 1fr;gap:16px;border-radius:var(--radius-card);background:var(--color-white);padding:24px}.document-public-card .btn{grid-column:1/-1;width:max-content}.document-public-card h2,.document-public-card p{margin-block:4px}.document-pdf-icon{display:grid;width:52px;height:60px;place-items:center;border-radius:7px;background:#fee2e2;color:#991b1b;font-weight:800}.documents-empty{text-align:center;padding:48px 0}
.error-page { min-height: 70vh; padding-top: 160px; }
.error-page__content { display: grid; justify-items: start; gap: 24px; }
.error-page__code { color: var(--color-accent); font-size: 5rem; font-weight: 700; line-height: 1; }

/* 11 Footer */
.site-footer { color: var(--color-white); }
.site-footer__main { padding-block: 48px; background: var(--color-secondary); }
.site-footer__grid { display: grid; gap: 36px; }
.site-footer .brand { color: var(--color-white); }
.footer-nav { display: grid; gap: 12px; }
.footer-nav a { width: fit-content; border-bottom: 2px solid transparent; font-weight: 600; }
.footer-nav a:hover { border-bottom-color: var(--color-accent); }
.site-footer__cta { display: flex; align-items: flex-start; }
.site-footer__bottom { padding-block: 24px; background: var(--color-primary); }

/* 12 Responsive */
@media (min-width: 768px) {
    .product-overview__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
    .product-category-card__link { min-height: 280px; grid-template-columns: 1fr; grid-template-rows: minmax(150px, 1fr) auto; text-align: center; }
    .product-category-card__image { width: min(100%, 210px); margin: auto; }
    .certificate-banner__content { padding: 48px 48px 144px; }
    .site-footer__grid { grid-template-columns: 1fr 1fr; }
    .site-footer__cta { grid-column: 2; }
}

@media (min-width: 976px) {
    :root { --space-page: 5vw; --header-offset: 20px; }
    .site-header { padding-inline: var(--header-offset); }
    .site-header__panel { min-height: 80px; padding: 14px 18px; }
    .menu-toggle { display: none; }
    .desktop-nav { display: block; margin-left: auto; }
    .site-header .site-header__shop { display: inline-flex; }
    .site-header__brand .brand--mobile-selected { display: none; }
    .header-desktop-logo--auto .brand--desktop-compact,.header-desktop-logo--compact .brand--desktop-compact { display: inline-flex; }
    .header-desktop-logo--full .brand--desktop-full { display: inline-flex; }
    .site-header__shop { min-height: 44px; padding-inline: 18px; }
    .desktop-nav__list a { padding-inline: 9px; font-size: .9375rem; white-space: nowrap; }
    .hero { height: 80vh; min-height: 600px; align-items: center; }
    .hero-height--compact { height: 64vh; min-height: 520px; }
    .hero-height--large { height: 90vh; min-height: 720px; }
    .hero-height--full { height: 100vh; min-height: 600px; }
    .hero__content { margin-top: 24px; }
    .hero__media img { object-position: center; }
    .product-overview { padding-bottom: var(--space-section-md); }
    .product-overview__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .product-category-card__link { height: 100%; min-height: 310px; }
    .about-tutorials { padding-block: var(--space-section-md); }
    .about-tutorials__grid { grid-template-columns: 2fr 1fr; gap: 48px; }
    .split-content--featured { padding-right: 48px; }
    .split-content__image { flex: 1; min-height: 230px; }
    .certificate-banner { padding: var(--space-section-lg) 2vw; }
    .certificate-banner__inner { display: grid; grid-template-columns: 2fr 1fr; align-items: center; }
    .certificate-banner__content { padding: 64px; }
    .certificate-banner__visual { position: relative; inset: auto; height: 100%; min-height: 360px; padding-right: 18%; clip-path: polygon(35% 0, 100% 0, 100% 100%, 0 100%); }
    .home-contact__main { grid-template-columns: 1fr 1fr; align-items: stretch; }
    .home-contact__content { display: flex; min-height: 480px; align-items: flex-start; justify-content: center; flex-direction: column; padding: var(--space-section-md) 5vw; text-align: left; }
    .home-contact__body { margin-inline: 0; }
    .map-static { min-height: 480px; }
    .map-static::before { background: linear-gradient(to left, transparent 60%, var(--color-white)); }
    .shop-cta { padding-block: var(--space-section-md); }
    .site-footer__grid { grid-template-columns: 1fr 1fr auto; align-items: start; }
    .site-footer__cta { grid-column: auto; }
}

@media (min-width: 1200px) {
    .desktop-nav__list a { padding-inline: 16px; font-size: 1.0625rem; }
}

@media (min-width: 1440px) {
    :root { --space-page: 10vw; }
    .hero { min-height: 800px; }
    .site-header__panel { padding-inline: 20px; }
    .header-desktop-logo--auto .brand--desktop-full { display: inline-flex; }
    .header-desktop-logo--auto .brand--desktop-compact { display: none; }
    .desktop-nav__list a { font-size: 1.125rem; }
    .certificate-banner { padding-inline: 10vw; }
    .home-contact__content { padding-left: 10vw; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
.products-page{min-height:50vh;padding-block:var(--space-section-md);background:var(--color-surface)}.product-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}.product-filters a{border:1px solid var(--color-primary);border-radius:var(--radius-button);padding:8px 14px}.product-filters a[aria-current]{background:var(--color-primary);color:#fff}.public-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.public-product-card{display:flex;flex-direction:column;border-radius:var(--radius-card);background:#fff;padding:18px;overflow:hidden}.public-product-card__image,.product-detail__image{display:grid;place-items:center;background:var(--color-surface);color:var(--color-muted)}.public-product-card__image{aspect-ratio:1;margin:-18px -18px 18px}.public-product-card__image img,.product-detail__image img{width:100%;height:100%;object-fit:contain}.public-product-card .btn{width:max-content;margin-top:auto}.product-detail{padding-block:calc(var(--space-section-md) + 90px) var(--space-section-md)}.breadcrumb{margin-bottom:28px;color:var(--color-muted)}.product-detail__hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:48px}.product-detail__image{min-height:480px;border-radius:var(--radius-card)}.product-description,.product-documents{max-width:900px;margin-top:var(--space-section-md)}.product-documents{display:grid;gap:10px}.product-documents h2{margin-bottom:8px}.product-documents a{display:flex;justify-content:space-between;gap:20px;border:1px solid #d9dde5;border-radius:8px;padding:16px}@media(max-width:1000px){.public-product-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.public-product-grid{grid-template-columns:repeat(2,1fr)}.product-detail__hero{grid-template-columns:1fr}.product-detail__image{min-height:340px}}@media(max-width:480px){.public-product-grid{grid-template-columns:1fr}}
.showcase-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:var(--space-section-md)}.showcase-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-card)}.related-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--space-section-md)}.related-links h2{flex-basis:100%}.related-links a{border:1px solid #d9dde5;border-radius:8px;padding:12px 16px}@media(max-width:700px){.showcase-gallery{grid-template-columns:1fr}}
.footer-theme--primary .site-footer__main{background:var(--color-primary)}.footer-theme--secondary .site-footer__main{background:var(--color-secondary)}.footer-spacing--compact .site-footer__main{padding-block:32px}.footer-spacing--normal .site-footer__main{padding-block:64px}.footer-spacing--spacious .site-footer__main{padding-block:96px}.has-children{position:relative}.nav-children{position:absolute;z-index:20;display:none;min-width:210px;background:var(--color-white);padding:10px;box-shadow:var(--header-shadow)}.has-children:hover>.nav-children,.has-children:focus-within>.nav-children{display:grid}

/* Privacy consent: first-party UI; trackers are injected only after opt-in. */
.footer-privacy-button{border:0;border-bottom:2px solid var(--color-accent);padding:4px 0;background:transparent;color:var(--color-white);cursor:pointer;font-weight:600}.site-footer__cta{flex-wrap:wrap;gap:16px}.consent-banner{position:fixed;z-index:300;right:16px;bottom:16px;left:16px;display:grid;max-width:1180px;margin:auto;gap:18px;border:1px solid var(--color-nav-border);border-radius:var(--radius-lg);padding:20px;background:var(--color-white);box-shadow:0 14px 50px rgb(9 25 82 / 25%);color:var(--color-text)}.consent-banner[hidden],.consent-modal[hidden]{display:none}.consent-banner p{max-width:700px;margin-top:6px}.consent-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.consent-actions button,.consent-panel button{min-height:44px;border:2px solid var(--color-primary);border-radius:var(--radius-button);padding:9px 14px;background:var(--color-white);color:var(--color-primary);cursor:pointer;font-weight:700}.consent-actions button:hover,.consent-panel button:hover{background:var(--color-primary);color:var(--color-white)}.consent-modal{position:fixed;z-index:320;inset:0;display:grid;place-items:center;overflow:auto;padding:20px;background:rgb(15 23 42 / 58%)}.consent-panel{width:min(100%,580px);border-radius:var(--radius-lg);padding:24px;background:var(--color-white);color:var(--color-text);box-shadow:0 20px 70px rgb(0 0 0 / 30%)}.consent-panel__heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.consent-panel__heading button{width:44px;padding:0;font-size:1.8rem}.consent-choice{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;border:1px solid var(--color-nav-border);border-radius:var(--radius-md);padding:16px}.consent-choice span{display:grid}.consent-choice small{margin-top:4px}.consent-choice input{width:24px;height:24px;flex:0 0 auto;accent-color:var(--color-primary)}.consent-panel__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}body.consent-is-open{overflow:hidden}@media(min-width:900px){.consent-banner{grid-template-columns:1fr auto;align-items:center}.consent-actions{min-width:510px}}@media(max-width:600px){.consent-banner{max-height:calc(100svh - 24px);right:12px;bottom:12px;left:12px;overflow:auto;padding:16px}.consent-actions{grid-template-columns:1fr}.consent-panel{padding:18px}.consent-panel__actions{display:grid}.consent-panel__actions button{width:100%}}
.contact-page-grid{display:grid;gap:32px}.contact-details{display:grid;align-content:start;justify-items:start;gap:14px}.contact-form-card{min-width:0;border-radius:var(--radius-card);padding:clamp(20px,4vw,36px);background:var(--color-white);box-shadow:0 8px 30px var(--color-shadow)}.contact-form{position:relative;display:grid;gap:8px;margin-top:20px}.contact-form label{margin-top:10px;font-weight:700}.contact-form input,.contact-form textarea{width:100%;min-width:0;border:1px solid var(--color-nav-border);border-radius:var(--radius-sm);padding:11px 12px;background:var(--color-white);color:var(--color-text)}.contact-form textarea{resize:vertical}.contact-form [aria-invalid=true]{border-color:#a32121}.field-error{display:block;color:#8b1d1d;font-weight:700}.character-count{justify-self:end;color:var(--color-muted)}.contact-form .btn{justify-self:start;margin-top:12px}.contact-form button:disabled{cursor:wait;opacity:.7}.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.contact-notice{margin:18px 0;border-left:4px solid var(--color-primary);border-radius:4px;padding:12px 14px;background:var(--color-surface)}.contact-notice--error{border-left-color:#a32121}.contact-notice--success{border-left-color:#24723c}@media(min-width:900px){.contact-page-grid{grid-template-columns:minmax(240px,.8fr) minmax(0,1.5fr);align-items:start}}@media(max-width:420px){.contact-form-card{padding:18px}.contact-form .btn{width:100%}}
.legal-page{min-height:45vh;padding-block:var(--space-section-md);background:var(--color-white)}.legal-article{max-width:900px}.legal-content{font-size:1.0625rem;line-height:1.75;overflow-wrap:anywhere}.legal-content p+p{margin-top:1.25em}.legal-meta{display:flex;flex-wrap:wrap;gap:16px 32px;margin:0 0 32px;padding-bottom:20px;border-bottom:1px solid var(--color-nav-border)}.legal-meta div{display:flex;gap:8px}.legal-meta dt{font-weight:700}.legal-meta dd{margin:0}.footer-legal strong{color:var(--color-accent)}.consent-legal-links,.contact-legal-links{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px}.consent-legal-links a,.contact-legal-links a{text-decoration:underline;text-underline-offset:3px}.contact-legal-links{padding-block:18px}.legal-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px}.legal-editor textarea{min-height:420px;resize:vertical}.legal-publish-actions{display:flex;gap:12px;margin-top:18px}@media(max-width:700px){.legal-admin-grid{grid-template-columns:1fr}.legal-editor textarea{min-height:320px}}
.article-index-head{padding-block:clamp(48px,7vw,96px) 28px}.article-index-head h1{margin:.2em 0}.article-index-head form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.article-index-head select{min-height:44px;padding:8px 12px}.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-bottom:64px}.article-card{min-width:0;border:1px solid var(--color-border,#ddd);background:#fff}.article-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.article-card>div{padding:20px}.article-card h2,.article-card p,.article-card a{overflow-wrap:anywhere}.article-card h2{margin:.5rem 0}.article-read{display:inline-block;margin-top:14px;font-weight:700}.article-empty{grid-column:1/-1}.article-detail__inner{max-width:920px;padding-block:48px 80px}.article-detail h1{font-size:clamp(2rem,5vw,4rem);overflow-wrap:anywhere}.article-lead{font-size:1.25rem}.article-meta{display:flex;gap:18px;flex-wrap:wrap}.article-cover{width:100%;max-height:600px;object-fit:cover;margin:30px 0}.article-content{font-size:1.08rem;line-height:1.75;overflow-wrap:anywhere}.article-content blockquote{border-left:4px solid var(--color-accent,#d8ab21);margin:24px 0;padding:8px 20px}.article-content a{overflow-wrap:anywhere}.article-relations{margin-top:36px}.article-relations a{display:inline-flex;margin:0 10px 10px 0;padding:8px 12px;border:1px solid currentColor;overflow-wrap:anywhere}.pagination{display:flex;justify-content:center;gap:8px;padding:0 0 60px}.pagination a{padding:8px 12px}@media(max-width:900px){.article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.article-grid{grid-template-columns:1fr}.article-detail__inner{padding-block:28px 56px}}
.site-header__search{display:inline-grid;place-items:center;flex:0 0 44px;color:inherit}.mobile-search{display:grid;gap:7px;margin-top:22px}.mobile-search>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.mobile-search input,.search-form input{min-width:0;border:1px solid var(--color-nav-border);border-radius:var(--radius-sm);padding:11px 13px;font:inherit}.search-page{min-height:55vh;padding-block:clamp(40px,7vw,86px)}.search-heading{max-width:850px}.search-form{display:grid;gap:7px;margin-top:24px}.search-form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.search-notice,.search-empty{margin-top:28px;border-left:4px solid var(--color-accent);padding:14px;background:var(--color-surface)}.search-summary{margin-top:36px}.search-filters{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 32px}.search-filters a{border:1px solid var(--color-nav-border);border-radius:999px;padding:8px 13px}.search-filters a[aria-current=page]{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.search-results{display:grid;gap:18px;margin:0;padding:0;list-style:none}.search-result{border:1px solid var(--color-nav-border);border-radius:var(--radius-card);padding:clamp(18px,3vw,28px);overflow-wrap:anywhere}.search-result h2{margin:.4rem 0}.search-result mark{border-radius:2px;padding:0 .08em;background:#fff0a8}.search-result time{display:block;color:var(--color-muted)}@media(max-width:700px){.search-form>div,.mobile-search>div{grid-template-columns:1fr}.search-form button,.mobile-search button{width:100%}}@media(min-width:900px) and (max-width:1180px){.site-header__search{flex-basis:40px}.desktop-nav__list{gap:clamp(8px,1vw,16px)}.desktop-nav__list a{font-size:.92rem}}
