/* BreakPass v7 foundation: fonts, tokens, dv/mv zoom switch, header, footer, final CTA, dialogs, early-access form,
   country check, cookie banner and settings, text pages, 404, helpers. Page-specific CSS lives in css/pages/<slug>.css. */
/* App copy, 16 Oct 2026 (Q-F-011): rules for the website's header, dialogs, cookie banner, early-access form and text pages were removed here because no app page uses them (their classes appear nowhere in src/ or public/js/). The website keeps its own css/foundation.css. */

/* ===================================================================================================
   1. Fonts (self-hosted; the build rewrites these URLs to hashed copies where needed)
   =================================================================================================== */
@font-face{font-family:'Lato';font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/lato-latin-300-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Lato';font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/lato-latin-ext-300-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Lato';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/lato-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Lato';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/lato-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Lato';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/lato-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Lato';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/lato-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Lato';font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/lato-latin-900-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Lato';font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/lato-latin-ext-900-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Merriweather';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/merriweather-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Merriweather';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/merriweather-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ===================================================================================================
   2. Tokens and base
   =================================================================================================== */
:root{
  --lime:#C6FE1E;--lime-h:#B5EB12;--lime-p:#A2D40F; /* F24 (D-1514): the old pink is lime everywhere; text on it is dark ink */
  --ink:#4A4A4A;--ink-d:#161616;
  --grey:#9B9B9B;          /* icons, large text, disabled */
  --grey-a:#6A6A6A;        /* the one secondary-text grey (Q-O-016): 5.4:1 on white, 5.0:1 on the band #F7F7F7 (WCAG AA) */
  --line:#E6E6E6;--field:#DADADA;--band:#F7F7F7;--bg:#FFFFFF;--footer:#161616;--err:#C8102E;
  --green:#004F32;         /* PD-66 (F25): focus rings and the app's green marks (active menu marker, switch on) */
  --shadow:0 10px 46px -10px rgba(0,0,0,.16);
  --glow:0 10px 40px -10px rgba(162,212,15,.55);
  --f-sans:'Lato',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --f-serif:'Merriweather',Georgia,serif;
  --f-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --zd:1;--zm:1;--z:1;
}
html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable;scroll-padding-top:88px}body{margin:0;background:var(--bg);color:var(--ink);font:400 18px/28px var(--f-sans);min-width:320px}
a{color:inherit}
button{font-family:inherit}
img,svg{max-width:100%}
[hidden]{display:none!important}
.bp-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.bp-skip{position:fixed;left:12px;top:-60px;z-index:200;background:#fff;color:var(--ink-d);padding:12px 18px;border-radius:5px;font:700 14px/20px var(--f-sans);text-decoration:none;transition:top .15s}
.bp-skip:focus{top:12px;box-shadow:var(--shadow)}
:focus-visible{outline:2px solid var(--ink-d);outline-offset:3px}
.bp-footer :focus-visible,.bp-consent-dark :focus-visible{outline-color:#fff}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0}
[tabindex="-1"]:focus,[tabindex="-1"]:focus-visible{outline:0}   /* programmatic focus targets (dialog headings, banner) get no ring */
::placeholder{color:var(--grey-a);opacity:1}

/* The two design variants. .dv shows at >=1024px (1200-wide artboard children, zoomed to fit), .mv below (390-wide artboard children). */
.dv{display:block;zoom:var(--zd,1);--z:var(--zd,1)}
.mv{display:none;zoom:var(--zm,1);--z:var(--zm,1)}
/* width stays auto: with standardised CSS zoom (Chromium 128+, Firefox 126+, Safari) an auto-width block fills its container, and the 1200 / 390 px artboard children are scaled by the zoom */
@media (max-width:1023.98px){.dv{display:none}.mv{display:block}}
body.bp-body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.bp-main{display:block;flex:1 0 auto}@keyframes bp-ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.9);opacity:0}}/* data hooks */
.is-paused,.is-paused *{animation-play-state:paused!important}
[data-marquee].is-paused *,[data-marquee].is-held *{animation-play-state:paused!important}
[data-marquee]:hover *,[data-marquee]:focus-within *{animation-play-state:paused!important}
[data-marquee].is-static *{animation:none!important}
[data-filter-set][hidden]{display:none!important}[data-copy]{cursor:pointer}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}@media (max-width:1023.98px){}
@media (min-width:1024px) and (max-width:1199.98px){}

