/* Image library <picture> wrappers are layout-transparent: the <img> sizes as if it were the direct child. */
:where(picture.lib-pic){display:contents;}
/* No-photo fallbacks (never a stock/placeholder photo): palette tokens only. */
.dest-hero-img.dest-hero-blank{height:360px; min-height:0;}
.dest-hero-blank{display:block; background:linear-gradient(160deg, var(--accent) 0%, var(--ink) 100%);}
.scroll-card-blank{display:block; width:220px; height:150px; border-radius:4px; margin-bottom:10px; background:var(--accent-soft);}
/* ============================================
   AUDACIA TRAVEL — DESIGN TOKENS
   Clean, minimal, editorial. Navy ink on soft
   paper, muted blue accent. Newsreader serif
   for headings, Inter for everything else.
   ============================================ */
:root{
  --ink:#0B2A47;
  --paper:#F7F9FC;
  --line:rgba(11,42,71,0.12);
  --accent:#3E6690;
  --accent-soft:#EAF1F7;
  --text-soft:#5D6472;
  --text-softer:#8D93A0;
  --white:#fff;
  --max-width:1160px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--paper); color:var(--ink); font-family:'Inter', sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--max-width); margin:0 auto; padding:0 40px;}
h1,h2,h3{font-family:'Newsreader', serif; font-weight:400;}
button, input{font-family:inherit;}

