/* ═══════════════════════════════════════════════
   TOUR-DETAIL.CSS — Tour detail page only
   Vietnam City Breaks
   ═══════════════════════════════════════════════ */

body{background:#F2F4F8}

/* ── Tour Gallery ── */
.td-gallery-wrap{background:white;padding:1.5rem 0 0}
.td-gallery{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:transparent}
.td-main-view{position:relative;overflow:hidden;background:#111;aspect-ratio:4/3;border-radius:10px}
.td-main-view img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.td-main-view iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;border:none}
.td-see-all{position:absolute;bottom:.85rem;right:.85rem;background:rgba(0,0,0,.55);color:white;font-size:.78rem;font-weight:600;padding:.4rem .85rem;border-radius:20px;cursor:pointer;backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);transition:background .2s}
.td-see-all:hover{background:rgba(0,0,0,.75)}
.td-thumbs{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:10px}
.td-thumb{position:relative;overflow:hidden;cursor:pointer;background:#f0f1f3;border-radius:10px}
.td-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.td-thumb:hover img{transform:scale(1.07)}
.td-thumb.active{outline:3px solid var(--primary);outline-offset:-3px}
.td-thumb-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.38);transition:background .2s}
.td-thumb-play:hover{background:rgba(0,0,0,.55)}
.td-play-ico{width:42px;height:42px;background:rgba(255,255,255,.9);border-radius:50%;display:flex;align-items:center;justify-content:center}
.td-play-ico svg{color:#E8521A;margin-left:3px}

/* ── Breadcrumb ── */
.breadcrumb{background:white;border-bottom:1px solid var(--border)}
.breadcrumb-list{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:.6rem 0;font-size:.82rem;color:var(--text-m)}
.breadcrumb-list li:not(:last-child)::after{content:'/';margin:0 .45rem;color:var(--border)}
.breadcrumb-list a{color:var(--text-m);text-decoration:none;transition:color .2s}
.breadcrumb-list a:hover{color:var(--primary)}
.breadcrumb-list li[aria-current='page']{color:var(--text-b);font-weight:500}

/* ── Shared utility classes ── */
.td-sub-heading{font-family:var(--fh);font-size:.95rem;font-weight:700;color:var(--text-h);margin:1.25rem 0 .75rem}
.info-callout{margin-top:1.25rem;padding:1rem 1.1rem;background:var(--primary-light);border-radius:10px;font-size:.88rem;color:var(--text-b);border-left:3px solid var(--primary)}
.info-callout strong{color:var(--primary)}
.link-primary{color:var(--primary);font-weight:600;text-decoration:none}
.link-primary:hover{text-decoration:underline}
.price-info+.price-info{margin-top:.75rem}
.pay-methods-wrap{margin-top:1.25rem}
.pay-methods-label{font-family:var(--fh);font-size:.82rem;font-weight:700;color:var(--text-h);margin-bottom:.65rem;letter-spacing:.03em}
.pay-methods{display:flex;gap:.5rem;flex-wrap:wrap}
.pay-method{background:var(--bg-soft);padding:.4rem .85rem;border-radius:8px;font-size:.82rem;color:var(--text-b)}

/* ── Widget urgency ── */
.wg-urgency{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--text-b);margin-bottom:.65rem;padding:.55rem .8rem;background:#fff8f5;border-radius:8px;border:1px solid #fde8dc}
.wg-urgency-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;flex-shrink:0;box-shadow:0 0 0 3px rgba(34,197,94,.2);animation:dot-pulse 2s ease-in-out infinite}
.wg-urgency strong{color:var(--text-h)}
.wg-save-wrap{text-align:center;margin-bottom:.9rem}
@keyframes dot-pulse{0%,100%{box-shadow:0 0 0 3px rgba(34,197,94,.2)}50%{box-shadow:0 0 0 5px rgba(34,197,94,.1)}}

/* ── Itinerary expand-all control ── */
.itin-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.itin-controls .td-section-title{margin:0;padding-bottom:0;border-bottom:none}
.itin-toggle-all{background:none;border:1px solid var(--border);border-radius:6px;padding:.4rem .9rem;font-size:.82rem;font-family:var(--fb);color:var(--text-b);cursor:pointer;transition:border-color .2s,color .2s}
.itin-toggle-all:hover{border-color:var(--primary);color:var(--primary)}

