/* Hallmark · macrostructure: Photographic (08) · nav: N12 banner + sticky bar · footer: Ft1 mast-headed
 * theme: custom, brand-locked (Ali orange #F47E20 on white/cream, forest-green dark ground)
 * display: Montserrat 800 (geometric sans, roman) · body: Be Vietnam Pro · enrichment: real photography
 * audience: foreign travellers 25–45 planning the Ha Giang Loop · job: pick a tour, ask on WhatsApp
 * Hallmark · pre-emit critique: P4 H4 E4 S5 R4 V4 */
:root{
  --paper:#FFFFFF; --paper-2:#FBF4E9; --ink:#2B2B2B; --muted:#6B6B6B; --line:#E9E0D2; --line-strong:#D6CAB8;
  --accent:#F47E20; --accent-deep:#D9650A; --accent-text:#A84C00; --accent-soft:#FDE9D8; --sun:#F0B000; --leaf:#2E9E50; --jade:#1FA98C;
  --forest:#1F3D2B; --forest-ink:#EEF3EE; --forest-muted:#A9BFB0; --on-accent:#1E1E1E;
  --ok:#2E9E50; --warn:#B8860B; --focus:#1FA98C;
  --font-display:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --font-body:"Be Vietnam Pro","Segoe UI",Roboto,Arial,sans-serif;
  --text-display:clamp(2.1rem,4.4vw,3.4rem); --text-h2:clamp(1.55rem,2.6vw,2.15rem); --text-h3:1.15rem; --text-body:1rem; --text-small:.875rem; --text-label:.74rem;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px; --s10:40px; --s12:48px; --s16:64px; --s24:96px;
  /* --s5 và --s10 được dùng ở 10 chỗ (thanh toán · bài blog · chân trang) mà trước 21/09 CHƯA TỪNG khai báo
     → trình duyệt coi là không hợp lệ, các khoảng cách đó âm thầm bằng 0. */
  --radius:6px; --radius-lg:12px; --ease-out:cubic-bezier(.2,.7,.2,1); --dur:180ms;
  --shadow:0 10px 30px rgba(43,43,43,.12);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--text-body);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font-display);font-style:normal;line-height:1.12;margin:0;text-wrap:balance;overflow-wrap:anywhere;min-width:0}
h1{font-size:var(--text-display);font-weight:800;letter-spacing:-.015em}
h2{font-size:var(--text-h2);font-weight:800;letter-spacing:-.01em}
h3{font-size:var(--text-h3);font-weight:700}
p{margin:0}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
.label{font-family:var(--font-display);font-size:var(--text-label);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-text)}
.muted{color:var(--muted)}
.small{font-size:var(--text-small)}
.num{font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){*{transition-duration:0ms!important;animation:none!important}}

/* Buttons: default · hover · focus · active · disabled · loading · error · success */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;padding:0 var(--s6);border-radius:var(--radius);border:1.5px solid transparent;font-family:var(--font-display);font-weight:700;font-size:.95rem;text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform var(--dur) var(--ease-out),background-color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-deep)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-light{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.55);backdrop-filter:blur(4px)}
.btn-light:hover{background:rgba(255,255,255,.24)}
.btn:active{transform:translateY(1px)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none}
.btn[data-state="loading"]{opacity:.8;cursor:progress}
.btn[data-state="success"]{background:var(--ok);color:#fff;border-color:transparent}
.btn[data-state="error"]{background:transparent;color:var(--accent-text);border-color:var(--accent-text)}
.wa::before{content:"";width:18px;height:18px;border-radius:50%;background:currentColor;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a10 10 0 0 0-8.6 15.1L2 22l5.1-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.3-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.8 12 12 0 0 0 4.6 4c1.7.7 2.4.8 3.2.7a2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z"/></svg>') center/contain no-repeat;-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a10 10 0 0 0-8.6 15.1L2 22l5.1-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.3-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.8 12 12 0 0 0 4.6 4c1.7.7 2.4.8 3.2.7a2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z"/></svg>') center/contain no-repeat}

/* Banner (N12) + sticky nav */
.banner{background:var(--forest);color:var(--forest-ink);font-size:var(--text-small);padding:6px 0}
.banner .wrap{display:flex;justify-content:space-between;gap:var(--s4);min-height:38px;align-items:center;padding:0 4px}
.banner-right{display:flex;align-items:center;gap:var(--s4)}
.banner .lang select{min-height:26px;padding:0 4px;font-size:.74rem;background:var(--forest);color:#fff;border-color:rgba(255,255,255,.35)}
.banner .lang select option{color:#fff;background:var(--forest)}
.banner-wa{font-weight:600;color:#fff}
.banner b{color:#fff;font-weight:600}
.banner a{color:var(--forest-ink);text-decoration:none}
.banner a:hover{text-decoration:underline}
.nav{position:sticky;top:0;z-index:40;background:var(--paper-2);box-shadow:0 1px 0 rgba(43,43,43,.06)}
.nav .wrap{display:flex;align-items:center;gap:var(--s6);min-height:72px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{height:44px;width:auto}
.menu{display:flex;gap:20px;margin:0 0 0 var(--s4);padding:0;list-style:none}
.menu a{text-decoration:none;font-weight:500;font-size:.95rem;padding:var(--s2) 0;border-bottom:2px solid transparent;white-space:nowrap}
.menu a:hover{border-bottom-color:var(--accent-text)}
.nav-cta{display:flex;gap:var(--s3);margin-left:auto}
.burger{display:none;width:44px;height:44px;border:1.5px solid var(--line-strong);border-radius:var(--radius);background:transparent;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;margin-left:auto}
.burger span{display:block;width:20px;height:2px;background:var(--ink)}
.drawer{display:none;border-top:1px solid var(--line);background:var(--paper)}
.nav .drawer .wrap{display:block;min-height:0;padding-top:var(--s3);padding-bottom:var(--s4)}
.drawer ul{list-style:none;margin:0;padding:var(--s2) 0}
.drawer{max-height:calc(100vh - 72px);overflow-y:auto;overscroll-behavior:contain}
.drawer a{display:block;padding:var(--s3) 0;text-decoration:none;font-weight:500;border-bottom:1px solid var(--line)}
.drawer .btn{margin:var(--s4) 0;width:100%}
.nav.open .drawer{display:block}

/* Hero: photographic fold */
.hero{position:relative;height:clamp(520px,80vh,760px);background:var(--forest);overflow:hidden}
.hero img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(10,20,14,.78) 100%)}
.hero-caption{position:absolute;left:0;right:0;bottom:0;z-index:2;color:#fff;padding-bottom:var(--s12)}
.hero-caption .label{color:var(--sun)}
.hero-caption h1{max-width:15ch;margin-top:var(--s3);text-shadow:0 2px 20px rgba(0,0,0,.35)}
.hero-caption p{max-width:52ch;margin-top:var(--s4);font-size:1.05rem;color:rgba(255,255,255,.92)}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s6)}
.photo-credit{position:absolute;right:var(--s4);top:var(--s4);z-index:2;color:rgba(255,255,255,.85);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;background:rgba(0,0,0,.28);padding:4px 8px;border-radius:4px}

/* Trust strip */
.trust{border-bottom:1px solid var(--line);background:var(--paper-2)}
.trust ul{list-style:none;margin:0;padding:var(--s4) 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.trust li{display:flex;gap:var(--s3);align-items:flex-start;font-size:var(--text-small);line-height:1.4}
.trust b{display:block;font-family:var(--font-display);font-weight:700;color:var(--ink)}
.trust .dot{flex:0 0 10px;width:10px;height:10px;margin-top:6px;border-radius:50%;background:var(--accent)}

/* Sections */
.section{padding:var(--s16) 0}
#tours{padding:var(--s24) 0 40px}
#destinations{padding-bottom:var(--s16)}
#stay{padding:var(--s12) 0}
#rental{padding:var(--s16) 0 var(--s12)}
#bus{padding:40px 0}
#reviews{padding:var(--s16) 0 var(--s12)}
#faq{padding:40px 0}
#guides{padding-bottom:40px}
#about{padding-bottom:var(--s16)}
#plan{padding:var(--s24) 0}
.section-head{display:grid;gap:var(--s2);max-width:62ch;margin-bottom:var(--s8)}
.section-head p{color:var(--muted)}

/* Tour ladder */
.ladder{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.ladder-head,.ladder-row{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1fr)}
.ladder-head{background:var(--paper-2);border-bottom:1px solid var(--line)}
.ladder-head > div{padding:var(--s4) var(--s6)}
.ladder-head h3{font-size:1rem}
.ladder-head p{font-size:var(--text-small);color:var(--muted);margin-top:var(--s1)}
.ladder-row{border-bottom:1px solid var(--line)}
.ladder-row:last-child{border-bottom:0}
.days{padding:var(--s6);font-family:var(--font-display);font-weight:800;font-size:1.6rem;line-height:1;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.days small{font-family:var(--font-body);font-weight:400;font-size:var(--text-small);color:var(--muted)}
.cell{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:var(--s4);align-items:center;padding:var(--s4) var(--s6);text-decoration:none;color:inherit;border-right:1px solid var(--line);transition:background-color var(--dur) var(--ease-out)}
.cell:last-child{border-right:0}
.cell:hover{background:var(--paper-2)}
.cell img{width:104px;height:74px;object-fit:cover;border-radius:var(--radius)}
.cell h4{font-family:var(--font-display);font-size:.98rem;font-weight:700}
.cell .route{font-size:var(--text-small);color:var(--muted);margin-top:2px}
.price{text-align:right;line-height:1.15}
.price b{display:block;font-family:var(--font-display);font-size:1.25rem;font-weight:800}
.price span{font-size:.76rem;color:var(--muted);display:block}
.ladder-note{margin-top:var(--s3);font-size:var(--text-small);color:var(--muted)}

/* How you ride */
.ride{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ride-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.ride-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s6);display:grid;gap:var(--s2);align-content:start}
.ride-item .price-tag{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--accent-text)}
.ride-item .price-tag small{font-family:var(--font-body);font-weight:400;font-size:var(--text-small);color:var(--muted)}
.ride-item p{font-size:var(--text-small);color:var(--muted)}
.ride-item .req{font-size:.78rem;padding:2px 8px;border-radius:4px;background:var(--accent-soft);color:var(--accent-text);width:max-content;font-weight:600}
.ride-item .req.none{background:#E3F4E8;color:#1F6B37}
:root[data-theme="dark"] .ride-item .req.none{background:#1E3A28;color:#9BD8AE}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ride-item .req.none{background:#1E3A28;color:#9BD8AE}}

/* Photo fold */
.fold{position:relative;height:clamp(360px,60vh,600px);background:var(--forest)}
.fold img{width:100%;height:100%;object-fit:cover}
.fold .cap{position:absolute;left:0;right:0;bottom:var(--s6);color:#fff;font-size:var(--text-small);letter-spacing:.02em}
.fold .cap .wrap{display:block;width:max-content;max-width:calc(100% - 32px);padding:8px 14px;background:rgba(20,32,26,.72);border-radius:var(--radius)}

/* Reviews */
.reviews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.review{border-left:3px solid var(--accent);padding:var(--s2) 0 var(--s2) var(--s6);display:grid;gap:var(--s2)}
.review h3,.review h2{font-size:1.02rem}
.review p{color:var(--ink)}
.review .src{font-size:var(--text-small);color:var(--muted)}
.stars{color:var(--sun);letter-spacing:2px;font-size:.9rem}

/* FAQ */
.faq{max-width:760px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:var(--s4) 0;font-family:var(--font-display);font-weight:700;font-size:1.02rem;display:flex;justify-content:space-between;gap:var(--s4)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent-text);font-size:1.4rem;line-height:1;flex:0 0 auto}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 0 var(--s4);max-width:62ch;color:var(--ink)}
.faq .a p+p{margin-top:var(--s2)}

/* Guides */
.guides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}
.guide{display:grid;gap:var(--s2);text-decoration:none;padding:var(--s4) 0;border-top:2px solid var(--ink);align-content:start}
.guide img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius);display:block;margin-bottom:2px}
.bl-row img{width:100%;height:100%;max-height:140px;object-fit:cover;border-radius:var(--radius);display:block}
.bl-more{width:100%;margin-top:var(--s4);min-height:48px}
@media (max-width:700px){.bl-row img{max-height:120px}.bl-card img{max-height:180px;object-fit:cover}}
.guide:hover img{opacity:.94}
.guide .date{font-size:var(--text-small);color:var(--muted)}
.guide h3{font-size:1.08rem}
.guide:hover h3{color:var(--accent-text)}

/* Plan form */
.plan{background:var(--forest);color:var(--forest-ink)}
.plan .section-head p{color:var(--forest-muted)}
.plan .label{color:var(--sun)}
.form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4);max-width:1000px}
.form > *,.form label{min-width:0}
.form input,.form select,.form textarea{max-width:100%;min-width:0}
.form label{display:grid;gap:var(--s1);font-size:var(--text-small);font-weight:600}
.form input,.form select,.form textarea{font:inherit;color:var(--ink);background:#fff;border:1.5px solid transparent;border-radius:var(--radius);padding:12px;min-height:48px}
.form input:hover,.form select:hover,.form textarea:hover{border-color:var(--sun)}
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.form input[aria-invalid="true"]{border-color:#E0553B}
.form .full{grid-column:1 / -1}
.form textarea{min-height:120px;resize:vertical}
.form-foot{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4);padding-top:var(--s2)}
.plan .form-foot .btn-ghost{border-color:rgba(255,255,255,.55);color:#fff;background:transparent}
.plan .form-foot .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.plan .form-foot .btn-ghost svg{margin-right:6px;vertical-align:-3px}
.form-foot .btn{min-width:220px}
.form-msg{font-size:var(--text-small);color:var(--forest-muted)}
.form-msg.ok{color:#9BD8AE}
.form-msg.err{color:#F6B0A0}

/* Footer Ft1 */
.footer{background:var(--forest);color:var(--forest-ink);padding:var(--s16) 0 var(--s6)}
.colophon{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1.6fr);gap:var(--s12);align-items:start}
.colophon-say{display:grid;gap:var(--s4);justify-items:start}
.colophon-say img{height:44px;width:auto}
.colophon-say .big{font-family:var(--font-display);font-size:1rem;font-weight:600;line-height:1.5;max-width:36ch;color:#fff}
.colophon-say .reach{color:var(--forest-ink);font-size:.95rem;line-height:1.8}
.colophon-say .reach a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.colophon-say .reach a:hover{border-bottom-color:var(--sun)}
.colophon-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}
.footer-pol{margin-top:var(--s10);padding-top:var(--s4);border-top:1px solid rgba(255,255,255,.14);font-size:.86rem;color:var(--forest-ink)}
.footer-pol b{font-family:var(--font-display);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--sun);margin-right:8px}
.footer-pol a{color:var(--forest-ink);text-decoration:none}.footer-pol a:hover{text-decoration:underline}
.colophon-cols h2,.colophon-cols h2,.colophon-cols h3{font-family:var(--font-display);font-size:var(--text-label);letter-spacing:.09em;text-transform:uppercase;color:var(--sun);margin:0 0 var(--s3)}
.colophon-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.colophon-cols a{color:var(--forest-ink);text-decoration:none;font-size:var(--text-small)}
.colophon-cols a:hover{text-decoration:underline}
.footer-line{margin-top:var(--s10);padding-top:var(--s4);border-top:1px solid rgba(255,255,255,.14);font-size:.78rem;color:var(--forest-muted)}

/* Mobile sticky bar */
.sticky-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--paper);border-top:1px solid var(--line);padding:var(--s3) var(--s4);gap:var(--s3);align-items:center;box-shadow:0 -8px 24px rgba(0,0,0,.08)}
.sticky-bar .from{flex:1 1 auto;line-height:1.15;min-width:0}
.sticky-bar .from b{display:block;font-family:var(--font-display);font-size:1.1rem}
.sticky-bar .from span{font-size:.76rem;color:var(--muted)}
.sticky-bar .btn{min-height:44px;padding:0 var(--s4)}

