/* ═══════════════════════════════════════════════
   DESTINATION-DETAIL.CSS — Single destination guide
   Vietnam City Breaks · data-driven (?slug)
   ═══════════════════════════════════════════════ */

/* ── Hero ── */
.dd-hero{position:relative;min-height:420px;display:flex;align-items:flex-end;justify-content:center}
.dd-hero-clip{position:absolute;inset:0;overflow:hidden;z-index:0}
.dd-hero-bg{position:absolute;inset:0;background:#1a1a2e center/cover no-repeat;animation:kenBurns 20s ease-in-out infinite alternate}
.dd-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(15,15,35,.85) 0%,rgba(15,15,35,.35) 60%,rgba(15,15,35,.45) 100%)}
.dd-hero-content{position:relative;z-index:2;width:100%;max-width:var(--mw);padding:4.5rem 1.25rem 2.75rem;margin:0 auto}
.dd-breadcrumb{margin-bottom:1rem}
.dd-breadcrumb ol{display:flex;align-items:center;flex-wrap:wrap;gap:0;list-style:none;margin:0;padding:0;font-size:.8rem;color:rgba(255,255,255,.65)}
.dd-breadcrumb ol li:not(:last-child)::after{content:'/';margin:0 .5rem;opacity:.5}
.dd-breadcrumb ol a{color:rgba(255,255,255,.65);transition:color .2s}
.dd-breadcrumb ol a:hover{color:#fff}
.dd-breadcrumb ol li:last-child{color:rgba(255,255,255,.9)}
.dd-hero-pill{display:inline-flex;align-items:center;gap:.4rem;background:rgba(232,82,26,.92);color:#fff;padding:.32rem .85rem;border-radius:20px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.9rem}
.dd-hero-content h1{font-family:var(--fh);color:#fff;font-size:clamp(2rem,5vw,3.2rem);font-weight:800;line-height:1.12;margin-bottom:.4rem;text-shadow:0 2px 14px rgba(0,0,0,.35)}
.dd-tagline{color:#FFD580;font-family:var(--fh);font-weight:600;font-size:clamp(1rem,2.2vw,1.25rem);margin-bottom:.7rem}
.dd-intro{color:rgba(255,255,255,.9);font-size:clamp(.95rem,2vw,1.08rem);max-width:64ch;line-height:1.6}
.dd-best-for{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem}
.dd-chip{display:inline-flex;align-items:center;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.28);color:#fff;padding:.3rem .85rem;border-radius:20px;font-size:.74rem;font-weight:600;letter-spacing:.02em}

/* ── Facts bar ── */
.dd-facts{background:#fff;border-bottom:1px solid var(--border)}
.dd-facts-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.dd-fact{display:flex;flex-direction:column;gap:.2rem;padding:1.1rem 1.25rem;text-align:center;border-left:1px solid var(--border)}
.dd-fact:first-child{border-left:none}
.dd-fact-label{font-size:.72rem;color:var(--text-m);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.dd-fact-val{font-family:var(--fh);font-weight:800;color:var(--text-h);font-size:.98rem}

/* ── Sticky tabs ── */
.dd-tabs{position:sticky;top:67px;z-index:900;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 2px 12px rgba(0,0,0,.05)}
.dd-tabs-inner{display:flex;gap:.4rem;align-items:center;padding:.6rem 1.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch}
.dd-tabs-inner::-webkit-scrollbar{display:none}
.dd-tab{flex:0 0 auto;white-space:nowrap;padding:.45rem 1rem;font-family:var(--fh);font-size:.8rem;font-weight:700;border-radius:50px;background:#fff;border:2px solid var(--border);color:var(--text-b);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.dd-tab:hover,.dd-tab.is-active{background:var(--primary);color:#fff;border-color:var(--primary)}

/* section anchors clear sticky header + tabs */
#dd-overview,#dd-todo,#dd-season,#dd-getting,#dd-gallery,#dd-tours,#dd-map,#dd-faq,#dd-related,#dd-nearby{scroll-margin-top:128px}

/* ── Overview ── */
.dd-overview-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:2.5rem;align-items:center}
.dd-ov-text p{font-size:1rem;color:var(--text-b);line-height:1.8;margin-bottom:1rem}
.dd-ov-text p:last-child{margin-bottom:0}
.dd-ov-media img{width:100%;border-radius:var(--r-card);box-shadow:var(--sh-card);aspect-ratio:4/3;object-fit:cover}

/* ── Things to do (post cards) ── */
.dd-todo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.25rem}
.dd-todo-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden;text-decoration:none;transition:transform .25s,box-shadow .25s}
.dd-todo-card:hover{transform:translateY(-4px);box-shadow:var(--sh-hover)}
.dd-todo-img{height:170px;overflow:hidden}
.dd-todo-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.dd-todo-card:hover .dd-todo-img img{transform:scale(1.06)}
.dd-todo-body{padding:1.25rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.dd-todo-icon{font-size:1.6rem;line-height:1;margin-bottom:.2rem}
.dd-todo-body h3{font-family:var(--fh);font-size:1rem;font-weight:700;color:var(--text-h);line-height:1.35}
.dd-todo-body p{font-size:.88rem;color:var(--text-b);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dd-todo-readmore{margin-top:auto;color:var(--primary);font-family:var(--fh);font-weight:700;font-size:.82rem;display:inline-flex;align-items:center;gap:.3rem}
.dd-todo-card:hover .dd-todo-readmore{gap:.5rem}
.dd-todo-more{text-align:center;margin-top:1.75rem}

/* ── Best time ── */
.dd-season{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.dd-season-card{background:#fff;border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:12px;padding:1.1rem 1.25rem}
.dd-season-card .lbl{font-family:var(--fh);font-weight:800;color:var(--text-h);font-size:.95rem}
.dd-season-card .mon{color:var(--primary);font-weight:700;font-size:.85rem;margin:.15rem 0 .45rem}
.dd-season-card .note{color:var(--text-b);font-size:.85rem;line-height:1.5}

/* ── Getting there ── */
.dd-getting{display:flex;flex-direction:column;gap:.85rem;max-width:780px}
.dd-getting-row{display:flex;gap:1rem;align-items:flex-start;background:#fff;border:1px solid var(--border);border-radius:12px;padding:1rem 1.2rem}
.dd-getting-mode{flex:0 0 110px;font-family:var(--fh);font-weight:800;color:var(--primary);font-size:.9rem}
.dd-getting-text{color:var(--text-b);font-size:.9rem;line-height:1.6}

/* ── Gallery ── */
.dd-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}
.dd-gallery img{width:100%;height:170px;object-fit:cover;border-radius:12px;cursor:pointer;transition:transform .25s,filter .25s}
.dd-gallery img:hover{transform:scale(1.03);filter:brightness(1.05)}

/* Lightbox */
.dd-lb{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center}
.dd-lb.open{display:flex}
.dd-lb-img{max-width:90vw;max-height:85vh;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.dd-lb-close{position:absolute;top:1.1rem;right:1.1rem;background:rgba(255,255,255,.12);border:none;color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}
.dd-lb-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:none;color:#fff;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}
.dd-lb-prev{left:1rem}.dd-lb-next{right:1rem}
.dd-lb-close:hover,.dd-lb-arrow:hover{background:rgba(255,255,255,.25)}

/* ── Tours (uses .tours-grid + .tcard from global.css + home.css) ── */
.dd-tours-more{text-align:center;margin-top:1.75rem}

/* ── Map ── */
.dd-map{height:420px;border-radius:var(--r-card);overflow:hidden;border:1px solid var(--border);box-shadow:var(--sh-card)}
.dd-map iframe{width:100%;height:100%;border:0;display:block}

/* ── FAQ ── */
.dd-faq-wrap{max-width:820px}
.dd-faq-item{background:#fff;border:1px solid var(--border);border-radius:12px;margin-bottom:.7rem;overflow:hidden}
.dd-faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fff;border:none;text-align:left;cursor:pointer;padding:1rem 1.2rem;font-family:var(--fh);font-weight:700;color:var(--text-h);font-size:.95rem}
.dd-faq-q:hover{background:var(--bg-soft)}
.dd-faq-q .chv{flex-shrink:0;transition:transform .25s;color:var(--primary)}
.dd-faq-item.open .dd-faq-q .chv{transform:rotate(180deg)}
.dd-faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;color:var(--text-b);font-size:.9rem;line-height:1.7}
.dd-faq-a > div{padding:0 1.2rem 1.1rem}
.dd-faq-item.open .dd-faq-a{max-height:320px}

/* ── Nearby ── */
.dd-nearby-grid{grid-template-columns:repeat(3,1fr)}

/* ── Coming soon (unknown slug fallback) ── */
.dd-soon{text-align:center;padding:3rem 1rem;color:var(--text-b)}

/* ── Responsive ── */
@media(max-width:1024px){
  .dd-overview-grid{grid-template-columns:1fr;gap:1.5rem}
  .dd-ov-media{order:-1}
}
@media(max-width:768px){
  .dd-hero{min-height:340px}
  .dd-hero-content{padding:3.25rem 1.25rem 2rem}
  .dd-facts-inner{grid-template-columns:1fr 1fr}
  .dd-fact:nth-child(odd){border-left:none}
  .dd-fact:nth-child(n+3){border-top:1px solid var(--border)}
  .dd-tabs{top:67px}
  .dd-map{height:300px}
  .dd-nearby-grid{grid-template-columns:1fr}
  .dd-getting-row{flex-direction:column;gap:.3rem}
  .dd-getting-mode{flex:0 0 auto}
}
@media(max-width:480px){
  .dd-gallery{grid-template-columns:1fr 1fr}
  .dd-gallery img{height:130px}
}
@media(prefers-reduced-motion:reduce){
  .dd-hero-bg{animation:none}
  .dd-faq-a{transition:none}
}
