@font-face {
    font-family: Manrope;
    src: url('../fonts/manrope.woff2') format('woff2');
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
}

@font-face {
    font-family: 'Touche Bold';
    src: url('../fonts/Touche-Bold-BF642a2ec04a3ad.otf') format('opentype');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

:root {
    color-scheme: dark;
    --paper: #f2f0e9;
    --muted: #b8beb7;
    --ground: #141c19;
    --accent: #d4c8a5;
    --separator: #9a9e8d;
    --elphin-green: #40b345;
    --text-scale: 1;
    --font: Manrope, 'Segoe UI', Arial, sans-serif;
    --gutter: clamp(24px, 3.7vw, 72px);
    --diagonal: clamp(36px, 4.5vw, 86px);
    --duration: 550ms;
    --cta-duration: 350ms;
    --ease: cubic-bezier(.22, .61, .36, 1);
    --shade: linear-gradient(180deg, rgb(8 17 13 / 12%) 0%, rgb(8 17 13 / 3%) 30%, rgb(8 17 13 / 74%) 75%, rgb(8 17 13 / 94%) 100%);
}

* { box-sizing: border-box; }
html { background: var(--elphin-green); }
body {
    margin: 0;
    min-width: 280px;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    color: var(--paper);
    font-family: var(--font);
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
/* Scroll-reveal only activates once main.js confirms JS is running, so content
   stays visible by default for no-JS visitors (a blocked inline <noscript>
   fallback would need 'unsafe-inline' in the CSP, which we'd rather avoid). */
.js-reveal [data-reveal] { opacity: 0; }
.js-reveal .statement__headline[data-reveal],
.js-reveal .contact-page__headline[data-reveal] { transform: translateY(18px); }
.js-reveal .statement__tagline[data-reveal],
.js-reveal .statement__text[data-reveal],
.js-reveal .contact-page__lede[data-reveal],
.js-reveal .contact-page__email[data-reveal] { transform: translateY(10px); }
.skip-link {
    position: fixed;
    z-index: 10;
    top: 12px;
    left: 12px;
    padding: 14px 20px;
    background: var(--paper);
    color: var(--ground);
    transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }
.site-header {
    position: relative;
    padding: 32px var(--gutter) 30px;
    text-align: center;
    background: #fff;
    color: var(--ground);
}
/* Keeps the area above the header white during mobile overscroll. */
.site-header::before { content: ''; position: absolute; left: 0; right: 0; bottom: 100%; height: 100vh; background: #fff; }
.brand { display: flex; align-items: center; justify-content: center; margin: 0; }
.brand img { display: block; width: auto; height: 64px; object-fit: contain; }
.site-header p { margin: 12px 0 0; color: #59645e; font-size: calc(11px * var(--text-scale)); letter-spacing: .13em; }

/* Constant diagonal offsets keep the shared edges parallel during expansion. */
.divisions {
    display: flex;
    flex: 1;
    min-height: clamp(560px, 74vh, 820px);
    width: 100%;
    background: var(--separator);
    overflow: hidden;
    isolation: isolate;
}
.division {
    position: relative;
    display: flex;
    align-items: flex-end;
    flex: 1 1 0%;
    min-width: 0;
    margin-left: calc(-1 * var(--diagonal) + 1px);
    padding: 62px 28px 66px calc(var(--diagonal) + 24px);
    text-decoration: none;
    clip-path: polygon(var(--diagonal) 0, 100% 0, calc(100% - var(--diagonal)) 100%, 0 100%);
    transition: flex-grow var(--duration) var(--ease);
    cursor: default;
}
.division:first-child { margin-left: 0; padding-left: var(--gutter); clip-path: polygon(0 0, 100% 0, calc(100% - var(--diagonal)) 100%, 0 100%); }
.division:last-child { clip-path: polygon(var(--diagonal) 0, 100% 0, 100% 100%, 0 100%); }
.division__visual { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(ellipse at 70% 15%, #a99766, transparent 65%), #324540; }
.division:nth-child(2) .division__visual { background: radial-gradient(ellipse at 80% 0, #76876a, transparent 60%), #1e3c2b; }
.division:nth-child(3) .division__visual { background: radial-gradient(ellipse at 50% 25%, #ac956d, transparent 65%), #514337; }
.division:nth-child(4) .division__visual { background: radial-gradient(ellipse at 80% 25%, #52614d, transparent 60%), #1c2923; }
.division--active { cursor: pointer; }
.division__image, .division__shade { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.division__image { object-fit: cover; object-position: 50% 50%; transition: transform var(--duration) var(--ease); }
.division:nth-child(1) .division__image { object-position: 43% center; }
.division:nth-child(3) .division__image { object-position: 52% center; }
.division__shade { background: var(--shade); transition: opacity var(--duration) var(--ease); }
.division__content { position: relative; width: 100%; transition: transform var(--duration) var(--ease); }
.division__heading { display: flex; flex-direction: column; gap: 7px; max-width: 460px; margin: 0; text-align: left; }
.division__eyebrow { font-size: clamp(calc(11px * var(--text-scale)), .78vw, calc(13px * var(--text-scale))); font-weight: 600; line-height: 1; letter-spacing: .22em; text-transform: uppercase; color: rgb(255 255 255 / 72%); }
.division__title { margin: 0; font-size: clamp(calc(32px * var(--text-scale)), 2.3vw, calc(46px * var(--text-scale))); font-weight: 400; line-height: .97; letter-spacing: -.02em; text-wrap: balance; overflow-wrap: break-word; }
.division__detail { min-height: 112px; }
.division__subtitle { margin: 20px 0 0; max-width: 320px; font-size: clamp(calc(12px * var(--text-scale)), .85vw, calc(14px * var(--text-scale))); line-height: 1.65; color: rgb(255 255 255 / 78%); }
.division__cta {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 180px;
    max-width: 100%;
    min-height: 50px;
    margin-top: 30px;
    padding: 12px 14px;
    color: #fff;
    font-size: calc(11px * var(--text-scale));
    line-height: 1.4;
    letter-spacing: .02em;
    transition: color var(--cta-duration) var(--ease);
}
/* Only the outline is angled; the label and arrow stay upright. */
.division__cta::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    border: 1px solid rgb(255 255 255 / 28%);
    background: rgb(0 0 0 / 8%);
    transform: skewX(-4deg);
    transition: background var(--cta-duration) var(--ease), border-color var(--cta-duration) var(--ease);
}
.division__cta span { flex-shrink: 0; font-size: 20px; line-height: 1; transition: transform var(--cta-duration) var(--ease); }
.division--active:focus-visible .division__cta { color: #111; }
.division--active:focus-visible .division__cta::before { background: #fff; border-color: #fff; }
.division--active:focus-visible .division__cta span { transform: translate(3px, -3px); }
.division__badge { display: inline-block; padding: 8px 12px; margin-top: 30px; border: 1px solid #b0b9a657; color: #d5d9cd; font-size: calc(9px * var(--text-scale)); font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.division:focus-visible { outline: none; }
.division:focus-visible .division__content { outline: 2px solid var(--accent); outline-offset: 10px; }
.divisions:focus { outline: none; }
.division--active:focus-visible { flex-grow: 1.5; }
.division--active:focus-visible .division__image { transform: scale(1.035); }

/* Brand statement — the only content between the division gateway and the footer. */
.statement {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 78vh;
    padding: 110px var(--gutter);
    background: var(--elphin-green);
    color: #fff;
    text-align: center;
    overflow: hidden;
}
.statement__bg { position: absolute; inset: 0; pointer-events: none; }
.statement__bg img { position: absolute; top: 6%; right: -10%; height: 100%; width: auto; max-width: none; object-fit: cover; opacity: .1; filter: brightness(0) invert(1); }
.statement__inner { position: relative; z-index: 1; width: 100%; max-width: 1040px; margin: 0 auto; }
.statement__eyebrow {
    margin: 0 0 22px;
    font-size: calc(12px * var(--text-scale));
    font-weight: 600;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: rgb(255 255 255 / 66%);
    transition: opacity 650ms var(--ease);
}
.statement__headline {
    margin: 0;
    font-family: 'Touche Bold', var(--font);
    font-size: clamp(calc(38px * var(--text-scale)), 5.6vw, calc(84px * var(--text-scale)));
    font-weight: 700;
    line-height: 1.02;
    letter-spacing: -.01em;
    color: #fff;
    transition: opacity 700ms var(--ease) 90ms, transform 700ms var(--ease) 90ms;
}
.statement__accent { color: var(--ground); }
.statement__tagline {
    margin: 30px 0 0;
    font-size: clamp(calc(16px * var(--text-scale)), 1.3vw, calc(20px * var(--text-scale)));
    letter-spacing: .01em;
    color: rgb(255 255 255 / 82%);
    transition: opacity 650ms var(--ease) 220ms, transform 650ms var(--ease) 220ms;
}
.statement__text {
    max-width: 90ch;
    margin: 22px auto 0;
    font-size: clamp(calc(15px * var(--text-scale)), 1.05vw, calc(17px * var(--text-scale)));
    line-height: 1.7;
    color: rgb(255 255 255 / 76%);
    transition: opacity 650ms var(--ease) 320ms, transform 650ms var(--ease) 320ms;
}
.statement__logos {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 22px;
    margin: 88px 0 0;
    padding: 0;
    list-style: none;
    transition: opacity 700ms var(--ease) 420ms;
}
.statement__logos img { display: block; width: 100%; height: 100%; object-fit: contain; }

.division-logo {
    width: 100px;
    height: 100px;
    background: #fff;
    padding: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
}

.division-logo:hover {
    transform: translateY(-5px);
}
.statement__eyebrow.is-visible { opacity: 1; }
.statement__headline.is-visible { opacity: 1; transform: translateY(0); }
.statement__tagline.is-visible, .statement__text.is-visible { opacity: 1; transform: translateY(0); }
.statement__logos.is-visible { opacity: 1; }

/* Contact page — minimal, no form: an email and a nudge toward the division sites. */
.contact-page {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 64px;
    min-height: 70vh;
    padding: 110px var(--gutter);
    background: #fff;
    color: var(--ground);
    text-align: center;
}
.contact-page__inner { max-width: 640px; margin: 0 auto; }
.contact-page__eyebrow {
    margin: 0 0 22px;
    font-size: calc(12px * var(--text-scale));
    font-weight: 600;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: rgb(20 28 25 / 50%);
    transition: opacity 650ms var(--ease);
}
.contact-page__headline {
    margin: 0;
    font-family: 'Touche Bold', var(--font);
    font-size: clamp(calc(44px * var(--text-scale)), 7vw, calc(88px * var(--text-scale)));
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.01em;
    transition: opacity 700ms var(--ease) 90ms, transform 700ms var(--ease) 90ms;
}
.contact-page__lede {
    max-width: 46ch;
    margin: 26px auto 0;
    font-size: clamp(calc(16px * var(--text-scale)), 1.3vw, calc(20px * var(--text-scale)));
    color: rgb(20 28 25 / 68%);
    transition: opacity 650ms var(--ease) 220ms, transform 650ms var(--ease) 220ms;
}
.contact-page__email {
    display: inline-block;
    margin-top: 34px;
    font-family: 'Touche Bold', var(--font);
    font-size: clamp(calc(22px * var(--text-scale)), 2.4vw, calc(34px * var(--text-scale)));
    color: var(--elphin-green);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: opacity 650ms var(--ease) 320ms, transform 650ms var(--ease) 320ms, border-color 200ms var(--ease);
}
.contact-page__email:hover, .contact-page__email:focus-visible { border-color: var(--elphin-green); }
.contact-page__note {
    max-width: 48ch;
    margin: 52px auto 0;
    font-size: calc(13px * var(--text-scale));
    line-height: 1.6;
    color: rgb(20 28 25 / 50%);
    transition: opacity 700ms var(--ease) 420ms;
}
.contact-page__eyebrow.is-visible, .contact-page__note.is-visible { opacity: 1; }
.contact-page__headline.is-visible, .contact-page__lede.is-visible, .contact-page__email.is-visible { opacity: 1; transform: translateY(0); }
.contact-page__map {
    width: 100%;
    max-width: 720px;
    transition: opacity 700ms var(--ease) 420ms;
}
.contact-page__map.is-visible { opacity: 1; }
.contact-page__map iframe { display: block; width: 100%; aspect-ratio: 16 / 10; border: 1px solid rgb(20 28 25 / 12%); }
.contact-page__address {
    margin: 14px 0 0;
    font-size: calc(12px * var(--text-scale));
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgb(20 28 25 / 50%);
}

/* Legal pages (Privacy, Cookies) — read as a document, not a manifesto. */
.legal-page { flex: 1; padding: 90px var(--gutter) 100px; background: #fff; color: var(--ground); }
.legal-page__inner { max-width: 680px; margin: 0 auto; }
.legal-page__eyebrow { margin: 0 0 18px; font-size: calc(12px * var(--text-scale)); font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: rgb(20 28 25 / 50%); }
.legal-page__inner h1 { margin: 0; font-family: 'Touche Bold', var(--font); font-size: clamp(calc(34px * var(--text-scale)), 4.5vw, calc(56px * var(--text-scale))); font-weight: 700; line-height: 1.05; letter-spacing: -.01em; }
.legal-page__updated { margin: 14px 0 0; font-size: calc(12px * var(--text-scale)); color: rgb(20 28 25 / 45%); }
.legal-page__body { margin-top: 48px; }
.legal-page__body h2 { margin: 40px 0 12px; font-size: calc(18px * var(--text-scale)); font-weight: 600; letter-spacing: -.005em; }
.legal-page__body h2:first-child { margin-top: 0; }
.legal-page__body p { max-width: 65ch; margin: 0 0 16px; font-size: calc(15px * var(--text-scale)); line-height: 1.7; color: rgb(20 28 25 / 78%); }
.legal-page__body a { color: var(--elphin-green); text-decoration: underline; text-underline-offset: 2px; }

.site-footer { display: flex; flex-direction: column; gap: 16px; padding: 30px var(--gutter) 24px; background: var(--elphin-green); color: #fff; }
.site-footer__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.footer-brand { font-family: 'Touche Bold', var(--font); font-size: calc(13px * var(--text-scale)); letter-spacing: .2em; }
.site-footer__credit { display: block; width: fit-content; margin: 0 auto; opacity: .6; transition: opacity 200ms var(--ease); }
.site-footer__credit:hover, .site-footer__credit:focus-visible { opacity: 1; }
.site-footer__credit img { display: block; height: 16px; width: auto; filter: brightness(0) invert(1); }
.site-footer__links { display: flex; flex-wrap: wrap; gap: 22px; }
.site-footer__links a { color: #fff; font-size: calc(12px * var(--text-scale)); letter-spacing: .03em; text-decoration: none; opacity: .88; transition: opacity 200ms var(--ease); }
.site-footer__links a:hover, .site-footer__links a:focus-visible { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
.site-footer__address { margin: 0; text-align: right; font-style: normal; color: rgb(255 255 255 / 80%); font-size: calc(11px * var(--text-scale)); line-height: 1.6; letter-spacing: .02em; }
.site-footer__copy { margin: 0; text-align: right; color: rgb(255 255 255 / 80%); font-size: calc(10px * var(--text-scale)); line-height: 1.6; letter-spacing: .02em; }

/* Fixed text-size toggle: cycles the page's font sizes through --text-scale. */
.text-size-btn {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 70;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid rgb(255 255 255 / 20%);
    border-radius: 50%;
    background: var(--ground);
    color: var(--paper);
    font-family: var(--font);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 6px 18px rgb(0 0 0 / 22%);
    transition: transform 200ms var(--ease), background 200ms var(--ease), box-shadow 200ms var(--ease);
}
.text-size-btn:hover, .text-size-btn:focus-visible { transform: translateY(-2px); background: #1c2621; }
.text-size-btn[data-level="2"] { box-shadow: 0 6px 18px rgb(0 0 0 / 22%), 0 0 0 2px var(--elphin-green); }
.text-size-btn[data-level="3"] { box-shadow: 0 6px 18px rgb(0 0 0 / 22%), 0 0 0 2px var(--elphin-green), 0 0 0 4px rgb(64 179 69 / 35%); }

@media (hover: hover) and (pointer: fine) {
    .division--active:hover { flex-grow: 1.5; }
    .division--active:hover .division__image { transform: scale(1.035); }
    .division--active:hover .division__shade { opacity: .89; }
    .division--active:hover .division__content { transform: translateY(-5px); }
    .division--active:hover .division__cta span { transform: translate(3px, -3px); }
    .division--active:hover .division__cta { color: #111; }
    .division--active:hover .division__cta::before { background: #fff; border-color: #fff; }
    .division--active:hover .division__subtitle { color: var(--paper); }
}

@media (max-width: 1100px) and (min-width: 901px) {
    :root { --diagonal: 32px; }
    .division { padding-right: 18px; padding-left: calc(var(--diagonal) + 16px); }
    .division__eyebrow { font-size: calc(10px * var(--text-scale)); }
    .division__title { font-size: calc(26px * var(--text-scale)); }
    .division__subtitle { max-width: 140px; }
}

@media (max-width: 900px) {
    :root { --diagonal: 28px; }
    .site-header { padding-top: 30px; padding-bottom: 30px; }
    .brand img { height: 50px; }
    .site-header p { font-size: calc(10px * var(--text-scale)); }
    .divisions { display: block; flex: none; min-height: 0; background: var(--ground); }
    .division, .division:first-child, .division:last-child {
        width: 100%;
        min-height: 400px;
        min-height: max(400px, 58svh);
        margin: calc(-1 * var(--diagonal) + 1px) 0 0;
        padding: 80px var(--gutter) 65px;
        clip-path: none;
    }
    .division:first-child { margin-top: 0; }
    .division__visual { clip-path: polygon(0 var(--diagonal), 100% 0, 100% calc(100% - var(--diagonal)), 0 100%); }
    .division:first-child .division__visual { clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--diagonal)), 0 100%); }
    .division__content { max-width: 500px; }
    .division__heading { max-width: 100%; gap: 6px; }
    .division__eyebrow { font-size: calc(11px * var(--text-scale)); }
    .division__title { font-size: clamp(calc(30px * var(--text-scale)), 8vw, calc(42px * var(--text-scale))); }
    .division__subtitle { margin-top: 14px; font-size: calc(13px * var(--text-scale)); }
    .division__cta { min-height: 54px; margin-top: 26px; font-size: calc(12px * var(--text-scale)); }
    .division__badge { margin-top: 26px; }
    .division__detail { min-height: 0; }
    .division.is-scroll-active .division__image { transform: scale(1.035); }
    .division.is-scroll-active .division__shade { opacity: .89; }
    .division.is-scroll-active .division__content { transform: translateY(-5px); }
    .division.is-scroll-active .division__subtitle { color: var(--paper); }
    .division.is-scroll-active .division__cta::before { border-color: rgb(255 255 255 / 48%); }
    .division__image { object-position: center 45%; }
    .division:nth-child(1) .division__image { object-position: center 55%; }
    .division:nth-child(3) .division__image { object-position: center 55%; }
    .statement { min-height: 0; padding: 76px var(--gutter); }
    .statement__bg img { top: auto; bottom: -10%; right: -20%; height: auto; width: 140%; opacity: .1; }
    .statement__logos { gap: 16px; margin-top: 60px; }
    .division-logo { width: 76px; height: 76px; padding: 10px; }
    .contact-page { min-height: 0; padding: 76px var(--gutter); gap: 48px; }
    .contact-page__map iframe { aspect-ratio: 4 / 3; }
    .site-footer { padding: 26px var(--gutter) 20px; }
    .site-footer__row { flex-direction: column; align-items: flex-start; gap: 12px; }
    .site-footer__copy { text-align: left; }
    .site-footer__credit { margin: 0; }
    .text-size-btn { right: 14px; bottom: 14px; width: 42px; height: 42px; font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
    .division--active:hover .division__image, .division--active:focus-visible .division__image,
    .division--active:hover .division__content, .division--active:hover .division__cta span,
    .division--active:focus-visible .division__cta span,
    .division.is-scroll-active .division__image, .division.is-scroll-active .division__content { transform: none; }
}

@media (forced-colors: active) {
    .division { border: 1px solid CanvasText; }
    .division__image, .division__shade { display: none; }
    .division:focus-visible .division__content { outline-color: Highlight; }
}

/* Cookie consent */
.cookie-consent {
    position: fixed;
    z-index: 100;
    left: 16px;
    right: 16px;
    bottom: 16px;
    max-width: 760px;
    padding: 24px;
    border-radius: 14px;
    background: #141c19;
    color: #f2f0e9;
    box-shadow: 0 20px 50px rgb(0 0 0 / 40%);
    font: 400 14px/1.6 'Segoe UI', Arial, sans-serif;
}
.cookie-consent[hidden], .cookie-consent__panel[hidden] { display: none; }
.cookie-consent h2 { margin: 0 0 8px; font-size: 18px; line-height: 1.3; letter-spacing: 0; color: #fff; }
.cookie-consent h2:focus { outline: none; }
.cookie-consent p { margin: 0 0 16px; color: #d7dad4; }
.cookie-consent a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.cookie-consent__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.cookie-consent button {
    padding: 12px 20px;
    border: 2px solid #40b345;
    border-radius: 8px;
    background: #40b345;
    color: #0c1a10;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
}
.cookie-consent button:hover { background: #55c75a; border-color: #55c75a; }
.cookie-consent button[data-cc="customize"], .cookie-consent button[type="submit"].is-secondary { background: transparent; color: #fff; border-color: rgb(255 255 255 / 55%); }
.cookie-consent button[data-cc="customize"]:hover { background: rgb(255 255 255 / 10%); border-color: #fff; }
.cookie-consent button:focus-visible, .cookie-consent input:focus-visible, .cookie-consent a:focus-visible { outline: 3px solid #f8ce0e; outline-offset: 3px; }
.cookie-consent__panel { margin-top: 20px; padding-top: 18px; border-top: 1px solid rgb(255 255 255 / 20%); }
.cookie-consent__option { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0 0 14px; }
.cookie-consent__option input { grid-row: 1 / span 2; width: 20px; height: 20px; margin: 2px 0 0; accent-color: #40b345; }
.cookie-consent__option label { font-weight: 700; color: #fff; }
.cookie-consent__option small { grid-column: 2; color: #bfc4bc; font-size: 13px; line-height: 1.5; }
.cookie-consent__panel button[type="submit"] { margin-top: 4px; }

.site-footer__links .cookie-settings-link,
.cookie-settings-link {
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    cursor: pointer;
}
.cookie-settings-link:hover, .cookie-settings-link:focus-visible { text-decoration: underline; text-underline-offset: 3px; }

.map-consent { display: grid; place-content: center; gap: 14px; aspect-ratio: 16 / 10; padding: 24px; text-align: center; border: 1px solid rgb(255 255 255 / 20%); }
.map-consent[hidden] { display: none; }
.map-consent p { margin: 0; max-width: 46ch; }
.map-consent button { justify-self: center; padding: 12px 20px; border: 2px solid #40b345; border-radius: 8px; background: #40b345; color: #0c1a10; font: inherit; font-weight: 700; cursor: pointer; }
iframe[hidden] { display: none; }

@media (max-width: 760px) {
    .cookie-consent { left: 10px; right: 10px; bottom: 10px; padding: 18px; max-height: 88dvh; overflow-y: auto; }
    .cookie-consent__actions button { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: no-preference) {
    .cookie-consent { animation: cookie-rise 350ms ease-out; }
}
@keyframes cookie-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.site-footer__links .cookie-settings-link { font-size: calc(12px * var(--text-scale)); letter-spacing: .03em; color: #fff; opacity: .88; }
.site-footer__links .cookie-settings-link:hover, .site-footer__links .cookie-settings-link:focus-visible { opacity: 1; }
.legal-page__body .cookie-settings-link { color: var(--elphin-green); text-decoration: underline; text-underline-offset: 2px; font-size: calc(15px * var(--text-scale)); }
.legal-page__body h3 { margin: 24px 0 8px; font-size: calc(15px * var(--text-scale)); font-weight: 600; }
.legal-page__body ul { max-width: 65ch; margin: 0 0 16px; padding-left: 1.2em; font-size: calc(15px * var(--text-scale)); line-height: 1.7; color: rgb(20 28 25 / 78%); }
.legal-page__body dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 20px; max-width: 65ch; margin: 0 0 16px; font-size: calc(15px * var(--text-scale)); line-height: 1.6; }
.legal-page__body dt { font-weight: 600; }
.legal-page__body dd { margin: 0; color: rgb(20 28 25 / 78%); }
.legal-page__table { overflow-x: auto; margin: 0 0 16px; }
.legal-page__table table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: calc(13px * var(--text-scale)); line-height: 1.5; }
.legal-page__table th, .legal-page__table td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid rgb(20 28 25 / 15%); }
.legal-page__table th { font-weight: 600; background: rgb(20 28 25 / 5%); }
.legal-page__table:focus-visible { outline: 3px solid var(--elphin-green); outline-offset: 3px; }
.not-found h1 { margin-bottom: 18px; }

/* Inline SVG icons (replace arrow glyphs that render as emoji on iOS/Android). */
.icon { display: inline-block; width: 1em; height: 1em; flex: none; vertical-align: -.14em; }

/* Keep arrow icons steady while scrolling (own compositing layer, crisp strokes). */
.icon { transform: translateZ(0); backface-visibility: hidden; shape-rendering: geometricPrecision; }