/* ===================================================================================================
   5. Footer
   =================================================================================================== */
.bp-footer{background:var(--footer);color:var(--grey);padding:52px 0 32px;font:400 14px/22px var(--f-sans);margin-top:auto}
.bp-footer *{box-sizing:border-box}
.bp-footer__in{width:min(1200px,calc(100% - 96px));margin:0 auto}.bp-footer__logo img{display:block;height:32px;width:auto}.bp-footer a{color:var(--grey);text-decoration:none}
.bp-footer a:hover,.bp-footer .bp-linkbtn:hover{color:#fff}.bp-footer__legal{margin-top:40px;padding-top:24px;border-top:1px solid #2E2E2E;color:var(--grey)}
.bp-footer__legal p{margin:0}
@media (max-width:1023.98px){  .bp-footer__in{width:calc(100% - 64px)}
}
@media (max-width:639.98px){
  .bp-footer{padding:28px 20px 20px}
  .bp-footer__in{width:auto}  .bp-footer__logo img{height:26px}  .bp-footer__legal{margin-top:12px;padding-top:14px;font-size:13px;line-height:20px}
}@media (max-width:767.98px){}@keyframes bp-dlg-fade{from{opacity:0}to{opacity:1}}
@keyframes bp-dlg-pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes bp-dlg-sheet{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
@media (max-width:767.98px){}

/* ===================================================================================================
   8. Early-access form (pop-up and inline card) and its states
   =================================================================================================== */
.ea{margin:0;text-align:left;font-family:var(--f-sans)}
.ea *{box-sizing:border-box}@keyframes bp-spin{to{transform:rotate(360deg)}}@media (max-width:767.98px){}/* ===================================================================================================
   9. Country check (inline card, pop-up) and combobox
   =================================================================================================== */
.cc{box-sizing:border-box;container-type:inline-size;width:100%;text-align:left;font-family:var(--f-sans);color:var(--ink)}
.cc *{box-sizing:border-box}@container (min-width:720px){
  .cc__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:56px;align-items:start}
  .cc__rows{margin-top:0!important}
}.cc__chev{flex:none;display:block;transition:transform .2s}.cc__ch{font-weight:700;flex:1;min-width:0}@container (min-width:720px){
  .cc__row{gap:14px;padding:16px 0;font-size:18px;line-height:28px;min-height:62px}
  .cc__val--no{font-size:16px}
}   /* 24px tall in the layout, 44px to hit */
@media (max-width:767.98px){}@media (max-width:767.98px){}
@media (min-width:768px) and (max-width:1023.98px){}@media (max-width:767.98px){}@media (max-width:767.98px){}@media (max-width:767.98px){}

/* ===================================================================================================
   Hit areas (keep last)
   The visible size stays as in the artboards; the tappable area is 44 x 44 rendered px at least. calc(44px/var(--z)) because the page zoom
   (.dv / .mv) scales every length back, and the dialogs and the mobile picker are not zoomed (--z falls back to 1).
   =================================================================================================== */
:where(.bp-nav,.bp-footer a,.bp-footer .bp-linkbtn,.bp-hdr__logo,.ea__fine a,.bp-text__body a,.bp-dialog__x,button[data-copy]){position:relative}
:where(.bp-nav,.bp-footer a,.bp-footer .bp-linkbtn,.bp-hdr__logo,.ea__fine a,.bp-text__body a,.bp-dialog__x,button[data-copy])::after{
  content:"";position:absolute;left:50%;top:50%;width:100%;min-width:calc(44px/var(--z,1));height:calc(44px/var(--z,1));transform:translate(-50%,-50%)}
@media (pointer:coarse) and (min-width:640px){}