/* ---------- NAV ---------- */
nav.site-nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 40px; border-bottom:1px solid var(--line);
  position:sticky; top:0; background:rgba(247,249,252,0.92); backdrop-filter:blur(6px); z-index:20;
}
.logo-img{height:44px; width:auto; display:block;}
.nav-center{display:flex; align-items:center; gap:30px; font-size:13.5px; font-weight:600; color:#3E4650; margin-left:auto; margin-right:24px;}
.nav-center a:hover, .nav-center a[aria-current="page"]{color:var(--ink);}
.nav-right{display:flex; align-items:center; gap:14px;}
#nav-toggle{display:none; background:none; border:none; font-size:22px; color:var(--ink); cursor:pointer;}

/* ---------- NAV DROPDOWNS (Places / Activities / Itineraries) ---------- */
.nav-item{position:relative; display:flex; align-items:center;}
.nav-item .dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(4px);
  background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 20px 44px rgba(11,42,71,0.14);
  padding:8px; min-width:200px; display:flex; flex-direction:column; gap:1px;
  opacity:0; visibility:hidden; transition:opacity .15s ease, transform .15s ease; z-index:30;
}
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.nav-item .dropdown a{padding:8px 12px; border-radius:6px; font-size:13px; font-weight:500; color:#3E4650; white-space:nowrap;}
.nav-item .dropdown a:hover{background:var(--accent-soft); color:var(--ink);}

/* ---------- NAV RIGHT: icon button, sign in, book now ---------- */
.icon-btn{width:34px; height:34px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--ink); cursor:pointer; transition:border-color .15s, background .15s;}
.icon-btn:hover{border-color:var(--ink); background:var(--accent-soft);}
.icon-btn svg{width:16px; height:16px;}
.nav-signin{font-size:13.5px; font-weight:600; color:#3E4650;}
.nav-signin:hover{color:var(--ink);}
.btn.btn-nav{padding:9px 20px; font-size:13px;}

@media (max-width: 780px){
  .nav-center{
    position:absolute; top:100%; left:0; right:0; background:var(--paper);
    flex-direction:column; align-items:stretch; gap:0; margin:0; padding:0; max-height:0; overflow:hidden;
    border-bottom:1px solid var(--line); transition:max-height .3s ease;
  }
  .nav-center.open{max-height:70vh; overflow-y:auto;}
  .nav-center > a, .nav-item > a{padding:14px 40px; border-top:1px solid var(--line); width:100%; display:block;}
  .nav-item{flex-direction:column; align-items:stretch;}
  .nav-item .dropdown{
    position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; border-radius:0;
    background:var(--accent-soft); padding:4px 0; min-width:0;
  }
  .nav-item .dropdown a{padding:10px 40px 10px 56px; border-radius:0; font-weight:500;}
  #nav-toggle{display:block;}
}

/* ---------- HERO (full-screen slideshow, homepage) ---------- */
.hero-full{position:relative; height:calc(100vh - 74px); min-height:560px; overflow:hidden;}
.hero-slides{position:absolute; inset:0;}
.hero-slides img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 1.2s ease;}
.hero-slides img.active{opacity:1;}
.hero-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,42,71,0.32) 0%, rgba(11,42,71,0.15) 40%, rgba(11,42,71,0.55) 100%);}
.hero-content{position:relative; z-index:2; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 24px;}
.hero-content h1{color:#fff; font-size:clamp(30px,5vw,58px); line-height:1.1; letter-spacing:-0.01em; max-width:27ch;}
.hero-content h1 em{font-style:italic; color:#DCE8F2;}
.hero-tagline{font-size:14px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:#EAF1F7; margin-top:22px;}

.search-bar{max-width:640px; width:100%; margin:32px auto 0; display:flex; align-items:center; gap:12px; border:1px solid rgba(255,255,255,0.5); border-radius:100px; padding:8px 8px 8px 24px; background:rgba(255,255,255,0.95); box-shadow:0 12px 30px rgba(11,42,71,0.18);}
.search-bar input{border:none; outline:none; flex:1; min-width:0; font-size:14px; background:transparent;}
.search-bar input::placeholder{color:#A3A9B4;}
.search-btn{background:var(--ink); color:var(--paper); border:none; border-radius:100px; padding:11px 22px; font-size:13px; font-weight:500; white-space:nowrap; cursor:pointer;}

.hero-controls{position:absolute; bottom:24px; right:24px; z-index:3; display:flex; align-items:center; gap:14px;}
.hero-dots{display:flex; gap:6px;}
.hero-dots .dot{width:24px; height:4px; border-radius:2px; background:rgba(255,255,255,0.4); cursor:pointer; border:none;}
.hero-dots .dot.active{background:#fff;}
.play-pause-btn{width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,0.15); backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,0.5); color:#fff; display:flex; align-items:center; justify-content:center; font-size:11px; cursor:pointer;}

/* ---------- SUB-PAGE HERO (every non-homepage page) ---------- */
.page-hero{padding:64px 40px 56px; text-align:center; border-bottom:1px solid var(--line);}
.page-hero .kicker{font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-softer); margin-bottom:14px;}
.page-hero h1{font-size:clamp(28px,4vw,42px); max-width:22ch; margin:0 auto;}
.page-hero .lead{font-size:15px; color:var(--text-soft); max-width:56ch; margin:16px auto 0;}

/* ---------- AUTO-SCROLL STRIP ---------- */
.scroll-section{padding:64px 0 10px;}
.scroll-head{display:flex; justify-content:space-between; align-items:baseline; max-width:1080px; margin:0 auto 22px; padding:0 40px;}
.scroll-head h2{font-size:22px;}
.scroll-head span{font-size:12px; color:var(--text-softer);}
.scroll-strip{display:flex; gap:18px; overflow-x:auto; padding:0 40px 14px; scroll-snap-type:x mandatory;}
.scroll-strip::-webkit-scrollbar{height:4px;}
.scroll-strip::-webkit-scrollbar-thumb{background:var(--line); border-radius:4px;}
.scroll-card{flex:0 0 220px; scroll-snap-align:start; display:block; color:inherit; text-decoration:none;}
.scroll-card:hover p{text-decoration:underline;}
.scroll-card img{width:220px; height:150px; object-fit:cover; border-radius:4px; margin-bottom:10px;}
.scroll-card p{font-size:13.5px; font-weight:500;}
.scroll-card span{font-size:11.5px; color:var(--text-softer);}

/* ---------- SECTION HEAD (shared) ---------- */
.section{padding:78px 0; border-top:1px solid var(--line);}
.section-head{max-width:640px; margin:0 auto 54px; text-align:center;}
.section-head .kicker{font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-softer); margin-bottom:14px;}
.section-head h2{font-size:30px;}
.section-head p{font-size:14px; color:var(--text-soft); margin-top:12px;}

/* ---------- CARD GRID (destinations / picks) ---------- */
.grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:52px 36px;}
@media (max-width:900px){.grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.grid{grid-template-columns:1fr;}}
.card{display:block;}
.card-img{height:220px; overflow:hidden; margin-bottom:20px; position:relative; border-radius:6px; background:var(--accent-soft);}
.card-img img{width:100%; height:100%; object-fit:cover;}
.card-rank, .card-status{position:absolute; top:14px; left:14px; background:rgba(247,249,252,0.92); color:var(--ink); font-size:11px; padding:4px 10px; border-radius:100px; font-weight:500;}
.card-status.coming-soon{background:rgba(11,42,71,0.85); color:#fff;}
.card-num{font-size:12px; color:var(--text-softer); margin-bottom:9px;}
.card h3{font-size:21px; margin-bottom:9px;}
.card p{font-size:13.5px; color:var(--text-soft); line-height:1.6;}
.card-foot{display:flex; justify-content:space-between; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); font-size:12px; color:var(--text-softer);}
.card-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:12px;}
.card-tags span{font-size:11px; padding:4px 10px; border:1px solid var(--line); border-radius:100px; color:var(--text-soft);}

