/* ==========================================================================
   Voyagebnb — Sleek modern luxury (black + champagne gold)
   Crafted for an ultra-high-net-worth clientele.
   ========================================================================== */
:root{
  --bg:#0a0c0f;          /* page */
  --bg-2:#0e1116;        /* alternate section */
  --panel:#12161c;       /* cards */
  --panel-2:#171d25;     /* insets / inputs */
  --panel-3:#1d2530;     /* hover */
  --line:rgba(255,255,255,.08);
  --line-2:rgba(255,255,255,.16);
  --ink:#eceff3;
  --ink-soft:#c3cbd4;
  --muted:#828d99;
  --gold:#c6a86b;        /* champagne accent */
  --gold-soft:#dcc190;
  --gold-dim:rgba(198,168,107,.14);
  --gold-line:rgba(198,168,107,.35);
  --success:#57d0a0;
  --danger:#e08a86;
  --white:#fff;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow-md:0 10px 30px rgba(0,0,0,.45);
  --shadow-lg:0 34px 80px rgba(0,0,0,.6);
  --radius:14px;
  --radius-sm:10px;
  --maxw:1240px;
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --serif:"Fraunces","Georgia",serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;line-height:1.6;letter-spacing:.005em;
}
h1,h2,h3,h4,h5{line-height:1.12;margin:0 0 .4em;font-weight:500}
h1{font-family:var(--serif);font-weight:400;letter-spacing:-.015em}
h2{font-family:var(--serif);font-size:2.15rem;font-weight:400;letter-spacing:-.01em}
p{margin:0 0 1em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.muted{color:var(--muted)}
.center{text-align:center}
::selection{background:var(--gold);color:#0a0c0f}

/* ---- Buttons ------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  border:none;cursor:pointer;font-family:inherit;font-weight:600;font-size:.9rem;letter-spacing:.02em;
  padding:13px 26px;border-radius:999px;transition:transform .12s ease,box-shadow .2s ease,background .2s ease,color .2s,border-color .2s;
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--gold);color:#0a0c0f}
.btn-primary:hover{background:var(--gold-soft);box-shadow:0 8px 26px rgba(198,168,107,.28)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line-2)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-soft)}
.btn-block{width:100%}
.btn-lg{padding:16px 32px;font-size:.98rem}
.btn-sm{padding:9px 16px;font-size:.82rem}

/* ---- Header -------------------------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(10,12,15,.72);
  backdrop-filter:saturate(160%) blur(16px);border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-size:1.42rem;font-weight:400;color:var(--ink);letter-spacing:.01em}
.brand .mark{display:grid;place-items:center;color:var(--gold)}
.brand .mark svg{width:26px;height:26px}

/* ---- inline line-icon sizing (replaces old emojis) --------------------- */
.specs span svg{width:14px;height:14px;vertical-align:-2px;opacity:.7;margin-right:2px}
.detail-meta svg{width:15px;height:15px;vertical-align:-2px;opacity:.8;margin-right:2px}
.cat .cat-ic svg{width:23px;height:23px}
.s-ic svg{width:21px;height:21px;color:var(--gold-soft)}
.mode-opt .m-ic svg{width:24px;height:24px;color:var(--gold-soft)}
.port-pool .port-chip svg{width:14px;height:14px;vertical-align:-2px;margin-right:2px}
.tc-meta svg,.res-row svg.ic{width:14px;height:14px;vertical-align:-2px;opacity:.7;margin-right:2px}
.co-badge svg,.pill svg{width:12px;height:12px;vertical-align:-1px;margin-right:2px}
.contact-ic{display:inline-flex;width:16px;height:16px;vertical-align:-3px;margin-right:8px;color:var(--gold-soft)}
.contact-ic svg{width:16px;height:16px}
.inline-ic{display:inline-block;width:14px;height:14px;vertical-align:-2px;margin-right:3px;opacity:.8}
.empty-state .es-ic svg{width:34px;height:34px;color:var(--gold-soft)}
.kpi .v svg{width:20px;height:20px;vertical-align:-3px;color:var(--gold)}
.brand em{color:var(--gold);font-style:normal}
.nav-links{display:flex;align-items:center;gap:32px}
.nav-links a{font-weight:500;color:var(--ink-soft);font-size:.9rem;letter-spacing:.01em;position:relative}
.nav-links a:hover{color:var(--gold-soft)}
.nav-links a.nav-tab{border:1px solid var(--gold-line);border-radius:999px;padding:6px 15px;color:var(--gold-soft);font-weight:600}
.nav-links a.nav-tab:hover{background:var(--gold-dim);color:var(--gold)}
.nav-cta{display:flex;align-items:center;gap:16px}
.avatar{width:40px;height:40px;border-radius:999px;background:var(--panel-2);display:grid;place-items:center;font-weight:600;font-size:.82rem;color:var(--gold-soft);border:1px solid var(--line-2)}
@media(max-width:860px){.nav-links{display:none}}

/* ---- Hero --------------------------------------------------------------- */
.hero{
  position:relative;color:#fff;overflow:hidden;
  background:
    linear-gradient(180deg,rgba(6,8,11,.55),rgba(6,8,11,.82)),
    url("https://images.unsplash.com/photo-1544551763-46a013bb70d5?q=80&w=2400&auto=format&fit=crop") center/cover fixed;
}
.hero-inner{padding:120px 0 140px;max-width:760px}
.hero .eyebrow{text-transform:uppercase;letter-spacing:.34em;font-size:.7rem;font-weight:600;color:var(--gold-soft);margin-bottom:24px}
.hero h1{font-size:clamp(2.6rem,5.4vw,4.6rem);color:#fff;margin-bottom:.32em;font-weight:400;line-height:1.04}
.hero p{font-size:1.15rem;color:rgba(255,255,255,.82);max-width:560px;font-weight:300}

/* ---- Search bar --------------------------------------------------------- */
.searchbar{
  background:rgba(18,22,28,.9);color:var(--ink);border-radius:999px;box-shadow:var(--shadow-lg);
  border:1px solid var(--line-2);
  display:flex;align-items:stretch;padding:9px;gap:2px;max-width:920px;margin-top:40px;backdrop-filter:blur(8px);
}
.searchbar .field{flex:1;padding:11px 22px;border-radius:999px;cursor:pointer;transition:background .18s}
.searchbar .field:hover{background:rgba(255,255,255,.04)}
.searchbar .field label{display:block;font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft)}
.searchbar .field input,.searchbar .field select{
  border:none;outline:none;font-family:inherit;font-size:.94rem;color:var(--ink);width:100%;background:transparent;margin-top:3px;
}
.searchbar .field select option{background:#12161c;color:var(--ink)}
.searchbar .field input::placeholder{color:var(--muted)}
.searchbar .divider{width:1px;background:var(--line);margin:10px 0}
.searchbar .go{align-self:center}
.searchbar .go button{width:54px;height:54px;border-radius:999px;padding:0}
@media(max-width:720px){
  .searchbar{flex-direction:column;border-radius:20px}
  .searchbar .divider{display:none}
  .searchbar .field{border-radius:12px}
  .searchbar .go button{width:100%;border-radius:12px}
  .searchbar .go{width:100%}
}

/* ---- Section ------------------------------------------------------------ */
.section{padding:88px 0}
.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:40px;gap:20px}
.section-head p{margin:0;max-width:520px;color:var(--muted);font-weight:300}
.eyebrow-dark{text-transform:uppercase;letter-spacing:.26em;font-size:.68rem;font-weight:700;color:var(--gold);margin-bottom:14px}

/* ---- Feature strip ------------------------------------------------------ */
.features{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
@media(max-width:820px){.features{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.features{grid-template-columns:1fr}}
.feature{background:var(--panel);padding:32px 28px;transition:background .2s}
.feature:hover{background:var(--panel-2)}
.feature .ic{width:44px;height:44px;border-radius:11px;background:var(--gold-dim);color:var(--gold-soft);display:grid;place-items:center;margin-bottom:18px}
.feature h4{margin:0 0 8px;font-family:var(--font);font-size:1.02rem;font-weight:600}
.feature p{margin:0;color:var(--muted);font-size:.9rem;font-weight:300}

/* ---- Sport fishing band ------------------------------------------------ */
.sportfish-band{
  position:relative;border-radius:18px;overflow:hidden;padding:56px 48px;color:#fff;border:1px solid var(--line);
  background:linear-gradient(90deg,rgba(6,8,11,.86),rgba(6,8,11,.45)),
    url("https://images.unsplash.com/photo-1567899378494-47b22a2ae96a?q=80&w=1800&auto=format&fit=crop") center/cover;
}
.sportfish-band .sf-copy{max-width:520px}
.sportfish-band .eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:.68rem;font-weight:700;margin-bottom:14px}
.sportfish-band h2{color:#fff;font-size:2rem;margin:0 0 10px}
.sportfish-band p{color:rgba(255,255,255,.85);font-weight:300;margin:0 0 20px}
@media(max-width:600px){.sportfish-band{padding:40px 26px}}

/* ---- Category bar (vessel types) --------------------------------------- */
.catbar{display:flex;gap:6px;overflow-x:auto;padding:2px 0 20px;border-bottom:1px solid var(--line);margin-bottom:26px}
.catbar .cat{display:flex;flex-direction:column;align-items:center;gap:7px;background:none;border:none;cursor:pointer;color:var(--muted);font-family:inherit;font-size:.74rem;font-weight:600;letter-spacing:.02em;padding:8px 12px;border-bottom:2px solid transparent;white-space:nowrap;min-width:66px;transition:color .15s,border-color .15s}
.catbar .cat:hover{color:var(--ink)}
.catbar .cat.active{color:var(--gold-soft);border-bottom-color:var(--gold)}
.catbar .cat-ic{font-size:1.35rem;line-height:1}

/* ---- services editor table --------------------------------------------- */
.svc-table td input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold);cursor:pointer}
.svc-table .amt{width:110px}
.svc-table .per{width:104px}

/* ---- Filter chips ------------------------------------------------------- */
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:34px}
.filters .chip{
  border:1px solid var(--line-2);background:transparent;border-radius:999px;padding:9px 18px;
  font-size:.86rem;font-weight:500;cursor:pointer;transition:all .18s;color:var(--ink-soft);letter-spacing:.01em;
}
.filters .chip:hover{border-color:var(--gold);color:var(--gold-soft)}
.filters .chip.active{background:var(--gold);color:#0a0c0f;border-color:var(--gold)}
.filters .range{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:.84rem;color:var(--muted)}
.filters .range b{color:var(--gold-soft);font-weight:600}
.filters input[type=range]{accent-color:var(--gold)}

/* ---- Yacht grid --------------------------------------------------------- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:960px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.grid{grid-template-columns:1fr}}
.card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s;cursor:pointer;display:flex;flex-direction:column;
}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--gold-line)}
.card .thumb{position:relative;aspect-ratio:4/3;overflow:hidden}
.card .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,12,15,.55));pointer-events:none}
.card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.card:hover .thumb img{transform:scale(1.06)}
.card .badge{position:absolute;top:14px;left:14px;z-index:2;background:rgba(10,12,15,.72);color:var(--gold-soft);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:999px;backdrop-filter:blur(6px);border:1px solid var(--gold-line)}
.card .fav{position:absolute;top:12px;right:12px;z-index:2;width:36px;height:36px;border-radius:999px;background:rgba(10,12,15,.6);color:#fff;display:grid;place-items:center;border:1px solid var(--line-2);cursor:pointer;backdrop-filter:blur(6px)}
.card .fav:hover{border-color:var(--gold)}
.card .body{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1}
.card .row1{display:flex;justify-content:space-between;gap:10px;align-items:start}
.card h3{font-family:var(--serif);font-size:1.2rem;font-weight:400;margin:0}
.card .loc{color:var(--muted);font-size:.86rem;margin:3px 0 0;font-weight:300}
.card .rate{display:flex;align-items:center;gap:5px;font-size:.86rem;font-weight:600;white-space:nowrap;color:var(--ink)}
.card .rate svg{width:13px;height:13px;color:var(--gold)}
.card .specs{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.82rem;margin:14px 0 16px;font-weight:300}
.card .specs span{display:flex;align-items:center;gap:5px}
.card .price{margin-top:auto;font-size:.9rem;color:var(--muted);padding-top:14px;border-top:1px solid var(--line)}
.card .price b{font-size:1.15rem;color:var(--gold-soft);font-weight:600;font-family:var(--font)}

/* ---- Detail page -------------------------------------------------------- */
.crumbs{font-size:.82rem;color:var(--muted);padding:26px 0 8px;letter-spacing:.02em}
.crumbs a:hover{color:var(--gold-soft)}
.detail-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px}
.detail-head h1{font-size:2.6rem;margin:0}
.detail-meta{display:flex;gap:16px;color:var(--muted);font-size:.9rem;flex-wrap:wrap;align-items:center;margin-top:8px;font-weight:300}
.detail-meta b{color:var(--ink);font-weight:600}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;border-radius:var(--radius);overflow:hidden;height:460px}
.gallery img{width:100%;height:100%;object-fit:cover;filter:brightness(.94)}
.gallery .main{grid-row:1/3}
@media(max-width:720px){.gallery{grid-template-columns:1fr 1fr;height:auto}.gallery .main{grid-row:auto;grid-column:1/3;height:250px}}