/* Tour page */
.crumbs{padding:var(--s4) 0;font-size:var(--text-small);color:var(--muted)}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:var(--s2);height:clamp(300px,48vw,520px);border-radius:var(--radius-lg);overflow:hidden}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery img:first-child{grid-row:1 / span 2}
.tour-head{display:grid;gap:var(--s3);padding:var(--s8) 0 var(--s6)}
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display);font-size:var(--text-label);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);padding:5px 10px;border-radius:4px;width:max-content}
.chip.classic{background:var(--forest)}
.facts{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s6);padding:var(--s4) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:var(--text-small)}
.facts b{font-family:var(--font-display);font-weight:700}
.tour-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--s12);padding:var(--s8) 0 var(--s16);align-items:start}
.tour-body{display:grid;gap:var(--s12)}
.tour-body > section{display:grid;gap:var(--s4)}
.tour-body .lede{font-size:1.08rem;max-width:62ch}
.tour-body ul.plain{margin:0;padding-left:1.2em;display:grid;gap:var(--s2);max-width:62ch}
.days-list details{border:1px solid var(--line);border-radius:var(--radius);padding:0 var(--s4)}
.days-list details+details{margin-top:var(--s2)}
.days-list summary{cursor:pointer;padding:var(--s3) 0;font-family:var(--font-display);font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:var(--s4)}
.days-list summary::-webkit-details-marker{display:none}
.days-list summary::after{content:"+";color:var(--accent-text);font-size:1.3rem;line-height:1;flex:0 0 auto}
.days-list details[open] summary::after{content:"–"}
.days-list .body{padding:0 0 var(--s4);display:grid;gap:var(--s2);max-width:66ch;font-size:.96rem}
.days-list .body b{font-weight:600}
.days-list .glance{font-size:var(--text-small);color:var(--muted);border-top:1px dashed var(--line);padding-top:var(--s2);margin-top:var(--s1)}
.incl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6)}
.incl ul{margin:0;padding:0;list-style:none;display:grid;gap:var(--s2);font-size:.95rem}
.incl li{padding-left:22px;position:relative}
.incl .yes li::before{content:"";position:absolute;left:0;top:5px;width:15px;height:15px;background:var(--leaf);mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 12.5l5 5L20 6.5" fill="none" stroke="black" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/contain no-repeat}
.incl .no li::before{content:"";position:absolute;left:0;top:5px;width:15px;height:15px;background:var(--danger,#C8442B);mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 6l12 12M18 6L6 18" fill="none" stroke="black" stroke-width="3.2" stroke-linecap="round"/></svg>') center/contain no-repeat}
.placeholder{border:1px dashed var(--line-strong);background:var(--paper-2);border-radius:var(--radius);padding:var(--s6);color:var(--muted);font-size:var(--text-small);display:grid;gap:var(--s2)}
.placeholder a{color:var(--accent-text)}
.book{position:sticky;top:88px;border:1.5px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--paper);padding:var(--s6);display:grid;gap:var(--s4)}
.book .from{font-family:var(--font-display);font-weight:800;font-size:1.7rem;line-height:1}
.book .from small{font-family:var(--font-body);font-weight:400;font-size:var(--text-small);color:var(--muted)}
.opts{display:grid;gap:var(--s2)}
.opt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s3);padding:var(--s3);border:1.5px solid var(--line);border-radius:var(--radius);cursor:pointer;transition:border-color var(--dur) var(--ease-out)}
.opt:hover{border-color:var(--line-strong)}
.opt:has(input:checked){border-color:var(--accent-text);background:var(--accent-soft)}
.opt input{accent-color:var(--accent-text);width:18px;height:18px;margin:0}
.opt .name{font-size:.92rem;font-weight:500}
.opt .p{font-family:var(--font-display);font-weight:700;font-size:1rem}
.book label.field{display:grid;gap:var(--s1);font-size:var(--text-small);font-weight:600}
.book input,.book select{font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:10px 12px;min-height:44px}
.book input:hover,.book select:hover{border-color:var(--ink)}
.book .row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s3)}
.total{display:grid;gap:2px;padding-top:var(--s3);border-top:1px solid var(--line)}
.total .line{display:flex;justify-content:space-between;font-size:var(--text-small);color:var(--muted)}
.total .line.big{font-size:1.05rem;color:var(--ink);font-weight:600}
.total .line b{font-family:var(--font-display);font-weight:800;font-size:1.25rem}
.book .fine{font-size:.78rem;color:var(--muted);line-height:1.45}
.related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.rel{display:grid;gap:var(--s2);text-decoration:none;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:transform var(--dur) var(--ease-out)}
.rel:hover h4{text-decoration:underline;text-decoration-color:var(--accent)}
.rel img{height:150px;width:100%;object-fit:cover}
.rel .t{padding:0 var(--s4) var(--s4);display:grid;gap:2px}
.rel h3{font-family:var(--font-display);font-size:.98rem;font-weight:700}
.rel .sub{font-size:var(--text-small);color:var(--muted)}
.rel .pr{font-family:var(--font-display);font-weight:800}

/* Dropdown menu */
.menu>li{position:relative}
.caret{display:inline-block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 0 3px 4px}
.sub{position:absolute;top:calc(100% + 6px);left:0;min-width:240px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--s2);display:none;z-index:50}
.sub a{display:block;padding:8px 10px;border-radius:4px;border-bottom:0;font-size:.9rem;white-space:nowrap}
.sub a:hover{background:var(--paper-2);border-bottom:0}
.sub-wide{display:none;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s3);min-width:560px;padding:var(--s4)}
.sub-head{display:block;font-family:var(--font-display);font-size:var(--text-label);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-text);padding:4px 10px 8px}
.sub-all{margin-top:6px;color:var(--accent-text);font-weight:600}
.has-sub:hover>.sub,.has-sub:focus-within>.sub,.has-sub.open>.sub{display:block}
.has-sub:hover>.sub-wide,.has-sub:focus-within>.sub-wide,.has-sub.open>.sub-wide{display:grid}
.has-sub::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px}
.drawer-head{display:block;padding:var(--s3) 0 var(--s1);font-family:var(--font-display);font-size:var(--text-label);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-text)}
/* Cart */
.cart{position:relative;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1.5px solid var(--line-strong);border-radius:var(--radius);background:transparent;color:var(--ink);cursor:pointer;flex:0 0 auto}
.cart:hover{border-color:var(--ink)}
.cart-ico{width:22px;height:22px;background:currentColor;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6"/></svg>') center/contain no-repeat;-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6"/></svg>') center/contain no-repeat}
.cart-count{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:4px;background:var(--accent);color:var(--on-accent);font-family:var(--font-display);font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.cart-count[data-zero="1"]{background:var(--muted)}
.cart-panel{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--paper);border-left:1px solid var(--line);box-shadow:var(--shadow);z-index:80;transform:translateX(100%);transition:transform var(--dur) var(--ease-out);display:grid;grid-template-rows:auto 1fr auto}
.cart-panel.open{transform:none}
.cart-head{display:flex;justify-content:space-between;align-items:center;padding:var(--s4) var(--s6);border-bottom:1px solid var(--line)}
.cart-head h3{font-size:1.05rem}
.cart-close{width:40px;height:40px;border:1.5px solid var(--line-strong);border-radius:var(--radius);background:transparent;cursor:pointer;font-size:1.2rem;color:var(--ink)}
.cart-body{padding:var(--s4) var(--s6);overflow:auto;display:grid;gap:var(--s3);align-content:start}
.cart-empty{color:var(--muted);font-size:var(--text-small);max-width:34ch}
.cart-item{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s3) var(--s4);display:grid;gap:4px;font-size:.92rem}
.cart-item b{font-family:var(--font-display)}
.cart-item .l{display:flex;justify-content:space-between;color:var(--muted);font-size:var(--text-small)}
.cart-item .rm{justify-self:start;background:none;border:0;color:var(--accent-text);cursor:pointer;padding:11px 2px;min-height:44px;font-size:var(--text-small);text-decoration:underline}
.cart-foot{padding:var(--s4) var(--s6);border-top:1px solid var(--line);display:grid;gap:var(--s2)}
.cart-foot .line{display:flex;justify-content:space-between;font-size:var(--text-small);color:var(--muted)}
.cart-foot .line.big{font-size:1.05rem;color:var(--ink);font-weight:600}
.cart-foot .fine{font-size:.76rem;color:var(--muted)}
.cart-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:70;display:none}
.cart-backdrop.open{display:block}
@media (max-width:1024px){.nav-cta{display:flex;margin-left:auto;gap:var(--s3)} .burger{margin-left:0}}
@media (max-width:414px){.sub-wide{min-width:0}}

/* Quick summary sections (one-page) */
#ali-root section[id],section[id]{scroll-margin-top:96px}
.qgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.qgrid.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.qgrid.rows{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.qgrid.rows .qcard{grid-template-rows:none;grid-template-columns:120px minmax(0,1fr);align-items:stretch}
.qgrid.rows .qcard .qimg img{aspect-ratio:auto;height:100%;min-height:104px}
.qgrid.rows .qcard .t{padding:var(--s3) var(--s4);flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:var(--s3)}
.qgrid.rows .qcard h3,.qcard h4{flex:1 1 100%}
.qgrid.rows .qcard .sub{flex:1 1 100%}
.qgrid.rows .qcard .pr{margin:0;flex:1 1 auto}
.qgrid.rows .qcard .btn.sm{width:auto;margin:0;flex:0 0 auto}
.qgrid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.qgrid.two .qcard{grid-template-rows:none;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.qgrid.two .qcard .qimg img{aspect-ratio:auto;height:100%;min-height:150px}
.qgrid.two .qcard .t{padding:var(--s4) 20px}
.qcard{display:grid;grid-template-rows:auto 1fr;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--paper);transition:transform var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}
.qcard .qimg img{transition:filter var(--dur) var(--ease-out)}.qcard:hover .qimg img{filter:brightness(1.06)}
.qcard img{width:100%;aspect-ratio:4/3;object-fit:cover}
.qcard .t{padding:var(--s3) var(--s4) var(--s4);display:grid;gap:2px;align-content:start}
.qcard h3,.qcard h4{font-family:var(--font-display);font-size:.95rem;font-weight:700;margin:0;line-height:1.32}
.qcard .sub{font-size:.8rem;color:var(--muted)}
.qcard .pr{font-family:var(--font-display);font-weight:800;color:var(--accent-text);margin-top:4px}
.qcard .pr small{font-family:var(--font-body);font-weight:400;color:var(--muted);font-size:.76rem}
.see-all{display:inline-flex;align-items:center;gap:6px;margin-top:var(--s6);font-family:var(--font-display);font-weight:700;color:var(--accent-text);text-decoration:none;border-bottom:2px solid transparent}
.see-all:hover{border-bottom-color:var(--accent-text)}
.link-plain{display:inline-block;margin-top:var(--s4);font-weight:600;color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}
.link-plain:hover{color:var(--accent-text)}
.see-all::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg)}
.sub-block{margin-top:var(--s8)}
.sub-block h3{font-size:1.05rem;margin-bottom:var(--s3)}
.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s12);align-items:center}
.about-grid img{border-radius:var(--radius-lg);aspect-ratio:4/3;object-fit:cover;width:100%}
.about-facts{display:grid;gap:var(--s2);margin:var(--s4) 0 0;padding:0;list-style:none;font-size:var(--text-small)}
.about-facts li{padding-left:18px;position:relative}.about-facts li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
@media (max-width:1024px){.qgrid,.qgrid.five{grid-template-columns:repeat(3,minmax(0,1fr))}.about-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:768px){.qgrid,.qgrid.five{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Listing pages */
.list-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s6);padding:var(--s4) 0 var(--s4);flex-wrap:wrap}
.list-head h1{font-size:clamp(1.6rem,3vw,2.3rem)}
.list-head p{max-width:60ch;margin-top:var(--s2)}
.search{display:block;flex:0 0 320px;max-width:100%}
.search input{width:100%;font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:12px 14px;min-height:48px}
.search input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.presets{display:flex;gap:var(--s2);flex-wrap:wrap;padding-bottom:var(--s4);border-bottom:1px solid var(--line);margin-bottom:var(--s6)}
.presets button{font:inherit;font-size:.86rem;font-weight:500;padding:8px 14px;border-radius:4px;border:1.5px solid var(--line-strong);background:var(--paper);color:var(--ink);cursor:pointer}
.presets button:hover{border-color:var(--accent-text)}
.presets button.on{background:var(--accent);border-color:var(--accent-text);color:var(--on-accent)}
.list-grid{display:grid;grid-template-columns:250px minmax(0,1fr);gap:var(--s8);align-items:start;padding-bottom:var(--s16)}
.filters{position:sticky;top:88px;display:grid;gap:var(--s4)}
.fgroup{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s3) var(--s4)}
.fgroup h2{font-family:var(--font-display);font-size:var(--text-label);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--s2)}
.fopts{display:flex;flex-wrap:wrap;gap:6px}
.fopt{font:inherit;font-size:.84rem;padding:6px 10px;border-radius:6px;border:1.5px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.fopt:hover{border-color:var(--line-strong)}
.fopt.on{border-color:var(--accent-text);background:var(--accent-soft);color:var(--accent-text);font-weight:600}
.fopt .k{font-size:.72rem;color:var(--muted)}
.frange{display:grid;gap:4px}
.frange input[type=range]{width:100%;accent-color:var(--accent-text)}
.frange .v{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted)}
.frange .v b{color:var(--ink);font-family:var(--font-display)}
.fclear{font:inherit;background:none;border:0;color:var(--accent-text);text-decoration:underline;cursor:pointer;padding:0;font-size:.86rem;justify-self:start}
.toolbar{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;padding-bottom:var(--s4)}
.count{font-family:var(--font-display);font-weight:700}
.chips{display:flex;gap:6px;flex-wrap:wrap;flex:1 1 auto}
.chip-f{font-size:.78rem;padding:4px 8px;border-radius:4px;background:var(--paper-2);border:1px solid var(--line);display:inline-flex;gap:6px;align-items:center}
.chip-f button{background:none;border:0;cursor:pointer;color:var(--muted);font-size:1rem;line-height:1;padding:0}
.sort{font-size:.86rem;color:var(--muted);display:flex;align-items:center;gap:6px;margin-left:auto}
.sort select{font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:8px 10px;min-height:40px}
.results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.results.tours{grid-template-columns:repeat(2,minmax(0,1fr))}
.tcard{display:grid;grid-template-columns:150px minmax(0,1fr);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;color:inherit;background:var(--paper);transition:transform var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}
.tcard:hover{border-color:var(--accent)}
.tcard img{width:100%;height:100%;min-height:150px;object-fit:cover}
.tcard .t{padding:var(--s3) var(--s4);display:grid;gap:4px;align-content:start}
.tcard .chip{font-size:.66rem;padding:3px 7px}
.tcard h3,.tcard h4{font-family:var(--font-display);font-size:1rem;font-weight:700;margin:2px 0 0;line-height:1.32}
.tcard .route{font-size:.8rem;color:var(--muted)}
.tcard .facts{border:0;padding:0;gap:4px 10px;font-size:.76rem;color:var(--muted)}
.tcard .pr{font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:var(--accent-text);margin-top:4px}
.tcard .pr small{font-family:var(--font-body);font-weight:400;color:var(--muted);font-size:.74rem}
.l-empty{padding:var(--s8);border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);text-align:center}
.mark{background:var(--accent-soft);border-radius:3px}
@media (max-width:1024px){.list-grid{grid-template-columns:minmax(0,1fr)}.filters{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.results,.results.tours{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:768px){.filters{grid-template-columns:minmax(0,1fr)}.results,.results.tours{grid-template-columns:minmax(0,1fr)}.tcard{grid-template-columns:120px minmax(0,1fr)}.search{flex:1 1 100%}.sort{margin-left:0}}

/* Tour page, TripAdvisor pattern */
.rating-row{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s6);align-items:center;font-size:var(--text-small)}
.rating-row .score{font-family:var(--font-display);font-weight:800;font-size:1.3rem}
.rating-row .stars{font-size:1rem}
.badges{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;padding:5px 10px;border-radius:4px;background:var(--paper-2);border:1px solid var(--line)}
.badge::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--leaf)}
.stops{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:stop}
.stops li{position:relative;padding:0 0 var(--s4) 40px;counter-increment:stop}
.stops li::before{content:counter(stop);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-family:var(--font-display);font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center}
.stops li::after{content:"";position:absolute;left:12px;top:28px;bottom:0;border-left:2px solid var(--line)}
.stops li:last-child::after{display:none}
.stops b{display:block;font-family:var(--font-display);font-size:.95rem}
.stops span{font-size:.86rem;color:var(--muted)}
.rev-summary{display:grid;grid-template-columns:auto 1fr;gap:var(--s6);align-items:center;padding:var(--s4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-2)}
.rev-summary .big{font-family:var(--font-display);font-weight:800;font-size:2.4rem;line-height:1}
.rev-bars{display:grid;gap:4px;font-size:.8rem}
.rev-bars div{display:grid;grid-template-columns:44px 1fr 28px;gap:8px;align-items:center}
.rev-bars i{display:block;height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.rev-bars i b{display:block;height:100%;background:var(--sun)}
.know{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.know div{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s3) var(--s4);font-size:.9rem}
.know b{display:block;font-family:var(--font-display);font-size:.88rem;margin-bottom:2px}
/* Hostel page, Booking pattern */
.prop-head{display:grid;gap:var(--s2);padding:var(--s6) 0 var(--s4)}
.prop-head .addr{font-size:var(--text-small);color:var(--muted)}
.prop-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s8);align-items:start}
.score-box{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s4);display:grid;gap:var(--s2);background:var(--paper)}
.score-box .sc{display:flex;align-items:center;gap:var(--s3)}
.score-box .n{font-family:var(--font-display);font-weight:800;font-size:1.5rem;background:var(--forest);color:#fff;padding:6px 10px;border-radius:8px 8px 8px 0}
.fac{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);list-style:none;margin:0;padding:0;font-size:.88rem}
.fac li{padding-left:18px;position:relative}.fac li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--leaf)}
.roomtbl{width:100%;border-collapse:collapse;font-size:.9rem;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.roomtbl th{background:var(--forest);color:#fff;text-align:left;padding:10px 12px;font-family:var(--font-display);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.roomtbl td{padding:12px;border-top:1px solid var(--line);vertical-align:top}
.roomtbl .rn{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:center}
.roomtbl .rn img{width:72px;height:54px;object-fit:cover;border-radius:4px}
.roomtbl .rn b{font-family:var(--font-display)}
.roomtbl .rn span{font-size:.78rem;color:var(--muted);display:block}
.roomtbl .pr{font-family:var(--font-display);font-weight:800;white-space:nowrap}
.roomtbl .pr small{font-family:var(--font-body);font-weight:400;color:var(--muted);display:block;font-size:.74rem}
.roomtbl select{font:inherit;padding:6px 8px;border:1.5px solid var(--line-strong);border-radius:4px;background:var(--paper);color:var(--ink)}
.roomtbl .btn{min-height:40px;padding:0 var(--s4);font-size:.86rem}
.rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);font-size:.9rem}
.rules div{border-top:1px solid var(--line);padding-top:var(--s2)}
.rules b{display:block;font-family:var(--font-display);font-size:.86rem}
/* Bus page, 12Go pattern */
.busbar{display:grid;grid-template-columns:1fr auto 1fr 150px 110px auto;gap:var(--s2);align-items:end;background:var(--forest);padding:var(--s4);border-radius:var(--radius-lg);color:#fff}
.busbar label{display:grid;gap:4px;font-size:.76rem;color:var(--forest-muted)}
.busbar input,.busbar select{font:inherit;color:var(--ink);background:#fff;border:0;border-radius:var(--radius);padding:10px 12px;min-height:44px}
.bus-canngay{margin:var(--s3) 0 0;padding:10px 12px;border-radius:var(--radius);background:#FDECEC;color:#9B1C1C;font-weight:600;font-size:var(--text-small)}
.busbar .swap{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);background:transparent;color:#fff;cursor:pointer;font-size:1.1rem}
.trip{display:grid;grid-template-columns:150px 200px minmax(0,1fr) 120px 170px auto;gap:var(--s4);align-items:center;border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s4) var(--s6);background:var(--paper)}
.trip+.trip{margin-top:var(--s3)}
.trip-img{padding:0;border:0;background:none;cursor:zoom-in;border-radius:var(--radius);overflow:hidden;display:block;width:100%}
.trip-img img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform var(--dur) var(--ease-out)}
.trip-img:hover img{transform:scale(1.04)}
@media (max-width:900px){
  .trip{grid-template-columns:minmax(0,1fr)}
  .trip-img img{aspect-ratio:16/9}
}
.trip .tm{font-family:var(--font-display);font-weight:800;font-size:1.05rem;line-height:1.2}
.trip .tm small{display:block;font-family:var(--font-body);font-weight:400;color:var(--muted);font-size:.76rem}
.trip .line{display:grid;gap:4px;font-size:.84rem;color:var(--muted)}
.trip .line i{display:block;height:2px;background:var(--line);position:relative}
.trip .line i::before,.trip .line i::after{content:"";position:absolute;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--accent)}
.trip .line i::after{right:0}
.trip .cls{font-family:var(--font-display);font-weight:700;font-size:.92rem}
.trip .cls small{display:block;font-family:var(--font-body);font-weight:400;color:var(--muted);font-size:.76rem}
.trip .pr{font-family:var(--font-display);font-weight:800;font-size:1rem;color:var(--accent-text);text-align:right}
.trip .field{display:grid;gap:4px;font-size:.76rem;color:var(--muted)}
.trip .field select{font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:8px}
.trip .pr small{display:block;font-family:var(--font-body);font-weight:400;color:var(--muted);font-size:.74rem}
.trip .btn{min-height:42px;padding:0 var(--s4)}
.bus-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);margin-top:var(--s8)}
.bus-notes div{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s3) var(--s4);font-size:.88rem}
.bus-notes b{display:block;font-family:var(--font-display);font-size:.86rem}
@media (max-width:1024px){.prop-grid{grid-template-columns:minmax(0,1fr)}.busbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.busbar .swap{display:none}.trip{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.trip .line{grid-column:1/-1}}
@media (max-width:768px){.fac{grid-template-columns:minmax(0,1fr)}.know,.rules,.bus-notes{grid-template-columns:minmax(0,1fr)}.roomtbl thead{display:none}.roomtbl td{display:block;border-top:0}.roomtbl tr{display:block;border-top:1px solid var(--line);padding:6px 0}.busbar{grid-template-columns:minmax(0,1fr)}.trip{grid-template-columns:minmax(0,1fr)}.trip .pr{text-align:left}}

/* Responsive */
@media (max-width:1024px){
  .menu{display:none}
  .nav-cta .btn{display:none}
  .burger{display:flex}
  .tour-grid{grid-template-columns:minmax(0,1fr)}
  .book{position:static}
  .ride-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .colophon{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:768px){
  .wrap{width:min(1180px,100% - 32px)}
  .section{padding:var(--s12) 0}
  .hero{height:clamp(480px,78vh,640px)}
  .hero-caption{padding-bottom:var(--s8)}
  .hero-caption p{font-size:1rem}
  .trust ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ladder-head{display:none}
  .ladder-row{grid-template-columns:minmax(0,1fr)}
  .days{flex-direction:row;align-items:baseline;gap:var(--s3);border-right:0;border-bottom:1px solid var(--line);padding:var(--s3) var(--s4);font-size:1.25rem}
  .cell{border-right:0;padding:var(--s3) var(--s4);grid-template-columns:84px minmax(0,1fr) auto}
  .cell img{width:84px;height:60px}
  .cell+.cell{border-top:1px dashed var(--line)}
  .cell .tier{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);margin-right:6px}
  .reviews{grid-template-columns:minmax(0,1fr)}
  .guides{grid-template-columns:minmax(0,1fr)}
  .form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery{grid-template-columns:minmax(0,1fr);grid-template-rows:none;height:auto}
  .gallery img{height:220px}
  .gallery img:first-child{grid-row:auto;height:260px}
  .gallery img:nth-child(3){display:none}
  .incl{grid-template-columns:minmax(0,1fr)}
  .related{grid-template-columns:minmax(0,1fr)}
  .sticky-bar{display:flex}
  body{padding-bottom:76px}
  .colophon{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:414px){
  .ride-grid{grid-template-columns:minmax(0,1fr)}
  .form{grid-template-columns:minmax(0,1fr)}
  .hero-cta .btn{width:100%}
  .banner .wrap{font-size:.78rem}
  .banner .hide-s{display:none}
  .cell{grid-template-columns:minmax(0,1fr) auto}
  .cell img{display:none}
}
@media (min-width:769px){.cell .tier{display:none}}

/* ===== Phone layout (patch 7) ===== */
.hide-xs{}
.ftoggle{display:none}
.fapply{display:none}
@media (max-width:768px){
  .banner .wrap{font-size:.76rem;white-space:nowrap;gap:var(--s2)}
  .banner .hide-s{display:none}
  .label{font-size:.78rem}
  .btn{white-space:normal;text-align:center;line-height:1.32;padding-top:10px;padding-bottom:10px}
  .see-all{min-height:44px;padding:8px 0}
  .section{padding:var(--s12) 0}
  .section-head{margin-bottom:var(--s6)}
  /* swipe rows instead of tall stacks */
  .trust ul,.ride-grid,.qgrid,.qgrid.five{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding-bottom:var(--s2);scrollbar-width:thin}
  .qgrid,.qgrid.five{grid-auto-columns:46%}
  .trust ul{grid-auto-columns:72%;gap:var(--s3)}
  .trust ul > li,.ride-grid > *,.qgrid > *{scroll-snap-align:start}
  .ride-item{padding:var(--s4)}
  .qcard h3,.qcard h4{font-size:.9rem}
  #tours .btn{width:100%}
  .cell .tier{font-size:.72rem}
  /* list pages: results first, filters behind a button */
  .list-head{gap:var(--s3)}
  .search{flex:1 1 auto;min-width:0}
  .ftoggle{display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 var(--s4);border:1.5px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}
  .ftoggle[aria-expanded="true"]{border-color:var(--accent-text);color:var(--accent-text)}
  .fcount{min-width:22px;height:22px;border-radius:4px;background:var(--accent);color:var(--on-accent);font-size:.74rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
  .presets{flex-wrap:nowrap;overflow-x:auto;padding-bottom:var(--s3);margin-bottom:var(--s4);scrollbar-width:none}
  .presets button{flex:0 0 auto;min-height:40px}
  .filters{display:none}
  .filters.open{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s3);margin-bottom:var(--s4)}
  .fapply{display:flex;width:100%}
  .fopt{min-height:40px}
  .toolbar{position:sticky;top:72px;z-index:5;background:var(--paper);padding-top:var(--s2)}
  .tcard .chip{font-size:.72rem}
  .tcard .facts{font-size:.8rem}
  /* hostel rooms: one compact card per room */
  .roomtbl{border:0}
  .roomtbl tbody{display:grid;gap:var(--s3)}
  .roomtbl tr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--s3)}
  .roomtbl td{display:block;border:0;padding:0}
  .roomtbl td:nth-child(1){grid-column:1 / -1}
  .roomtbl td:nth-child(2){display:none}
  .roomtbl select{min-height:44px}
  .roomtbl .btn{min-height:44px}
  /* bus: class, departure + price, button */
  .trip{grid-template-columns:minmax(0,1fr) auto;gap:var(--s2) var(--s3);padding:var(--s4)}
  .trip .cls{grid-column:1 / -1}
  .trip .line{display:none}
  .trip .field select{min-height:44px}
  .trip .pr{text-align:right}
  .trip .btn{grid-column:1 / -1;width:100%}
  .busbar{gap:var(--s3)}
  .busbar input,.busbar select{min-height:48px}
  /* tour page */
  .book .row2 select,.book input{min-height:48px}
  .colophon{grid-template-columns:minmax(0,1fr)}
  .footer-cols div:first-child{grid-column:1 / -1}
}
@media (max-width:414px){
  .hide-xs{display:none}
  .qgrid,.qgrid.five{grid-auto-columns:62%}
}

