/* =========================================================
   AMSIR — Tours module + site-wide extras
   (tour cards, listing, detail page, scroll-top, WhatsApp, reveal)
   ========================================================= */

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
.link-btn{background:none;border:0;color:var(--red);font:600 13px var(--sans);letter-spacing:1px;text-transform:uppercase;cursor:pointer;display:inline-flex;gap:8px;align-items:center;padding:6px 0;}
.link-btn:hover{color:var(--red-dark);}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;}
.sec-head h2{margin-bottom:0;}
.btn-wa{background:#25d366;color:#fff;}
.btn-wa:hover{background:#1ebe5a;color:#fff;}

/* ---------- tour cards ---------- */
.tour-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.tour-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s, box-shadow .25s, border-color .25s;}
.tour-card:hover{transform:translateY(-5px);box-shadow:0 22px 40px rgba(20,18,16,.10);border-color:#e0c9cd;}
.tc-photo{position:relative;display:block;height:215px;overflow:hidden;background:linear-gradient(135deg,#2b2623,#6b1a27);}
.tc-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.tour-card:hover .tc-photo img{transform:scale(1.07);}
.tc-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.45));pointer-events:none;}
.tc-days{position:absolute;left:14px;bottom:12px;z-index:1;color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.5px;}
.tc-days i{margin-right:4px;}
.tc-cat{position:absolute;top:14px;left:14px;z-index:1;background:var(--red);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;padding:5px 10px;border-radius:3px;}
.tc-body{padding:22px 22px 22px;display:flex;flex-direction:column;flex:1;}
.tc-loc{font-size:12.5px;color:var(--grey);margin-bottom:8px;}
.tc-loc i{color:var(--red);margin-right:4px;}
.tc-body h3{font-size:20px;line-height:1.25;margin-bottom:10px;}
.tc-body h3 a:hover{color:var(--red);}
.tc-body p{font-size:14px;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.tc-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--ink);margin-bottom:18px;}
.tc-meta i{color:var(--red);margin-right:5px;}
.tc-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line);}
.tc-price small{font-size:11.5px;color:var(--grey);text-transform:uppercase;letter-spacing:.8px;}
.tc-price strong{font-family:var(--serif);font-size:22px;color:var(--black);}

/* ---------- listing filters ---------- */
.tour-filters{display:flex;flex-direction:column;gap:20px;margin-bottom:38px;}
.tf-chips{display:flex;flex-wrap:wrap;gap:10px;}
.chip{font:600 13px var(--sans);letter-spacing:.4px;padding:10px 18px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);cursor:pointer;transition:.2s;}
.chip span{display:inline-block;margin-left:6px;font-size:11px;background:var(--cream);border-radius:999px;padding:1px 8px;color:var(--grey);}
.chip:hover{border-color:var(--red);color:var(--red);}
.chip.active{background:var(--black);border-color:var(--black);color:#fff;}
.chip.active span{background:rgba(255,255,255,.18);color:#fff;}
.tf-controls{display:grid;grid-template-columns:1fr 200px 200px;gap:14px;}
.tf-search{position:relative;}
.tf-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--grey);font-size:14px;}
.tf-search input{width:100%;padding:14px 16px 14px 42px;border:1px solid var(--line);border-radius:4px;font:14px var(--sans);}
.tf-search input:focus{outline:none;border-color:var(--red);}
.tour-empty{text-align:center;padding:70px 20px;border:1px dashed var(--line);border-radius:10px;}
.tour-empty i{font-size:34px;color:var(--red);margin-bottom:14px;}

