/* Banner, pannello preferenze e pagine legali del sistema consenso. */
.consent-open { overflow: hidden; }
.waves-consent { position: fixed; z-index: 9999; inset: 0; pointer-events: none; }
.waves-consent[hidden],
.waves-consent [hidden] { display: none !important; pointer-events: none !important; }
.waves-consent:not(.is-banner-visible) .consent-banner,
.waves-consent:not(.is-panel-visible) .consent-panel,
.waves-consent:not(.is-panel-visible) .consent-overlay { pointer-events: none !important; }
.consent-banner { position: absolute; right: 24px; bottom: 24px; left: 24px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 34px; align-items: center; width: min(calc(100% - 48px),1380px); margin-inline: auto; padding: 24px 26px; border: 1px solid rgba(255,255,255,.88); border-radius: 24px; background: rgba(255,255,255,.84); box-shadow: 0 28px 90px rgba(17,17,17,.16),inset 0 1px 0 #fff; backdrop-filter: blur(28px) saturate(165%); -webkit-backdrop-filter: blur(28px) saturate(165%); opacity: 0; pointer-events: auto; transform: translateY(24px); transition: opacity .32s cubic-bezier(.22,.61,.36,1),transform .32s cubic-bezier(.22,.61,.36,1); }
.is-banner-visible .consent-banner { opacity: 1; transform: translateY(0); }
.consent-banner-copy { display: grid; grid-template-columns: 54px 1fr; gap: 20px; align-items: start; }.consent-badge { display: grid; place-items: center; width: 54px; height: 54px; border: 1px solid rgba(5,148,68,.16); border-radius: 16px; color: var(--waves-green,#059444); background: rgba(5,148,68,.06); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.consent-banner h2,.consent-panel h2 { margin: 0; color: #111; font-size: 22px; line-height: 1.2; letter-spacing: -.03em; }.consent-banner p { max-width: 760px; margin: 6px 0 0; color: #5b615d; font-size: 13px; line-height: 1.55; }.consent-links { display: flex; gap: 16px; }.consent-links a { color: var(--waves-green,#059444); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.consent-banner-actions,.consent-panel footer { display: flex; gap: 10px; align-items: center; }.consent-button,.consent-link-button { min-height: 48px; padding: 0 19px; border-radius: 14px; font: 700 13px/1 inherit; cursor: pointer; transition: color .25s ease,background .25s ease,border-color .25s ease,transform .25s ease; }.consent-button:hover,.consent-link-button:hover { transform: translateY(-1px); }.consent-button-primary { border: 1px solid #059444; color: #fff; background: #059444; }.consent-button-primary:hover { background: #047e3a; }.consent-button-outline { border: 1px solid rgba(5,148,68,.55); color: #059444; background: rgba(255,255,255,.6); }.consent-button-outline:hover { color: #fff; background: #059444; }.consent-link-button { border: 0; color: #434844; background: transparent; text-decoration: underline; text-underline-offset: 4px; }
.consent-overlay { position: absolute; inset: 0; background: rgba(8,13,10,.34); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); opacity: 0; pointer-events: auto; transition: opacity .3s ease; }.is-panel-visible .consent-overlay { opacity: 1; }
.consent-panel { position: absolute; top: 50%; left: 50%; display: grid; grid-template-rows: auto minmax(0,1fr) auto; width: min(calc(100% - 40px),820px); max-height: min(820px,calc(100dvh - 40px)); overflow: hidden; border: 1px solid rgba(255,255,255,.90); border-radius: 28px; background: rgba(255,255,255,.91); box-shadow: 0 38px 120px rgba(0,0,0,.20),inset 0 1px 0 #fff; backdrop-filter: blur(32px) saturate(160%); -webkit-backdrop-filter: blur(32px) saturate(160%); opacity: 0; pointer-events: auto; transform: translate(-50%,calc(-50% + 22px)); transition: opacity .3s cubic-bezier(.22,.61,.36,1),transform .3s cubic-bezier(.22,.61,.36,1); }.is-panel-visible .consent-panel { opacity: 1; transform: translate(-50%,-50%); }.consent-panel > header { display: flex; justify-content: space-between; gap: 24px; padding: 30px 32px 24px; border-bottom: 1px solid rgba(17,17,17,.06); }.consent-eyebrow { display: block; margin-bottom: 7px; color: #059444; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.consent-panel header p { margin: 7px 0 0; color: #686e69; font-size: 13px; }.consent-panel-close { display: grid; flex: 0 0 auto; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; color: #535954; background: rgba(17,17,17,.045); font-size: 22px; cursor: pointer; }
.consent-options { overflow-y: auto; padding: 8px 32px; }.consent-option { display: grid; grid-template-columns: minmax(0,1fr) 132px; gap: 30px; align-items: center; padding: 23px 0; border-bottom: 1px solid rgba(17,17,17,.06); }.consent-option:last-child { border: 0; }.consent-option h3 { margin: 0; color: #171917; font-size: 16px; }.consent-option p { max-width: 560px; margin: 7px 0 0; color: #686e69; font-size: 13px; line-height: 1.55; }.consent-switch { display: grid; grid-template-columns: 48px 1fr; gap: 8px; align-items: center; cursor: pointer; }.consent-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; }.consent-switch span { position: relative; width: 48px; height: 28px; border-radius: 999px; background: #d9ddda; transition: background .25s ease; }.consent-switch span::after { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.16); content: ""; transition: transform .25s cubic-bezier(.22,.61,.36,1); }.consent-switch input:checked + span { background: #059444; }.consent-switch input:checked + span::after { transform: translateX(20px); }.consent-switch input:focus-visible + span { outline: 3px solid rgba(5,148,68,.28); outline-offset: 3px; }.consent-switch input:disabled + span { opacity: .75; }.consent-switch b { grid-column: 1 / -1; color: #747a76; font-size: 10px; font-weight: 700; }.consent-panel > footer { justify-content: flex-end; padding: 20px 32px; border-top: 1px solid rgba(17,17,17,.06); background: rgba(255,255,255,.72); }
.cookie-preferences-card { padding: 32px; border: 1px solid rgba(5,148,68,.12); border-radius: 24px; background: rgba(255,255,255,.72); box-shadow: 0 24px 70px rgba(17,17,17,.06); }.cookie-preferences-card h2 { margin-top: 0; }
.legal-page { min-height: 75vh; padding: 160px 0 110px; background: #f8faf9; }.legal-shell { max-width: 1040px; }.legal-page h1 { margin: 0; font-size: clamp(52px,6vw,80px); line-height: 1; letter-spacing: -.055em; }.legal-content { margin: 50px 0; padding: 48px; border: 1px solid rgba(255,255,255,.9); border-radius: 28px; background: rgba(255,255,255,.72); box-shadow: 0 30px 90px rgba(17,17,17,.06); font-size: 17px; line-height: 1.75; }.legal-content h2 { margin-top: 42px; font-size: 30px; }.legal-content a { color: #059444; text-decoration: underline; }
@media (max-width:780px) { .consent-banner { right: 12px; bottom: 12px; left: 12px; display: block; width: auto; padding: 22px; border-radius: 22px; }.consent-banner-copy { grid-template-columns: 1fr; gap: 12px; }.consent-badge { width: auto; height: auto; place-items: start; border: 0; background: transparent; }.consent-banner h2 { font-size: 20px; }.consent-banner-actions { display: grid; margin-top: 18px; }.consent-button,.consent-link-button { width: 100%; }.consent-panel { top: auto; bottom: 0; left: 0; width: 100%; max-height: 92dvh; border-radius: 24px 24px 0 0; transform: translateY(28px); }.is-panel-visible .consent-panel { transform: translateY(0); }.consent-panel > header,.consent-options,.consent-panel > footer { padding-right: 20px; padding-left: 20px; }.consent-option { grid-template-columns: 1fr; gap: 14px; padding: 20px 0; }.consent-panel > footer { display: grid; }.consent-switch { grid-template-columns: 48px 1fr; }.consent-switch b { grid-column: auto; } }
@media (prefers-reduced-motion:reduce) { .consent-banner,.consent-overlay,.consent-panel,.consent-button,.consent-link-button,.consent-switch span,.consent-switch span::after { transition: none; } }
@media (max-width:780px) { .legal-page { padding: 120px 0 80px; }.legal-content { margin-top: 34px; padding: 28px 22px; } }

/* Dedicated policy pages */
.legal-page { padding: 0 0 120px; background: radial-gradient(circle at 82% 8%,rgba(5,148,68,.07),transparent 24%),#f8faf9; }
.legal-hero { padding: 160px 0 76px; border-bottom: 1px solid rgba(17,17,17,.055); }
.legal-hero-inner { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 56px; align-items: end; }
.legal-hero h1 { margin: 0; font-size: clamp(60px,6vw,88px); line-height: .96; letter-spacing: -.06em; }
.legal-hero p:not(.eyebrow) { max-width: 700px; margin: 26px 0 0; color: #59605c; font-size: 19px; line-height: 1.65; }
.legal-download { display: inline-flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 60px; padding: 0 22px; border: 1px solid #059444; border-radius: 16px; color: #059444; background: rgba(255,255,255,.66); font-size: 13px; font-weight: 750; transition: color .25s ease,background .25s ease,transform .25s ease; }.legal-download:hover { color: #fff; background: #059444; transform: translateY(-2px); }.legal-download span { font-size: 20px; }
.legal-layout { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: 52px; align-items: start; padding-top: 62px; }
.legal-toc { position: sticky; top: 112px; max-height: calc(100vh - 140px); padding: 24px; overflow-y: auto; border: 1px solid rgba(255,255,255,.92); border-radius: 22px; background: rgba(255,255,255,.70); box-shadow: 0 22px 64px rgba(17,17,17,.055); backdrop-filter: blur(20px); scrollbar-width: thin; }.legal-toc > strong { display: block; margin-bottom: 15px; color: #111; font-size: 13px; }.legal-toc nav { display: grid; gap: 2px; }.legal-toc a { display: block; padding: 8px 10px; border-radius: 9px; color: #666d68; font-size: 11px; line-height: 1.35; }.legal-toc a:hover { color: #059444; background: rgba(5,148,68,.06); }.legal-toc > a:last-child { margin-top: 15px; border: 1px solid rgba(5,148,68,.20); color: #059444; font-weight: 750; }
.legal-content { min-width: 0; margin: 0; padding: clamp(34px,4vw,64px); font-size: 16px; line-height: 1.75; }.legal-content h2 { scroll-margin-top: 120px; margin: 72px 0 20px; padding-top: 8px; color: #111; font-size: clamp(28px,3vw,38px); line-height: 1.12; letter-spacing: -.038em; }.legal-content h2:first-child { margin-top: 0; }.legal-content h3 { scroll-margin-top: 120px; margin: 44px 0 16px; color: #111; font-size: 23px; line-height: 1.2; }.legal-content p { margin: 0 0 18px; color: #414743; }.legal-content ul { margin: 0 0 26px; padding-left: 22px; }.legal-content li { margin: 9px 0; padding-left: 5px; }.legal-content li::marker { color: #059444; }.legal-note { margin: 26px 0; padding: 22px 24px; border-left: 3px solid #059444; border-radius: 0 16px 16px 0; color: #454c47; background: rgba(5,148,68,.055); font-size: 14px; }.legal-content pre { max-width: 100%; margin: 26px 0; padding: 22px; overflow-x: auto; border: 1px solid rgba(17,17,17,.08); border-radius: 16px; color: #dcf8e8; background: #151816; font-size: 12px; line-height: 1.6; white-space: pre-wrap; }.legal-table-scroll { max-width: 100%; margin: 28px 0 36px; overflow-x: auto; border: 1px solid rgba(17,17,17,.07); border-radius: 17px; background: rgba(255,255,255,.72); }.legal-table-scroll:focus-visible { outline: 3px solid rgba(5,148,68,.28); }.legal-content table { width: 100%; min-width: 690px; border-collapse: collapse; font-size: 12px; line-height: 1.45; }.legal-content th,.legal-content td { padding: 14px 16px; border-right: 1px solid rgba(17,17,17,.06); border-bottom: 1px solid rgba(17,17,17,.06); text-align: left; vertical-align: top; }.legal-content th { color: #111; background: rgba(5,148,68,.07); font-weight: 800; }.legal-content tr:last-child td { border-bottom: 0; }.legal-content th:last-child,.legal-content td:last-child { border-right: 0; }.legal-content .cookie-preferences-card { margin-top: 70px; }.cookie-preferences-card .consent-button { width: auto; }
@media (max-width:960px) { .legal-layout { grid-template-columns: 1fr; }.legal-toc { position: static; max-height: none; }.legal-toc nav { grid-template-columns: 1fr 1fr; } }
@media (max-width:780px) { .legal-page { padding: 0 0 80px; }.legal-hero { padding: 124px 0 54px; }.legal-hero-inner { grid-template-columns: 1fr; gap: 28px; }.legal-hero h1 { font-size: 52px; }.legal-download { width: 100%; }.legal-layout { gap: 24px; padding-top: 30px; }.legal-toc nav { grid-template-columns: 1fr; }.legal-content { margin: 0; padding: 28px 22px; }.legal-content h2 { margin-top: 54px; }.legal-content table { min-width: 620px; }.cookie-preferences-card .consent-button { width: 100%; } }

/* Public cookie settings */
.cookie-settings-page { min-height: 80vh; padding: 0 0 120px; background: radial-gradient(circle at 80% 5%,rgba(5,148,68,.075),transparent 25%),#f8faf9; }.cookie-settings-narrow { max-width: 960px; }.cookie-settings-hero { padding: 160px 0 72px; border-bottom: 1px solid rgba(17,17,17,.055); }.cookie-settings-hero h1 { margin: 0; font-size: clamp(62px,7vw,92px); line-height: .96; letter-spacing: -.062em; }.cookie-settings-hero p:not(.eyebrow) { max-width: 800px; margin: 28px 0 0; color: #555d58; font-size: 19px; line-height: 1.68; }.cookie-settings-stack { display: grid; gap: 58px; padding-top: 56px; }.cookie-status-card { display: grid; grid-template-columns: minmax(0,1.1fr) .65fr 1fr; gap: 30px; align-items: center; padding: 30px 34px; border: 1px solid rgba(255,255,255,.92); border-radius: 24px; background: rgba(255,255,255,.72); box-shadow: 0 24px 70px rgba(17,17,17,.06),inset 0 1px 0 #fff; backdrop-filter: blur(22px); }.cookie-status-card > div:first-child { display: flex; gap: 15px; align-items: center; }.cookie-status-dot { width: 12px; height: 12px; border: 3px solid rgba(5,148,68,.17); border-radius: 50%; background: #059444; box-shadow: 0 0 0 6px rgba(5,148,68,.08); }.cookie-status-card h2 { margin: 0 0 4px; font-size: 16px; }.cookie-status-card strong { color: #059444; font-size: 12px; }.cookie-status-card dl,.cookie-status-card ul { margin: 0; }.cookie-status-card dl div { display: grid; gap: 3px; }.cookie-status-card dt { color: #747a76; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }.cookie-status-card dd { margin: 0; font-size: 12px; font-weight: 700; }.cookie-status-card ul { display: grid; gap: 3px; padding: 0; list-style: none; font-size: 10px; }.cookie-status-card li::before { display: inline-block; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; content: ""; }.cookie-status-card li.is-enabled::before { background: #059444; }.cookie-status-card li.is-disabled::before { background: #c8ceca; }.cookie-settings-section-head h2 { margin: 0; font-size: clamp(38px,5vw,54px); line-height: 1.04; letter-spacing: -.05em; }.cookie-settings-cards { display: grid; gap: 16px; margin-top: 32px; }.cookie-setting-card { display: grid; grid-template-columns: minmax(0,1fr) 135px; gap: 40px; align-items: center; padding: 30px 34px; border: 1px solid rgba(255,255,255,.92); border-radius: 22px; background: rgba(255,255,255,.70); box-shadow: 0 20px 58px rgba(17,17,17,.05),inset 0 1px 0 #fff; backdrop-filter: blur(20px); }.cookie-setting-card > div > span { color: #059444; font-size: 10px; font-weight: 800; letter-spacing: .08em; }.cookie-setting-card h3 { margin: 7px 0 9px; font-size: 21px; letter-spacing: -.025em; }.cookie-setting-card p { max-width: 680px; margin: 0; color: #606762; font-size: 13px; line-height: 1.62; }.cookie-page-switch { justify-self: end; }.cookie-settings-actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 28px; border: 1px solid rgba(5,148,68,.10); border-radius: 22px; background: rgba(255,255,255,.63); }.cookie-settings-links { padding-top: 10px; }.cookie-settings-links h2 { margin: 0 0 22px; font-size: 28px; }.cookie-settings-links > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }.cookie-settings-links a { display: flex; align-items: center; justify-content: space-between; min-height: 76px; padding: 0 22px; border: 1px solid rgba(17,17,17,.07); border-radius: 18px; background: rgba(255,255,255,.72); font-size: 13px; font-weight: 750; }.cookie-settings-links a:hover { color: #059444; border-color: rgba(5,148,68,.20); }.cookie-settings-links a > span:not([aria-hidden]) { color: #606762; font-size: 10px; font-weight: 500; }
.waves-embed-placeholder { display: grid; place-items: center; min-height: 320px; padding: 40px; border: 1px solid rgba(5,148,68,.14); border-radius: 24px; text-align: center; background: linear-gradient(145deg,rgba(255,255,255,.86),rgba(5,148,68,.055)); box-shadow: inset 0 1px 0 #fff; }.waves-embed-placeholder p { max-width: 590px; margin: 18px auto 24px; color: #59605c; }.waves-embed-lock { display: grid; place-items: center; width: 64px; height: 64px; border: 1px solid rgba(5,148,68,.18); border-radius: 20px; color: #059444; background: rgba(255,255,255,.76); font-size: 30px; }.waves-embed-placeholder + iframe,.single-content iframe { width: 100%; min-height: 480px; border: 0; border-radius: 20px; }
@media (max-width:780px) { .cookie-settings-page { padding-bottom: 80px; }.cookie-settings-hero { padding: 122px 0 50px; }.cookie-settings-hero h1 { font-size: 52px; }.cookie-settings-stack { gap: 42px; padding-top: 32px; }.cookie-status-card { grid-template-columns: 1fr; padding: 25px 22px; }.cookie-setting-card { grid-template-columns: 1fr; gap: 20px; padding: 26px 22px; }.cookie-page-switch { justify-self: start; }.cookie-settings-actions { display: grid; padding: 20px; }.cookie-settings-actions .consent-button,.cookie-settings-actions .consent-link-button { width: 100%; }.cookie-settings-links > div { grid-template-columns: 1fr; }.waves-embed-placeholder { min-height: 260px; padding: 28px 20px; } }

/* Company-inspired visual system for legal and consent pages */
.legal-page .company-eyebrow,.cookie-settings-page .eyebrow { margin: 0 0 24px; color: #059444; font-size: 12px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.legal-page .company-glass,.cookie-settings-page .company-glass { border: 1px solid rgba(17,17,17,.06); background: rgba(255,255,255,.68); box-shadow: 0 30px 80px rgba(0,0,0,.05),inset 0 1px 0 rgba(255,255,255,.94); backdrop-filter: blur(22px) saturate(165%); -webkit-backdrop-filter: blur(22px) saturate(165%); }
.legal-layout-single { padding-top:56px; }
.accessibility-page .legal-content,.sitemap-page .legal-content { margin:0; }
.legal-page .company-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 58px; padding: 0 22px; border: 1px solid #059444; border-radius: 16px; color: #059444; background: rgba(255,255,255,.70); font-size: 14px; font-weight: 700; transition: color .3s ease-out,background .3s ease-out,box-shadow .3s ease-out,transform .3s ease-out; }.legal-page .company-button:hover { color: #fff; background: #059444; box-shadow: 0 14px 34px rgba(5,148,68,.17); transform: translateY(-2px); }.legal-page .company-button-primary { color: #fff; background: #059444; }.legal-page .company-button span { transition: transform .3s ease-out; }.legal-page .company-button:hover span { transform: translateX(3px); }
.legal-policy-page { position: relative; overflow: visible; color: #111; background: #f8faf9; }.legal-policy-page::before { position: absolute; inset: 0; opacity: .26; background-image: radial-gradient(circle,rgba(5,148,68,.15) 0 1px,transparent 1.4px); background-size: 58px 58px; content: ""; pointer-events: none; mask-image: linear-gradient(110deg,transparent 16%,#000 56%,transparent 88%); }.legal-policy-page > * { position: relative; }
.legal-policy-page .legal-hero { min-height: 720px; padding: 138px 0 80px; border: 0; }.legal-hero-grid { display: grid; grid-template-columns: minmax(0,1.2fr) 420px; gap: 84px; align-items: center; min-height: 500px; }.legal-hero-copy h1 { margin: 0; font-size: clamp(70px,7vw,96px); font-weight: 720; line-height: .92; letter-spacing: -.065em; }.legal-hero-copy > p:not(.company-eyebrow) { max-width: 650px; margin: 30px 0 0; color: rgba(17,17,17,.65); font-size: 19px; line-height: 1.65; }.legal-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 40px; }
.legal-hero-visual { position: relative; display: grid; place-items: center; min-height: 390px; padding: 38px; overflow: hidden; border-radius: 28px; }.legal-hero-visual::before { position: absolute; inset: 0; background: radial-gradient(circle at 50% 43%,rgba(5,148,68,.12),transparent 34%); content: ""; }.legal-orbit { position: relative; width: 210px; height: 210px; }.legal-orbit i { position: absolute; border: 1px solid rgba(5,148,68,.20); border-radius: 50%; }.legal-orbit i:nth-child(1) { inset: 0; }.legal-orbit i:nth-child(2) { inset: 28px; }.legal-orbit i:nth-child(3) { inset: 58px; }.legal-orbit b { position: absolute; inset: 50% auto auto 50%; display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; color: #fff; background: #059444; box-shadow: 0 0 0 15px rgba(5,148,68,.08),0 18px 48px rgba(5,148,68,.22); font-size: 24px; transform: translate(-50%,-50%); }.legal-hero-visual dl { position: relative; display: grid; grid-template-columns: repeat(3,1fr); width: 100%; margin: 24px 0 0; }.legal-hero-visual dl div { padding: 0 12px; border-left: 1px solid rgba(17,17,17,.08); text-align: center; }.legal-hero-visual dl div:first-child { border: 0; }.legal-hero-visual dt { color: rgba(17,17,17,.48); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.legal-hero-visual dd { margin: 5px 0 0; font-size: 12px; font-weight: 750; }
.legal-language-bar { position: sticky; z-index: 8; top: 90px; display: flex; gap: 6px; width: max-content; margin: -28px auto 0; padding: 6px; border-radius: 18px; }.legal-language-bar button { min-width: 128px; min-height: 46px; padding: 0 20px; border: 0; border-radius: 13px; color: rgba(17,17,17,.58); background: transparent; font: 700 13px/1 inherit; cursor: pointer; }.legal-language-bar button.is-active { color: #fff; background: #059444; box-shadow: 0 10px 26px rgba(5,148,68,.19); }
.legal-policy-page .legal-layout { grid-template-columns: 260px minmax(0,1fr); gap: 36px; max-width: 1280px; padding-top: 68px; }.legal-policy-page .legal-toc { top: 166px; border-radius: 24px; }.legal-policy-page .legal-toc > strong { padding: 4px 10px 10px; color: #059444; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }.legal-policy-page .legal-toc a { padding: 9px 10px; }.legal-policy-page .legal-content { border-radius: 28px; }.legal-policy-page .legal-content [data-policy-language] > h2:first-child { margin-top: 0; }.legal-policy-page .legal-content h2 { position: relative; margin-top: 78px; padding: 0 0 18px; border-bottom: 1px solid rgba(17,17,17,.075); font-size: clamp(29px,3vw,40px); }.legal-policy-page .legal-content h2::after { position: absolute; bottom: -1px; left: 0; width: 54px; height: 2px; background: #059444; content: ""; }.legal-policy-page .legal-content p { color: rgba(17,17,17,.66); }.legal-policy-page .legal-content ul { padding: 20px 24px 20px 44px; border: 1px solid rgba(5,148,68,.09); border-radius: 20px; background: rgba(5,148,68,.028); }.legal-policy-page .legal-table-scroll { border: 1px solid rgba(5,148,68,.10); border-radius: 20px; box-shadow: inset 0 1px 0 #fff; }.legal-policy-page .legal-content th { background: rgba(5,148,68,.065); }.legal-policy-page .legal-note { border: 1px solid rgba(5,148,68,.11); border-left: 3px solid #059444; border-radius: 0 20px 20px 0; background: rgba(255,255,255,.58); }.legal-policy-page .cookie-preferences-card { position: relative; overflow: hidden; border-radius: 24px; }.legal-policy-page .cookie-preferences-card::after { position: absolute; bottom: 0; left: 25%; width: 50%; height: 3px; background: #059444; box-shadow: 0 0 20px rgba(5,148,68,.18); content: ""; opacity: .45; }
.cookie-settings-page { position: relative; overflow: hidden; background: #f8faf9; }.cookie-settings-page::before { position: absolute; inset: 0; opacity: .22; background-image: radial-gradient(circle,rgba(5,148,68,.16) 0 1px,transparent 1.4px); background-size: 58px 58px; content: ""; pointer-events: none; mask-image: linear-gradient(120deg,transparent 12%,#000 58%,transparent 90%); }.cookie-settings-page > * { position: relative; }.cookie-settings-page .cookie-settings-hero { min-height: 610px; padding: 150px 0 78px; border: 0; }.cookie-settings-page .cookie-settings-hero h1 { font-size: clamp(70px,7vw,92px); font-weight: 720; line-height: .93; }.cookie-settings-page .cookie-settings-hero p:not(.eyebrow) { max-width: 780px; color: rgba(17,17,17,.65); }.cookie-settings-page .cookie-settings-stack { gap: 74px; max-width: 1040px; padding-top: 0; }.cookie-settings-page .cookie-status-card,.cookie-settings-page .cookie-setting-card,.cookie-settings-page .cookie-settings-actions,.cookie-settings-page .cookie-settings-links a { border-color: rgba(255,255,255,.88); background: rgba(255,255,255,.62); box-shadow: 0 30px 80px rgba(0,0,0,.05),inset 0 1px 0 rgba(255,255,255,.92); backdrop-filter: blur(22px) saturate(165%); -webkit-backdrop-filter: blur(22px) saturate(165%); }.cookie-settings-page .cookie-status-card { margin-top: -52px; border-radius: 28px; }.cookie-settings-page .cookie-setting-card { position: relative; overflow: hidden; border-radius: 24px; transition: border-color .35s ease,box-shadow .35s ease,transform .35s ease; }.cookie-settings-page .cookie-setting-card::after { position: absolute; right: 34%; bottom: 0; left: 34%; height: 2px; background: #059444; box-shadow: 0 0 18px rgba(5,148,68,.18); content: ""; opacity: .30; transition: right .35s ease,left .35s ease,opacity .35s ease; }.cookie-settings-page .cookie-settings-section-head h2 { font-size: clamp(42px,5vw,58px); }.cookie-settings-page .cookie-settings-actions { border-radius: 24px; }.cookie-settings-page .cookie-settings-links a { border-radius: 20px; }
@media (min-width:1024px) { @keyframes legal-orbit-breathe { 0%,100% { transform: scale(1); } 50% { transform: scale(1.025); } }.legal-orbit { animation: legal-orbit-breathe 7s ease-in-out infinite; }.cookie-settings-page .cookie-setting-card:hover { border-color: rgba(5,148,68,.20); box-shadow: 0 36px 88px rgba(0,0,0,.065),0 15px 40px rgba(5,148,68,.045); transform: translateY(-4px); }.cookie-settings-page .cookie-setting-card:hover::after { right: 8%; left: 8%; opacity: .82; } }
@media (max-width:960px) { .legal-hero-grid { grid-template-columns: 1fr; gap: 40px; }.legal-hero-visual { min-height: 340px; }.legal-policy-page .legal-layout { grid-template-columns: 1fr; }.legal-language-bar { top: 82px; }.legal-policy-page .legal-toc { position: static; } }
@media (max-width:780px) { .legal-policy-page *,.cookie-settings-page * { animation: none!important; }.legal-policy-page .legal-hero { min-height: 0; padding: 120px 0 60px; }.legal-hero-copy h1 { font-size: 52px; }.legal-hero-copy > p:not(.company-eyebrow) { font-size: 17px; }.legal-hero-actions { display: grid; }.legal-page .company-button { width: 100%; }.legal-hero-visual { min-height: 310px; padding: 28px 22px; }.legal-orbit { width: 170px; height: 170px; }.legal-language-bar { position: static; width: calc(100% - 40px); margin: 20px auto 0; }.legal-language-bar button { flex: 1; min-width: 0; }.legal-policy-page .legal-layout { padding-top: 28px; }.legal-policy-page .legal-content { padding: 30px 22px; }.legal-policy-page .legal-content h2 { font-size: 31px; }.cookie-settings-page .cookie-settings-hero { min-height: 0; padding: 122px 0 96px; }.cookie-settings-page .cookie-settings-hero h1 { font-size: 52px; }.cookie-settings-page .cookie-status-card { margin-top: -46px; }.cookie-settings-page .company-glass,.legal-page .company-glass { backdrop-filter: none; -webkit-backdrop-filter: none; } }
@media (prefers-reduced-motion:reduce) { .legal-policy-page *,.cookie-settings-page * { animation:none!important; transition:none!important; } }

/* Policy document visibility refinement */
body.motion-ready .legal-policy-page .legal-content.reveal-card { opacity: 1!important; transform: none!important; transition: none!important; }
.legal-document-label { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin: -16px -16px 40px; padding: 15px 18px; border: 1px solid rgba(5,148,68,.10); border-radius: 15px; color: #059444; background: rgba(5,148,68,.045); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.legal-document-label small { color: rgba(17,17,17,.50); font-size: 10px; letter-spacing: .06em; }
@media (max-width:960px) { .legal-policy-page .legal-content { order: 1; }.legal-policy-page .legal-toc { position: static; order: 2; max-height: 320px; } }
@media (max-width:780px) { .legal-policy-page .legal-toc { display: none; }.legal-document-label { margin: -8px -6px 32px; } }

/* Stable policy surface and scroll-aware index (Privacy + Cookie Policy). */
.legal-policy-page .legal-glass { border: 1px solid rgba(255,255,255,.9); background: rgba(255,255,255,.72); box-shadow: 0 30px 90px rgba(17,17,17,.06); -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%); }
.legal-policy-page .legal-toc a { border-radius: 10px; transition: color 220ms ease-out,background-color 220ms ease-out,transform 220ms ease-out; }
.legal-policy-page .legal-toc a.is-current { color: #059444; background: rgba(5,148,68,.08); transform: translateX(3px); }
@media (min-width:961px) { .legal-policy-page .legal-toc { position: sticky; top: 116px; align-self: start; max-height: calc(100vh - 142px); overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(5,148,68,.24) transparent; } }

/* UX refinements from the cross-device audit. */
.consent-banner {
  left: auto;
  grid-template-columns: minmax(0,1fr) auto;
  width: min(calc(100% - 48px),940px);
  gap: 22px;
  padding: 20px 22px;
}
.consent-banner p { max-width: 590px; }
.consent-banner-actions { flex-wrap: wrap; justify-content: flex-end; }
.consent-banner-actions .consent-link-button { width: auto; }

@media (max-width:780px) {
  .consent-banner {
    right: 10px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    left: 10px;
    width: auto;
    max-height: min(58dvh,460px);
    padding: 14px;
    overflow-y: auto;
    border-radius: 18px;
  }
  .consent-banner-copy { gap: 6px; }
  .consent-badge { display: none; }
  .consent-banner h2 { font-size: 17px; line-height: 1.18; }
  .consent-banner p {
    display: -webkit-box;
    margin-top: 4px;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.42;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .consent-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    margin-top: 5px;
    font-size: 12px;
  }
  .consent-banner-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    margin-top: 12px;
  }
  .consent-banner-actions .consent-link-button {
    grid-column: 1 / -1;
    min-height: 34px;
    padding: 0;
    font-size: 12px;
  }
  .consent-banner-actions button,
  .consent-banner-actions a { min-height: 44px; }
}