/* TripAdvisor-style tour groups */
.tgroup{margin-top:var(--s8)}
.tgroup:first-child{margin-top:0}
.tgroup-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);margin-bottom:var(--s3)}
.tgroup-head h3{font-size:1.1rem}
.tgroup-head p{font-size:var(--text-small);color:var(--muted);margin:0}
.tagrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.tacard{display:grid;grid-template-rows:auto 1fr;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--paper);transition:transform var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}
.tacard:hover{border-color:var(--accent)}.tacard:hover h4 a{text-decoration:underline;text-decoration-color:var(--accent)}
.tacard-img{position:relative;display:block;aspect-ratio:4/3;overflow:hidden}
.tacard-img img{width:100%;height:100%;object-fit:cover}
.tacard-img .dots{position:absolute;left:0;right:0;bottom:8px;text-align:center;color:#fff;font-size:.6rem;letter-spacing:4px;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.tacard-img .tier{position:absolute;left:10px;top:10px;font-family:var(--font-display);font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);padding:4px 8px;border-radius:4px}
.tacard-img .tier.classic{background:var(--forest)}
.tacard .t{padding:var(--s3) var(--s4) var(--s4);display:grid;gap:6px;align-content:start}
.tacard h4{font-family:var(--font-display);font-size:1rem;font-weight:700;margin:0;line-height:1.32}
.tacard h4 a{text-decoration:none;color:inherit}
.tacard h4 a:hover{color:var(--accent-text);text-decoration:underline}
.tacard .rat{display:flex;align-items:center;gap:6px;font-size:.84rem}
.tacard .rat .stars{font-size:.85rem;letter-spacing:1px}
.tacard .rat .n{color:var(--muted)}
.tacard .meta{display:grid;gap:3px;font-size:.82rem;color:var(--muted)}
.tacard .meta span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--leaf);margin-right:7px;vertical-align:2px}
.tacard .free{font-size:.8rem;color:var(--leaf);font-weight:600}
.tacard .pr-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s3);align-items:end;margin-top:auto;padding-top:var(--s2)}
.tacard .pr-row small{display:block;font-size:.72rem;color:var(--muted)}
.tacard .pr-row b{display:block;font-family:var(--font-display);font-size:1.35rem;font-weight:800;line-height:1.1}
.tacard .acts{display:grid;gap:6px}
.tacard .acts .btn{min-height:40px;padding:0 var(--s3);font-size:.84rem}
/* Destinations */
.dgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.dcard{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--paper);display:grid;grid-template-rows:auto 1fr}
.dcard img{width:100%;aspect-ratio:16/10;object-fit:cover}
.dcard .t{padding:var(--s3) var(--s4) var(--s4);display:grid;gap:var(--s2);align-content:start}
.dcard h4{font-family:var(--font-display);font-size:1.02rem;font-weight:700;margin:0}
.dcard p{font-size:.88rem;color:var(--muted);margin:0}
.dcard .guide{font-size:.86rem;font-weight:600;color:var(--accent-text);text-decoration:none}
.dcard .guide:hover{text-decoration:underline}
.dcard .tchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.dcard .tchips span{font-size:.72rem;color:var(--muted);width:100%}
.dcard .tchips a{font-size:.76rem;padding:4px 8px;border-radius:4px;border:1px solid var(--line);text-decoration:none;color:var(--ink);background:var(--paper-2)}
.dcard .tchips a:hover{border-color:var(--accent-text)}
/* FAQ groups */
.faq-g{font-family:var(--font-display);font-size:var(--text-label);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-text);margin:var(--s8) 0 var(--s2)}
.faq-g:first-child{margin-top:0}
/* Rental product page */
.pgrid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--s12);align-items:start;padding-bottom:var(--s12)}
.pgallery{border-radius:var(--radius-lg);overflow:hidden;background:var(--paper-2);aspect-ratio:4/3}
.pgallery img{width:100%;height:100%;object-fit:cover}
.spec{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.spec div{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s3) var(--s4)}
.spec b{display:block;font-family:var(--font-display);font-size:1rem}
.spec span{font-size:.8rem;color:var(--muted)}
.book .chk{display:flex;gap:var(--s2);align-items:flex-start;font-size:var(--text-small)}
.book .chk input{accent-color:var(--accent-text);width:18px;height:18px;margin-top:2px;flex:0 0 auto}
@media (max-width:1024px){.tagrid{grid-template-columns:repeat(2,minmax(0,1fr))}.pgrid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:768px){
  .tagrid{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82%;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding-bottom:var(--s2)}
  .tagrid > *{scroll-snap-align:start}
  
  .dgrid > *{scroll-snap-align:start}
  .spec{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tgroup-head{flex-direction:column;gap:2px}
}

/* Tour page v2: key bar, tabs, PDF-like sections */
.keybar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s3);padding:var(--s4) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:var(--s3)}
.keybar div{display:grid;gap:2px;font-size:.8rem;color:var(--muted)}
.keybar b{font-family:var(--font-display);font-size:.9rem;color:var(--ink)}
.keybar i{display:block;width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-style:normal;font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.tabs{position:sticky;top:72px;z-index:30;background:var(--paper);border-bottom:2px solid var(--line);margin:var(--s4) 0 var(--s6)}
.tabs .wrap{display:flex;gap:0;overflow-x:auto;scrollbar-width:none}
.tabs a{flex:0 0 auto;padding:14px 18px;font-family:var(--font-display);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--accent-text);border-bottom-color:var(--accent-text)}
.tour-body > section{scroll-margin-top:140px;min-width:0}
.tour-body,.tour-body > section > *{min-width:0}
.tour-body .scroll{max-width:100%}
.tour-body h2{padding-bottom:var(--s2);border-bottom:2px solid var(--ink);font-size:1.35rem;text-transform:uppercase;letter-spacing:.02em}
.infotbl{width:100%;border-collapse:collapse;font-size:.92rem}
.infotbl th,.infotbl td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.infotbl th{width:34%;font-family:var(--font-display);font-weight:700;color:var(--ink);background:var(--paper-2)}
.routetbl th{background:var(--forest);color:#fff;font-family:var(--font-display);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.routetbl td:first-child{font-family:var(--font-display);font-weight:700;white-space:nowrap;background:var(--paper-2)}
.photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2)}
.photos figure{margin:0;position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius)}
.photos img{width:100%;height:100%;object-fit:cover}
.photos figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 10px 8px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;font-size:.76rem}
.stay-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.stay-card{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s3) var(--s4);display:grid;gap:4px;font-size:.88rem}
.stay-card .label{font-size:.7rem}
.stay-card b{font-family:var(--font-display)}
.stay-card span{color:var(--muted)}
.stay-card .stay-txt{display:grid;gap:4px;align-content:start}
.stay-card.has-img{padding:0;overflow:hidden;align-content:start;gap:0}
.stay-card.has-img .stay-txt{padding:var(--s3) var(--s4)}
.stay-img{position:relative;display:block;width:100%;aspect-ratio:4/3;padding:0;margin:0;border:0;background:var(--paper-2);cursor:zoom-in;overflow:hidden}
.stay-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.stay-img:hover img{transform:scale(1.03)}
.stay-card .stay-img .gcount{position:absolute;right:8px;bottom:8px;background:rgba(20,32,26,.85);color:#fff;font-family:var(--font-display);font-size:.75rem;font-weight:700;padding:5px 9px;border-radius:4px;display:flex;align-items:center;gap:5px}
.stay-img .gcount svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:2}
.stay-map{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-weight:700;font-size:.84rem;color:var(--accent-text);text-decoration:none}
.stay-map:hover{text-decoration:underline}
.stay-map svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2}
@media (max-width:768px){.stay-card.has-img{grid-template-columns:38% minmax(0,1fr)}.stay-card.has-img .stay-img{aspect-ratio:auto;height:100%;min-height:128px}.stay-card.has-img .stay-txt{padding:var(--s2) var(--s3)}.stay-card .stay-map{font-size:.8rem}}
.dayphotos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);margin:var(--s2) 0 var(--s3)}
.dayphotos figure{margin:0}
.dayphotos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.dayphotos figcaption{font-size:.74rem;color:var(--muted);text-align:center;margin-top:3px}
.days-list .part{display:grid;grid-template-columns:90px minmax(0,1fr);gap:var(--s3);padding:6px 0;border-top:1px dashed var(--line);font-size:.94rem}
.days-list .part b{font-family:var(--font-display);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-text);padding-top:2px}
.days-list .glance{border-top:1px solid var(--line);display:grid;gap:2px;padding-top:var(--s2)}
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--s4) var(--s3);align-items:stretch;padding-top:6px}
.tier-card{position:relative;border:1.5px solid var(--line);border-radius:var(--radius-lg);padding:var(--s5,20px) var(--s4) var(--s4);display:flex;flex-direction:column;gap:6px}
.tier-card.hot{border-color:var(--accent-text)}
.tier-card .tag{position:absolute;top:-10px;left:12px;font-family:var(--font-display);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:4px;background:var(--accent);color:var(--on-accent)}
.tier-card .tag.alt{background:var(--forest);color:#fff}
.tier.classic,.chip.classic{color:#fff}
.tier-card h3{font-family:var(--font-display);font-size:1rem;margin:4px 0 0}
.tier-card .p{font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:var(--accent-text)}
.tier-card .p small{display:block;font-family:var(--font-body);font-weight:400;font-size:.76rem;color:var(--muted)}
.tier-card p{font-size:.86rem;color:var(--muted);margin:0}
.tier-card .btn{min-height:40px;font-size:.86rem;margin-top:auto}
.tier-card p{margin-bottom:var(--s3)}
.breakdown td:not(:first-child),.breakdown th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.breakdown tr.total td{font-family:var(--font-display);font-weight:800;font-size:1.05rem;background:var(--paper-2)}
.perks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.perk{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s3) var(--s4);font-size:.86rem;display:grid;gap:2px}
.perk b{font-family:var(--font-display)}
.perk em{font-style:normal;color:var(--leaf);font-weight:600}
.canceltbl td:nth-child(2){font-family:var(--font-display);font-weight:700;white-space:nowrap}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:st}
.steps li{position:relative;padding:0 0 var(--s4) 44px;counter-increment:st}
.steps li::before{content:counter(st);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--forest);color:#fff;font-family:var(--font-display);font-weight:700;display:flex;align-items:center;justify-content:center}
.steps li::after{content:"";position:absolute;left:14px;top:32px;bottom:0;border-left:2px solid var(--line)}
.steps li:last-child::after{display:none}
.steps b{display:block;font-family:var(--font-display)}
.steps span{font-size:.9rem;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s6)}
.contact-grid .form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:none}
.contact-grid .form label{color:var(--ink)}
.contact-grid .form input,.contact-grid .form select,.contact-grid .form textarea{border-color:var(--line-strong)}
.contact-grid .form-msg{color:var(--muted)}
.clist{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2);font-size:.95rem}
.clist a{text-decoration:none;font-weight:600}
@media (max-width:1024px){.keybar{grid-template-columns:repeat(3,minmax(0,1fr))}.tabs{top:72px}.contact-grid{grid-template-columns:minmax(0,1fr)}.tiers{grid-template-columns:minmax(0,1fr)}}
@media (max-width:768px){.keybar{grid-template-columns:repeat(2,minmax(0,1fr))}.photos{grid-template-columns:repeat(2,minmax(0,1fr))}.stay-cards{grid-template-columns:minmax(0,1fr)}.dayphotos{grid-template-columns:repeat(3,minmax(0,1fr))}.days-list .part{grid-template-columns:minmax(0,1fr);gap:2px}.perks{grid-template-columns:minmax(0,1fr)}.tour-body > section{scroll-margin-top:130px}.contact-grid .form{grid-template-columns:minmax(0,1fr)}}