/* ---------- FILTER BAR (destinations / activities) ---------- */
.filter-bar{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:900px; margin:0 auto 50px; padding:0 40px;}
.filter-chip{font-size:13px; padding:9px 18px; border:1px solid var(--line); border-radius:100px; color:#3E4650; background:none; cursor:pointer; transition:all .15s;}
.filter-chip:hover{border-color:var(--ink);}
.filter-chip.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.no-results{text-align:center; color:var(--text-soft); padding:40px 0; display:none;}
.no-results.visible{display:block;}

/* ---------- SIMPLE LIST BLOCK ---------- */
.list-block{max-width:900px; margin:0 auto; display:flex; flex-wrap:wrap; gap:10px 14px; justify-content:center;}
.list-block a{font-size:13px; padding:8px 16px; border:1px solid var(--line); border-radius:100px; color:#3E4650;}
.list-block a:hover{border-color:var(--ink); color:var(--ink);}

/* ---------- ASK AUDACIA CARD ---------- */
.ai-card{display:flex; align-items:center; justify-content:space-between; gap:24px; background:var(--accent-soft); border-radius:14px; padding:36px 40px; flex-wrap:wrap;}
.ai-card-text .kicker{font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); margin-bottom:8px;}
.ai-card-text h3{font-size:22px; margin-bottom:6px;}
.ai-card-text p{font-size:13.5px; color:var(--text-soft); max-width:44ch;}
.ai-card-btn{background:var(--ink); color:var(--paper); padding:12px 24px; border-radius:100px; font-size:13px; font-weight:500; white-space:nowrap;}

/* ---------- TRUST STRIP ---------- */
.trust-strip{display:flex; justify-content:center; gap:90px; text-align:center; flex-wrap:wrap;}
.trust-item p:first-child{font-family:'Newsreader', serif; font-size:26px; margin-bottom:6px;}
.trust-item p:last-child{font-size:11.5px; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-softer);}

/* ---------- NEWSLETTER ---------- */
.newsletter{text-align:center; max-width:480px; margin:0 auto; padding:24px 40px 80px;}
.newsletter h2{font-size:26px; margin-bottom:12px;}
.newsletter p{font-size:14px; color:var(--text-soft); margin-bottom:28px;}
.newsletter-form{display:flex; gap:10px;}
.newsletter-form input{flex:1; border:1px solid var(--line); border-radius:100px; padding:12px 20px; font-size:14px; outline:none;}
.newsletter-form button{background:var(--ink); color:var(--paper); border:none; border-radius:100px; padding:12px 24px; font-size:13px; font-weight:500; cursor:pointer;}
.newsletter-note{font-size:11.5px; color:var(--text-softer); margin-top:14px;}

/* ---------- PROSE (About / Editorial / FAQ / Legal) ---------- */
.prose{max-width:720px; margin:0 auto; padding:70px 40px;}
.prose h2{font-size:26px; margin:40px 0 16px;}
.prose h2:first-child{margin-top:0;}
.prose p{font-size:15px; color:var(--text-soft); margin-bottom:16px;}
.prose ul{margin:0 0 16px 20px; color:var(--text-soft); font-size:15px;}
.prose li{margin-bottom:8px;}
.prose a{color:var(--accent); text-decoration:underline;}

.approach-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px; max-width:var(--max-width); margin:0 auto; padding:0 40px 78px;}
@media (max-width:780px){.approach-grid{grid-template-columns:1fr;}}
.approach-card h3{font-size:18px; margin-bottom:10px;}
.approach-card p{font-size:14px; color:var(--text-soft);}

