/* Shared by /start and /go/local: causeway hero, sign-strip headline,
   coral section markers, navy placards on a horizon-to-sand page. */
:root{
  --navy-900:#142433; --navy-700:#24425C; --navy-500:#456780;
  --cream:#F7F1E1; --cream-2:#F1E9D3; --paper:#FAF6EA;
  --coral:#BB4F39; --coral-2:#A4442F; --gold:#E0BD47; --brass:#BD9440; --green:#5F7F4C;
  --ink:#1C1A15; --ink-2:#403A30; --ink-3:#6B6353;
  --hair:rgba(28,26,21,.14); --rule:rgba(36,66,92,.28);
  --anton:"Anton","Oswald",Impact,sans-serif;
  --osw:"Oswald","Arial Narrow",sans-serif;
  --body:"Libre Franklin",system-ui,-apple-system,sans-serif;
  --mono:"Space Mono",ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{min-height:100vh;display:flex;flex-direction:column;background:var(--paper);
  color:var(--ink-2);font-family:var(--body);-webkit-font-smoothing:antialiased}
img,svg{display:block}
a{color:var(--navy-700);text-decoration:none}
button,input,select{font:inherit}
button{cursor:pointer}
a:focus-visible,button:focus-visible{outline:2.5px solid var(--gold);outline-offset:3px;border-radius:8px}
::selection{background:var(--gold);color:var(--navy-900)}
.ic svg,.soc svg,.cta svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---- hero ---- */
.hero{position:relative;overflow:hidden;color:var(--cream);
  background:linear-gradient(180deg,#142433 0%,#24425C 50%,#33506A 80%,#456780 100%)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(20,36,51,.62) 0%,rgba(20,36,51,.52) 48%,rgba(20,36,51,.5) 70%,rgba(20,36,51,.35) 100%)}
.hero-in{position:relative;z-index:1;max-width:720px;margin:0 auto;
  padding:calc(48px + env(safe-area-inset-top)) 20px 56px;
  display:flex;flex-direction:column;align-items:center;text-align:center}
.badge{width:200px;max-width:56vw;height:auto;filter:drop-shadow(0 16px 26px rgba(8,16,26,.6))}
.eyebrow{margin-top:24px;font:600 13px/1.5 var(--osw);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
  text-shadow:0 1px 2px rgba(20,36,51,.6),0 0 14px rgba(20,36,51,.5)}
h1{margin-top:14px;display:flex;flex-direction:column;align-items:center;gap:8px;
  font:400 clamp(36px,9vw,56px)/1 var(--anton);letter-spacing:.01em;text-transform:uppercase}
h1 span{display:block;background:var(--navy-900);color:var(--cream);padding:10px 20px 8px;box-shadow:0 3px 0 var(--coral)}
.lede{margin-top:26px;max-width:520px;font-size:18px;line-height:1.5;color:var(--cream);text-wrap:pretty;
  text-shadow:0 1px 2px rgba(20,36,51,.6),0 0 18px rgba(20,36,51,.5)}
.hero-note{margin-top:14px;font-size:14px;line-height:1.5;color:var(--cream-2);text-shadow:0 1px 2px rgba(20,36,51,.6)}

.stores{margin-top:30px;width:100%;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.store{flex:1 1 220px;max-width:320px;min-height:66px;display:flex;align-items:center;gap:14px;text-align:left;
  background:#0D1218;color:var(--cream);border:1px solid rgba(247,241,225,.22);border-radius:12px;
  padding:12px 20px 12px 16px;box-shadow:0 10px 24px rgba(8,16,26,.45);transition:border-color .15s,transform .15s}
.store:hover{border-color:var(--gold);transform:translateY(-1px)}
.store:active{transform:translateY(1px)}
.store svg{flex:none}
.store .s1{display:block;font-size:11px;line-height:1.2;letter-spacing:.04em;color:rgba(241,233,211,.72)}
.store .s2{display:block;margin-top:2px;font:600 21px/1.1 var(--osw);letter-spacing:.03em;text-transform:uppercase}

/* ---- horizon-to-sand page ---- */
.sand{flex:1;background-color:var(--paper);
  background-image:radial-gradient(rgba(36,66,92,.13) .7px,transparent .8px),
    linear-gradient(180deg,#E2D3AD 0,#E6D8B8 260px,#F2EBD8 560px,#FAF6EA 820px);
  background-size:6px 6px,100% 820px;background-repeat:repeat,no-repeat}
.col{max-width:720px;margin:0 auto;padding:48px 20px calc(64px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:52px}
.sec{display:flex;flex-direction:column;gap:18px}

.lab{display:flex;align-items:center;gap:12px;white-space:nowrap;
  font:600 12px/1.5 var(--osw);letter-spacing:.14em;text-transform:uppercase;color:var(--navy-700)}
.lab::before{content:"";flex:none;width:9px;height:9px;background:var(--coral)}
.lab::after{content:"";flex:1;height:1px;background:var(--rule)}

/* ---- feature rows ---- */
.feats{display:flex;flex-direction:column;gap:12px}
.feat{display:flex;align-items:center;gap:16px;padding:16px 18px;background:var(--cream);color:var(--navy-700);
  border:1px solid var(--hair);border-radius:10px;box-shadow:0 2px 6px rgba(28,26,21,.1)}
.ic{flex:none;width:44px;height:44px;border-radius:8px;display:grid;place-items:center;color:var(--cream)}
.ic svg{width:22px;height:22px}
.feat .tx{flex:1;min-width:0}
.feat h3,.perk h3{font:600 17px/1.2 var(--osw);letter-spacing:.04em;text-transform:uppercase;color:var(--navy-700)}
.feat p,.perk p{margin-top:3px;font-size:15px;line-height:1.5;color:var(--ink-2);text-wrap:pretty}
.chip{flex:none;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;
  font:700 10px/1.5 var(--mono);letter-spacing:.16em;text-transform:uppercase;
  color:var(--navy-700);border:1px solid rgba(36,66,92,.45);border-radius:999px;padding:5px 9px}
.chip.live{color:var(--navy-900);background:var(--gold);border-color:var(--gold)}
.chip.live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--navy-900)}
a.feat{transition:border-color .15s,transform .12s}
a.feat:hover{border-color:var(--navy-500)}
a.feat:active{transform:translateY(1px)}

/* navy placard: "in the app today" rows and the vendor cards */
.navy{background-color:var(--navy-700);color:var(--cream-2);
  background-image:radial-gradient(rgba(247,241,225,.07) 1px,transparent 1.4px);background-size:4px 4px}
.feat.navy{border:0;box-shadow:0 3px 0 var(--coral),0 10px 22px rgba(20,36,51,.22)}
.feat.navy .ic{background:rgba(247,241,225,.14)}
.feat.navy h3{color:var(--cream)}
.feat.navy p{color:var(--cream-2)}

/* ---- socials ---- */
.socials{margin-top:4px;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.soc{width:60px;height:60px;border-radius:50%;background:var(--navy-700);color:var(--cream);
  display:grid;place-items:center;box-shadow:0 2px 6px rgba(28,26,21,.18);transition:filter .12s,transform .12s}
.soc:hover{filter:brightness(1.12)}
.soc:active{transform:translateY(1px)}
.soc svg{width:24px;height:24px}

/* ---- cards, fields, buttons ---- */
.card{background:var(--cream);border:1px solid var(--hair);border-radius:10px;padding:20px;box-shadow:0 2px 6px rgba(28,26,21,.1)}
.k{font:600 11px/1.5 var(--osw);letter-spacing:.16em;text-transform:uppercase;color:var(--coral)}
.sign{font:400 30px/1.05 var(--anton);letter-spacing:.01em;text-transform:uppercase;color:var(--navy-700);text-wrap:pretty}
.fine{font-size:13px;line-height:1.5;color:var(--ink-3)}

.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font:600 12px/1.5 var(--osw);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
/* 16px keeps iOS Safari from zooming the page when a field takes focus */
.field input,.field select{width:100%;background:#fff;color:var(--ink);border:2px solid rgba(28,26,21,.24);
  border-radius:10px;padding:10px 12px;font:400 16px/1.4 var(--body);transition:border-color .12s,box-shadow .12s}
.field select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0h10L5 6z' fill='%236B6353'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;background-size:10px 6px}
.field input::placeholder{color:#8D8368}
.field input:focus,.field select:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(189,148,64,.45)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;
  font:600 14px/1 var(--osw);letter-spacing:.08em;text-transform:uppercase;border-radius:10px;padding:13px 20px;
  background:var(--brass);color:var(--navy-900);border:2px solid var(--brass);
  box-shadow:0 2px 6px rgba(28,26,21,.12);transition:filter .12s,transform .12s}
.btn:hover{filter:brightness(1.08)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.accent{background:var(--coral);border-color:var(--coral);color:#fff;font-size:16px;padding:15px 28px}

.cta{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:var(--navy-700);
  border-radius:10px;padding:13px 22px;font:600 14px/1.5 var(--osw);letter-spacing:.1em;text-transform:uppercase;
  box-shadow:0 3px 0 var(--brass);transition:filter .12s,transform .12s}
.cta:hover{filter:brightness(1.06)}
.cta:active{transform:translateY(1px)}
.cta svg{width:18px;height:18px;stroke-width:2.2}

/* ---- vendor placard ---- */
.placard{border-radius:14px;padding:28px 28px 30px;display:flex;flex-direction:column;gap:12px;
  box-shadow:0 4px 0 var(--coral),0 14px 32px rgba(20,36,51,.28)}
.placard .k{color:var(--gold)}
.placard .sign{color:var(--cream)}
.placard p{max-width:560px;font-size:16px;line-height:1.6;text-wrap:pretty}
.placard .fine{color:rgba(241,233,211,.78)}
.placard .cta{margin-top:8px}

/* ---- inline capture + sent states ---- */
.capture{display:flex;flex-direction:column;gap:12px}
.capture .line{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.capture .field{flex:1 1 240px}
.sent{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.sent:focus{outline:none}
.sent h3{font:600 20px/1.2 var(--osw);letter-spacing:.04em;text-transform:uppercase;color:var(--navy-700)}
.sent p{font-size:16px;line-height:1.6;text-wrap:pretty}

/* ---- footer ---- */
footer{display:flex;flex-direction:column;align-items:center;gap:10px;padding-top:12px;text-align:center}
.wordmark{font:400 min(44px,12vw)/1 var(--anton);letter-spacing:.005em;color:var(--navy-700)}
.wordmark span{color:var(--coral)}
footer .f1{font:600 12px/1.5 var(--osw);letter-spacing:.16em;text-transform:uppercase;color:var(--navy-700)}
footer .f2{font:500 11px/1.5 var(--osw);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
footer .f3{margin-top:6px;font-size:14px;font-style:italic;color:var(--ink-3)}

/* ---- /go/local ---- */
.hero.local .hero-bg{object-position:50% 56%}
.hero.local::after{background:linear-gradient(180deg,rgba(20,36,51,.7) 0%,rgba(20,36,51,.55) 55%,rgba(20,36,51,.5) 78%,rgba(20,36,51,.25) 100%)}
.hero.local .hero-in{padding:calc(20px + env(safe-area-inset-top)) 20px 300px}
.hero.local .eyebrow{margin-top:56px}
.hero.local h1{font-size:clamp(40px,10vw,62px)}
.hero.local .lede{max-width:540px}
.hero.local .hero-note{margin-top:18px}
.home{align-self:flex-start;display:flex;align-items:center;gap:10px;color:var(--cream);
  font:400 22px/1 var(--anton);letter-spacing:.005em}
.home img{width:44px;height:auto;filter:drop-shadow(0 3px 6px rgba(8,16,26,.5))}
.home i{font-style:normal;color:var(--gold)}
.home:hover{color:var(--gold)}
.hero .cta{align-self:center;margin-top:30px;border:2px solid var(--navy-700);padding:14px 24px;font-size:15px;
  box-shadow:0 3px 0 var(--navy-700),0 10px 22px rgba(8,16,26,.35)}
.hero .cta svg{stroke-width:2.4}

/* the sign-up form rides up over the hero as a raised placard */
.raised{margin-top:-260px;position:relative;z-index:1;scroll-margin-top:24px;
  background:var(--cream);border:2px solid var(--navy-700);border-radius:14px;padding:28px 24px;
  box-shadow:0 4px 0 var(--coral),0 18px 40px rgba(8,16,26,.35)}
.listing{display:flex;flex-direction:column;gap:18px}
.listing .intro p{margin-top:10px;font-size:15px;line-height:1.5;text-wrap:pretty}
.listing .sign{margin-top:6px}
.pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.listing .go{margin-top:4px;display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.err{font-size:14px;line-height:1.5;color:#B23B2C}
/* keep the card tall enough that the next section stays clear of the hero */
.raised .sent{min-height:170px;justify-content:center}
.raised .sent h3{font:400 30px/1.05 var(--anton);letter-spacing:.01em}

.perks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.perk{display:flex;flex-direction:column;gap:12px}
.perk p{margin-top:0}

@media(max-width:519px){
  /* status chips drop under the copy instead of squeezing it into a sliver */
  .feat{flex-wrap:wrap;row-gap:10px}
  .feat .tx{flex-basis:calc(100% - 60px)}
  .feat .chip{margin-left:60px}
  .placard{padding:24px 22px 26px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
