/* css/style.css */
/* Zeet — Sweep mark and turquoise palette from the native app.
   System type so the page matches the iOS app it describes. */
:root {
  --ink:#142d32;
  --paper:#f5f7f2;
  --band:#e8eee8;
  --muted:#4f6166;
  --line:#d9e1da;
  --accent:#0099b8;
  --link:#00758d;
  --mint:#dceee7;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  --ease-out:cubic-bezier(.2,.75,.2,1);
  interpolate-size:allow-keywords
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:88px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:17px/1.6 var(--font);
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit
}
img {
  max-width:100%;
  display:block
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2,h3 {
  font-weight:650;
  text-wrap:balance
}
h1 {
  font-size:clamp(40px,5.2vw,64px);
  line-height:1.04;
  letter-spacing:-.03em
}
h2 {
  font-size:clamp(30px,3.4vw,40px);
  line-height:1.1;
  letter-spacing:-.022em
}
h3 {
  font-size:18px;
  line-height:1.35;
  letter-spacing:-.01em
}
p {
  color:var(--muted);
  text-wrap:pretty
}
.wrap {
  width:min(1120px,calc(100% - 2*clamp(20px,4vw,48px)));
  margin:auto
}

/* Header: transparent at the top, frosted once content scrolls under it.
   The glass sits on ::before so the mobile menu can blur the page itself. */
.header {
  position:sticky;
  top:0;
  z-index:10;
  isolation:isolate
}
.header::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:rgb(245 247 242/.78);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
  backdrop-filter:blur(18px) saturate(170%);
  border-bottom:1px solid rgb(20 45 50/.08);
  opacity:0;
  transition:opacity .3s
}
.header.is-scrolled::before {
  opacity:1
}
.nav {
  height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--ink);
  font-weight:750;
  font-size:32px;
  letter-spacing:-.06em;
  line-height:1
}
.brand-dot {
  color:var(--accent);
  margin-left:-6px
}
.brand img {
  width:28px;
  height:28px
}
.nav nav {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:15px;
  font-weight:550
}
.nav nav>a:not(.button):hover,.footer-links a:hover {
  color:var(--link);
  text-decoration:underline;
  text-underline-offset:4px
}
.menu-toggle {
  display:none
}

/* Buttons and links */
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:13px 22px;
  background:var(--ink);
  color:white;
  border-radius:10px;
  font-size:16px;
  font-weight:600;
  transition:background .2s,transform .15s
}
.button:hover {
  background:#24505a
}
.button:active {
  transform:scale(.98)
}
.button.small {
  min-height:40px;
  padding:8px 16px;
  font-size:14px;
  border-radius:8px
}
.text-link {
  font-size:16px;
  font-weight:600;
  color:var(--ink);
  text-decoration:underline;
  text-decoration-color:var(--line);
  text-decoration-thickness:2px;
  text-underline-offset:5px;
  transition:text-decoration-color .2s,color .2s
}
.text-link:hover {
  color:var(--link);
  text-decoration-color:currentColor
}

/* Hero */
.hero {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(40px,6vw,88px);
  align-items:center;
  padding:56px 0 72px
}
.hero h1 {
  max-width:12em
}
.intro {
  font-size:19px;
  max-width:31em;
  margin:24px 0 32px
}
.actions {
  display:flex;
  gap:16px 28px;
  align-items:center;
  flex-wrap:wrap
}
.hero-note {
  font-size:14px;
  margin-top:28px
}
.phone {
  display:flex;
  justify-content:center;
  height:clamp(440px,46vw,580px);
  padding-top:44px;
  overflow:hidden;
  background:var(--mint);
  border-radius:20px
}
/* The screenshot runs off the bottom of the panel; the top half holds the totals. */
.phone img {
  width:min(300px,68%);
  height:auto;
  align-self:flex-start;
  border:8px solid #10191b;
  border-bottom:0;
  border-radius:40px 40px 0 0;
  box-shadow:0 24px 48px rgb(20 45 50/.18);
  animation:screen-in .9s var(--ease-out) .1s both
}
.hero-stage figcaption {
  margin-top:12px;
  font-size:14px;
  color:var(--muted)
}

