
:root{
  --tp-bg:#f5f7fb;
  --tp-card:#ffffff;
  --tp-border:#e5e7eb;
  --tp-text:#0f172a;
  --tp-muted:#6b7280;
  --tp-shadow:0 6px 18px rgba(15,23,42,.08);
  --tp-radius:10px;
}

body{background:var(--tp-bg)}
.tp-layout{max-width:90%;margin:28px auto;padding:0 18px;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:18px;align-items:start}
@media (max-width:1100px){.tp-layout{grid-template-columns:1fr}.tp-right{position:relative;top:auto;width:100%}}

.tp-card{background:var(--tp-card);border:1px solid var(--tp-border);border-radius:var(--tp-radius);box-shadow:var(--tp-shadow);padding:22px;margin:0 0 18px}
.tp-card h2{margin:0 0 14px;font-size:22px;color:var(--tp-text)}
.tp-title{margin:0 0 14px;font-size:28px;color:var(--tp-text)}
.tp-muted{color:var(--tp-muted);font-size:13px;line-height:1.4}
.tp-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}

.tp-highlights-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:900px){.tp-highlights-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.tp-highlights-grid{grid-template-columns:1fr}}

.tp-highlight{border:1px solid var(--tp-border);border-radius:5px;padding:14px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:#fff}
.tp-highlight-left{display:flex;gap:10px}
.tp-highlight-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:16px;margin-top:2px}
.tp-highlight-title{font-weight:700;color:var(--tp-text);font-size:14px;line-height:1.2;margin:0}
.tp-highlight-sub{color:var(--tp-muted);font-size:12px;margin-top:3px}
.tp-info-btn{width:28px;height:28px;border:1px solid var(--tp-border);border-radius:6px;background:#eef2ff;display:flex;align-items:center;justify-content:center;color:var(--tp-muted);cursor:pointer}
.tp-info-btn:hover{color:#111827;border-color:#d1d5db}

.tp-short-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:stretch}
@media (max-width:900px){.tp-short-grid{grid-template-columns:1fr}}
.tp-short-text{color:var(--tp-muted);font-size:14px;line-height:1.6}
.tp-media{border-radius:10px;overflow:hidden;border:1px solid var(--tp-border);background:#ffffff}
.tp-media video,.tp-media img{width:100%;height:100%;display:block;object-fit:cover}

.tp-itinerary-list{display:grid;gap:12px}
.tp-day{border:1px solid var(--tp-border);border-radius:8px;padding:14px;background:#fff}
.tp-day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.tp-day-title{font-weight:800;color:var(--tp-text);font-size:15px;margin:0}
.tp-day-tag{color:var(--tp-muted);font-size:12px;font-weight:600;margin-top:2px}
.tp-day-desc{color:var(--tp-muted);font-size:13px;margin:10px 0 12px;line-height:1.5}
.tp-gallery{display:flex;gap:10px;flex-wrap:wrap}
.tp-thumb{width:120px;height:80px;border-radius:8px;overflow:hidden;border:1px solid var(--tp-border);cursor:pointer;position:relative}
.tp-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.tp-thumb:hover img{transform:scale(1.03)}
@media (max-width: 600px){
  .tp-gallery{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
  .tp-thumb{flex:0 0 70%;scroll-snap-align:start}
}

.tp-included-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:900px){.tp-included-grid{grid-template-columns:1fr}}
.tp-listbox{border:1px solid var(--tp-border);border-radius:8px;padding:16px;background:#fff}
.tp-listbox h3{margin:0 0 10px;font-size:16px;color:var(--tp-text)}
.tp-ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.tp-ul li{display:flex;gap:10px;align-items:flex-start;color:var(--tp-muted);font-size:13px;line-height:1.4}
.tp-check{color:#16a34a;font-weight:900;margin-top:1px}
.tp-dot{color:var(--tp-muted);margin-top:3px}

.tp-optional-list{display:grid;gap:12px}
.tp-opt{border:1px solid var(--tp-border);border-radius:8px;padding:14px;background:#fff;display:grid;grid-template-columns:18px 120px 1fr 90px;gap:12px;align-items:center}
@media (max-width:700px){.tp-opt{grid-template-columns:18px 100px 1fr}.tp-opt-price{grid-column:3 / -1;justify-self:end}}
.tp-opt img{width:120px;height:70px;object-fit:cover;border-radius:8px;border:1px solid var(--tp-border);cursor:pointer;transition:transform .25s ease}
.tp-opt img:hover{transform:scale(1.02)}
.tp-opt-title{font-weight:800;color:var(--tp-text);font-size:14px;margin:0 0 2px}
.tp-opt-short{color:var(--tp-muted);font-size:12px;margin:0}
.tp-opt-price{font-weight:800;color:var(--tp-text);text-align:right}

.tp-right{align-self:flex-start;height:fit-content}
.tp-booking-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.tp-rating{display:flex;align-items:center;gap:8px;color:var(--tp-muted);font-size:12px}
.tp-star{color:#f59e0b}
.tp-field{display:grid;gap:6px;margin:12px 0}
.tp-field label{font-size:12px;color:var(--tp-muted)}
.tp-field select{width:100%;border:1px solid var(--tp-border);border-radius:8px;padding:10px 12px;background:#fff;font-size:14px}
.tp-advanced-list{display:grid;gap:8px}
.tp-adv{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--tp-border);border-radius:8px;padding:10px 12px;background:#fff}
.tp-adv-left{display:flex;align-items:center;gap:8px;color:var(--tp-text);font-size:13px}
.tp-adv-check{width:16px;height:16px}
.tp-adv-price{font-weight:800;color:var(--tp-text);font-size:13px}
.tp-breakdown{margin-top:12px;border-top:1px solid var(--tp-border);padding-top:12px}
.tp-row{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--tp-muted);font-size:13px;padding:3px 0}
.tp-row strong{color:var(--tp-text)}
.tp-total{margin-top:10px;border-top:1px solid var(--tp-border);padding-top:10px}
.tp-total .tp-row{font-size:14px}
.tp-book-btn{margin-top:14px;width:100%;border:none;border-radius:8px;padding:12px 14px;background:#ffffff;color:#fff;font-weight:800;font-size:14px;cursor:pointer}
.tp-book-btn:hover{filter:brightness(1.05)}
.tp-footnote{margin-top:12px;color:var(--tp-muted);font-size:12px;line-height:1.45}

/* Lightboxes */
.tp-overlay{position:fixed;inset:0;display:none;background:rgba(15,23,42,.72);align-items:center;justify-content:center;z-index:99999;padding:18px}
.tp-overlay.tp-open{display:flex}
.tp-lightbox{width:min(1100px,100%);background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35);transform:translateY(6px);opacity:0;transition:all .22s ease}
.tp-overlay.tp-open .tp-lightbox{transform:translateY(0);opacity:1}
.tp-lb-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:rgba(15,23,42,.45);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px)}
.tp-lb-close:hover{background:rgba(15,23,42,.65)}
.tp-gallery-lb{position:relative;width:100%;height:min(72vh,720px);background:#ffffff}
.tp-gallery-lb img{width:100%;height:100%;object-fit:contain;display:block;opacity:0;transform:scale(.98);transition:opacity .22s ease,transform .22s ease}
.tp-gallery-lb img.tp-show{opacity:1;transform:scale(1)}
.tp-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:rgba(15,23,42,.45);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.tp-nav:hover{background:rgba(15,23,42,.65)}
.tp-nav.tp-prev{left:14px}
.tp-nav.tp-next{right:14px}

.tp-split{display:grid;grid-template-columns:1.35fr 1fr;min-height:min(72vh,720px)}
@media (max-width:900px){.tp-split{grid-template-columns:1fr}}
.tp-split-left{background:#ffffff;display:flex;align-items:center;justify-content:center}
.tp-split-left img{width:100%;height:100%;object-fit:contain}
.tp-split-right{padding:22px}
.tp-split-right h3{margin:0 0 10px;font-size:18px}
.tp-split-right p{margin:0;color:var(--tp-muted);line-height:1.6;font-size:14px;white-space:pre-line}

.tp-acc-item .tp-acc-btn{border:1px solid var(--tp-border);background:#fff;border-radius:8px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:var(--tp-muted);cursor:pointer}
.tp-acc-item .tp-acc-btn:hover{border-color:#d1d5db;color:#111827}
.tp-acc-item .tp-acc-body{display:none}
.tp-acc-item.tp-open .tp-acc-body{display:block}
.tp-acc-item.tp-open .tp-acc-btn{transform:rotate(180deg)}
.tp-price-tag{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;background:rgba(245,158,11,.18);color:#b45309;font-weight:800;font-size:12px;margin-left:8px}

.tp-gallery-full{grid-column:1 / -1}
.tp-related-wrap,
.tp-reviews-wrap{max-width:90%;margin:0 auto 32px;padding:0 18px}
.tp-reviews-wrap{margin-bottom:48px}

/* Highlight icon style like screenshot */
.tp-highlight-icon{
  width:44px;height:44px;border-radius:999px;
  background:#f3f6fb;
  display:flex;align-items:center;justify-content:center;
  flex:0 0 44px;
  box-shadow: inset 0 0 0 1px rgba(17,24,39,.06);
}
.tp-highlight-icon i,
.tp-highlight-icon svg,
.tp-highlight-icon span{
  font-size:18px;line-height:1;color:#111827;
}

/* Description long content should look like normal content */
.tp-long-content{width:100%}
.tp-long-content p{margin:0 0 14px}
.tp-long-content h1,.tp-long-content h2,.tp-long-content h3{margin:18px 0 10px}

/* Itinerary layout like screenshot */
.tp-itinerary-list{display:flex;flex-direction:column;gap:14px}
.tp-day{border:1px solid var(--tp-border);border-radius:10px;overflow:hidden;background:#fff}
.tp-day-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;cursor:pointer}
.tp-day-title{font-weight:800}
.tp-day-tag{font-weight:700;color:var(--tp-muted)}
.tp-acc-btn{display:none}
.tp-acc-body{padding:0 16px 16px}
.tp-day-desc{margin:0 0 14px;color:var(--tp-muted)}
.tp-thumbs{display:flex;gap:10px;flex-wrap:wrap}
.tp-thumb{border-radius:10px;overflow:hidden}

.tp-period-picker{display:flex;gap:10px;align-items:center}
.tp-period-picker .tp-input{flex:1}
.tp-period-open{width:44px;height:44px;border-radius:12px;border:1px solid var(--tp-border);background:#fff;cursor:pointer}
.tp-period-open:hover{border-color:#d1d5db}
.tp-modal{width:min(920px, calc(100vw - 28px));max-height:calc(100vh - 80px);overflow:auto;background:#fff;border-radius:5px;box-shadow:0 30px 80px rgba(0,0,0,.25);padding:18px;position:relative}
.tp-modal-x{position:sticky;top:0;float:right;width:38px;height:38px;border-radius:10px;border:1px solid var(--tp-border);background:#fff;cursor:pointer}
.tp-modal-head{padding:8px 4px 14px}
.tp-modal-sub{display:grid;gap:6px;padding:0 4px 12px}
.tp-modal-sub label{font-size:12px;color:var(--tp-muted)}
.tp-modal-select{width:100%;border:1px solid var(--tp-border);border-radius:8px;padding:10px 12px;font-size:14px;background:#fff}
.tp-month-chips{display:flex;gap:10px;flex-wrap:wrap;padding:0 4px 14px}
.tp-chip{border:1px solid #f59e0b;color:#f59e0b;background:#fff;border-radius:5px;padding:10px 16px;font-weight:800;cursor:pointer}
.tp-chip.tp-active{background:#f59e0b;color:#fff}
.tp-period-list{display:flex;flex-direction:column;gap:12px;padding:0 4px 6px}
.tp-period-row{display:grid;grid-template-columns:36px 1.2fr .7fr .7fr;gap:14px;align-items:center;border:1px solid var(--tp-border);border-radius:5px;padding:14px}
.tp-period-row.tp-selected{border-color:#f59e0b;box-shadow:0 0 0 2px rgba(249,115,22,.15) inset}
.tp-period-title{font-weight:900}
.tp-period-sub{color:var(--tp-muted);font-size:13px}
.tp-period-price{justify-self:end;font-weight:900}

.tp-opt-more{margin-top:10px}
.tp-opt-more-btn{border:1px solid var(--tp-border);background:#fff;border-radius:5px;padding:10px 14px;font-weight:800;cursor:pointer}
.tp-opt-more-btn:hover{border-color:#d1d5db}

/* Make travel period field look like dropdown */
.tp-period-picker{position:relative}
.tp-period-picker .tp-input{cursor:pointer;padding-right:44px}
.tp-period-open{position:absolute;right:0;top:0}
.tp-period-open{display:flex;align-items:center;justify-content:center;font-size:18px}

/* Sticky booking box */
@media (min-width: 980px){
  .tp-layout{align-items:flex-start}
  aside.tp-right{position:sticky;top:24px;align-self:flex-start;z-index:5}
  aside.tp-right .tp-card{position:static}
}

/* Sticky requires no overflow hidden on ancestors */
.tp-wrap,.tp-container,.tp-layout,.tp-main{overflow:visible}

/* Details header, left aligned and tighter */
.tp-day-head{padding:10px 14px}
.tp-day-title{text-align:left;flex:1}
.tp-day-tag{text-align:right}

/* Price color */
:root{--tp-price:#f59e0b}
.tp-breakdown strong,
.tp-opt-price,
.tp-period-price,
#tp_total,#tp_base,#tp_flight,#tp_room_price,#tp_hotel_price,#tp_meal_price,#tp_extras{color:var(--tp-price)}
