@font-face{font-family:'Roobert';src:url("fonts/Roobert-Regular.ttf") format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Roobert';src:url("fonts/Roobert-Medium.ttf") format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Roobert';src:url("fonts/Roobert-SemiBold.ttf") format('truetype');font-weight:600;font-style:normal;font-display:swap}
body{margin:0;background:#FAFAFA;color:#00171F;font-family:'Space Grotesk',system-ui,sans-serif}
a{color:#00171F}a:hover{color:#454545}
.code{display:flex;align-items:center;gap:14px;margin:0;font:400 12px/1 'Space Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:#5F5F5F}
.code::after{content:"";flex-grow:1;height:1px;background:#E0E0E0}
.dark .code{color:rgba(255,255,255,.72)}.dark .code::after{background:rgba(255,255,255,.16)}
.mark{position:relative;white-space:nowrap}.mark svg{position:absolute;left:-2%;width:104%;bottom:-.2em;height:.24em;overflow:visible}
.hl{position:relative;z-index:0;white-space:nowrap}
.hl::before{content:"";position:absolute;left:-.06em;right:-.06em;top:.18em;bottom:.02em;background:#F7FE72;border-radius:.08em .18em .12em .2em;z-index:-1}
.dark .hl::before{top:auto;bottom:-.06em;height:.14em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:56px;padding:0 28px;border-radius:999px;background:#00171F;color:#FFFFFF;font:500 16px/1 'Roobert','Space Grotesk',sans-serif;text-decoration:none;border:0;cursor:pointer;white-space:nowrap}
.btn:hover{background:#12313C;color:#FFFFFF}
.btn-canary{background:linear-gradient(180deg,#FBFFA6 0%,#F7FE72 48%,#EBF25A 100%);color:#00171F;box-shadow:inset 0 0 0 1.5px #C2C93A,inset 0 2px 1px rgba(255,255,255,.75),inset 0 -3px 2px rgba(110,116,0,.22),0 1px 1px rgba(0,23,31,.10),0 6px 14px -6px rgba(0,23,31,.30)}.btn-canary:hover{background:linear-gradient(180deg,#FDFFC2 0%,#F9FE8A 48%,#EEF466 100%);color:#00171F}.btn-canary:active{background:linear-gradient(180deg,#EBF25A 0%,#F7FE72 100%);box-shadow:inset 0 0 0 1.5px #C2C93A,inset 0 2px 3px rgba(110,116,0,.30)}
.faq details{border-bottom:1px solid #C6C6C6}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;font:500 20px/1.3 'Roobert','Space Grotesk',sans-serif;letter-spacing:-.01em;color:#00171F}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 24px/1 'Space Mono',monospace;color:#5F5F5F}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 28px;max-width:660px;font-size:17px;line-height:1.6;color:#454545}
.chk{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.chk li{display:flex;gap:14px;align-items:flex-start;font-size:17px;line-height:1.45;color:#00171F}
.chk li::before{content:"";flex:0 0 18px;height:18px;margin-top:2px;border-radius:4px;background:#00171F url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M4.5 9.5l3 3 6-7' fill='none' stroke='%23F7FE72' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}

.bul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.bul li{position:relative;padding-left:26px;font-size:17px;line-height:1.55;color:#454545}
.bul li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;background:#00171F}
.bul b{font-weight:500;color:#00171F}
.foot a{color:#454545;text-decoration:none}.foot a:hover{color:#00171F;text-decoration:underline}

/* Full-width sections. Supporting pages keep a centered reading width. */
:root {
  color-scheme: light;
  --page-gutter: max(120px, calc((100% - 1200px) / 2));
  --home-header-height: 88px;
}
.site-page { width: 100%; }
.site-page > main { display: flex; flex-direction: column; flex-grow: 1; }
.site-header { min-height: 88px; padding: 0 var(--page-gutter); gap: 48px; }
.page-section { padding: var(--section-top) var(--page-gutter) var(--section-bottom); }
.split-layout { grid-template-columns: var(--columns); gap: var(--column-gap); }
.split-layout > * { min-width: 0; }
.page-image { max-width: 100%; }
.site-footer { padding: 72px var(--page-gutter) 40px; }
.footer-columns { grid-template-columns: 1.6fr repeat(2, minmax(0, 1fr)); gap: 40px; }
.nav-cta[hidden] { display: none; }
.home-page .site-header { height: var(--home-header-height); }
/* Homepage nav: frosted white, or transparent with white type while it sits over the olive hero (landing.js). */
.home-page .float-nav {
  border-bottom: 1px solid rgba(0, 23, 31, 0.08); background: rgba(255, 255, 255, 0.85);
  -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4);
  transition: background-color .25s ease, border-color .25s ease;
}
.home-page .float-nav img { transition: filter .25s ease; }
.home-page .float-nav.over-hero { border-bottom-color: transparent; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
.home-page .float-nav.over-hero a:not(.btn) { color: #FFFFFF; }
.home-page .float-nav.over-hero img { filter: brightness(0) invert(1); }
.home-page [id] { scroll-margin-top: calc(var(--home-header-height) + 24px); }
.site-header > a { flex-shrink: 0; }
.site-header img { max-width: 100%; }
.skip-link {
  position: fixed; top: 12px; left: 12px; z-index: 30;
  padding: 12px 20px; background: #f7fe72; color: #00171f;
  border-radius: 8px; transform: translateY(-200%);
}
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid #757761; outline-offset: 5px; }
/* The olive focus ring disappears on olive and dark backgrounds. */
.home-page .hero :focus-visible, .float-nav.over-hero :focus-visible, .dark :focus-visible { outline-color: #F7FE72; }
[id] { scroll-margin-top: 24px; }

/* Let homepage content grow on wide screens without stretching paragraph lines. */
@media (min-width: 1280px) {
  .home-page { --page-gutter: clamp(120px, 8.333333vw, 240px); }
  .home-page .split-layout p { max-width: 65ch; }
}

@media (max-width: 1279px) {
  :root { --page-gutter: 48px; }
  .home-page .site-page { min-height: 0; }
  .site-header { gap: 24px; }
  .site-header nav { gap: 20px !important; }
  .split-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
  .page-image { width: 100% !important; }
  h1 { font-size: 60px !important; }
  h2 { font-size: 48px !important; }
  .page-section { padding-block: 80px; }
}
@media (max-width: 959px) {
  :root { --page-gutter: 32px; --home-header-height: 120px; }
  .site-header { flex-wrap: wrap; gap: 16px; padding-block: 16px; }
  .home-page .site-header nav {
    order: 3; width: 100%; justify-content: space-between; padding-top: 8px;
  }
  .nav-actions { margin-left: auto; }
  .home-page .hero { padding-top: calc(var(--home-header-height) + 48px); }
  .split-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .art-first > .page-image { order: 2; }
  .hero-media, .page-image { max-width: 640px !important; margin-inline: auto !important; }
  .hero > div:not([aria-hidden]) { max-width: 640px; }
  .closing-content, .reasons-heading {
    flex-direction: column; align-items: flex-start !important; gap: 28px !important;
  }
  .closing-content > .btn, .reasons-heading > p { margin-left: 0 !important; }
  .reasons-heading > p { white-space: normal !important; }
  .reason-cards { grid-template-columns: minmax(0, 1fr); }
  .footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-columns > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 599px) {
  :root { --page-gutter: 20px; --home-header-height: 108px; }
  .site-header > a img { height: 24px !important; }
  .home-page .hero { padding-top: calc(var(--home-header-height) + 32px); }
  .site-header { min-height: 64px; padding-block: 12px; }
  .site-header nav { font-size: 14px !important; gap: 12px !important; }
  .nav-actions { gap: 14px !important; }
  .nav-actions > a:first-child { font-size: 14px !important; }
  .nav-actions .btn { height: 44px !important; padding-inline: 16px !important; font-size: 14px !important; }
  .page-section { padding-block: 56px; gap: 28px !important; }
  .hero { padding-block: 40px; }
  h1 { font-size: clamp(36px, 10.76923vw, 52px) !important; line-height: 1.04 !important; }
  h2 { font-size: 36px !important; }
  h3 { font-size: 30px !important; }
  .hl { white-space: normal; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
  .hero > div > p { font-size: 17px !important; }
  .home-page .hero > div > p:last-child { font-size: 14px !important; }
  .hero > div > span {
    height: auto !important; min-height: 34px; padding-block: 4px !important; font-size: 12px !important;
  }
  .hero > div > span > span { flex-shrink: 0; }
  .home-page .page-image { height: auto !important; }
  .home-page .site-photo { aspect-ratio: 3 / 2; object-position: 50% 30% !important; }
  .offer-card { padding: 24px 20px !important; }
  .faq summary { font-size: 18px; gap: 16px; }
  .faq details p, .chk li { font-size: 16px; }
  .dark { min-height: 0 !important; }
  .closing-content > .btn { align-self: stretch; }
  .site-footer { padding-block: 40px 28px; gap: 32px !important; }
  .footer-columns { gap: 28px !important; }
  .footer-bottom { flex-wrap: wrap; gap: 16px !important; line-height: 1.5 !important; }

  .reason-cards { gap: 14px; }
  .reason-card { padding: 24px !important; border-radius: 20px !important; gap: 12px !important; }
  .reason-number svg { display: none; }
  .reason-number span { font-size: 11px !important; }
  .reason-card > span:first-of-type { font-size: 20px !important; letter-spacing: normal !important; }
  .reason-card > span:last-child { font-size: 15px !important; }
  .offer-copy { gap: 24px !important; }
  .offer-copy h2 { line-height: 1.04 !important; letter-spacing: -.03em !important; }
  .offer-copy p { font-size: 16px !important; }
  .offer-copy br { display: none; }

}

/* Optional analytics controls use their own styles to preserve the page layout. */
.analytics-banner[hidden], .analytics-notice[hidden], [data-analytics-settings][hidden] { display: none; }
.analytics-notice {
  position: fixed; bottom: 20px; left: 20px; right: 20px; z-index: 20;
  box-sizing: border-box; max-width: 760px; margin-inline: auto; padding: 24px;
  background: #fff; border: 1px solid #00171f; border-radius: 16px;
  box-shadow: 0 8px 32px #00171f26; font-size: 16px; line-height: 1.5;
}
.analytics-notice p { margin: 0 0 16px; }
.analytics-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.analytics-actions button {
  flex: 1; padding: 14px 20px; min-height: 48px; border: 1px solid #00171f;
  border-radius: 999px; background: #fff; color: #00171f;
  font: 500 16px/1.3 'Roobert','Space Grotesk',sans-serif; cursor: pointer;
}
.analytics-actions button:hover { background: #fbfec0; }
.analytics-banner {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 20;
  box-sizing: border-box; display: flex; flex-direction: column; gap: 10px;
  max-height: 100dvh; padding: 14px 20px calc(20px + env(safe-area-inset-bottom));
  background: #fff; border-top: 1px solid #00171f24; box-shadow: 0 -8px 24px #00171f1f;
  color: #00171f; font-size: 13px; line-height: 1.45;
}
.analytics-banner > p { margin: 0; min-height: 0; overflow-y: auto; color: #2b3a40; }
.analytics-banner > p a { color: #00171f; }
.analytics-banner > .analytics-actions { flex-shrink: 0; flex-wrap: nowrap; align-items: center; gap: 8px; }
.analytics-banner [data-consent-decline] {
  flex: none; min-height: 44px; padding: 0 12px 0 0; border: 0; background: none;
  font-size: 15px; text-decoration: underline; text-underline-offset: 3px;
}
.analytics-banner [data-consent-decline]:hover { background: none; color: #454545; }
.analytics-banner [data-consent-accept] { border-color: #00171f; background: #00171f; color: #fff; }
.analytics-banner [data-consent-accept]:hover { background: #12313c; }
/* Wider screens keep the notice and choices on one row. */
@media (min-width: 768px) {
  .analytics-banner { flex-direction: row; align-items: center; gap: 24px; padding: 14px max(32px, calc((100% - 1200px) / 2)) calc(14px + env(safe-area-inset-bottom)); font-size: 14px; }
  .analytics-banner > p { flex: 1; max-height: calc(100dvh - 28px); }
  .analytics-banner [data-consent-decline] { padding: 0 12px; }
  .analytics-banner [data-consent-accept] { flex: none; padding: 14px 24px; }
}
[data-analytics-settings] {
  padding: 0; border: 0; background: none; color: inherit; text-align: left;
  font: inherit; text-transform: inherit; letter-spacing: inherit; cursor: pointer;
}
[data-analytics-settings]:hover { text-decoration: underline; }
.analytics-dialog {
  box-sizing: border-box; max-width: 560px; width: calc(100% - 40px);
  max-height: calc(100% - 40px); padding: 28px; border: 1px solid #00171f;
  border-radius: 16px; color: #00171f; background: #fff; line-height: 1.5;
}
.analytics-dialog::backdrop { background: #00171f80; }
.analytics-dialog h2 { margin-top: 0; font-size: 24px !important; }
.analytics-toggle { display: flex; align-items: center; gap: 10px; }
.analytics-toggle input { width: 20px; height: 20px; accent-color: #00171f; }
/* The policy shares the website's type, colours and page gutters. */
.cookie-page { background: #fff; }
.cookie-header { display: flex; align-items: center; border-bottom: 1px solid rgba(0,23,31,.08); }
.cookie-header img, .cookie-footer-brand img { display: block; width: auto; }
.cookie-header nav { display: flex; gap: 36px; margin-left: auto; font-size: 16px; }
.cookie-header nav a { text-decoration: none; }
.cookie-header nav a:hover { text-decoration: underline; }
.cookie-hero {
  position: relative; isolation: isolate;
  --section-top: 88px; --section-bottom: 72px;
  background: linear-gradient(#fff 40%, #e8ede5 135%);
  border-bottom: 1px solid #dde2d9;
}
.cookie-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(#e0e0e0 1px,transparent 1px),linear-gradient(90deg,#e0e0e0 1px,transparent 1px);
  background-size: 24px 24px; opacity: .5;
  -webkit-mask-image: radial-gradient(ellipse 60% 90% at 90% 45%,#000 20%,transparent 75%);
  mask-image: radial-gradient(ellipse 60% 90% at 90% 45%,#000 20%,transparent 75%);
}
.cookie-hero-content { max-width: 800px; }
.cookie-hero h1 { margin: 28px 0 24px; font: 500 76px/1 'Roobert','Space Grotesk',sans-serif; letter-spacing: -.035em; }
.cookie-updated { margin: 0 0 28px; font: 400 12px/1.5 'Space Mono',monospace; color: #5f5f5f; }
.cookie-intro { margin: 0 0 16px; font-size: 19px; line-height: 1.55; letter-spacing: -.01em; color: #454545; }
.cookie-intro:last-child { margin-bottom: 0; }
.cookie-layout {
  display: grid; grid-template-columns: 240px minmax(0,800px); gap: 64px; align-items: start;
  --section-top: 72px; --section-bottom: 104px;
}
.cookie-toc { position: sticky; top: 32px; display: flex; flex-direction: column; gap: 18px; }
.cookie-toc .code { margin-bottom: 10px; }
.cookie-toc a { font-size: 15px; line-height: 1.4; text-decoration: none; color: #454545; }
.cookie-toc a:hover { color: #00171f; text-decoration: underline; }
.cookie-content { min-width: 0; font-size: 17px; line-height: 1.65; color: #454545; }
.cookie-content section + section { margin-top: 40px; padding-top: 40px; border-top: 1px solid #e0e0e0; }
.cookie-content h2 { margin: 0 0 20px; font: 500 30px/1.15 'Roobert','Space Grotesk',sans-serif; font-size: 30px !important; letter-spacing: -.025em; color: #00171f; }
.cookie-content p { margin: 0 0 20px; }
.cookie-content p:last-child { margin-bottom: 0; }
.cookie-content ul { margin: 24px 0; padding-left: 24px; }
.cookie-content li { margin-bottom: 16px; padding-left: 4px; }
.cookie-content li:last-child { margin-bottom: 0; }
.cookie-content li::marker { color: #757761; }
.cookie-content code { padding: 2px 5px; border-radius: 4px; background: #f3f5f0; color: #00171f; font: 400 .82em/1.5 'Space Mono',monospace; overflow-wrap: anywhere; }
.cookie-footer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 40px; border-top: 1px solid #e0e0e0; }
.cookie-footer-brand p { margin: 16px 0 0; font-size: 15px; color: #454545; }
.cookie-footer nav { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; font-size: 14px; }
.cookie-footer .footer-bottom {
  grid-column: 1 / -1; display: flex; align-items: center; gap: 24px;
  padding-top: 20px; border-top: 1px solid rgba(17,17,17,.4);
  font: 400 12px/1.5 'Space Mono',monospace; letter-spacing: .05em; text-transform: uppercase; color: rgba(17,17,17,.8);
}
.cookie-footer .footer-bottom a { margin-left: auto; }
@media (max-width: 1279px) {
  .cookie-layout { grid-template-columns: 200px minmax(0,1fr); gap: 40px; }
}
@media (max-width: 959px) {
  .cookie-layout { grid-template-columns: minmax(0,1fr); gap: 40px; }
  .cookie-toc { position: static; flex-direction: row; flex-wrap: wrap; gap: 16px 24px; }
  .cookie-toc .code { width: 100%; margin-bottom: 0; }
}
@media (max-width: 599px) {
  .cookie-header { flex-wrap: nowrap; }
  .cookie-hero h1 { margin-block: 24px 20px; }
  .cookie-updated { margin-bottom: 24px; font-size: 11px; }
  .cookie-intro { font-size: 17px; }
  .cookie-content { font-size: 16px; }
  .cookie-content h2 { font-size: 26px !important; }
  .cookie-content section + section { margin-top: 32px; padding-top: 32px; }
  .cookie-toc a { font-size: 14px; }
  .cookie-footer { grid-template-columns: minmax(0,1fr); }
  .cookie-footer .footer-bottom { font-size: 11px; }
}

/* Product terms retain the source's explicit clause numbers. */
.terms-page { --terms-header-height: 88px; }
.terms-page .site-header { box-sizing: border-box; height: var(--terms-header-height); min-height: var(--terms-header-height); position: sticky; top: 0; z-index: 20; background: #fff; }
.terms-page .cookie-content { overflow-wrap: anywhere; }
.terms-page .cookie-content section { scroll-margin-top: calc(var(--terms-header-height) + 24px); }
.terms-preamble { margin-bottom: 48px; }
.terms-page .cookie-toc { top: calc(var(--terms-header-height) + 24px); max-height: calc(100vh - var(--terms-header-height) - 48px); overflow-y: auto; }
.terms-page a:focus-visible { outline: 2px solid #00171f; outline-offset: 4px; }
@media (max-width: 959px) {
  .terms-page .cookie-toc { max-height: none; overflow: visible; }
}

@media (max-width: 599px) {
  .terms-page { --terms-header-height: 64px; }
}

/* Keep the policy's legal-basis table readable on narrow screens. */
.privacy-table-wrap { max-width: 100%; overflow-x: auto; margin: 24px 0; }
.privacy-page table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 15px; line-height: 1.6; }
.privacy-page th, .privacy-page td { width: 33.333%; padding: 20px; border: 1px solid #e0e0e0; text-align: left; vertical-align: top; }
.privacy-page th { background: #f3f5f0; color: #00171f; font-weight: 500; }