/* What it shows */
.section {
  padding:96px 0
}
.section-heading {
  max-width:40em;
  margin-bottom:40px
}
.section-heading>p {
  margin-top:14px;
  font-size:18px
}
.spec-list {
  border-top:1px solid var(--line)
}
.spec {
  display:grid;
  grid-template-columns:260px 1fr;
  gap:32px;
  padding:22px 0;
  border-bottom:1px solid var(--line)
}
.spec p {
  max-width:40em
}
.estimates-note {
  max-width:44em;
  margin-top:28px;
  font-size:15px
}

/* Apple Watch */
.watch-section {
  background:var(--band);
  padding:88px 0
}
.watch-grid {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:clamp(40px,7vw,96px);
  align-items:center
}
.watch-grid img {
  width:216px;
  height:auto;
  aspect-ratio:416/468;
  object-fit:cover;
  object-position:top;
  border:10px solid #0b1214;
  border-radius:48px;
  background:black;
  box-shadow:0 20px 40px rgb(20 45 50/.18)
}
.watch-copy {
  max-width:30em
}
.watch-copy p {
  margin-top:14px;
  font-size:18px
}

/* Vehicles */
.vehicle-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}
.vehicle-card {
  background:var(--band);
  border-radius:16px;
  padding:24px 28px 26px
}
.vehicle-card img {
  width:100%;
  height:190px;
  object-fit:contain;
  margin-bottom:18px;
  filter:brightness(.42) saturate(.6)
}
.vehicle-card h3 {
  font-size:22px
}
.vehicle-card p {
  font-size:15px;
  margin-top:2px
}
.compatibility-note {
  font-size:15px;
  max-width:44em;
  margin-top:24px
}

/* Questions */
.faq-section {
  border-top:1px solid var(--line);
  padding:88px 0;
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:64px
}
.faq-list {
  border-top:1px solid var(--line)
}
.faq-list details {
  border-bottom:1px solid var(--line)
}
.faq-list summary {
  padding:20px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-size:17px;
  font-weight:600;
  cursor:pointer;
  list-style:none
}
.faq-list summary::-webkit-details-marker {
  display:none
}
.faq-list summary span {
  flex:none;
  font-size:24px;
  font-weight:400;
  line-height:1;
  transition:transform .3s var(--ease-out)
}
.faq-list details[open] summary span {
  transform:rotate(45deg)
}
.faq-list details::details-content {
  block-size:0;
  overflow:hidden;
  transition:block-size .35s var(--ease-out),content-visibility .35s allow-discrete
}
.faq-list details[open]::details-content {
  block-size:auto
}
.faq-list details p {
  padding:0 40px 22px 0;
  max-width:40em
}
.faq-list p a,.legal-content p a,.legal-content li a {
  color:var(--link);
  text-decoration:underline;
  text-underline-offset:3px
}

/* Early access */
.cta-section {
  background:var(--ink);
  color:white;
  padding:88px 0
}
.cta-section h2 {
  max-width:14em
}
.cta-section p {
  color:#c3d3d0;
  font-size:18px;
  max-width:32em;
  margin:14px 0 30px
}
.cta-section .button {
  background:white;
  color:var(--ink)
}
.cta-section .button:hover {
  background:var(--mint)
}

/* Footer */
.footer {
  padding:40px 0 28px
}
.footer-top {
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center
}
.footer-links {
  display:flex;
  flex-wrap:wrap;
  gap:10px 28px;
  font-size:15px
}
.footer-bottom {
  border-top:1px solid var(--line);
  margin-top:28px;
  padding-top:20px;
  display:flex;
  justify-content:space-between;
  gap:24px;
  font-size:13px;
  color:var(--muted)
}
.footer-bottom p {
  font-size:13px;
  max-width:36em
}
.skip-link {
  position:fixed;
  top:-80px;
  left:16px;
  z-index:100;
  background:var(--ink);
  color:white;
  padding:12px 20px;
  border-radius:6px
}
.skip-link:focus {
  top:12px
}
:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:4px
}