/* ── Lightbox ── */
.lb-overlay{position:fixed;inset:0;z-index:9000;background:rgba(8,8,10,.95);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .28s,visibility .28s}
.lb-overlay.open{opacity:1;visibility:visible}
.lb-close{position:absolute;top:1rem;right:1.25rem;background:rgba(255,255,255,.12);border:none;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:white;cursor:pointer;transition:background .2s;z-index:1;flex-shrink:0}
.lb-close:hover{background:rgba(255,255,255,.26)}
.lb-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.1);border:none;border-radius:50%;width:52px;height:52px;display:flex;align-items:center;justify-content:center;color:white;cursor:pointer;transition:background .2s;z-index:1;flex-shrink:0}
.lb-arrow:hover{background:rgba(255,255,255,.26)}
.lb-prev{left:1.5rem}
.lb-next{right:1.5rem}
.lb-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:3.5rem 5.5rem;width:100%;box-sizing:border-box;transition:opacity .15s}
.lb-stage.lb-fade{opacity:0}
.lb-stage img{max-width:100%;max-height:calc(100vh - 9rem);object-fit:contain;border-radius:8px;display:block;user-select:none;-webkit-user-drag:none}
.lb-video-wrap{position:relative;width:min(84vw,1000px);aspect-ratio:16/9}
.lb-video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:none;border-radius:8px}
.lb-footer{text-align:center;padding:.4rem 4rem 1.4rem;width:100%;box-sizing:border-box}
.lb-caption{color:rgba(255,255,255,.82);font-size:.9rem;font-family:var(--fb);margin:0 0 .3rem;line-height:1.5}
.lb-counter{color:rgba(255,255,255,.42);font-size:.78rem;font-family:var(--fb)}
.td-main-view{cursor:pointer}
@media(max-width:640px){
  .lb-prev{left:.4rem}
  .lb-next{right:.4rem}
  .lb-arrow{width:40px;height:40px}
  .lb-stage{padding:3rem 3.5rem}
  .lb-footer{padding:.4rem 1rem 1rem}
}

/* ── Tour Header ── */
.td-header-wrap{background:white;padding:1.5rem 0 1rem;border-bottom:1px solid var(--border)}
.td-header{display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:start}
.td-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.6rem}
.td-title{font-family:var(--fh);font-size:clamp(1.3rem,2.5vw,1.75rem);font-weight:800;color:var(--text-h);line-height:1.25;margin-bottom:.75rem}
.td-rating{display:flex;align-items:center;gap:.45rem;margin-bottom:.75rem;flex-wrap:wrap}
.td-stars{color:var(--star);font-size:1.05rem;letter-spacing:.5px}
.td-score{font-family:var(--fh);font-weight:800;font-size:1rem;color:var(--text-h)}
.td-rcount{font-size:.85rem;color:var(--text-m)}
.td-rcount a{color:var(--primary);font-weight:600}
.td-source{font-size:.82rem;color:var(--secondary);font-weight:600}
.td-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.85rem;color:var(--text-b)}
.td-meta span{display:flex;align-items:center;gap:.3rem}
/* Price box */
.td-price-box{background:var(--bg-soft);border:1px solid var(--border);border-radius:14px;padding:1.25rem 1.5rem;min-width:230px;text-align:center}
.td-price-top{display:flex;align-items:baseline;gap:.4rem;justify-content:center;margin-bottom:.3rem}
.td-from{font-size:.78rem;color:var(--text-m);font-weight:500}
.td-price-old{font-size:.95rem;color:var(--text-m);text-decoration:line-through}
.td-price-val{font-family:var(--fh);font-size:1.75rem;font-weight:800;color:var(--primary)}
.td-per{font-size:.82rem;font-weight:500;color:var(--text-m)}
.td-save-badge{background:#FEF9C3;color:#854D0E;font-size:.72rem;font-weight:700;padding:.2rem .7rem;border-radius:20px;display:inline-block;margin-bottom:.9rem}
.td-cta{margin-bottom:0}

/* ── Sticky Tabs ── */
.td-tabs{position:sticky;top:68px;z-index:40;background:white;border-bottom:2px solid var(--border)}
.td-tabs-inner{display:flex;overflow-x:auto;scrollbar-width:none}
.td-tabs-inner::-webkit-scrollbar{display:none}
.td-tab{flex-shrink:0;padding:.9rem 1.25rem;font-family:var(--fh);font-size:.88rem;font-weight:600;color:var(--text-m);background:none;border:none;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .2s,border-color .2s;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center}
.td-tab:hover{color:var(--text-h)}
.td-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:700}

