:root{
  --ink:#17212B;
  --muted:#667085;
  --bg:#FFFFFF;
  --bg-soft:#FBF7F4;
  --line:#EDE6E0;
  --brand:#E8542E;
  --brand-dark:#A73C21;
  --brand-tint:#FCE6DF;
  --brand-rgb:232,84,46;
  --brand-dark-rgb:167,60,33;
  --gold:#C8912B;
  --coral:#E8542E;
  --coral-tint:#FCE6DF;
  --teal:#0F8A6C;
  --teal-tint:#DFF3EC;
  --card:#FFFFFF;
  /* Logo brand colors (2026-09-13, finalized logo: blue "Dubai" wordmark,
     orange "Tourism Services" script, yellow flame accent) — used for the
     new Badge color options in the tour wizard, kept separate from the
     older --brand/--gold/--teal set used elsewhere in the site theme. */
  --logo-blue:#1CA8DE;
  --logo-orange:#F4801C;
  --logo-yellow:#FFC72C;
}
*{box-sizing:border-box;}
body{margin:0;font-family:'Poppins',sans-serif;color:var(--ink);background:var(--bg);}
h1,h2,h3{font-family:'Poppins',sans-serif;margin:0;font-weight:600;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1340px;margin:0 auto;padding:0 32px;}

.draft-bar{background:var(--bg-soft);color:var(--muted);text-align:center;font-size:12.5px;padding:7px 16px;border-bottom:1px solid var(--line);}
.draft-bar b{color:var(--ink);}

