/* TSNMI — Tidewater palette */
:root{
  --ink:#16455E;          /* deep navy text */
  --wave:#2E88B5;         /* primary */
  --wave-deep:#1E6A93;    /* hover / gradients */
  --sky:#D9EDF7;          /* pale panels */
  --foam:#F5FAFD;         /* page background */
  --mist:#EAF4FA;         /* card alt */
  --line:#CFE4EF;
  --muted:#5E7E90;
  --good:#2E8B6B;
  --warn:#B5652E;
  --radius:14px;
  --shadow:0 2px 10px rgba(22,69,94,.08);
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scrollbar-gutter:stable; }
body{
  margin:0; background:var(--foam); color:var(--ink);
  font-family:'Montserrat',system-ui,sans-serif; font-size:15px; line-height:1.55;
}
h1,h2,h3,h4,.display{ font-family:'Outfit',sans-serif; font-weight:700; line-height:1.15; margin:0 0 .4em; }
h1{ font-size:2rem; } h2{ font-size:1.4rem; } h3{ font-size:1.1rem; }
a{ color:var(--wave-deep); text-decoration:none; }
a:hover{ text-decoration:underline; }
img{ max-width:100%; }
.wrap{ max-width:1060px; margin:0 auto; padding:0 18px; }
.muted{ color:var(--muted); }
.small{ font-size:.85rem; }

/* nav */
nav.sitenav{
  position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid var(--line);
}
nav.sitenav .wrap{ display:flex; align-items:center; gap:18px; height:60px; }
nav .brand{ display:flex; align-items:center; gap:10px; font-family:'Outfit',sans-serif; font-weight:800; font-size:1.2rem; color:var(--ink); }
nav .brand img{ height:34px; width:auto; }
nav .brand:hover{ text-decoration:none; }
.navlinks{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.navlinks a.navlink{ padding:8px 12px; border-radius:8px; color:var(--ink); font-weight:600; font-size:.92rem; }
.navlinks a.navlink:hover{ background:var(--mist); text-decoration:none; }
#authbtn{ display:flex; gap:8px; margin-left:6px; }
.burger{ display:none; margin-left:auto; background:none; border:1px solid var(--line); border-radius:8px; padding:6px 10px; font-size:1.1rem; color:var(--ink); cursor:pointer; }
@media (max-width:820px){
  .burger{ display:block; }
  .navlinks{ display:none; position:absolute; top:60px; left:0; right:0; background:#fff;
    border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; padding:10px 16px 16px; gap:6px; }
  .navlinks.open{ display:flex; }
  #authbtn{ margin-left:0; }
  .hide-sm{ display:none; }
}

/* buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:6px;
  font-family:'Outfit',sans-serif; font-weight:600; font-size:.92rem;
  border-radius:10px; padding:9px 16px; border:1px solid transparent; cursor:pointer; transition:.15s; }
.btn:hover{ text-decoration:none; }
.btn-primary{ background:var(--wave); color:#fff; }
.btn-primary:hover{ background:var(--wave-deep); }
.btn-ghost{ background:#fff; color:var(--ink); border-color:var(--line); }
.btn-ghost:hover{ background:var(--mist); }
.btn-danger{ background:#fff; color:#a33; border-color:#e5c4c4; }
.btn-danger:hover{ background:#fbeeee; }
.btn-sm{ padding:5px 11px; font-size:.83rem; border-radius:8px; }
.navbtn{ padding:7px 14px; }

/* cards */
.card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:18px; }
.card + .card{ margin-top:14px; }
.card h2, .card h3{ margin-top:0; }
.cardgrid{ display:grid; gap:14px; }
.cardgrid > *{ min-width:0; }
.cols-2{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.cols-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:820px){ .cols-2,.cols-3{ grid-template-columns:minmax(0,1fr); } }
.empty{ text-align:center; color:var(--muted); padding:26px 18px; }
.empty .big{ font-size:1.6rem; display:block; margin-bottom:6px; }