/* ── Two-Column Layout ── */
.td-layout{display:grid;grid-template-columns:1fr 380px;gap:2rem;align-items:start;padding:2rem 0 4rem;background:#F2F4F8}
.td-main{min-width:0}
.td-panel{scroll-margin-top:116px}
.td-section{background:white;border-radius:14px;padding:1.75rem;margin-bottom:1.25rem;box-shadow:var(--sh-card)}
.td-section-title{font-family:var(--fh);font-size:1.1rem;font-weight:800;color:var(--text-h);margin-bottom:1.1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}

/* ─── Overview ─── */
.td-highlights{display:flex;flex-direction:column;gap:.65rem;margin-bottom:1.25rem}
.td-hl{display:flex;align-items:flex-start;gap:.65rem;font-size:.92rem;color:var(--text-b);line-height:1.55}
.td-hl-ico{width:20px;height:20px;min-width:20px;background:var(--primary-light);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}
.td-hl-ico svg{color:var(--primary);width:11px;height:11px}
.td-desc p{font-size:.95rem;color:var(--text-b);line-height:1.75;margin-bottom:.85rem}
.td-facts{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.5rem;margin-bottom:1.1rem}
.td-fact{display:flex;align-items:center;gap:.55rem;font-size:.85rem;color:var(--text-b)}
.td-fact strong{color:var(--text-h);font-weight:600}
.td-fact-ico{color:var(--primary);flex-shrink:0}
.td-dest-tags{display:flex;flex-wrap:wrap;gap:.45rem}
.td-dest-tag{display:inline-flex;align-items:center;gap:.3rem;background:var(--secondary-light);color:var(--secondary);font-size:.78rem;font-weight:600;padding:.3rem .7rem;border-radius:20px;border:1px solid rgba(10,110,110,.15)}

/* ─── Itinerary ─── */
.itin-list{display:flex;flex-direction:column;gap:.5rem}
.itin-item{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:white}
.itin-head{width:100%;display:flex;align-items:center;gap:.75rem;padding:1rem 1.2rem;background:white;border:none;cursor:pointer;text-align:left;transition:background .2s}
.itin-head:hover{background:var(--bg-soft)}
.itin-head[aria-expanded="true"]{background:var(--primary-light)}
.itin-day{width:30px;height:30px;min-width:30px;border-radius:50%;background:var(--primary);color:white;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.itin-day svg{display:block;width:16px;height:16px}
.itin-day-mid{background:var(--primary-light);color:var(--primary)}
.itin-day-mid svg{width:12px;height:12px}
.itin-head[aria-expanded="true"] .itin-day{background:var(--primary-dark);color:white}
.itin-title-wrap{flex:1;min-width:0}
.itin-daylabel{display:inline-block;font-family:var(--fh);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--primary);margin-bottom:.1rem}
.itin-head.itin-static{cursor:default}
.itin-head.itin-static:hover{background:white}
.itin-title{font-family:var(--fh);font-size:.92rem;font-weight:700;color:var(--text-h);line-height:1.3}
.itin-sub{font-size:.78rem;color:var(--text-m);margin-top:.1rem}
.itin-chv{flex-shrink:0;width:18px;height:18px;color:var(--text-m);transition:transform .25s}
.itin-head[aria-expanded="true"] .itin-chv{transform:rotate(180deg);color:var(--primary)}
.itin-body{padding:0 1.2rem 1.1rem 1.2rem;font-size:.88rem;color:var(--text-b);line-height:1.7}
.itin-body p{margin-bottom:.65rem}
.itin-body p:last-of-type{margin-bottom:0}
.itin-body strong,.itin-body b{font-weight:700;color:var(--text-h)}
.itin-body em,.itin-body i{font-style:italic}
.itin-body ul,.itin-body ol{margin:.2rem 0 .65rem 1.1rem;display:flex;flex-direction:column;gap:.3rem}
.itin-body ul li{list-style:disc}
.itin-body ol li{list-style:decimal}
/* Ảnh đơn */
.itin-body img{width:100%;max-height:320px;object-fit:cover;border-radius:10px;margin:.55rem 0;display:block}
/* Grid 2 ảnh */
.itin-img-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:.55rem 0}
.itin-img-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;margin:0}
/* Grid 3 ảnh */
.itin-img-grid.cols-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:480px){
  .itin-img-grid,.itin-img-grid.cols-3{grid-template-columns:1fr 1fr}
}
.itin-note{font-size:.84rem;color:var(--text-m);line-height:1.65;font-style:italic;padding:.7rem .9rem;background:var(--bg-soft);border-radius:8px;border-left:3px solid var(--border)}
.itin-note:empty{display:none}
.itin-note-top{margin-bottom:.85rem}
.itin-note-bottom{margin-top:.85rem}
.itin-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}
.itin-tag{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--text-m);background:var(--bg-soft);padding:.2rem .6rem;border-radius:20px}