/* ---------- tour detail: hero ---------- */
.tour-hero{position:relative;background:var(--black);color:#fff;padding:64px 0 120px;overflow:hidden;}
.th-bg{position:absolute;inset:0;}
.th-bg img{width:100%;height:100%;object-fit:cover;opacity:.55;}
.th-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,9,8,.9) 0%,rgba(10,9,8,.6) 55%,rgba(10,9,8,.25) 100%),radial-gradient(circle at 12% 15%,rgba(192,18,48,.35),transparent 45%);}
.tour-hero .container{position:relative;z-index:1;}
.tour-hero h1{color:#fff;font-size:46px;max-width:820px;margin:10px 0 14px;}
.th-loc{display:inline-block;color:#ffb3bd;font-size:14px;font-weight:600;letter-spacing:.5px;}
.th-loc i{margin-right:6px;}
.th-teaser{color:#e1dad3;font-size:17px;max-width:680px;}
.th-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
.th-badges span{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);padding:7px 14px;border-radius:999px;font-size:13px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.th-badges i{color:#ff8a98;margin-right:6px;}

/* quick facts */
.quick-facts{position:relative;z-index:2;margin-top:-64px;background:#fff;border-radius:10px;box-shadow:0 18px 50px rgba(20,18,16,.16);display:grid;grid-template-columns:repeat(5,1fr);}
.qf{display:flex;gap:14px;align-items:center;padding:22px 24px;border-left:1px solid var(--line);}
.qf:first-child{border-left:0;}
.qf>i{width:42px;height:42px;border-radius:50%;background:#fbeced;color:var(--red);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.qf small{display:block;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--grey);line-height:1.3;}
.qf strong{font-size:14.5px;line-height:1.3;color:var(--black);}

/* tab nav */
.tour-tabs{position:sticky;top:var(--header-h,72px);z-index:90;background:#fff;border-bottom:1px solid var(--line);margin-top:28px;}
.tour-tabs .container{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;}
.tour-tabs .container::-webkit-scrollbar{display:none;}
.tour-tabs a{flex:0 0 auto;white-space:nowrap;padding:17px 18px;font-size:13px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--grey);border-bottom:3px solid transparent;transition:.2s;}
.tour-tabs a:hover{color:var(--ink);}
.tour-tabs a.active{color:var(--red);border-bottom-color:var(--red);}

/* layout */
.tour-body{padding:46px 0 80px;}
.tour-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:50px;align-items:start;}
.tour-side{position:sticky;top:calc(var(--header-h,72px) + 70px);}
.tour-sec{padding:34px 0 40px;border-bottom:1px solid var(--line);}
.tour-sec:last-child{border-bottom:0;}
.tour-sec h2{font-size:30px;}
.lead-p{font-size:16.5px;line-height:1.85;color:#55504c;}
.mini-h{font-family:var(--sans);font-size:13px;letter-spacing:2px;text-transform:uppercase;margin:26px 0 14px;color:var(--black);}
.highlight-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;}
.highlight-list li{display:flex;gap:10px;font-size:14.5px;color:var(--ink);}
.highlight-list i{color:var(--red);margin-top:5px;}
.fact-pills{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px;}
.fact-pills div{background:var(--cream);border-radius:8px;padding:18px;}
.fact-pills i{color:var(--red);font-size:18px;margin-bottom:8px;display:block;}
.fact-pills small{display:block;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--grey);}
.fact-pills strong{font-size:14px;line-height:1.4;display:block;margin-top:2px;}

/* gallery */
.tour-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:170px 170px;gap:10px;margin-bottom:10px;}
.tg-item{border:0;padding:0;cursor:zoom-in;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#2b2623,#6b1a27);}
.tg-0{grid-row:1 / span 2;}
.tg-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.tg-item:hover img{transform:scale(1.06);}

/* itinerary */
.itin{list-style:none;margin:30px 0 0;padding:0 0 0 0;position:relative;}
.itin::before{content:"";position:absolute;left:27px;top:20px;bottom:20px;width:2px;background:repeating-linear-gradient(to bottom,#e3c6cb 0 6px,transparent 6px 12px);}
.itin-day{position:relative;margin-bottom:14px;}
.itin-head{width:100%;display:flex;align-items:center;gap:18px;padding:0;background:none;border:0;cursor:pointer;text-align:left;font-family:var(--sans);}
.itin-num{position:relative;z-index:1;flex:0 0 56px;height:56px;border-radius:50%;background:#fff;border:2px solid var(--red);color:var(--red);display:flex;flex-direction:column;align-items:center;justify-content:center;font:700 19px/1 var(--serif);transition:.25s;}
.itin-num small{font:600 9px var(--sans);letter-spacing:1.4px;text-transform:uppercase;margin-bottom:2px;}
.itin-day.open .itin-num{background:var(--red);color:#fff;}
.itin-title{flex:1;background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 18px;transition:.25s;}
.itin-day.open .itin-title,.itin-head:hover .itin-title{border-color:var(--red);}
.itin-title strong{display:block;font:700 17px var(--serif);color:var(--black);}
.itin-title em{font-style:normal;font-size:12.5px;color:var(--grey);}
.itin-title em i{color:var(--red);margin-right:4px;}
.itin-caret{color:var(--red);margin-right:6px;transition:transform .25s;}
.itin-day.open .itin-caret{transform:rotate(180deg);}
.itin-head .itin-caret{position:absolute;right:20px;top:22px;}
.itin-body{display:none;margin:10px 0 6px 74px;padding:20px 22px;background:var(--cream);border-radius:8px;}
.itin-day.open .itin-body{display:block;animation:fadeDown .3s ease;}
@keyframes fadeDown{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
.itin-body p{color:#55504c;font-size:15px;}
.itin-items{display:grid;gap:7px;margin:4px 0 16px;}
.itin-items li{font-size:14px;color:var(--ink);display:flex;gap:10px;align-items:baseline;}
.itin-items i{font-size:6px;color:var(--red);transform:translateY(-3px);}
.itin-meta{display:flex;flex-wrap:wrap;gap:8px 26px;padding-top:14px;border-top:1px dashed #dcd3c8;font-size:13px;color:var(--ink);}
.itin-meta i{color:var(--red);margin-right:6px;}

/* included / excluded */
.inc-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px;}
.inc-col{border-radius:10px;padding:26px;}
.inc-yes{background:#f2f8f3;border:1px solid #d6e8d9;}
.inc-no{background:#fdf3f4;border:1px solid #f1d4d8;}
.inc-col h4{font-size:18px;display:flex;gap:10px;align-items:center;}
.inc-yes h4 i{color:#2c8a4b;}
.inc-no h4 i{color:var(--red);}
.inc-col li{display:flex;gap:11px;font-size:14px;margin-bottom:11px;color:var(--ink);}
.inc-yes li i{color:#2c8a4b;margin-top:5px;font-size:12px;}
.inc-no li i{color:var(--red);margin-top:5px;font-size:12px;}

/* prices */
.price-table-wrap{overflow-x:auto;margin-top:16px;}
.price-table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:560px;}
.price-table th{text-align:left;background:var(--black);color:#fff;padding:14px 16px;font:600 12px var(--sans);letter-spacing:1.2px;text-transform:uppercase;}
.price-table td{padding:16px;border-bottom:1px solid var(--line);}
.price-table td small{color:var(--grey);}
.price-table tr:nth-child(even) td{background:var(--cream);}
.fine{font-size:12.5px;margin-top:12px;}

/* map */
.tour-map iframe{width:100%;height:380px;border:0;border-radius:10px;display:block;background:var(--cream);}

/* booking card */
.book-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:10px;box-shadow:0 20px 50px rgba(20,18,16,.10);padding:26px;}
.bc-price{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line);}
.bc-price small{display:block;font-size:11.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--grey);}
.bc-price strong{font:800 36px var(--serif);color:var(--black);}
.bc-price span{font-size:13px;color:var(--grey);margin-left:6px;}
.book-card form{display:grid;gap:12px;}
.book-card .form-control{padding:12px 14px;}
.book-card label{font-size:11.5px;letter-spacing:1px;text-transform:uppercase;color:var(--grey);display:block;margin-bottom:4px;}
.bk-row{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;}
.book-card .btn-red{justify-content:center;width:100%;}
.bk-status{font-size:13px;min-height:0;}
.bc-alt{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.bc-alt .btn{justify-content:center;padding:11px 10px;}
.bc-trust{margin-top:18px;display:grid;gap:8px;font-size:13px;color:var(--grey);}
.bc-trust i{color:var(--red);width:18px;}

.mobile-book-bar{display:none;}

/* lightbox */
.lightbox{position:fixed;inset:0;background:rgba(10,9,8,.92);z-index:3000;display:flex;align-items:center;justify-content:center;padding:30px;cursor:zoom-out;}
.lightbox img{max-width:min(1200px,100%);max-height:100%;border-radius:6px;cursor:default;}
.lb-close{position:absolute;top:18px;right:22px;background:none;border:0;color:#fff;font-size:28px;cursor:pointer;}

/* ---------- home: featured tours ---------- */
.feat-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:40px;}
.feat-head h2{font-size:38px;margin:0;}

/* ---------- floating buttons ---------- */
.float-stack{position:fixed;right:22px;bottom:22px;z-index:900;display:flex;flex-direction:column;gap:12px;align-items:center;}
.float-btn{width:52px;height:52px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;cursor:pointer;box-shadow:0 10px 26px rgba(0,0,0,.25);transition:transform .25s, opacity .25s, visibility .25s, background .2s;}
.float-btn:hover{transform:translateY(-3px);}
.fb-wa{background:#25d366;font-size:26px;position:fixed;left:22px;bottom:22px;z-index:900;}
.fb-wa:hover{background:#1ebe5a;}
.fb-top{background:var(--black);position:relative;opacity:0;visibility:hidden;transform:translateY(12px);}
.fb-top.show{opacity:1;visibility:visible;transform:none;}
.fb-top.show:hover{transform:translateY(-3px);background:var(--red);}
.fb-top svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);}
.fb-top circle{fill:none;stroke-width:3;}
.fb-top .ring-bg{stroke:rgba(255,255,255,.18);}
.fb-top .ring{stroke:#ff4a63;stroke-linecap:round;transition:stroke-dashoffset .1s linear;}
.fb-top i{position:relative;font-size:17px;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:none;}
.no-js .reveal{opacity:1;transform:none;}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .tour-layout{grid-template-columns:minmax(0,1fr) 330px;gap:34px;}
  .quick-facts{grid-template-columns:repeat(3,1fr);}
  .qf:nth-child(4){border-left:0;}
  .qf:nth-child(n+4){border-top:1px solid var(--line);}
}
@media (max-width:991px){
  .tour-grid{grid-template-columns:repeat(2,1fr);}
  .tour-layout{grid-template-columns:1fr;}
  .tour-side{position:static;order:-1;}
  .tf-controls{grid-template-columns:1fr 1fr;}
  .tf-search{grid-column:1/-1;}
  .tour-hero h1{font-size:36px;}
  .mobile-book-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:950;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(0,0,0,.1);padding:10px 18px;justify-content:space-between;align-items:center;transform:translateY(0);transition:transform .3s;}
  .mobile-book-bar.hide{transform:translateY(110%);}
  .mobile-book-bar strong{font:800 22px var(--serif);}
  .mobile-book-bar small{font-size:11px;text-transform:uppercase;color:var(--grey);letter-spacing:1px;}
  .tour-body{padding-bottom:110px;}
  body.has-book-bar .float-stack,body.has-book-bar .fb-wa{bottom:84px;}
}
@media (max-width:767px){
  .tour-grid{grid-template-columns:1fr;}
  .tour-hero{padding:44px 0 100px;}
  .tour-hero h1{font-size:28px;}
  .th-teaser{font-size:15px;}
  .quick-facts{grid-template-columns:1fr 1fr;margin-top:-56px;}
  .qf{padding:16px;border-left:0 !important;border-top:1px solid var(--line);}
  .qf:nth-child(-n+2){border-top:0;}
  .qf:nth-child(even){border-left:1px solid var(--line) !important;}
  .qf:last-child{grid-column:1/-1;}
  .tour-gallery{grid-template-columns:1fr 1fr;grid-template-rows:200px 110px 110px;}
  .tg-0{grid-column:1/-1;grid-row:1;}
  .highlight-list,.fact-pills,.inc-grid{grid-template-columns:1fr;}
  .itin::before{left:23px;}
  .itin-num{flex-basis:48px;height:48px;}
  .itin-body{margin-left:0;}
  .itin-head .itin-caret{top:18px;right:14px;}
  .tour-sec h2{font-size:25px;}
  .tf-controls{grid-template-columns:1fr;}
  .tf-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 -24px;padding:0 24px 4px;scrollbar-width:none;}
  .chip{white-space:nowrap;}
  .feat-head h2{font-size:28px;}
  .price-table{min-width:0;}
  .price-table thead{display:none;}
  .price-table tr{display:block;border:1px solid var(--line);border-radius:8px;margin-bottom:12px;overflow:hidden;}
  .price-table td{display:flex;justify-content:space-between;gap:12px;padding:11px 14px;}
  .price-table td::before{content:attr(data-l);color:var(--grey);font-size:12px;letter-spacing:.8px;text-transform:uppercase;}
  .price-table td:first-child{background:var(--cream);display:block;}
  .price-table td:first-child::before{display:none;}
  .float-stack{right:14px;bottom:14px;}
  .fb-wa{left:14px;bottom:14px;}
  .float-btn{width:46px;height:46px;}
}

/* ---------- nav: "Hot" tag + nested (flyout) dropdowns ---------- */
.nav-tag{display:inline-block;background:var(--red);color:#fff;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:2px 6px;border-radius:999px;vertical-align:2px;margin-left:2px;}
.main-nav .sub-menu .has-flyout{position:relative;}
.main-nav .sub-menu .has-flyout > a{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.main-nav .flyout-caret{font-size:10px;color:var(--grey);}
.main-nav .sub-menu .flyout{
  position:absolute;top:-10px;left:100%;min-width:230px;background:#fff;
  box-shadow:0 18px 40px rgba(0,0,0,.14);border-top:3px solid var(--red);padding:10px 0;
  opacity:0;visibility:hidden;transform:translateX(6px);transition:.2s;
}
.main-nav .has-flyout:hover > .flyout,.main-nav .has-flyout:focus-within > .flyout{opacity:1;visibility:visible;transform:none;}

/* ---------- destination & deal tiles ---------- */
.dest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.dest-card{position:relative;border-radius:10px;overflow:hidden;height:230px;display:flex;align-items:flex-end;background:linear-gradient(135deg,#2b2623,#6b1a27);}
.dest-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.dest-card:hover img{transform:scale(1.08);}
.dest-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.72));}
.dest-card .dc-body{position:relative;z-index:1;padding:18px 20px;color:#fff;width:100%;}
.dest-card h4{color:#fff;font-size:19px;margin:0 0 4px;}
.dest-card .dc-body span{font-size:12px;color:#e7d9db;}
.dest-card .dc-link{position:absolute;inset:0;z-index:2;}
.dest-card.lg{grid-column:span 2;height:330px;}
.dest-card.lg h4{font-size:26px;}

.deal-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px;}
.deal-ribbon{position:absolute;top:14px;right:14px;z-index:1;background:var(--black);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;padding:5px 10px;border-radius:3px;}
.deal-section{margin-bottom:56px;}
.deal-section:last-child{margin-bottom:0;}
.deal-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:26px;}
.deal-section-head h3{font-size:25px;margin:0;}
.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.theme-tile{background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:26px 20px;text-align:center;transition:.2s;}
.theme-tile:hover{border-color:var(--red);transform:translateY(-4px);box-shadow:0 14px 30px rgba(20,18,16,.08);}
.theme-tile i{font-size:26px;color:var(--red);margin-bottom:12px;display:block;}
.theme-tile h5{font-size:15px;margin:0 0 4px;}
.theme-tile span{font-size:12.5px;color:var(--grey);}

@media (max-width:1100px){
  .dest-grid{grid-template-columns:repeat(3,1fr);}
  .dest-card.lg{grid-column:span 2;}
}
@media (max-width:767px){
  .dest-grid{grid-template-columns:1fr 1fr;}
  .dest-card.lg{grid-column:span 2;height:220px;}
  .dest-card{height:170px;}
  .theme-grid{grid-template-columns:1fr 1fr;}
}
