/* Halen travel pages (stays.html, flights.html). Uses shop.css for modal, form and button basics. */
.tv{background:var(--mist);min-height:60vh}
.tv-hero{background:radial-gradient(120% 140% at 0% 0%,#14365f 0%,var(--navy) 55%,var(--navy-deep) 100%);color:#fff;padding:40px 0 30px}
.tv-hero h1{font-size:clamp(30px,4.2vw,46px);line-height:1.05;margin:10px 0 8px;color:#fff}
.tv-hero h1 em{font-style:normal;color:var(--gold)}
.tv-hero .lede{color:#c9d3e2;max-width:680px;margin:0 0 20px;font-size:17px}
.tv-search{background:#fff;border-radius:18px;padding:12px;box-shadow:0 20px 40px -24px rgba(0,0,0,.6);color:var(--navy)}
.tv-row{display:grid;gap:10px;align-items:stretch}
.tv-box{position:relative;display:flex;flex-direction:column;justify-content:center;background:var(--mist);border-radius:12px;padding:8px 14px;min-height:56px;border:1.5px solid transparent;min-width:0}
.tv-box:focus-within{border-color:var(--teal-deep)}
.tv-box>span,.tv-box>label{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--slate)}
.tv-box input,.tv-box select{border:0;background:transparent;font:inherit;font-size:15.5px;font-weight:600;color:var(--navy);padding:2px 0 0;outline:none;width:100%;min-width:0}
.tv-box button.pop{all:unset;cursor:pointer;font-size:15.5px;font-weight:600;color:var(--navy);padding-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-box button.pop:focus-visible{outline:2px solid var(--teal-deep);border-radius:4px}
.tv-go{border:0;border-radius:12px;background:var(--gold);color:var(--navy);font:inherit;font-weight:700;font-size:16px;padding:0 28px;cursor:pointer;min-height:56px}
.tv-go:hover{background:#f0c24f}
.popover{position:absolute;top:calc(100% + 8px);right:0;z-index:50;background:#fff;border-radius:16px;box-shadow:0 24px 50px -20px rgba(10,27,51,.5);border:1px solid var(--line);padding:14px 16px;width:320px;color:var(--navy)}
.popover[hidden]{display:none}
.pc{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.pc:last-of-type{border-bottom:0}
.pc b{display:block;font-size:15px}
.pc small{color:var(--slate);font-size:12.5px}
.step{display:inline-flex;align-items:center;gap:10px}
.step button{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font:inherit;font-size:18px;font-weight:700;color:var(--navy);cursor:pointer}
.step button:disabled{opacity:.35;cursor:not-allowed}
.step span{min-width:18px;text-align:center;font-weight:700}
.pop-done{width:100%;margin-top:10px}
.type-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.type-card{display:flex;align-items:center;gap:12px;text-align:left;font:inherit;color:#fff;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.18);border-radius:16px;padding:14px 16px;cursor:pointer;transition:all .15s}
.type-card .e{font-size:28px}
.type-card b{display:block;font-size:16px}
.type-card small{color:#c9d3e2;font-size:13px}
.type-card:hover{border-color:var(--gold)}
.type-card[aria-pressed=true]{background:#fff;color:var(--navy);border-color:#fff}
.type-card[aria-pressed=true] small{color:var(--slate)}
.tv-main{padding:26px 0 70px}
.tv-layout{display:grid;grid-template-columns:290px 1fr;gap:24px;align-items:start}
.fpanel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:6px 16px 16px;position:sticky;top:92px;max-height:calc(100vh - 110px);overflow-y:auto}
.fpanel-head{display:flex;justify-content:space-between;align-items:center;padding:12px 0 8px;border-bottom:1px solid var(--line)}
.fpanel-head h2{margin:0;font-size:18px}
.linkbtn{font:inherit;font-size:13.5px;font-weight:700;color:var(--teal-deep);background:none;border:0;cursor:pointer;padding:4px}
.fg{border-bottom:1px solid var(--line)}
.fg summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:13px 0;font-weight:700;color:var(--navy);font-size:15px}
.fg summary::-webkit-details-marker{display:none}
.fg summary:after{content:"+";font-size:20px;color:var(--slate)}
.fg[open] summary:after{content:"−"}
.fg .fgb{padding:0 0 14px}
.fg h4{margin:10px 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}
.ck{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:14.5px;color:var(--navy);cursor:pointer}
.ck input{width:18px;height:18px;accent-color:var(--navy);flex:none}
.ck small{margin-left:auto;color:var(--slate)}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{font:inherit;font-size:13.5px;font-weight:600;color:var(--navy);background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer}
.seg button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.range{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.range label{display:flex;flex-direction:column;font-size:12px;font-weight:700;color:var(--slate);gap:4px}
.range input{font:inherit;font-size:14.5px;color:var(--navy);border:1.5px solid var(--line);border-radius:10px;padding:8px 10px;width:100%}
.res-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.res-head h2{margin:0;font-size:22px}
.res-head .count{color:var(--slate);font-size:14px}
.active{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.active button{font:inherit;font-size:12.5px;font-weight:600;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 10px;cursor:pointer}
.active button:after{content:" ×";color:var(--slate)}
.fbtn{display:none;font:inherit;font-weight:700;color:var(--navy);background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:8px 16px;cursor:pointer}
.rcard{display:grid;grid-template-columns:260px 1fr;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-bottom:14px;cursor:pointer;transition:box-shadow .15s,transform .15s}
.rcard:hover{box-shadow:0 18px 34px -22px rgba(15,39,71,.55);transform:translateY(-2px)}
.rcard .tile{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;font-size:44px;min-height:190px}
.rcard .tile span:nth-child(2){font-size:56px}
.rcard .kind{position:absolute;top:10px;left:10px;font-size:11.5px;font-weight:700;color:var(--navy);background:rgba(255,255,255,.92);border-radius:999px;padding:4px 10px}
.save{position:absolute;top:8px;right:8px;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.92);font-size:17px;cursor:pointer}
.rbody{padding:16px 18px;display:grid;grid-template-columns:1fr auto;gap:10px 18px}
.rname{all:unset;cursor:pointer}
.rname:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}
.rbody h3{margin:0 0 2px;font-size:18px;line-height:1.25}
.sub{color:var(--slate);font-size:13.5px}
.facts{margin-top:8px;font-size:14px;color:var(--navy)}
.amen-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.amen-chips span{font-size:12.5px;color:var(--navy);background:var(--mist);border-radius:999px;padding:4px 9px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tag-ok{font-size:12.5px;font-weight:700;color:var(--teal-deep)}
.price-col{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.score{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--slate)}
.score b{background:var(--navy);color:#fff;border-radius:8px;padding:3px 7px;font-size:13.5px}
.big-price{font-family:"Space Grotesk";font-size:24px;font-weight:700;color:var(--navy);margin-top:auto}
.big-price small{font-family:Inter,sans-serif;font-size:13px;font-weight:500;color:var(--slate)}
.total{font-size:12.5px;color:var(--slate)}
.stars{color:#c99a1d;letter-spacing:1px;font-size:13px}
/* details */
.dm{max-width:1060px}
.dm .md-body{padding:0}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;gap:6px;height:230px}
.gal div{display:grid;place-items:center;font-size:70px}
.dm-wrap{display:grid;grid-template-columns:1fr 330px;gap:26px;padding:20px 24px 26px}
.dm h2{margin:0 0 4px;font-size:26px}
.dm h3{font-size:18px;margin:22px 0 10px}
.dm p{color:var(--slate);line-height:1.6;margin:0}
.kv{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.kv div{background:var(--mist);border-radius:12px;padding:10px 14px;font-size:13px;color:var(--slate)}
.kv b{display:block;font-size:16px;color:var(--navy)}
.am-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 18px}
.am-grid div{display:flex;gap:10px;align-items:center;font-size:14.5px;color:var(--navy);padding:4px 0}
.am-grid .no{color:#9aa6b8;text-decoration:line-through}
.room{display:grid;grid-template-columns:1fr auto;gap:8px 14px;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px;cursor:pointer}
.room:has(input:checked){border-color:var(--navy);background:#f3f6fb}
.room b{color:var(--navy)}
.room .sub{font-size:13px}
.room .rp{text-align:right;font-weight:800;color:var(--navy)}
.room input{position:absolute;opacity:0}
.room .ok{color:var(--teal-deep);font-weight:600}
.bars{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 22px}
.bar{display:grid;grid-template-columns:110px 1fr 30px;gap:10px;align-items:center;font-size:13.5px;color:var(--navy)}
.bar i{height:6px;border-radius:3px;background:var(--line);position:relative;overflow:hidden}
.bar i b{position:absolute;inset:0 auto 0 0;background:var(--navy)}
.bookbox{position:sticky;top:16px;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 16px 34px -24px rgba(15,39,71,.55);align-self:start;background:#fff}
.bookbox .bp{font-family:"Space Grotesk";font-size:24px;font-weight:700;color:var(--navy)}
.bookbox .bp small{font-family:Inter,sans-serif;font-size:13px;color:var(--slate);font-weight:500}
.bb-grid{display:grid;grid-template-columns:1fr 1fr;border:1.5px solid var(--line);border-radius:12px;margin:12px 0;overflow:hidden}
.bb-grid label{display:flex;flex-direction:column;padding:8px 10px;font-size:11px;font-weight:700;color:var(--slate);text-transform:uppercase;letter-spacing:.04em}
.bb-grid label+label{border-left:1.5px solid var(--line)}
.bb-grid .full{grid-column:1/-1;border-left:0 !important;border-top:1.5px solid var(--line)}
.bb-grid label{min-width:0}
.bb-grid input,.bb-grid select{width:100%;min-width:0;font-size:13.5px !important;border:0;font:inherit;font-size:14.5px;font-weight:600;color:var(--navy);padding:2px 0 0;background:transparent;outline:none;text-transform:none}
.err-box{color:#c0392b;font-size:13px;margin:6px 0}
.err-box:empty{display:none}
.host{display:flex;gap:14px;align-items:center;background:var(--mist);border-radius:14px;padding:14px}
.host .av{width:52px;height:52px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:700;font-size:20px;flex:none}
.rules{padding-left:20px;margin:0}
.rules li{margin:6px 0;color:var(--navy)}
/* flights */
.trip-tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.trip-tabs button{font:inherit;font-size:14px;font-weight:700;color:var(--navy);background:var(--mist);border:0;border-radius:999px;padding:8px 14px;cursor:pointer}
.trip-tabs button[aria-pressed=true]{background:var(--navy);color:#fff}
.swap{position:absolute;right:-17px;top:50%;transform:translateY(-50%);z-index:3;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);background:#fff;cursor:pointer;font-size:16px;color:var(--navy)}
.opts-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px;font-size:14px;color:var(--navy)}
.opts-row label{display:flex;align-items:center;gap:8px;cursor:pointer}
.opts-row input{accent-color:var(--navy);width:17px;height:17px}
.legs .leg{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;margin-bottom:10px}
.dates-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:14px}
.dates-strip button{font:inherit;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:8px 4px;cursor:pointer;color:var(--navy);font-size:12.5px;line-height:1.35}
.dates-strip button b{display:block;font-size:14.5px}
.dates-strip button[aria-pressed=true]{border-color:var(--navy);background:var(--navy);color:#fff}
.dates-strip .low b{color:var(--teal-deep)}
.dates-strip button[aria-pressed=true] b{color:#fff}
.fcard{background:#fff;border:1px solid var(--line);border-radius:18px;margin-bottom:12px;overflow:hidden}
.fmain{display:grid;grid-template-columns:96px 1fr auto;gap:16px;align-items:center;padding:16px 18px;cursor:pointer}
.al{width:46px;height:46px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px;letter-spacing:.02em}
.al-logo{width:96px;height:46px;border-radius:12px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;padding:6px 8px}
.al-logo img{max-width:100%;max-height:30px;object-fit:contain}
.al-logo.sm{width:76px;height:38px;flex:none}
.al.sm{width:38px;height:38px;font-size:12px;flex:none}
.al-logo.sm img{max-height:24px}
.times{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
.times .t{font-family:"Space Grotesk";font-size:20px;font-weight:700;color:var(--navy);line-height:1.1}
.times .t small{display:block;font-family:Inter,sans-serif;font-size:12.5px;color:var(--slate);font-weight:500}
.path{text-align:center;font-size:12.5px;color:var(--slate)}
.path i{display:block;height:2px;background:var(--line);margin:6px 0;position:relative}
.path i:after{content:"✈";position:absolute;right:-2px;top:-9px;font-style:normal;font-size:13px;color:var(--navy)}
.path .stops{color:var(--teal-deep);font-weight:700}
.path .stops.s{color:#9a5b00}
.fmeta{font-size:12.5px;color:var(--slate);margin-top:6px}
.fprice{text-align:right}
.fprice b{display:block;font-family:"Space Grotesk";font-size:22px;color:var(--navy)}
.fprice small{color:var(--slate);font-size:12px}
.fares{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 18px 18px}
.fare{border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.fare h4{margin:0;font-size:15px}
.fare ul{list-style:none;margin:0;padding:0;font-size:13px;color:var(--slate)}
.fare li{padding:3px 0}
.fare li.y:before{content:"✓ ";color:var(--teal-deep);font-weight:700}
.fare li.n:before{content:"✕ ";color:#b0b8c5;font-weight:700}
.fare li.f:before{content:"$ ";color:#9a5b00;font-weight:700}
.fare .p{font-weight:800;font-size:18px;color:var(--navy);margin-top:auto}
.fare .btn-wide{padding:10px;font-size:14.5px}
.picked{display:flex;gap:12px;align-items:center;background:#fff;border:1.5px solid var(--navy);border-radius:14px;padding:12px 16px;margin-bottom:14px}
.picked b{color:var(--navy)}
.seatmap{display:grid;grid-template-columns:repeat(3,30px) 22px repeat(3,30px);gap:5px;justify-content:center;margin:8px 0}
.seatmap .rn{display:grid;place-items:center;font-size:11px;color:var(--slate)}
.seat{width:30px;height:30px;border-radius:7px 7px 4px 4px;border:1.5px solid var(--line);background:#fff;font-size:10px;cursor:pointer;color:var(--navy)}
.seat.xl{border-color:#c9a13a;background:#fdf6e4}
.seat.taken{background:#e6e9ef;border-color:#e6e9ef;cursor:not-allowed}
.seat[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.legend{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;font-size:12.5px;color:var(--slate);margin-bottom:6px}
.legend i{display:inline-block;width:14px;height:14px;border-radius:4px;border:1.5px solid var(--line);vertical-align:-2px;margin-right:4px}
.pax{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.pax h4{margin:0 0 8px;font-size:15px}
.grid3{display:grid;grid-template-columns:1fr 90px 1fr;gap:0 12px}
@media(max-width:1000px){.tv-layout{grid-template-columns:1fr}.fpanel{position:fixed;inset:0 auto 0 0;width:min(360px,92vw);max-height:none;height:100%;border-radius:0 18px 18px 0;z-index:950;transform:translateX(-105%);transition:transform .25s;top:0}.fpanel.open{transform:none}.fbtn{display:inline-block}.dm-wrap{grid-template-columns:1fr}.bookbox{position:static}.fares{grid-template-columns:1fr}}
@media(max-width:760px){.type-cards{grid-template-columns:1fr}.rcard{grid-template-columns:1fr}.rcard .tile{min-height:150px}.rbody{grid-template-columns:1fr}.price-col{text-align:left;align-items:flex-start}.am-grid,.bars{grid-template-columns:1fr}.gal{grid-template-columns:1fr 1fr;height:180px}.gal div:first-child{grid-column:1/-1}.fmain{grid-template-columns:84px 1fr}.fmain .al-logo{width:84px;height:40px}.fmain .al{width:40px;height:40px}.fprice{grid-column:1/-1;text-align:left;display:flex;gap:10px;align-items:baseline}.dates-strip{grid-template-columns:repeat(4,1fr)}.dates-strip button:nth-child(n+5){display:none}.legs .leg{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr 1fr}.grid3 .f:last-child{grid-column:1/-1}.swap{right:auto;left:50%;top:auto;bottom:-17px;transform:translateX(-50%) rotate(90deg)}}