.detail-body{display:grid;grid-template-columns:1fr 388px;gap:56px;margin-top:48px;align-items:start}
@media(max-width:960px){.detail-body{grid-template-columns:1fr}}
.detail-section{padding-bottom:38px;margin-bottom:38px;border-bottom:1px solid var(--line)}
.detail-section h2{font-size:1.65rem}
.amenities{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:0;margin:0}
.amenities li{list-style:none;display:flex;align-items:center;gap:11px;color:var(--ink-soft);font-size:.94rem;font-weight:300}
.amenities .dot{width:6px;height:6px;border-radius:999px;background:var(--gold);flex:none;box-shadow:0 0 0 4px var(--gold-dim)}

/* ---- Booking card ------------------------------------------------------- */
.booking{position:sticky;top:100px;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:26px}
.booking .price-lead{display:flex;align-items:baseline;gap:7px;margin-bottom:18px}
.booking .price-lead b{font-size:1.7rem;color:var(--gold-soft);font-weight:600}
.booking .tabs{display:flex;gap:5px;background:var(--panel-2);padding:5px;border-radius:11px;margin-bottom:20px;border:1px solid var(--line)}
.booking .tabs button{flex:1;border:none;background:transparent;padding:10px;border-radius:8px;font-family:inherit;font-weight:600;font-size:.8rem;color:var(--muted);cursor:pointer;transition:all .18s}
.booking .tabs button.active{background:var(--gold);color:#0a0c0f}
.panel{display:none}
.panel.active{display:block}

/* ---- Calendar ----------------------------------------------------------- */
.cal{user-select:none}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-head b{font-size:.96rem;font-weight:600}
.cal-nav{display:flex;gap:6px}
.cal-nav button{width:34px;height:34px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--ink);cursor:pointer;display:grid;place-items:center}
.cal-nav button:hover{border-color:var(--gold);color:var(--gold-soft)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-dow{text-align:center;font-size:.64rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:4px 0}
.cal-day{aspect-ratio:1;display:grid;place-items:center;font-size:.82rem;border-radius:9px;cursor:pointer;position:relative;border:1px solid transparent;color:var(--ink-soft)}
.cal-day.empty{cursor:default}
.cal-day.disabled{color:#3d454f;cursor:not-allowed;text-decoration:line-through}
.cal-day.avail:hover{background:var(--panel-2);border-color:var(--gold-line)}
.cal-day.in-range{background:var(--gold-dim);border-radius:0}
.cal-day.range-start,.cal-day.range-end{background:var(--gold);color:#0a0c0f;font-weight:700}
.cal-day.range-start{border-radius:9px 0 0 9px}
.cal-day.range-end{border-radius:0 9px 9px 0}
.cal-day.single{border-radius:9px}
.cal-legend{display:flex;gap:16px;margin-top:14px;font-size:.74rem;color:var(--muted)}
.cal-legend span{display:flex;align-items:center;gap:6px}
.cal-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}
.cal-selected{margin-top:16px;font-size:.88rem;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:11px 13px;color:var(--ink-soft)}
.cal-selected b{color:var(--gold-soft)}

/* ---- Voyage builder ----------------------------------------------------- */
.voyage-intro{color:var(--muted);font-size:.92rem;margin-bottom:18px;font-weight:300}
.voyage-intro #v-host{color:var(--gold-soft)}
.port-pool{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.port-pool .port-chip{border:1px solid var(--line-2);background:transparent;border-radius:9px;padding:9px 13px;font-size:.84rem;cursor:pointer;display:flex;align-items:center;gap:7px;transition:all .16s;color:var(--ink-soft)}
.port-pool .port-chip:hover{border-color:var(--gold);color:var(--gold-soft)}
.port-pool .port-chip.added{opacity:.35;pointer-events:none}
.port-pool .port-chip .fee{color:var(--gold);font-weight:600}
.itinerary{list-style:none;padding:0;margin:0}
.itinerary li{
  display:flex;align-items:center;gap:12px;background:var(--panel-2);border:1px solid var(--line);
  border-radius:11px;padding:13px 15px;margin-bottom:10px;
}
.itinerary .num{width:28px;height:28px;border-radius:999px;background:var(--gold);color:#0a0c0f;display:grid;place-items:center;font-size:.78rem;font-weight:700;flex:none}
.itinerary .p-name{font-weight:600;font-size:.94rem}
.itinerary .p-sub{font-size:.78rem;color:var(--muted);font-weight:300}
.itinerary .grow{flex:1}
.itinerary .p-fee{font-weight:600;color:var(--gold-soft);font-size:.85rem;white-space:nowrap;margin-right:4px}
.itinerary .move{display:flex;flex-direction:column;gap:2px}
.itinerary .move button,.itinerary .rm{border:none;background:var(--panel-3);border-radius:6px;cursor:pointer;color:var(--ink);width:26px;height:20px;display:grid;place-items:center;font-size:.68rem}
.itinerary .rm{width:28px;height:28px;background:rgba(224,138,134,.14);color:var(--danger);font-size:.95rem}
.itinerary .move button:hover{background:var(--gold);color:#0a0c0f}
.itinerary-empty{border:1px dashed var(--line-2);border-radius:11px;padding:28px;text-align:center;color:var(--muted);font-size:.9rem;font-weight:300}
.voyage-summary{margin-top:16px;display:flex;justify-content:space-between;font-size:.88rem;background:var(--gold-dim);border:1px solid var(--gold-line);border-radius:10px;padding:13px 15px;color:var(--ink-soft)}
.voyage-summary b{color:var(--gold-soft)}

/* ---- Charter mode selector (dockside vs underway) ---------------------- */
.mode-select{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0}
@media(max-width:520px){.mode-select{grid-template-columns:1fr}}
.mode-opt{
  text-align:left;border:1px solid var(--line-2);background:var(--panel-2);border-radius:13px;padding:18px;
  cursor:pointer;transition:all .18s;display:flex;gap:13px;align-items:flex-start;color:var(--ink);
}
.mode-opt:hover{border-color:var(--gold-line)}
.mode-opt.on{border-color:var(--gold);background:var(--gold-dim)}
.mode-opt .m-ic{font-size:1.5rem;line-height:1}
.mode-opt .m-name{font-weight:600;font-size:.98rem}
.mode-opt .m-desc{font-size:.81rem;color:var(--muted);margin-top:3px;font-weight:300}
.mode-opt .m-rate{font-size:.84rem;font-weight:600;color:var(--gold-soft);margin-top:8px}
.mode-note{font-size:.84rem;color:var(--muted);background:var(--panel-2);border-radius:10px;padding:11px 13px;margin-bottom:6px}

/* ---- Services ----------------------------------------------------------- */
.services{display:grid;grid-template-columns:1fr 1fr;gap:13px}
@media(max-width:520px){.services{grid-template-columns:1fr}}
.service{
  border:1px solid var(--line-2);border-radius:12px;padding:15px;cursor:pointer;transition:all .16s;
  display:flex;gap:13px;align-items:flex-start;background:var(--panel-2);
}
.service:hover{border-color:var(--gold-line)}
.service.on{border-color:var(--gold);background:var(--gold-dim)}
.service .s-ic{width:40px;height:40px;border-radius:10px;background:var(--panel-3);display:grid;place-items:center;font-size:1.2rem;flex:none}
.service .s-name{font-weight:600;font-size:.92rem}
.service .s-desc{font-size:.78rem;color:var(--muted);margin:3px 0 5px;font-weight:300}
.service .s-price{font-size:.82rem;font-weight:600;color:var(--gold-soft)}
.service .s-check{margin-left:auto;width:22px;height:22px;border-radius:999px;border:1.5px solid var(--line-2);flex:none;display:grid;place-items:center;color:#0a0c0f}
.service.on .s-check{background:var(--gold);border-color:var(--gold)}

/* ---- Price summary (booking) ------------------------------------------- */
.summary-lines{margin:16px 0}
.summary-lines .ln{display:flex;justify-content:space-between;font-size:.89rem;color:var(--ink-soft);padding:7px 0}
.summary-lines .ln .muted{color:var(--muted)}
.summary-lines .tot{border-top:1px solid var(--line);margin-top:8px;padding-top:13px;font-weight:700;font-size:1.05rem;color:var(--ink)}
.summary-lines .tot span:last-child{color:var(--gold-soft)}
.note{font-size:.77rem;color:var(--muted);text-align:center;margin-top:13px;font-weight:300}

/* ---- Toast -------------------------------------------------------------- */
.toast{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(140%);
  background:var(--panel);color:var(--ink);border:1px solid var(--gold-line);padding:14px 24px;border-radius:12px;box-shadow:var(--shadow-lg);
  font-size:.9rem;font-weight:500;z-index:100;transition:transform .34s cubic-bezier(.2,.8,.2,1);max-width:90vw;
}
.toast.show{transform:translateX(-50%) translateY(0)}

/* ---- Footer ------------------------------------------------------------- */
.site-footer{background:#07090b;color:var(--ink-soft);margin-top:80px;border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:36px;padding:64px 0 40px}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr 1fr}}
.site-footer .brand{color:var(--ink)}
.site-footer h5{color:var(--ink);font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;margin:0 0 16px;font-weight:600}
.site-footer p{color:var(--muted);font-weight:300}
.site-footer a{display:block;color:var(--muted);font-size:.88rem;padding:6px 0;font-weight:300}
.site-footer a:hover{color:var(--gold-soft)}
.footer-bottom{border-top:1px solid var(--line);padding:22px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.82rem;color:var(--muted)}

/* ---- Modal (checkout) --------------------------------------------------- */
.modal-back{position:fixed;inset:0;background:rgba(4,6,8,.72);backdrop-filter:blur(6px);z-index:90;display:none;align-items:center;justify-content:center;padding:20px}
.modal-back.show{display:flex}
.modal{background:var(--panel);border:1px solid var(--line-2);border-radius:18px;max-width:470px;width:100%;padding:36px;box-shadow:var(--shadow-lg);text-align:center}
.modal .check{width:64px;height:64px;border-radius:999px;background:var(--gold-dim);color:var(--gold-soft);display:grid;place-items:center;margin:0 auto 20px;border:1px solid var(--gold-line)}
.modal h3{font-family:var(--serif);font-size:1.6rem;font-weight:400}
.modal .muted{color:var(--muted);font-weight:300}
.modal .recap{text-align:left;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:17px;margin:20px 0;font-size:.89rem}
.modal .recap .ln{display:flex;justify-content:space-between;padding:5px 0;color:var(--ink-soft)}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* ==========================================================================
   HOST DASHBOARD
   ========================================================================== */
.host-hero{background:linear-gradient(135deg,#0e1218,#12161c);color:var(--ink);padding:52px 0;border-bottom:1px solid var(--line)}
.host-hero h1{color:var(--ink);font-size:2.2rem;margin:0 0 8px}
.host-hero p{margin:0;color:var(--muted);max-width:660px;font-weight:300}
.host-wrap{display:grid;grid-template-columns:1fr 350px;gap:40px;align-items:start;padding:40px 0 72px}
@media(max-width:960px){.host-wrap{grid-template-columns:1fr}}
.host-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:28px;margin-bottom:24px}
.host-card h2{font-family:var(--font);font-size:1.2rem;font-weight:600;margin:0 0 4px}
.host-card .hint{color:var(--muted);font-size:.87rem;margin:0 0 20px;font-weight:300}
.host-card h2 .step{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:999px;background:var(--gold);color:#0a0c0f;font-size:.78rem;font-weight:700;margin-right:10px;vertical-align:middle}

.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:520px){.field-row{grid-template-columns:1fr}}
.f label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:8px}
.f input,.f select{
  width:100%;padding:12px 14px;border:1px solid var(--line-2);border-radius:10px;font-family:inherit;
  font-size:.92rem;color:var(--ink);outline:none;background:var(--panel-2);transition:border .16s;
}
.f input:focus,.f select:focus{border-color:var(--gold)}
.f select option{background:#12161c}
.f .prefix{position:relative}
.f .prefix input{padding-left:28px}
.f .prefix::before{content:"$";position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--gold-soft);font-size:.9rem}
.f{margin-bottom:16px}

/* ledger table */
.ledger{width:100%;border-collapse:collapse;margin-top:6px}
.ledger th{text-align:left;font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line);font-weight:600}
.ledger td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.ledger td input,.ledger td select{width:100%;padding:9px 11px;border:1px solid var(--line-2);border-radius:8px;font-family:inherit;font-size:.87rem;outline:none;background:var(--panel-2);color:var(--ink)}
.ledger td input:focus,.ledger td select:focus{border-color:var(--gold)}
.ledger td select option{background:#12161c}
.ledger .amt{width:130px}
.ledger .per{width:126px}
.ledger .del{width:38px}
.ledger .del button{border:none;background:rgba(224,138,134,.14);color:var(--danger);border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:1rem}
.ledger .del button:hover{background:rgba(224,138,134,.26)}
.ledger tfoot td{font-weight:700;color:var(--gold-soft);border-bottom:none;padding-top:14px}
.add-row{margin-top:16px}

/* host summary sidebar */
.host-summary{position:sticky;top:100px;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:26px}
.host-summary h3{font-family:var(--font);font-size:1.05rem;font-weight:600;margin:0 0 4px}
.host-summary .hint{color:var(--muted);font-size:.84rem;font-weight:300}
.host-summary .pl{margin:14px 0}
.host-summary .pl .ln{display:flex;justify-content:space-between;font-size:.89rem;padding:7px 0;color:var(--ink-soft)}
.host-summary .pl .ln .muted{color:var(--muted)}
.host-summary .pl .ln.pos span:last-child{color:var(--success);font-weight:700}
.host-summary .pl .ln.neg span:last-child{color:var(--danger);font-weight:700}
.host-summary .pl .tot{border-top:1px solid var(--line);margin-top:6px;padding-top:13px;font-weight:700;font-size:1.05rem;color:var(--ink)}
.assume{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:13px;font-size:.82rem;color:var(--muted);margin-bottom:14px;font-weight:300}
.assume input{width:56px;border:1px solid var(--line-2);border-radius:7px;padding:5px 6px;font-family:inherit;text-align:center;background:var(--panel);color:var(--ink)}
.saved-flag{font-size:.82rem;color:var(--success);text-align:center;margin-top:12px;min-height:1em}
.margin-badge{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.03em;padding:4px 12px;border-radius:999px;background:var(--gold-dim);color:var(--gold-soft);border:1px solid var(--gold-line)}

/* ---- listing editor extras --------------------------------------------- */
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}
@media(max-width:560px){.grid3{grid-template-columns:1fr}}
.f textarea{
  width:100%;padding:13px 14px;border:1px solid var(--line-2);border-radius:10px;font-family:inherit;
  font-size:.92rem;color:var(--ink);outline:none;background:var(--panel-2);resize:vertical;min-height:130px;line-height:1.65;
}
.f textarea:focus{border-color:var(--gold)}
.char-count{font-size:.73rem;color:var(--muted);text-align:right;margin-top:6px}

/* amenities editor */
.amen-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.amen-row{display:flex;gap:8px;align-items:center}
.amen-row input{flex:1;padding:10px 12px;border:1px solid var(--line-2);border-radius:9px;background:var(--panel-2);color:var(--ink);font-family:inherit;font-size:.9rem;outline:none}
.amen-row input:focus{border-color:var(--gold)}
.amen-row .rm{border:none;background:rgba(224,138,134,.14);color:var(--danger);border-radius:8px;width:36px;height:36px;cursor:pointer;font-size:1rem;flex:none}
.amen-row .rm:hover{background:rgba(224,138,134,.26)}

/* captain — editor & guest */
.captain-edit{display:flex;gap:24px;align-items:flex-start}
@media(max-width:560px){.captain-edit{flex-direction:column;align-items:stretch}}
.cap-photo-wrap{display:flex;flex-direction:column;gap:10px;align-items:center;flex:none}
.cap-photo{width:120px;height:120px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line-2);background-size:cover;background-position:center;display:grid;place-items:center;color:var(--muted);font-size:.72rem;text-align:center;flex:none}
.captain-card{display:flex;gap:24px;align-items:flex-start}
@media(max-width:560px){.captain-card{flex-direction:column}}
.captain-card .cap-photo{width:104px;height:104px}
.captain-card .cap-name{font-family:var(--serif);font-size:1.35rem;font-weight:400}
.captain-card .cap-meta{color:var(--gold-soft);font-size:.88rem;margin-top:5px;display:flex;gap:12px;flex-wrap:wrap}
.captain-card .cap-bio{color:var(--ink-soft);margin:12px 0 0;font-weight:300}

/* compliance document rows */
.doc-list{display:flex;flex-direction:column;gap:12px}
.doc-row{display:flex;align-items:center;gap:14px;justify-content:space-between;border:1px solid var(--line-2);border-radius:12px;padding:14px 16px;background:var(--panel-2)}
.doc-row .doc-name{font-weight:600;font-size:.92rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.doc-row .doc-sub{font-size:.8rem;color:var(--muted);margin-top:3px;font-weight:300;word-break:break-word}
.doc-actions{display:flex;gap:14px;align-items:center;white-space:nowrap}
.doc-row label.doc-up{cursor:pointer;flex:none}
.link-btn.danger{color:var(--danger)}
.link-btn.danger:hover{color:#f0a6a2}

/* photo uploader */
.dropzone{border:1.5px dashed var(--line-2);border-radius:12px;padding:34px 20px;text-align:center;color:var(--muted);cursor:pointer;background:var(--panel-2);transition:border .16s,background .16s}
.dropzone:hover{border-color:var(--gold);background:var(--panel-3)}
.dropzone.drag{border-color:var(--gold);background:var(--gold-dim)}
.dropzone .dz-ic{font-size:1.7rem;margin-bottom:8px}
.dropzone b{color:var(--gold-soft)}
.dropzone .dz-sub{font-size:.8rem;margin-top:5px;font-weight:300}
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}
@media(max-width:620px){.photo-grid{grid-template-columns:repeat(2,1fr)}}
.photo-grid .ph{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--panel-2)}
.photo-grid .ph img{width:100%;height:100%;object-fit:cover}
.photo-grid .ph .rm{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:999px;border:none;background:rgba(10,12,15,.72);color:#fff;cursor:pointer;display:grid;place-items:center;font-size:.9rem;backdrop-filter:blur(4px)}
.photo-grid .ph .rm:hover{background:var(--danger);color:#0a0c0f}
.photo-grid .ph .cover{position:absolute;bottom:6px;left:6px;background:var(--gold);color:#0a0c0f;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px}

/* host availability calendar */
.host-cal{max-width:430px}
.host-cal .cal-day.avail{color:var(--ink-soft);cursor:pointer}
.host-cal .cal-day.avail:hover{background:var(--gold-dim);border-color:var(--gold-line)}
.host-cal .cal-day.blocked{background:rgba(224,138,134,.16);color:var(--danger);border-color:rgba(224,138,134,.32);text-decoration:none;cursor:pointer}
.cal-tools{display:flex;gap:14px;align-items:center;margin-top:16px;flex-wrap:wrap}
.cal-count{font-size:.85rem;color:var(--muted)}
.cal-count b{color:var(--danger);font-weight:600}
.link-btn{background:none;border:none;color:var(--gold-soft);font-family:inherit;font-size:.85rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}
.link-btn:hover{color:var(--gold)}
.back-link{display:inline-block;color:var(--muted);font-size:.85rem;margin-bottom:14px;letter-spacing:.02em}
.back-link:hover{color:var(--gold-soft)}

/* ==========================================================================
   HOST PORTFOLIO DASHBOARD
   ========================================================================== */
.dash-hero{background:linear-gradient(135deg,#0e1218,#12161c);border-bottom:1px solid var(--line);padding:52px 0 40px}
.dash-hero .top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.dash-hero h1{font-size:2.2rem;margin:0 0 8px}
.dash-hero p{margin:0;color:var(--muted);max-width:560px;font-weight:300}
.stats-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 22px;min-width:150px;flex:1}
.stat .v{font-size:1.6rem;font-weight:600;color:var(--gold-soft);line-height:1.1}
.stat .k{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:4px}

.tabs-lg{display:flex;border-bottom:1px solid var(--line);margin:34px 0 30px;gap:28px}
.tabs-lg button{background:none;border:none;color:var(--muted);font-family:inherit;font-weight:600;font-size:.98rem;padding:0 0 14px;cursor:pointer;border-bottom:2px solid transparent;transition:color .16s}
.tabs-lg button:hover{color:var(--ink-soft)}
.tabs-lg button.active{color:var(--ink);border-bottom-color:var(--gold)}
.dash-panel{display:none}
.dash-panel.active{display:block}

.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.pf-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.pf-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--gold-line)}
.pf-card .thumb{aspect-ratio:16/10;position:relative;overflow:hidden}
.pf-card .thumb img{width:100%;height:100%;object-fit:cover}
.pf-card .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(10,12,15,.5))}
.pf-status{position:absolute;top:12px;left:12px;z-index:2;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:5px 11px;border-radius:999px;backdrop-filter:blur(6px)}
.pf-status.pub{background:rgba(198,168,107,.9);color:#0a0c0f}
.pf-status.draft{background:rgba(10,12,15,.7);color:var(--ink-soft);border:1px solid var(--line-2)}
.pf-body{padding:17px 18px 18px;display:flex;flex-direction:column;flex:1}
.pf-body h3{font-family:var(--serif);font-weight:400;font-size:1.25rem;margin:0}
.pf-body .loc{color:var(--muted);font-size:.85rem;margin:3px 0 0;font-weight:300}
.pf-stats{display:flex;gap:18px;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}
.pf-stats .v{color:var(--ink);font-weight:600;font-size:.95rem}
.pf-stats .lbl{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}
.pf-actions{display:flex;gap:10px;margin-top:16px}
.pf-actions .btn{flex:1;padding:10px 14px;font-size:.85rem}

.cal-switch{max-width:340px;margin-bottom:24px}
.dash-cal-wrap{display:grid;grid-template-columns:430px 1fr;gap:44px;align-items:start}
@media(max-width:820px){.dash-cal-wrap{grid-template-columns:1fr}}
.dash-cal-side .host-summary{position:static}

/* ---- multi-calendar (all listings across a date range) ----------------- */
.mcal-views{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.mcal-views .mv{border:1px solid var(--line-2);background:transparent;color:var(--ink-soft);border-radius:999px;padding:7px 16px;font-family:inherit;font-size:.84rem;font-weight:600;cursor:pointer;transition:all .15s}
.mcal-views .mv:hover{border-color:var(--gold)}
.mcal-views .mv.active{background:var(--gold);color:#0a0c0f;border-color:var(--gold)}
.mcal-mh{padding:9px 10px;font-size:.72rem;font-weight:700;letter-spacing:.03em;color:var(--gold-soft);background:var(--panel-2);border-right:1px solid var(--line-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky;top:0}
.mcal-daynums .mcal-name{background:var(--panel)}
.mcal-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.mcal-range{font-weight:600;font-size:.98rem;min-width:190px}
.mcal-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.mcal-row{display:flex;border-bottom:1px solid var(--line)}
.mcal-row:last-child{border-bottom:none}
.mcal-name{width:210px;min-width:210px;position:sticky;left:0;z-index:2;background:var(--panel);display:flex;align-items:center;gap:10px;padding:10px 12px;border-right:1px solid var(--line-2);font-size:.86rem;font-weight:600}
.mcal-name img{width:42px;height:31px;border-radius:6px;object-fit:cover;flex:none}
.mcal-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mcal-head .mcal-name{background:var(--panel-2)}
.mcal-dh{width:46px;min-width:46px;text-align:center;padding:8px 0;border-right:1px solid var(--line);background:var(--panel-2)}
.mcal-dh .dow{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.mcal-dh .dnum{display:block;font-weight:700;color:var(--ink-soft);font-size:.82rem;margin-top:2px}
.mcal-dh.we .dnum{color:var(--gold-soft)}
.mcal-dh.m1{border-left:2px solid var(--gold-line)}
.mcal-cell{width:46px;min-width:46px;height:48px;border-right:1px solid var(--line);cursor:pointer;transition:background .1s}
.mcal-cell.m1{border-left:2px solid var(--gold-line)}
.mcal-cell:hover{background:var(--panel-3)}
.mcal-cell.blocked{background:rgba(224,138,134,.18)}
.mcal-cell.past{background:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(255,255,255,.03) 5px,rgba(255,255,255,.03) 10px);cursor:not-allowed}
.mcal-cell.sel{background:var(--gold-dim);box-shadow:inset 0 0 0 2px var(--gold)}
.mcal-legend{display:flex;gap:18px;margin-top:14px;font-size:.76rem;color:var(--muted);flex-wrap:wrap}
.mcal-legend span{display:flex;align-items:center;gap:6px}
.mcal-legend i{width:14px;height:14px;border-radius:4px;display:inline-block}
.mcal-bar{display:flex;align-items:center;gap:12px;background:var(--panel-2);border:1px solid var(--gold-line);border-radius:12px;padding:12px 16px;margin-top:16px;flex-wrap:wrap}
.mcal-bar .sel-info{font-size:.9rem;font-weight:600}
.mcal-bar .sel-info b{color:var(--gold-soft)}

/* ---- checkout ---------------------------------------------------------- */
.checkout-wrap{display:grid;grid-template-columns:1fr 400px;gap:48px;align-items:start;padding:30px 0 72px}
@media(max-width:960px){.checkout-wrap{grid-template-columns:1fr}}
.co-step{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-weight:700;margin-bottom:8px}
.co-summary{position:sticky;top:100px;background:var(--panel);border:1px solid var(--line-2);border-radius:14px;box-shadow:var(--shadow-md);overflow:hidden}
.co-summary .co-head{display:flex;gap:14px;padding:18px;border-bottom:1px solid var(--line)}
.co-summary .co-head img{width:104px;height:78px;border-radius:10px;object-fit:cover;flex:none}
.co-summary .co-title{font-family:var(--serif);font-size:1.15rem;font-weight:400}
.co-summary .co-loc{color:var(--muted);font-size:.84rem;margin-top:3px}
.co-summary .co-body{padding:18px}
.co-badge{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 10px;border-radius:999px;margin-top:8px}
.co-badge.instant{background:var(--gold-dim);color:var(--gold-soft);border:1px solid var(--gold-line)}
.co-badge.request{background:var(--panel-3);color:var(--ink-soft)}
.co-policy{font-size:.84rem;color:var(--muted);font-weight:300;line-height:1.6}
.co-policy b{color:var(--ink)}
.stepper{counter-reset:s;list-style:none;padding:0;margin:0}

/* ---- content / legal pages --------------------------------------------- */
.doc-hero{background:linear-gradient(135deg,#0e1218,#12161c);border-bottom:1px solid var(--line);padding:60px 0}
.doc-hero .container{max-width:820px}
.doc-hero .eyebrow-dark{margin-bottom:12px}
.doc-hero h1{font-size:2.4rem;margin:0 0 8px}
.doc-hero p{color:var(--muted);font-weight:300;margin:0;max-width:640px}
.doc-wrap{max-width:820px;margin:0 auto;padding:48px 28px 80px}
.doc-wrap h2{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin:38px 0 12px}
.doc-wrap h2:first-child{margin-top:0}
.doc-wrap h3{font-size:1.05rem;font-weight:600;margin:24px 0 8px}
.doc-wrap p{color:var(--ink-soft);font-weight:300;line-height:1.8;margin:0 0 14px}
.doc-wrap ul{padding-left:22px;margin:0 0 16px}
.doc-wrap li{color:var(--ink-soft);font-weight:300;line-height:1.8;margin-bottom:6px}
.doc-wrap a{color:var(--gold-soft);text-decoration:underline;text-underline-offset:3px}
.doc-wrap .updated{color:var(--muted);font-size:.85rem;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.doc-wrap strong{color:var(--ink);font-weight:600}

/* FAQ accordion */
.faq-cats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}
.faq-list{margin-bottom:20px}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;background:none;border:none;color:var(--ink);font-family:inherit;font-size:1rem;font-weight:600;padding:20px 0;cursor:pointer;display:flex;justify-content:space-between;gap:14px;align-items:center}
.faq-q .chev{transition:transform .2s ease;color:var(--gold-soft);flex:none}
.faq-item.open .faq-q .chev{transform:rotate(180deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .28s ease}
.faq-item.open .faq-a{max-height:500px}
.faq-a p{color:var(--ink-soft);font-weight:300;line-height:1.75;padding:0 0 20px;margin:0}

/* about page */
.about-hero{position:relative;color:#fff;overflow:hidden;padding:110px 0;
  background:linear-gradient(180deg,rgba(6,8,11,.4),rgba(6,8,11,.82)),url("https://images.unsplash.com/photo-1544551763-46a013bb70d5?q=80&w=2000&auto=format&fit=crop") center/cover}
.about-hero .container{max-width:820px}
.about-hero .eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:.7rem;color:var(--gold-soft);font-weight:700;margin-bottom:16px}
.about-hero h1{color:#fff;font-size:clamp(2.2rem,4vw,3.4rem);margin:0 0 12px}
.about-hero p{color:rgba(255,255,255,.85);font-weight:300;font-size:1.1rem;max-width:600px}
.about-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:40px 0}
@media(max-width:640px){.about-stats{grid-template-columns:1fr 1fr}}
.about-stat{text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 16px}
.about-stat .v{font-family:var(--serif);font-size:2rem;color:var(--gold-soft)}
.about-stat .k{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;margin-top:6px}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0}
@media(max-width:720px){.value-grid{grid-template-columns:1fr}}
.value-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px}
.value-card h3{margin:0 0 8px;font-size:1.05rem}
.value-card p{margin:0;color:var(--muted);font-size:.92rem;font-weight:300}

/* ---- auth-aware header bits -------------------------------------------- */
.nav-hostlink{font-weight:500;color:var(--ink-soft);font-size:.9rem}
.nav-hostlink:hover{color:var(--gold-soft)}
.nav-login{font-weight:600;color:var(--ink);font-size:.9rem}
.nav-login:hover{color:var(--gold-soft)}
a.avatar{text-decoration:none;transition:border-color .16s}
a.avatar:hover{border-color:var(--gold)}
.avatar.lg{width:48px;height:48px;font-size:1rem}
button.avatar{border:1px solid var(--line-2);cursor:pointer;font-family:inherit;color:var(--gold-soft)}
button.avatar:hover{border-color:var(--gold)}

/* account dropdown */
.user-menu{position:relative}
.user-dropdown{position:absolute;right:0;top:52px;background:var(--panel);border:1px solid var(--line-2);border-radius:13px;box-shadow:var(--shadow-lg);min-width:216px;padding:8px;display:none;z-index:70}
.user-dropdown.open{display:block}
.user-dropdown a{display:block;padding:10px 14px;border-radius:8px;color:var(--ink-soft);font-size:.9rem;font-weight:500}
.user-dropdown a:hover{background:var(--panel-2);color:var(--ink)}
.user-dropdown .ud-name{padding:6px 14px 10px;font-weight:600;color:var(--ink);font-size:.92rem}
.ud-sep{height:1px;background:var(--line);margin:6px 6px}

/* saved-heart state on cards */
.card .fav.on{color:var(--gold);background:rgba(198,168,107,.16);border-color:var(--gold-line)}
.card .fav.on svg{fill:var(--gold)}

/* empty states */
.empty-state{text-align:center;padding:70px 24px;border:1px dashed var(--line-2);border-radius:16px;background:var(--panel)}
.empty-state .es-ic{font-size:2rem;margin-bottom:12px}
.empty-state h3{font-family:var(--serif);font-weight:400;font-size:1.4rem;margin:0 0 6px}
.empty-state p{color:var(--muted);font-weight:300;margin:0 0 18px}

/* traveler page tabs reuse tabs-lg; trips list reuse res-row/panel-card */
.trip-card{display:flex;gap:18px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px;transition:border-color .18s}
.trip-card:hover{border-color:var(--gold-line)}
.trip-card img{width:120px;height:88px;border-radius:10px;object-fit:cover;flex:none}
@media(max-width:520px){.trip-card img{width:84px;height:64px}}
.trip-card .tc-main{flex:1;min-width:0}
.trip-card .tc-title{font-family:var(--serif);font-size:1.2rem;font-weight:400}
.trip-card .tc-sub{color:var(--muted);font-size:.86rem;margin-top:3px}
.trip-card .tc-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:.82rem;color:var(--ink-soft)}
.trip-card .tc-right{text-align:right;white-space:nowrap}
.trip-card .tc-total{font-weight:700;color:var(--gold-soft);font-size:1.05rem}
@media(max-width:520px){.trip-card{flex-wrap:wrap}.trip-card .tc-right{text-align:left}}

/* ==========================================================================
   AUTH PAGES (signup / login)
   ========================================================================== */
.auth{min-height:calc(100vh - 76px);display:grid;grid-template-columns:1.05fr .95fr}
@media(max-width:900px){.auth{grid-template-columns:1fr}}
.auth-aside{position:relative;color:#fff;overflow:hidden;display:flex;align-items:flex-end;
  background:linear-gradient(180deg,rgba(6,8,11,.35),rgba(6,8,11,.82)),url("https://images.unsplash.com/photo-1567899378494-47b22a2ae96a?q=80&w=1600&auto=format&fit=crop") center/cover}
@media(max-width:900px){.auth-aside{display:none}}
.auth-aside .quote{padding:56px 54px}
.auth-aside .quote .eyebrow{text-transform:uppercase;letter-spacing:.3em;font-size:.68rem;color:var(--gold-soft);margin-bottom:16px}
.auth-aside .quote h2{color:#fff;font-size:2rem;max-width:420px;line-height:1.15}
.auth-aside .quote p{color:rgba(255,255,255,.82);max-width:400px;font-weight:300;margin-top:10px}
.auth-form{display:flex;align-items:center;justify-content:center;padding:56px 40px}
.auth-inner{width:100%;max-width:460px}
.auth-inner h1{font-size:2rem;margin:0 0 6px}
.auth-inner .sub{color:var(--muted);margin:0 0 26px;font-weight:300}
.auth-inner .swap{margin-top:20px;font-size:.9rem;color:var(--muted);text-align:center}
.auth-inner .swap a{color:var(--gold-soft);font-weight:600}
.role-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}
.role-pick .r{border:1px solid var(--line-2);background:var(--panel-2);border-radius:12px;padding:16px;cursor:pointer;text-align:left;transition:all .16s;color:var(--ink)}
.role-pick .r:hover{border-color:var(--gold-line)}
.role-pick .r.on{border-color:var(--gold);background:var(--gold-dim)}
.role-pick .r .t{font-weight:600;font-size:.98rem}
.role-pick .r .d{font-size:.8rem;color:var(--muted);margin-top:3px;font-weight:300}
.section-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-weight:700;margin:26px 0 14px;padding-top:22px;border-top:1px solid var(--line)}
.host-only{display:none}
.host-only.show{display:block}

/* ==========================================================================
   HOST CONSOLE LAYOUT
   ========================================================================== */
.console{display:grid;grid-template-columns:256px 1fr;align-items:start}
@media(max-width:860px){.console{grid-template-columns:1fr}}
.console-side{border-right:1px solid var(--line);min-height:calc(100vh - 76px);position:sticky;top:76px}
@media(max-width:860px){.console-side{position:static;min-height:0;border-right:none;border-bottom:1px solid var(--line)}}
.side-inner{padding:22px 16px;display:flex;flex-direction:column;height:100%}
.side-user{display:flex;align-items:center;gap:12px;padding:8px 10px 18px;border-bottom:1px solid var(--line);margin-bottom:14px}
.su-name{font-weight:600;font-size:.95rem}
.su-sub{font-size:.76rem;color:var(--muted)}
.side-nav{display:flex;flex-direction:column;gap:2px}
@media(max-width:860px){.side-nav{flex-direction:row;overflow-x:auto}}
.side-nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;color:var(--ink-soft);font-weight:500;font-size:.92rem;white-space:nowrap}
.side-nav a:hover{background:var(--panel-2);color:var(--ink)}
.side-nav a.active{background:var(--gold-dim);color:var(--gold-soft)}
.side-nav a .ic{width:20px;height:20px;display:grid;place-items:center}
.side-nav a .ic svg{width:20px;height:20px}
.side-foot{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
@media(max-width:860px){.side-foot{display:none}}
.side-foot a{color:var(--muted);font-size:.85rem}
.side-foot a:hover{color:var(--gold-soft)}
.console-main{padding:36px 42px;min-width:0}
@media(max-width:600px){.console-main{padding:26px 20px}}
.console-head{margin-bottom:28px}
.console-head h1{font-size:1.9rem;margin:0 0 6px}
.console-head p{color:var(--muted);margin:0;font-weight:300}
.eyebrow-hi{color:var(--gold);font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;margin-bottom:10px}

/* KPI cards */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:30px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:20px}
.kpi .v{font-size:1.7rem;font-weight:600;color:var(--gold-soft);line-height:1.05}
.kpi .k{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:6px}
.kpi .sub{font-size:.78rem;color:var(--muted);margin-top:8px}

.panel-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:22px}
.panel-card h3{font-size:1.15rem;font-weight:600;margin:0 0 4px}
.panel-card .hint{color:var(--muted);font-size:.86rem;margin:0 0 18px;font-weight:300}

/* reservation / list rows */
.res-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.res-row:last-child{border-bottom:none}
.res-row img{width:64px;height:48px;border-radius:8px;object-fit:cover;flex:none}
.res-row .r-main{flex:1;min-width:0}
.res-row .r-title{font-weight:600;font-size:.94rem}
.res-row .r-sub{font-size:.82rem;color:var(--muted)}
.res-row .r-amt{font-weight:700;color:var(--gold-soft);white-space:nowrap}
.pill{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:999px}
.pill.green{background:rgba(87,208,160,.14);color:var(--success)}
.pill.gold{background:var(--gold-dim);color:var(--gold-soft)}
.pill.grey{background:var(--panel-3);color:var(--muted)}

/* checklist */
.checklist{list-style:none;padding:0;margin:0}
.checklist li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.checklist li:last-child{border-bottom:none}
.checklist .box{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line-2);flex:none;display:grid;place-items:center;color:var(--success)}
.checklist li.done .box{background:var(--success);border-color:var(--success);color:#0a0c0f}
.checklist li.done span{color:var(--muted);text-decoration:line-through}
.checklist a{margin-left:auto;color:var(--gold-soft);font-size:.84rem;font-weight:600}

/* ==========================================================================
   MESSAGES
   ========================================================================== */
.msg-layout{display:grid;grid-template-columns:300px 1fr;border:1px solid var(--line);border-radius:14px;overflow:hidden;min-height:520px;background:var(--panel)}
@media(max-width:720px){.msg-layout{grid-template-columns:1fr}.msg-thread{display:none}.msg-layout.show-thread .conv-list{display:none}.msg-layout.show-thread .msg-thread{display:flex}}
.conv-list{border-right:1px solid var(--line);overflow-y:auto}
.conv{display:flex;gap:12px;padding:15px 16px;cursor:pointer;border-bottom:1px solid var(--line);transition:background .14s}
.conv:hover{background:var(--panel-2)}
.conv.active{background:var(--gold-dim)}
.conv .av{width:42px;height:42px;border-radius:999px;background:var(--panel-3);display:grid;place-items:center;font-weight:600;color:var(--gold-soft);flex:none}
.conv .c-main{flex:1;min-width:0}
.conv .c-top{display:flex;justify-content:space-between;gap:8px}
.conv .c-name{font-weight:600;font-size:.9rem}
.conv .c-time{font-size:.72rem;color:var(--muted);white-space:nowrap}
.conv .c-prev{font-size:.82rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.conv .dot{width:8px;height:8px;border-radius:999px;background:var(--gold);flex:none;align-self:center}
.msg-thread{display:flex;flex-direction:column}
.thread-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}
.thread-head .t-name{font-weight:600}
.thread-head .t-sub{font-size:.78rem;color:var(--muted)}
.thread-body{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;background:var(--bg)}
.bubble{max-width:74%;padding:11px 15px;border-radius:14px;font-size:.9rem;line-height:1.5}
.bubble.them{background:var(--panel-2);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}
.bubble.me{background:var(--gold);color:#0a0c0f;border-bottom-right-radius:4px;align-self:flex-end}
.bubble .b-time{font-size:.66rem;opacity:.7;margin-top:5px}
.composer{display:flex;gap:10px;padding:14px 16px;border-top:1px solid var(--line)}
.composer input{flex:1;background:var(--panel-2);border:1px solid var(--line-2);border-radius:999px;padding:12px 18px;color:var(--ink);font-family:inherit;font-size:.9rem;outline:none}
.composer input:focus{border-color:var(--gold)}
.back-to-list{display:none}
@media(max-width:720px){.back-to-list{display:inline;color:var(--gold-soft);cursor:pointer;font-size:.85rem}}

/* ==========================================================================
   FINANCIALS
   ========================================================================== */
.fin-two{display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start}
@media(max-width:820px){.fin-two{grid-template-columns:1fr}}
.payout-card{background:linear-gradient(140deg,#141a22,#10141a);border:1px solid var(--gold-line);border-radius:14px;padding:22px}
.payout-card .lbl{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.payout-card .big{font-size:2rem;font-weight:600;color:var(--gold-soft);margin:6px 0 2px}
.payout-card .method{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);font-size:.86rem;color:var(--ink-soft)}
.payout-card .method b{color:var(--ink)}
.txn{width:100%;border-collapse:collapse}
.txn th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:10px;border-bottom:1px solid var(--line)}
.txn td{padding:12px 10px;border-bottom:1px solid var(--line);font-size:.88rem}
.txn td.amt{text-align:right;font-weight:600}
.txn td.pos{color:var(--success)}
.txn td.neg{color:var(--danger)}

/* ==========================================================================
   SUPPORT
   ========================================================================== */
.support-grid{display:grid;grid-template-columns:1fr 300px;gap:22px;align-items:start}
@media(max-width:820px){.support-grid{grid-template-columns:1fr}}
.faq a{display:block;padding:13px 0;border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:.9rem}
.faq a:last-child{border-bottom:none}
.faq a:hover{color:var(--gold-soft)}
.ticket{padding:12px 0;border-bottom:1px solid var(--line)}
.ticket:last-child{border-bottom:none}
.ticket .tk-top{display:flex;justify-content:space-between;gap:10px}
.ticket .tk-subj{font-weight:600;font-size:.9rem}
.ticket .tk-meta{font-size:.78rem;color:var(--muted)}

/* ==========================================================================
   PROFILE
   ========================================================================== */
.profile-head{display:flex;align-items:center;gap:22px;margin-bottom:28px;flex-wrap:wrap}
.profile-head .pa{width:88px;height:88px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line-2);display:grid;place-items:center;font-size:1.9rem;font-weight:600;color:var(--gold-soft);flex:none}
.profile-head h1{margin:0 0 4px;font-size:1.9rem}
.profile-head .ph-sub{color:var(--muted);font-size:.9rem}
.verif{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.verif .v{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:5px 12px;color:var(--ink-soft)}
.verif .v svg{width:13px;height:13px;color:var(--success)}
.profile-cols{display:grid;grid-template-columns:1fr 320px;gap:26px;align-items:start}
@media(max-width:820px){.profile-cols{grid-template-columns:1fr