/* Support, legal and 404 */
.legal-content {
  max-width:720px;
  padding:56px 0 96px
}
.legal-content h1 {
  font-size:clamp(40px,5vw,56px);
  margin-bottom:20px
}
.legal-content h2 {
  font-size:24px;
  letter-spacing:-.015em;
  margin:40px 0 12px
}
.legal-content h3 {
  font-size:19px;
  margin:28px 0 10px
}
.legal-content p,.legal-content li {
  font-size:17px;
  line-height:1.7;
  margin-bottom:14px
}
.legal-content .updated,.legal-content .last-updated {
  font-size:14px
}
.legal-content ul {
  padding-left:22px
}
.legal-content>.button {
  margin-top:12px
}
.support-contact {
  padding:24px 28px;
  background:var(--mint);
  border-radius:14px;
  margin:28px 0 8px
}
.support-contact h2 {
  font-size:15px;
  font-weight:600;
  letter-spacing:0;
  color:var(--muted);
  margin-bottom:4px
}
.support-contact a {
  font-size:22px;
  font-weight:650;
  letter-spacing:-.015em;
  color:var(--ink)!important;
  text-decoration:none!important
}
.support-contact a:hover {
  text-decoration:underline!important
}
.support-contact p:last-child {
  margin-bottom:0
}

@keyframes screen-in {
  from {
    opacity:0;
    translate:0 32px
  }
}

@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  .header::before {
    background:rgb(245 247 242/.97)
  }
}

@media(max-width:900px) {
  .hero {
    grid-template-columns:1fr;
    padding-top:32px
  }
  .phone {
    height:clamp(380px,90vw,520px)
  }
  .spec {
    grid-template-columns:200px 1fr;
    gap:24px
  }
  .faq-section {
    grid-template-columns:1fr;
    gap:24px
  }
}
@media(max-width:760px) {
  html {
    scroll-padding-top:72px
  }
  body {
    font-size:16px
  }
  .nav {
    height:64px
  }
  .brand {
    font-size:28px
  }
  .brand img {
    width:25px;
    height:25px
  }
  .menu-toggle {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:40px;
    padding:7px 14px;
    border:1px solid var(--line);
    border-radius:8px;
    background:rgb(255 255 255/.6);
    color:var(--ink);
    font-size:14px;
    font-weight:550;
    cursor:pointer
  }
  .menu-toggle span {
    display:inline-block;
    width:1em;
    text-align:center
  }
  .nav nav {
    position:absolute;
    top:calc(100% + 6px);
    left:12px;
    right:12px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:2px;
    padding:10px;
    border-radius:18px;
    background:rgb(250 252 248/.82);
    -webkit-backdrop-filter:blur(24px) saturate(170%);
    backdrop-filter:blur(24px) saturate(170%);
    box-shadow:inset 0 0 0 1px rgb(255 255 255/.7),0 20px 44px rgb(20 45 50/.16);
    font-size:17px;
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    transition:opacity .2s,transform .3s var(--ease-out),visibility 0s .3s
  }
  .nav nav.is-open {
    opacity:1;
    visibility:visible;
    transform:none;
    transition:opacity .2s,transform .3s var(--ease-out),visibility 0s
  }
  .nav nav>a:not(.button) {
    padding:12px 14px;
    border-radius:10px
  }
  .nav nav>a:not(.button):hover {
    text-decoration:none;
    background:rgb(220 238 231/.7)
  }
  .nav nav .button {
    margin-top:6px;
    min-height:48px;
    font-size:16px
  }
  .intro {
    font-size:17px
  }
  .section {
    padding:64px 0
  }
  .section-heading>p,.watch-copy p,.cta-section p {
    font-size:17px
  }
  .spec {
    grid-template-columns:1fr;
    gap:4px;
    padding:18px 0
  }
  .watch-section {
    padding:64px 0
  }
  .watch-grid {
    grid-template-columns:1fr;
    gap:32px
  }
  .watch-grid img {
    width:176px;
    border-width:8px;
    border-radius:40px
  }
  .vehicle-grid {
    grid-template-columns:1fr;
    gap:16px
  }
  .vehicle-card {
    padding:20px 22px 22px
  }
  .vehicle-card img {
    height:clamp(120px,38vw,170px)
  }
  .faq-section {
    padding:64px 0
  }
  .faq-list summary {
    font-size:16px
  }
  .faq-list details p {
    padding-right:8px
  }
  .cta-section {
    padding:64px 0
  }
  .footer-top {
    flex-direction:column;
    align-items:flex-start
  }
  .footer-bottom {
    flex-direction:column;
    gap:8px
  }
  .legal-content {
    padding:36px 0 64px
  }
  .legal-content p,.legal-content li {
    font-size:16px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }
}