/* Tour page v3 */
.keybar svg{width:22px;height:22px;stroke:var(--accent-deep);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-bottom:4px}
.gallery{position:relative;cursor:pointer}
.gallery .gcount{position:absolute;right:12px;bottom:12px;background:rgba(20,32,26,.85);color:#fff;font-family:var(--font-display);font-size:.8rem;font-weight:700;padding:8px 12px;border-radius:4px;display:flex;align-items:center;gap:6px}
.gallery .gcount svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2}
.photos figure{cursor:pointer}
.photos .more{position:absolute;inset:0;background:rgba(20,32,26,.55);color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.1rem;display:flex;align-items:center;justify-content:center;z-index:2}
.photos figure:has(.more) figcaption{display:none}
.lb{position:fixed;inset:0;z-index:100;background:rgba(10,14,12,.94);display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:0 var(--s4)}
.lb-fig{margin:0;display:grid;gap:var(--s2);justify-items:center;max-height:100vh;padding:var(--s12) 0}
.lb-fig img{max-width:min(1100px,90vw);max-height:78vh;object-fit:contain;border-radius:6px}
.lb-fig figcaption{color:#fff;font-size:.9rem}
.lb-x,.lb-nav{background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:1.8rem;line-height:1;cursor:pointer}
.lb-x{position:absolute;top:16px;right:16px}
.lb-count{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);color:#fff;font-size:.85rem;font-family:var(--font-display)}
.itin details{border:1px solid var(--line);border-radius:var(--radius);padding:0 var(--s4)}
.itin details+details{margin-top:var(--s2)}
.itin summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:var(--s3);align-items:center;padding:var(--s3) 0}
.itin summary::-webkit-details-marker{display:none}
.itin summary .d{font-family:var(--font-display);font-weight:800;color:var(--accent-text)}
.itin summary .r{font-size:.94rem}
.itin summary .r small{display:block;color:var(--muted);font-size:.78rem}
.itin summary .tg{font-size:.78rem;color:var(--accent-text);font-weight:600;white-space:nowrap}
.itin details[open] summary .tg::after{content:" −"}
.itin details:not([open]) summary .tg::after{content:" +"}
.itin .body{padding:0 0 var(--s4)}
.book textarea{font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:10px 12px;min-height:72px;resize:vertical}
@media (max-width:768px){.lb{grid-template-columns:minmax(0,1fr);padding:0}.lb-nav{position:absolute;top:50%;transform:translateY(-50%)}.lb-prev{left:8px}.lb-next{right:8px}.itin summary{grid-template-columns:minmax(0,1fr);gap:4px}}

/* Policies */
.pol-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--s12);align-items:start;padding:var(--s6) 0 var(--s16)}
.pol-nav{position:sticky;top:88px;display:grid;gap:var(--s2)}
.pol-nav nav{display:grid;gap:2px}
.pol-nav a{padding:10px 12px;border-radius:var(--radius);text-decoration:none;font-weight:500;font-size:.94rem}
.pol-nav a:hover{background:var(--paper-2)}
.pol-nav a.on{background:var(--accent-soft);color:var(--accent-text);font-weight:700}
.pol-body h1{font-size:clamp(1.5rem,3vw,2.1rem)}
.pol-body .upd{font-size:var(--text-small);color:var(--muted)}
.pol-body > section{display:grid;gap:var(--s3)}
.pol-body ul.plain li{margin:0}
.pol-body .infotbl th{width:38%}
/* Itinerary lines */
.days-list .part p{margin:0}
.acts{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.acts li{padding-left:16px;position:relative;font-size:.94rem}
.acts li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.acts li b{font-family:var(--font-display);font-size:.84rem;color:var(--accent-text);margin-right:4px}
/* Booking form */
.book .grp{font-family:var(--font-display);font-size:var(--text-label);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding-top:var(--s2);border-top:1px solid var(--line)}
.book{top:112px}
.book label.field,.book .field{display:flex;flex-wrap:wrap;align-items:center;column-gap:4px;row-gap:4px;font-size:var(--text-small);font-weight:600;min-width:0}
.book .field input,.book .field select,.book .field textarea{flex:0 0 100%;width:100%;min-width:0}
@media (max-width:1024px){.book{max-height:none;overflow:visible}}
.book .row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s3)}
.book .req{color:var(--accent-text)}
@media (max-width:1024px){.pol-grid{grid-template-columns:minmax(0,1fr)}.pol-nav{position:static}.pol-nav nav{display:flex;flex-wrap:wrap;gap:6px}}

/* v13 */
.stars svg{width:14px;height:14px;fill:currentColor;vertical-align:-2px;margin-right:1px}
.crumbs .sep{display:inline-block;width:12px;height:12px;vertical-align:-1px;margin:0 6px;background:currentColor;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 5l7 7-7 7" fill="none" stroke="black" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/contain no-repeat}
.chip-f button svg,.lb-x svg,.cart-close svg{display:block}
.chip-f button svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.cart-close,.lb-x,.lb-nav{border-radius:var(--radius)}
.tagrid{grid-template-columns:repeat(4,minmax(0,1fr))}
.tagrid.slider{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc(25% - 12px);overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none;padding-bottom:var(--s2)}
.tagrid.slider::-webkit-scrollbar{display:none}.tagrid.slider > *{scroll-snap-align:start}
.tacard .acts .btn{min-height:38px;padding:0 10px;font-size:.8rem}
.tacard .meta span{font-size:.76rem}
.dwrap{position:relative}
.dgrid{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:calc(25% - 12px);grid-template-rows:repeat(2,auto);gap:var(--s4) var(--s3);overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none;scroll-behavior:smooth}
.dgrid::-webkit-scrollbar{display:none}
.dgrid > *{scroll-snap-align:start}
.dnav{position:absolute;top:calc(50% - 22px);width:44px;height:44px;border-radius:var(--radius);border:1.5px solid var(--line-strong);background:var(--paper);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;box-shadow:0 2px 10px rgba(43,43,43,.12)}
.dnav:hover{border-color:var(--accent);color:var(--accent-text)}
.dnav[hidden]{display:none}
.dnav.prev{left:-14px}.dnav.next{right:-14px}
.row-slider{margin-inline:2px}
.row-slider .dnav{opacity:.55;transition:opacity .15s ease}
.row-slider:hover .dnav,.row-slider .dnav:focus-visible{opacity:1}
.ddots{display:flex;gap:6px;justify-content:center;margin-top:var(--s1)}
.ddots button{width:28px;height:32px;border:0;background:none;cursor:pointer;padding:0;position:relative}
.ddots button::before{content:"";position:absolute;left:0;right:0;top:50%;margin-top:-2px;height:4px;border-radius:2px;background:var(--line-strong)}
.ddots button.on::before{background:var(--accent)}
.dcard{position:relative;display:grid;gap:6px;text-decoration:none;color:inherit;border:0;background:none;border-radius:0;overflow:visible}
.dcard img{aspect-ratio:4/3;border-radius:var(--radius);object-fit:cover;width:100%}
.dcard .dname{font-size:.86rem;font-weight:600;line-height:1.25}
.dcard .dbtn{position:absolute;left:50%;top:calc(50% - 20px);transform:translate(-50%,-50%) scale(.96);opacity:0;pointer-events:none;background:var(--paper);color:var(--ink);border:1.5px solid var(--ink);border-radius:var(--radius);padding:8px 14px;font-family:var(--font-display);font-size:.8rem;font-weight:700;white-space:nowrap;transition:opacity var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}
.dcard:hover .dbtn,.dcard:focus-visible .dbtn{opacity:1;transform:translate(-50%,-50%) scale(1)}
.dcard:hover img{filter:brightness(.82)}
.dcard img{transition:filter var(--dur) var(--ease-out)}
.qcard .qimg{display:block}.qcard .qimg img{display:block}
.qcard h4 a,.tcard h4 a{color:inherit;text-decoration:none}
.qcard .btn.sm,.tcard .btn.sm{min-height:36px;font-size:.8rem;padding:0 12px;margin-top:8px}
.qcard .btn.sm{width:100%;margin-top:auto}.qcard .t{display:flex;flex-direction:column;gap:2px}.qcard .pr{margin-bottom:6px}
.tcard .acts{display:flex;gap:6px;margin-top:8px}.tcard .acts .btn{flex:1 1 0}
.book{padding:var(--s4);gap:var(--s3)}
.book h3{font-size:1rem}.book .from{font-size:1.35rem}
.book .grp{font-size:.66rem;padding-top:var(--s2)}
.book .field{font-size:.8rem}
.book .field input,.book .field select,.book .field textarea{min-height:38px;padding:7px 10px;font-size:.88rem}
.book .field textarea{min-height:56px}
.book .opt{padding:8px 10px}.book .opt .name{font-size:.88rem}
.book .total{font-size:.88rem}
.book .fine{font-size:.8rem}
.book details.optgrp{border:1px solid var(--line);border-radius:var(--radius);padding:0 10px}
.book details.optgrp summary{cursor:pointer;font-size:.82rem;font-weight:600;padding:9px 0;list-style:none;display:flex;justify-content:space-between;align-items:center}
.book details.optgrp summary::-webkit-details-marker{display:none}
.book details.optgrp summary::after{content:"";width:12px;height:12px;background:currentColor;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 9l6 6 6-6" fill="none" stroke="black" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/contain no-repeat}
.book details.optgrp[open] summary::after{transform:rotate(180deg)}
.book details.optgrp .row2{padding:0 0 10px}
.plan-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:var(--s12);align-items:start}
.plan-grid .form{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}
.contact-side{display:grid;gap:var(--s4);align-content:start;padding:var(--s6);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-lg);background:rgba(255,255,255,.05)}
.contact-side h3{margin:0;font-size:1rem;color:var(--sun)}
.cline{display:flex;gap:12px;align-items:flex-start;text-decoration:none;color:inherit;font-size:.92rem}
.cline svg{width:22px;height:22px;flex:0 0 22px;fill:currentColor;margin-top:2px}
.cline svg[fill="none"]{fill:none}
.cline span{display:grid}.cline b{font-family:var(--font-display);font-size:.9rem}
.cline span{color:var(--forest-muted)}.cline b{color:var(--forest-ink)}
a.cline:hover span{color:var(--forest-ink)}
.social{display:flex;gap:8px;flex-wrap:wrap}
.social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid currentColor;border-radius:var(--radius);color:inherit;opacity:.85}
/* each network in its own colour, still a rectangle with a light radius */
.social a[data-net]{border-color:transparent;color:#fff}
.social a[data-net] svg{stroke:#fff;fill:none}
.social a[data-net="fb"]{background:#1877F2}
.social a[data-net="fb"] svg{fill:#fff;stroke:none}
.social a[data-net="ig"]{background:linear-gradient(45deg,#F58529 0%,#DD2A7B 55%,#8134AF 100%)}
.social a[data-net="tt"]{background:#111}
.social a[data-net="tt"] svg{fill:#fff;stroke:none}
.social a[data-net="yt"]{background:#FF0000}
.social a[data-net="yt"] svg{fill:#fff;stroke:none}
.social a[data-net="ta"]{background:#34E0A1;color:#0a2a1e}
.social a[data-net="ta"] svg{stroke:#0a2a1e}
.social a[data-net="gm"]{background:#4285F4}
.social a[data-net]:hover{filter:brightness(1.08);border-color:transparent}
.footer .social a[data-net]{border-color:transparent}

.social a:hover{opacity:1;background:rgba(255,255,255,.12)}
.social svg{width:20px;height:20px;fill:currentColor}.social svg[fill="none"]{fill:none}
.footer .social a{border-color:var(--forest-muted)}
.lang select{font:inherit;font-family:var(--font-display);font-weight:700;font-size:.82rem;border:1.5px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);color:var(--ink);padding:0 8px;min-height:48px;cursor:pointer}
.lang-note{background:var(--accent-soft);color:var(--accent-text);font-size:.86rem;padding:8px 0;text-align:center}
.about-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--s10);align-items:center;padding:var(--s6) 0 var(--s10)}
.about-hero h1{font-size:clamp(1.7rem,3.4vw,2.4rem);margin:var(--s2) 0}
.about-hero img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-lg)}
.about-body{max-width:820px;padding-bottom:var(--s16)}
.about-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.about-cards a{display:grid;gap:4px;padding:var(--s4);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:inherit}
.about-cards a:hover{border-color:var(--accent-text)}
.about-cards b{font-family:var(--font-display)}.about-cards span{font-size:.88rem;color:var(--muted)}
.about-rules li{margin-bottom:6px}
.about-team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);margin-bottom:var(--s3)}
.about-team img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
@media (max-width:1024px){.tagrid{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-grid{grid-template-columns:minmax(0,1fr)}.about-hero{grid-template-columns:minmax(0,1fr)}.colophon{grid-template-columns:minmax(0,1fr)}.colophon-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.colophon-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.colophon-cols > div:last-child{grid-column:1 / -1}.qgrid.rows,.qgrid.two{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-flow:row;overflow:visible}.qgrid.rows .qcard{grid-template-columns:96px minmax(0,1fr)}.qgrid.two .qcard{grid-template-columns:120px minmax(0,1fr)}.banner .lang{display:none}.plan-grid .form{grid-template-columns:minmax(0,1fr)}.tagrid.slider{grid-auto-columns:82%}.about-cards{grid-template-columns:minmax(0,1fr)}.about-team{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lang select{min-height:44px;padding:0 6px}.nav-cta .lang{display:none}}
@media (max-width:480px){}

/* ---- Điện thoại: sửa theo phản hồi Founder 18/09 ---- */
@media (max-width:760px){
  /* Thẻ tour: mỗi thẻ cao theo nội dung của chính nó, ảnh không bị bóp bẹp */
  .tagrid{align-items:start}
  .tagrid .tacard{grid-template-rows:auto auto;align-self:start}
  .tacard-img{aspect-ratio:16/10;min-height:180px}
  .tacard .t{padding:var(--s3)}
  .tacard .pr-row{margin-top:var(--s2)}
  .tacard .meta{font-size:.84rem}


  /* Thanh dưới cùng gọn lại, chữ không bị bóp */
  .sticky-bar{padding:10px var(--s3);gap:10px}
  .sticky-bar .from b{font-size:1rem}
  .sticky-bar .from span{font-size:.72rem;display:block;line-height:1.25}
  .sticky-bar .btn{min-height:46px}

  /* Dải chữ trên cùng: đọc được, không còn 12px */
  .banner{font-size:.8rem}
}

/* v16 */
.route-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s2)}
.route-chips button{font:inherit;font-size:.82rem;font-weight:500;padding:6px 10px;border-radius:4px;border:1.5px solid var(--line-strong);background:var(--paper);color:var(--ink);cursor:pointer}
.route-chips button.on{background:var(--forest);border-color:var(--forest);color:#fff}
.guide .more,.bl-card .more,.bl-row .more{font-weight:700;color:var(--accent-text);text-decoration:underline;text-underline-offset:3px;font-size:.9rem}
.bl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6);margin:var(--s6) 0 var(--s10)}
.bl-card{display:grid;grid-template-rows:auto 1fr;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.bl-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.bl-card .t{padding:var(--s4);display:grid;gap:6px;align-content:start}
.bl-card .date,.bl-row .date{font-size:var(--text-small);color:var(--muted)}
.bl-card h2{font-size:1.05rem;line-height:1.3;margin:0}.bl-card p{font-size:.9rem;color:var(--muted);margin:0}
.bl-card:hover{border-color:var(--accent)}
.bl-rows{display:grid;border-top:2px solid var(--ink)}
.bl-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:var(--s6);padding:var(--s4) 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.bl-row h2{font-size:1.05rem;margin:0 0 4px}.bl-row p{font-size:.9rem;color:var(--muted);margin:0 0 4px}
.bl-row:hover h2{color:var(--accent-text)}
.post{max-width:980px;padding-bottom:var(--s12)}
.po-head{display:grid;gap:var(--s3);padding:var(--s6) 0 var(--s8)}
.po-head h1{font-size:clamp(1.7rem,3.4vw,2.5rem);max-width:22ch}
.po-meta{color:var(--muted);font-size:var(--text-small)}
.po-hero{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-lg)}
.po-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s10);align-items:start}
.po-toc{position:sticky;top:96px;font-size:.88rem;border-left:2px solid var(--line);padding-left:var(--s4)}
.po-toc b{display:block;font-family:var(--font-display);margin-bottom:var(--s2)}
.po-toc ol{margin:0;padding-left:18px;display:grid;gap:6px}.po-toc a{color:var(--ink);text-decoration:none}.po-toc a:hover{color:var(--accent-text)}
.po-body{font-size:1.05rem;line-height:1.7;max-width:68ch}
.po-body h2{font-size:1.4rem;margin:var(--s8) 0 var(--s3);line-height:1.25}.po-body h3{font-size:1.1rem;margin:var(--s6) 0 var(--s2)}
.po-body p{margin:0 0 var(--s4)}.po-body ul,.po-body ol{margin:0 0 var(--s4);padding-left:22px}.po-body li{margin-bottom:6px}
.po-body img{width:100%;height:auto;border-radius:var(--radius);margin:var(--s2) 0 var(--s4)}
.po-body a{color:var(--accent-text)}
.po-note{background:var(--paper-2);padding:var(--s4);border-radius:var(--radius);font-size:.95rem}
.po-cta{border:1.5px solid var(--accent);border-radius:var(--radius-lg);padding:var(--s5,20px) var(--s5,20px);margin:var(--s8) 0;display:grid;gap:var(--s3)}
.po-cta > b{font-family:var(--font-display);font-size:1.1rem}.po-cta p{margin:0;font-size:.95rem;color:var(--muted)}
.po-cta-tours{display:grid;gap:var(--s2)}
.po-cta-tours a{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--s3);align-items:center;text-decoration:none;color:inherit;padding:6px;border-radius:var(--radius)}
.po-cta-tours a:hover{background:var(--paper-2)}
.po-cta-tours img{width:72px;height:54px;object-fit:cover;border-radius:4px}.po-cta-tours span{display:grid}.po-cta-tours small{color:var(--muted)}
.po-author{display:flex;gap:var(--s4);align-items:center;border-top:1px solid var(--line);padding-top:var(--s5,20px);font-size:.92rem}
.po-author img{width:64px;height:64px;object-fit:cover;border-radius:var(--radius)}.po-author div{display:grid;gap:2px}.po-author span{color:var(--muted)}
.wrap.narrow{max-width:860px;padding-bottom:var(--s16)}
#view-cart .wrap,#view-thanks .wrap,#view-search .wrap,#view-404 .wrap{padding-bottom:var(--s16)}
#cart-page{padding-bottom:var(--s8)}
.carttbl{width:100%;border-collapse:collapse;font-size:.95rem;margin:var(--s4) 0}
.carttbl th,.carttbl td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.carttbl th{font-family:var(--font-display);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.carttbl .num{text-align:right;font-variant-numeric:tabular-nums}.carttbl .rm{background:none;border:0;color:var(--accent-text);text-decoration:underline;cursor:pointer;font:inherit;font-size:.86rem;padding:11px 4px;min-height:44px}
.cart-sum{max-width:460px;margin-left:auto;display:grid;gap:var(--s2);padding-top:var(--s4)}
.cart-sum .line{display:flex;justify-content:space-between;font-size:.95rem}.cart-sum .line.big{font-size:1.1rem;font-weight:700}
.co-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--s12);align-items:start;padding:var(--s6) 0 var(--s16)}
.co-form{display:grid;gap:var(--s3)}.co-form h2{font-size:1.1rem;margin:var(--s4) 0 0}
.co-form .field{display:flex;flex-wrap:wrap;gap:4px;font-size:var(--text-small);font-weight:600}.co-form .field input,.co-form .field textarea{flex:0 0 100%;font:inherit;border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:10px 12px;min-height:44px;background:var(--paper);color:var(--ink)}
.co-form .row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s3)}
.co-form .opts{display:grid;gap:var(--s2)}.co-form .opt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s3);padding:var(--s3);border:1.5px solid var(--line);border-radius:var(--radius);cursor:pointer}
.co-form .opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.co-form .chk{display:flex;gap:var(--s2);align-items:flex-start;font-size:var(--text-small);padding:4px;border-radius:var(--radius)}.co-form .chk input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent-text)}
.co-form .req{color:var(--accent-text)}.co-form .fine{font-size:.8rem;color:var(--muted)}
.co-summary{position:sticky;top:112px;border:1.5px solid var(--line-strong);border-radius:var(--radius-lg);padding:var(--s5,20px);display:grid;gap:var(--s3);background:var(--paper)}
.co-item{display:grid;gap:2px;padding-bottom:var(--s3);border-bottom:1px solid var(--line);font-size:.92rem}.co-item b{font-family:var(--font-display)}
.co-summary .total{display:grid;gap:6px;font-size:.92rem}.co-summary .line{display:flex;justify-content:space-between;gap:var(--s3)}.co-summary .line.big{font-size:1.05rem;font-weight:700;border-top:1px solid var(--line);padding-top:6px}
.thanks{display:grid;gap:var(--s5,20px);padding:var(--s8) 0 var(--s16)}
.thanks h1{font-size:clamp(1.6rem,3vw,2.3rem);max-width:24ch}.thanks h2{font-size:1.2rem;margin-top:var(--s4)}
.thanks-more{display:grid;gap:var(--s3);padding:var(--s5,20px);background:var(--paper-2);border-radius:var(--radius-lg)}.thanks-more > div{display:flex;flex-wrap:wrap;gap:var(--s2)}
@media (max-width:1024px){.po-grid{grid-template-columns:minmax(0,1fr)}.po-toc{position:static;border-left:0;padding-left:0}.co-grid{grid-template-columns:minmax(0,1fr)}.co-summary{position:static}}
@media (max-width:760px){.bl-grid{grid-template-columns:minmax(0,1fr)}.bl-row{grid-template-columns:minmax(0,1fr);gap:4px}.co-form .row2{grid-template-columns:minmax(0,1fr)}.tiers{grid-template-columns:minmax(0,1fr)}}