/* ─── Inclusions ─── */
.inc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 2rem}
.inc-col h3{font-family:var(--fh);font-size:.88rem;font-weight:800;margin-bottom:.85rem;padding:.4rem .75rem;border-radius:8px}
.inc-col.yes h3{background:#F0FDF4;color:#16A34A}
.inc-col.no h3{background:#FEF2F2;color:#DC2626}
.inc-item{display:flex;align-items:flex-start;gap:.55rem;font-size:.85rem;color:var(--text-b);line-height:1.5;margin-bottom:.6rem}
.inc-dot{width:18px;height:18px;min-width:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:1px;font-size:.75rem;flex-shrink:0}
.inc-col.yes .inc-dot{background:#DCFCE7;color:#16A34A}
.inc-col.no .inc-dot{background:#FEE2E2;color:#DC2626}

/* ─── Price Table ─── */
.price-table{width:100%;border-collapse:collapse;font-size:.88rem}
.price-table th{background:var(--primary);color:white;font-family:var(--fh);font-weight:700;padding:.85rem 1rem;text-align:left;font-size:.82rem}
.price-table td{padding:.85rem 1rem;border-bottom:1px solid var(--border);vertical-align:top}
.price-table tr:last-child td{border-bottom:none}
.price-table tr:hover td{background:var(--bg-soft)}
.price-tier{font-family:var(--fh);font-weight:700;color:var(--text-h);font-size:.92rem}
.price-amt{font-family:var(--fh);font-weight:800;color:var(--primary);font-size:1.1rem}
.price-note{font-size:.78rem;color:var(--text-m);margin-top:.2rem}
.price-info{background:var(--bg-soft);border-radius:10px;padding:1rem 1.1rem;margin-top:1rem;font-size:.85rem;color:var(--text-b);line-height:1.6}
.price-info strong{color:var(--text-h)}

/* ─── Rates & Availability ─── */
.rates-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--bg-soft);border:1px solid var(--border);border-bottom:none;border-radius:12px 12px 0 0;padding:1rem 1.1rem}
.rates-head label{font-family:var(--fh);font-weight:700;color:var(--text-h);font-size:.92rem}
.rates-head select{font-family:var(--fb);font-size:.88rem;color:var(--text-h);background:white;border:1px solid var(--border);border-radius:var(--r-btn);padding:.5rem .8rem;min-width:170px;cursor:pointer}
.rates-list{border:1px solid var(--border);border-radius:0 0 12px 12px;overflow:hidden}
.rate-row{display:flex;align-items:center;gap:1rem;padding:1.1rem;border-bottom:1px solid var(--border)}
.rate-row:last-child{border-bottom:none}
.rate-row.is-hidden{display:none}
.rate-info{flex:1 1 auto;min-width:0}
.rate-dates{font-family:var(--fh);font-weight:700;color:var(--text-h);font-size:.95rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.rate-arrow{color:var(--text-m);font-weight:400}
.rate-meta{margin-top:.45rem;display:flex;flex-direction:column;gap:.28rem;font-size:.8rem;color:var(--text-b)}
.rate-meta span{display:flex;align-items:center;gap:.4rem}
.rate-right{display:flex;align-items:center;gap:1.25rem;flex-shrink:0}
.rate-price{text-align:right;line-height:1.2}
.rate-from{font-size:.78rem;color:var(--text-m)}
.rate-amt{font-family:var(--fh);font-weight:800;color:var(--primary);font-size:1.15rem;white-space:nowrap}
.rate-amt .rate-cur{font-size:.85rem;font-weight:700}
.rate-amt .rate-per{font-size:.78rem;color:var(--text-m);font-weight:500;margin-left:1px}
.btn-inquire{background:var(--primary);color:#fff;font-family:var(--fh);font-weight:700;font-size:.82rem;padding:.62rem 1.15rem;border-radius:var(--r-btn);white-space:nowrap;border:none;cursor:pointer;transition:background .2s,transform .15s}
.btn-inquire:hover{background:var(--primary-dark);transform:translateY(-1px)}
.rates-more-wrap{text-align:center;margin-top:1.25rem}
.btn-rates-more{display:inline-flex;align-items:center;gap:.4rem;background:transparent;color:var(--primary);border:1px solid var(--primary);border-radius:30px;font-family:var(--fh);font-weight:700;font-size:.85rem;padding:.6rem 1.4rem;cursor:pointer;transition:background .2s,color .2s}
.btn-rates-more:hover{background:var(--primary);color:#fff}
.btn-rates-more.is-done{display:none}

/* Room types summary */
.rates-sub{font-family:var(--fh);font-weight:700;color:var(--text-h);font-size:1.05rem;margin:2rem 0 .85rem}
.room-tiers{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.room-tier{display:flex;align-items:center;gap:1rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--border)}
.room-tier:last-child{border-bottom:none}
.rt-name{font-family:var(--fh);font-weight:700;color:var(--text-h);font-size:.9rem;flex:0 0 120px}
.rt-desc{flex:1 1 auto;font-size:.83rem;color:var(--text-b);min-width:0}
.rt-price{font-family:var(--fh);font-weight:800;color:var(--primary);font-size:.98rem;white-space:nowrap;flex-shrink:0}
.rt-price span{font-size:.74rem;color:var(--text-m);font-weight:500;margin-left:1px}

/* Booking-widget date flash on prefill */
@keyframes wgFlash{0%{box-shadow:0 0 0 0 rgba(232,82,26,.4)}100%{box-shadow:0 0 0 6px rgba(232,82,26,0)}}
.wg-flash{animation:wgFlash .8s ease-out}
@media(prefers-reduced-motion:reduce){.wg-flash{animation:none}}

/* ─── Reviews ─── */
.rv-summary{display:flex;gap:2rem;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}
.rv-score-big{text-align:center;min-width:80px}
.rv-score-num{font-family:var(--fh);font-size:3rem;font-weight:800;color:var(--primary);line-height:1}
.rv-score-label{font-size:.78rem;color:var(--text-m);margin-top:.2rem}
.rv-bars{flex:1}
.rv-bar-row{display:flex;align-items:center;gap:.65rem;margin-bottom:.4rem;font-size:.8rem}
.rv-bar-lbl{color:var(--text-m);width:20px;text-align:right;flex-shrink:0}
.rv-bar-track{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}
.rv-bar-fill{height:100%;background:var(--star);border-radius:4px}
.rv-bar-pct{color:var(--text-m);width:32px;flex-shrink:0}
.rvcard.rv-hidden{display:none}
.rv-source.verified{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0;border-radius:4px;padding:.15rem .55rem;font-size:.7rem;font-weight:700}
.rv-country{font-size:.78rem;color:var(--text-m);margin-left:.3rem}
.rv-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}
.rv-show-all{background:none;border:1px solid var(--border);border-radius:8px;padding:.5rem 1.1rem;font-size:.88rem;font-weight:600;color:var(--text-b);cursor:pointer;transition:border-color .2s,color .2s}
.rv-show-all:hover{border-color:var(--primary);color:var(--primary)}
.btn-write-review{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.25rem;background:var(--primary);color:white;border-radius:8px;font-size:.88rem;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .2s}
.btn-write-review:hover{background:var(--primary-dark)}
@media(max-width:480px){.rv-actions{flex-direction:column;align-items:stretch}.rv-show-all,.btn-write-review{text-align:center;justify-content:center}}

/* ── Booking Widget ── */
.td-widget{position:sticky;top:120px;border:1px solid var(--border);border-radius:16px;padding:1.5rem;background:white;box-shadow:var(--sh-hover)}
.wg-price-top{display:flex;align-items:baseline;gap:.35rem;margin-bottom:.2rem;justify-content:center}
.wg-from{font-size:.75rem;color:var(--text-m)}
.wg-price-old{font-size:.9rem;color:var(--text-m);text-decoration:line-through}
.wg-price-val{font-family:var(--fh);font-size:1.65rem;font-weight:800;color:var(--primary)}
.wg-per{font-size:.78rem;color:var(--text-m);font-weight:500}
.wg-save{text-align:center;font-size:.72rem;font-weight:700;color:#854D0E;background:#FEF9C3;padding:.2rem .7rem;border-radius:20px;display:inline-block;margin:0 auto .9rem;width:100%}
.wg-field{margin-bottom:1rem}
.wg-field label{display:block;font-family:var(--fh);font-size:.78rem;font-weight:700;color:var(--text-h);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.04em}
.wg-field select,.wg-field input[type=date]{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:.6rem .85rem;font-family:var(--fb);font-size:.88rem;color:var(--text-h);background:white;outline:none;transition:border-color .2s}
.wg-field select:focus,.wg-field input:focus{border-color:var(--primary)}
.wg-pax{border:1.5px solid var(--border);border-radius:10px;overflow:hidden}
.pax-row{display:flex;align-items:center;justify-content:space-between;padding:.7rem .9rem;border-bottom:1px solid var(--border)}
.pax-row:last-child{border-bottom:none}
.pax-label span{font-size:.88rem;color:var(--text-h);font-weight:500}
.pax-label em{display:block;font-size:.72rem;color:var(--text-m);font-style:normal}
.pax-ctrl{display:flex;align-items:center;gap:.75rem}
.pax-ctrl button{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--border);background:white;font-size:1.1rem;line-height:1;color:var(--text-h);transition:all .2s;display:flex;align-items:center;justify-content:center}
.pax-ctrl button:hover{border-color:var(--primary);color:var(--primary)}
.pax-ctrl span{font-family:var(--fh);font-weight:700;font-size:.95rem;color:var(--text-h);min-width:20px;text-align:center}
.wg-summary{background:var(--bg-soft);border-radius:10px;padding:.9rem 1rem;margin:1rem 0}
.wg-sum-row{display:flex;justify-content:space-between;font-size:.83rem;color:var(--text-b);margin-bottom:.4rem}
.wg-sum-total{display:flex;justify-content:space-between;font-family:var(--fh);font-weight:800;font-size:1rem;color:var(--text-h);border-top:1px solid var(--border);padding-top:.65rem;margin-top:.5rem}
.wg-trust{margin-top:1rem;display:flex;flex-direction:column;gap:.4rem}
.wg-trust li{font-size:.78rem;color:var(--text-m);display:flex;align-items:center;gap:.4rem}
.wg-trust li::before{content:'✓';color:var(--success);font-weight:700;flex-shrink:0}
.wg-trust li:last-child::before{content:'🔒'}

/* ── Related Tours ── */
.td-related{background:var(--bg-soft);padding:3.5rem 0}
.td-related-head{text-align:center;margin-bottom:2rem}
.td-related-head h2{font-family:var(--fh);font-size:clamp(1.3rem,2.5vw,1.75rem);font-weight:800;color:var(--text-h);margin-bottom:.35rem}
.td-related-head p{color:var(--text-m);font-size:.9rem}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}

/* ── Mobile Sticky Bar ── */
.mob-cta-bar{display:none;position:fixed;bottom:0;left:0;right:0;width:100%;height:60px;background:white;border-top:1px solid var(--border);padding:0 .2rem;z-index:50;align-items:center;gap:.6rem;box-shadow:0 -4px 10px rgba(0,0,0,.12)}
.mob-left{flex:1 0 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:0;line-height:1.2}
.mob-rating{display:flex;align-items:center;gap:.3rem;min-width:0}
.mob-r-score{background:var(--success);color:white;font-weight:800;font-size:18px;padding:0 5px;border-radius:5px;line-height:1.6;flex-shrink:0}
.mob-r-text{font-size:.78rem;color:var(--text-m);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mob-price{font-size:15px;color:var(--text-b);white-space:nowrap;line-height:1.2}
.mob-price strong{font-family:var(--fh);font-size:18px;color:var(--primary);font-weight:800}
.mob-price span{font-size:15px;color:var(--text-m);margin-left:1px}
.mob-book-btn{flex:0 0 auto;height:35px;background:var(--primary);color:white;border-radius:var(--r-btn);font-family:var(--fh);font-weight:700;font-size:.78rem;border:none;cursor:pointer;white-space:nowrap;display:inline-block;align-items:center;justify-content:center;padding:0 1.1rem}

/* ── Mobile Widget Modal ── */
.mob-modal{position:fixed;inset:0;z-index:3000;display:none}
.mob-modal.open{display:block}
.mob-modal-bg{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.mob-modal-panel{position:absolute;bottom:0;left:0;right:0;background:white;border-radius:18px 18px 0 0;max-height:90vh;overflow-y:auto;padding:1.5rem;transform:translateY(100%);transition:transform .35s}
.mob-modal.open .mob-modal-panel{transform:none}
.mob-modal-close{position:absolute;top:.85rem;right:1rem;background:var(--bg-soft);border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;color:var(--text-h)}

/* ── Responsive (tour-detail specific) ── */
@media(max-width:1100px){
  .td-layout{grid-template-columns:1fr 340px}
}
@media(max-width:1024px){
  .td-gallery{grid-template-columns:1fr}
  .td-thumbs{grid-template-columns:repeat(4,1fr);grid-template-rows:unset}
  .td-thumb{aspect-ratio:4/3}
  .td-layout{grid-template-columns:1fr}
  .td-widget{position:static;display:none}
  .mob-cta-bar{display:flex}
  .td-header{grid-template-columns:1fr;gap:1rem}
  .td-price-box{display:none}
  /* Lift floating buttons above the 60px mobile sticky bar */
  .floats{bottom:calc(60px + .75rem);right:.1rem}
  .btt{bottom:calc(60px + 6.75rem);right:.1rem}
}
@media(max-width:768px){
  .inc-grid{grid-template-columns:1fr}
  .rel-grid{grid-template-columns:1fr 1fr}
  /* Mobile padding optimization: content sections .75rem L/R; bordered content .5rem L/R */
  .td-section{padding-left:.75rem;padding-right:.75rem}
  .itin-head{padding-left:.5rem;padding-right:.5rem}
  .itin-body{padding-left:.5rem;padding-right:.5rem}
  .itin-note{padding-left:.5rem;padding-right:.5rem}
  .rates-head{flex-direction:column;align-items:stretch;gap:.6rem}
  .rates-head select{min-width:0;width:100%}
  .rate-row{flex-direction:column;align-items:stretch;gap:.85rem}
  .rate-right{justify-content:space-between;gap:.75rem}
  .rate-price{text-align:left}
  .btn-inquire{padding:.7rem 1.15rem;min-height:44px}
  .room-tier{flex-wrap:wrap;gap:.35rem .9rem}
  .rt-name{flex:0 0 auto}
  .rt-price{margin-left:auto}
}
@media(max-width:480px){
  .rel-grid{grid-template-columns:1fr}
  .td-tabs-inner{white-space:nowrap}
  .rv-summary{flex-direction:column;gap:1rem;align-items:stretch}
  .rv-bars{width:100%}
  .rt-desc{flex:1 0 100%;order:3}
}
