/* ============ TRIPSORB — Experience detail (v0.7.0) ============ */
.dwrap{padding:26px 0 70px}
.crumb{font-size:13px;color:var(--ts-slate);margin-bottom:16px;display:flex;gap:7px;flex-wrap:wrap}
.crumb a{color:var(--ts-slate)}.crumb a:hover{color:var(--ts-coral)}
.crumb .sep{opacity:.5}

.dhead{margin-bottom:18px}
.dhead .pill{display:inline-block;background:var(--ts-coral-50);color:var(--ts-coral-600);font-weight:700;font-size:11.5px;
  border-radius:999px;padding:5px 12px;margin-bottom:10px}
.dhead h1{font-family:var(--font-disp);font-weight:500;font-size:38px;line-height:1.08;letter-spacing:-.02em;margin:0 0 10px}
.dmeta{display:flex;gap:18px;flex-wrap:wrap;color:var(--ts-slate);font-size:14px}
.dmeta b{color:var(--ts-ink)}
.dmeta .rt{color:var(--ts-coral);font-weight:700}

/* gallery */
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:420px;margin-bottom:34px;border-radius:18px;overflow:hidden}
.gal .g{background:var(--ts-sand) center/cover no-repeat;background-image:linear-gradient(135deg,#FF9E6B,#FF5B41 55%,#9b4bd6)}
.gal .g0{grid-row:1/3}
.gal .g.has{background-image:none}
@media(max-width:780px){.gal{grid-template-columns:1fr 1fr;height:300px}.gal .g0{grid-column:1/3;grid-row:auto}.gal .g3,.gal .g4{display:none}}
@media(max-width:520px){.gal{grid-template-columns:1fr;height:240px}.gal .g:not(.g0){display:none}}

/* body layout */
.dgrid{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:start}
@media(max-width:900px){.dgrid{grid-template-columns:1fr}}
.dsec{padding-bottom:26px;margin-bottom:26px;border-bottom:1px solid var(--ts-line)}
.dsec h2{font-size:20px;font-weight:800;margin:0 0 12px}
.dsec p{color:var(--ts-slate);line-height:1.7;font-size:15.5px;white-space:pre-line}
.hl{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
@media(max-width:560px){.hl{grid-template-columns:1fr}}
.hl li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--ts-ink)}
.hl li i{color:var(--ts-lagoon-600);font-size:18px;flex:none;margin-top:1px}

/* booking card */
.bcard{position:sticky;top:90px;background:#fff;border:1px solid var(--ts-line);border-radius:18px;box-shadow:var(--sh-md);padding:22px}
.bcard .price{font-size:28px;font-weight:800;letter-spacing:-.01em}
.bcard .price small{font-size:13px;font-weight:400;color:var(--ts-slate)}
.bcard .meta{font-size:13.5px;color:var(--ts-slate);margin:14px 0;display:grid;gap:9px}
.bcard .meta .r{display:flex;justify-content:space-between}
.bcard .meta .r b{color:var(--ts-ink);font-weight:600}
.bcard .note{font-size:12px;color:var(--ts-slate);text-align:center;margin-top:12px}
.bcard hr{border:none;border-top:1px solid var(--ts-line);margin:16px 0}

/* simple location band */
.locband{height:160px;border-radius:14px;background:linear-gradient(120deg,#0FB5A6,#14213D);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff}
.locband i{font-size:30px;margin-right:10px;opacity:.9}
.locband .t{font-family:var(--font-disp);font-size:22px}

/* 404 */
.nf{text-align:center;padding:90px 0}
.nf h1{font-family:var(--font-disp);font-size:40px;margin:0 0 10px}
.nf p{color:var(--ts-slate);margin:0 0 22px}

/* ====== v0.7.3 rich detail sections ====== */
/* quick facts chips under title */
.facts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.fact{display:inline-flex;align-items:center;gap:7px;background:var(--ts-sand);border:1px solid var(--ts-line);
  border-radius:999px;padding:7px 14px;font-size:13px;color:var(--ts-ink)}
.fact i{color:var(--ts-coral);font-size:16px}

/* review scores */
.rev{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center}
@media(max-width:560px){.rev{grid-template-columns:1fr;gap:16px}}
.rev .big{text-align:center}
.rev .big .num{font-family:var(--font-disp);font-size:52px;line-height:1;color:var(--ts-ink)}
.rev .big .stars{color:var(--ts-coral);font-size:15px;letter-spacing:1px;margin-top:4px}
.rev .big .cnt{font-size:12.5px;color:var(--ts-slate);margin-top:5px}
.bars{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px}
@media(max-width:560px){.bars{grid-template-columns:1fr}}
.bar .lab{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px}
.bar .lab b{font-weight:700}
.bar .track{height:7px;border-radius:4px;background:var(--ts-line);overflow:hidden}
.bar .fill{height:100%;border-radius:4px;background:var(--ts-grad)}

/* program */
.prog{display:flex;flex-direction:column;gap:10px}
.prog details{border:1px solid var(--ts-line);border-radius:12px;overflow:hidden}
.prog summary{display:flex;align-items:center;gap:14px;padding:15px 16px;cursor:pointer;list-style:none;font-weight:700;font-size:14.5px}
.prog summary::-webkit-details-marker{display:none}
.prog summary .d{width:30px;height:30px;border-radius:8px;background:var(--ts-coral-50);color:var(--ts-coral-600);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex:none}
.prog summary .x{margin-left:auto;color:var(--ts-coral);font-size:18px}
.prog details[open] summary .x{transform:rotate(45deg)}
.prog .body{padding:0 16px 16px 60px;color:var(--ts-slate);font-size:14.5px;line-height:1.65;white-space:pre-line}

/* facilities */
.facs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 20px}
@media(max-width:680px){.facs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.facs{grid-template-columns:1fr}}
.facs .f{display:flex;align-items:center;gap:11px;font-size:14px;color:var(--ts-ink)}
.facs .f i{color:var(--ts-lagoon-600);font-size:20px;flex:none}

/* included / not included */
.incl{display:grid;grid-template-columns:1fr 1fr;gap:14px 40px}
@media(max-width:680px){.incl{grid-template-columns:1fr}}
.incl ul{list-style:none;padding:0;margin:0}
.incl li{display:flex;gap:9px;align-items:flex-start;font-size:14.5px;margin-bottom:10px;color:var(--ts-ink)}
.incl .yes i{color:var(--ts-lagoon-600)}
.incl .no i{color:#C0563F}
.incl h3{font-size:15px;margin:0 0 14px}

/* ====== v0.7.4 instructors + packages ====== */
.insts{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}
@media(max-width:640px){.insts{grid-template-columns:1fr}}
.inst{display:flex;gap:14px;align-items:flex-start}
.inst .av{width:54px;height:54px;border-radius:50%;flex:none;background:var(--ts-grad);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;letter-spacing:.5px}
.inst .nm{font-weight:700;font-size:15px}
.inst .ro{font-size:12.5px;color:var(--ts-coral-600);font-weight:600;margin-top:1px}
.inst p{font-size:13.5px;color:var(--ts-slate);line-height:1.55;margin:7px 0 0}

.pkgs{display:flex;flex-direction:column;gap:9px;margin:14px 0 4px}
.pkg{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1.5px solid var(--ts-line);
  border-radius:12px;padding:11px 14px;cursor:pointer;transition:.14s}
.pkg:hover{border-color:var(--ts-coral-200,#f6c3b8)}
.pkg.sel{border-color:var(--ts-coral);background:var(--ts-coral-50)}
.pkg .pn{font-weight:700;font-size:13.5px}
.pkg .pn small{display:block;color:var(--ts-slate);font-weight:400;font-size:12px;margin-top:1px}
.pkg .pp{font-weight:800;font-size:15px;white-space:nowrap}

/* ---- Departures / upcoming dates ---- */
.deps{display:flex;flex-direction:column;gap:10px}
.dep{display:flex;align-items:center;gap:13px;width:100%;text-align:left;cursor:pointer;
  border:1.5px solid var(--ts-line);border-radius:14px;padding:13px 15px;background:#fff;
  font:inherit;color:var(--ts-ink);transition:border-color .14s,box-shadow .14s,background .14s}
.dep:hover{border-color:var(--ts-coral-200,#f6c3b8)}
.dep.on{border-color:var(--ts-coral);background:var(--ts-coral-50);box-shadow:0 0 0 3px rgba(255,91,65,.1)}
.dep.soldout{opacity:.55;cursor:not-allowed}
.dep-cal{flex:0 0 auto;width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  background:var(--tac-clay,#f2ebde);color:var(--ts-coral);font-size:20px}
.dep.on .dep-cal{background:linear-gradient(180deg,#ff7d5e,#ff5b41);color:#fff}
.dep-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.dep-date{font-weight:700;font-size:14.5px}
.dep-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dep-nights{font-size:12px;color:var(--ts-slate)}
.dep-spots{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;
  background:var(--ts-lagoon-50,#e7f4f1);color:var(--ts-lagoon-600,#2d9c8e)}
.dep-spots.low{background:#fdece7;color:var(--ts-coral)}
.dep-spots.out{background:#f1eee9;color:var(--ts-slate)}
.dep-spots.early{background:linear-gradient(180deg,#fff3e0,#ffe6c7);color:#b9791f}
.dep-was{text-decoration:line-through;color:var(--ts-slate);font-weight:600;font-size:13px;margin-right:2px}
.dep-price{flex:0 0 auto;font-weight:800;font-size:15px;white-space:nowrap}
.dep-check{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  border:1.5px solid var(--ts-line);color:transparent;font-size:13px;transition:.14s}
.dep.on .dep-check{background:var(--ts-coral);border-color:var(--ts-coral);color:#fff}

/* ---- Phase 11: review list ---- */
.rvlist{margin-top:24px;border-top:1px solid var(--ts-line)}
.rvitem{padding:20px 0;border-bottom:1px solid var(--ts-line)}
.rvitem:last-child{border-bottom:0}
.rvtop{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rvname{font-weight:700;color:var(--ts-ink);font-size:15px}
.rvstars{color:var(--ts-amber);font-size:15px;letter-spacing:1px;flex:none}
.rvstars .ti-star{color:var(--ts-line)}
.rvtitle{font-weight:700;color:var(--ts-ink);margin-top:8px;font-size:15px}
.rvbody{margin:6px 0 0;color:var(--ts-slate);line-height:1.6;font-size:14.5px}
.rvdate{margin-top:8px;font-size:12.5px;color:var(--ts-slate)}
.rvreply{margin-top:14px;margin-left:8px;padding:13px 16px;background:var(--ts-sand);border-radius:12px;border-left:3px solid var(--ts-lagoon)}
.rvreplyh{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13px;color:var(--ts-lagoon-600)}
.rvreply p{margin:6px 0 0;color:var(--ts-ink);font-size:14px;line-height:1.55}

/* ============================================================
   Tactile depth pass — v0.179.1
   Additive layered shadows + hover lift, matching the site's
   tactile design language. Shadows/transforms/gradients only —
   no layout changes.
   ============================================================ */
.gal{box-shadow:0 2px 6px rgba(20,33,61,.06),0 34px 64px -34px rgba(20,33,61,.55)}
.gal .g{transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.gal .g:hover{transform:scale(1.045)}

.bcard{background:linear-gradient(180deg,#ffffff,#fffdfb);overflow:hidden;
  box-shadow:0 1px 2px rgba(20,33,61,.05),0 5px 12px rgba(20,33,61,.06),0 34px 60px -30px rgba(20,33,61,.5)}
.bcard::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#FF5B41,#FF9E6B)}

.facts .fact{box-shadow:0 1px 2px rgba(20,33,61,.05),0 8px 16px -12px rgba(20,33,61,.45);
  transition:transform .18s,box-shadow .18s,background .14s}
.facts .fact:hover{transform:translateY(-1px);box-shadow:0 2px 5px rgba(20,33,61,.07),0 14px 24px -12px rgba(20,33,61,.5)}

.dep{box-shadow:0 1px 2px rgba(20,33,61,.05),0 8px 18px -14px rgba(20,33,61,.4);
  transition:border-color .14s,box-shadow .2s,background .14s,transform .2s}
.dep:hover{transform:translateY(-2px);box-shadow:0 4px 9px -2px rgba(20,33,61,.12),0 20px 38px -20px rgba(20,33,61,.5)}
.dep.on{box-shadow:0 0 0 3px rgba(255,91,65,.1),0 12px 30px -14px rgba(255,91,65,.5)}

.prog details{box-shadow:0 1px 2px rgba(20,33,61,.05),0 8px 18px -14px rgba(20,33,61,.38);
  transition:box-shadow .2s,transform .2s}
.prog details:hover{transform:translateY(-1px);box-shadow:0 4px 11px -3px rgba(20,33,61,.15),0 18px 34px -20px rgba(20,33,61,.5)}

.pkg{box-shadow:0 1px 2px rgba(20,33,61,.05),0 8px 16px -13px rgba(20,33,61,.4);
  transition:border-color .14s,box-shadow .18s,transform .18s,background .14s}
.pkg:hover{transform:translateY(-2px);box-shadow:0 4px 10px -2px rgba(20,33,61,.15)}
.pkg.sel{box-shadow:0 4px 12px -3px rgba(255,91,65,.3)}

.locband{box-shadow:inset 0 2px 24px rgba(0,0,0,.22),0 18px 40px -22px rgba(20,33,61,.6)}

.rvitem{box-shadow:0 1px 2px rgba(20,33,61,.05),0 12px 26px -18px rgba(20,33,61,.4);
  transition:transform .18s,box-shadow .18s}
.rvitem:hover{transform:translateY(-2px);box-shadow:0 3px 8px -2px rgba(20,33,61,.12),0 22px 42px -22px rgba(20,33,61,.5)}

@media(prefers-reduced-motion:reduce){
  .gal .g,.facts .fact,.dep,.prog details,.pkg,.rvitem{transition:none !important;transform:none !important}
}