/* forms */
label{ display:block; font-weight:600; font-size:.85rem; margin:10px 0 4px; }
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=date],input[type=time],input[type=number],input[type=search],select,textarea{
  width:100%; padding:9px 12px; border:1px solid var(--line); border-radius:10px;
  font-family:inherit; font-size:.95rem; color:var(--ink); background:#fff;
}
textarea{ min-height:80px; resize:vertical; }
input:focus,select:focus,textarea:focus{ outline:2px solid var(--sky); border-color:var(--wave); }
.formrow{ display:flex; gap:10px; }
.formrow > *{ flex:1; min-width:0; }
.formrow input,.formrow select,.formrow textarea{ min-width:0; }
.formfoot{ display:flex; gap:8px; margin-top:14px; align-items:center; }
.msg{ font-size:.88rem; margin-top:8px; }
.msg.err{ color:#a33; } .msg.ok{ color:var(--good); }

/* hero (landing) */
.hero{ background:linear-gradient(180deg,#DEF0F9 0%, var(--foam) 100%); padding:64px 0 48px; text-align:center; }
.hero img.logo{ width:min(420px,80%); height:auto; margin-bottom:10px; }
.hero .tagline{ font-family:'Outfit',sans-serif; font-size:1.35rem; font-weight:600; color:var(--wave-deep); letter-spacing:.06em; text-transform:uppercase; }
.hero p.sub{ max-width:560px; margin:12px auto 22px; color:var(--muted); font-size:1.02rem; }
.hero .cta{ display:flex; gap:10px; justify-content:center; }
.featureband{ padding:34px 0 50px; }

/* chips, pills, avatars */
.chip{ display:inline-flex; align-items:center; gap:5px; background:var(--mist); border:1px solid var(--line);
  border-radius:999px; padding:3px 11px; font-size:.8rem; font-weight:600; color:var(--wave-deep); }
.chip.kind-food{ background:#FCF1E4; color:#9A5A1E; border-color:#F0DCC4; }
.chip.kind-lodging{ background:#EAF7EE; color:#2E6B45; border-color:#CFE8D6; }
.chip.kind-travel{ background:#F0EAFB; color:#5A3E9E; border-color:#DED2F2; }
.chip.kind-meetup{ background:#FDECEC; color:#A03A3A; border-color:#F2D4D4; }
.avatar{ width:34px; height:34px; border-radius:50%; background:var(--sky); color:var(--wave-deep);
  display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-family:'Outfit',sans-serif;
  font-size:.9rem; overflow:hidden; flex:none; }
.avatar img{ width:100%; height:100%; object-fit:cover; }

/* list rows */
.rowlist{ display:flex; flex-direction:column; }
.rowitem{ display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--mist); }
.rowitem:last-child{ border-bottom:none; }
.rowitem .grow{ flex:1; min-width:0; }
.rowitem .title{ font-weight:600; }
.rowitem.done .title{ text-decoration:line-through; color:var(--muted); }

/* feed */
.tabs{ display:flex; gap:6px; margin-bottom:14px; }
.tabs button{ background:#fff; border:1px solid var(--line); border-radius:999px; padding:7px 18px;
  font-family:'Outfit',sans-serif; font-weight:600; font-size:.9rem; color:var(--ink); cursor:pointer; }
.tabs button.active{ background:var(--wave); border-color:var(--wave); color:#fff; }
.post{ display:flex; gap:12px; }
.post .votecol{ display:flex; flex-direction:column; align-items:center; gap:2px; width:38px; flex:none; }
.votebtn{ background:none; border:none; cursor:pointer; font-size:1.15rem; color:#9DBACB; padding:2px; line-height:1; }
.votebtn.on{ color:var(--wave); }
.votecount{ font-family:'Outfit',sans-serif; font-weight:700; font-size:.95rem; }
.post .body{ flex:1; min-width:0; }
.posthead{ display:flex; align-items:center; gap:9px; margin-bottom:6px; }
.posthead .who{ font-weight:700; }
.posthead .when{ color:var(--muted); font-size:.8rem; }
.postphoto{ border-radius:10px; margin-top:8px; max-height:420px; object-fit:cover; width:100%; }
.posttrip{ margin-top:8px; background:var(--mist); border:1px solid var(--line); border-radius:10px; padding:9px 12px; font-size:.88rem; }
.postfoot{ display:flex; gap:14px; margin-top:8px; font-size:.84rem; color:var(--muted); }
.postfoot button{ background:none; border:none; color:var(--muted); cursor:pointer; font:inherit; padding:0; }
.postfoot button:hover{ color:var(--wave-deep); }
.comments{ margin-top:10px; border-top:1px solid var(--mist); padding-top:10px; display:flex; flex-direction:column; gap:9px; }
.comment{ display:flex; gap:9px; }
.comment .cbody{ flex:1; background:var(--mist); border-radius:10px; padding:7px 11px; }
.comment .cvote{ display:flex; flex-direction:column; align-items:center; width:26px; flex:none; }
.comment .cvote .votebtn{ font-size:.95rem; }
.comment .cvote .votecount{ font-size:.8rem; }

/* trip page */
/* width stability: the itinerary column is a fixed fraction of the grid, so a day
   card is exactly as wide collapsed as it is expanded regardless of its contents */
#trip-days,#stay-options,#ttab-plan > div,#ttab-money > div,#ttab-stay > div{ min-width:0; }
.daycard,.daybody,.itinlist{ min-width:0; }
.daycard .itincard{ min-width:0; }
.itincard-title{ min-width:0; overflow-wrap:anywhere; }
.itincard-meta{ min-width:0; }
.stayband{ min-width:0; }
.stayband .sbname{ min-width:0; overflow-wrap:anywhere; }
.daybody .splitgrid{ min-width:0; }
.tripmeta{ display:flex; flex-wrap:wrap; gap:8px 18px; color:var(--muted); font-size:.92rem; margin-bottom:6px; }
.daycard{ overflow:hidden; }
.daycard h3{ display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  margin:-18px -18px 12px; padding:12px 18px;
  background:var(--wave-deep); color:#fff; border-bottom:1px solid var(--ink);
  border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0; }
.daycard h3 .datechip{ font-size:inherit; font-weight:600; color:var(--sky); display:flex; align-items:center; }
.daycard h3 .datechip::before{ content:"•"; margin-right:10px; color:rgba(255,255,255,.45); font-weight:700; }
/* expandable days */
.dayctl{ display:flex; justify-content:flex-end; margin-bottom:10px; }
.daycard h3.dayhead{ gap:8px; cursor:pointer; user-select:none; transition:background .14s ease; }
.daycard h3.dayhead:hover{ background:var(--ink); }
.daycard h3.dayhead:focus-visible{ outline:2px solid var(--sky); outline-offset:-3px; }
.daycard .daychev{ display:inline-flex; font-size:1.15rem; line-height:1; font-weight:700;
  color:rgba(255,255,255,.8); transform:rotate(90deg); transition:transform .16s ease; }
.daycard.collapsed .daychev{ transform:rotate(0deg); }
.daycard .daycount{ margin-left:auto; font-family:'Montserrat',sans-serif; font-size:.75rem;
  font-weight:700; letter-spacing:.02em; color:#fff; background:rgba(255,255,255,.18);
  border-radius:999px; padding:3px 10px; white-space:nowrap; }
.daycard .daycount.none{ font-weight:600; color:rgba(255,255,255,.72); background:rgba(255,255,255,.10); }
.daycard .todaypill{ font-family:'Outfit',sans-serif; font-size:.7rem; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; color:var(--wave-deep); background:#fff; border-radius:999px; padding:2px 9px; }
.daycard.is-today{ box-shadow:0 0 0 2px var(--wave); }
.daycard.collapsed .daybody{ display:none; }
.daycard.collapsed h3.dayhead{ margin-bottom:-18px; border-bottom:none;
  border-radius:calc(var(--radius) - 1px); }
/* itinerary cards */
.itinlist{ display:flex; flex-direction:column; gap:8px; margin-top:4px; }
.itincard{ display:flex; align-items:stretch; gap:12px; background:#fff; border:1px solid var(--line);
  border-left:4px solid var(--wave); border-radius:12px; padding:11px 12px 11px 13px; cursor:pointer;
  transition:box-shadow .14s ease, transform .14s ease, border-color .14s ease; }
.itincard:hover{ box-shadow:0 6px 18px rgba(22,69,94,.10); transform:translateY(-1px); }
.itincard:focus-visible{ outline:2px solid var(--wave); outline-offset:2px; }
.itincard-time{ width:62px; flex:none; display:flex; flex-direction:column; justify-content:center;
  font-family:'Outfit',sans-serif; line-height:1.25; }
.itincard-time b{ font-size:.88rem; font-weight:700; color:var(--wave-deep); }
.itincard-time i{ font-size:.74rem; font-style:normal; font-weight:600; color:var(--muted); }
.itincard-time i::before{ content:"–"; margin-right:3px; opacity:.55; }
.itincard-time b.any{ font-size:.74rem; font-weight:600; color:var(--muted); }
.itincard-body{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; gap:3px; }
.itincard-title{ font-family:'Outfit',sans-serif; font-weight:600; font-size:1rem; color:var(--ink);
  display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.itincard-meta{ display:flex; flex-wrap:wrap; gap:3px 12px; font-size:.82rem; color:var(--muted); }
.itincard-meta .mi{ display:inline-block; min-width:0; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.itincard-aside{ flex:none; display:flex; align-items:center; gap:8px; align-self:center; }
.cmtbadge{ font-size:.76rem; font-weight:600; color:var(--wave-deep); background:var(--mist);
  border:1px solid var(--line); border-radius:999px; padding:2px 8px; white-space:nowrap; }
.itincard .chev{ font-size:1.3rem; color:var(--line); line-height:1; }
.itincard:hover .chev{ color:var(--wave); }
.itincard.kind-food{ border-left-color:#D9903F; }
.itincard.kind-travel{ border-left-color:#7B5FC4; }
.itincard.kind-meetup{ border-left-color:#C25A5A; }
.itincard.kind-activity{ border-left-color:#2E88B5; }
.itincard.kind-games{ border-left-color:#3F9E7C; }
.itincard.kind-other{ border-left-color:#8FA6B2; }
.itincard.kind-lodging,.itincard.kind-camp{ border-left-color:#4E9E68; }
.itincard.kind-route,.itincard.kind-trailhead{ border-left-color:#1E6A93; }
.chip.kind-activity{ background:#E4F1F8; color:#1E6A93; border-color:#C9E3F1; }
.chip.kind-games{ background:#E6F5EE; color:#2C6B54; border-color:#CCE9DC; }
.chip.kind-other{ background:var(--mist); color:var(--muted); border-color:var(--line); }
.chip.kind-route,.chip.kind-trailhead{ background:#E4F1F8; color:#1E6A93; border-color:#C9E3F1; }
@media (max-width:520px){
  .itincard{ gap:9px; padding:10px; }
  .itincard-time{ width:54px; }
  .itincard-meta{ gap:2px 9px; font-size:.78rem; }
}

/* invite code + guests */
.invrow{ display:flex; align-items:center; gap:8px; flex-wrap:nowrap; font-size:.9rem; color:var(--muted); }
.invrow .invlabel{ white-space:nowrap; }
.invrow b{ font-family:'Outfit',sans-serif; font-size:1rem; letter-spacing:.08em; color:var(--ink);
  background:var(--mist); border:1px solid var(--line); border-radius:8px; padding:3px 10px; }
.invrow .btn{ flex:0 0 auto; padding:5px 12px; }
.avatar.guestav{ background:var(--mist); color:var(--muted); border:1px dashed var(--line); }
.chip-guest{ background:#FCF3E8; color:#9A5A1E; border-color:#F0DCC4; }
.claimbox{ margin-top:10px; padding:10px 12px; background:var(--foam);
  border:1px solid var(--line); border-radius:10px; }
.claimchips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
#guest-add-wrap{ margin-top:10px; }

/* lodging band on itinerary days */
.stayband{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 8px;
  background:var(--mist); border:1px solid var(--line); border-left:4px solid #4E9E68;
  border-radius:10px; padding:7px 11px; font-size:.84rem; color:var(--muted); }
.stayband .sbtag{ font-family:'Outfit',sans-serif; font-weight:700; font-size:.76rem;
  text-transform:uppercase; letter-spacing:.04em; color:#2E6B45; white-space:nowrap; }
.stayband .sbname{ font-weight:600; color:var(--ink); }
.stayband.role-in{ background:#EAF7EE; border-left-color:#3F9E7C; }
.stayband.role-out{ background:#FCF3E8; border-left-color:#D9903F; }
.stayband.role-out .sbtag{ color:#9A5A1E; }
.stayband.role-stay{ opacity:.85; }

/* lodging card list */
.lglist{ display:flex; flex-direction:column; gap:10px; margin-top:4px; }
.lgcard{ border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:#fff; }
.lgtop{ display:flex; align-items:flex-start; gap:8px; }
.lgacts{ flex:none; display:flex; gap:2px; }
.lgdates{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:5px; font-size:.82rem; color:var(--muted); }
.lgdates .lgd b{ display:block; font-family:'Outfit',sans-serif; font-size:.68rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em; color:var(--wave-deep); }
.lgdates .lgd{ color:var(--ink); font-weight:600; }
.lgdates .lgarrow{ color:var(--line); font-size:1rem; }
.lgnights{ background:var(--sky); color:var(--wave-deep); border-radius:999px;
  padding:2px 9px; font-size:.74rem; font-weight:700; white-space:nowrap; }
.imhead{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding-right:34px; }
.imtitle{ font-family:'Outfit',sans-serif; font-size:1.35rem; font-weight:700; color:var(--ink); margin:8px 0 12px; line-height:1.25; }
.imfacts{ display:flex; flex-direction:column; gap:8px; }
.imfact{ display:flex; gap:10px; align-items:flex-start; font-size:.92rem; color:var(--ink); }
.imfact .k{ flex:none; width:20px; text-align:center; }
.imfact a{ color:var(--wave-deep); }

/* address typeahead */
.psbox{ position:relative; flex:1; }
.pslist{ position:absolute; z-index:40; top:calc(100% + 4px); left:0; right:0; background:#fff;
  border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 24px rgba(22,69,94,.14);
  max-height:260px; overflow-y:auto; }
.psitem{ padding:8px 11px; cursor:pointer; border-bottom:1px solid var(--mist); }
.psitem:last-child{ border-bottom:none; }
.psitem:hover,.psitem.active{ background:var(--sky); }
.psitem .t{ font-weight:600; font-size:.9rem; color:var(--ink); }
.psitem .s{ font-size:.8rem; color:var(--muted); margin-top:1px; }
.weatherstrip{ display:flex; gap:8px; overflow-x:auto; padding:2px 0; }
.wday{ flex:none; width:86px; text-align:center; background:var(--mist); border:1px solid var(--line); border-radius:10px; padding:8px 4px; }
.wday .ico{ font-size:1.3rem; }
.wday .hi{ font-weight:700; } .wday .lo{ color:var(--muted); font-size:.82rem; }
.wday .lbl{ font-size:.72rem; font-weight:600; color:var(--muted); text-transform:uppercase; }

.invshare{ width:100%; margin-top:8px; }

/* join-by-link page */
.joinwrap{ display:flex; justify-content:center; padding:26px 0 10px; }
.joincard{ max-width:520px; width:100%; text-align:center; }
.joinmark{ width:64px; height:64px; margin:0 auto 12px; display:block; }
.joincard h1{ font-size:1.7rem; margin-bottom:6px; }
.joincard .invcode{ display:inline-block; margin:12px 0 4px; padding:7px 14px;
  background:var(--mist); border:1px solid var(--line); border-radius:10px;
  font-size:.86rem; color:var(--muted); }
.joincard .invcode b{ font-family:'Outfit',sans-serif; font-size:1.05rem;
  letter-spacing:.09em; color:var(--ink); margin-left:6px; }
.joinbtns{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-top:16px; }
.invitebanner{ display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  border-left:4px solid var(--wave); margin-bottom:14px; }
.invitebanner .joinbtns{ margin-top:0; }

/* mobile bottom nav */
.bottomnav{ display:none; }
@media (max-width:820px){
  .bottomnav{
    display:flex; position:fixed; z-index:90; left:0; right:0; bottom:0;
    background:#fff; border-top:1px solid var(--line);
    box-shadow:0 -4px 18px rgba(22,69,94,.08);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .bnitem{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center;
    justify-content:center; gap:3px; padding:8px 2px 7px; text-decoration:none;
    color:var(--muted); position:relative; }
  .bnitem:hover{ text-decoration:none; }
  .bnicon{ font-size:1.18rem; line-height:1; }
  .bnlogo,.bnavatar{ width:26px; height:26px; border-radius:50%; object-fit:cover; display:block; }
  .bnlabel{ font-family:'Outfit',sans-serif; font-size:.63rem; font-weight:700;
    text-transform:uppercase; letter-spacing:.05em; line-height:1;
    max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .bnitem.active{ color:var(--wave-deep); }
  .bnitem.active::before{ content:""; position:absolute; top:0; left:22%; right:22%;
    height:3px; border-radius:0 0 3px 3px; background:var(--wave); }
  .bnitem.active .bnavatar{ box-shadow:0 0 0 2px var(--wave); }
  /* keep the fixed bar from covering page content / footer */
  body.has-bottomnav footer{ padding-bottom:64px; }
  /* the bottom bar already covers every burger destination */
  body.has-bottomnav .burger{ display:none; }
  body.has-bottomnav .navlinks{ display:none; }
}

/* footer */
footer{ margin-top:48px; border-top:1px solid var(--line); background:#fff; }
footer .wrap{ padding:22px 18px; display:flex; align-items:center; gap:12px; color:var(--muted); font-size:.85rem; }
footer img{ height:24px; }

.pagehead{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:26px 0 16px; flex-wrap:wrap; }
.pagehead h1{ margin:0; }
main{ min-height:60vh; }
.hidden{ display:none !important; }
@media (max-width:820px){ .cardgrid{ grid-template-columns:minmax(0,1fr) !important; } }

/* trip: stay vote board */
.staycard{ position:relative; margin-bottom:14px; }
.staycard.chosen{ border-color:var(--wave); box-shadow:0 0 0 2px var(--sky); }
.stayphoto{ width:100%; max-height:220px; object-fit:cover; border-radius:10px; border:1px solid var(--line); display:block; margin-bottom:10px; }
.stayhead{ display:flex; align-items:flex-start; gap:10px; }
.stayhead .votecol{ display:flex; flex-direction:column; align-items:center; gap:2px; width:38px; flex:none; }
.staymeta{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.chip-chosen{ background:var(--wave); color:#fff; border-color:var(--wave); }
.chiplink{ text-decoration:none; }
.roomsbox{ margin-top:10px; border-top:1px solid var(--mist); padding-top:8px; }
.roomrow input.roomcost{ text-align:right; }
.roomsum{ margin-top:6px; color:var(--muted); }
.roomsum.warn{ color:#B26A00; font-weight:600; }

/* trip: expenses */
.splitgrid{ display:flex; flex-wrap:wrap; gap:6px 14px; margin:4px 0 2px; }
.splitchk{ display:flex; align-items:center; gap:6px; font-size:.9rem; font-weight:500; cursor:pointer; }
.splitchk input{ width:auto; margin:0; }
.balpos{ color:#1E7B45; font-weight:700; font-size:.9rem; }
.balneg{ color:#B03030; font-weight:700; font-size:.9rem; }

/* stay board: clickable cards + detail modal */
.staycard.clickable{ cursor:pointer; transition:box-shadow .15s, transform .15s; }
.staycard.clickable:hover{ box-shadow:0 4px 16px rgba(22,69,94,.12); transform:translateY(-1px); }
.stayfoot{ margin-top:8px; color:var(--muted); border-top:1px solid var(--mist); padding-top:8px; }
.modal-overlay{ position:fixed; inset:0; background:rgba(22,69,94,.45); z-index:100;
  display:flex; align-items:flex-start; justify-content:center; padding:32px 14px; overflow-y:auto; }
.modal{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px;
  width:100%; max-width:640px; position:relative; margin:auto 0; box-shadow:0 18px 50px rgba(22,69,94,.25); }
.modalclose{ position:absolute; top:10px; right:10px; z-index:2; background:#fff; border:1px solid var(--line);
  border-radius:999px; width:32px; height:32px; cursor:pointer; font-size:.95rem; color:var(--muted); }
.modalclose:hover{ color:var(--ink); }
.noscroll{ overflow:hidden; }
.cmtsbox{ border-top:1px solid var(--mist); margin-top:12px; }
@media (max-width:520px){ .modal-overlay{ padding:12px 8px; } .modal{ padding:14px; } }

/* ---------- trip group chat ---------- */
.chatcard{ display:flex; flex-direction:column; max-width:760px; }
.chatlog{ display:flex; flex-direction:column; gap:2px; height:min(58vh,560px); overflow-y:auto;
  background:var(--foam); border:1px solid var(--line); border-radius:12px; padding:12px; margin-top:8px; }
.chatday{ text-align:center; margin:10px 0 6px; }
.chatday span{ background:var(--mist); color:var(--muted); font-size:.75rem; font-weight:600;
  padding:3px 12px; border-radius:999px; }
.chatmsg{ display:flex; align-items:flex-end; gap:8px; margin-top:8px; }
.chatmsg.grouped{ margin-top:2px; }
.chatmsg .avatar{ width:28px; height:28px; font-size:.7rem; flex:none; }
.chatgap{ width:28px; flex:none; }
.chatmsg.mine{ justify-content:flex-end; }
.chatbubble{ background:#fff; border:1px solid var(--line); border-radius:14px 14px 14px 4px;
  padding:7px 12px; max-width:78%; }
.chatmsg.grouped .chatbubble{ border-radius:14px; }
.chatmsg.mine .chatbubble{ background:var(--wave); border-color:var(--wave-deep); color:#fff;
  border-radius:14px 14px 4px 14px; }
.chatname{ font-size:.75rem; font-weight:700; color:var(--wave-deep); margin-bottom:2px; }
.chatbody{ font-size:.92rem; white-space:pre-wrap; word-break:break-word; }
.chattime{ font-size:.68rem; color:var(--muted); margin-top:3px; text-align:right; }
.chatmsg.mine .chattime{ color:var(--sky); }
.chatdel{ background:none; border:none; cursor:pointer; color:inherit; opacity:0; font-size:.68rem; padding:0 2px; }
.chatmsg:hover .chatdel{ opacity:.7; }
.chatbar{ display:flex; gap:8px; margin-top:10px; }
.chatbar input{ flex:1; margin:0; }
@media (max-width:820px){ .chatlog{ height:52vh; } .chatbubble{ max-width:86%; } }

/* =====================================================================
   Free itinerary funnel: landing hero form, /plan wizard, /itinerary, /pricing
   ===================================================================== */
.hero2{ position:relative; overflow:hidden; padding:54px 0 40px;
  background:radial-gradient(1200px 520px at 15% -10%, #CFE8F6 0%, transparent 60%),
             radial-gradient(900px 480px at 95% 10%, #E4F3FA 0%, transparent 55%),
             linear-gradient(180deg,#E8F4FA 0%, var(--foam) 100%); }
.hero2 .wrap{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:34px; align-items:center; }
.hero2 .kicker{ display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); border-radius:999px;
  padding:5px 12px 5px 6px; font-size:.78rem; font-weight:700; color:var(--wave-deep); letter-spacing:.04em; text-transform:uppercase; }
.hero2 .kicker .dot{ width:22px; height:22px; border-radius:50%; background:var(--wave); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:.8rem; }
.hero2 h1{ font-size:clamp(2.1rem, 4.4vw, 3.3rem); font-weight:800; letter-spacing:-.02em; margin:14px 0 10px; }
.hero2 h1 em{ font-style:normal; color:var(--wave); }
.hero2 p.sub{ color:var(--muted); font-size:1.06rem; max-width:520px; margin:0 0 18px; }
.hero2 .proof{ display:flex; flex-wrap:wrap; gap:8px 18px; color:var(--muted); font-size:.85rem; margin-top:14px; }
.hero2 .proof span::before{ content:"✓"; color:var(--good); font-weight:800; margin-right:6px; }
.hero2 .logo{ height:40px; width:auto; margin-bottom:8px; }
.planbox{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:20px; box-shadow:0 18px 50px rgba(22,69,94,.14); }
.planbox h3{ margin:0 0 4px; font-size:1.15rem; }
.planbox .lead{ color:var(--muted); font-size:.88rem; margin:0 0 12px; }
.pills{ display:flex; flex-wrap:wrap; gap:8px; }
.pill{ background:#fff; border:1px solid var(--line); border-radius:999px; padding:8px 14px; font:inherit; font-size:.9rem; font-weight:600;
  color:var(--ink); cursor:pointer; transition:all .12s ease; display:inline-flex; align-items:center; gap:6px; }
.pill:hover{ border-color:var(--wave); background:var(--foam); }
.pill.on{ background:var(--wave); border-color:var(--wave); color:#fff; box-shadow:0 4px 12px rgba(46,136,181,.28); }
.pill.big{ flex:1 1 auto; justify-content:center; padding:10px 12px; }
.pill .ico{ font-size:1.05rem; }
.pickrow{ display:flex; gap:8px; align-items:center; }
.pickrow input{ flex:1; }
.btn-lg{ padding:13px 22px; font-size:1.02rem; border-radius:12px; }
.btn-block{ width:100%; }
.btn-dark{ background:var(--ink); color:#fff; }
.btn-dark:hover{ background:#0f3348; }
@media (max-width:860px){ .hero2 .wrap{ grid-template-columns:minmax(0,1fr); gap:22px; } .hero2{ padding:36px 0 30px; } .hero2 p.sub{ font-size:1rem; } }

.howband{ padding:12px 0 8px; }
.howband .steps{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.howband .step{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 16px; }
.howband .step .n{ font-family:'Outfit',sans-serif; font-weight:800; color:var(--wave); font-size:.8rem; letter-spacing:.08em; }
.howband .step b{ display:block; margin:4px 0 3px; font-family:'Outfit',sans-serif; font-size:1rem; }
.howband .step p{ margin:0; color:var(--muted); font-size:.86rem; }
@media (max-width:860px){ .howband .steps{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .howband .steps{ grid-template-columns:minmax(0,1fr); } }
.sectionhead{ text-align:center; margin:44px auto 20px; max-width:640px; }
.sectionhead h2{ font-size:1.7rem; font-weight:800; letter-spacing:-.01em; }
.sectionhead p{ color:var(--muted); margin:6px 0 0; }
.featureband .card h3{ font-size:1.05rem; }
.conciergeband{ margin:44px 0 0; }
.conciergeband .inner{ background:linear-gradient(135deg, var(--ink) 0%, #1E5C7C 100%); color:#fff; border-radius:22px; padding:34px 30px;
  display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:24px; align-items:center; }
.conciergeband h2{ color:#fff; font-size:1.7rem; font-weight:800; margin:0 0 8px; }
.conciergeband p{ color:rgba(255,255,255,.85); margin:0 0 14px; }
.conciergeband .tiers{ display:flex; flex-direction:column; gap:8px; }
.conciergeband .tier{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:12px; padding:10px 14px; display:flex; justify-content:space-between; gap:10px; align-items:center; }
.conciergeband .tier b{ font-family:'Outfit',sans-serif; }
.conciergeband .tier span{ color:#CFE4EF; font-size:.85rem; }
.conciergeband .tier .price{ font-family:'Outfit',sans-serif; font-weight:800; color:#fff; white-space:nowrap; }
.conciergeband .btn-primary{ background:#fff; color:var(--ink); }
.conciergeband .btn-primary:hover{ background:var(--sky); }
@media (max-width:860px){ .conciergeband .inner{ grid-template-columns:minmax(0,1fr); padding:26px 20px; } }

/* wizard */
.wizard{ max-width:760px; margin:0 auto; }
.wizhead{ text-align:center; margin:26px 0 14px; }
.wizhead h1{ font-size:1.7rem; font-weight:800; margin:0 0 4px; }
.wizhead p{ color:var(--muted); margin:0; }
.progress{ display:flex; gap:6px; margin:0 auto 18px; max-width:420px; }
.progress span{ flex:1; height:6px; border-radius:999px; background:var(--line); transition:background .2s; }
.progress span.done{ background:var(--wave); }
.wizstep{ animation:wizin .22s ease; }
@keyframes wizin{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:none; } }
.wizstep h2{ font-size:1.3rem; font-weight:800; margin:0 0 4px; }
.wizstep .q{ color:var(--muted); margin:0 0 14px; font-size:.95rem; }
.wizstep label{ margin-top:14px; }
.wizfoot{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:18px; }
.wizfoot .spacer{ flex:1; }
.daysgrid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.daysgrid .pill{ padding:9px 0; justify-content:center; }
@media (max-width:520px){ .daysgrid{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.optcard{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:#fff; cursor:pointer; text-align:left; font:inherit; color:var(--ink); transition:all .12s; }
.optcard:hover{ border-color:var(--wave); }
.optcard.on{ border-color:var(--wave); background:var(--foam); box-shadow:0 0 0 2px var(--sky); }
.optcard b{ font-family:'Outfit',sans-serif; }
.optcard span{ color:var(--muted); font-size:.82rem; }
.optgrid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.optgrid.cols4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:640px){ .optgrid.cols4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.rangewrap{ display:flex; align-items:center; gap:12px; }
.rangewrap input[type=range]{ flex:1; accent-color:var(--wave); }
.rangewrap output{ font-family:'Outfit',sans-serif; font-weight:800; min-width:64px; text-align:right; }

/* generating */
.genbox{ text-align:center; padding:42px 18px; }
.wave{ width:88px; height:88px; margin:0 auto 14px; border-radius:50%; background:var(--sky); display:flex; align-items:center; justify-content:center; font-size:2.4rem; animation:bob 1.6s ease-in-out infinite; }
@keyframes bob{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-8px) } }
.genbox h2{ margin:0 0 6px; }
.genbox .status{ color:var(--muted); min-height:1.4em; }
.genbox .barwrap{ height:6px; background:var(--line); border-radius:999px; max-width:320px; margin:16px auto 0; overflow:hidden; }
.genbox .bar{ height:100%; width:8%; background:var(--wave); border-radius:999px; transition:width .8s ease; }

/* itinerary rendering */
.itin{ max-width:860px; margin:0 auto; }
.itinhero{ background:linear-gradient(135deg, var(--ink) 0%, #1E5C7C 100%); color:#fff; border-radius:20px; padding:26px 26px 22px; margin-bottom:14px; position:relative; overflow:hidden; }
.itinhero::after{ content:"🌊"; position:absolute; right:-6px; bottom:-18px; font-size:7rem; opacity:.12; }
.itinhero .eyebrow{ font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#CFE4EF; }
.itinhero h1{ color:#fff; font-size:clamp(1.5rem,3.2vw,2.2rem); font-weight:800; margin:6px 0 4px; }
.itinhero .tag{ color:#D9EDF7; font-size:1.02rem; margin:0 0 12px; }
.itinhero .chips{ display:flex; flex-wrap:wrap; gap:6px; }
.itinhero .chips span{ background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); border-radius:999px; padding:4px 11px; font-size:.82rem; font-weight:600; }
.itinhero .actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.itinhero .btn-ghost{ background:rgba(255,255,255,.1); color:#fff; border-color:rgba(255,255,255,.3); }
.itinhero .btn-ghost:hover{ background:rgba(255,255,255,.2); }
.itinhero .btn-primary{ background:#fff; color:var(--ink); }
.itinhero .btn-primary:hover{ background:var(--sky); }
.tidbits{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.tidbits li{ display:flex; gap:10px; background:var(--foam); border:1px solid var(--line); border-radius:12px; padding:10px 12px; font-size:.93rem; }
.tidbits li::before{ content:"💡"; flex:none; }
.itindays{ display:flex; flex-direction:column; gap:12px; }
.itinday{ position:relative; }
.itinday .dhead{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:4px; }
.itinday .dhead .dn{ font-family:'Outfit',sans-serif; font-weight:800; color:var(--wave); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; }
.itinday .dhead h3{ margin:0; font-size:1.15rem; }
.itinday .dhead .dd{ color:var(--muted); font-size:.85rem; margin-left:auto; }
.itinday .theme{ color:var(--muted); font-size:.9rem; margin:0 0 10px; }
.itinday .itincard{ cursor:default; }
.itinday .itincard:hover{ transform:none; box-shadow:none; }
.itinday .itincard-det{ color:#3a5566; font-size:.88rem; line-height:1.45; }
.itinday.locked .daybody{ filter:blur(5px); user-select:none; pointer-events:none; opacity:.75; }
.lockveil{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; padding:16px;
  background:linear-gradient(180deg, rgba(245,250,253,.2) 0%, rgba(245,250,253,.85) 60%); border-radius:var(--radius); }
.lockveil .lk{ font-size:1.5rem; }
.lockveil b{ font-family:'Outfit',sans-serif; font-size:1rem; }
.lockveil p{ margin:0; color:var(--muted); font-size:.86rem; max-width:360px; }
.ghostline{ height:12px; border-radius:6px; background:var(--line); margin:6px 0; }
.stayopts{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:10px; }
.stayopt{ border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:#fff; }
.stayopt b{ font-family:'Outfit',sans-serif; display:block; }
.stayopt .st{ color:var(--muted); font-size:.8rem; }
.stayopt p{ margin:6px 0 0; font-size:.86rem; }
@media (max-width:640px){ .stayopts{ grid-template-columns:minmax(0,1fr); } }
.locked-inline{ position:relative; }
.locked-inline .daybody{ filter:blur(5px); user-select:none; pointer-events:none; opacity:.7; }
.upsell{ background:linear-gradient(135deg, #F7FBFD 0%, #E8F3FA 100%); border:1px solid var(--line); border-radius:18px; padding:22px; margin-top:14px; display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); gap:18px; align-items:center; }
.upsell h3{ font-size:1.25rem; font-weight:800; margin:0 0 6px; }
.upsell p{ margin:0 0 10px; color:#3a5566; }
.upsell .tierlist{ display:flex; flex-direction:column; gap:6px; font-size:.9rem; }
.upsell .tierlist div{ display:flex; justify-content:space-between; gap:10px; border-bottom:1px dashed var(--line); padding:4px 0; }
.upsell .tierlist b{ font-family:'Outfit',sans-serif; }
@media (max-width:640px){ .upsell{ grid-template-columns:minmax(0,1fr); } }
.savecard{ border-color:var(--wave); box-shadow:0 0 0 2px var(--sky); }
.itinlist-mini .rowitem .title{ font-family:'Outfit',sans-serif; }
.kv{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:8px; }
.kv div{ background:var(--foam); border:1px solid var(--line); border-radius:12px; padding:10px 12px; }
.kv b{ display:block; font-family:'Outfit',sans-serif; font-size:1.35rem; line-height:1.1; color:var(--ink); }
.kv span{ color:var(--muted); font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.checklist{ margin:0; padding-left:20px; }
.checklist li{ margin:4px 0; }

/* pricing */
.pricehero{ text-align:center; padding:36px 0 10px; }
.pricehero h1{ font-size:clamp(1.9rem,4vw,2.8rem); font-weight:800; letter-spacing:-.02em; margin:0 0 8px; }
.pricehero p{ color:var(--muted); max-width:620px; margin:0 auto; font-size:1.04rem; }
.billing{ display:inline-flex; align-items:center; gap:10px; margin:18px auto 0; background:#fff; border:1px solid var(--line); border-radius:999px; padding:5px; }
.billing button{ background:none; border:none; font:inherit; font-weight:700; font-size:.9rem; color:var(--muted); padding:7px 16px; border-radius:999px; cursor:pointer; }
.billing button.on{ background:var(--wave); color:#fff; }
.billing .save{ font-size:.75rem; font-weight:800; color:var(--good); padding-right:10px; }
.tiers3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:22px; }
.tiercard{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:22px; display:flex; flex-direction:column; position:relative; }
.tiercard.featured{ border-color:var(--wave); box-shadow:0 14px 40px rgba(46,136,181,.18); }
.tiercard .badge{ position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--wave); color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:4px 12px; border-radius:999px; white-space:nowrap; }
.tiercard h3{ font-size:1.25rem; font-weight:800; margin:0; }
.tiercard .for{ color:var(--muted); font-size:.88rem; margin:4px 0 12px; min-height:2.6em; }
.tiercard .price{ font-family:'Outfit',sans-serif; font-weight:800; font-size:2.2rem; line-height:1; }
.tiercard .price small{ font-size:.9rem; font-weight:600; color:var(--muted); }
.tiercard .per{ color:var(--muted); font-size:.8rem; margin-bottom:14px; }
.tiercard ul{ list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:7px; font-size:.9rem; flex:1; }
.tiercard ul li{ display:flex; gap:8px; }
.tiercard ul li::before{ content:"✓"; color:var(--good); font-weight:800; flex:none; }
.tiercard ul li.no{ color:var(--muted); } .tiercard ul li.no::before{ content:"–"; color:var(--line); }
@media (max-width:860px){ .tiers3{ grid-template-columns:minmax(0,1fr); } }
.corpcard{ margin-top:14px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:center; }
@media (max-width:640px){ .corpcard{ grid-template-columns:minmax(0,1fr); } }
.compare{ width:100%; border-collapse:collapse; font-size:.92rem; }
.compare th,.compare td{ padding:9px 10px; border-bottom:1px solid var(--mist); text-align:left; vertical-align:top; }
.compare th{ font-family:'Outfit',sans-serif; font-size:.95rem; }
.compare td.c{ text-align:center; }
.compare .yes{ color:var(--good); font-weight:800; } .compare .no{ color:var(--line); }
.faq details{ border-bottom:1px solid var(--mist); padding:10px 0; }
.faq summary{ cursor:pointer; font-weight:700; font-family:'Outfit',sans-serif; }
.faq p{ margin:8px 0 0; color:#3a5566; font-size:.93rem; }
.leadform .formrow{ flex-wrap:wrap; }
.leadform .formrow > *{ flex:1 1 220px; }
.founder .kv b{ color:var(--wave-deep); }
.leadrow{ display:flex; gap:8px; align-items:center; padding:7px 0; border-bottom:1px solid var(--mist); font-size:.86rem; }
.leadrow:last-child{ border-bottom:none; }
.leadrow .k{ flex:none; font-size:.7rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; background:var(--mist); border-radius:6px; padding:2px 7px; color:var(--wave-deep); }
.leadrow .grow{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.leadrow .when{ color:var(--muted); flex:none; }
.hint{ font-size:.82rem; color:var(--muted); margin-top:6px; }

/* =====================================================================
   Mobile conversion pass
   ===================================================================== */
/* segmented option rows (landing + wizard) */
.seg{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
.seg .pill{ padding:8px 4px; justify-content:center; flex-direction:column; gap:0; line-height:1.15; min-height:48px; border-radius:12px; }
.seg .pill b{ font-family:'Outfit',sans-serif; font-size:1.05rem; font-weight:800; }
.seg .pill span{ font-size:.7rem; font-weight:600; opacity:.8; }
.seg.icons .pill i{ font-style:normal; font-size:1.25rem; line-height:1; margin-bottom:3px; }
.seg.icons .pill span{ font-size:.74rem; font-weight:700; opacity:1; }
.pickline{ display:flex; justify-content:flex-end; margin-top:6px; }
.pill-sm{ padding:5px 11px; font-size:.8rem; }
.microproof{ display:flex; justify-content:center; flex-wrap:wrap; gap:4px 14px; margin-top:10px; font-size:.78rem; color:var(--muted); font-weight:600; }
.microproof span::before{ content:"✓"; color:var(--good); margin-right:4px; }
.planbox input[type=text]{ padding:12px 14px; font-size:1rem; }

/* dashboard quick action */
.quickplan{ display:flex; align-items:center; gap:12px; background:linear-gradient(135deg, var(--wave) 0%, var(--wave-deep) 100%); color:#fff; border-radius:16px; padding:14px 16px; margin-bottom:14px; text-decoration:none; box-shadow:0 8px 24px rgba(46,136,181,.25); }
.quickplan:hover{ text-decoration:none; filter:brightness(1.04); }
.quickplan .qp-ico{ width:40px; height:40px; border-radius:12px; background:rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex:none; }
.quickplan .grow{ flex:1; min-width:0; display:flex; flex-direction:column; }
.quickplan b{ font-family:'Outfit',sans-serif; font-size:1.02rem; }
.quickplan .small{ opacity:.85; }
.quickplan .qp-chev{ font-size:1.6rem; opacity:.7; }
@media (min-width:821px){ .quickplan{ display:none; } }
.founder details summary{ cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.founder details summary::-webkit-details-marker{ display:none; }
.founder details summary h3{ margin:0; }
.founder details summary .chev{ transition:transform .15s; color:var(--muted); }
.founder details[open] summary .chev{ transform:rotate(90deg); }
.founder .body{ margin-top:10px; }

/* sticky CTA bar (mobile) */
.stickycta{ display:none; }
@media (max-width:820px){
  .stickycta{ display:flex; position:fixed; left:0; right:0; bottom:0; z-index:80; gap:10px; align-items:center;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.96); backdrop-filter:blur(10px);
    border-top:1px solid var(--line); box-shadow:0 -6px 24px rgba(22,69,94,.10); animation:ctaup .25s ease; }
  @keyframes ctaup{ from{ transform:translateY(100%); } to{ transform:none; } }
  .stickycta .btn{ flex:1; padding:13px 14px; font-size:1rem; border-radius:12px; }
  .stickycta .lbl{ flex:1; min-width:0; font-size:.82rem; color:var(--muted); line-height:1.25; }
  .stickycta .lbl b{ display:block; color:var(--ink); font-family:'Outfit',sans-serif; font-size:.92rem; }
  body.has-stickycta main{ padding-bottom:84px; }
  body.has-bottomnav .stickycta{ bottom:58px; box-shadow:none; border-bottom:1px solid var(--line); padding-bottom:10px; }
  body.has-bottomnav.has-stickycta main{ padding-bottom:150px; }
  body.noscroll .stickycta{ display:none; }
}

/* bottom-sheet modal on mobile */
@media (max-width:640px){
  .modal-overlay{ align-items:flex-end; padding:0; }
  .modal{ max-width:none; border-radius:20px 20px 0 0; padding:18px 18px calc(18px + env(safe-area-inset-bottom)); margin:0; animation:sheetup .25s ease; }
  .modal::before{ content:""; display:block; width:40px; height:4px; border-radius:2px; background:var(--line); margin:-6px auto 12px; }
  @keyframes sheetup{ from{ transform:translateY(40px); opacity:.6; } to{ transform:none; opacity:1; } }
}

/* wizard on mobile */
@media (max-width:640px){
  .wizhead{ margin:14px 0 10px; }
  .wizhead h1{ font-size:1.35rem; }
  .wizhead p{ font-size:.88rem; }
  .progress{ margin-bottom:12px; }
  .wizstep h2{ font-size:1.18rem; }
  .wizstep .q{ font-size:.9rem; margin-bottom:10px; }
  .optgrid.party{ grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; }
  .optgrid.party .optcard{ align-items:center; text-align:center; padding:9px 2px; gap:2px; }
  .optgrid.party .optcard b{ font-size:.78rem; }
  .optgrid.party .optcard i{ font-style:normal; font-size:1.3rem; }
  .optgrid.party .optcard span{ display:none; }
  .optgrid.pace{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .optgrid.pace .optcard{ align-items:center; text-align:center; }
  .optgrid.pace .optcard span{ font-size:.74rem; }
  .wizfoot{ position:sticky; bottom:0; background:#fff; margin:14px -18px -18px; padding:10px 18px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--mist); border-radius:0 0 var(--radius) var(--radius); }
  .wizfoot .btn-primary{ flex:1; }
  .wizfoot .btn-ghost{ padding:11px 14px; }
  .daysgrid{ grid-template-columns:repeat(6,minmax(0,1fr)); }
}
.optgrid.party .optcard i{ font-style:normal; }
.stepper{ display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
.stepper button{ width:44px; height:44px; border:none; background:none; font-size:1.3rem; color:var(--wave-deep); cursor:pointer; font-family:inherit; }
.stepper button:active{ background:var(--mist); }
.stepper output{ min-width:88px; text-align:center; font-family:'Outfit',sans-serif; font-weight:800; }
.extras summary{ cursor:pointer; font-weight:700; font-size:.9rem; color:var(--wave-deep); padding:10px 0 4px; list-style:none; }
.extras summary::-webkit-details-marker{ display:none; }
.extras summary::before{ content:"+ "; }
.extras[open] summary::before{ content:"– "; }

/* generating + preview on mobile */
@media (max-width:640px){
  .genbox{ padding:30px 10px; }
  .itinhero{ padding:18px 16px 16px; border-radius:16px; }
  .itinhero .actions .btn{ flex:1 1 45%; padding:10px 8px; font-size:.9rem; }
  .itinhero .chips span{ font-size:.76rem; padding:3px 9px; }
  .itinday .dhead .dd{ margin-left:0; width:100%; }
  .lockveil p{ font-size:.82rem; }
  .lockveil .btn{ padding:11px 18px; font-size:.95rem; }
  .upsell{ padding:16px; }
  .upsell .btn{ width:100%; margin-bottom:6px; }
  .tidbits li{ font-size:.9rem; }
  .card{ padding:14px; }
}
.lockwrap{ position:relative; }
.itinday.locked .lockveil{ inset:auto 0 0 0; top:0; }
.locked-inline .lockwrap .daybody{ filter:blur(5px); user-select:none; pointer-events:none; opacity:.7; }
.locked-inline > .daybody{ filter:none; opacity:1; pointer-events:auto; }

/* landing on mobile: form above the fold */
@media (max-width:860px){
  .hero2{ padding:18px 0 22px; }
  .hero2 .wrap{ gap:14px; }
  .hero2 .kicker{ font-size:.7rem; padding:4px 10px 4px 5px; }
  .hero2 .kicker .dot{ width:18px; height:18px; font-size:.7rem; }
  .hero2 h1{ font-size:1.75rem; margin:10px 0 6px; }
  .hero2 p.sub{ font-size:.94rem; margin-bottom:0; }
  .hero2 .proof.hide-sm{ display:none; }
  .planbox{ padding:16px; border-radius:18px; }
  .planbox h3{ font-size:1.08rem; }
  .planbox .lead{ display:none; }
  .planbox label{ margin-top:12px; }
  .howband{ padding:16px 0 0; }
  .snaprow{ display:flex !important; grid-template-columns:none !important; overflow-x:auto; scroll-snap-type:x mandatory; gap:10px; padding:4px 18px 12px; margin:0 -18px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .snaprow::-webkit-scrollbar{ display:none; }
  .snaprow > *{ flex:0 0 76%; scroll-snap-align:start; }
  .snaprow .card + .card{ margin-top:0; }
  .sectionhead{ margin:26px auto 12px; }
  .sectionhead h2{ font-size:1.35rem; }
  .featureband{ padding-bottom:10px; }
  .conciergeband{ margin-top:22px; }
  .conciergeband h2{ font-size:1.35rem; }
  .conciergeband p{ font-size:.94rem; }
  .conciergeband .cta{ display:flex; flex-direction:column; gap:8px; }
  .conciergeband .cta .btn{ width:100%; }
}

/* pricing on mobile */
@media (max-width:860px){
  .pricehero{ padding:22px 0 6px; }
  .pricehero h1{ font-size:1.6rem; }
  .pricehero p{ font-size:.94rem; }
  .billing{ display:flex; width:100%; }
  .billing button{ flex:1; }
  .tiers3{ margin-top:16px; }
  /* keep natural low-to-high order on mobile */
  .tiercard{ padding:18px; }
  .tiercard .for{ min-height:0; }
  .tiercard .price{ font-size:1.9rem; }
  .corpcard .btn{ width:100%; }
  .compare{ font-size:.86rem; }
  .compare th,.compare td{ padding:8px 6px; }
}

/* dashboard on mobile */
@media (max-width:640px){
  .pagehead{ margin:16px 0 12px; }
  .pagehead h1{ font-size:1.45rem; }
  .dashacts{ display:none; }
  .kv{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kv b{ font-size:1.2rem; }
}
@media (min-width:641px){ .dashacts{ display:flex; gap:8px; } }

/* global touch + form polish */
@media (max-width:820px){
  input[type=text],input[type=email],input[type=password],input[type=tel],input[type=date],input[type=time],input[type=number],input[type=search],select,textarea{ font-size:16px; padding:11px 13px; border-radius:12px; }
  .btn{ min-height:44px; }
  .btn-sm{ min-height:36px; }
  .pill{ min-height:40px; }
  .tabs button{ min-height:40px; }
  footer .wrap{ flex-direction:column; align-items:flex-start; gap:6px; text-align:left; font-size:.8rem; }
  .bnitem.bnplan .bnicon{ width:34px; height:34px; border-radius:50%; background:var(--wave); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1rem; box-shadow:0 4px 12px rgba(46,136,181,.35); margin-top:-4px; }
  .bnitem.bnplan.active .bnicon{ background:var(--wave-deep); }
  .bnitem.bnplan.active::before{ display:none; }
}

.navavatar{ display:none; }
@media (max-width:820px){
  body.has-bottomnav .navavatar{ display:flex; margin-left:auto; width:36px; height:36px; border-radius:50%; background:var(--sky); color:var(--wave-deep);
    align-items:center; justify-content:center; font-family:'Outfit',sans-serif; font-weight:800; font-size:.8rem; overflow:hidden; border:2px solid #fff; box-shadow:0 0 0 1px var(--line); text-decoration:none; }
  body.has-bottomnav .navavatar img{ width:100%; height:100%; object-fit:cover; }
  body.has-bottomnav .navavatar.active{ box-shadow:0 0 0 2px var(--wave); }
}
@media (max-width:640px){
  .lockwrap .daybody{ max-height:210px; overflow:hidden; }
  .upsell .tierlist div > b:last-child{ white-space:nowrap; }
  .card .formfoot{ flex-wrap:wrap; }
  .itin .card .formfoot .btn-primary{ flex:1 1 100%; }
  .stayopts{ gap:8px; }
}
.tabs{ background:var(--mist); border-radius:999px; padding:4px; gap:0; }
.tabs button{ flex:1; border:none; background:transparent; }
.tabs button.active{ background:#fff; color:var(--ink); box-shadow:0 1px 4px rgba(22,69,94,.12); }

/* =====================================================================
   Mobile pass 2: centered layout, floating bottom nav, consistent gutters
   ===================================================================== */
:root{ --gutter:16px; --navh:64px; }
@media (max-width:820px){
  /* one gutter everywhere */
  .wrap{ padding-left:var(--gutter); padding-right:var(--gutter); }
  .snaprow{ padding-left:var(--gutter); padding-right:var(--gutter); margin-left:calc(-1 * var(--gutter)); margin-right:calc(-1 * var(--gutter)); }
  .card{ padding:16px; border-radius:16px; }
  .card + .card, .cardgrid{ margin-top:12px; }
  .cardgrid{ gap:12px; }
  #dashboard .cardgrid > div > .card + .card{ margin-top:12px; }
  .featureband{ padding:0 0 4px; }
  .howband{ padding:14px 0 0; }
  .sectionhead{ margin:22px auto 10px; padding:0 var(--gutter); }
  .conciergeband{ margin:14px 0 0; }
  .conciergeband .inner{ border-radius:16px; padding:22px 16px; }
  .hero2{ padding:16px 0 18px; }
  .planbox{ padding:16px; }
  .itinhero, .upsell{ border-radius:16px; }
  .quickplan{ margin-bottom:12px; }
  .pricehero{ padding:18px 0 4px; }
  .tiers3{ gap:12px; margin-top:14px; }
  .tiercard{ padding:18px 16px; border-radius:16px; }
  .corpcard{ margin-top:12px; }
  footer{ margin-top:28px; }
  footer .wrap{ align-items:center; text-align:center; }

  /* centered content */
  .hero2 .herocopy, .hero2 h1, .hero2 p.sub, .hero2 .kicker{ text-align:center; }
  .hero2 .herocopy{ display:flex; flex-direction:column; align-items:center; }
  .hero2 p.sub{ max-width:34ch; }
  .planbox h3, .planbox label, .planbox .lead{ text-align:center; }
  .planbox label{ display:block; }
  .pickline{ justify-content:center; }
  .howband .step, .featureband .card{ text-align:center; }
  .featureband .card h3, .featureband .card p{ text-align:center; }
  .conciergeband, .conciergeband h2, .conciergeband p{ text-align:center; }
  .conciergeband .tier{ flex-direction:column; text-align:center; gap:4px; }
  .pagehead{ justify-content:center; text-align:center; }
  .pagehead > div{ width:100%; }
  #dashboard .card h3, #dashboard .empty, #landing h2, #landing p{ text-align:center; }
  .quickplan{ text-align:left; }
  .wizhead, .wizstep h2, .wizstep .q, .wizstep label, .extras summary{ text-align:center; }
  .wizstep label{ display:block; }
  .stepper{ display:flex; margin:0 auto; width:max-content; }
  .genbox{ text-align:center; }
  .itinhero{ text-align:center; }
  .itinhero .chips, .itinhero .actions{ justify-content:center; }
  .itin .card > h3, .itin .card > p, .itinday .dhead, .itinday .theme{ text-align:center; }
  .itinday .dhead{ justify-content:center; }
  .itinday .dhead .dd{ width:100%; text-align:center; }
  .tidbits li{ text-align:left; }
  .stayopt{ text-align:center; }
  .kv div, .checklist{ text-align:center; }
  .checklist{ padding-left:0; list-style-position:inside; }
  .upsell, .upsell h3, .upsell p{ text-align:center; }
  .savecard, .savecard h3, .savecard p, .savecard label{ text-align:center; }
  .savecard label{ display:block; }
  .savecard .formfoot, .card .formfoot{ justify-content:center; }
  .pricehero, .tiercard, .tiercard h3, .tiercard .for, .tiercard .price, .tiercard .per{ text-align:center; }
  .tiercard ul li{ text-align:left; }
  .tiercard .btn{ width:100%; }
  .corpcard, .corpcard h3, .corpcard p{ text-align:center; }
  .leadform label, .leadform .formfoot{ text-align:center; justify-content:center; }
  .leadform label{ display:block; }
  .faq summary{ text-align:left; }
  .modal h3, .modal p, .modal label, .modal .hint{ text-align:center; }
  .modal label{ display:block; }
  main .wrap > .card > h1, main .wrap > .card > h3, #auth-forms label, #auth-signedin label, #auth-signedin p, #auth-forms p, #acct-head{ text-align:center; }
  #auth-forms label, #auth-signedin label{ display:block; }
  #auth-forms .formfoot, #auth-signedin .formfoot{ justify-content:center; }
  .joincard{ text-align:center; }
  .empty{ text-align:center; }
  .rowitem{ text-align:left; }
  .microproof{ justify-content:center; }
  .msg{ text-align:center; }
  .hint{ text-align:center; }

  /* floating bottom nav */
  .bottomnav{
    left:12px; right:12px; bottom:calc(10px + env(safe-area-inset-bottom));
    border-radius:22px; border:1px solid rgba(207,228,239,.9);
    background:rgba(255,255,255,.92); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    box-shadow:0 10px 30px rgba(22,69,94,.18), 0 2px 6px rgba(22,69,94,.06);
    padding:6px 6px calc(6px); height:var(--navh); align-items:center;
  }
  .bnitem{ padding:6px 2px 4px; border-radius:16px; gap:2px; }
  .bnitem.active{ background:var(--mist); }
  .bnitem.active::before{ display:none; }
  .bnlabel{ font-size:.6rem; }
  .bnicon{ font-size:1.15rem; }
  .bnitem.bnplan .bnicon{ width:40px; height:40px; margin-top:-16px; border:3px solid #fff; box-shadow:0 6px 16px rgba(46,136,181,.4); font-size:1.1rem; }
  .bnitem.bnplan{ overflow:visible; }
  .bnitem.bnplan.active{ background:transparent; }
  body.has-bottomnav main{ padding-bottom:calc(var(--navh) + 24px); }
  body.has-bottomnav footer{ padding-bottom:calc(var(--navh) + 20px); }

  /* sticky CTA sits above the floating nav, same width, same radius */
  .stickycta{ left:12px; right:12px; bottom:calc(10px + env(safe-area-inset-bottom)); border-radius:18px; border:1px solid var(--line);
    box-shadow:0 10px 30px rgba(22,69,94,.18); padding:10px 12px; }
  body.has-bottomnav .stickycta{ bottom:calc(var(--navh) + 18px + env(safe-area-inset-bottom)); border-bottom:1px solid var(--line); padding-bottom:10px; box-shadow:0 10px 30px rgba(22,69,94,.14); }
  body.has-stickycta main{ padding-bottom:96px; }
  body.has-bottomnav.has-stickycta main{ padding-bottom:calc(var(--navh) + 110px); }
  .stickycta .lbl{ text-align:left; }

  /* billing toggle with the saving under Monthly */
  .billing button{ display:flex; flex-direction:column; align-items:center; line-height:1.1; padding:8px 12px; }
  .billing button small{ font-size:.66rem; font-weight:800; color:var(--good); margin-top:2px; }
  .billing button.on small{ color:#DFF5EA; }
}
/* billing toggle (all sizes) */
.billing button{ display:inline-flex; flex-direction:column; align-items:center; line-height:1.1; }
.billing button small{ font-size:.66rem; font-weight:800; color:var(--good); margin-top:2px; }
.billing button.on small{ color:#DFF5EA; }
.billing .save{ display:none; }
@media (max-width:820px){
  .founder details summary{ flex-direction:column; align-items:center; text-align:center; gap:4px; }
  .founder .leadrow{ text-align:left; }
}
.quicksum{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0 0 6px; }
.quicksum span{ background:var(--mist); border:1px solid var(--line); border-radius:999px; padding:5px 11px; font-size:.86rem; font-weight:600; }
.linkbtn{ background:none; border:none; color:var(--wave-deep); font:inherit; font-weight:700; cursor:pointer; padding:5px 8px; text-decoration:underline; }

/* big, calm inquiry form */
.bigform .formgrid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.bigform .formgrid .span2{ grid-column:1 / -1; }
.bigform input,.bigform select,.bigform textarea{ font-size:1.05rem; padding:14px 16px; border-radius:14px; min-height:54px; border-width:1.5px; }
.bigform textarea{ min-height:96px; line-height:1.45; }
.bigform select{ appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1l6 6 6-6' fill='none' stroke='%235E7E90' stroke-width='2' stroke-linecap='round'/></svg>"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px; }
.bigform select:invalid, .bigform select option[value=""]{ color:#5E7E90; }
.bigform ::placeholder{ color:#6B8798; opacity:1; }
.bigform input:focus,.bigform select:focus,.bigform textarea:focus{ outline:3px solid var(--sky); border-color:var(--wave); }
.bigform .btn-lg{ min-height:56px; font-size:1.08rem; }
.bigform .hint{ font-size:.9rem; margin-top:8px; }
@media (max-width:640px){
  .bigform .formgrid{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .bigform input,.bigform select,.bigform textarea{ font-size:17px; }
}
@media (max-width:820px){ .wizstep .pills{ justify-content:center; } }

/* =====================================================================
   Landing v3 (less reading), signup prompts, trip status, no top bar on phones
   ===================================================================== */
.herologo{ height:44px; width:auto; margin-bottom:10px; }
.valuestrip{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:16px 0 4px; }
.valuestrip .vs{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:12px 12px; display:flex; flex-direction:column; gap:2px; text-align:center; align-items:center; }
.valuestrip .vi{ font-size:1.4rem; line-height:1; margin-bottom:4px; }
.valuestrip b{ font-family:'Outfit',sans-serif; font-size:.95rem; }
.valuestrip span:not(.vi){ color:var(--muted); font-size:.78rem; line-height:1.3; }
.steps3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.steps3 .step{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px 16px; text-align:center; }
.steps3 .n{ width:34px; height:34px; border-radius:50%; background:var(--wave); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-family:'Outfit',sans-serif; font-weight:800; margin-bottom:8px; }
.steps3 b{ display:block; font-family:'Outfit',sans-serif; font-size:1.05rem; margin-bottom:3px; }
.steps3 p{ margin:0; color:var(--muted); font-size:.9rem; }
.freegrid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.freegrid .fg{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:10px 12px; font-weight:600; font-size:.9rem; display:flex; align-items:center; gap:8px; }
.freegrid .fg span{ font-size:1.1rem; }
.morebox{ margin:12px auto 0; max-width:640px; text-align:center; }
.morebox summary{ cursor:pointer; list-style:none; color:var(--wave-deep); font-weight:700; padding:8px; }
.morebox summary::-webkit-details-marker{ display:none; }
.morebox summary::after{ content:" ›"; display:inline-block; transform:rotate(90deg); margin-left:4px; }
.morebox[open] summary::after{ transform:rotate(-90deg); }
.morebox p{ color:var(--muted); margin:4px 0 0; font-size:.93rem; }
.signupband{ margin:30px auto 0; max-width:640px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:20px; padding:26px 20px; box-shadow:var(--shadow); }
.signupband .sb-ico, .joincta .sb-ico{ width:52px; height:52px; border-radius:50%; background:var(--sky); display:inline-flex; align-items:center; justify-content:center; font-size:1.5rem; margin-bottom:8px; }
.signupband h2{ font-size:1.4rem; font-weight:800; margin:0 0 6px; }
.signupband p{ color:var(--muted); margin:0 0 14px; }
.signupband .cta, .joincta .cta{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
.joincta{ text-align:center; padding:22px 18px; }
.joincta h3{ margin:0 0 10px; font-size:1.25rem; }
.joincta p{ margin:10px 0 0; }
.quicklink{ display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line); border-radius:14px; padding:12px 14px; margin-top:12px; text-decoration:none; color:var(--ink); }
.quicklink:hover{ text-decoration:none; background:var(--foam); }
.quicklink b{ flex:1; font-family:'Outfit',sans-serif; }
.quicklink .qp-chev{ color:var(--muted); font-size:1.4rem; }
@media (min-width:821px){ .quicklink{ display:none; } }
/* trip status */
.tripcard{ position:relative; }
.tripstatus{ margin-bottom:6px; }
.chip.st-now{ background:#E6F5EE; color:#1F6B4E; border-color:#BFE6D1; font-weight:800; }
.chip.st-up{ background:#E4F1F8; color:#1E6A93; border-color:#C9E3F1; }
.chip.st-past{ background:var(--mist); color:var(--muted); border-color:var(--line); }
.chip.st-tbd{ background:#FCF3E8; color:#9A5A1E; border-color:#F0DCC4; }
.tripcard.st-past{ opacity:.78; }
.tripcard.st-now{ border-color:#7FCBA6; box-shadow:0 0 0 2px #E6F5EE; }
.tripgroup + .tripgroup{ margin-top:18px; }
.tripgroup-h{ font-family:'Outfit',sans-serif; font-weight:800; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--wave-deep); margin:0 0 8px; }
.tripgroup .card + .card{ margin-top:10px; }
/* no top bar on phones */
.mobilebrand{ display:none; }
@media (max-width:820px){
  nav.sitenav{ display:none; }
  .mobilebrand{ display:flex; justify-content:center; padding:14px 0 0; }
  .mobilebrand img{ height:34px; width:auto; }
  body.is-landing .mobilebrand{ display:none; }
  .herologo{ height:64px; margin:6px 0 12px; }
  .hero2 h1{ font-size:1.7rem; }
  .valuestrip{ gap:6px; margin:14px 0 0; }
  .valuestrip .vs{ padding:10px 6px; border-radius:12px; }
  .valuestrip .vi{ font-size:1.3rem; }
  .valuestrip b{ font-size:.82rem; }
  .valuestrip span:not(.vi){ font-size:.7rem; }
  .steps3{ grid-template-columns:minmax(0,1fr); gap:8px; }
  .steps3 .step{ display:grid; grid-template-columns:34px minmax(0,1fr); gap:4px 12px; text-align:left; padding:12px 14px; align-items:center; }
  .steps3 .n{ grid-row:1 / span 2; margin:0; }
  .steps3 p{ font-size:.86rem; }
  .freegrid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .freegrid .fg{ min-height:48px; }
  .freegrid .fg{ font-size:.84rem; padding:9px 10px; justify-content:center; text-align:center; }
  .signupband{ margin-top:22px; padding:22px 16px; }
  .signupband .cta .btn{ width:100%; }
  .joincta .cta .btn{ flex:1 1 45%; }
  .pagehead{ margin-top:12px; }
}
.itincard .why, .stayopt .why{ font-size:.8rem; color:#1F6B4E; margin-top:3px; }
.itincard-meta .book{ color:#9A5A1E; }
.chip.band-splurge{ background:#F5EAF8; color:#6B3E8E; border-color:#E4D2EE; }
.chip.band-mid{ background:#E4F1F8; color:#1E6A93; border-color:#C9E3F1; }
.chip.band-value{ background:#E6F5EE; color:#1F6B4E; border-color:#BFE6D1; }
@media (max-width:820px){
  .valuestrip span:not(.vi){ display:none; }
  .valuestrip .vs{ padding:9px 4px; gap:0; }
  .valuestrip .vi{ font-size:1.2rem; margin-bottom:2px; }
  .valuestrip b{ font-size:.78rem; line-height:1.15; }
  .tripgroup-h{ text-align:center; }
  .joincta .cta .btn{ white-space:nowrap; }
}
@media (max-width:820px){ .bnlabel{ letter-spacing:.01em; font-size:.58rem; } .bnitem{ padding-left:0; padding-right:0; } }

/* arrivals & departures */
.travelband{ border:1px solid var(--line); border-left:4px solid #7B5FC4; background:#F7F4FC; border-radius:10px; padding:8px 10px; margin:0 0 8px; }
.travelband.dir-depart{ border-left-color:#D9903F; background:#FCF7F0; }
.travelband .tbhead{ font-family:'Outfit',sans-serif; font-weight:800; font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink); margin-bottom:4px; }
.tbrow{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; font-size:.88rem; padding:3px 0; }
.tbrow .tbtime{ font-family:'Outfit',sans-serif; font-weight:800; min-width:64px; }
.tbrow .tbwho{ font-weight:700; }
.tbrow .tbmeta{ color:var(--muted); }
.tbshare{ margin-top:6px; background:#fff; border:1px dashed var(--line); border-radius:8px; padding:6px 10px; font-size:.84rem; color:var(--ink); }
.tvday + .tvday{ margin-top:14px; }
.tvdayhead{ font-family:'Outfit',sans-serif; font-weight:800; margin-bottom:6px; }
.tvgroup{ margin:4px 0 8px; }
.tvgrouph{ font-size:.78rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--wave-deep); margin-bottom:4px; }
.tvrow{ display:flex; gap:10px; align-items:flex-start; padding:8px 0; border-bottom:1px solid var(--mist); }
.tvrow:last-child{ border-bottom:none; }
.tvrow .tvtime{ font-family:'Outfit',sans-serif; font-weight:800; min-width:72px; padding-top:2px; }
.tvrow .grow{ flex:1; min-width:0; }
/* leads */
.leadcard{ border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:10px; background:#fff; text-align:left; }
.leadtop{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:4px; }
.leadtop .k{ font-size:.7rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; background:var(--mist); border-radius:6px; padding:2px 7px; color:var(--wave-deep); }
.leadtop .when{ margin-left:auto; color:var(--muted); font-size:.8rem; }
@media (max-width:820px){ .tvrow{ flex-wrap:wrap; } .tvrow .lgacts{ width:100%; display:flex; justify-content:flex-end; } .leadcard, .leadcard .small{ text-align:left; } }

/* trip tabs: 5 across on phones */
#trip-tabs button{ display:inline-flex; align-items:center; justify-content:center; gap:6px; white-space:nowrap; }
#trip-tabs button i{ font-style:normal; }
@media (max-width:640px){
  #trip-tabs{ padding:4px; gap:2px; }
  #trip-tabs button{ flex:1 1 0; min-width:0; flex-direction:column; gap:1px; padding:6px 2px; font-size:.68rem; font-weight:700; min-height:48px; border-radius:14px; }
  #trip-tabs button i{ font-size:1.05rem; line-height:1; }
  #trip-tabs button span{ overflow:hidden; text-overflow:ellipsis; max-width:100%; }
}
@media (max-width:820px){ .tvrow .lgacts{ margin-top:-4px; } .tbrow{ justify-content:center; } .travelband .tbhead{ text-align:center; } }

/* =====================================================================
   Landing photography (hero, concierge band, signup band)
   ===================================================================== */
.hero2.hero-photo{ position:relative; background:#16455E url("img/hero.jpg") center 40% / cover no-repeat; color:#fff; }
.hero2.hero-photo::before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(22,69,94,.86) 0%, rgba(22,69,94,.62) 48%, rgba(22,69,94,.25) 100%); }
.hero2.hero-photo .wrap{ position:relative; }
.hero2.hero-photo h1, .hero2.hero-photo .herocopy{ color:#fff; }
.hero2.hero-photo h1 em{ color:#9FD3EE; }
.hero2.hero-photo .kicker{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.3); color:#fff; backdrop-filter:blur(6px); }
.hero2.hero-photo .kicker .dot{ background:#fff; color:var(--ink); }
.hero2.hero-photo .valuestrip .vs{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.22); color:#fff; backdrop-filter:blur(8px); }
.hero2.hero-photo .valuestrip span:not(.vi){ color:#D9EDF7; }
.hero2.hero-photo .herologo{ filter:drop-shadow(0 2px 10px rgba(0,0,0,.35)); }
.hero2.hero-photo .planbox{ box-shadow:0 24px 60px rgba(0,0,0,.28); }
.hero2.hero-photo .microproof{ color:var(--muted); }
@media (max-width:820px){
  .hero2.hero-photo{ background-image:url("img/hero-m.jpg"); background-position:center 35%; }
  .hero2.hero-photo::before{ background:linear-gradient(180deg, rgba(22,69,94,.78) 0%, rgba(22,69,94,.55) 45%, rgba(245,250,253,.0) 100%), linear-gradient(180deg, rgba(22,69,94,0) 55%, var(--foam) 100%); }
  .hero2.hero-photo{ padding-bottom:10px; }
}
.conciergeband .inner.photo-concierge{ position:relative; overflow:hidden; background:#16455E url("img/concierge.jpg") center / cover no-repeat; }
.conciergeband .inner.photo-concierge::before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(22,69,94,.94) 0%, rgba(22,69,94,.86) 55%, rgba(22,69,94,.7) 100%); }
.conciergeband .inner.photo-concierge > *{ position:relative; }
@media (max-width:820px){ .conciergeband .inner.photo-concierge{ background-image:url("img/concierge-m.jpg"); } .conciergeband .inner.photo-concierge::before{ background:linear-gradient(180deg, rgba(22,69,94,.8) 0%, rgba(22,69,94,.9) 100%); } }
.signupband.photo-crew{ position:relative; overflow:hidden; background:#16455E url("img/crew.jpg") center 60% / cover no-repeat; border-color:transparent; color:#fff; }
.signupband.photo-crew::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(22,69,94,.55) 0%, rgba(22,69,94,.8) 100%); }
.signupband.photo-crew > *{ position:relative; }
.signupband.photo-crew h2{ color:#fff; }
.signupband.photo-crew p{ color:#D9EDF7; }
.signupband.photo-crew .sb-ico{ background:rgba(255,255,255,.16); }
.signupband.photo-crew .btn-primary{ background:#fff; color:var(--ink); }
.signupband.photo-crew .btn-primary:hover{ background:var(--sky); }
.signupband.photo-crew .btn-ghost{ background:rgba(255,255,255,.1); color:#fff; border-color:rgba(255,255,255,.35); }
@media (max-width:820px){ .signupband.photo-crew{ background-image:url("img/crew-m.jpg"); } }
.hero2.hero-photo .planbox, .hero2.hero-photo .planbox h3, .hero2.hero-photo .planbox label{ color:var(--ink); }
.hero2.hero-photo .planbox .pill{ color:var(--ink); } .hero2.hero-photo .planbox .pill.on{ color:#fff; }

/* ---------- pricing: online checkout ---------- */
.tierbtns{ display:flex; flex-direction:column; gap:8px; align-items:stretch; }
.tierbtns .btn{ text-align:center; justify-content:center; font-size:1rem; padding:13px 16px; }
.linkbtn{ background:none; border:none; font:inherit; font-size:.88rem; font-weight:600; color:var(--wave); cursor:pointer; padding:6px; text-decoration:underline; text-underline-offset:3px; }
.linkbtn:hover{ color:var(--ink); }
.pricehero .payline{ font-size:.92rem; margin-top:10px; color:var(--ink); }
.paidcard{ text-align:center; padding:30px 22px; margin-top:22px; border-color:var(--wave); box-shadow:0 14px 40px rgba(46,136,181,.14); }
.paidcard .big{ font-size:2.4rem; display:block; margin-bottom:6px; }
.paidcard h1{ font-size:clamp(1.6rem,4vw,2.3rem); font-weight:800; letter-spacing:-.02em; margin:0 0 8px; }
.paidcard p{ color:var(--muted); font-size:1.05rem; margin:0 auto 14px; max-width:560px; }
.paidcard .nextsteps{ text-align:left; max-width:520px; margin:0 auto 20px; padding-left:22px; display:flex; flex-direction:column; gap:8px; font-size:1rem; line-height:1.4; }
select:disabled{ opacity:.8; }

/* ---------- pricing: memberships ---------- */
.pricehero .jumpto{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:14px; }
.pricehero .jumpto a{ font-weight:700; font-size:.92rem; color:var(--wave); text-decoration:none; border:1px solid var(--line); background:#fff; border-radius:999px; padding:8px 16px; }
.pricehero .jumpto a:hover{ border-color:var(--wave); }
.tiers2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; max-width:860px; margin:22px auto 0; }
@media (max-width:760px){ .tiers2{ grid-template-columns:minmax(0,1fr); } }
.memberrules{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; max-width:860px; margin:14px auto 0; }
.memberrules div{ display:flex; flex-direction:column; gap:2px; font-size:.88rem; min-width:0; }
.memberrules span{ color:var(--muted); }
@media (max-width:760px){ .memberrules{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.paidcard .small{ margin-top:14px; }
/* ---------- dashboard: member card ---------- */
#dash-member{ margin-bottom:14px; }
.membercard{ border-color:var(--wave); background:linear-gradient(135deg,#F7FBFD 0%,#E8F3FA 100%); }
.membercard .memtop{ display:flex; justify-content:space-between; align-items:flex-start; gap:14px; }
.membercard h3{ margin:2px 0 0; font-size:1.15rem; }
.membercard .membal{ text-align:right; flex:none; }
.membercard .membal b{ display:block; font-family:'Outfit',sans-serif; font-size:2.4rem; line-height:1; color:var(--ink); }
.membercard .membal span{ font-size:.8rem; color:var(--muted); }
.membercard .memmeta{ display:flex; flex-wrap:wrap; gap:6px 16px; color:var(--muted); margin:10px 0 12px; }
.membercard .memacts{ display:flex; flex-wrap:wrap; gap:8px; }
.membercard .memperk{ margin-top:12px; color:#3a5566; line-height:1.45; }
.membercard .code{ font-family:ui-monospace,Menlo,monospace; background:#fff; border:1px dashed var(--line); padding:1px 6px; border-radius:6px; }
.memhistwrap{ margin-top:10px; }
.memhistwrap summary{ cursor:pointer; color:var(--wave); font-weight:600; }
.memhist{ display:flex; justify-content:space-between; gap:10px; font-size:.84rem; padding:5px 0; border-bottom:1px dashed var(--line); }
@media (max-width:640px){ .membercard .memacts .btn{ flex:1 1 100%; } }

/* pricing tabs + notes */
.tiercard .price{ margin-top:8px; }
.tiercard .tiernote{ font-size:.86rem; line-height:1.45; color:#3a5566; background:var(--mist, #F2F8FB); border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin:-4px 0 16px; }
#membership .panelintro{ text-align:center; color:var(--muted); max-width:620px; margin:22px auto 0; font-size:1rem; }
#billing{ scroll-margin-top:90px; }
@media (max-width:760px){ .memberrules div{ align-items:center; text-align:center; } }

/* Free vs Plus table */
.compare th.c{ text-align:center; vertical-align:top; }
.compare col.colplan{ width:24%; }
.compare .planname{ font-size:1.05rem; font-weight:800; }
.compare .pricecell{ display:flex; justify-content:center; align-items:baseline; gap:5px; margin:2px 0 4px; font-family:'Outfit',sans-serif; }
.compare .pricecell b{ font-size:1.35rem; font-weight:800; }
.compare .pricecell s{ color:var(--muted); font-weight:600; font-size:.95rem; }
.compare .pricecell span{ font-size:.78rem; font-weight:600; color:var(--muted); }
.compare .chip.founding{ display:inline-block; font-size:.68rem; background:#FFF3E0; color:#9A5B00; border-color:#F5D7A8; }
.foundingbar{ display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:14px 18px; align-items:center; margin-top:14px; padding:14px 16px; border:1px solid #F5D7A8; background:#FFFAF2; border-radius:14px; }
.foundingbar .fb-copy{ font-size:.92rem; line-height:1.45; }
.foundingbar .fb-note{ grid-column:1 / -1; margin-top:-6px; }
.countdown{ display:flex; gap:6px; }
.countdown div{ display:flex; flex-direction:column; align-items:center; min-width:48px; background:#fff; border:1px solid #F5D7A8; border-radius:10px; padding:6px 4px; }
.countdown b{ font-family:'Outfit',sans-serif; font-size:1.25rem; line-height:1; font-variant-numeric:tabular-nums; }
.countdown span{ font-size:.66rem; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; margin-top:3px; }
@media (max-width:760px){
  .compare col.colplan{ width:27%; }
  .foundingbar{ grid-template-columns:minmax(0,1fr); text-align:center; justify-items:center; }
  .foundingbar .btn{ width:100%; }
  .foundingbar .fb-note{ margin-top:-4px; }
}
.compare thead th{ vertical-align:top; }
.compare .chip.founding{ white-space:nowrap; }
@media (max-width:760px){
  .compare .pricecell{ flex-wrap:wrap; column-gap:4px; row-gap:0; }
  .compare .pricecell b{ font-size:1.2rem; }
  .compare .chip.founding{ font-size:.6rem; padding:2px 7px; }
}

/* ================= plan results: skimmable layout ================= */
.itinnav{ position:sticky; top:60px; z-index:40; margin:0 -4px 12px; padding:6px 4px; background:var(--foam); }
.itinnav-in{ display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.itinnav-in::-webkit-scrollbar{ display:none; }
.itinnav a{ flex:none; padding:7px 14px; border-radius:999px; background:#fff; border:1px solid var(--line); color:var(--ink); font-weight:700; font-size:.86rem; white-space:nowrap; }
.itinnav a.on{ background:var(--ink); color:#fff; border-color:var(--ink); }
.itsec{ scroll-margin-top:130px; margin-bottom:12px; }
.itsec .sechead{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:6px; }
.itsec .sechead h3{ margin:0; font-size:1.1rem; }
.itsec .sechead .small{ margin-left:auto; }
.itsec .sub{ margin:0 0 8px; color:var(--muted); font-size:.9rem; }
.tiles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:8px; }
.tile{ background:var(--foam); border:1px solid var(--line); border-radius:12px; padding:9px 11px; display:flex; flex-direction:column; min-width:0; }
.tile .ti{ font-size:1rem; line-height:1; margin-bottom:4px; }
.tile b{ font-family:'Outfit',sans-serif; font-size:1.12rem; line-height:1.15; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tile span:last-child{ color:var(--muted); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.itsec .lede{ margin:10px 0 0; font-size:.98rem; line-height:1.45; }
details.more{ margin-top:6px; }
details.more summary{ cursor:pointer; color:var(--wave-deep); font-weight:700; font-size:.86rem; list-style:none; }
details.more summary::-webkit-details-marker{ display:none; }
details.more summary::after{ content:" ▾"; }
details.more[open] summary::after{ content:" ▴"; }
details.more p{ margin:6px 0 0; font-size:.9rem; color:#3a5566; line-height:1.45; }
.packrow{ display:flex; flex-wrap:wrap; align-items:center; gap:5px; margin-top:10px; }
.packrow .lbl{ font-size:.8rem; font-weight:800; color:var(--muted); margin-right:2px; }
.pill-s{ display:inline-flex; align-items:center; gap:3px; padding:2px 8px; border-radius:999px; font-size:.74rem; font-weight:700; background:var(--mist); color:#3a5566; border:1px solid var(--line); white-space:nowrap; line-height:1.5; }
.pill-s.tag{ background:#fff; }
.pill-s.bk{ background:#EAF4FA; color:var(--wave-deep); border-color:#CFE4EF; }
.pill-s.bk.warm{ background:#FFF6E8; color:#9A5B00; border-color:#F5D7A8; }
.pill-s.bk.hot{ background:#FDECEC; color:#A33A3A; border-color:#F3C9C9; }
.pill-s.band-splurge{ background:#F3ECFB; color:#6B45A8; border-color:#E0D2F3; }
.pill-s.band-mid{ background:#E8F6EF; color:#2E8B6B; border-color:#CBE9DA; }
.pill-s.band-value{ background:#EAF4FA; color:var(--wave-deep); border-color:#CFE4EF; }
/* day */
.itinday .dhead{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:2px; }
.itinday .dhead .dn{ background:var(--wave); color:#fff; border-radius:8px; padding:2px 8px; font-size:.72rem; letter-spacing:.08em; }
.itinday .dhead .dd{ margin-left:0; font-size:.8rem; font-weight:700; color:var(--muted); }
.itinday .dhead h3{ flex-basis:100%; margin:4px 0 0; font-size:1.15rem; }
.itinday .theme{ margin:2px 0 6px; font-size:.88rem; }
.daystats{ display:flex; flex-wrap:wrap; gap:6px 12px; font-size:.76rem; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; }
.daystats .hot{ color:#A33A3A; }
.daystats .hint{ margin-left:auto; text-transform:none; letter-spacing:0; font-weight:600; opacity:.8; }
.ilist{ display:flex; flex-direction:column; border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
.irow{ border-top:1px solid var(--mist); border-left:3px solid transparent; }
.irow:first-child{ border-top:none; }
.irow > summary, .irow .summ{ display:flex; align-items:flex-start; gap:10px; padding:9px 10px 9px 8px; cursor:pointer; list-style:none; }
.irow > summary::-webkit-details-marker{ display:none; }
.irow > summary:hover{ background:var(--foam); }
.irow.kind-food{ border-left-color:#D9903F; } .irow.kind-activity{ border-left-color:#2E88B5; } .irow.kind-other{ border-left-color:#8FA6B2; }
.it-time{ flex:none; width:64px; font-size:.78rem; font-weight:800; color:var(--wave-deep); padding-top:2px; white-space:nowrap; }
.it-time i{ font-style:normal; color:var(--muted); font-weight:600; }
.it-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.it-title{ font-family:'Outfit',sans-serif; font-weight:600; font-size:.98rem; line-height:1.25; color:var(--ink); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.it-pills{ display:flex; flex-wrap:wrap; gap:4px; align-items:center; min-width:0; }
.it-area{ font-size:.76rem; color:var(--muted); font-weight:600; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-right:2px; }
.it-chev{ flex:none; color:#9DBACB; font-size:1.25rem; line-height:1; transition:transform .15s; padding-top:1px; }
.irow[open] .it-chev{ transform:rotate(90deg); color:var(--wave); }
.irow[open] > summary{ background:var(--foam); }
.it-more{ padding:0 12px 10px 82px; font-size:.88rem; color:#3a5566; line-height:1.45; background:var(--foam); }
.it-more p{ margin:0 0 6px; }
.it-more .why{ color:var(--good); font-size:.82rem; }
.it-map{ font-weight:700; font-size:.82rem; }
.irow-travel{ border-left-color:transparent; background:#FBFDFE; }
.irow-travel > summary{ padding:5px 10px 5px 8px; align-items:center; }
.it-travel{ font-size:.8rem; color:var(--muted); font-weight:600; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.it-travel b{ color:#6B45A8; }
.irow.ghost .ghostline{ height:10px; margin:3px 0; }
/* stays */
.stayopt{ display:flex; flex-direction:column; gap:6px; }
.stayopt .so-top{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.stayopt .so-top b{ font-size:1rem; line-height:1.2; }
.so-price{ font-weight:800; color:var(--muted); font-size:.85rem; letter-spacing:.05em; }
.stayopt p{ margin:0; font-size:.84rem; color:#3a5566; line-height:1.4; }
.staylinks{ display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-top:auto; padding-top:4px; }
.staylinks .sl{ text-align:center; font-size:.78rem; font-weight:700; padding:6px 6px; border-radius:9px; border:1px solid var(--line); background:#fff; color:var(--ink); white-space:nowrap; }
.staylinks .sl:hover{ border-color:var(--wave); color:var(--wave-deep); }
.staylinks .sl-site{ background:var(--ink); color:#fff; border-color:var(--ink); }
.staylinks .sl-site:hover{ color:#fff; background:var(--wave-deep); }
.staylinks .sl-rev{ color:#9A5B00; }
/* checklist */
.checklist2{ display:flex; flex-direction:column; gap:6px; }
.ck{ display:flex; gap:10px; align-items:flex-start; padding:8px 10px; border:1px solid var(--line); border-radius:10px; cursor:pointer; background:#fff; }
.ck input{ width:18px; height:18px; flex:none; margin-top:1px; accent-color:var(--good); }
.ck span{ display:flex; flex-direction:column; gap:1px; min-width:0; font-size:.9rem; }
.ck span i{ font-style:normal; font-size:.78rem; color:var(--muted); font-weight:600; }
.ck.done{ background:#F2FAF6; border-color:#CBE9DA; }
.ck.done b{ text-decoration:line-through; color:var(--muted); }
/* tips */
.tips2{ display:flex; flex-direction:column; gap:6px; }
.tip{ border:1px solid var(--line); border-radius:10px; background:var(--foam); font-size:.9rem; }
.tip > summary, .tip > span{ display:block; padding:8px 10px; cursor:pointer; list-style:none; font-weight:600; }
.tip > span{ cursor:default; }
.tip > summary::-webkit-details-marker{ display:none; }
.tip > summary::after{ content:" ▾"; color:var(--wave); }
.tip[open] > summary::after{ content:" ▴"; }
.tip p{ margin:0; padding:0 10px 9px; color:#3a5566; font-size:.86rem; line-height:1.45; }
@media (max-width:640px){
  .itinnav{ top:60px; margin:0 -16px 10px; padding:6px 16px; }
  .it-time{ width:56px; font-size:.74rem; }
  .it-more{ padding-left:12px; }
  .daystats .hint{ display:none; }
  .tiles{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px){
  .itin .itsec, .itin .itsec > p, .itin .itinday .dhead, .itin .itinday .theme{ text-align:left; }
  .itin .itinday .dhead{ justify-content:flex-start; }
  .itinnav{ top:0; }
  .itsec{ scroll-margin-top:64px; }
}
@media (max-width:640px){ .itin .itinday .dhead .dd{ width:auto; text-align:left; } }
@media (max-width:820px){ .itinnav{ top:0; } .itsec{ scroll-margin-top:64px; } }
@media (max-width:640px){
  .it-pills .pill-s.tag ~ .pill-s.tag{ display:none; }
  .it-area{ max-width:48%; }
  .pill-s{ font-size:.7rem; padding:1px 7px; }
}

/* How it works: number on the left, text left-aligned on phones */
@media (max-width:820px){
  #landing .steps3 .step b, #landing .steps3 .step p, .steps3 .step b, .steps3 .step p{ text-align:left; }
  .steps3 .step p{ grid-column:2; }
  .steps3 .step b{ grid-column:2; margin:0; }
}
/* landing package bubbles are links to checkout */
a.tier{ color:inherit; text-decoration:none; position:relative; transition:transform .12s, box-shadow .12s, border-color .12s; cursor:pointer; }
a.tier:hover{ transform:translateY(-1px); box-shadow:0 8px 22px rgba(22,69,94,.16); }
a.tier .tgo{ font-size:1.3rem; line-height:1; opacity:.6; margin-left:4px; }
a.tier:hover .tgo{ opacity:1; }
/* /plan start form = home hero form */
.planstart{ max-width:560px; margin:14px auto 0; }
.conciergeband a.tier:hover{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.35); }
.conciergeband a.tier .tgo{ font-size:1.3rem; color:#fff; }
@media (max-width:820px){ .conciergeband a.tier .tgo{ display:none; } .conciergeband a.tier .price::after{ content:" ›"; opacity:.7; } }
.staylinks .sl-rev.has-rating{ color:var(--ink); }
.staylinks .sl-rev b{ color:#B26B00; }
.staylinks .sl-rev .rc{ color:var(--muted); font-weight:600; }
.stayopt .staylinks .sl-rev b{ display:inline; font-family:'Outfit',sans-serif; }
@media (max-width:420px){ .staylinks .sl-rev .rc{ display:none; } }

/* day navigator: scroll arrow sits beside the pills, never on top of them */
.itinnav{ display:flex; align-items:center; gap:6px; }
.itinnav-in{ flex:1; min-width:0; }
.itinnav-more{ flex:none; width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:#fff; color:var(--wave-deep); font-size:1.35rem; font-weight:800; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0 0 2px; box-shadow:0 2px 8px rgba(22,69,94,.12); }
.itinnav-more:hover{ border-color:var(--wave); }
.itinnav-more.hidden{ display:none; }
/* optional gap-fillers */
.pill-s.opt{ background:#EFF8F3; color:var(--good); border-color:#CBE9DA; border-style:dashed; }
.irow-opt{ background:#FBFEFC; }
.irow.irow-opt{ border-left-style:dashed; }
.irow-opt .it-title{ color:#3a5566; font-weight:600; }
.daystats .optc{ color:var(--good); }

/* package cards under a plan: tap to check out */
.tiercards{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.tiercards .tc{ position:relative; display:flex; flex-direction:column; gap:6px; background:#fff; border:1px solid var(--line); border-radius:14px; padding:11px 30px 11px 12px; color:var(--ink); text-decoration:none; text-align:left; transition:transform .12s, box-shadow .12s, border-color .12s; }
.tiercards .tc:hover{ transform:translateY(-1px); border-color:var(--wave); box-shadow:0 8px 20px rgba(22,69,94,.12); }
.tiercards .tc-top{ display:flex; flex-direction:column; gap:1px; }
.tiercards .tc-top b{ font-family:'Outfit',sans-serif; font-size:.95rem; line-height:1.2; }
.tiercards .tc-price{ font-family:'Outfit',sans-serif; font-weight:800; font-size:1.05rem; color:var(--wave-deep); }
.tiercards .tc-price small{ font-size:.72rem; font-weight:600; color:var(--muted); margin-left:2px; }
.tiercards ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:3px; }
.tiercards li{ font-size:.78rem; color:#3a5566; line-height:1.3; display:flex; gap:5px; }
.tiercards li::before{ content:"✓"; color:var(--good); font-weight:800; flex:none; }
.tiercards .tc-go{ position:absolute; right:10px; top:50%; transform:translateY(-50%); font-size:1.4rem; color:#9DBACB; line-height:1; }
.tiercards .tc:hover .tc-go{ color:var(--wave); }
@media (max-width:640px){ .upsell .tiercards{ margin-top:4px; } }
/* itinerary package cards: text on top, cards below so each checklist item stays on one line */
.upsell.upsell-tc{ grid-template-columns:minmax(0,1fr); }
.upsell.upsell-tc .tiercards{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.upsell.upsell-tc .tc-top{ flex-direction:row; justify-content:space-between; align-items:baseline; gap:8px; }
.upsell.upsell-tc li{ white-space:nowrap; }
@media (max-width:640px){
  .upsell.upsell-tc .tiercards{ grid-template-columns:minmax(0,1fr); }
  .upsell.upsell-tc .tc-top{ flex-direction:row; justify-content:space-between; align-items:baseline; gap:8px; }
  .upsell.upsell-tc .tc{ padding:11px 32px 11px 14px; }
  .upsell.upsell-tc li{ font-size:.82rem; }
}
/* change requests */
.revisecard{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; background:linear-gradient(135deg,#FFFFFF 0%,#F2F8FC 100%); }
.revisecard h3{ margin:0 0 2px; font-size:1.05rem; }
.revisecard p{ margin:0; color:var(--muted); font-size:.9rem; }
.revbanner{ display:flex; align-items:center; gap:10px; background:#EEF7EF; border:1px solid #CBE6CF; border-radius:14px; padding:10px 14px; margin:12px 0 0; font-size:.88rem; }
.revbanner .rb-ic{ flex:none; }
.revbanner .rb-txt{ flex:1; min-width:0; display:flex; flex-direction:column; }
.revbanner .rb-txt i{ color:#3a5566; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.revbanner a{ flex:none; font-weight:700; white-space:nowrap; }
.rv-chips{ margin:0 0 10px; }
#rv-text{ width:100%; resize:vertical; min-height:96px; }
.rv-meta{ display:flex; justify-content:space-between; gap:10px; font-size:.78rem; color:var(--muted); margin-top:4px; }
.rv-confirm{ text-align:center; padding:6px 2px 0; }
.rv-confirm .rv-ic{ font-size:1.8rem; }
.rv-confirm h3{ margin:4px 0 6px; }
.rv-confirm .formfoot{ flex-direction:column; gap:8px; }
.modal-overlay.busy .modalclose{ display:none; }
@media (max-width:640px){
  .revisecard{ flex-direction:column; align-items:stretch; text-align:center; }
  .revisecard .btn{ width:100%; }
  .revbanner{ flex-wrap:wrap; }
}
