@font-face{font-family:Jakarta;src:url('/assets/PlusJakartaSans-VariableFont_wght.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{--ink:#17243b;--muted:#52637a;--blue:#326bc0;--line:#dce4ed;--paper:#fff;--wash:#f2f6fb;--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Jakarta,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}p{line-height:1.85}h1,h2,h3,p{margin-top:0}h1,h2{font-weight:650;letter-spacing:-.055em;line-height:1.12}h2{font-size:clamp(34px,3.6vw,52px);margin-bottom:26px}h2 span{color:var(--blue)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}a,button,summary{-webkit-tap-highlight-color:transparent}.skip{position:fixed;left:20px;top:-100px;padding:14px;background:var(--ink);color:#fff;z-index:100}.skip:focus{top:15px}header{max-width:1280px;height:100px;margin:auto;padding:0 48px;display:flex;align-items:center;gap:45px;position:relative;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-size:24px;letter-spacing:-1.2px;font-weight:800;white-space:nowrap}.app-icon{display:block;flex:none;border-radius:8px}.brand-dot{color:var(--blue)}nav{margin-left:auto;display:flex;gap:29px;font-size:12px;font-weight:650}nav a:hover,.text-link:hover{color:var(--blue)}.header-actions{display:flex;gap:25px;align-items:center}.button{display:inline-flex;align-items:center;gap:18px;background:var(--ink);color:white;border:1px solid var(--ink);border-radius:8px;padding:13px 17px;font-size:11px;font-weight:650;transition:background .2s}.button:hover{background:#2e5384;border-color:#2e5384}.language{position:relative}.language button{background:none;border:0;padding:10px 0;font-size:11px;font-weight:650}.language button span{margin-left:7px}#language-options{position:absolute;top:40px;right:0;min-width:155px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 35px #17243b12}#language-options a{display:block;padding:10px 12px;font-size:12px;border-radius:6px}#language-options a:hover,#language-options a[aria-current]{background:var(--wash)}.menu-toggle{display:none;background:none;border:0;padding:5px;line-height:0}.hero{max-width:1280px;min-height:760px;padding:35px 48px 70px;margin:auto;display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:60px}.eyebrow{font-size:10px;line-height:1.6;letter-spacing:1.7px;text-transform:uppercase;font-weight:700;color:var(--blue);margin-bottom:25px}.hero h1{font-size:clamp(48px,5vw,72px);max-width:620px;margin-bottom:28px}.hero h1 span{color:var(--blue)}.intro{font-size:15px;line-height:1.9;color:var(--muted);max-width:420px;margin-bottom:32px}.stores{display:flex;flex-wrap:wrap;gap:12px}.store{display:flex;align-items:center;gap:10px;min-width:155px;padding:11px 16px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:8px;transition:background .2s}.store:hover{background:#2e5384}.store svg{width:22px;height:27px;flex-shrink:0}.store small{display:block;font-size:9px;line-height:1.5}.store strong{font-size:17px;letter-spacing:-.3px;line-height:1.3;font-weight:600}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:12px;font-weight:650;margin-top:28px;line-height:1.7}.hero-art{min-height:665px;display:flex;align-items:center;justify-content:center;background:#edf3fa;border-radius:180px 180px 30px 30px;position:relative}.phone{position:relative;width:264px;flex-shrink:0;border:6px solid #202a3b;border-radius:36px;background:#202a3b;box-shadow:0 18px 35px -20px #1c304345,0 0 0 1px #8290a3;overflow:hidden;line-height:0}.phone>img{display:block;width:100%;height:auto;aspect-ratio:540/1200;object-fit:cover;border-radius:29px}.camera{display:none}.main-phone{width:282px}.feature{max-width:1184px;margin:0 auto;padding:90px 0;display:grid;grid-template-columns:1fr 1fr;gap:105px;align-items:center;border-top:1px solid var(--line)}.feature-art{min-height:660px;background:var(--wash);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;padding:35px;overflow:hidden}.feature.reverse .feature-art{order:2}.feature-copy{max-width:450px}.feature-copy>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.9}.feature-copy .eyebrow{font-size:9px;letter-spacing:1.6px}.feature.routes .feature-art{background:#eff5f3}.feature.community .feature-art{background:#f3f1f8}.feature.hydration .feature-art{background:#edf4fc}.fine,.feature-copy p.fine{font-size:10px;line-height:1.85;color:var(--muted);margin:26px 0 0;max-width:420px}.faq{max-width:1184px;margin:110px auto;display:grid;grid-template-columns:1fr 1.1fr;gap:105px}.faq h2{font-size:43px;max-width:370px}.questions details{border-bottom:1px solid var(--line)}.questions summary{font-size:13px;line-height:1.6;font-weight:600;padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;list-style:none}.questions summary::-webkit-details-marker{display:none}.questions summary span{color:var(--blue);font-size:23px;font-weight:350}.questions details[open] summary span{transform:rotate(45deg)}.questions details p{font-size:12px;line-height:1.9;color:var(--muted);padding-right:18px;margin-bottom:24px}.download-section{background:#edf3fa;text-align:center;padding:85px 24px 90px}.download-section h2{font-size:clamp(36px,4vw,57px)}.download-section>p:not(.eyebrow){color:var(--muted);font-size:14px}.download-section .stores{justify-content:center;margin-top:30px}footer{max-width:1280px;margin:auto;padding:45px 48px 28px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-top p{font-size:12px;color:var(--muted);margin:0}.footer-top>a:last-child{font-size:12px;font-weight:600}.footer-bottom{border-top:1px solid var(--line);padding-top:23px;margin-top:30px;display:flex;justify-content:space-between;gap:25px;font-size:9px;color:var(--muted);line-height:1.8}.footer-bottom>div{display:flex;gap:20px}.legal-note{font-size:9px;color:var(--muted);text-align:right;margin:10px 0 0}@media(min-width:1800px){.hero{min-height:820px}}
@media(max-width:1279px){header{gap:28px}.hero{gap:45px}.hero h1{font-size:clamp(45px,5vw,64px)}.feature,.faq{margin-left:48px;margin-right:48px;gap:65px}.feature-art{min-height:620px}.phone{width:245px}.main-phone{width:265px}.hero-art{min-height:650px}}
@media(max-width:1000px){header{padding:0 30px;gap:25px}nav{gap:20px}.header-actions{gap:17px}.hero{padding:30px 30px 65px;gap:35px;min-height:660px}.hero h1{font-size:46px}.hero .eyebrow{font-size:8px;letter-spacing:1.3px}.intro{font-size:13px}.hero-art{min-height:570px}.main-phone{width:230px}.feature,.faq{margin-left:30px;margin-right:30px;gap:50px}.feature{padding:65px 0}.feature-art{min-height:540px;padding:28px}.feature-art .phone{width:205px}.feature h2{font-size:39px}.feature-copy>p:not(.eyebrow){font-size:13px}.faq{gap:50px}.faq h2{font-size:37px}.footer-top p{display:none}}
@media(max-width:760px){header{height:80px;padding:0 24px}.brand{font-size:23px}.header-actions{margin-left:auto;gap:23px}.header-actions>.button{display:none}.menu-toggle{display:block}nav{display:none;position:absolute;top:72px;left:20px;right:20px;margin:0;background:white;border:1px solid var(--line);padding:24px;border-radius:12px;box-shadow:0 15px 35px #17243b10}nav.open{display:grid;gap:24px}.hero{gap:25px;padding:20px 24px 50px;min-height:620px}.hero h1{font-size:40px}.hero-art{min-height:510px;border-radius:120px 120px 24px 24px}.main-phone{width:205px}.store{min-width:132px;padding:9px 11px}.store strong{font-size:15px}.store small{font-size:8px}.store svg{width:19px}.stores{gap:10px}.intro{font-size:12px}.feature,.faq{margin-left:24px;margin-right:24px;gap:30px}.feature-art{min-height:490px;padding:24px}.feature-art .phone{width:190px}.feature h2{font-size:34px}.feature-copy>p:not(.eyebrow){font-size:12px}.feature-copy .eyebrow{font-size:8px}.faq h2{font-size:34px}.questions summary{font-size:12px}.questions details p{font-size:11px}footer{padding:35px 24px 25px}.footer-bottom{flex-wrap:wrap;gap:15px}.footer-bottom>span:last-child{width:100%}.legal-note{text-align:left}}
@media(max-width:560px){header{height:76px;padding:0 22px}.hero{display:flex;flex-direction:column;align-items:stretch;gap:35px;padding:35px 24px 55px}.hero-copy{max-width:430px}.hero h1{font-size:clamp(38px,10.1vw,54px);line-height:1.12;margin-bottom:22px}.hero .eyebrow{font-size:8px;letter-spacing:1.2px;margin-bottom:20px}.intro{font-size:13px;line-height:1.85;margin-bottom:25px;max-width:370px}.hero .text-link{font-size:11px;margin-top:22px}.hero-art{width:100%;max-width:400px;align-self:center;min-height:610px;border-radius:24px;padding:30px 20px}.main-phone{width:245px}.feature,.feature.reverse{display:flex;flex-direction:column-reverse;gap:28px;margin:0 24px;padding:55px 0;align-items:stretch}.feature.reverse .feature-art{order:0}.feature-copy{max-width:none}.feature-copy .eyebrow{font-size:8px;margin-bottom:18px}.feature h2{font-size:39px;margin-bottom:22px}.feature-copy>p:not(.eyebrow){font-size:13px}.feature-copy p.fine{font-size:10px;margin-top:23px}.feature-art{min-height:625px;padding:30px 20px;border-radius:20px}.feature-art .phone{width:245px}.faq{display:block;margin:65px 24px}.faq h2{font-size:37px;max-width:320px}.faq .eyebrow{font-size:9px;margin-bottom:18px}.questions summary{font-size:12px}.questions details p{font-size:12px}.download-section{padding:60px 24px 65px}.download-section h2{font-size:35px}.download-section>p:not(.eyebrow){font-size:12px}.download-section .eyebrow{font-size:9px}.footer-top .brand{font-size:21px}.footer-top>a:last-child{font-size:10px}.footer-bottom{font-size:8px}.legal-note{font-size:8px}}
@media(max-width:359px){.hero,.feature{margin-left:0;margin-right:0}.hero{padding-left:20px;padding-right:20px}.feature{padding-left:20px;padding-right:20px}.hero h1{font-size:36px}.hero-art,.feature-art{min-height:565px;padding:25px 14px}.main-phone,.feature-art .phone{width:225px}.feature h2{font-size:34px}.stores{gap:8px}.store{padding:9px 10px;min-width:130px}.download-section h2{font-size:31px}.faq h2{font-size:34px}.header-actions{gap:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.feature-art{margin:0;flex-direction:column;gap:22px}.feature-art figcaption{font-size:10px;line-height:1.7;text-align:center;color:var(--muted);max-width:280px}

/* Language flags remain decorative; the language name is the accessible label. */
.language button{display:inline-flex;align-items:center;gap:7px}
.language-flag{display:block;width:20px;height:14px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #17243b16;flex-shrink:0}
#language-options a{display:flex;align-items:center;gap:10px}
@media(max-width:359px){header{gap:12px;padding-left:20px;padding-right:20px}.brand{font-size:20px}.header-actions{gap:12px}.language button{gap:5px}.language button span{margin-left:2px}}

.hero-tagline {
  margin: -10px 0 10px;
  font-size: 14px;
  font-weight: 650;
  color: var(--blue);
}

.reviews {
  max-width: 1184px;
  margin: 0 auto 72px;
  padding: clamp(20px, 4vw, 48px);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(135deg, #edf4ff, #f6f9fd);
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  align-items: center;
  gap: clamp(20px, 4vw, 52px);
}
.reviews h3 {
  font-size: clamp(26px, 3.5vw, 44px);
  line-height: 1.12;
  letter-spacing: -.05em;
  margin-bottom: 10px;
}
.reviews-intro p {
  color: var(--muted);
  font-size: 14px;
  margin: 0;
}
.reviews-intro .review-links {
  margin-top: 16px;
  font-size: 12px;
}
.reviews a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.review-carousel {
  min-width: 0;
}
.review-slides {
  display: grid;
  gap: 12px;
}
.review-card {
  min-width: 0;
  margin: 0;
  padding: clamp(16px, 3vw, 32px);
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper);
  box-shadow: 0 10px 24px #17243b0b;
  display: flex;
  flex-direction: column;
}
.review-carousel.is-ready .review-card {
  grid-area: 1 / 1;
}
.review-card[inert] {
  visibility: hidden;
}
.review-carousel.is-ready .review-card:not([inert]) {
  animation: review-in .35s ease-out;
}
@keyframes review-in {
  from { opacity: 0; transform: translateX(8px); }
  to { opacity: 1; transform: translateX(0); }
}
.review-mark {
  color: var(--blue);
  font-size: 42px;
  line-height: .8;
}
.review-card blockquote {
  margin: 0;
  font-size: clamp(17px, 2vw, 23px);
  font-weight: 600;
}
.review-card blockquote p {
  line-height: 1.5;
  margin: 8px 0 18px;
}
.review-card figcaption {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  margin-top: auto;
  font-size: 12px;
  color: var(--muted);
}
@media (max-width: 1279px) {
  .reviews { margin-inline: 48px; }
}
@media (max-width: 1000px) {
  .reviews { margin-inline: 30px; }
}
@media (max-width: 760px) {
  .reviews { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .reviews { margin: 0 20px 52px; }
}
@media (prefers-reduced-motion: reduce) {
  .review-carousel.is-ready .review-card:not([inert]) { animation: none; }
}

.hero-copy,
.feature-copy {
  min-width: 0;
}
.two-tone-heading > span {
  display: block;
}
.two-tone-heading > span:first-child {
  color: var(--ink);
}
.two-tone-heading > span:last-child {
  color: var(--blue);
}
.two-tone-heading.is-fitted > span {
  width: max-content;
  max-width: none;
  white-space: nowrap;
}
.download-section .two-tone-heading.is-fitted > span {
  margin-inline: auto;
}

.hero h1.two-tone-heading {
  font-size: clamp(42px, 6vw, 84px);
}
.feature h2.two-tone-heading {
  font-size: clamp(38px, 4.8vw, 64px);
}
.feature-copy {
  max-width: none;
}
@media (min-width: 761px) {
  .hero {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    column-gap: clamp(28px, 4vw, 54px);
  }
  .feature {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
    column-gap: clamp(28px, 4vw, 56px);
  }
  .feature.reverse {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  }
}

.two-tone-heading.is-fitted[style*="--fitted-heading-size"] {
  font-size: var(--fitted-heading-size);
}

.checklist {
  display: grid;
  gap: 10px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}
.checklist li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--wash);
  color: var(--ink);
  font-size: clamp(14px, 1.4vw, 17px);
  font-weight: 650;
  line-height: 1.5;
}
.checklist li span {
  display: grid;
  flex: 0 0 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: #e0ebfa;
  color: var(--blue);
  font-size: 14px;
}

.mobile-download {
  display: none;
}
@media (max-width: 760px) {
  body:has(.mobile-download) {
    padding-bottom: calc(82px + env(safe-area-inset-bottom, 0px));
  }
  html {
    scroll-padding-bottom: calc(82px + env(safe-area-inset-bottom, 0px));
  }
  .mobile-download {
    position: fixed;
    z-index: 9;
    inset-inline: 16px;
    bottom: calc(14px + env(safe-area-inset-bottom, 0px));
    max-width: 420px;
    min-height: 52px;
    margin-inline: auto;
    padding: 12px 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    overflow: hidden;
    isolation: isolate;
    border: 1px solid #174f9d;
    border-radius: 16px;
    background: linear-gradient(110deg, #225eb4, #17468c);
    color: #fff;
    box-shadow: 0 8px 28px #163d7766;
    font-size: 16px;
    font-weight: 750;
  }
  .mobile-download::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(112deg, transparent 38%, #fff3 50%, transparent 62%);
    pointer-events: none;
    animation: download-shimmer 5.5s ease-in-out infinite;
  }
  @keyframes download-shimmer {
    0%, 58% { transform: translateX(-100%); }
    80%, 100% { transform: translateX(100%); }
  }
}

.legal-main {
  max-width: 800px;
  margin: 24px auto 70px;
  padding: 0 24px;
}
.legal-main h1 {
  font-size: clamp(34px, 6vw, 56px);
  margin-bottom: 12px;
}
.legal-main h2 {
  font-size: clamp(23px, 4vw, 30px);
  margin: 36px 0 12px;
}
.legal-main h3 {
  margin: 28px 0 10px;
}
.legal-main time {
  display: block;
  margin-bottom: 24px;
  color: var(--muted);
}
.legal-main li {
  line-height: 1.65;
  margin: 8px 0;
}
.legal-main a,
.analytics-consent a {
  color: var(--blue);
  text-decoration: underline;
  overflow-wrap: anywhere;
}
.analytics-preferences {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  text-decoration: underline;
}
.footer-bottom > div {
  flex-wrap: wrap;
}
.analytics-consent {
  position: fixed;
  z-index: 30;
  inset-inline: 16px;
  bottom: 16px;
  width: min(460px, calc(100% - 32px));
  margin-inline-start: auto;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
  box-shadow: 0 8px 30px #17243b33;
}
.analytics-consent h2 {
  font-size: 22px;
  margin-bottom: 8px;
}
.analytics-consent p {
  font-size: 14px;
  margin-bottom: 14px;
}
.analytics-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.analytics-actions button {
  flex: 1 1 140px;
  min-height: 44px;
  padding: 8px;
  border: 1px solid var(--blue);
  border-radius: 8px;
  background: var(--wash);
  color: var(--ink);
}
@media (max-width: 760px) {
  body:has(.mobile-download) .analytics-consent {
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }
}

.guide-steps {
  padding-inline-start: 1.5em;
}
.guide-steps li::marker {
  color: var(--blue);
  font-weight: 750;
}
.guide-example {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: clamp(16px, 4vw, 32px);
  border-radius: var(--radius);
  background: var(--wash);
}
.guide-example h2 {
  margin-top: 0;
}
.guide-example figure {
  margin: 0;
}
.guide-example .phone {
  width: min(210px, 100%);
  margin-inline: auto;
}
.guide-example figcaption {
  margin-top: 12px;
  color: var(--muted);
  text-align: center;
  font-size: 12px;
}
.route-guide .stores {
  margin-top: 24px;
}
@media (max-width: 560px) {
  .guide-example {
    grid-template-columns: minmax(0, 1fr);
  }
}