header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);}
nav{display:flex;align-items:center;justify-content:space-between;padding:14px 32px;max-width:1340px;margin:0 auto;gap:16px;}
.logo{display:flex;align-items:center;gap:6px;flex-shrink:0;text-decoration:none;color:inherit;}
.logo svg{flex-shrink:0;}
.logo-word{font-family:'Permanent Marker',cursive;font-size:20px;line-height:1;letter-spacing:.2px;}
.logo-navy{color:#173B63;}
.logo-blue{color:var(--brand);}
.footer-logo .logo-word{color:var(--ink);font-size:18px;}
.nav-mid{display:flex;align-items:center;gap:6px;font-size:14.5px;font-weight:500;color:var(--ink);cursor:pointer;flex-shrink:0;}
.nav-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.nav-pill{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--ink);border:1px solid var(--line);padding:9px 15px;border-radius:9px;white-space:nowrap;cursor:pointer;background:#fff;font-family:inherit;}
.nav-pill svg{width:16px;height:16px;color:var(--muted);flex-shrink:0;}
.nav-pill:hover{border-color:var(--brand);}
.icon-circle{width:36px;height:36px;border-radius:50%;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;text-decoration:none;color:inherit;}
.icon-circle svg{width:18px;height:18px;color:var(--muted);}

/* Helpline card (2026-09-09) — small dropdown under the header Helpline
   pill with WhatsApp / Email / Live Chat, toggled by dtsToggleHelplineCard()
   in main.js. Positioned the same way as other header dropdowns on this
   page (relative wrapper + absolute card). */
.helpline-wrap{position:relative;}
.helpline-card{position:absolute;top:calc(100% + 10px);left:0;width:340px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 32px rgba(20,25,40,.14);padding:0;z-index:50;display:none;overflow:hidden;}
.helpline-card.open{display:block;}
/* Big "Need Help?" card with per-channel pill CTA buttons (2026-09-13,
   user's request to match a reference design) — supersedes the earlier
   compact single-line rows. */
.helpline-card-head{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,#EEF3FF,#F7F9FF);}
.helpline-head-icon{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px rgba(20,25,40,.08);}
.helpline-head-icon svg{width:20px;height:20px;color:var(--brand);}
.helpline-head-text{flex:1;display:flex;flex-direction:column;min-width:0;}
.helpline-head-text b{font-size:15.5px;color:var(--ink);}
.helpline-head-text span{font-size:12px;color:var(--muted);}
.helpline-head-note{font-size:11px;color:var(--muted);text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0;}
.helpline-head-note svg{width:14px;height:14px;color:var(--brand);}
.helpline-row{display:flex;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;border:none;background:none;width:100%;text-align:left;font-family:inherit;cursor:pointer;border-top:1px solid var(--line);transition:background .15s;}
.helpline-row:hover{background:var(--bg-soft);}
.helpline-row-whatsapp{background:rgba(37,211,102,.06);}
.helpline-row-email{background:rgba(232,84,46,.05);}
.helpline-row-chat{background:rgba(15,138,108,.06);}
.helpline-row-icon{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.helpline-row-icon svg{width:18px;height:18px;}
.helpline-icon-whatsapp{background:#25D366;}
.helpline-icon-email{background:var(--brand);}
.helpline-icon-chat{background:var(--teal);}
.helpline-row-text{flex:1;display:flex;flex-direction:column;min-width:0;}
.helpline-row-text b{font-size:13.5px;color:var(--ink);}
.helpline-row-text span{font-size:11.5px;color:var(--muted);font-weight:500;}
.helpline-row-cta{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:20px;color:#fff;font-size:12px;font-weight:700;white-space:nowrap;flex-shrink:0;}
.helpline-row-cta svg{width:13px;height:13px;}
.helpline-cta-whatsapp{background:#25D366;}
.helpline-cta-email{background:var(--brand);}
.helpline-cta-chat{background:var(--teal);}
.helpline-foot{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 16px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line);}
.helpline-foot svg{width:14px;height:14px;flex-shrink:0;}

/* Header account dropdown (2026-09-09, redesigned same day after the first
   icon-circle version rendered too faint to read at 17px — user's
   feedback). Plain-text menu rows instead, GetYourGuide-style: a header
   row with a bigger avatar + full name/email, then Wishlist/My Account/
   Support as simple bold rows with a hover background, a divider, then a
   muted Log out row. Own box styling now (not reusing .helpline-card)
   since the header row needs more room than a helpline option does. */
.account-wrap{position:relative;}
.account-pill{display:flex;align-items:center;gap:8px;padding-left:6px;}
.account-avatar-badge{width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.account-avatar-badge img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.account-avatar-badge-lg{width:44px;height:44px;font-size:17px;}
.account-card{position:absolute;top:calc(100% + 10px);right:0;left:auto;width:270px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px rgba(20,25,40,.14);padding:14px;z-index:50;display:none;}
.account-card.open{display:block;}
.account-card-head{display:flex;align-items:center;gap:12px;padding:2px 4px 12px;}
.account-card-name{font-size:14.5px;font-weight:700;line-height:1.3;}
.account-card-email{font-size:12px;color:var(--muted);margin-top:1px;}
.account-card-divider{height:1px;background:var(--line);margin:6px 0;}
.account-menu-row{display:block;width:100%;text-align:left;padding:11px 10px;border-radius:9px;border:none;background:none;font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;cursor:pointer;transition:background .15s;}
.account-menu-row:hover{background:var(--bg-soft);}
.account-menu-row-muted{color:var(--muted);font-weight:500;}
@media (max-width:900px){
  .account-pill span:not(.account-avatar-badge){display:none;}
  .account-pill{padding:0;}
}
.icon-btn{width:22px;height:22px;color:var(--ink);opacity:.8;flex-shrink:0;cursor:pointer;}
.nav-cta{font-size:14px;font-weight:600;color:#fff;background:var(--brand);border:1px solid var(--brand);padding:9px 20px;border-radius:8px;white-space:nowrap;flex-shrink:0;}
.nav-cta:hover{background:var(--brand-dark);}
.hamburger{display:none;width:22px;height:22px;flex-shrink:0;cursor:pointer;}

.service-tabs{background:#fff;border-bottom:1px solid var(--line);}
.service-tabs .wrap{display:flex;gap:10px;padding:14px 32px;overflow-x:auto;}
.tab{display:flex;align-items:center;gap:8px;padding:11px 20px;border-radius:10px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;border:1px solid transparent;}
.tab.active{background:var(--bg-soft);color:var(--ink);border-color:var(--line);}
.tab svg{width:18px;height:18px;flex-shrink:0;}

.hero{position:relative;height:420px;overflow:hidden;background:#0d1621;}
.hero img{width:100%;height:100%;object-fit:cover;object-position:center bottom;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,15,20,.42) 0%,rgba(8,15,20,.40) 45%,rgba(6,12,16,.82) 100%);}
.hero-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0 24px 46px;text-align:center;}
.hero-content h1{color:#fff;font-size:40px;font-weight:700;margin-bottom:8px;letter-spacing:-.01em;}
.hero-content p{color:rgba(255,255,255,.88);font-size:16px;margin-bottom:28px;}

.search-bar{width:100%;max-width:720px;background:#fff;border-radius:16px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:8px;display:flex;align-items:stretch;gap:2px;}
.search-field{flex:1;padding:11px 18px;border-radius:10px;text-align:left;}
.search-field:hover{background:var(--bg-soft);}
.search-field label{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:2px;}
.search-field input{border:none;outline:none;font-family:'Poppins',sans-serif;font-size:14px;width:100%;background:transparent;color:var(--ink);}
.search-div{width:1px;background:var(--line);margin:8px 0;}
.search-btn{background:var(--brand);color:#fff;border:none;border-radius:10px;width:46px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}

/* "Book direct, no commission" banner — sits right below the hero, before
   any tour grids. The pitch: OTAs like Viator/GetYourGuide add their own
   commission on top of the operator's price; booking direct with us skips
   that markup. Replaces the old plain trust-strip stats row (2026-09-04). */
.direct-band{background:linear-gradient(135deg,#FFF7F3 0%,var(--brand-tint) 100%);border-bottom:1px solid var(--line);padding:30px 0;}
.direct-band-inner{display:flex;align-items:center;gap:40px;flex-wrap:wrap;}
.direct-headline{flex:1;min-width:240px;}
.direct-headline h2{font-size:19px;font-weight:800;margin:0 0 5px;color:var(--ink);}
.direct-headline p{font-size:13px;color:var(--muted);margin:0;max-width:420px;line-height:1.5;}
.direct-badges{display:flex;gap:22px;flex-wrap:wrap;flex:2;min-width:280px;}
.direct-badge{display:flex;align-items:center;gap:11px;flex:1;min-width:190px;}
.direct-icon{width:42px;height:42px;border-radius:11px;background:#fff;color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 3px 10px rgba(var(--brand-rgb),.15);}
.direct-badge b{display:block;font-size:13px;font-weight:700;color:var(--ink);}
.direct-badge span{display:block;font-size:11.5px;color:var(--muted);line-height:1.4;margin-top:1px;}

.section{padding:60px 0;}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:14px;}
.section-head h2{font-size:24px;font-weight:700;}
.section-head p{color:var(--muted);font-size:14px;margin-top:5px;font-weight:400;}
.see-all{font-size:13.5px;font-weight:600;color:var(--coral);white-space:nowrap;}
.section-head.center{display:block;text-align:center;margin-bottom:40px;}

.cat-wrap{position:relative;}
.cat-row{display:flex;gap:26px;overflow-x:auto;padding-bottom:6px;scroll-behavior:smooth;scrollbar-width:none;}
.cat-row::-webkit-scrollbar{display:none;}
.cat-item{flex-shrink:0;width:104px;text-align:center;}
.cat-photo{width:96px;height:96px;border-radius:50%;overflow:hidden;margin:0 auto 10px;border:3px solid var(--ring,var(--line));}
.cat-photo img{width:100%;height:100%;object-fit:cover;}
.cat-item span{font-size:12.5px;font-weight:600;color:var(--ink);}
.scroll-btn{position:absolute;top:38px;width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:0 4px 12px rgba(23,33,43,.12);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;}
.scroll-btn.left{left:-18px;}
.scroll-btn.right{right:-18px;}

.tour-wrap{position:relative;}
.tour-grid{display:flex;gap:22px;overflow-x:auto;padding-bottom:6px;scroll-behavior:smooth;scrollbar-width:none;}
.tour-grid::-webkit-scrollbar{display:none;}
.tour-card{flex-shrink:0;width:320px;background:var(--card);border-radius:14px;overflow:hidden;border:1px solid var(--line);transition:box-shadow .15s;}
.tour-card:hover{box-shadow:0 10px 24px rgba(23,33,43,.10);}
.tour-img{position:relative;height:200px;}
.tour-img img{width:100%;height:100%;object-fit:cover;}
.tour-tag{position:absolute;top:12px;left:12px;padding:6px 13px;border-radius:8px;font-size:12px;font-weight:700;display:flex;align-items:center;gap:4px;}
.tour-tag.gold{background:#FCEED3;color:#8A5A0E;}
.tour-tag.navy{background:#173B63;color:#fff;}
.tour-tag.coral{background:var(--coral);color:#fff;}
.tour-tag.teal{background:var(--teal);color:#fff;}
.tour-tag.blue{background:var(--logo-blue);color:#fff;}
.tour-tag.orange{background:var(--logo-orange);color:#fff;}
.tour-tag.yellow{background:var(--logo-yellow);color:#5C3D00;}
/* Holiday package card duration badge (2026-08-27) — top-right corner of
   the image, opposite the tag_label badge (top-left) so they never
   collide; package cards have no favorite heart icon to share the spot
   with. */
.pk-card-duration-badge{position:absolute;bottom:12px;right:12px;background:rgba(23,33,43,.72);color:#fff;padding:5px 11px;border-radius:8px;font-size:11.5px;font-weight:700;display:flex;align-items:center;gap:4px;}
.heart{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;padding:0;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:transform .1s;}
.heart:hover{transform:scale(1.08);}
.heart svg{width:18px;height:18px;fill:none;stroke:#17212B;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;}
.heart.active svg{fill:var(--coral);stroke:var(--coral);}
.tour-body{padding:18px 19px 20px;}
.tour-loc{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);margin-bottom:7px;}
.tour-body h3{font-family:'Poppins',sans-serif;font-size:16.5px;font-weight:600;margin-bottom:6px;line-height:1.35;min-height:45px;}
.tour-duration{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted);margin-bottom:10px;}
.tour-duration svg{width:14px;height:14px;}
.stars{display:flex;align-items:center;gap:5px;font-size:13.5px;color:var(--ink);margin-bottom:12px;}
.stars svg{color:var(--gold);}
.stars span{color:var(--muted);}

/* Partial-fill star bar (2026-09-27) — used for average ratings like 4.9
   so the 5th star shows correctly as almost-full instead of rounding down
   to a plain empty star. Base row renders in --line (muted grey); an
   absolutely-positioned copy in --gold sits on top, clipped to --pct width
   via overflow:hidden, so e.g. a 4.9 rating clips at 98% and visibly shows
   a sliver of grey at the very tip of the 5th star. */
.star-bar{position:relative;display:inline-block;line-height:1;letter-spacing:1px;color:var(--line);}
.star-bar::before{content:'★★★★★';position:absolute;top:0;left:0;width:var(--pct,0%);overflow:hidden;white-space:nowrap;color:var(--gold);}
.tour-price{font-size:12px;color:var(--muted);}
.tour-price b{font-size:19px;color:var(--coral);font-weight:700;display:block;margin-top:2px;}

.sight-tabs-inline{display:flex;gap:8px;flex-wrap:wrap;}
.sight-tab{padding:9px 18px;border-radius:20px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border:1px solid var(--line);white-space:nowrap;background:#fff;}
.sight-tab.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.sight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.sight-grid .tour-card{width:100%;}

.tix-layout{display:flex;align-items:flex-start;gap:26px;}
/* max-height + its own scrollbar is the real fix for the sidebar "not
   scrolling": position:sticky can only stick while the box itself still
   fits in the viewport — once a long category list made the box taller
   than the screen, the bottom half was simply unreachable no matter how
   the page scrolled. Capping it at the viewport height and letting IT
   scroll internally (rather than the whole page) fixes that regardless of
   how many categories get added later. */
.tix-filters{width:290px;flex-shrink:0;position:sticky;top:90px;max-height:calc(100vh - 110px);overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px 20px;box-shadow:0 4px 18px rgba(20,20,20,.05);}
.tix-filter-group{margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line);}
.tix-filter-group:last-of-type{margin-bottom:16px;padding-bottom:0;border-bottom:none;}
.tix-filter-group h4{font-size:13px;font-weight:800;letter-spacing:.02em;color:var(--ink);margin-bottom:12px;}
.tix-price-row{display:flex;flex-direction:column;gap:10px;font-size:12.5px;color:var(--muted);}
.tix-price-row input[type="range"]{width:100%;accent-color:var(--coral);}
#tixPriceMaxLabel{font-weight:700;color:var(--coral);font-size:14px;}

/* Custom checkbox: a rounded square that fills coral with a white
   checkmark, rather than the browser's plain native box — reads more like
   a premium OTA filter (GetYourGuide/Airbnb style) than a form control.
   Kept compact (smaller font/padding than a typical checkbox row) so more
   categories fit before the "View more" collapse kicks in. */
.tix-check{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink);padding:5px 8px;margin-bottom:0;border-radius:8px;cursor:pointer;transition:background-color .15s,color .15s;}
.tix-check:hover{background:var(--brand-tint);}
.tix-check:has(input:checked){color:var(--brand-dark);font-weight:600;}
.tix-check input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1.6px solid #D8D3CE;border-radius:5px;flex-shrink:0;position:relative;cursor:pointer;background:#fff;transition:border-color .15s,background-color .15s;}
.tix-check input[type="checkbox"]:hover{border-color:var(--coral);}
.tix-check input[type="checkbox"]:checked,
.tix-check input[type="checkbox"]:indeterminate{background:var(--coral);border-color:var(--coral);}
.tix-check input[type="checkbox"]:checked::after{content:"";position:absolute;left:5px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.tix-check input[type="checkbox"]:indeterminate::after{content:"";position:absolute;left:3px;top:7px;width:8px;height:2px;background:#fff;border-radius:2px;}
.tix-check span{line-height:1.25;}
.tix-check-standalone{margin-bottom:2px;}
.tix-check-child{padding-left:28px;font-size:12.5px;}

.tix-cat-group{border:1px solid var(--line);border-radius:13px;padding:7px 6px;margin-bottom:9px;background:#fbfbfa;}
.tix-cat-group:last-child{margin-bottom:0;}
/* A plain `display:flex` here would override the [hidden] attribute's
   built-in `display:none` (author CSS beats the UA stylesheet's default),
   which is exactly why "View N more" looked broken — the extra categories
   were always visible no matter what the JS toggle did to the `hidden`
   attribute. Scoping the flex layout to :not([hidden]) lets the attribute
   actually hide the block again. */
.tix-cat-more:not([hidden]){display:flex;flex-direction:column;}
.tix-cat-more-toggle{display:block;background:none;border:none;color:var(--coral);font-size:12px;font-weight:700;cursor:pointer;padding:5px 8px 2px;text-align:left;}
.tix-cat-more-toggle:hover{text-decoration:underline;}
.tix-cat-parent{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink);margin-bottom:0;}
.tix-cat-parent input[type="checkbox"]{border-color:#C9A392;}
.tix-cat-parent input[type="checkbox"]:checked,
.tix-cat-parent input[type="checkbox"]:indeterminate{background:var(--brand-dark);border-color:var(--brand-dark);}
.tix-cat-parent:has(input:checked){background:var(--brand-tint);}

.tix-reset{width:100%;padding:11px;border-radius:11px;border:1.5px solid var(--line);background:#fff;color:var(--muted);font-size:12.5px;font-weight:700;cursor:pointer;transition:border-color .15s,color .15s;}
.tix-reset:hover{border-color:var(--coral);color:var(--coral);}
.tix-results{flex:1;min-width:0;}
.tix-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.tix-grid .tour-card{width:100%;}
.tix-grid .tour-img{height:190px;}
.tix-empty{font-size:14px;color:var(--muted);padding:30px 0;text-align:center;}

/* ================= /tickets page redesign (2026-07-29) =================
   Client approved a reference mockup's layout (hero banner + search row,
   category pill carousel, toolbar with sort, collapsible filter sidebar,
   card polish) but explicitly asked to keep the SITE'S coral brand colors
   rather than the mockup's purple/indigo, and to apply this ONLY to this
   one page — nothing here should leak into other templates since every
   class below is prefixed tix- / used only inside tickets.html's own
   tour_card macro (that macro is local to this file, not shared with
   index.html's cards). */

/* overflow was `hidden` here (copied from the homepage's plain `.hero`
   pattern), but the search-suggestions dropdown lives inside this section
   and is absolutely positioned to spill below the search bar — with
   overflow:hidden the hero clipped it off after ~2 rows, which is the cut-
   off/scrollbar-mid-item look the user flagged. Safe to drop: the bg image
   and overlay are both `position:absolute;inset:0`, sized to exactly match
   this box already, so they never actually relied on overflow:hidden to
   stay cropped — nothing here overflows except the dropdown, on purpose. */
.tix-hero{position:relative;height:400px;background:#0d1621;margin-bottom:0;}
.tix-hero-img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.tix-hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,25,.35) 0%,rgba(10,20,25,.45) 40%,rgba(8,16,20,.82) 100%);}
.tix-hero-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:20px;}
.tix-hero-content h1{color:#fff;font-size:34px;font-weight:700;margin-bottom:8px;letter-spacing:-.01em;}
.tix-hero-content p{color:rgba(255,255,255,.88);font-size:15px;margin-bottom:16px;}
.tix-hero-badges{display:flex;gap:22px;flex-wrap:wrap;justify-content:center;margin-bottom:22px;}
.tix-hero-badges span{display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.92);font-size:12.5px;font-weight:600;}
.tix-hero-badges svg{color:var(--brand);flex-shrink:0;}

.tix-hero-search{width:100%;max-width:900px;background:#fff;border-radius:16px;box-shadow:0 12px 32px rgba(0,0,0,.22);padding:8px;display:flex;align-items:stretch;gap:6px;flex-wrap:wrap;}
.tix-hero-field{flex:1;min-width:130px;display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;color:var(--muted);}
.tix-hero-field:hover{background:var(--bg-soft);}
.tix-hero-field-grow{flex:2;min-width:200px;position:relative;}

.tix-search-suggest{position:absolute;top:calc(100% + 10px);left:0;right:-160px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 36px rgba(0,0,0,.16);padding:8px;z-index:30;text-align:left;max-height:340px;overflow-y:auto;}
.tix-suggest-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:10px;color:var(--ink);transition:background-color .12s;}
.tix-suggest-item:hover{background:var(--bg-soft);}
.tix-suggest-item img{width:44px;height:44px;border-radius:8px;object-fit:cover;flex-shrink:0;}
.tix-suggest-info{display:flex;flex-direction:column;gap:2px;min-width:0;}
.tix-suggest-info b{font-size:13px;font-weight:600;white-space:normal;line-height:1.35;}
.tix-suggest-info small{font-size:11.5px;color:var(--coral);font-weight:700;}
@media(max-width:900px){
  .tix-search-suggest{right:0;}
}
.tix-hero-field svg{flex-shrink:0;}
.tix-hero-field input,.tix-hero-field select{border:none;outline:none;font-family:'Poppins',sans-serif;font-size:13.5px;width:100%;background:transparent;color:var(--ink);}
.tix-hero-field input::placeholder{color:var(--muted);}
.tix-hero-field input:disabled{cursor:not-allowed;}
.tix-hero-search-btn{background:var(--brand);color:#fff;border:none;border-radius:10px;padding:0 22px;font-family:'Poppins',sans-serif;font-size:13.5px;font-weight:700;cursor:pointer;flex-shrink:0;white-space:nowrap;}
.tix-hero-search-btn:hover{background:var(--brand-dark);}

.tix-pills-row{display:flex;gap:10px;overflow-x:auto;padding:18px 0;scrollbar-width:none;}
.tix-pills-row::-webkit-scrollbar{display:none;}
.tix-pill{flex-shrink:0;display:flex;align-items:center;gap:7px;padding:9px 18px;border-radius:22px;border:1.5px solid var(--line);background:#fff;font-family:'Poppins',sans-serif;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap;transition:border-color .15s,background-color .15s,color .15s;}
.tix-pill:hover{border-color:var(--brand);}
.tix-pill.active{background:var(--brand);border-color:var(--brand);color:#fff;}
.tix-pill-icon{font-size:14px;line-height:1;}

.tix-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px;}
.tix-toolbar h2{font-size:19px;font-weight:700;}
.tix-sort{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted);}
.tix-sort select{padding:9px 30px 9px 13px;border:1px solid var(--line);border-radius:9px;font-family:'Poppins',sans-serif;font-size:13px;font-weight:600;color:var(--ink);background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23667085" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg>') no-repeat right 10px center;background-size:14px;appearance:none;-webkit-appearance:none;cursor:pointer;}
.tix-sort select:hover{border-color:var(--brand);}

.tix-filters-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;}
.tix-filters-head h3{font-size:15px;font-weight:800;}
.tix-reset-all{background:none;border:none;color:var(--brand);font-size:12px;font-weight:700;cursor:pointer;padding:0;}
.tix-reset-all:hover{text-decoration:underline;}

/* Mobile-only "Filters" toggle button + bottom-sheet chrome — all hidden
   by default (desktop keeps the plain sticky sidebar); the ≤900px media
   query below switches them on and turns .tix-filters into the sheet. */
.tix-mobile-filter-btn{display:none;align-items:center;gap:8px;padding:11px 18px;border-radius:10px;border:1.5px solid var(--line);background:#fff;font-family:'Poppins',sans-serif;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;white-space:nowrap;flex-shrink:0;}
.tix-mobile-filter-btn:hover{border-color:var(--brand);}
.tix-mobile-filter-btn svg{flex-shrink:0;}
.tix-filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--brand);color:#fff;font-size:10.5px;font-weight:800;}
.tix-filters-backdrop{display:none;}
.tix-filters-close{display:none;width:30px;height:30px;border-radius:50%;border:none;background:var(--bg-soft);color:var(--ink);font-size:15px;cursor:pointer;flex-shrink:0;align-items:center;justify-content:center;}
.tix-filters-close:hover{background:var(--line);}

.tix-fgroup{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px;}
.tix-fgroup:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.tix-fgroup-head{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0 0 12px;font-family:'Poppins',sans-serif;font-size:13px;font-weight:800;letter-spacing:.02em;color:var(--ink);cursor:pointer;}
.tix-chevron{transition:transform .15s;flex-shrink:0;color:var(--muted);}
.tix-fgroup.collapsed .tix-chevron{transform:rotate(-90deg);}
.tix-fgroup.collapsed .tix-fgroup-body{display:none;}
.tix-fgroup-note{font-size:11px;color:var(--muted);margin:6px 8px 0;line-height:1.5;}
.tix-fgroup-flat{padding-top:2px;}
.tix-check-decorative{opacity:.6;cursor:default;}
.tix-check-decorative:hover{background:none;}
.tix-check-decorative input[type="checkbox"]{cursor:default;}

.tix-show-results{position:sticky;bottom:14px;width:100%;margin-top:16px;padding:13px;border-radius:11px;border:none;background:var(--brand);color:#fff;font-family:'Poppins',sans-serif;font-size:13.5px;font-weight:700;cursor:pointer;transition:background-color .15s;box-shadow:0 6px 16px rgba(var(--brand-rgb),.28);}
.tix-show-results:hover{background:var(--brand-dark);}

.tour-trust-row{display:flex;gap:6px;font-size:11.5px;color:var(--teal);margin-bottom:10px;}
.tour-trust-row span{display:flex;align-items:center;gap:4px;}

@media(max-width:900px){
  .tix-hero{height:auto;padding-bottom:20px;}
  .tix-hero-content{padding:24px 16px 0;}
  .tix-hero-content h1{font-size:24px;}
  .tix-hero-content p{font-size:13.5px;}
  .tix-hero-badges{gap:14px;margin-bottom:18px;}
  .tix-hero-badges span{font-size:11.5px;}
  .tix-hero-search{flex-direction:column;}
  .tix-hero-field{width:100%;}

  .tix-pills-row{padding:14px 0;gap:8px;}
  .tix-pill{padding:8px 14px;font-size:12.5px;}

  .tix-toolbar{align-items:flex-start;margin-bottom:16px;}
  .tix-toolbar h2{font-size:16.5px;}
  .tix-sort{flex:1;min-width:0;justify-content:space-between;}
  .tix-sort select{flex:1;min-width:0;}

  /* Mobile filters become a bottom sheet instead of the plain block that
     used to sit right above the results — on a narrow screen that block
     (Price + every category checkbox + Duration + Rating + …) was tall
     enough that a visitor had to scroll straight past all of it before
     reaching a single tour/ticket card, which read as "broken" rather
     than just unstyled. Tapping "Filters" now slides this panel up over
     the page instead, with its own Reset/close/Show-results controls. */
  .tix-mobile-filter-btn{display:inline-flex;}
  .tix-filters-backdrop{display:block;position:fixed;inset:0;background:rgba(15,15,20,.5);z-index:190;opacity:0;pointer-events:none;transition:opacity .22s ease;}
  .tix-filters-backdrop.open{opacity:1;pointer-events:auto;}
  .tix-filters{position:fixed;top:auto;left:0;right:0;bottom:0;width:100%;max-height:82vh;border-radius:20px 20px 0 0;box-shadow:0 -10px 30px rgba(0,0,0,.25);z-index:200;transform:translateY(105%);transition:transform .28s ease;}
  .tix-filters.open{transform:translateY(0);}
  .tix-filters-close{display:flex;}
  .tix-show-results{position:sticky;bottom:0;}
}

@media(max-width:680px){
  .tix-hero-content h1{font-size:20px;}
  .tix-hero-badges span{font-size:11px;}
  .tix-toolbar{flex-direction:column;align-items:stretch;}
  .tix-sort{width:100%;}
}

.trust-panel{background:linear-gradient(180deg,#FBF8F5 0%,#FDFBFA 100%);border:1px solid var(--line);border-radius:28px;padding:4px 32px 32px;}
.trust-panel .section{padding:44px 0 36px;}
.trust-panel .section + .section{padding-top:8px;}

.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.why-item{text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 22px;box-shadow:0 4px 16px rgba(23,33,43,.05);transition:transform .18s ease,box-shadow .18s ease;}
.why-item:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(23,33,43,.1);}
.why-icon{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:16px;box-shadow:0 0 0 6px rgba(23,33,43,.03);}
.why-item h3{font-size:15.5px;font-weight:700;margin-bottom:6px;}
.why-item p{font-size:13px;color:var(--muted);line-height:1.55;margin:0;}

.attr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.attr-card{position:relative;border-radius:12px;overflow:hidden;height:180px;}
.attr-card img{width:100%;height:100%;object-fit:cover;}
.attr-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(8,16,20,.68) 100%);}
.attr-card span{position:absolute;left:14px;bottom:14px;color:#fff;font-weight:600;font-size:14px;}

.trust-platforms{display:flex;flex-wrap:wrap;gap:16px;}
.platform-row{flex:1;min-width:170px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 18px 16px;box-shadow:0 3px 12px rgba(23,33,43,.045);transition:transform .18s ease,box-shadow .18s ease;}
.platform-row:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(23,33,43,.09);}
.platform-top{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.platform-icon{width:42px;height:42px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.1);}
.platform-row .p-name{font-weight:700;font-size:15px;}
.platform-row .p-rating{display:flex;align-items:baseline;gap:5px;font-size:13.5px;margin-bottom:3px;}
.platform-row .p-stars{color:var(--gold);letter-spacing:1px;font-size:13px;}
.platform-row .p-rating b{color:var(--ink);}
.platform-row .p-count{font-size:12px;color:var(--muted);}

.cancel-card{display:flex;align-items:center;gap:20px;background:linear-gradient(120deg,#FFF4EF,var(--brand-tint));border-radius:18px;padding:26px 30px;box-shadow:0 10px 26px rgba(232,84,46,.1);}
.cancel-card .cancel-icon{width:52px;height:52px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px rgba(232,84,46,.15);}
.cancel-card .cancel-text{flex:1;min-width:200px;}
.cancel-card h3{font-size:17.5px;font-weight:700;margin-bottom:4px;}
.cancel-card p{color:var(--muted);font-size:13.5px;margin:0;}
.cancel-btn{background:#fff;color:var(--coral);font-weight:700;padding:12px 24px;border-radius:10px;font-size:13.5px;white-space:nowrap;flex-shrink:0;box-shadow:0 4px 12px rgba(0,0,0,.08);transition:transform .15s ease;}
.cancel-btn:hover{transform:translateY(-2px);}

.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.test-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 22px 22px;}
.test-quote{position:absolute;top:14px;right:18px;font-family:Georgia,serif;font-size:46px;color:var(--brand-tint);line-height:1;}
.test-stars{display:flex;gap:3px;color:var(--gold);margin-bottom:12px;}
.test-card p{font-size:14px;color:var(--ink);line-height:1.6;margin-bottom:18px;position:relative;}
.test-user{display:flex;align-items:center;gap:10px;}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--brand-tint);color:var(--brand-dark);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;}
.test-user b{font-size:13px;display:block;}
.test-user small{color:var(--muted);font-size:12px;}

.cta{position:relative;border-radius:18px;padding:64px 40px;text-align:center;color:#fff;overflow:hidden;}
.cta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.cta:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,10,5,.55) 0%,rgba(20,10,5,.32) 45%,rgba(20,10,5,.12) 100%);z-index:1;}
.cta-inner{position:relative;z-index:2;}
.cta h2{color:#fff;font-size:30px;margin-bottom:10px;}
.cta p{color:rgba(255,255,255,.85);margin-bottom:26px;font-size:15px;}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta-btn{display:inline-block;background:#fff;color:var(--brand-dark);font-weight:700;padding:14px 30px;border-radius:10px;font-size:14.5px;}
.cta-btn.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6);}
.cta-tagline{position:absolute;right:34px;bottom:22px;z-index:2;font-family:'Permanent Marker',cursive;color:rgba(255,255,255,.75);font-size:16px;line-height:1.85;text-align:right;pointer-events:none;}

footer{background:#fff;color:#6b7280;padding:52px 0 22px;margin-top:10px;border-top:1px solid #ececec;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-bottom:30px;border-bottom:1px solid #ececec;}
.foot-grid h4{color:var(--ink);font-size:13.5px;font-weight:700;margin-bottom:14px;}
.foot-grid a{display:block;font-size:13.5px;margin-bottom:9px;color:#6b7280;transition:color .15s;}
.foot-grid a:hover{color:var(--brand);}
.footer-tagline{font-size:13.5px;color:#8a8f98;line-height:1.7;max-width:270px;}
.footer-social-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;}
.foot-grid a.ft-social{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;color:#fff;flex-shrink:0;margin-bottom:0;}
.foot-grid a.ft-social svg{display:block;}
.ft-social{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;}
.ft-social-fb{background:#1877F2;}
.ft-social-ig{background:radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);}
.ft-social-yt{background:#FF0000;}
.ft-social-tiktok{background:#000;}
.ft-social-x{background:#000;}
.ft-social-wa{background:#25D366;}
.ft-contact-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.ft-contact-row a,.ft-contact-row span:last-child{font-size:13.5px;color:#6b7280;}
.ft-contact-row a:hover{color:var(--brand);}
.ft-contact-icon{width:34px;height:34px;border-radius:50%;background:#EEF3FF;display:flex;align-items:center;justify-content:center;color:var(--brand);flex-shrink:0;}
.ft-contact-icon svg{width:16px;height:16px;}
.ft-book-btn{display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:11px 20px;border-radius:24px;background:var(--brand);color:#fff;font-size:13.5px;font-weight:700;text-decoration:none;}
.ft-book-btn:hover{background:var(--brand-dark);color:#fff;}
.pay-trust-row{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:20px 0;border-top:1px solid #ececec;}
.pay-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.pay-label{font-size:12px;color:#8a8f98;margin-right:6px;}
img.pay-badge{background:#fff;border-radius:6px;padding:2px;display:block;border:1px solid #ececec;}

.trust-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.trust-row-label{font-size:14px;font-weight:800;color:var(--ink);white-space:nowrap;}
.trust-badges{display:flex;flex-wrap:wrap;gap:10px;}
.trust-badge{display:inline-flex;align-items:center;gap:7px;background:#F7F7F8;border:1px solid #ececec;border-radius:9px;padding:8px 14px;font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;}
.trust-badge-ico{display:flex;align-items:center;justify-content:center;color:#6b7280;flex-shrink:0;}
.trust-badge-ico svg{width:16px;height:16px;}
@media (max-width:860px){
  .pay-trust-row{flex-direction:column;align-items:flex-start;}
}
@media (max-width:640px){
  .trust-badges{gap:8px;}
  .trust-badge{padding:7px 11px;font-size:12px;}
}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:18px;font-size:12px;color:#9aa0a8;flex-wrap:wrap;gap:10px;}
.foot-bottom a{color:#9aa0a8;}
.foot-bottom a:hover{color:var(--brand);}
.foot-bottom-right{display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
.ft-to-top{width:36px;height:36px;border-radius:50%;background:#EEF3FF;color:var(--brand);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.ft-to-top:hover{background:var(--brand);color:#fff;}

@media(max-width:900px){
  .why-grid{grid-template-columns:repeat(2,1fr);}
  .trust-platforms{gap:22px;}
  .attr-grid{grid-template-columns:repeat(2,1fr);}
  .sight-grid{grid-template-columns:repeat(2,1fr);}
  .tix-grid{grid-template-columns:repeat(2,1fr);}
  .tix-layout{flex-direction:column;}
  .test-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .hero-content h1{font-size:28px;}
  .nav-mid{display:none;}
  .helpline-pill,.lang-pill span{display:none;}
  .lang-pill{padding:9px;}
  .lang-pill svg{margin:0;}
}

@media(max-width:680px){
  .wrap{padding:0 18px;}
  .service-tabs .wrap{padding:12px 18px;}
  nav{padding:12px 18px;}
  .logo-word{font-size:15px;}
  .logo svg{width:34px;height:34px;}
  .helpline-pill,.lang-pill{display:none;}
  .icon-circle{width:32px;height:32px;}
  .nav-cta{padding:8px 14px;font-size:13px;}
  .hamburger{display:block;}
  .account-icon{display:none;}

  .hero{height:340px;}
  .hero-content{padding:0 16px 28px;}
  .hero-content h1{font-size:22px;}
  .hero-content p{font-size:13.5px;margin-bottom:18px;}
  .search-bar{flex-direction:column;padding:10px;border-radius:14px;gap:0;}
  .search-field{width:100%;padding:9px 12px;}
  .search-div{width:100%;height:1px;margin:2px 0;}
  .search-btn{width:100%;height:42px;border-radius:10px;margin-top:6px;}

  .direct-band{padding:22px 0;}
  .direct-band-inner{gap:18px;}
  .direct-headline p{max-width:none;}
  .direct-badges{gap:16px;}
  .direct-badge{min-width:100%;}

  .section{padding:40px 0;}
  .section-head{margin-bottom:18px;}
  .section-head h2{font-size:20px;}
  .sight-tabs-inline{width:100%;overflow-x:auto;flex-wrap:nowrap;}

  .tour-card{width:260px;}
  .tour-img{height:160px;}
  .tix-grid{grid-template-columns:1fr;}
  .tix-grid .tour-card{width:100%;}
  .cat-photo{width:76px;height:76px;}
  .cat-item{width:86px;}
  .scroll-btn{display:none;}

  .why-grid{grid-template-columns:1fr 1fr;gap:14px;}
  .trust-platforms{flex-direction:column;gap:18px;}
  .attr-grid{grid-template-columns:1fr 1fr;gap:12px;}
  .attr-card{height:140px;}
  .sight-grid{grid-template-columns:1fr;}

  .trust-panel{padding:4px 16px 20px;border-radius:20px;}
  .trust-panel .section{padding:28px 0 20px;}
  .cancel-card{flex-direction:column;text-align:center;padding:24px 20px;}
  .cancel-btn{width:100%;text-align:center;}
  .cta{padding:40px 22px;}
  .cta h2{font-size:22px;}
  .cta-actions{flex-direction:column;}
  .cta-btn{width:100%;text-align:center;}
  .cta-tagline{display:none;}

  .foot-grid{grid-template-columns:1fr;gap:24px;}
}

/* ================= Tour detail page ================= */
.td-breadcrumb{font-size:13px;color:var(--muted);padding:18px 0 0;}
.td-breadcrumb a{color:var(--muted);}
.td-breadcrumb a:hover{color:var(--brand);}
.td-head{padding:32px 0 10px;}
.td-head h1{font-size:23px;font-weight:700;line-height:1.3;max-width:760px;}
.td-subhead{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:20px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:24px;}
.td-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:13.5px;color:var(--muted);}
.td-meta .stars{margin:0;}
.td-meta .tour-tag{position:static;display:inline-flex;}
.td-actions{display:flex;gap:20px;flex-shrink:0;}
.td-text-btn{display:flex;align-items:center;gap:7px;background:none;border:none;padding:0;cursor:pointer;font-family:'Poppins',sans-serif;font-size:13.5px;font-weight:600;color:var(--ink);}
.td-text-btn:hover{color:var(--brand);}
.td-text-btn svg{width:17px;height:17px;flex-shrink:0;}
.td-text-btn.heart.active svg{fill:var(--coral);stroke:var(--coral);}
.td-text-btn.heart.active{color:var(--coral);}
/* .heart is shared with the card thumbnail badge, which is absolutely
   positioned in the corner of an image (see the `.heart` rule above) —
   reset all of that here since this one sits inline in the subhead's
   text-link row instead. */
.td-text-btn.heart{position:static;top:auto;right:auto;width:auto;height:auto;background:none;border-radius:0;box-shadow:none;padding:0;}

.td-gallery{display:grid;grid-template-columns:1.6fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:340px;border-radius:16px;overflow:hidden;margin-bottom:36px;}
.td-gallery a{position:relative;display:block;height:100%;cursor:pointer;}
.td-gallery img{width:100%;height:100%;object-fit:cover;display:block;}
.td-gallery .td-main-photo{grid-row:1 / 3;grid-column:1;}
.td-gallery .td-more-overlay{position:absolute;inset:0;background:rgba(8,16,20,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;}

.td-layout{display:grid;grid-template-columns:1fr 360px;gap:48px;align-items:start;padding-bottom:60px;}
.td-main section{margin-bottom:42px;}
.td-main h2{font-size:20px;margin-bottom:16px;}
.td-main h2 .td-count{color:var(--muted);font-weight:400;font-size:14px;}

.td-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 24px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:42px;}
.td-fact{display:flex;align-items:flex-start;gap:12px;font-size:13.5px;}
.td-fact svg{width:20px;height:20px;color:var(--teal);flex-shrink:0;margin-top:1px;}
.td-fact b{display:block;font-size:13.5px;}
.td-fact span{color:var(--muted);font-size:12.5px;}

.td-highlights{list-style:none;margin:0;padding:0;display:grid;gap:10px;align-content:start;}
.td-highlights li{display:flex;gap:10px;font-size:14px;line-height:1.5;}
.td-highlights li:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--coral);margin-top:8px;flex-shrink:0;}

/* Key Features spec-sheet grid (2026-09-11) — admin-entered icon+label
   list shown above "What's included" when the admin has added any. */
.td-keyfeatures{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0;}
.td-kf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 24px;}
.td-kf-item{display:flex;align-items:center;gap:10px;font-size:13.5px;line-height:1.4;}
.td-kf-item svg{width:20px;height:20px;color:var(--coral);flex-shrink:0;}
.td-kf-item .td-kf-icon-img{width:20px;height:20px;object-fit:cover;border-radius:4px;flex-shrink:0;}

.td-desc{font-size:14.5px;line-height:1.75;color:var(--ink);white-space:pre-line;}

.td-subsection{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);}
.td-subsection h3{font-size:15.5px;margin-bottom:14px;}

.td-itin-stop{display:flex;gap:16px;padding-bottom:22px;position:relative;}
.td-itin-stop:before{content:"";position:absolute;left:5px;top:22px;bottom:0;width:1px;background:var(--line);}
.td-itin-stop:last-child:before{display:none;}
.td-itin-dot{width:11px;height:11px;border-radius:50%;background:var(--brand);margin-top:5px;flex-shrink:0;}
.td-itin-body b{display:block;font-size:14.5px;margin-bottom:3px;}
.td-itin-body p{font-size:13.5px;color:var(--muted);line-height:1.55;margin:0;}
.td-itin-body .td-itin-time{display:inline-block;margin-top:8px;font-size:12px;font-weight:700;color:var(--brand);}

.td-boxed-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0;}
/* Two boxed sections back-to-back (e.g. What's included -> Itinerary)
   would otherwise show a doubled line — one section's bottom border sitting
   right above the next section's top border with only the small margin
   between them. Drop the second one's top border so it reads as a single
   shared divider. */
.td-boxed-section + .td-boxed-section{border-top:none;padding-top:0;}

.td-check-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;}
.td-check-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;font-size:14px;align-content:start;}
.td-check-list li{display:flex;gap:10px;align-items:flex-start;line-height:1.5;}
.td-check-list .yes{color:var(--teal);font-weight:700;flex-shrink:0;}
.td-check-list .no{color:var(--coral);font-weight:700;flex-shrink:0;}
.td-expandable-body .td-check-extra{display:none;}
.td-expandable-body.expanded .td-check-extra{display:flex;}
.td-see-more{margin-top:16px;background:none;border:none;padding:0;font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:underline;cursor:pointer;}
.td-see-more:hover{color:var(--brand);}

.td-collapsible-heading{display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none;}
.td-collapsible-heading .td-chevron-toggle{transition:transform .15s;flex-shrink:0;color:var(--muted);transform:rotate(180deg);}
.td-collapsible-heading.collapsed .td-chevron-toggle{transform:rotate(0deg);}

/* Cruise Menu section (categories -> dishes), shown below Itinerary */
.td-menu-cats{display:grid;grid-template-columns:1fr 1fr;gap:24px 28px;}
.td-menu-cat h4{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:14.5px;margin:0 0 10px;padding-bottom:8px;border-bottom:2px solid var(--brand);}
.td-menu-cat h4 span{font-size:11.5px;font-weight:400;color:var(--muted);white-space:nowrap;}
.td-menu-items{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.td-menu-items li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13.5px;line-height:1.4;}
.td-menu-items li small{color:var(--muted);font-size:11.5px;white-space:nowrap;}
.td-expandable-body .td-menu-extra{display:none;}
.td-expandable-body.expanded .td-menu-extra{display:block;}
@media(max-width:700px){.td-menu-cats{grid-template-columns:1fr;}}

.td-option-card{border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:16px;}
.td-option-card h3{font-size:16px;margin-bottom:6px;}
.td-option-desc{font-size:13.5px;color:var(--muted);line-height:1.6;margin-bottom:12px;}
/* 2026-09-11: per-option photo for yacht-style (per_group + has_options)
   tours — each selectable option (boat size) shows its own thumbnail here,
   and swaps the main gallery hero photo on select (see dtsSelectOption). */
.td-option-thumb{width:100%;max-width:280px;border-radius:10px;overflow:hidden;margin-bottom:12px;}
.td-option-thumb img{width:100%;height:150px;object-fit:cover;display:block;}

/* 2026-09-12: option-card mini carousel — cycles through ALL of an
   option's uploaded photos (not just the first) with prev/next arrows and
   a "2/5" counter; clicking the photo opens the full lightbox scoped to
   just that option's images (see dtsOpenOptionLightbox). */
.td-option-thumb-carousel{position:relative;width:100%;max-width:280px;border-radius:10px;overflow:hidden;margin-bottom:12px;}
.td-option-thumb-carousel img{width:100%;height:150px;object-fit:cover;display:block;cursor:pointer;}
.td-option-thumb-nav{position:absolute;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;border:none;background:rgba(17,24,39,.55);color:#fff;font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.td-option-thumb-nav:hover{background:rgba(17,24,39,.8);}
.td-option-thumb-nav.prev{left:8px;}
.td-option-thumb-nav.next{right:8px;}
.td-option-thumb-count{position:absolute;right:8px;bottom:8px;background:rgba(17,24,39,.6);color:#fff;font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px;}

/* Sidebar "Yacht"/variant dropdown (2026-09-12) — a compact way to switch
   between selectable options (yacht sizes) right from the booking box,
   without scrolling down to the option cards; kept in sync both ways with
   the cards via dtsVariantSelectChange/dtsSelectOption. */
.td-variant-select{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px 14px;font-family:'Poppins',sans-serif;font-size:14px;color:var(--ink);background:#fff;margin-bottom:16px;cursor:pointer;}
.td-option-meta-list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:11px;font-size:13.5px;color:var(--ink);}
.td-option-meta-list li{display:flex;align-items:flex-start;gap:10px;line-height:1.4;}
.td-option-meta-list svg{width:16px;height:16px;flex-shrink:0;margin-top:1px;color:var(--teal);}
.td-option-time-row{margin:8px 0 16px;}
.td-option-time-row label{display:block;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin-bottom:7px;}
.td-option-time-select{width:auto;min-width:130px;padding:7px 30px 7px 12px;border:1px solid var(--line);border-radius:7px;font-family:'Poppins',sans-serif;font-size:13px;font-weight:600;color:var(--ink);background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23667085" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg>') no-repeat right 10px center;background-size:14px;appearance:none;-webkit-appearance:none;cursor:pointer;transition:border-color .15s;}
.td-option-time-select:hover{border-color:var(--brand);}
.td-option-time-select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.12);}
.td-live-times-body{font-size:12.5px;color:var(--muted);}
.td-live-times-note{color:var(--muted);}
.td-live-times-error{color:#B3261E;font-weight:600;}
.td-option-warning{background:#FDECEC;color:#B3261E;font-size:12.5px;font-weight:600;padding:9px 13px;border-radius:8px;margin:0 0 12px;}
.td-option-addons{margin:0 0 14px;padding-top:10px;border-top:1px dashed var(--line);}
.td-option-addons-label{display:block;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin-bottom:9px;}
.td-option-addon-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;cursor:pointer;}
.td-option-addon-row input[type="checkbox"]{width:16px;height:16px;margin-top:2px;flex-shrink:0;accent-color:var(--brand);cursor:pointer;}
.td-option-addon-text{flex:1;display:flex;flex-direction:column;gap:2px;}
.td-option-addon-name{font-size:13.5px;font-weight:600;color:var(--ink);}
.td-option-addon-desc{font-size:12px;color:var(--muted);}
.td-option-addon-price{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap;text-align:right;}
.td-option-addon-type{font-size:11px;font-weight:500;color:var(--muted);text-transform:none;}
.td-option-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px;}
.td-option-total{display:flex;flex-direction:column;gap:2px;min-height:38px;}
.td-option-total-people{font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);}
.td-option-total-amount{color:var(--brand);font-size:20px;font-weight:800;letter-spacing:-.01em;}
.td-option-btn{background:var(--brand);color:#fff;font-weight:600;font-size:13.5px;padding:11px 22px;border-radius:9px;white-space:nowrap;}
.td-option-btn:hover{background:var(--brand-dark);}

.td-option-card.selectable{cursor:pointer;position:relative;transition:border-color .15s,box-shadow .15s;}
.td-option-card.selectable:hover{border-color:var(--brand);}
.td-option-card.selectable.selected{border-color:var(--brand);border-width:2px;box-shadow:0 4px 14px rgba(23,33,43,.08);}
.td-option-check{position:absolute;top:20px;right:22px;width:20px;height:20px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;background:#fff;}
.td-option-check svg{width:12px;height:12px;color:#fff;display:none;}
.td-option-card.selectable.selected .td-option-check{border-color:var(--brand);background:var(--brand);}
.td-option-card.selectable.selected .td-option-check svg{display:block;}

.td-price-table{width:100%;border-collapse:collapse;font-size:14px;}
.td-price-table td{padding:10px 0;border-bottom:1px solid var(--line);}
.td-price-table td:last-child{text-align:right;font-weight:700;}

.td-sidebar{position:sticky;top:90px;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 8px 24px rgba(23,33,43,.06);}
.td-price-row{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;}
.td-price-row .td-from{font-size:12.5px;color:var(--muted);}
.td-price-row .td-amount{font-size:26px;font-weight:700;color:var(--ink);}
.td-price-row .td-unit{font-size:12.5px;color:var(--muted);}
.td-sidebar-note{font-size:12px;color:var(--muted);margin:0 0 16px;min-height:1px;}
.td-field-label{display:block;font-size:11.5px;font-weight:600;color:var(--muted);margin-bottom:5px;}
.td-sidebar select,.td-sidebar input[type="date"]{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:9px;font-family:'Poppins',sans-serif;font-size:13.5px;margin-bottom:14px;background:#fff;color:var(--ink);}

.td-popover-wrap{position:relative;margin-bottom:14px;}
.td-popover-btn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;font-family:'Poppins',sans-serif;font-size:13.5px;color:var(--ink);cursor:pointer;}
.td-popover-btn:hover{border-color:var(--brand);}
.td-popover-btn .td-chevron{transition:transform .15s;flex-shrink:0;color:var(--muted);}
.td-popover-btn.open .td-chevron{transform:rotate(180deg);}
.td-popover{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 28px rgba(23,33,43,.14);padding:16px;z-index:20;}
.td-popover.open{display:block;}

.td-stepper-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;}
.td-stepper-row b{display:block;font-size:13.5px;}
.td-stepper-row span{font-size:12px;color:var(--muted);}
.td-stepper{display:flex;align-items:center;gap:12px;}
.td-stepper button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:16px;line-height:1;color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.td-stepper button:hover{border-color:var(--brand);color:var(--brand);}
.td-stepper span{min-width:20px;text-align:center;font-weight:600;font-size:14px;}
.td-popover-apply{width:100%;background:var(--brand);color:#fff;font-weight:600;font-size:13.5px;padding:10px;border-radius:8px;border:none;cursor:pointer;}
.td-popover-apply:hover{background:var(--brand-dark);}
.td-popover-note{color:var(--coral);font-size:11.5px;line-height:1.4;margin:-6px 0 12px;}

.td-calendar-popover{padding:14px;}
.td-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.td-calendar-header button{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:14px;}
.td-calendar-header button:hover{border-color:var(--brand);color:var(--brand);}
.td-calendar-header span{font-size:13.5px;font-weight:600;}
.td-calendar-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px;}
.td-calendar-dow span{text-align:center;font-size:11px;color:var(--muted);font-weight:600;}
.td-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.td-calendar-grid button{aspect-ratio:1;border:none;background:none;border-radius:50%;font-size:12.5px;color:var(--ink);cursor:pointer;}
.td-calendar-grid button:hover:not(:disabled){background:var(--line);}
.td-calendar-grid button:disabled{color:var(--muted);opacity:.35;cursor:not-allowed;}
.td-calendar-grid button.today{font-weight:700;color:var(--brand);}
.td-calendar-grid button.selected{background:var(--brand);color:#fff;}

.td-cta-btn{display:block;width:100%;text-align:center;background:var(--brand);color:#fff;font-weight:700;font-size:14.5px;padding:14px;border-radius:10px;margin-bottom:18px;}
.td-cta-btn:hover{background:var(--brand-dark);}
.td-sidebar-perks{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
.td-sidebar-perks li{display:flex;gap:10px;align-items:flex-start;}
.td-sidebar-perks li svg{width:18px;height:18px;color:var(--teal);flex-shrink:0;margin-top:1px;}
.td-sidebar-perks li b{display:block;font-size:13px;}
.td-sidebar-perks li span{display:block;font-size:12px;color:var(--muted);line-height:1.5;margin-top:2px;}

.td-policy-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.td-policy-card{border:1px solid var(--line);border-radius:12px;padding:22px;}
.td-policy-card h3{font-size:16px;margin-bottom:10px;}
.td-policy-card p{font-size:13.5px;color:var(--muted);line-height:1.6;margin:0;}
.td-contact-links{display:grid;gap:10px;margin-top:14px;}
.td-contact-links a{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:11px 14px;transition:border-color .15s,background .15s,color .15s;}
.td-contact-links a:hover{border-color:var(--brand);background:var(--bg-soft);color:var(--brand);}
.td-contact-links svg{width:18px;height:18px;flex-shrink:0;color:var(--teal);}
@media(max-width:900px){
  .td-policy-grid{grid-template-columns:1fr;}
}

.td-review-card{border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:14px;}
.td-review-card .stars{margin-bottom:8px;}
.td-review-card p{font-size:13.5px;line-height:1.6;margin:0 0 10px;}
.td-review-user{display:flex;align-items:center;gap:10px;}
.td-no-reviews{color:var(--muted);font-size:14px;}

.td-lightbox{display:none;position:fixed;inset:0;background:rgba(8,16,20,.92);z-index:200;align-items:center;justify-content:center;}
.td-lightbox.open{display:flex;}
.td-lightbox img{max-width:88vw;max-height:82vh;object-fit:contain;border-radius:6px;}
.td-lightbox-close{position:absolute;top:22px;right:26px;background:none;border:none;color:#fff;font-size:22px;cursor:pointer;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.td-lightbox-close:hover{background:rgba(255,255,255,.12);}
.td-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:none;color:#fff;font-size:30px;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.td-lightbox-nav:hover{background:rgba(255,255,255,.24);}
.td-lightbox-prev{left:20px;}
.td-lightbox-next{right:20px;}
.td-lightbox-count{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;background:rgba(255,255,255,.12);padding:5px 14px;border-radius:20px;}

.td-sidebar-help{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--muted);margin-top:18px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;}
.td-sidebar-help svg{width:17px;height:17px;flex-shrink:0;color:var(--teal);}
.td-sidebar-help a{color:var(--brand);font-weight:600;text-decoration:underline;}

/* Mobile sticky "Check availability" bar + booking sheet (2026-09-25,
   GYG-style — user's request: "tour mobile mei nahi aa rha, image aye us
   bad tour ki cheezein aye jaisay gyg ka hai... check availability ko
   nechay sticky mein la"). Hidden on desktop; shown only in the media
   query below. The sidebar itself (.td-sidebar) becomes this sheet's
   content on mobile — no separate markup/logic to keep in sync. */
.td-mobile-bar{display:none;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(23,33,43,.1);padding:12px 16px;z-index:900;align-items:center;justify-content:space-between;gap:14px;}
.td-mobile-bar .td-from{display:block;font-size:11px;color:var(--muted);}
.td-mobile-bar .td-amount{display:block;font-size:18px;font-weight:700;color:var(--ink);}
.td-mobile-bar-btn{flex-shrink:0;background:var(--brand);color:#fff;font-weight:700;font-size:14px;padding:12px 22px;border-radius:10px;border:none;cursor:pointer;}
.td-mobile-bar-btn:hover{background:var(--brand-dark);}
.td-sheet-backdrop{display:none;position:fixed;inset:0;background:rgba(10,16,22,.5);z-index:1000;}
.td-sheet-backdrop.open{display:block;}
.td-sheet-close{display:none;position:absolute;top:14px;right:14px;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-soft);border:none;color:var(--ink);font-size:20px;line-height:1;cursor:pointer;z-index:1;}

@media(max-width:900px){
  .td-layout{grid-template-columns:1fr;}
  .td-gallery{grid-template-columns:1fr 1fr;grid-template-rows:200px 120px;height:auto;}
  .td-gallery .td-main-photo{grid-column:1 / 3;grid-row:1;}
  .td-facts{grid-template-columns:1fr;}
  .td-check-cols{grid-template-columns:1fr;}
  .td-kf-grid{grid-template-columns:1fr 1fr;}

  .td-page-wrap{padding-bottom:82px;}
  .td-mobile-bar{display:flex;}
  .td-sheet-close{display:flex;}
  .td-sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch;margin-bottom:0;border-radius:18px 18px 0 0;box-shadow:0 -10px 34px rgba(23,33,43,.2);background:#fff;transform:translateY(105%);transition:transform .3s ease;z-index:1001;}
  .td-sidebar.td-sheet-open{transform:translateY(0);}
}

/* ---- Account (login/signup) ---- */
.auth-page{display:flex;justify-content:center;padding:56px 32px 90px;}
.auth-card{width:100%;max-width:420px;border:1px solid var(--line);border-radius:16px;padding:36px 32px;}
.auth-card h1{font-size:24px;margin:0 0 6px;}
.auth-sub{font-size:13.5px;color:var(--muted);margin:0 0 22px;}
.auth-error{background:#FDECEC;color:#B42318;font-size:13px;padding:10px 14px;border-radius:8px;margin-bottom:16px;}
.auth-card form{display:flex;flex-direction:column;gap:4px;}
.auth-card label{font-size:12px;font-weight:600;color:var(--ink);margin:10px 0 2px;}
.auth-card input{padding:11px 13px;border:1px solid var(--line);border-radius:8px;font-family:'Poppins',sans-serif;font-size:14px;color:var(--ink);}
.auth-card input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.12);}
.auth-btn{margin-top:18px;background:var(--brand);color:#fff;font-weight:700;font-size:14.5px;padding:13px;border-radius:9px;border:none;cursor:pointer;transition:background .15s;}
.auth-btn:hover{background:var(--brand-dark);}

/* Honeypot trap (task #406) — visually hidden off-screen so a real visitor
   never sees or fills this field; a bot auto-filling every input on the
   page gives itself away. Used on account_login.html, account_signup.html
   and checkout.html. */
.hp-trap{position:absolute;left:-9999px;top:-9999px;height:0;width:0;overflow:hidden;}
.auth-switch{font-size:13px;color:var(--muted);margin:14px 0 0;text-align:center;}
.auth-switch a{color:var(--brand);font-weight:600;}
.auth-social-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-family:'Poppins',sans-serif;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;}
.auth-social-btn:hover{background:var(--bg-soft);border-color:#d0d5dd;}

/* ---- My Reservations ---- */
.reservations-page{padding:40px 0 100px;background:linear-gradient(180deg,var(--bg-soft) 0,#fff 260px);}
.reservations-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px;}
.reservations-head h1{font-size:28px;margin:0 0 6px;letter-spacing:-.01em;}
.reservations-head p{margin:0;font-size:13.5px;color:var(--muted);max-width:540px;line-height:1.5;}
.reservations-count{font-size:12.5px;font-weight:700;color:var(--muted);background:#fff;border:1px solid var(--line);padding:6px 14px;border-radius:20px;white-space:nowrap;}

.reservations-empty{margin-top:28px;border:1px dashed var(--line);border-radius:18px;padding:56px 24px;text-align:center;color:var(--muted);background:#fff;}
.reservations-empty svg{margin-bottom:14px;color:var(--muted);}
.reservations-empty p{margin:0 0 18px;font-size:14px;}

.reservations-list{display:flex;flex-direction:column;gap:14px;margin-top:26px;}
.reservation-card{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 20px;box-shadow:0 2px 5px rgba(20,25,40,.03);transition:box-shadow .15s,transform .15s;}
.reservation-card:hover{box-shadow:0 14px 34px -18px rgba(20,25,40,.22);transform:translateY(-1px);}
.reservation-card img{width:88px;height:88px;object-fit:cover;border-radius:14px;flex-shrink:0;box-shadow:0 3px 8px rgba(20,25,40,.1);}
.reservation-info{flex:1;min-width:0;}
.reservation-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:4px 11px 4px 9px;border-radius:20px;white-space:nowrap;margin-bottom:8px;}
.reservation-badge i{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0;}
.reservation-badge-active{background:var(--teal-tint);color:var(--teal);}
.reservation-badge-expired{background:var(--bg-soft);color:var(--muted);}
.reservation-badge-booked{background:var(--brand-tint);color:var(--brand);}
.reservation-info h3{margin:0 0 8px;font-size:15.5px;font-weight:700;}
.reservation-info h3 a{color:inherit;text-decoration:none;}
.reservation-info h3 a:hover{text-decoration:underline;}
.reservation-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;font-size:12.5px;color:var(--muted);}
.reservation-meta span:not(:last-child)::after{content:"·";margin-left:10px;color:var(--line);}
.reservation-add-btn{flex-shrink:0;font-size:12.5px;font-weight:700;color:var(--brand);white-space:nowrap;border:1.5px solid var(--brand-tint);padding:10px 18px;border-radius:10px;text-decoration:none;transition:background .15s,border-color .15s;}
.reservation-add-btn:hover{background:var(--brand-tint);border-color:var(--brand);}
/* 2026-09-09: richer Bookings-tab card — GetYourGuide-style order-confirmed
   pill + a request-status note when a cancellation/amendment is pending, and
   a stacked action column so "View booking summary" and "Download e-ticket"
   both fit without crowding the row. */
.reservation-badge svg{flex-shrink:0;}
.booking-request-note{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:#B23B1E;background:#FCE9E4;padding:5px 10px;border-radius:8px;margin-top:2px;}
.reservation-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0;}
.reservation-download-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink);border:1.5px solid var(--line);padding:9px 14px;border-radius:10px;text-decoration:none;transition:background .15s;white-space:nowrap;}
.reservation-download-btn:hover{background:var(--bg-soft);}
@media (max-width:640px){
  .reservation-actions{flex-direction:row;width:100%;order:3;}
  .reservation-actions a{flex:1;}
}
@media (max-width:640px){
  .reservation-card{flex-wrap:wrap;}
  .reservation-add-btn{width:100%;text-align:center;order:3;}
}

/* Customer dashboard (2026-09-09) — header/tabs/sub-tabs/wishlist grid/
   profile form for the tabbed "My Account" page (account_reservations.html,
   folding the old standalone My Reservations page in as one of its tabs). */
.dash-header{display:flex;align-items:center;gap:16px;margin-bottom:22px;}
.dash-avatar{width:56px;height:56px;border-radius:50%;background:var(--brand);color:#fff;font-family:'Poppins',sans-serif;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.dash-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.dash-header h1{font-size:24px;margin:0 0 2px;letter-spacing:-.01em;}
.dash-member-since{margin:0;font-size:13px;color:var(--muted);}

.dash-tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);margin-bottom:28px;flex-wrap:wrap;}
.dash-tab{font-size:13.5px;font-weight:600;color:var(--muted);text-decoration:none;padding:12px 16px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;}
.dash-tab:hover{color:var(--ink);}
.dash-tab.active{color:var(--brand);border-color:var(--brand);}
.dash-tab-count{background:var(--bg-soft);color:var(--muted);font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px;margin-left:2px;}
.dash-tab.active .dash-tab-count{background:var(--brand-tint);color:var(--brand);}
.dash-tab-logout{margin-left:auto;color:var(--muted);}

.dash-subtabs{display:flex;align-items:center;gap:8px;margin-bottom:20px;flex-wrap:wrap;}
.dash-subtab{font-size:12.5px;font-weight:700;color:var(--muted);text-decoration:none;background:#fff;border:1px solid var(--line);padding:8px 15px;border-radius:20px;display:inline-flex;align-items:center;gap:6px;transition:background .15s,border-color .15s,color .15s;}
.dash-subtab:hover{border-color:var(--brand-tint);}
.dash-subtab.active{background:var(--brand);border-color:var(--brand);color:#fff;}
.dash-subtab-count{background:rgba(0,0,0,.08);padding:1px 7px;border-radius:10px;font-size:11px;}
.dash-subtab.active .dash-subtab-count{background:rgba(255,255,255,.25);}

.dash-wishlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-top:8px;}
.dash-wishlist-card{background:var(--card);border-radius:14px;overflow:hidden;border:1px solid var(--line);transition:box-shadow .15s;}
.dash-wishlist-card:hover{box-shadow:0 10px 24px rgba(23,33,43,.10);}
.dash-wishlist-link{display:block;color:inherit;text-decoration:none;}
.dash-wishlist-remove-form{padding:0 19px 16px;}
.dash-wishlist-remove{width:100%;background:none;border:1.5px solid var(--line);color:var(--muted);font-size:12.5px;font-weight:700;padding:9px;border-radius:9px;cursor:pointer;transition:border-color .15s,color .15s;}
.dash-wishlist-remove:hover{border-color:#B42318;color:#B42318;}

.dash-profile-card{max-width:480px;border:1px solid var(--line);border-radius:16px;padding:32px;background:#fff;}
.dash-avatar-row{display:flex;align-items:center;gap:18px;margin-bottom:26px;padding-bottom:26px;border-bottom:1px solid var(--line);}
.dash-avatar-preview{width:64px;height:64px;border-radius:50%;background:var(--brand);color:#fff;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.dash-avatar-preview img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.dash-avatar-actions{display:flex;align-items:center;gap:10px;}
.dash-avatar-upload-btn{display:inline-block;font-size:13px;font-weight:700;color:var(--brand);border:1.5px solid var(--brand-tint);padding:9px 16px;border-radius:9px;cursor:pointer;transition:background .15s,border-color .15s;}
.dash-avatar-upload-btn:hover{background:var(--brand-tint);border-color:var(--brand);}
.dash-avatar-remove-btn{background:none;border:none;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;padding:9px 4px;}
.dash-avatar-remove-btn:hover{color:#B42318;}
.dash-profile-saved{background:var(--teal-tint);color:var(--teal);font-size:13px;padding:10px 14px;border-radius:8px;margin-bottom:16px;}
.dash-profile-form{display:flex;flex-direction:column;gap:4px;}
.dash-field{display:flex;flex-direction:column;margin-bottom:14px;}
.dash-field label{font-size:12px;font-weight:600;color:var(--ink);margin-bottom:6px;}
.dash-field input{padding:11px 13px;border:1px solid var(--line);border-radius:8px;font-family:'Poppins',sans-serif;font-size:14px;color:var(--ink);}
.dash-field input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.12);}
.dash-static-value{font-size:14px;color:var(--muted);padding:11px 0 0;}

@media (max-width:640px){
  .dash-tabs{gap:0;}
  .dash-tab{padding:10px 10px;font-size:12.5px;}
  .dash-tab-logout{margin-left:0;order:5;width:100%;text-align:center;border-top:1px solid var(--line);margin-top:6px;padding-top:12px;}
}

.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;font-size:11.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--line);}

/* ---- Checkout ---- */
.checkout-page{padding:36px 0 100px;background:linear-gradient(180deg,var(--bg-soft) 0,#fff 260px);}
.checkout-page h1{font-size:28px;margin:0 0 26px;letter-spacing:-.01em;}
.checkout-grid{display:grid;grid-template-columns:1fr 380px;gap:28px;align-items:start;}
.checkout-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:10px 40px 38px;box-shadow:0 2px 5px rgba(20,25,40,.03),0 14px 34px -18px rgba(20,25,40,.14);}
.checkout-panel h2{font-size:17px;margin:0 0 16px;letter-spacing:-.005em;}
.checkout-step-intro{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 18px;}
.checkout-loggedin{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:linear-gradient(135deg,var(--bg-soft),#fff);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:20px;font-size:13.5px;}
.checkout-loggedin b{display:block;font-size:14.5px;}
.checkout-loggedin a{color:var(--brand);font-weight:600;font-size:12.5px;white-space:nowrap;flex-shrink:0;}
.checkout-panel form{display:flex;flex-direction:column;}
.checkout-panel label{display:flex;align-items:center;font-size:11.5px;font-weight:700;letter-spacing:.01em;color:var(--muted);margin:18px 0 6px;text-transform:uppercase;}
.checkout-panel label:first-child{margin-top:0;}
.checkout-panel input:not([type="checkbox"]):not([type="radio"]),.checkout-panel select,.checkout-panel textarea{width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:10px;font-family:'Poppins',sans-serif;font-size:14.5px;color:var(--ink);background:#fcfcfb;transition:border-color .15s,background .15s,box-shadow .15s;}
.checkout-panel textarea{resize:vertical;min-height:78px;line-height:1.55;}
.checkout-panel input:focus,.checkout-panel select:focus,.checkout-panel textarea:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px rgba(var(--brand-rgb),.1);}
.checkout-panel input[readonly]{background:var(--bg-soft);color:var(--muted);}
.checkout-panel input:disabled{background:var(--bg-soft);color:var(--muted);opacity:.7;}
.checkout-form-row{display:flex;gap:16px;}
.checkout-form-row>div{flex:1;display:flex;flex-direction:column;min-width:0;}
.checkout-optional{text-transform:none;font-weight:500;letter-spacing:normal;color:var(--muted);font-size:11px;margin-left:5px;}
.checkout-tip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--bg-soft);color:var(--muted);font-size:10px;font-weight:700;margin-left:6px;cursor:help;text-transform:none;letter-spacing:normal;}
.checkout-tip-bubble{position:absolute;left:50%;bottom:135%;transform:translate(-50%,4px);width:230px;background:var(--ink);color:#fff;font-size:11.5px;font-weight:500;line-height:1.5;text-transform:none;letter-spacing:normal;padding:10px 12px;border-radius:9px;opacity:0;visibility:hidden;transition:opacity .15s,transform .15s;z-index:6;text-align:left;pointer-events:none;}
.checkout-tip-bubble::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--ink);}
.checkout-tip:hover .checkout-tip-bubble{opacity:1;visibility:visible;transform:translate(-50%,0);}
.checkout-phone-row{display:flex;gap:10px;}
.checkout-phone-row select{flex:0 0 auto;width:150px;}
.checkout-phone-row input{flex:1;min-width:0;}
.checkout-step{display:flex;gap:20px;padding:32px 0;border-top:1px solid var(--line);}
.checkout-step:first-child{border-top:none;padding-top:26px;}
.checkout-step-num{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 0 0 5px rgba(var(--brand-rgb),.1);}
.checkout-step-body{flex:1;min-width:0;}
.checkout-account-hint{font-size:12.5px;color:var(--muted);background:var(--bg-soft);border-radius:10px;padding:12px 14px;margin-top:18px;}
.checkout-account-hint a{color:var(--brand);font-weight:600;}
.checkout-activity-card{display:flex;gap:14px;background:linear-gradient(135deg,var(--bg-soft),#fdfdfc);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px;}
.checkout-activity-card img{width:66px;height:66px;object-fit:cover;border-radius:10px;flex-shrink:0;box-shadow:0 3px 8px rgba(20,25,40,.12);}
.checkout-activity-card h3{font-size:14px;margin:0 0 6px;line-height:1.35;}
.checkout-activity-card span{display:block;font-size:12.5px;color:var(--muted);line-height:1.6;}
.checkout-field-hint{font-size:12px;color:var(--muted);margin:6px 0 0;}
.checkout-decide-later{display:flex;align-items:center;gap:8px;margin-top:10px;}
.checkout-decide-later input{margin:0;accent-color:var(--brand);}
.checkout-decide-later label{margin:0;text-transform:none;font-weight:500;font-size:12.5px;color:var(--muted);letter-spacing:normal;}
.checkout-meeting-point{display:flex;gap:12px;align-items:flex-start;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;padding:14px 16px;}
.checkout-meeting-point svg{flex-shrink:0;margin-top:1px;color:var(--brand);}
.checkout-meeting-point div{font-size:13.5px;color:var(--ink);line-height:1.55;}
.checkout-pickup-wrap{position:relative;}
.checkout-pickup-suggestions{display:none;position:absolute;top:100%;left:0;right:0;margin:6px 0 0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px -8px rgba(20,25,40,.18);max-height:230px;overflow-y:auto;z-index:30;}
.checkout-pickup-suggestions.open{display:block;}
.checkout-pickup-suggestions li{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;}
.checkout-pickup-suggestions li:hover,.checkout-pickup-suggestions li.active{background:var(--bg-soft);}
.checkout-pickup-suggestions li svg{flex-shrink:0;margin-top:2px;color:var(--brand);}
.checkout-pickup-suggestions li div{min-width:0;}
.checkout-pickup-suggestions li b{display:block;font-size:13.5px;font-weight:600;color:var(--ink);}
.checkout-pickup-suggestions li span{display:block;font-size:12px;color:var(--muted);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.checkout-payment-note{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 16px;}
.checkout-pay-when{display:flex;flex-direction:column;gap:10px;margin-bottom:6px;}
.checkout-pay-option{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;cursor:pointer;transition:border-color .15s,background .15s;}
.checkout-pay-option:has(input:checked){border-color:var(--brand);background:rgba(var(--brand-rgb),.05);}
.checkout-pay-option.disabled{cursor:not-allowed;opacity:.55;}
.checkout-pay-option input{margin:0;accent-color:var(--brand);flex-shrink:0;}
.checkout-pay-option-main{flex:1;display:flex;flex-direction:column;gap:2px;}
.checkout-pay-option-title{font-size:13.5px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;}
.checkout-pay-option-sub{font-size:12px;color:var(--muted);}
.checkout-pay-option-amount{font-size:14.5px;font-weight:700;color:var(--ink);white-space:nowrap;}
.checkout-pay-option-amount small{font-weight:500;color:var(--muted);font-size:11px;}
.checkout-soon-badge{background:var(--bg-soft);color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 7px;border-radius:20px;}
.checkout-pay-sub{display:flex;flex-direction:column;gap:8px;margin:14px 0 18px;padding-left:6px;}
.checkout-pay-method{display:flex;align-items:flex-start;gap:11px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;transition:border-color .15s,background .15s;}
.checkout-pay-method:has(input:checked){border-color:var(--brand);background:rgba(var(--brand-rgb),.05);}
.checkout-pay-method.disabled{cursor:not-allowed;opacity:.55;}
.checkout-pay-method input{margin-top:2px;accent-color:var(--brand);flex-shrink:0;}
.checkout-panel .auth-btn{box-shadow:0 10px 22px -10px rgba(var(--brand-rgb),.55);transition:background .15s,transform .15s,box-shadow .15s;}

/* "Pay now" method chooser (2026-09-07 request: professional, Agoda-style
   payment method rows; 2026-09-08 feedback: skip the extra click — both
   the "PayPal" and "Debit / Credit Card" rows render their real, clickable
   PayPal button right underneath immediately, no select-then-click step.
   Actual card-number entry still happens inside PayPal's own secure popup
   (not typed into these rows) — see the JS comment above
   dtsRenderPaypalButtons() in checkout.html for why. */
.checkout-pay-online{border:1px solid var(--line);border-radius:12px;padding:16px 16px 14px;background:#FAFAFB;}
.pp-method-block{margin:12px 0 16px;}
.pp-method-block + .pp-method-block{padding-top:14px;border-top:1px solid var(--line);}
.pp-method-label{display:flex;align-items:center;gap:12px;padding:0 2px 10px;}
.pp-method-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:8px;background:#fff;border:1px solid var(--line);flex-shrink:0;}
.pp-method-copy{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.pp-method-copy b{font-size:14.5px;color:var(--ink);}
.pp-method-copy span{font-size:12px;color:var(--muted);}
.pp-card-brands{display:flex;gap:5px;flex-shrink:0;}
.pp-brand-chip{font-size:9px;font-weight:800;letter-spacing:.3px;padding:3px 6px;border-radius:4px;color:#fff;line-height:1.4;}
.pp-brand-visa{background:#1A1F71;}
.pp-brand-mc{background:#EB001B;}
.pp-brand-amex{background:#2E77BC;}
.pp-button-slot{min-height:44px;}
.pp-secured-note{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11.5px;color:var(--muted);margin-top:12px;}
@media (max-width:520px){
  .pp-method-copy span{display:none;}
  .pp-card-brands{display:none;}
}
.checkout-panel .auth-btn:hover{transform:translateY(-1px);box-shadow:0 14px 26px -10px rgba(var(--brand-rgb),.6);}
.checkout-side{position:sticky;top:90px;display:flex;flex-direction:column;gap:18px;}
.checkout-hold-timer{display:flex;align-items:center;gap:10px;background:#FDECEC;color:#B3261E;border-radius:14px;padding:13px 16px;font-size:13px;font-weight:600;margin-bottom:16px;}
.checkout-hold-timer svg{width:18px;height:18px;flex-shrink:0;}
.checkout-hold-timer.expired{background:var(--bg-soft);color:var(--muted);}
.checkout-hold-timer a{color:var(--brand);font-weight:700;}
#checkout-submit-btn:disabled{opacity:.55;cursor:not-allowed;}
.checkout-summary{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 2px 5px rgba(20,25,40,.03),0 14px 34px -18px rgba(20,25,40,.14);}
.checkout-summary-tour{display:flex;gap:12px;margin-bottom:16px;}
.checkout-summary-tour img{width:64px;height:64px;object-fit:cover;border-radius:10px;flex-shrink:0;box-shadow:0 3px 8px rgba(20,25,40,.12);}
.checkout-summary-tour h3{font-size:14.5px;margin:0;line-height:1.35;}
.checkout-summary-line{display:flex;gap:10px;font-size:13px;color:var(--ink);padding:10px 0;border-top:1px solid var(--line);}
.checkout-summary-line svg{width:16px;height:16px;flex-shrink:0;margin-top:1px;color:var(--teal);}
.checkout-summary-line span.muted{color:var(--muted);display:block;font-size:12px;margin-top:2px;}
.checkout-change-link{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--brand);padding:2px 0 12px;border:none;background:none;cursor:pointer;font-family:inherit;}
.checkout-change-link:hover{text-decoration:underline;}
.checkout-change-panel{border-top:1px solid var(--line);padding-top:14px;margin-bottom:6px;}
.checkout-change-panel label{display:block;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:12px 0 6px;}
.checkout-change-panel label:first-child{margin-top:0;}
.checkout-change-panel input[type="date"],.checkout-change-panel select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:13.5px;font-family:inherit;color:var(--ink);background:#fff;}
.checkout-edit-participants{display:flex;flex-direction:column;gap:10px;}
.checkout-edit-stepper{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.checkout-edit-stepper b{display:block;font-size:13px;font-weight:600;}
.checkout-edit-stepper .muted{display:block;font-size:11.5px;color:var(--muted);margin-top:1px;}
.checkout-stepper-controls{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.checkout-stepper-controls button{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--brand);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.checkout-stepper-controls button:hover{background:var(--brand-tint);}
.checkout-stepper-controls span{min-width:16px;text-align:center;font-size:13.5px;font-weight:600;}
.checkout-change-actions{display:flex;gap:10px;margin-top:16px;}
.checkout-change-cancel,.checkout-change-apply{flex:1;padding:10px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;border:1px solid var(--line);}
.checkout-change-cancel{background:#fff;color:var(--ink);}
.checkout-change-apply{background:var(--brand);color:#fff;border-color:var(--brand);}
.checkout-change-apply:hover{background:var(--brand-dark);}
.checkout-breakdown{border-top:1px solid var(--line);padding-top:14px;margin-top:4px;font-size:13px;}
.checkout-breakdown div{display:flex;justify-content:space-between;padding:3px 0;color:var(--muted);}
.checkout-total{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,rgba(var(--brand-rgb),.07),rgba(var(--brand-rgb),.02));border-radius:12px;margin-top:14px;padding:14px 16px;font-size:14.5px;font-weight:700;}
.checkout-total b{color:var(--brand);font-size:22px;letter-spacing:-.01em;}
.checkout-trust{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px 24px;box-shadow:0 2px 5px rgba(20,25,40,.03),0 14px 34px -18px rgba(20,25,40,.14);}
.checkout-trust h4{font-size:14.5px;margin:0 0 16px;}
.checkout-trust-item{display:flex;gap:11px;margin-bottom:14px;}
.checkout-trust-item svg{width:19px;height:19px;flex-shrink:0;margin-top:1px;color:var(--teal);}
.checkout-trust-item b{display:block;font-size:13px;margin-bottom:2px;}
.checkout-trust-item span{display:block;font-size:12.5px;color:var(--muted);line-height:1.5;}
.checkout-chat-now{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:700;color:var(--brand);margin-top:8px;background:rgba(15,138,108,.08);border-radius:10px;padding:10px;transition:background .15s;}
.checkout-chat-now:hover{background:rgba(15,138,108,.16);}
.checkout-chat-now svg{width:17px;height:17px;color:var(--teal);}
@media(max-width:900px){
  .checkout-grid{grid-template-columns:1fr;}
  .checkout-side{position:static;}
  /* 2026-09-25: on mobile the tour summary card used to render AFTER the
     whole 3-step form (it's a separate .checkout-side column that just
     stacks below .checkout-panel once the grid collapses to one column) —
     GetYourGuide's mobile "Review and pay" always shows the tour card
     first, above the contact/payment form, so `order` flips that here
     without touching the desktop side-by-side layout at all. */
  .checkout-grid{display:flex;flex-direction:column;}
  .checkout-side{order:-1;}
  /* 2026-09-25: "Book with confidence" (flexibility/24-7-support/Chat now
     card) is redundant weight on a phone screen — drop it there, keep it
     on tablet/desktop. */
  .checkout-trust{display:none;}
  /* "Signed in as X" + "Not you? Log out" was cramming onto one row and
     the link ran into the email on narrow phones — stack them so both
     stay fully readable. */
  .checkout-loggedin{flex-direction:column;align-items:flex-start;}
}

/* ---- Booking confirmation ---- */
.confirm-page{padding:56px 32px 90px;display:flex;justify-content:center;}
.confirm-card{width:100%;max-width:620px;border:1px solid var(--line);border-radius:16px;padding:40px 36px;text-align:center;}
.confirm-icon{width:56px;height:56px;border-radius:50%;background:#E7F6EF;color:var(--teal);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;}
.confirm-icon-cancelled{background:#FCE6E6;color:#B23A3A;}
.confirm-card h1{font-size:22px;margin:0 0 8px;}
.confirm-card p.auth-sub{margin-bottom:24px;}
.confirm-details{text-align:left;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:24px;}
.confirm-details div{display:flex;justify-content:space-between;font-size:13.5px;padding:6px 0;color:var(--ink);}
.confirm-details span.muted{color:var(--muted);}
/* 2026-09-10: booking-summary page additions (know-before-you-go, e-ticket
   download + WhatsApp CTA, manage-booking box with cancel/amend forms) —
   this page now doubles as the dashboard's "View booking summary" link,
   not just the immediately-after-checkout confirmation. */
.confirm-banner{text-align:left;font-size:13px;font-weight:600;padding:12px 16px;border-radius:10px;margin-bottom:20px;}
.confirm-banner-info{background:var(--teal-tint);color:var(--teal);}
.confirm-note{text-align:left;font-size:12.5px;font-weight:600;color:#8A5A0E;background:#FCEED3;padding:10px 14px;border-radius:10px;margin:-8px 0 20px;}
.confirm-section{text-align:left;margin-bottom:24px;}
.confirm-section h2{font-size:14.5px;margin:0 0 12px;}
.confirm-inc-exc{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.confirm-inc-exc h3{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:0 0 8px;}
.confirm-inc-exc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px;}
.confirm-inc-exc li{display:flex;gap:7px;align-items:flex-start;}
@media (max-width:520px){.confirm-inc-exc{grid-template-columns:1fr;}}
.confirm-actions-row{display:flex;gap:10px;margin-bottom:24px;}
.confirm-actions-row a{flex:1;}
.auth-btn-outline{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;font-size:13.5px;font-weight:700;color:var(--brand);border:1.5px solid var(--brand-tint);border-radius:10px;padding:12px 16px;transition:background .15s,border-color .15s;}
.auth-btn-outline:hover{background:var(--brand-tint);border-color:var(--brand);}
.confirm-manage-box{text-align:left;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:24px;}
.confirm-manage-box h2{font-size:14.5px;margin:0 0 14px;}
.manage-row{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;}
.manage-row:last-child{margin-bottom:0;}
.manage-row textarea,.manage-row input{border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-family:inherit;font-size:13px;width:100%;}
.manage-row textarea{resize:vertical;min-height:60px;}
.manage-btn{align-self:flex-start;border:none;border-radius:9px;padding:10px 18px;font-size:13px;font-weight:700;cursor:pointer;}
.manage-btn-danger{background:#FCE6E6;color:#B23A3A;}
.manage-btn-danger:hover{background:#B23A3A;color:#fff;}
.manage-btn-ghost{background:var(--bg-soft);color:var(--ink);}
.manage-btn-ghost:hover{background:var(--line);}
.manage-note{font-size:12.5px;color:var(--muted);margin:0;}
.manage-divider{height:1px;background:var(--line);margin:16px 0;}

/* ------------------------------------------------------------------ */
/* Blog — /blog listing grid, post detail article, and the small card
   used both there and in the "Recent posts" strip on a post page. */
/* ------------------------------------------------------------------ */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.blog-card{display:block;background:var(--card);border-radius:14px;overflow:hidden;border:1px solid var(--line);text-decoration:none;color:inherit;transition:box-shadow .15s;}
.blog-card:hover{box-shadow:0 10px 24px rgba(23,33,43,.10);}
.blog-card-img{height:180px;background:var(--bg-soft);}
.blog-card-img img{width:100%;height:100%;object-fit:cover;display:block;}
.blog-card-body{padding:16px 18px 18px;}
.blog-card-body h3{font-size:16px;margin:0 0 8px;line-height:1.35;}
.blog-excerpt{font-size:13.5px;color:var(--muted);line-height:1.55;margin:0 0 12px;}
.blog-card-meta{font-size:12px;color:var(--muted);display:flex;gap:5px;}
.blog-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.blog-tag{display:inline-block;font-size:11px;font-weight:600;color:var(--brand-dark);background:var(--brand-tint);padding:3px 10px;border-radius:20px;text-transform:capitalize;}
.blog-cat-filters{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 26px;}
.blog-cat-filter{font-size:13px;font-weight:600;color:var(--muted);border:1px solid var(--line);padding:8px 16px;border-radius:20px;text-decoration:none;background:#fff;}
.blog-cat-filter.active,.blog-cat-filter:hover{background:var(--bg-soft);color:var(--ink);border-color:var(--brand);}

/* Hero strip — full-width tinted band that holds the back link, category,
   title and byline above the two-column layout below. */
.blog-hero-strip{background:var(--bg-soft);border-bottom:1px solid var(--line);padding:28px 0 34px;}
.blog-hero-wrap{max-width:1120px;}
.blog-back{display:inline-block;font-size:13.5px;font-weight:600;color:var(--muted);text-decoration:none;margin-bottom:14px;}
.blog-back:hover{color:var(--brand-dark);}
.blog-hero-strip .blog-tag{margin-bottom:10px;}
.blog-hero-strip h1{font-size:38px;line-height:1.2;margin:8px 0 12px;max-width:900px;}
.blog-meta-line{font-size:13.5px;color:var(--muted);display:flex;gap:5px;}

/* Two-column layout: article + sticky sidebar, sized to make real use of
   wide screens instead of a single narrow centered column. */
.blog-layout{max-width:1120px;margin:0 auto;padding:36px 32px 0;display:grid;grid-template-columns:1fr 300px;gap:52px;align-items:start;}
.blog-article{min-width:0;}
.blog-article-img{border-radius:16px;overflow:hidden;margin:0 0 26px;box-shadow:0 12px 32px rgba(23,33,43,.10);}
.blog-article-img img{width:100%;display:block;max-height:480px;object-fit:cover;}
.blog-content{font-size:16.5px;line-height:1.85;color:var(--ink);}
.blog-content h2{font-size:24px;margin:36px 0 14px;}
.blog-content h3{font-size:19px;margin:28px 0 10px;}
.blog-content p{margin:0 0 18px;}
.blog-content img{max-width:100%;border-radius:12px;margin:20px 0;}
.blog-content a{color:var(--brand);}
.blog-content ul,.blog-content ol{margin:0 0 18px;padding-left:24px;}
.blog-content blockquote{margin:24px 0;padding:14px 22px;border-left:4px solid var(--brand);background:var(--bg-soft);border-radius:0 10px 10px 0;font-style:italic;color:var(--ink);}

.blog-share-row{display:flex;align-items:center;gap:10px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line);}
.blog-share-row span{font-size:13.5px;font-weight:600;color:var(--muted);margin-right:2px;}
.blog-share-btn{width:38px;height:38px;border-radius:50%;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;color:var(--ink);text-decoration:none;transition:background .15s,color .15s;}
.blog-share-btn:hover{background:var(--brand);color:#fff;}

.blog-sidebar{position:sticky;top:96px;display:flex;flex-direction:column;gap:20px;}
.blog-sidebar-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;}
.blog-sidebar-card h3{font-size:14.5px;margin:0 0 14px;}
.blog-side-list{display:flex;flex-direction:column;gap:14px;}
.blog-side-post{display:flex;gap:10px;text-decoration:none;color:inherit;}
.blog-side-post-img{width:60px;height:60px;border-radius:10px;overflow:hidden;background:var(--bg-soft);flex-shrink:0;}
.blog-side-post-img img{width:100%;height:100%;object-fit:cover;display:block;}
.blog-side-post h4{font-size:13px;font-weight:600;line-height:1.35;margin:0 0 4px;}
.blog-side-post span{font-size:11.5px;color:var(--muted);}
.blog-side-post:hover h4{color:var(--brand-dark);}
.blog-sidebar-cta{background:var(--brand-tint);border-color:var(--brand-tint);}
.blog-sidebar-cta p{font-size:13px;color:var(--brand-dark);line-height:1.5;margin:0 0 14px;}
.blog-sidebar-cta-btn{display:inline-block;background:var(--brand);color:#fff;font-size:13.5px;font-weight:600;padding:10px 18px;border-radius:9px;text-decoration:none;}
.blog-sidebar-cta-btn:hover{background:var(--brand-dark);}

@media (max-width:900px){
  .blog-grid{grid-template-columns:repeat(2,1fr);}
  .blog-layout{grid-template-columns:1fr;padding:28px 20px 0;}
  .blog-sidebar{position:static;}
}
@media (max-width:600px){
  .blog-grid{grid-template-columns:1fr;}
  .blog-hero-strip h1{font-size:26px;}
  .blog-article-img img{max-height:280px;}
}

/* =======================================================================
   Holiday Package detail page (/packages/{slug}) — approved design mockup
   ported in verbatim (pk- prefix), 2026-08-07.
   ======================================================================= */
.pk-top{padding:20px 0 6px;}
.pk-crumb{font-size:12.5px;color:var(--muted);margin-bottom:10px;}
.pk-crumb a{color:var(--muted);}
.pk-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.pk-badge{display:inline-flex;align-items:center;gap:6px;background:var(--teal-tint);color:var(--teal);font-size:12px;font-weight:700;padding:5px 12px;border-radius:100px;margin-bottom:10px;}
.pk-title{font-size:30px;font-weight:800;letter-spacing:-.3px;}
.pk-meta{display:flex;align-items:center;gap:14px;margin-top:10px;font-size:13.5px;color:var(--muted);flex-wrap:wrap;}
.pk-meta .stars{color:var(--gold);font-size:13px;}
.pk-meta span{display:flex;align-items:center;gap:5px;}
.pk-actions{display:flex;gap:10px;}
.pk-text-btn{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink);border:1px solid var(--line);padding:8px 14px;border-radius:9px;background:#fff;cursor:pointer;}

/* Package gallery now reuses the tour detail page's .td-gallery/.td-lightbox
   classes directly (see style.css line ~474) instead of its own grid, so
   both product types share one consistent "5-photo grid + click for
   lightbox" design — see package_detail.html. */

.pk-layout{display:grid;grid-template-columns:1fr 380px;gap:36px;align-items:start;}
.pk-main section{margin-bottom:34px;}
.pk-main h2{font-size:19px;margin-bottom:14px;}

/* Redesigned 2026-08-25 from one flat beige bar into individual white
   cards with a circular icon badge each — matches the reference layout
   the user attached (GetYourGuide's fact-highlight grid: icon, bold
   title, small subtext, per card) instead of one long inline strip. */
/* .pk-facts/.pk-fact/.pk-fact-icon removed (2026-08-26) — facts strip now
   reuses tour_detail.html's .td-facts/.td-fact plain icon-list styling
   (defined near the top of this file), on the user's explicit request. */

.pk-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto;}
.pk-tab{padding:12px 16px;font-size:13.5px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;cursor:pointer;}
.pk-tab.active{color:var(--brand);border-color:var(--brand);}

/* Day-by-day itinerary accordion — each day is a .pk-accordion (shares the
   collapse/expand CSS + pkToggleAccordion() JS with the "Good to know"
   section below); this block layers on itinerary-specific styling for the
   Day N badge and the description+image side-by-side body. */
.pk-itin-accordion{margin-bottom:10px;}
.pk-itin-head{gap:14px;}
.pk-itin-head-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1;}
.pk-itin-day-badge{flex-shrink:0;background:var(--brand-soft,#fff1ec);color:var(--brand);font-size:11.5px;font-weight:700;letter-spacing:.3px;padding:5px 11px;border-radius:20px;}
/* Thumbnail + snippet on the COLLAPSED row itself — so a visitor gets a
   preview of what's inside a day before clicking to expand it, not just a
   bare title (2026-08-18, user's explicit request). */
.pk-itin-head-thumb{flex-shrink:0;width:44px;height:44px;object-fit:cover;border-radius:8px;}
.pk-itin-head-text{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden;}
.pk-itin-head-title{font-size:14.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pk-itin-head-snippet{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;}
.pk-itin-body-inner{display:flex;gap:20px;align-items:flex-start;}
.pk-itin-text{flex:1;min-width:0;}
.pk-itin-text p{font-size:13.5px;color:var(--muted);line-height:1.6;margin:0;white-space:pre-line;}
.pk-itin-img{flex-shrink:0;width:220px;}
.pk-itin-img img{width:100%;height:150px;object-fit:cover;border-radius:10px;display:block;}
/* Includes/Excludes per day — reuses the same .pk-check-cols/.pk-check-list
   green-check/red-cross styling as the page's main "What's Included &
   Excluded" section (Good to know), just scoped smaller here. .single
   collapses to one column when a day has only Includes and no Excludes
   (the common case), so it doesn't leave an empty second column. */
.pk-itin-check-cols{margin-top:12px;}
.pk-itin-check-cols.single{grid-template-columns:1fr;}
.pk-itin-check-cols .pk-check-list li{font-size:12.5px;padding:4px 0;}
.pk-itin-gallery{display:flex;gap:8px;margin-top:14px;overflow-x:auto;padding-bottom:2px;}
.pk-itin-gallery img{width:100px;height:74px;object-fit:cover;border-radius:8px;flex-shrink:0;}
.pk-itin-viewall{display:block;margin:4px auto 0;background:none;border:1px solid var(--line);border-radius:24px;padding:10px 22px;font-size:13px;font-weight:600;color:var(--brand);cursor:pointer;}
.pk-itin-viewall:hover{background:var(--brand-soft,#fff1ec);}
@media (max-width: 720px){
  .pk-itin-body-inner{flex-direction:column;}
  .pk-itin-img{width:100%;}
  .pk-itin-head-title,.pk-itin-head-snippet{white-space:normal;}
  .pk-itin-head-snippet{display:none;}
}

/* Optional add-ons section */
.pk-extras-list{display:flex;flex-direction:column;gap:12px;}
.pk-extra-item{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:14px 16px;cursor:pointer;transition:border-color .15s,background .15s;}
.pk-extra-item:hover{border-color:var(--brand);}
.pk-extra-item:has(.pk-extra-check:checked){border-color:var(--brand);background:var(--brand-tint);}
.pk-extra-item input[type="checkbox"]{margin-top:3px;width:17px;height:17px;flex-shrink:0;accent-color:var(--brand);cursor:pointer;}
.pk-extra-item-body{flex:1;}
.pk-extra-item-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14.5px;}
.pk-extra-price{color:var(--brand);font-weight:700;font-size:13px;white-space:nowrap;}
.pk-extra-item-body p{margin:4px 0 0;font-size:13px;color:var(--muted);line-height:1.5;}

.pk-hotel-note{font-size:13px;color:var(--muted);margin-bottom:16px;}

.pk-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.pk-info-card{border:1px solid var(--line);border-radius:14px;padding:20px;}
.pk-info-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.pk-info-card-head svg{color:var(--brand);}
.pk-info-card-head h3{font-size:14.5px;}
.pk-info-card p{font-size:13px;color:var(--muted);line-height:1.7;margin:0 0 4px;}

.pk-check-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.pk-check-list{list-style:none;margin:0;padding:0;}
.pk-check-list li{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;padding:7px 0;color:var(--ink);}
.pk-check-list svg{flex-shrink:0;margin-top:2px;}
.pk-check-list .yes svg{color:var(--teal);}
.pk-check-list .no svg{color:#C93A3A;}

.pk-accordion{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden;background:#fff;}
.pk-accordion-head{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;font-size:14.5px;font-weight:600;cursor:pointer;}
.pk-accordion-head .chevron{color:var(--muted);flex-shrink:0;transition:transform .2s;}
.pk-accordion.open .pk-accordion-head .chevron{transform:rotate(180deg);color:var(--brand);}
.pk-accordion-body{display:none;padding:0 20px 20px;}
.pk-accordion.open .pk-accordion-body{display:block;}
.pk-plain-list{list-style:none;margin:0;padding:0;}
.pk-plain-list li{font-size:13px;color:var(--muted);line-height:1.7;padding:4px 0 4px 16px;position:relative;}
.pk-plain-list li::before{content:"";position:absolute;left:0;top:12px;width:5px;height:5px;border-radius:50%;background:var(--brand);}

.pk-review-card{border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px;}
.pk-review-card .stars{color:var(--gold);font-size:13px;margin-bottom:6px;}
.pk-review-card p{font-size:13.5px;margin:0 0 10px;color:var(--ink);}
.pk-review-user{display:flex;align-items:center;gap:8px;}
.pk-review-user .avatar{width:30px;height:30px;border-radius:50%;background:var(--brand-tint);color:var(--brand-dark);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;}

.pk-sidebar{position:sticky;top:90px;border:1px solid var(--line);border-radius:16px;padding:22px;background:#fff;box-shadow:0 10px 30px rgba(23,33,43,.06);}
.pk-price-row{display:flex;align-items:baseline;gap:8px;margin-bottom:2px;}
.pk-price-row .from{font-size:12.5px;color:var(--muted);}
.pk-price-row .amount{font-size:27px;font-weight:800;}
.pk-price-row .unit{font-size:12px;color:var(--muted);}
.pk-sidebar-note{font-size:12px;color:var(--muted);margin:0 0 16px;}
.pk-field-label{display:block;font-size:11.5px;font-weight:600;color:var(--muted);margin-bottom:6px;margin-top:14px;}
.pk-field-label:first-of-type{margin-top:0;}
.pk-select-btn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:13.5px;font-family:'Poppins',sans-serif;color:var(--ink);cursor:pointer;}
.pk-cta-btn{display:block;width:100%;text-align:center;text-decoration:none;background:var(--brand);color:#fff;font-weight:700;font-size:14.5px;padding:13px;border-radius:10px;border:none;margin-top:18px;cursor:pointer;box-sizing:border-box;}
.pk-cta-btn.secondary{background:var(--brand-dark);margin-top:10px;}

/* Visa toggle INSIDE each option card (2026-08-26, user asked for it to
   live in the card rather than as one shared control above the grid) —
   sits between the meta list and the Select footer. Each card has its own
   independent checkbox, defaulting ticked. See #pk-options-section in
   package_detail.html / pkGetVisaCost()/pkUpdateOptionTotals(). */
.pk-visa-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:10px;padding:11px 14px;margin:0 0 14px;background:var(--bg-soft);cursor:pointer;font-size:13px;}
.pk-visa-toggle-row span{display:flex;align-items:center;gap:8px;color:var(--ink);font-weight:500;}
.pk-visa-toggle-row input{width:15px;height:15px;accent-color:var(--brand);cursor:pointer;}
.pk-visa-toggle-row b{color:var(--ink);white-space:nowrap;}

/* "Visa included" meta line flips to a muted/"not included" look when
   that option card's own Visa checkbox is unticked (2026-08-26). */
.pk-visa-meta-line{transition:color .15s ease;}
.pk-visa-meta-line.excluded{color:var(--muted);}
.pk-visa-meta-line.excluded .pk-visa-meta-icon{stroke:var(--muted);}

.pk-quick-contact{display:flex;gap:10px;margin-top:10px;}
.pk-quick-contact a{position:relative;flex:1;height:46px;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:7px;color:#fff;font-size:12.5px;font-weight:700;}
.pk-quick-contact a svg{flex-shrink:0;}
.pk-quick-contact .wa{background:#25D366;--pulse:rgba(37,211,102,.55);}
.pk-quick-contact .chat{background:var(--brand);--pulse:rgba(232,84,46,.55);}
.pk-quick-contact a::after{content:"";position:absolute;inset:0;border-radius:10px;animation:pkPulse 2s ease-out infinite;pointer-events:none;}
.pk-quick-contact a:nth-child(2)::after{animation-delay:.5s;}
@keyframes pkPulse{
  0%{box-shadow:0 0 0 0 var(--pulse);}
  70%{box-shadow:0 0 0 11px rgba(0,0,0,0);}
  100%{box-shadow:0 0 0 0 rgba(0,0,0,0);}
}
.pk-sidebar-perks{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--line);}
.pk-sidebar-perks li{display:flex;gap:10px;font-size:12.5px;color:var(--muted);padding:6px 0;align-items:flex-start;}
.pk-sidebar-perks svg{color:var(--teal);flex-shrink:0;margin-top:1px;}
.pk-sidebar-help{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-top:16px;padding-top:14px;border-top:1px solid var(--line);}
.pk-sidebar-help a{color:var(--brand);font-weight:600;}

@media(max-width:900px){
  .pk-layout{grid-template-columns:1fr;}
  .pk-sidebar{position:static;}
  .pk-info-grid,.pk-check-cols{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .pk-title{font-size:23px;}
}

/* Language + Currency picker modal (GetYourGuide-style header pill,
   2026-09-06). Overlay is always in the DOM (display:flex) but hidden via
   opacity/visibility so the close transition doesn't feel abrupt. */
.lc-modal-overlay{position:fixed;inset:0;background:rgba(20,20,25,.5);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .18s ease;padding:16px;}
.lc-modal-overlay.open{opacity:1;visibility:visible;}
/* Wider, GetYourGuide-style modal (2026-09-07 request: "jaisay getyourguide
   ka aa raha") — a two-column option grid instead of a single stacked list,
   tabs + close button sharing one header row (no separate title line), and
   a plain checkmark-on-selected look instead of a filled highlight pill. */
.lc-modal{background:#fff;border-radius:16px;width:640px;max-width:100%;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25);}
.lc-modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--line);}
.lc-modal-close{background:none;border:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer;padding:2px 4px;}
.lc-modal-close:hover{color:var(--ink);}
.lc-modal-tabs{display:flex;gap:28px;}
.lc-modal-tab{display:flex;align-items:center;gap:8px;background:none;border:none;border-bottom:2px solid transparent;padding:6px 0 14px;margin-bottom:-19px;font-size:15px;font-weight:600;color:var(--muted);cursor:pointer;}
.lc-modal-tab svg{width:18px;height:18px;flex-shrink:0;}
.lc-modal-tab.active{color:var(--brand-dark);border-bottom-color:var(--brand);}
.lc-modal-body{padding:20px 24px 26px;overflow-y:auto;}
.lc-modal-pane form{display:grid;grid-template-columns:1fr 1fr;gap:2px 32px;}
.lc-option{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;border-radius:8px;padding:11px 8px;font-size:14.5px;font-weight:500;color:var(--ink);cursor:pointer;text-align:left;}
.lc-option:hover{background:#F5F5F7;}
.lc-option.selected{font-weight:700;color:var(--brand-dark);}
.lc-option svg{width:18px;height:18px;color:var(--brand);flex-shrink:0;margin-left:10px;}
@media (max-width:640px){
  .lc-modal-pane form{grid-template-columns:1fr;}
}

/* About Us page (2026-09-27) — a handful of small, compact section styles
   not already covered by the homepage's classes. Kept intentionally light
   (small padding, short copy) per the user's request that every section on
   this page stay short rather than the tall, spaced-out sections used on
   other reference designs. */
.about-eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--coral);margin-bottom:8px;}
.about-story{display:grid;grid-template-columns:1.1fr 0.9fr;gap:36px;align-items:center;padding:44px 0;}
.about-story h2{font-size:24px;font-weight:700;margin-bottom:12px;line-height:1.3;}
.about-story p{font-size:14px;color:var(--muted);line-height:1.7;margin-bottom:10px;}
.about-story-img{border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(23,33,43,.1);}
.about-story-img img{width:100%;height:280px;object-fit:cover;display:block;}
.mv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.mv-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 22px;}
.mv-icon{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.mv-card h3{font-size:15.5px;font-weight:700;margin-bottom:8px;}
.mv-card p{font-size:13px;color:var(--muted);line-height:1.6;margin:0;}
.mv-card ul{margin:0;padding-left:18px;font-size:13px;color:var(--muted);line-height:1.9;}
.about-badges{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:8px 0 4px;}
.about-badge{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 18px;font-size:13px;font-weight:600;color:var(--ink);box-shadow:0 3px 10px rgba(23,33,43,.04);}
.about-badge svg{width:17px;height:17px;color:var(--coral);flex-shrink:0;}
@media (max-width:900px){
  .about-story{grid-template-columns:1fr;padding:32px 0;}
  .about-story-img img{height:220px;}
  .mv-grid{grid-template-columns:1fr;}
}

/* About page — original 5-row "Booking with us vs. a marketplace
   listing" table (2026-09-27). Superseded by the bigger .fcmp-* table
   below (2026-09-27, same day — user asked for a much larger 10-point
   Feature/DTS/Other-Vendors comparison instead), but left in place in
   case any other page still references these classes. */
.compare-table{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;}
.compare-head,.compare-row{display:grid;grid-template-columns:1fr 1.4fr 1.4fr;align-items:center;}
.compare-head{background:var(--brand-tint,#FBEAE4);}
.compare-head-us,.compare-head-them{padding:14px 20px;font-size:13px;font-weight:700;}
.compare-head-us{color:var(--brand-dark);}
.compare-head-them{color:var(--muted);}
.compare-row{border-top:1px solid var(--line);}
.compare-row:nth-child(even){background:#FAFAFB;}
.compare-label{padding:16px 20px;font-size:13.5px;font-weight:700;color:var(--ink);}
.compare-us,.compare-them{display:flex;align-items:center;gap:9px;padding:16px 20px;font-size:13.5px;line-height:1.5;}
.compare-us{color:var(--ink);}
.compare-us svg{width:17px;height:17px;color:#0F8A6C;flex-shrink:0;}
.compare-them{color:var(--muted);}
.compare-them svg{width:15px;height:15px;color:#C0392B;opacity:.6;flex-shrink:0;}
@media (max-width:760px){
  .compare-head{display:none;}
  .compare-row{grid-template-columns:1fr;}
  .compare-label{padding:16px 16px 4px;border-top:1px solid var(--line);}
  .compare-row:first-child .compare-label{border-top:none;}
  .compare-us,.compare-them{padding:6px 16px;}
  .compare-them{padding-bottom:14px;}
}

/* About page — full 10-point "Feature / DTS / Other Vendors" comparison
   table (2026-09-27, replaces the smaller 5-row .compare-table above at
   the user's request, matching a reference design they shared: a coral
   header for the DTS column, a dark header for "Other Vendors", a
   circular "VS" badge overlapping between the two headers, multi-line
   check/cross points per cell, and a highlighted CTA banner underneath). */
.fcmp-wrap{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(23,33,43,.06);}
.fcmp-head-row{display:grid;grid-template-columns:1.15fr 1.4fr 1.4fr;position:relative;}
.fcmp-head-feature{display:flex;align-items:center;padding:18px 22px;font-size:15px;font-weight:800;color:var(--ink);background:#FBF7F2;}
.fcmp-head-us,.fcmp-head-them{display:flex;align-items:center;justify-content:center;gap:9px;padding:16px 20px;font-size:14.5px;font-weight:800;color:#fff;}
.fcmp-head-us{background:linear-gradient(135deg,var(--coral,#F26522),var(--brand-dark,#C1440E));}
.fcmp-head-them{background:linear-gradient(135deg,#5B6472,#3A414C);}
.fcmp-head-us svg,.fcmp-head-them svg{width:19px;height:19px;flex-shrink:0;}
.fcmp-head-label small{display:block;font-size:10.5px;font-weight:600;opacity:.85;text-transform:uppercase;letter-spacing:.04em;}
.fcmp-vs-badge{position:absolute;left:calc(1.15fr / (1.15 + 1.4 + 1.4) * 100%);top:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;background:#fff;color:var(--brand-dark,#C1440E);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;box-shadow:0 4px 12px rgba(0,0,0,.18);z-index:2;}
.fcmp-row{display:grid;grid-template-columns:1.15fr 1.4fr 1.4fr;border-top:1px solid var(--line);}
.fcmp-row:nth-child(odd){background:#FAFAFB;}
.fcmp-feature-cell{display:flex;align-items:center;gap:11px;padding:16px 20px;font-size:13.5px;font-weight:700;color:var(--ink);}
.fcmp-feature-icon{width:34px;height:34px;border-radius:9px;background:var(--brand-tint,#FBEAE4);color:var(--brand-dark,#C1440E);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.fcmp-feature-icon svg{width:17px;height:17px;}
.fcmp-us-cell,.fcmp-them-cell{padding:14px 20px;}
.fcmp-point{display:flex;align-items:flex-start;gap:8px;font-size:12.8px;line-height:1.55;margin-bottom:6px;}
.fcmp-point:last-child{margin-bottom:0;}
.fcmp-point-ico{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.fcmp-point-ico svg{width:9px;height:9px;}
.fcmp-us-cell .fcmp-point{color:var(--ink);}
.fcmp-us-cell .fcmp-point-ico{background:#0F8A6C;color:#fff;}
.fcmp-them-cell{color:var(--muted);}
.fcmp-them-cell .fcmp-point-ico{background:#E7E9EC;color:#8A929C;}
.fcmp-banner{margin-top:24px;display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#FDECE2,#FEF6EF);border:1px solid #F3D9C6;border-radius:16px;padding:22px 26px;}
.fcmp-banner-icon{width:52px;height:52px;border-radius:50%;background:var(--coral,#F26522);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.fcmp-banner-icon svg{width:24px;height:24px;}
.fcmp-banner-divider{width:1px;align-self:stretch;background:#F3D9C6;flex-shrink:0;}
.fcmp-banner-text h3{font-size:16.5px;font-weight:800;color:var(--ink);margin-bottom:4px;line-height:1.4;}
.fcmp-banner-text h3 b{color:var(--brand-dark,#C1440E);}
.fcmp-banner-text p{font-size:13px;color:var(--muted);margin:0;line-height:1.55;}
@media (max-width:860px){
  .fcmp-head-row,.fcmp-row{grid-template-columns:1fr;}
  .fcmp-head-feature{display:none;}
  .fcmp-vs-badge{display:none;}
  .fcmp-feature-cell{border-bottom:1px solid var(--line);background:#F5F2EE;}
  .fcmp-us-cell,.fcmp-them-cell{padding:12px 20px;}
  .fcmp-banner{flex-direction:column;text-align:center;}
  .fcmp-banner-divider{display:none;}
}

/* Cancellation Policy page */
.policy-wrap{max-width:1140px;margin:0 auto;padding:36px 0 60px;}
.policy-updated{font-size:12.5px;color:var(--muted);margin-bottom:22px;}
.policy-highlight-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:36px;}
.policy-highlight{display:flex;align-items:flex-start;gap:10px;background:#FBF8F5;border:1px solid var(--line);border-radius:12px;padding:14px 16px;}
.policy-highlight-ico{width:34px;height:34px;border-radius:50%;background:var(--coral-tint,#FDE7DB);color:var(--coral,#F26522);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.policy-highlight-ico svg{width:17px;height:17px;}
.policy-highlight div{display:flex;flex-direction:column;gap:2px;}
.policy-highlight b{font-size:13.5px;color:var(--ink);}
.policy-highlight span{font-size:12px;color:var(--muted);line-height:1.4;}
.policy-section{margin-bottom:28px;}
.policy-section h2{font-size:18px;font-weight:800;color:var(--ink);margin-bottom:10px;}
.policy-section p{font-size:14px;color:var(--muted);line-height:1.7;margin-bottom:10px;}
.policy-section ul{margin:0 0 10px;padding-left:20px;}
.policy-section li{font-size:14px;color:var(--muted);line-height:1.7;margin-bottom:4px;}
.policy-section b{color:var(--ink);}
.policy-contact-row{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap;}
.policy-contact-btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 22px;border-radius:10px;background:var(--coral,#F26522);color:#fff;font-size:13.5px;font-weight:700;text-decoration:none;}
.policy-contact-btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line);}
@media (max-width:720px){
  .policy-highlight-row{grid-template-columns:1fr;}
}