/* ---------- FAQ ACCORDION ---------- */
.faq-list{max-width:720px; margin:0 auto; padding:20px 40px 80px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; text-align:left; background:none; border:none; padding:22px 0; font-size:16px; font-weight:600; color:var(--ink); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px;}
.faq-q .plus{font-size:20px; color:var(--text-softer); transition:transform .2s;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.faq-a p{font-size:14.5px; color:var(--text-soft); padding-bottom:22px;}
.faq-item.open .faq-a{max-height:300px;}

/* ---------- CONTACT FORM ---------- */
.contact-form{max-width:560px; margin:0 auto; padding:20px 40px 80px; display:flex; flex-direction:column; gap:16px;}
.contact-form label{font-size:13px; font-weight:600; margin-bottom:6px; display:block;}
.contact-form input, .contact-form select, .contact-form textarea{width:100%; border:1px solid var(--line); border-radius:8px; padding:12px 14px; font-size:14px; outline:none; background:#fff;}
.contact-form textarea{resize:vertical; min-height:120px;}
.contact-form button{background:var(--ink); color:var(--paper); border:none; border-radius:100px; padding:14px; font-size:14px; font-weight:500; cursor:pointer; margin-top:6px;}
.form-note{font-size:12px; color:var(--text-softer); text-align:center;}

/* ---------- BUTTONS ---------- */
.btn{display:inline-block; background:var(--ink); color:var(--paper); padding:12px 24px; border-radius:100px; font-size:13px; font-weight:500; white-space:nowrap;}
.btn.outline{background:none; border:1px solid var(--line); color:var(--ink);}

/* ---------- FOOTER ---------- */
footer{border-top:1px solid var(--line); padding:60px 40px 30px;}
.footer-grid{max-width:var(--max-width); margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:40px;}
@media (max-width:700px){.footer-grid{grid-template-columns:1fr; text-align:center;}}
.footer-col .footer-logo-img{height:38px; width:auto; display:block; margin-bottom:16px;}
.footer-brand{text-align:center;}
.footer-brand .footer-logo-img{margin:0 auto 16px;}
.footer-col p.desc{font-size:13px; color:var(--text-soft); line-height:1.6; max-width:32ch;}
.footer-brand p.desc{margin:0 auto;}
.trust-marker{font-size:12px; color:var(--text-softer); line-height:1.6; max-width:32ch; margin:12px auto 0;}
.footer-col h4{font-size:11.5px; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-softer); margin-bottom:16px;}
.footer-col a{display:block; font-size:13.5px; color:#3E4650; margin-bottom:11px;}
.footer-col a:hover{color:var(--ink);}
.footer-bottom{max-width:var(--max-width); margin:0 auto; padding-top:26px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;}
.acknowledgement{font-size:12px; color:var(--text-softer); max-width:52ch; line-height:1.6;}
.footer-meta{display:flex; align-items:center; gap:18px; font-size:12px; color:var(--text-softer);}
.social-icons{display:flex; gap:10px;}
.social-icons a{width:30px; height:30px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; transition:border-color .15s, background .15s;}
.social-icons a:hover{border-color:var(--ink); background:#fff;}
.social-icons svg{width:14px; height:14px; fill:var(--ink);}

/* ---------- COOKIE BANNER ---------- */
.cookie-banner{position:fixed; left:20px; right:20px; bottom:20px; max-width:520px; margin:0 auto; background:var(--ink); color:var(--paper); border-radius:12px; padding:20px 22px; box-shadow:0 16px 40px rgba(11,42,71,0.3); z-index:50; display:none;}
.cookie-banner.visible{display:block;}
.cookie-banner p{font-size:13px; line-height:1.6; margin-bottom:14px; color:#EAF1F7;}
.cookie-banner a{text-decoration:underline;}
.cookie-actions{display:flex; gap:10px;}
.cookie-actions button{flex:1; border-radius:100px; padding:10px; font-size:13px; font-weight:500; cursor:pointer; border:1px solid rgba(255,255,255,0.3);}
.cookie-actions .accept{background:var(--paper); color:var(--ink); border-color:var(--paper);}
.cookie-actions .reject{background:none; color:var(--paper);}

/* ---------- MAPS PAGE ---------- */
.maps-layout{display:grid; grid-template-columns:380px 1fr; gap:0; height:calc(100vh - 74px); min-height:560px;}
@media (max-width:860px){.maps-layout{grid-template-columns:1fr; height:auto;}}
.maps-sidebar{border-right:1px solid var(--line); overflow-y:auto; padding:24px;}
.maps-sidebar h1{font-size:22px; margin-bottom:8px;}
.maps-sidebar .lead{font-size:13.5px; color:var(--text-soft); margin-bottom:20px;}
.map-pin-card{border:1px solid var(--line); border-radius:8px; padding:14px; margin-bottom:12px; cursor:pointer; transition:border-color .15s;}
.map-pin-card:hover, .map-pin-card.active{border-color:var(--ink);}
.map-pin-card h4{font-size:14.5px; margin-bottom:4px;}
.map-pin-card span{font-size:12px; color:var(--text-softer);}
#map-canvas{width:100%; height:100%; min-height:400px; background:var(--accent-soft);}
.leaflet-popup-content{font-family:'Inter', sans-serif; font-size:13px;}
.leaflet-popup-content h4{font-family:'Newsreader', serif; font-size:16px; margin-bottom:4px;}

/* ---------- ACTIVITY CARDS (Activities page) ---------- */
.activity-card{display:block; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; transition:box-shadow .15s, border-color .15s;}
.activity-card:hover{border-color:var(--ink); box-shadow:0 16px 34px rgba(11,42,71,0.1);}
.activity-card .card-img{margin-bottom:0; border-radius:0;}
.activity-body{padding:20px 22px 22px;}
.activity-state{font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent); font-weight:600; margin-bottom:8px;}
.activity-body h3{font-size:19px; margin-bottom:4px;}
.activity-place{font-size:12.5px; color:var(--text-softer); margin-bottom:12px; display:block;}
.activity-body p.activity-desc{font-size:13.5px; color:var(--text-soft); line-height:1.6; margin-bottom:14px;}
.activity-foot{display:flex; justify-content:space-between; align-items:center; gap:10px; padding-top:14px; border-top:1px solid var(--line);}
.activity-foot .book-link{font-size:12.5px; font-weight:600; color:var(--ink);}
.activity-foot .book-link:hover{color:var(--accent);}

/* ---------- COMING SOON PAGES (Itineraries / Shop / AI Agent) ---------- */
.coming-soon-badge{display:inline-block; background:var(--accent-soft); color:var(--accent); font-size:11.5px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; padding:6px 14px; border-radius:100px; margin-bottom:18px;}

/* ---------- BOOK NOW: widget pending blocks ---------- */
.booking-section{max-width:var(--max-width); margin:0 auto; padding:0 40px 78px;}
.booking-section + .booking-section{padding-top:0;}
.booking-head{margin-bottom:24px;}
.booking-head h2{font-size:24px; margin-bottom:8px;}
.booking-head p{font-size:14px; color:var(--text-soft); max-width:64ch;}
.widget-pending{border:1px dashed var(--line); border-radius:12px; background:var(--accent-soft); padding:40px 30px; text-align:center;}
.widget-pending .tag{display:inline-block; background:var(--ink); color:var(--paper); font-size:11px; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; padding:5px 12px; border-radius:100px; margin-bottom:14px;}
.widget-pending p{font-size:13.5px; color:var(--text-soft); max-width:52ch; margin:0 auto;}

.stay-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
@media (max-width:900px){.stay-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.stay-grid{grid-template-columns:1fr;}}
.stay-card{border:1px solid var(--line); border-radius:10px; padding:14px; background:#fff;}
.stay-card h4{font-size:14.5px; font-weight:600; margin-bottom:10px; font-family:'Inter', sans-serif;}

.viator-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
@media (max-width:900px){.viator-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.viator-grid{grid-template-columns:1fr;}}
.viator-card{border:1px solid var(--line); border-radius:10px; padding:14px; background:#fff; min-height:220px;}
.viator-card h4{font-size:14.5px; font-weight:600; margin-bottom:10px; font-family:'Inter', sans-serif;}

/* ---------- SIGN IN ---------- */
.auth-form{max-width:400px; margin:0 auto; padding:20px 40px 80px; display:flex; flex-direction:column; gap:16px;}
.auth-form label{font-size:13px; font-weight:600; margin-bottom:6px; display:block;}
.auth-form input{width:100%; border:1px solid var(--line); border-radius:8px; padding:12px 14px; font-size:14px; outline:none; background:#fff;}
.auth-form button{background:var(--ink); color:var(--paper); border:none; border-radius:100px; padding:14px; font-size:14px; font-weight:500; cursor:pointer; margin-top:6px;}
.auth-switch{text-align:center; font-size:13px; color:var(--text-soft);}
.auth-switch a{color:var(--accent); text-decoration:underline;}

/* ---------- MAPS: category tabs ---------- */
.maps-tabs{display:flex; gap:8px; margin-bottom:18px;}
.maps-tab{flex:1; text-align:center; font-size:12.5px; font-weight:600; padding:9px 6px; border:1px solid var(--line); border-radius:100px; background:none; color:#3E4650; cursor:pointer; transition:all .15s;}
.maps-tab.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.map-pin-card{display:flex; align-items:center; gap:10px;}
.map-pin-card .pin-dot{width:10px; height:10px; border-radius:50%; flex-shrink:0;}
.map-pin-card .pin-dot.place{background:var(--ink);}
.map-pin-card .pin-dot.activity{background:var(--accent);}
.map-pin-card .pin-dot.itinerary{background:var(--text-softer);}
.maps-empty{font-size:13px; color:var(--text-softer); padding:20px 4px;}

/* ---------- PREVIEW / STAGE-GATE BANNER ---------- */
.preview-banner{max-width:var(--max-width); margin:24px auto 0; padding:14px 24px; background:var(--accent-soft); border:1px solid var(--line); border-radius:8px; font-size:13.5px; color:var(--accent);}

/* ---------- REVEAL ANIMATION ---------- */
.reveal{opacity:0; transform:translateY(16px); transition:opacity .5s ease, transform .5s ease;}
.reveal.visible{opacity:1; transform:none;}

/* ---------- DESTINATION GUIDE v2 (locked template spec) ---------- */
.dest-breadcrumb{padding-top:18px; font-size:12.5px; color:var(--text-softer);}
.dest-breadcrumb a{color:var(--text-soft); text-decoration:none;}
.dest-breadcrumb a:hover{color:var(--ink); text-decoration:underline;}
.dest-breadcrumb span{margin:0 4px;}

.tier-badge{display:inline-block; font-size:11px; font-weight:600; letter-spacing:.02em; text-transform:uppercase; background:rgba(255,255,255,0.18); border:1px solid rgba(255,255,255,0.5); color:#fff; padding:4px 10px; border-radius:100px;}
.chip-light{font-size:11.5px; padding:5px 12px; border-radius:100px; background:rgba(255,255,255,0.16); border:1px solid rgba(255,255,255,0.4); color:#fff; cursor:pointer; transition:background .15s;}
a.chip-light:hover, a.chip-light:focus-visible{background:rgba(255,255,255,0.3);}

.trust-row{display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding-top:16px; padding-bottom:16px; border-bottom:1px solid var(--line); font-size:13px;}
.desk-badge{display:flex; align-items:center; gap:8px; color:var(--ink); text-decoration:none; font-weight:600;}
.desk-badge:hover{text-decoration:underline;}
.desk-monogram{width:24px; height:24px; border-radius:50%; background:var(--ink); color:var(--paper); font-family:'Newsreader', serif; font-size:13px; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.verified-stamp{color:var(--accent); font-weight:600;}
.last-checked{color:var(--text-softer);}

.alert-banner{margin-top:22px; padding:16px 20px; background:var(--accent-soft); border-left:3px solid var(--ink); border-radius:6px;}
.alert-banner strong{display:block; color:var(--ink); margin-bottom:6px; font-size:14.5px;}
.alert-banner p{font-size:13.5px; color:var(--text-soft); margin:0;}

.snapshot-block h2{margin-bottom:16px;}
.snapshot-table{width:100%; border-collapse:collapse; border:1px solid var(--line); border-radius:10px; overflow:hidden;}
.snapshot-table tr{border-top:1px solid var(--line);}
.snapshot-table tr:first-child{border-top:none;}
.snapshot-table th{text-align:left; vertical-align:top; width:170px; padding:14px 18px; background:var(--accent-soft); font-size:13px; font-weight:600; color:var(--ink);}
.snapshot-table td{padding:14px 18px; font-size:14px; color:var(--text-soft); line-height:1.55;}

.difficulty-meter{display:flex; align-items:center; gap:4px; flex-wrap:wrap;}
.difficulty-meter .seg{width:22px; height:8px; border-radius:4px; background:var(--line);}
.difficulty-meter .seg.filled{background:var(--accent);}
.difficulty-meter .difficulty-label{margin-left:8px; font-size:13px; color:var(--ink); font-weight:600;}
.difficulty-note{margin-top:8px; font-size:13px; color:var(--text-softer);}

.suitability-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.suitability-col{padding:22px 24px; border-radius:10px; border:1px solid var(--line);}
.suitability-col.go{background:var(--accent-soft);}
.suitability-col h3{margin-bottom:12px; font-size:16px;}
.suitability-col ul{list-style:none; display:flex; flex-direction:column; gap:9px;}
.suitability-col li{font-size:14px; color:var(--text-soft); padding-left:18px; position:relative;}
.suitability-col.go li::before{content:"✓"; position:absolute; left:0; color:var(--accent); font-weight:700;}
.suitability-col.skip li::before{content:"–"; position:absolute; left:0; color:var(--text-softer); font-weight:700;}
.first-hand-date{font-size:12.5px; color:var(--text-softer); text-transform:uppercase; letter-spacing:.03em; margin-bottom:10px;}

.section-head-sm{margin-bottom:16px;}
.section-head-sm p{color:var(--text-soft); font-size:14px; margin-top:4px;}

.widget-facade{border:1px dashed var(--line); border-radius:10px; background:var(--accent-soft); min-height:220px; display:flex; align-items:center; justify-content:center; text-align:center;}
.widget-facade.loaded{border:none; background:none; display:block; min-height:0;}
.widget-facade-inner p{font-size:13.5px; color:var(--text-soft); margin-bottom:14px;}
.disclosure-line{font-size:12.5px; color:var(--text-softer); margin-top:10px;}

.todo-list{display:flex; flex-direction:column; gap:0;}
.todo-item{padding:18px 0; border-top:1px solid var(--line);}
.todo-item:first-child{border-top:none;}
.todo-item h4{margin-bottom:4px; font-size:16px;}
.todo-item .todo-meta{font-size:12.5px; color:var(--text-softer); text-transform:uppercase; letter-spacing:.02em; margin-bottom:8px;}
.todo-item p{font-size:14px; color:var(--text-soft);}
.todo-item.closed{opacity:.7;}

.before-you-go{list-style:none; display:flex; flex-direction:column; gap:10px;}
.before-you-go li{font-size:14px; color:var(--text-soft); padding-left:20px; position:relative; line-height:1.55;}
.before-you-go li::before{content:"•"; position:absolute; left:2px; color:var(--accent);}

.nearby-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px;}
.nearby-card{display:flex; flex-direction:column; gap:4px; padding:16px 18px; border:1px solid var(--line); border-radius:10px; text-decoration:none; color:var(--ink); transition:border-color .15s, background .15s;}
a.nearby-card:hover{border-color:var(--ink); background:var(--accent-soft);}
.nearby-card.muted{color:var(--text-softer); background:var(--paper);}
.nearby-card span{font-size:12.5px; color:var(--text-softer);}

.official-links{list-style:none; display:flex; flex-direction:column; gap:8px;}
.official-links a{color:var(--accent); text-decoration:underline; font-size:14px;}

.verification-footer{border-top:1px solid var(--line); padding-top:24px;}
.verification-footer h3{font-size:15px; margin-bottom:10px;}
.verification-footer p{font-size:13.5px; color:var(--text-soft); margin-bottom:8px;}
.verification-footer .ai-disclosure{color:var(--ink); font-size:13.5px;}

.dest-gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.dest-gallery-item img{width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:6px; background:var(--accent-soft);}
.dest-gallery-item figcaption{font-size:12.5px; color:var(--text-softer); margin-top:8px; line-height:1.5;}

@media (max-width:780px){
  .suitability-grid{grid-template-columns:1fr;}
  .snapshot-table th{width:120px; font-size:12px; padding:12px;}
  .snapshot-table td{font-size:13px; padding:12px;}
  .dest-gallery{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .dest-gallery{grid-template-columns:1fr;}
}

/* ---------- DESTINATION MASTER DESIGN v1.0 (approved 20 Sep 2026) ---------- */
/* Palette tokens only — no new colours (design-system-reference.md §1.1). */
.dest-hero-v2 picture{display:block;}
.wrap[id], details[id], section[id]{scroll-margin-top:90px;}

/* Hero height (changed, v1.2 — destination-master-design.md §2.1) */
.dest-hero-img{height:min(80vh, 720px); min-height:460px;}
@media (max-width:760px){
  .dest-hero-img{height:340px; min-height:0;}
}

/* Soft CTA row under the Snapshot */
.cta-row{display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:12px 16px; border:1px solid var(--line); border-radius:100px; background:var(--accent-soft); width:fit-content; max-width:100%;}
.cta-row .cta-lead{font-size:13.5px; font-weight:600; color:var(--ink); margin-right:4px;}
.cta-row a{font-size:13px; font-weight:600; padding:6px 16px; border-radius:100px; background:var(--ink); color:var(--paper); text-decoration:none; transition:background .15s;}
.cta-row a:hover{background:var(--accent);}

/* Inline figures (replace the standalone gallery block) */
.dest-fig{margin:6px 0 14px;}
.dest-fig img{width:100%; height:auto; border-radius:6px; background:var(--accent-soft);}
.prose.has-figs{max-width:960px;}
#what-to-expect, #our-visit, #what-to-do, #before-you-go{display:flow-root;}
/* Size (changed, v1.2 — destination-master-design.md §3): 40%→60% landscape, 30%→45% portrait */
.dest-fig{float:right; width:60%; max-width:630px; margin:6px 0 14px 28px;}
.dest-fig:nth-of-type(even){float:left; margin:6px 28px 14px 0;}
.dest-fig.portrait{width:45%; max-width:480px;}
/* Things-to-do items pair a short heading/meta/one-liner with each image — the default 60%/45%
   float width (sized for full paragraphs elsewhere on the page) towers over that little text and
   leaves a lot of empty space beside it. Narrower, consistently-right-floated images here keep
   image height closer to the text block's, and stop images staggering left/right down the list. */
.todo-list .dest-fig{margin-top:18px; float:right; width:38%; max-width:300px; margin-left:24px; margin-right:0;}
.todo-list .dest-fig:nth-of-type(even){float:right; margin-left:24px; margin-right:0;}
.todo-list .dest-fig.portrait{width:30%; max-width:220px;}
.dest-fig figcaption{font-size:12.5px; color:var(--text-softer); margin-top:8px; line-height:1.5;}

/* Expandable sections: native details/summary, open on desktop, collapsed on mobile by script */
.dest-collapse > summary{list-style:none; cursor:pointer; display:flex; align-items:baseline; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); margin-bottom:16px;}
.dest-collapse > summary::-webkit-details-marker{display:none;}
.dest-collapse > summary h2{margin:0; flex:0 1 auto;}
.dest-collapse > summary .dc-hint{font-size:12.5px; color:var(--text-softer); flex:1 1 auto;}
.dest-collapse > summary::after{content:"+"; font-size:22px; color:var(--text-softer); line-height:1; margin-left:auto;}
.dest-collapse[open] > summary::after{content:"–";}
.dest-collapse > summary:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}
.prose-inline p{font-size:15px; color:var(--text-soft); margin-bottom:16px;}

/* Where to stay: curated table (stacked cards on mobile) */
.stay-table{width:100%; border-collapse:collapse; border:1px solid var(--line); margin-bottom:8px;}
.stay-table th{text-align:left; padding:12px 16px; background:var(--accent-soft); font-size:13px; font-weight:600; color:var(--ink);}
.stay-table td{padding:14px 16px; font-size:14px; color:var(--text-soft); vertical-align:top; border-top:1px solid var(--line); line-height:1.5;}
.stay-table td strong{color:var(--ink);}
.stay-table td a{text-decoration:underline; color:var(--accent);}
.stay-table td a.btn{text-decoration:none; color:var(--paper);}
.stay-cta{margin:14px 0 20px;}

/* Experiences (renders only when curated products exist) */
.exp-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px;}
.exp-card{display:flex; flex-direction:column; gap:8px; padding:20px; border:1px solid var(--line); border-radius:10px; background:var(--white);}
.exp-card h3{font-size:18px;}
.exp-card p{font-size:14px; color:var(--text-soft);}
.exp-operator, .exp-meta{font-size:12.5px; color:var(--text-softer);}
.exp-card .btn{align-self:flex-start; margin-top:auto;}
.pick-tag{align-self:flex-start; font-size:11px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; padding:4px 10px; border-radius:100px; background:var(--accent-soft); color:var(--accent); border:1px solid var(--line);}

/* Suggested gear */
.gear-cols{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
.gear-cols h3{font-size:17px; margin-bottom:12px;}
.gear-list{list-style:none; display:flex; flex-direction:column; gap:5px;}
.gear-list li{font-size:14px; color:var(--ink); line-height:1.35;}
.gear-list li span{font-size:13px; color:var(--text-soft);}
.gear-list li span::before{content:"— ";}
.gear-list li a{color:var(--accent); text-decoration:underline; font-weight:600;}

/* How this compares: geographic-proximity comparators (changed, v1.2 — design spec §2.6) */
.section-head-sm-note{font-size:14px; color:var(--text-soft); margin-top:-8px; margin-bottom:18px;}
.compare-grid{display:flex; gap:32px; align-items:flex-start;}
.compare-grid .dest-fig{float:none; width:34%; max-width:340px; margin:0; flex:0 0 auto;}
.compare-cards{flex:1 1 auto; min-width:0;}
.compare-block{margin-top:26px; padding-top:22px; border-top:1px solid var(--line);}
.compare-cards .compare-block:first-child{margin-top:0; padding-top:0; border-top:none;}
.compare-block h3{font-size:20px; margin-bottom:10px;}
.compare-block.muted{color:var(--text-softer);}
.compare-block.muted h3{color:var(--text-soft);}
.compare-block.muted .compare-strip div{background:var(--paper); border:1px solid var(--line);}
.compare-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:14px;}
.compare-strip div{padding:12px 14px; background:var(--accent-soft); border-radius:8px;}
.compare-strip dt{font-size:11.5px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--text-softer); margin-bottom:4px;}
.compare-strip dd{font-size:13px; color:var(--ink); line-height:1.45;}
@media (max-width:780px){
  .compare-grid{flex-direction:column;}
  .compare-grid .dest-fig{width:100%; max-width:360px; margin:0 auto 16px;}
}

/* When to go / Questions side by side (new, v1.2 — design spec §0) */
.twocol{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}
@media (max-width:780px){
  .twocol{grid-template-columns:1fr;}
}

/* Nearby & next: photo tiles (fallback = palette-token block with a chip) */
.nearby-card{overflow:hidden;}
.nearby-thumb{position:relative; display:flex; align-items:center; justify-content:center; aspect-ratio:3/2; margin:-16px -18px 10px; background:var(--accent-soft);}
.nearby-thumb img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.nearby-chip{font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--accent);}

@media (max-width:780px){
  .dest-fig, .dest-fig:nth-of-type(even), .dest-fig.portrait{float:none; width:100%; max-width:360px; margin:16px auto;}
  .todo-list .dest-fig, .todo-list .dest-fig:nth-of-type(even), .todo-list .dest-fig.portrait{float:none; width:100%; max-width:360px; margin:16px auto;}
  .compare-strip{grid-template-columns:1fr;}
  .cta-row{border-radius:14px;}
  .stay-table thead{display:none;}
  .stay-table, .stay-table tbody, .stay-table tr, .stay-table td{display:block; width:100%;}
  .stay-table{border:none;}
  .stay-table tr{border:1px solid var(--line); border-radius:10px; margin-bottom:12px; padding:6px 0; background:var(--white);}
  .stay-table td{border-top:none; padding:6px 16px;}
  .stay-table td::before{content:attr(data-label); display:block; font-size:11px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--text-softer); margin-bottom:2px;}
}

.trust-marker a{color:inherit; text-decoration:underline;}
.todo-list{display:block;}
.trust-marker a{display:inline !important; padding:0; font-size:inherit;}

/* Tighter rhythm inside destination expandables */
.todo-item{padding:11px 0;}
.todo-item .todo-meta{margin-bottom:4px;}
.dest-collapse .faq-q{padding:13px 0;}
.dest-collapse .faq-a p{padding-bottom:13px;}
#compare{display:flow-root;}
#opening{display:flow-root;}
.stay-table td[data-label="Guest rating"]{white-space:nowrap;}

/* Explicit figure side (overrides odd/even alternation) */
.dest-fig.fig-left{float:left; margin:6px 28px 14px 0;}
.dest-fig.fig-right{float:right; margin:6px 0 14px 28px;}
@media (max-width:780px){
  .dest-fig.fig-left, .dest-fig.fig-right{float:none; width:100%; max-width:360px; margin:16px auto;}
  .stay-table td[data-label="Guest rating"]{white-space:normal;}
}
#compare .compare-block{clear:both;}
/* Viator tour tiles (rendered client-side by js/viator-tiles.js) */
.viator-tiles{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px;}
.viator-tiles:empty::before{content:"Loading tours…"; font-size:13px; color:var(--text-softer);}
.vt-card{display:flex; flex-direction:column; border:1px solid var(--line); border-radius:10px; background:var(--white); overflow:hidden; color:inherit; text-decoration:none;}
.vt-card img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block;}
.vt-body{display:flex; flex-direction:column; gap:8px; padding:14px 16px 16px; flex:1;}
.vt-body h3{font-size:16px; line-height:1.3;}
.vt-body .btn{align-self:flex-start; margin-top:auto; padding:9px 18px;}
.vt-card:hover{border-color:var(--accent);}