.book{gap:9px}
.book .field{row-gap:2px}
.book .opt{padding:6px 10px;min-height:40px}.book .opt .name small{font-size:.76rem}
.book .total{gap:2px}.book .total .line{padding:1px 0}
.book .fine{font-size:.76rem;line-height:1.35}
.book .field textarea{min-height:40px}
.book .linkbtn{background:none;border:0;padding:4px 0;font:inherit;font-size:.82rem;font-weight:600;color:var(--accent-text);text-decoration:underline;text-underline-offset:3px;cursor:pointer;justify-self:start}
.book details.optgrp summary{padding:7px 0}

/* v17 */
.nav-search{width:44px;height:48px;border:1.5px solid var(--line-strong);border-radius:var(--radius);background:var(--paper);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.nav-search:hover{border-color:var(--ink)}
.rv-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s10);align-items:start;padding:var(--s6) 0 var(--s4)}
.rv-head h1{font-size:clamp(1.6rem,3vw,2.3rem);max-width:20ch}
.rv-score{display:grid;justify-items:start;gap:4px;padding:var(--s4) var(--s5,20px);border:1.5px solid var(--line-strong);border-radius:var(--radius-lg)}
.rv-score b{font-family:var(--font-display);font-size:2.2rem;line-height:1}.rv-score span{font-size:var(--text-small);color:var(--muted)}
.rv-tour{display:inline-block;margin-top:8px;font-size:.84rem;font-weight:600;color:var(--accent-text)}
.rv-write{margin:var(--s12) 0 var(--s16);padding:var(--s6);background:var(--paper-2);border-radius:var(--radius-lg);display:grid;gap:var(--s3)}
.rv-write h2{font-size:1.2rem}.rv-write p{max-width:60ch;color:var(--muted)}.rv-write > div{display:flex;flex-wrap:wrap;gap:var(--s2)}
.srch{display:flex;gap:var(--s2);margin:var(--s4) 0 var(--s6)}
.srch input{flex:1 1 auto;font:inherit;font-size:1.05rem;border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:12px 14px;min-height:48px;background:var(--paper);color:var(--ink)}
.srch-group{margin-bottom:var(--s6)}.srch-group h2{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s2)}
.srch-hit{display:grid;gap:2px;padding:10px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.srch-hit b{font-family:var(--font-display)}.srch-hit span{font-size:var(--text-small);color:var(--muted)}.srch-hit:hover b{color:var(--accent-text)}
.nf{display:grid;gap:var(--s4);padding:var(--s10) 0 var(--s16);justify-items:start}.nf h1{font-size:clamp(1.7rem,3.4vw,2.5rem)}.nf .srch{width:100%;margin:var(--s2) 0}
.nf-links{display:flex;flex-wrap:wrap;gap:8px}.nf-links a{padding:8px 12px;border:1.5px solid var(--line-strong);border-radius:var(--radius);text-decoration:none;color:var(--ink);font-weight:600;font-size:.9rem}.nf-links a:hover{border-color:var(--accent)}
.tgroup .link-plain{margin-top:var(--s4)}
@media (max-width:760px){.rv-head{grid-template-columns:minmax(0,1fr)}.nav-search{display:none}}
.carttbl input[type=date]{font:inherit;font-size:.9rem;border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:6px 8px;min-height:38px;background:var(--paper);color:var(--ink)}
.carttbl input[type=date] + small{display:block;font-size:.74rem;margin-top:2px}
.carttbl select{font:inherit;font-size:.9rem;border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:6px 8px;min-height:38px;background:var(--paper);color:var(--ink)}
/* Điện thoại: mỗi món là một thẻ, không phải kéo ngang mới thấy tiền */
@media (max-width:700px){
  #cart-page .scroll{overflow:visible}
  .carttbl,.carttbl tbody,.carttbl tr,.carttbl td{display:block;width:auto}
  .carttbl thead{display:none}
  .carttbl tr{border:1.5px solid var(--line);border-radius:var(--radius);padding:var(--s3);margin-bottom:var(--s3)}
  .carttbl td{border:0;padding:4px 0;text-align:left}
  .carttbl td.num{text-align:left}
  .carttbl td[data-nhan]::before{content:attr(data-nhan);display:block;font-family:var(--font-display);
    font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
  .carttbl td[data-nhan="Total"]{display:flex;justify-content:space-between;align-items:baseline;
    border-top:1px solid var(--line);margin-top:6px;padding-top:8px;font-size:1.05rem;font-weight:700}
  .carttbl td[data-nhan="Total"]::before{margin:0;align-self:center}
  .carttbl select,.carttbl input[type=date]{width:100%;max-width:220px}
}

/* v19 buttons */
.tacard .acts,.tcard .acts,.qcard .acts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch;margin-top:8px}
.tacard .acts .btn,.tcard .acts .btn,.qcard .acts .btn{margin-top:0}
.btn.ico{width:48px;min-width:48px;padding:0;flex:0 0 auto}
.btn.ico svg{display:block}
.btn.sm.ico{width:40px;min-width:40px}
.qcard .acts .btn.sm{width:auto}

/* v20 card footer */
.tacard .t,.tcard .t{display:flex;flex-direction:column;gap:6px;height:100%}
.tacard .pr-row,.tcard .pr-row{display:block;margin-top:auto;padding-top:var(--s3);border-top:1px solid var(--line)}
.tacard .pr-row .price,.tcard .pr-row .price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.tacard .pr-row .price b,.tcard .pr-row .price b{font-family:var(--font-display);font-size:1.35rem;font-weight:800;line-height:1.1}
.tacard .pr-row .price small,.tcard .pr-row .price small{font-size:.74rem;color:var(--muted)}
.tacard .acts,.tcard .acts,.qcard .acts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:0}
.tacard .acts .btn,.tcard .acts .btn{width:100%;min-height:42px;padding:0 var(--s3);font-size:.86rem;white-space:nowrap}
.btn.ico,.btn.sm.ico{width:46px;min-width:46px;padding:0}
.qcard .t{display:flex;flex-direction:column;height:100%}
.qcard .pr{margin-top:auto}
.tcard .pr{margin-top:auto}
.results,.tagrid,.qgrid{align-items:stretch}
.results > *,.tagrid > *,.qgrid > *{height:100%}

/* v20 FAQ accordion */
.faq-acc{max-width:820px;display:grid;gap:0;border-top:1px solid var(--line);padding-top:4px}
.faq-acc > details.faq-group{border-bottom:1px solid var(--line)}
.faq-acc > details.faq-group > summary{display:flex;align-items:center;gap:var(--s4);cursor:pointer;list-style:none;padding:var(--s4) 0;font-family:var(--font-display);font-weight:700;font-size:1.02rem}
.faq-acc > details.faq-group > summary::-webkit-details-marker{display:none}
.faq-acc > details.faq-group > summary > span:first-child{flex:1 1 auto}
.faq-acc > details.faq-group > summary small{margin-left:auto;font-family:var(--font-body);font-weight:400;font-size:.8rem;color:var(--muted)}
.faq-acc > details.faq-group > summary::after{content:"";width:14px;height:14px;flex:0 0 14px;background:currentColor;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 9l6 6 6-6" fill="none" stroke="black" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/contain no-repeat;transition:transform var(--dur) var(--ease-out)}
.faq-acc > details.faq-group[open] > summary::after{transform:rotate(180deg)}
.faq-acc > details.faq-group[open] > summary{color:var(--accent-text)}
.faq-inner{padding:0 0 var(--s4)}
.faq-inner details{border-top:1px solid var(--line)}
.faq-inner details summary{font-weight:600;font-size:.95rem}

/* v21 hover button on card images */
.tacard-img,.qimg{position:relative;display:block;overflow:hidden}
.tacard-img img,.qimg img{transition:transform var(--dur) var(--ease-out),filter var(--dur) var(--ease-out)}
.qcard .qimg{position:relative}.prem-badge{position:absolute;top:8px;left:8px;background:var(--accent);color:#fff;font-size:.64rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:4px;z-index:2}
.hoverbtn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) translateY(6px);opacity:0;pointer-events:none;background:var(--paper);color:var(--ink);border:1.5px solid var(--ink);border-radius:var(--radius);padding:9px 16px;font-family:var(--font-display);font-size:.84rem;font-weight:700;white-space:nowrap;transition:opacity var(--dur) var(--ease-out),transform var(--dur) var(--ease-out);z-index:2}
.tacard:hover .hoverbtn,.tcard:hover .hoverbtn,.qcard:hover .hoverbtn,.tacard-img:focus-visible .hoverbtn,.qimg:focus-visible .hoverbtn{opacity:1;transform:translate(-50%,-50%) translateY(0)}
.tacard:hover .tacard-img img,.tcard:hover .qimg img,.qcard:hover .qimg img{transform:scale(1.04);filter:brightness(.86)}
@media (hover: none){.hoverbtn,.dcard .dbtn{display:none}}
@media (max-width:1024px){.dgrid{grid-auto-columns:calc(33.333% - 10px)}.dnav{display:none}}
@media (max-width:760px){.dgrid{grid-auto-columns:calc(50% - 8px)}}

/* Điện thoại: mỗi thẻ cao theo nội dung của nó, không kéo bằng thẻ cao nhất (Founder 18/09) */
@media (max-width:760px){
  /* hàng thẻ chạy ngang thì KHÔNG được giữ lại khai báo 4 cột của máy tính */
  .tagrid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82%;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain}
  .tagrid > *{scroll-snap-align:start;min-width:0}
  .results,.tagrid,.qgrid{align-items:start}
  .results > *,.tagrid > *,.qgrid > *{height:auto}
  .tacard .t,.tcard .t,.qcard .t{height:auto}
  .tacard .pr-row,.tcard .pr,.qcard .pr{margin-top:var(--s3)}
}

/* Danh sách đầy đủ cuối trang danh sách — cho khách dò nhanh và cho Google */
.all-links{padding-top:0}
.all-links h2{font-family:var(--font-display);font-size:1.05rem;margin:0 0 var(--s3)}
.all-links ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px var(--s4);font-size:.9rem}
.all-links a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.all-links a:hover{color:var(--accent-text);border-color:var(--accent)}
@media (max-width:760px){.all-links ul{grid-template-columns:minmax(0,1fr)}}

/* ---- Thu gọn trang chủ trên điện thoại · phương án A, Founder chốt 19/09 ---- */
@media (max-width:760px){
  /* Blog: 3 bài cuộn ngang thay vì xếp dọc (tiết kiệm ~2/3 chiều cao) */
  .guides{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82%;
    overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none;padding-bottom:var(--s2)}
  .guides::-webkit-scrollbar{display:none}
  .guides > *{scroll-snap-align:start;border-top-width:2px}
  .guide p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

  /* Reviews: 2 cái là đủ, còn lại đã có nút "All reviews, by tour" ngay dưới */
  #reviews-home > *:nth-child(n+3){display:none}

  /* FAQ trang chủ: giữ nhóm đầu, các nhóm sau xem ở trang FAQ */
  .faq-acc > details.faq-group:nth-of-type(n+2){display:none}
  .faq-all{margin:0 0 var(--s4)}

  /* Thẻ dịch vụ: bỏ dòng thứ 3 trở đi của phần gạch đầu dòng, ảnh thấp hơn một chút */
  .tacard-img{aspect-ratio:16/9;min-height:0}
  .tacard .t{padding:var(--s3) var(--s3) var(--s3)}


  /* Liên hệ bên cạnh form: WhatsApp và điện thoại là đủ, phần còn lại đã có ở chân trang */
  .contact-side .cline:nth-of-type(n+3){display:none}
  .contact-side h3{margin-bottom:var(--s2)}


  /* Đệm khối quá lớn trên điện thoại: #tours 96px trên, #plan 96px trên+dưới
     — trên màn 844px cao thì 96px trống là gần 1/8 màn hình không có gì */
  #tours{padding-top:var(--s12)}
  #plan{padding:var(--s12) 0}

  /* Liên kết cột chân trang: 18px → 32px cho ngón tay (WCAG 2.5.8) */
  .colophon-cols a,.footer-pol a{display:inline-block;padding-top:7px;padding-bottom:7px}
  .colophon-cols ul{gap:0}


  /* Ô chọn cách trả tiền & ô đồng ý điều khoản: 13px → bấm được */
  .woocommerce-checkout input[type=radio],
  .woocommerce-checkout input[type=checkbox]{width:22px;height:22px;margin-right:8px}
  .woocommerce-checkout .wc_payment_method label,
  .woocommerce-checkout .woocommerce-form__label-for-checkbox{display:flex;align-items:center;min-height:44px}

  /* Form hỏi giá rút gọn */
  .form.form-rut .form-phu{display:none}
  .form-mo{width:100%;min-height:46px;margin-top:var(--s2)}
  .plan .form-mo{color:#fff;border-color:rgba(255,255,255,.55)}
}
/* ── CỤM LIÊN HỆ LUÔN HIỆN: Gọi · WhatsApp · Messenger (Founder 21/09) ──────
   Thay bong bóng Chaty: bản miễn phí của Chaty không mở sẵn được các kênh.
   Tròn, KHÔNG pill (quy tắc thiết kế 18/09). Màu từng nút = màu nhận diện của kênh,
   để khách nhận ra ngay mà không cần đọc chữ. */
#chaty-widget-0,.chaty-widget{display:none !important}
.ali-lienhe{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;flex-direction:column;gap:10px}
.ali-lh{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;text-decoration:none;
  /* viền trắng 2px: nút Gọi màu xanh rừng từng BIẾN MẤT trên các khối nền xanh rừng (thấy 21/09) —
     viền trắng giữ cả 3 nút tách khỏi mọi nền: ảnh, trắng, xanh đậm */
  box-shadow:0 0 0 2px #fff,0 4px 14px rgba(20,32,26,.28),0 1px 3px rgba(20,32,26,.2);transition:transform .15s ease,box-shadow .15s ease}
.ali-lh svg{width:26px;height:26px;display:block}
.ali-lh-goi{background:var(--forest)}
.ali-lh-wa{background:#25D366}
.ali-lh-fb{background:#0084FF}
.ali-lh:hover{transform:translateY(-2px);box-shadow:0 0 0 2px #fff,0 8px 20px rgba(20,32,26,.32),0 2px 4px rgba(20,32,26,.22)}
.ali-lh:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
/* thanh giá dưới cùng CHỈ hiện ở màn ≤768px (cùng mốc với .sticky-bar) — chỉ khi đó mới đứng lên trên nó.
   Trước đây quy tắc này áp mọi cỡ màn ⇒ máy tính bị đẩy cao 88px vô cớ. */
@media (max-width:768px){ body.co-thanh-duoi .ali-lienhe{bottom:84px} }
/* khay giỏ hàng mở ra thì nhường chỗ */
body:has(.cart-panel.open) .ali-lienhe{visibility:hidden}
/* menu điện thoại đang mở thì nhường chỗ (cụm nút đè lên các mục menu — 21/09) */
body:has(#nav.open) .ali-lienhe{visibility:hidden}
@media (max-width:760px){
  .ali-lienhe{right:12px;bottom:12px;gap:8px}
  .ali-lh{width:48px;height:48px}
  .ali-lh svg{width:24px;height:24px}
}
@media (prefers-reduced-motion:reduce){ .ali-lh{transition:none} .ali-lh:hover{transform:none} }
@media print{ .ali-lienhe{display:none} }
/* ── Bỏ phần thừa cuối trang chủ (Founder 21/09) ────────────────────────
   Khối «Talk to us directly» ngay trên đã có ĐỦ WhatsApp · email · giờ mở cửa (cộng Zalo + địa chỉ)
   ⇒ dòng liên hệ ở chân trang CHỈ thừa ở trang chủ; các trang khác không có khối đó nên vẫn giữ.
   #plan và chân trang CÙNG MÀU xanh ⇒ 48+64px đệm dồn lại thành một mảng trống 112px. */
body.home .colophon-say .reach{display:none}
body.home #plan{padding-bottom:var(--s8)}
body.home .footer{padding-top:var(--s10)}
@media (max-width:760px){
  body.home #plan{padding-bottom:var(--s4)}
  body.home .footer{padding-top:var(--s8)}
}
/* ── Nút «See more» căn GIỮA thẻ (Founder 21/09) ──────────────────────
   Trước: [See details ········][giỏ] => nút lệch trái 27–39px so với tâm thẻ.
   Nay: cột trái trống bằng đúng cột giỏ => nút See more đối xứng, nằm giữa. */
.tacard .acts,.tcard .acts,.qcard .acts{grid-template-columns:46px minmax(0,1fr) 46px}
.tacard .acts > a.btn,.tcard .acts > a.btn,.qcard .acts > a.btn{grid-column:2;width:100%;justify-content:center;text-align:center}
.tacard .acts > .btn.ico,.tcard .acts > .btn.ico,.qcard .acts > .btn.ico{grid-column:3}
.tacard .acts > a.btn:only-child,.tcard .acts > a.btn:only-child,.qcard .acts > a.btn:only-child{grid-column:1 / -1}
.hoverbtn{text-align:center;white-space:nowrap}
/* ── Nút «See more» cuối mỗi khu: gọn chữ + căn GIỮA (Founder 21/09) ── */
a.btn.xem-them{display:flex;width:fit-content;min-width:220px;margin-left:auto;margin-right:auto}
@media (max-width:760px){a.btn.xem-them{width:fit-content !important}}
.faq-all:has(.xem-them){text-align:center}
/* ── Menu Tours chỉ còn NHÓM lớn (Founder 21/09): khung hẹp lại, «All 9 tours» trải hàng dưới ── */
.sub-wide.sub-nhom{min-width:460px}
.sub-nhom .sub-all{grid-column:1 / -1;margin-top:0;border-top:1px solid var(--line) !important;border-radius:0;padding-top:12px}
/* ── BANNER ĐIỆN ẢNH (Founder 21/09) ─────────────────────────────────────
   5 ảnh điểm cao nhất kho Marketing (≥1800px). Mỗi ảnh trôi + phóng rất chậm (Ken Burns, 9s),
   hai ảnh hoà tan 1,6s; viền tối (vignette) + dải tối dưới chân giữ chữ trắng đọc được.
   Tự chạy ⇒ có nút TẠM DỪNG (WCAG 2.2.2); máy bật «giảm chuyển động» ⇒ đứng yên ảnh đầu. */
.hero-cine .hero-slides{position:absolute;inset:0}
.hero-cine .hs{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.6s cubic-bezier(.4,0,.2,1);overflow:hidden}
.hero-cine .hs.is-on{opacity:1;z-index:1}
.hero-cine .hs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
  transform:scale(1.02);transform-origin:50% 50%;will-change:transform}
.hero-cine .hs.is-on img{animation:hero-kb 9s cubic-bezier(.25,.1,.25,1) forwards}
.hero-cine .hs:nth-child(2n).is-on img{animation-name:hero-kb2}
.hero-cine .hs:nth-child(3n).is-on img{animation-name:hero-kb3}
@keyframes hero-kb {from{transform:scale(1.02) translate3d(0,0,0)}   to{transform:scale(1.14) translate3d(-2%,-1.5%,0)}}
@keyframes hero-kb2{from{transform:scale(1.14) translate3d(2%,1%,0)} to{transform:scale(1.03) translate3d(0,0,0)}}
@keyframes hero-kb3{from{transform:scale(1.03) translate3d(1.5%,0,0)} to{transform:scale(1.13) translate3d(-1.5%,1%,0)}}
.hero-cine::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(ellipse 120% 90% at 50% 45%,transparent 55%,rgba(8,14,10,.45) 100%)}
.hero-cine::after{z-index:2}
.hero-cine .hero-caption{z-index:3}
.hero-cine .hs figcaption{position:absolute;right:var(--s4);top:var(--s4);z-index:3;color:rgba(255,255,255,.9);font-size:.72rem;
  letter-spacing:.08em;text-transform:uppercase;background:rgba(0,0,0,.3);padding:5px 10px;border-radius:3px;
  opacity:0;transform:translateY(-4px);transition:opacity .8s .6s,transform .8s .6s}
.hero-cine .hs.is-on figcaption{opacity:1;transform:none}
.hero-ctrl{position:absolute;right:max(96px,calc((100% - 1200px) / 2 + var(--s6)));bottom:var(--s6);z-index:4;display:flex;align-items:center;gap:10px}  /* chừa chỗ cụm nút Gọi/WhatsApp cố định bên phải */
.hero-pause{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.25);color:#fff;
  display:grid;place-items:center;cursor:pointer;padding:0}
.hero-pause .i-play{display:none}
.hero-pause[aria-pressed="true"] .i-pause{display:none}
.hero-pause[aria-pressed="true"] .i-play{display:block}
.hero-dots{display:flex;gap:6px}
.hero-dots .hd{width:28px;height:36px;padding:0;border:0;background:none;cursor:pointer;display:grid;align-items:center}
.hero-dots .hd i{display:block;height:3px;border-radius:2px;background:rgba(255,255,255,.4);overflow:hidden;position:relative}
.hero-dots .hd.is-on i::after{content:"";position:absolute;inset:0;background:#fff;transform-origin:left;animation:hero-bar var(--hero-t,6.5s) linear forwards}
.hero-cine.dung .hero-dots .hd.is-on i::after{animation:none;transform:none}
@keyframes hero-bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hero-pause:focus-visible,.hero-dots .hd:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (max-width:760px){
  /* điện thoại: tiêu đề nằm PHẦN TRÊN ảnh (thường là trời sáng) ⇒ phủ tối cả phía trên, chữ trắng mới đọc được */
  .hero-cine::after{background:linear-gradient(180deg,rgba(10,20,14,.55) 0%,rgba(10,20,14,.38) 40%,rgba(10,20,14,.5) 65%,rgba(10,20,14,.82) 100%)}
  /* điện thoại: tiêu đề chiếm gần hết khung ⇒ chỉ giữ nút tạm dừng nhỏ ở góc phải trên (chỗ trống), bỏ thanh chấm + chú thích */
  .hero-ctrl{right:12px;bottom:auto;top:12px}
  .hero-dots,.hero-cine .hs figcaption{display:none}
  .hero-pause{width:32px;height:32px}
}
@media (prefers-reduced-motion:reduce){
  .hero-cine .hs{transition:none}
  .hero-cine .hs.is-on img{animation:none;transform:none}
  .hero-dots .hd.is-on i::after{animation:none;transform:none}
}
/* ── Thẻ vé xe trên điện thoại (Founder 21/09): trước chia 2 cột ⇒ ô chọn giờ (chữ dài) và khối giá
   dạng khoảng «450,000 ₫ – 800,000 ₫» chen chung một hàng, ĐÈ lên nhau. Nay một cột: ảnh · hạng · giờ · giá · nút. */
@media (max-width:760px){
  .trip{grid-template-columns:minmax(0,1fr) !important}
  .trip > *{grid-column:1 / -1 !important;min-width:0}
  .trip .pr{text-align:left}
  .trip .field select{width:100%;min-width:0;text-overflow:ellipsis;-webkit-appearance:none;appearance:none;height:44px;
    padding:0 34px 0 12px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center/16px;font-size:16px}
}
/* ── Form tìm vé xe trên điện thoại (Founder 21/09): trước 4 ô xếp dọc + nút, cao ~800px, và
   nút ĐẢO CHIỀU bị ẩn ở ≤1024px. Nay 3 hàng: [Từ ⇄ Đến] · [Ngày | Số khách] · [Search]. */
@media (max-width:1024px){
  .busbar{grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr) !important;
    grid-template-areas:"a s b" "d d p" "k k k";gap:10px 8px !important;padding:14px !important}
  .busbar > :nth-child(1){grid-area:a}
  .busbar > .swap{grid-area:s;display:grid !important;place-items:center;width:40px;height:40px;padding:0;align-self:end;margin-bottom:3px}
  .busbar > :nth-child(3){grid-area:b}
  .busbar > :nth-child(4){grid-area:d}
  .busbar > :nth-child(5){grid-area:p}
  .busbar > button[type=submit]{grid-area:k;min-height:46px}
  .busbar label{font-size:.72rem}
  .busbar input,.busbar select{min-height:46px !important;min-width:0;width:100%}
  /* iPhone thật (21/09): ô ngày có độ rộng + cao TỐI THIỂU riêng ⇒ tràn sang ô Passengers, cao hơn ô cạnh ⇒ nhãn lệch.
     Ô lưới mặc định min-width:auto ⇒ chịu phình theo ô ngày. Ép mọi ô co được + cùng cao 46px. */
  .busbar > *{min-width:0}
  .busbar label{min-width:0;overflow:hidden}
  .busbar input,.busbar select,.busbar .ngay-en{box-sizing:border-box;height:46px !important;max-width:100%}
  .busbar input[type=date]{-webkit-appearance:none;appearance:none;display:block;min-width:0 !important;max-width:100%;line-height:46px;padding-top:0;padding-bottom:0}
  .busbar input[type=date]::-webkit-date-and-time-value{text-align:left}
}
.busbar .swap:focus-visible{outline:2px solid #fff;outline-offset:2px}
.busbar .swap.quay svg{transform:rotate(180deg);transition:transform .25s}

/* ── Ô NGÀY LUÔN TIẾNG ANH (Founder 21/09): ô ngày gốc do máy tự vẽ theo NGÔN NGỮ CỦA MÁY
   (iPhone tiếng Việt ⇒ «20 thg 10, 2026») bất kể web tiếng Anh. Giữ ô gốc để bấm mở lịch,
   phủ lên một dòng chữ do web định dạng: «Tue, 20 Oct 2026». */
.ngay-en{position:relative;display:block;width:100%;min-width:0}
.ngay-en > input[type=date]{color:transparent !important;-webkit-text-fill-color:transparent;width:100%;min-width:0 !important;max-width:100%;box-sizing:border-box;-webkit-appearance:none;appearance:none;display:block}
.ngay-en > input[type=date]::-webkit-datetime-edit{color:transparent;opacity:0}
.ngay-en > input[type=date]:focus{color:transparent !important}
.ngay-en-chu{position:absolute;top:50%;transform:translateY(-50%);right:34px;pointer-events:none;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;color:var(--ink);font:inherit;line-height:1.2}
.ngay-en-chu.trong{color:var(--muted)}
/* ── Soát bản điện thoại các trang dịch vụ (Founder 21/09) ──────────────────────
   ① Khung đặt tour, mục «Optional»: 2 cột quá hẹp ⇒ nhãn xuống dòng, 2 ô lệch nhau, ô chọn phòng cắt chữ «Dormitory be…»
   ② Ô chọn (select) iOS nền XÁM, lệch tông ô nhập trắng ngay cạnh ⇒ vẽ lại: nền trắng + mũi tên riêng
   ③ Nút chọn tuyến trang vé xe cao 35px ⇒ 44px (đủ cho ngón tay) */
@media (max-width:560px){
  details.optgrp .row2{grid-template-columns:minmax(0,1fr) !important}
}
@media (max-width:1024px){
  main select:not([multiple]){-webkit-appearance:none;appearance:none;background-color:#fff;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 10px center;background-size:16px;padding-right:34px !important;text-overflow:ellipsis}
  .route-chips button{min-height:44px}
  .linkbtn{min-height:44px;display:inline-flex;align-items:center}
}
/* ── Cụm Gọi/WhatsApp/Messenger TẠM ẨN khi khách đang ở khung đặt chỗ (Founder 21/09):
   trước cụm nút đè mép phải giá + nút «Add to cart». Cuộn qua khỏi khung là hiện lại. Chỉ điện thoại. */
@media (max-width:768px){
  .ali-lienhe{transition:opacity .25s ease,visibility .25s}
  body.dang-dat .ali-lienhe{opacity:0;visibility:hidden;pointer-events:none}
}
#main{display:block;height:0}
.skip-link{position:absolute;left:0;top:0;z-index:200;background:var(--forest);color:#fff;padding:12px 18px;border-radius:0 0 var(--radius) 0;font-weight:700;clip-path:inset(100% 100% 100% 100%);transform:translateY(-101%)}
.skip-link:focus{clip-path:none;transform:none}
/* WooCommerce checkout, in the 2026 design */
.woo-checkout{margin-top:var(--s5)}
.woo-checkout h3{font-family:var(--font-display);font-size:1.15rem;margin:0 0 var(--s3)}
.woo-checkout .form-row{display:block;margin:0 0 var(--s3)}
.woo-checkout label{display:block;font-weight:600;font-size:.86rem;margin-bottom:6px}
.woo-checkout input.input-text,.woo-checkout textarea,.woo-checkout .select2-selection,.woo-checkout select{
  width:100%;min-height:46px;padding:10px 12px;border:1.5px solid var(--line-strong);border-radius:var(--radius);
  background:var(--paper);color:var(--ink);font:inherit}
.woo-checkout textarea{min-height:90px}
.woo-checkout .col2set{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.woo-checkout .woocommerce-billing-fields__field-wrapper{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s3)}
.woo-checkout #billing_email_field,.woo-checkout #billing_phone_field{grid-column:span 1}
.woo-checkout table.shop_table{width:100%;border-collapse:collapse;border:1.5px solid var(--line);border-radius:var(--radius);overflow:hidden}
.woo-checkout table.shop_table th,.woo-checkout table.shop_table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
.woo-checkout table.shop_table td.product-total,.woo-checkout table.shop_table th:last-child{text-align:right}
.woo-checkout tr.order-total td,.woo-checkout tr.order-total th{font-weight:800;font-size:1.05rem}
.woo-checkout #payment{margin-top:var(--s4);border:1.5px solid var(--line);border-radius:var(--radius);padding:var(--s4);background:var(--paper-2)}
.woo-checkout #payment ul.payment_methods{list-style:none;margin:0 0 var(--s3);padding:0;display:grid;gap:var(--s2)}
.woo-checkout #payment li{border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:10px 12px;background:var(--paper)}
.woo-checkout #payment label{display:inline;font-weight:600}
.woo-checkout #place_order{width:100%;min-height:52px;border:0;border-radius:var(--radius);background:var(--accent);
  color:#1b1b1b;font-family:var(--font-display);font-weight:800;font-size:1rem;cursor:pointer}
.woo-checkout #place_order:hover{filter:brightness(.96)}
.woo-checkout .woocommerce-privacy-policy-text p,.woo-checkout .woocommerce-terms-and-conditions-wrapper{font-size:.85rem;color:var(--ink-2)}
@media (max-width:760px){.woo-checkout .woocommerce-billing-fields__field-wrapper{grid-template-columns:1fr}}
/* Woo's own stylesheet is specific, so match it */
.woocommerce-checkout #payment div.payment_box,.woo-checkout #payment div.payment_box{
  background:var(--paper-2);border:1.5px solid var(--line);border-radius:var(--radius);
  color:var(--ink);padding:12px 14px;margin:10px 0 0;font-size:.9rem}
.woocommerce-checkout #payment div.payment_box::before,.woo-checkout #payment div.payment_box::before{display:none}
.woo-checkout .woocommerce-terms-and-conditions-wrapper{margin-top:var(--s3)}
.woo-checkout .woocommerce-privacy-policy-text{font-size:.85rem;color:var(--ink-2)}
.woo-checkout .wc_payment_method img{max-height:22px;width:auto;margin-left:4px}

/* Bố cục hai cột: trái điền thông tin, phải là hoá đơn dính theo màn hình */
.woo-checkout form.checkout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);
  gap:var(--s5) var(--s6);align-items:start}
.woo-checkout form.checkout #customer_details{grid-column:1;grid-row:1 / span 2}
.woo-checkout form.checkout #order_review_heading{grid-column:2;grid-row:1;margin:0}
.woo-checkout form.checkout #order_review{grid-column:2;grid-row:2;position:sticky;top:96px;
  border:1.5px solid var(--line);border-radius:var(--radius);padding:var(--s4);background:var(--paper-2)}
.woo-checkout form.checkout .col2set{display:block}
.woo-checkout form.checkout .col-1,.woo-checkout form.checkout .col-2{width:auto;float:none}
.woo-checkout .woocommerce-billing-fields h3,.woo-checkout .woocommerce-additional-fields h3,
.woo-checkout #order_review_heading{font-size:1rem;letter-spacing:.01em}
.woo-checkout table.shop_table{font-size:.9rem;border:0}
.woo-checkout table.shop_table th,.woo-checkout table.shop_table td{padding:7px 0}
.woo-checkout table.shop_table thead{display:none}
.woo-checkout tr.order-total td,.woo-checkout tr.order-total th{font-size:1.15rem;padding-top:10px;border-top:2px solid var(--ink)}
.woo-checkout #payment{margin-top:var(--s3);padding:0;border:0;background:transparent}
.woo-checkout .product-name{font-weight:600}
.woo-checkout dl.variation,.woo-checkout .wc-item-meta{margin:4px 0 0;font-size:.82rem;color:var(--ink-2)}
.woo-checkout .wc-item-meta li{margin:2px 0}
.woo-checkout #place_order{min-height:48px;font-size:.98rem}
@media (max-width:980px){
  .woo-checkout form.checkout{grid-template-columns:1fr;gap:var(--s4)}
  /* điện thoại: hoá đơn lên trước để thấy ngay phải trả bao nhiêu */
  .woo-checkout form.checkout #order_review_heading{grid-column:1;grid-row:1}
  .woo-checkout form.checkout #order_review{grid-column:1;grid-row:2;position:static}
  .woo-checkout form.checkout #customer_details{grid-column:1;grid-row:3}
}

/* ── Dải bước thanh toán ─────────────────────────────────────────────
   Khách luôn thấy mình đang ở đâu. Ba bước, vì giỏ hàng nay nằm luôn
   trong trang thanh toán (Founder chốt 20/09/2026). */
.ali-buoc{display:flex;list-style:none;margin:0 0 var(--s6);padding:0;gap:0;counter-reset:b}
.ali-buoc li{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:6px;
  position:relative;font-size:.82rem;color:var(--muted);text-align:center;min-width:0}
.ali-buoc li::before,.ali-buoc li::after{content:"";position:absolute;top:15px;height:2px;background:var(--line)}
.ali-buoc li::before{left:0;right:50%;margin-right:20px}
.ali-buoc li::after{left:50%;right:0;margin-left:20px}
.ali-buoc li:first-child::before,.ali-buoc li:last-child::after{display:none}
.ali-buoc .so{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  background:var(--paper);border:2px solid var(--line);color:var(--muted);
  font-family:var(--font-display);font-weight:700;font-size:.9rem;position:relative;z-index:1}
.ali-buoc .ten{line-height:1.25;max-width:12ch}
.ali-buoc li.xong .so{background:var(--forest);border-color:var(--forest);color:#fff}
.ali-buoc li.xong::before,.ali-buoc li.xong::after{background:var(--forest)}
.ali-buoc li.xong{color:var(--ink)}
.ali-buoc li.dang .so{background:var(--accent);border-color:var(--accent);color:#fff;
  box-shadow:0 0 0 4px rgba(244,126,32,.18)}
.ali-buoc li.dang{color:var(--ink);font-weight:700}
.ali-buoc li.dang::before{background:var(--forest)}
@media (max-width:560px){
  .ali-buoc{margin-bottom:var(--s4)}
  .ali-buoc li{font-size:.72rem}
  .ali-buoc .ten{max-width:9ch}
  .ali-buoc li::before{margin-right:18px}
  .ali-buoc li::after{margin-left:18px}
}

/* ── Sửa món ngay trong bảng đơn hàng (giỏ hàng đã gộp vào đây) ───── */
.ali-sua{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:8px}
.ali-sua-o{display:grid;gap:3px;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ali-sua select,.ali-sua input[type=date]{font:inherit;font-size:.9rem;color:var(--ink);background:#fff;
  border:1px solid var(--line-strong);border-radius:var(--radius);padding:7px 9px;min-height:40px;max-width:100%}
.ali-sua .ali-xoa{background:none;border:0;color:var(--accent-text);text-decoration:underline;
  text-underline-offset:3px;cursor:pointer;font:inherit;font-size:.82rem;padding:10px 2px;min-height:40px}
.ali-sua .ali-xoa:hover{color:var(--ink)}
@media (max-width:560px){
  .ali-sua{gap:6px}
  .ali-sua select,.ali-sua input[type=date]{font-size:16px}   /* iPhone khỏi tự phóng to */
}

/* Hàng sửa món: nhãn LUÔN nằm trên ô, hai ô thẳng hàng nhau.
   Trước đây «GUESTS» nằm trên còn «DATE» nằm cạnh — nhìn lệch. */
.ali-sua{display:grid;grid-template-columns:auto auto 1fr;align-items:end;gap:10px}
.ali-sua .ali-xoa{justify-self:start;grid-column:1/-1;margin-top:2px}
@media (min-width:520px){ .ali-sua .ali-xoa{grid-column:auto;justify-self:end;margin-top:0} }

/* 🔴 Khung đơn hàng tính width:100% RỒI CỘNG thêm đệm 16px và viền 1,5px
   → rộng 396px trong màn 390px, cắt mất cột tiền bên phải (thấy trên điện thoại 20/09).
   Bắt mọi thứ trong trang thanh toán tính đệm vào bên trong bề rộng. */
.woo-checkout,.woo-checkout *{box-sizing:border-box}
.woo-checkout form.checkout #order_review{max-width:100%}
.woo-checkout table.shop_table{max-width:100%}
/* Cột chữ co lại và xuống dòng; cột TIỀN giữ nguyên một dòng, không bị cắt.
   ⚠️ Đừng dùng table-layout:fixed ở đây — nó ép cột tiền bé lại rồi số tràn ra ngoài. */
.woo-checkout table.shop_table th,
.woo-checkout table.shop_table td.product-name{overflow-wrap:anywhere;word-break:break-word}
.woo-checkout table.shop_table td.product-total,
.woo-checkout table.shop_table tfoot td{white-space:nowrap;text-align:right}
@media (max-width:560px){
  .woo-checkout form.checkout #order_review{padding:var(--s3)}
  .woo-checkout table.shop_table{font-size:.86rem}
}

/* Ô chọn số khách bị cột bảng bóp còn 26px — không đọc nổi, không bấm nổi. */
.ali-sua .ali-qty{min-width:68px}
.ali-sua .ali-date{min-width:150px}
.ali-sua{max-width:100%}

/* 🔴 GỐC của chuyện cột tiền bị cắt: #order_review là Ô LƯỚI, mà ô lưới mặc định
   KHÔNG chịu co nhỏ hơn nội dung (min-width:auto). Ô nhập bên trong đẩy nó rộng ra
   khỏi màn hình. Cho phép co lại, rồi trên màn hẹp thì xếp dọc hàng sửa. */
.woo-checkout form.checkout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.woo-checkout form.checkout > *{min-width:0}
@media (max-width:980px){
  .woo-checkout form.checkout{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  .ali-sua{grid-template-columns:minmax(0,1fr)}
  .ali-sua .ali-qty,.ali-sua .ali-date{min-width:0;width:100%}
  .ali-sua .ali-xoa{grid-column:1;justify-self:start}
}

/* ── FORM THÔNG TIN THANH TOÁN — sửa trình bày (Founder báo 21/09) ──────────
   Gốc lỗi:
   · khung là lưới 2 cột, nhưng WooCommerce ép .form-row-first/.form-row-last
     «width:47%; float:left» BÊN TRONG mỗi ô ⇒ ô Họ/Tên còn 47% của NỬA cột = 130px
   · ô «wide» (Quốc gia) không trải hết hàng ⇒ nửa hàng, Email lẻ loi
   · CSS của WooCommerce cụ thể hơn nên thắng ở ô chữ, nhưng KHÔNG thắng ở ô
     Quốc gia (select2) ⇒ ô Quốc gia cao hơn, viền, bo góc khác hẳn các ô khác
   Bố cục chốt:  Họ | Tên  ·  Quốc gia (cả hàng)  ·  Điện thoại | Email  ·  Ghi chú */
.woo-checkout .woocommerce-billing-fields__field-wrapper > .form-row{
  width:auto !important;float:none !important;margin-right:0 !important;clear:none !important;min-width:0}
.woo-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first{grid-column:1}
.woo-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last{grid-column:2}
.woo-checkout .woocommerce-billing-fields__field-wrapper > #billing_country_field{grid-column:1 / -1}
.woo-checkout .woocommerce-billing-fields__field-wrapper > #billing_phone_field{grid-column:1}
.woo-checkout .woocommerce-billing-fields__field-wrapper > #billing_email_field{grid-column:2}

/* Mọi ô cùng một kiểu — đủ cụ thể để thắng stylesheet của WooCommerce */
.woo-checkout form.checkout .form-row input.input-text,
.woo-checkout form.checkout .form-row textarea,
.woo-checkout form.checkout .form-row select,
.woo-checkout form.checkout .form-row .select2-container .select2-selection--single{
  box-sizing:border-box;width:100%;height:48px;min-height:48px;margin:0;
  padding:0 14px;border:1.5px solid var(--line-strong);border-radius:var(--radius);
  background:var(--paper);color:var(--ink);font:inherit;font-size:16px;line-height:1.3;box-shadow:none}
.woo-checkout form.checkout .form-row textarea{height:auto;min-height:96px;padding:12px 14px;resize:vertical}
.woo-checkout form.checkout .form-row input.input-text:focus,
.woo-checkout form.checkout .form-row textarea:focus,
.woo-checkout form.checkout .form-row .select2-container--focus .select2-selection--single,
.woo-checkout form.checkout .form-row .select2-container--open .select2-selection--single{
  border-color:var(--accent);outline:3px solid rgba(244,126,32,.22);outline-offset:0}
.woo-checkout form.checkout .form-row .select2-container{width:100% !important}
.woo-checkout form.checkout .form-row .select2-selection--single{display:flex;align-items:center}
.woo-checkout form.checkout .form-row .select2-selection__rendered{padding:0 !important;line-height:1.3 !important;color:var(--ink)}
.woo-checkout form.checkout .form-row .select2-selection__arrow{height:100% !important;top:0 !important;right:10px !important}
.woo-checkout form.checkout .form-row .woocommerce-input-wrapper{display:block;width:100%}
.woo-checkout form.checkout .form-row label{display:block;margin:0 0 6px;font-size:.88rem;font-weight:600;color:var(--ink)}
.woo-checkout form.checkout .form-row .required{color:#c0392b;text-decoration:none}
.woo-checkout form.checkout .form-row{margin:0 0 var(--s4)}
.woo-checkout .woocommerce-billing-fields h3,.woo-checkout .woocommerce-additional-fields h3{margin:0 0 var(--s4)}
.woo-checkout .woocommerce-additional-fields{margin-top:var(--s2)}

/* Điện thoại: Họ | Tên vẫn đứng cạnh nhau (tên ngắn, đỡ cuộn); còn lại một cột */
@media (max-width:760px){
  .woo-checkout .woocommerce-billing-fields__field-wrapper{grid-template-columns:repeat(2,minmax(0,1fr))}
  .woo-checkout .woocommerce-billing-fields__field-wrapper > #billing_phone_field,
  .woo-checkout .woocommerce-billing-fields__field-wrapper > #billing_email_field{grid-column:1 / -1}
}

/* ── BẢNG ĐƠN GỌN + CHỌN LẠI HẠNG (Founder 21/09) ─────────────────────────
   Trước: mỗi món ~290px trên điện thoại — ô Guests và ô Date xếp chồng, nút Remove một dòng riêng,
   giá lơ lửng giữa hàng, dòng chi tiết lặp lại giá và số tiền bị ngắt «6,500 / ,000 ₫».
   Nay: tên + giá một hàng · [Hạng] cả hàng · [Số lượng | Ngày | 🗑] một hàng.
   Bảng đổi hẳn sang khối (bỏ bố cục bảng) ⇒ ô sửa trải hết bề ngang, cột tiền không bóp nữa. */
.woo-checkout table.woocommerce-checkout-review-order-table,
.woo-checkout table.woocommerce-checkout-review-order-table > thead,
.woo-checkout table.woocommerce-checkout-review-order-table > tbody,
.woo-checkout table.woocommerce-checkout-review-order-table > tfoot{display:block;width:100%}
.woo-checkout table.woocommerce-checkout-review-order-table > thead{display:none}
.woo-checkout table.woocommerce-checkout-review-order-table tr{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:10px 0;border-bottom:1px solid var(--line)}
.woo-checkout table.woocommerce-checkout-review-order-table tr > *{display:block;padding:0;border:0;background:none}
.woo-checkout table.woocommerce-checkout-review-order-table tbody tr.cart_item{position:relative;display:block;padding:14px 0}
.woo-checkout table.woocommerce-checkout-review-order-table tbody tr.cart_item:first-child{padding-top:4px}
.woo-checkout table.woocommerce-checkout-review-order-table td.product-name{width:100%}
.woo-checkout table.woocommerce-checkout-review-order-table td.product-total{position:absolute;top:14px;right:0;font-weight:700}
.woo-checkout table.woocommerce-checkout-review-order-table tbody tr.cart_item:first-child td.product-total{top:4px}
.woo-checkout .ali-ten{display:block;padding-right:128px;font-weight:700;line-height:1.35}
.woo-checkout table.woocommerce-checkout-review-order-table tfoot th{text-align:left;font-weight:600}
.woo-checkout table.woocommerce-checkout-review-order-table tfoot td{text-align:right;white-space:nowrap}
.woo-checkout table.woocommerce-checkout-review-order-table tr.order-total{border-bottom:0}
.woo-checkout table.woocommerce-checkout-review-order-table tr.order-total th,
.woo-checkout table.woocommerce-checkout-review-order-table tr.order-total td{font-size:1.1rem;font-weight:800}
/* dòng chi tiết (chuyến xe kèm, phòng đêm trước…): nhãn trái, tiền phải, tiền KHÔNG ngắt dòng */
.woo-checkout dl.variation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;margin:8px 0 0}
.woo-checkout dl.variation dt,.woo-checkout dl.variation dd{float:none !important;margin:0;padding:0;font-weight:400}
.woo-checkout dl.variation dd p{margin:0;white-space:nowrap}
/* hàng sửa món */
.woo-checkout .ali-sua{display:grid !important;grid-template-columns:88px minmax(0,1fr) 44px;gap:10px;align-items:end;margin-top:10px}
.woo-checkout .ali-sua .ali-sua-hang{grid-column:1 / -1}
.woo-checkout .ali-sua .ali-qty,.woo-checkout .ali-sua .ali-date,.woo-checkout .ali-sua .ali-hang{width:100%;min-width:0;min-height:44px;font-size:16px}
.woo-checkout .ali-sua .ali-xoa{grid-column:3 !important;justify-self:end;display:grid;place-items:center;width:44px;height:44px;min-height:44px;
  padding:0;margin:0;border:1px solid var(--line-strong);border-radius:var(--radius);background:#fff;color:var(--muted);text-decoration:none}
.woo-checkout .ali-sua .ali-xoa:hover{color:#c0392b;border-color:#c0392b}
.woo-checkout .ali-sua .ali-xoa:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
/* chỉnh lượt 2 (đo trên web 21/09):
   · WooCommerce in «&nbsp;» sau tên món ⇒ thành một dòng trống 21px ⇒ tên thành inline-block, &nbsp; nằm cùng dòng
   · nhãn ô có margin-bottom 6px ⇒ nút thùng rác lệch thấp 6px so với ô
   · vạch kẻ cũ của ô bảng (border-top) còn sót ⇒ vạch đứt khúc ở phần tổng tiền */
.woo-checkout .ali-ten{display:inline-block;width:calc(100% - 132px);padding-right:0;vertical-align:top}
.woo-checkout .ali-sua .ali-sua-o{display:grid;gap:4px;margin:0}
.woo-checkout table.woocommerce-checkout-review-order-table tr > th,
.woo-checkout table.woocommerce-checkout-review-order-table tr > td{border:0 !important}

/* ── SỬA THEO SAFARI iPHONE (Founder báo 21/09, soi bằng nhân WebKit) ──────────
   Chrome mô phỏng KHÔNG thấy các lỗi này — iOS tự vẽ ô chọn/ô ngày theo kiểu riêng:
   · ô chọn nền XÁM gradient, cao 46px; ô ngày cao 44px ⇒ hàng ô lệch, nhãn DATE tụt 2px
   · ô ngày chữ căn giữa, rộng theo nội dung
   ⇒ tắt kiểu mặc định của iOS, vẽ lại: nền trắng, mũi tên riêng, cùng cao 44px. */
.woo-checkout .ali-sua select,
.woo-checkout .ali-sua input[type=date]{-webkit-appearance:none;appearance:none;box-sizing:border-box;
  height:44px;min-height:44px;margin:0;padding:0 12px;line-height:44px;background-color:#fff;color:var(--ink);
  border:1px solid var(--line-strong);border-radius:var(--radius);font-size:16px;display:block;width:100%;min-width:0}
.woo-checkout .ali-sua select{padding-right:34px;text-overflow:ellipsis;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;background-size:16px}
.woo-checkout .ali-sua input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}
.woo-checkout .ali-sua input[type=date]::-webkit-calendar-picker-indicator{opacity:.6}
.woo-checkout .ali-sua .ali-sua-o > span{line-height:1.2;height:15px}
/* dòng «I have read and agree…»: chữ xuống dòng phải thẳng hàng với chữ, không chui xuống dưới ô tick */
.woo-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox{display:flex !important;align-items:flex-start;gap:10px;margin:0;line-height:1.45}
.woo-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox input[type=checkbox]{flex:0 0 22px;width:22px;height:22px;margin:0}
.woo-checkout .woocommerce-terms-and-conditions-wrapper .form-row{margin:0;padding:0}
.woo-checkout .woocommerce-privacy-policy-text:empty{display:none}
/* khoảng trống: margin khối thanh toán cộng dồn với khoảng lưới 16px ⇒ 44px trống */
.woo-checkout #payment{margin-top:0}
.woo-checkout #payment .place-order{padding:12px 0 0 !important;margin-bottom:0}
.woo-checkout #payment .woocommerce-terms-and-conditions-wrapper{margin:0 0 12px}
.woo-checkout #payment #place_order{margin-bottom:0}
/* cụm nút Gọi/WhatsApp/Messenger đè lên ô hạng, nút xoá, giá trên điện thoại ⇒ ẩn RIÊNG ở trang thanh toán
   (số hotline vẫn bấm gọi được ở dải trên cùng) */
@media (max-width:768px){ body.woocommerce-checkout .ali-lienhe{display:none} }
/* lượt 2 Safari: dấu * bị flex đẩy ra mép phải ⇒ gắn liền sau chữ; nút Place order dính câu Cancellation; dư đệm sau ô ghi chú */
.woo-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox > abbr.required{display:none}
.woo-checkout .woocommerce-terms-and-conditions-checkbox-text::after{content:" *";color:#c0392b;font-weight:700}
.woo-checkout #payment{padding-bottom:var(--s6)}
.woo-checkout .woocommerce-additional-fields .form-row:last-child{margin-bottom:0}

/* ══ TRANG NHẬN ĐƠN + KHỐI CHUYỂN KHOẢN CÓ MÃ QR (Founder 21/09) ═════════════════
   Trước: tiêu đề «Checkout», bước 2, thông tin ngân hàng in 2 lần, dải thông tin đơn
   vỡ hàng với vạch đứt, chữ «Thank you. Your order has been received.» lọt dưới thanh menu. */
.woo-checkout .woocommerce-order{display:grid;gap:var(--s6)}
.woo-checkout .woocommerce-order > *{margin:0;min-width:0}
.woo-checkout .woocommerce-thankyou-order-received{display:none}   /* tiêu đề trang đã cảm ơn */
.woo-checkout .woocommerce-order h2{font-size:1.25rem;line-height:1.25;margin:0 0 var(--s3)}

/* dải thông tin đơn: ô lưới đều nhau thay cho danh sách vạch đứt */
.woo-checkout ul.woocommerce-order-overview{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.woo-checkout ul.woocommerce-order-overview li{float:none;margin:0;padding:12px 14px;border:0 !important;background:var(--paper);
  font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);line-height:1.3}
.woo-checkout ul.woocommerce-order-overview li strong{display:block;margin-top:4px;font-size:1rem;letter-spacing:0;text-transform:none;
  color:var(--ink);overflow-wrap:anywhere}
.woo-checkout ul.woocommerce-order-overview::before,.woo-checkout ul.woocommerce-order-overview::after{display:none}

/* khối chuyển khoản */
.ali-ck{border:1.5px solid var(--line-strong);border-radius:var(--radius);padding:var(--s5);background:var(--paper)}
.ali-ck h2{margin:0 0 var(--s2)}
.ali-ck-lead{margin:0 0 var(--s4);color:var(--ink-2);font-size:.95rem;max-width:60ch}
.ali-ck-body{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s6);align-items:start}
.ali-qr{margin:0;display:grid;justify-items:center;gap:8px}
.ali-qr-ve canvas{display:block;width:220px;height:220px;image-rendering:pixelated;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.ali-qr figcaption{font-size:.75rem;color:var(--muted);letter-spacing:.04em}
.ali-qr-tai,.ali-chep{font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;border:1px solid var(--line-strong);
  border-radius:var(--radius);background:#fff;color:var(--ink);min-height:36px;padding:0 12px}
.ali-qr-tai{width:220px;min-height:44px}
.ali-qr-tai:hover,.ali-chep:hover{border-color:var(--ink)}
.ali-qr-tai:focus-visible,.ali-chep:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.ali-ck-ds{margin:0;display:grid}
.ali-ck-ds > div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.ali-ck-ds > div:last-child{border-bottom:0}
.ali-ck-ds dt{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0}
.ali-ck-ds dd{margin:0;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.ali-ck-ds dd b{font-size:1.05rem;overflow-wrap:anywhere}
.ali-chep{flex:0 0 auto}

/* bảng chi tiết đơn + địa chỉ */
.woo-checkout .woocommerce-order-details table.shop_table{width:100%;border-collapse:collapse}
.woo-checkout .woocommerce-order-details table.shop_table th,
.woo-checkout .woocommerce-order-details table.shop_table td{padding:10px 0;border:0;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
.woo-checkout .woocommerce-order-details table.shop_table td:last-child,
.woo-checkout .woocommerce-order-details table.shop_table th:last-child{text-align:right;white-space:nowrap;padding-left:12px}
.woo-checkout .woocommerce-order-details .wc-item-meta{list-style:none;margin:6px 0 0;padding:0;font-weight:400}
.woo-checkout .woocommerce-order-details .wc-item-meta li{display:flex;gap:6px;flex-wrap:wrap}
.woo-checkout .woocommerce-order-details .wc-item-meta p{margin:0}
.woo-checkout .woocommerce-customer-details address{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4);font-style:normal;line-height:1.6}

@media (max-width:640px){
  .ali-ck{padding:var(--s4)}
  .ali-ck-body{grid-template-columns:minmax(0,1fr);gap:var(--s4)}
  .ali-ck-ds > div{grid-template-columns:minmax(0,1fr);gap:2px}
  .woo-checkout ul.woocommerce-order-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .woo-checkout ul.woocommerce-order-overview li.email{grid-column:1 / -1}
}
@media print{ .ali-qr-tai,.ali-chep{display:none} }

/* lượt 2 trang nhận đơn (soi Safari iPhone): bảng chi tiết đơn bị dòng ghi chú dài «nowrap» ép cột tên còn ~30px
   ⇒ chữ dọc từng ký tự. Đổi bảng sang khối: nhãn trái co giãn, tiền phải; chỉ SỐ TIỀN giữ một dòng. */
.woo-checkout .woocommerce-order-details table.shop_table,
.woo-checkout .woocommerce-order-details table.shop_table > thead,
.woo-checkout .woocommerce-order-details table.shop_table > tbody,
.woo-checkout .woocommerce-order-details table.shop_table > tfoot{display:block;width:100%}
.woo-checkout .woocommerce-order-details table.shop_table > thead{display:none}
.woo-checkout .woocommerce-order-details table.shop_table tr{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  padding:10px 0;border-bottom:1px solid var(--line)}
.woo-checkout .woocommerce-order-details table.shop_table tr > th,
.woo-checkout .woocommerce-order-details table.shop_table tr > td{display:block;padding:0 !important;border:0 !important;min-width:0}
.woo-checkout .woocommerce-order-details table.shop_table tr > :first-child{flex:1 1 auto;text-align:left}
.woo-checkout .woocommerce-order-details table.shop_table tr > :last-child{flex:0 1 auto;text-align:right;white-space:normal;overflow-wrap:anywhere}
.woo-checkout .woocommerce-order-details table.shop_table td.product-total,
.woo-checkout .woocommerce-order-details table.shop_table tfoot td .amount{white-space:nowrap}
.woo-checkout .woocommerce-order-details table.shop_table tfoot tr:last-child td{max-width:60%}
.woo-checkout .woocommerce-order{margin-bottom:var(--s6)}   /* khung địa chỉ dính câu Cancellation */
/* Blog article, 2026 design */
.post{max-width:820px}
.post-head{margin:var(--s4) 0 var(--s4)}
.post-head h1{margin:6px 0 8px}
.post-hero{margin:0 0 var(--s5)}
.post-hero img{width:100%;height:auto;border-radius:var(--radius);display:block}
.post-body{font-size:1.02rem;line-height:1.75;color:var(--ink)}
.post-body > *{max-width:100%}
.post-body p{margin:0 0 var(--s4)}
.post-body h2{font-family:var(--font-display);font-size:1.5rem;line-height:1.25;margin:var(--s5) 0 var(--s3)}
.post-body h3{font-family:var(--font-display);font-size:1.18rem;margin:var(--s4) 0 var(--s2)}
.post-body ul,.post-body ol{margin:0 0 var(--s4) 1.15rem;padding:0}
.post-body li{margin:0 0 8px}
.post-body img{max-width:100%;height:auto;border-radius:var(--radius);display:block;margin:var(--s4) 0}
.post-body figure{margin:var(--s4) 0}
.post-body figcaption{font-size:.85rem;color:var(--ink-2);margin-top:6px}
.post-body a{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px}
.post-body blockquote{margin:var(--s4) 0;padding:var(--s3) var(--s4);border-left:3px solid var(--accent);background:var(--paper-2);border-radius:var(--radius)}
.post-body table{width:100%;border-collapse:collapse;margin:var(--s4) 0;font-size:.95rem}
.post-body th,.post-body td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.post-body th{background:var(--paper-2);font-weight:700}
.post-body iframe,.post-body video{max-width:100%;border-radius:var(--radius)}
.post-cta{margin:var(--s6) 0 var(--s5);padding:var(--s5);background:var(--paper-2);border:1.5px solid var(--line);border-radius:var(--radius)}
.post-cta h2{font-family:var(--font-display);font-size:1.3rem;margin:0 0 8px}
.post-cta p{margin:0 0 var(--s3)}
.post-more{margin-bottom:var(--s6)}
.post-more h2{font-family:var(--font-display);font-size:1.25rem;margin:0 0 var(--s3)}
.post-more .bl-row h3{font-family:var(--font-display);font-size:1.02rem;margin:0 0 4px}
@media (max-width:760px){.post-body{font-size:1rem}.post-body h2{font-size:1.3rem}}

/* Contact page map */
.map-frame{border:1.5px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper-2)}
.map-frame iframe{display:block;width:100%;height:420px;border:0}
@media (max-width:760px){.map-frame iframe{height:300px}}

/* Tour đi qua các điểm trong bài blog (28/09/2026) */
.post-tours{margin:var(--s6) 0 var(--s4)}
.post-tours h2{font-family:var(--font-display);font-size:1.3rem;margin:0 0 4px}
.post-tours > .muted{margin:0 0 var(--s3);font-size:.9rem}
.pt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.pt-card{display:grid;align-content:start;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:inherit;background:var(--paper);transition:border-color .2s,transform .2s}
.pt-card:hover{border-color:var(--accent-text);transform:translateY(-2px)}
.pt-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.pt-txt{display:grid;gap:4px;padding:var(--s3) var(--s4)}
.pt-txt .label{font-size:.7rem}
.pt-txt b{font-family:var(--font-display);font-size:1rem;line-height:1.3}
.pt-diem{font-size:.84rem;color:var(--muted)}
.pt-gia{font-size:.86rem;font-weight:700;color:var(--accent-text)}
@media (max-width:768px){.pt-grid{grid-template-columns:minmax(0,1fr)}.pt-card{grid-template-columns:38% minmax(0,1fr)}.pt-card img{aspect-ratio:auto;height:100%;min-height:120px}.pt-txt{padding:var(--s2) var(--s3)}}

/* Khối About trang chủ: trình chiếu 6 ảnh tại Ali Hostel trước giờ xuất phát (Founder 02/10/2026) — 5 giây/ảnh, mờ chồng 1 giây, vòng 30 giây */
.about-show{position:relative;aspect-ratio:4/3;width:100%;border-radius:var(--radius-lg);overflow:hidden;background:var(--paper-2)}
.about-grid .about-show img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border-radius:0;object-fit:cover;opacity:0;animation:aboutFade 30s infinite}
.about-show img:nth-child(1){animation-delay:-1s}.about-show img:nth-child(2){animation-delay:4s}.about-show img:nth-child(3){animation-delay:9s}
.about-show img:nth-child(4){animation-delay:14s}.about-show img:nth-child(5){animation-delay:19s}.about-show img:nth-child(6){animation-delay:24s}
.about-show:hover img{animation-play-state:paused}
@keyframes aboutFade{0%{opacity:0}3.34%{opacity:1}16.67%{opacity:1}20%{opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.about-grid .about-show img{animation:none}.about-grid .about-show img:first-child{opacity:1}}
