[hidden]{display:none!important}
:root{
  --cream:#f2f4ea; --paper:#fbfcf6; --sand:#dde5cf; --ink:#1f2a24; --muted:#5c665e;
  --clay:#b5522f; --clay-d:#8a3a1d; --leaf:#3d6a48; --leaf-l:#dbe7d3; --gold:#d9a441;
  --r:18px; --shadow:0 10px 30px rgba(31,42,36,.10);
  --ease-out:cubic-bezier(0.23,1,0.32,1); --ease-drawer:cubic-bezier(0.32,0.72,0,1);
  --serif:"Young Serif",Georgia,serif; --sans:"DM Sans",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{interpolate-size:allow-keywords;scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12;letter-spacing:-.005em;text-wrap:balance}
h1{font-size:clamp(2.4rem,6vw,4.6rem)}
h2{font-size:clamp(1.8rem,3.6vw,2.7rem)}
em{font-style:normal;color:var(--clay-d)}
.muted{color:var(--muted)}
.tiny{font-size:.82rem;color:var(--muted)}
.lead{font-size:1.2rem;color:var(--muted);max-width:34em;margin:22px 0 30px}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}

/* Buttons */
.btn{display:inline-block;background:var(--clay);color:#fff;text-decoration:none;border:2px solid var(--clay);padding:13px 26px;border-radius:999px;font:600 1rem var(--sans);cursor:pointer;transition:transform .16s var(--ease-out),background-color .2s var(--ease-out),border-color .2s var(--ease-out),color .2s var(--ease-out)}
.btn:hover{background:var(--clay-d);border-color:var(--clay-d)}
@media (hover:hover) and (pointer:fine){.btn:hover{transform:translateY(-2px)}}
.btn:active{transform:scale(.97)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.btn-small{padding:8px 18px;font-size:.92rem}
.btn-big{width:100%;padding:17px;font-size:1.1rem}
.btn[disabled]{opacity:.5;pointer-events:none}

/* Nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:14px 5vw;background:rgba(242,244,234,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(31,42,36,.08)}
.brand{font:600 1.35rem var(--serif);text-decoration:none}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a:not(.btn){text-decoration:none;font-weight:500;font-size:.95rem}
.nav-links a:not(.btn):hover{color:var(--clay-d)}
.nav-toggle{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer;position:relative}
.nav-toggle span{position:absolute;left:8px;right:8px;height:2px;background:var(--ink);transition:transform .25s var(--ease-out),top .25s var(--ease-out)}
.nav-toggle span:first-child{top:15px}.nav-toggle span:last-child{top:23px}
.nav-toggle[aria-expanded=true] span:first-child{top:19px;transform:rotate(45deg)}
.nav-toggle[aria-expanded=true] span:last-child{top:19px;transform:rotate(-45deg)}

/* Image slots (placeholder until photos exist) */
.slot{position:relative;overflow:hidden;border-radius:var(--r);background:var(--leaf-l);
  display:flex;align-items:center;justify-content:center;text-align:center;color:var(--leaf);min-height:200px}
.slot::after{content:attr(data-label) "\A (drop " attr(data-file) " in assets/img/)";white-space:pre-line;font-size:.82rem;padding:16px;max-width:80%;opacity:.8}
.slot.has-img::after{display:none}
.slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.slot:hover img{transform:scale(1.04)}}

/* Layout */
.section{padding:clamp(60px,9vw,120px) 5vw;max-width:1280px;margin:0 auto}
.section-head{max-width:46rem;margin-bottom:44px}
.section-head .muted{margin-top:14px}

/* Hero */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:5vw;align-items:center;max-width:1280px;margin:0 auto;padding:130px 5vw 60px;min-height:92dvh}
.hero-img{aspect-ratio:4/5;min-height:0;border-radius:200px 200px var(--r) var(--r)}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-facts{list-style:none;display:flex;gap:28px;margin-top:40px;flex-wrap:wrap;color:var(--muted);font-size:.95rem}
.hero-facts strong{color:var(--ink);font-family:var(--serif);font-size:1.15rem;font-weight:600}

/* Story */
.story{display:grid;grid-template-columns:.8fr 1.2fr;gap:5vw;align-items:center}
.story-img{aspect-ratio:1;min-height:0;border-radius:50%}
.story p{margin-top:16px;color:var(--muted);max-width:36em}
.story h2{margin-bottom:8px}

/* Activities */
.activity-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:28px}
.act-card{grid-column:span 2}
@media (max-width:980px){.activity-grid{grid-template-columns:repeat(2,1fr)}.act-card,.act-card:nth-child(-n+2){grid-column:span 1}}
@media (max-width:620px){.activity-grid{grid-template-columns:1fr}}
.act-card{background:var(--paper);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .25s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.act-card:hover{transform:translateY(-6px)}}
.act-card .slot{border-radius:0;aspect-ratio:4/3;min-height:0}
.act-body{padding:22px 24px 26px}
.act-tag{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--clay-d);font-weight:600}
.act-body h3{font-size:1.5rem;margin:6px 0 10px}
.act-body p{color:var(--muted);font-size:.97rem}
.act-meta{display:flex;gap:16px;margin-top:14px;font-size:.88rem;font-weight:600;color:var(--leaf)}

/* Tours */
.tours-section{background:var(--sand);padding:80px 5vw;max-width:none;border-radius:40px;margin:0 2vw}
.tours-section>*{max-width:1230px;margin-left:auto;margin-right:auto}
.tour-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:32px}
.tour-card{background:var(--paper);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.tour-card .slot{border-radius:0;aspect-ratio:16/10;min-height:0}
.tour-card .act-body{display:flex;flex-direction:column;flex:1}
.tour-card ul{margin:14px 0 20px 1.1em;color:var(--muted);font-size:.95rem}
.tour-card .btn{margin-top:auto;align-self:flex-start}
.price{font:600 1.2rem var(--serif);color:var(--ink);margin-top:8px}
.price small{font:400 .85rem var(--sans);color:var(--muted)}

/* Booking */
.book-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start}
.book-form{background:var(--paper);border-radius:var(--r);padding:clamp(22px,4vw,44px);box-shadow:var(--shadow)}
.step{margin-bottom:38px}
.step h3{font-size:1.4rem;margin-bottom:18px;display:flex;align-items:center;gap:12px}
.num{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--leaf);color:#fff;font:600 .95rem var(--sans)}
.tour-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.tab{text-align:left;border:2px solid var(--sand);background:#fff;border-radius:14px;padding:14px 16px;cursor:pointer;font:inherit;transition:border-color .2s var(--ease-out),background-color .2s var(--ease-out),transform .16s var(--ease-out)}
.tab:active{transform:scale(.98)}
.tab strong{display:block;font-family:var(--serif);font-size:1.05rem}
.tab span{font-size:.85rem;color:var(--muted)}
.tab[aria-selected=true]{border-color:var(--clay-d);background:#fff3ec}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.chip{border:2px solid var(--sand);background:#fff;border-radius:999px;padding:9px 16px;cursor:pointer;font:500 .95rem var(--sans);transition:border-color .2s var(--ease-out),background-color .2s var(--ease-out),color .2s var(--ease-out),transform .16s var(--ease-out);display:flex;gap:8px;align-items:center}
.chip:hover{border-color:var(--leaf)}
.chip:active{transform:scale(.97)}
.chip[aria-pressed=true]{background:var(--leaf);border-color:var(--leaf);color:#fff}
.chip .chip-price{opacity:.7;font-size:.85rem}
.chip[aria-pressed=true] .chip-price{opacity:.9}
.chip::before{content:"+";font-weight:700}
.chip[aria-pressed=true]::before{content:"✓"}
.hint{margin-top:12px;font-size:.9rem;color:var(--muted)}
.hint.warn{color:var(--clay-d);font-weight:600}

/* Calendar */
.calendar{border:2px solid var(--sand);border-radius:14px;padding:16px;background:#fff;max-width:420px}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.cal-head strong{font-family:var(--serif);font-size:1.2rem}
.cal-nav{border:0;background:var(--sand);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.1rem}
.cal-nav:disabled{opacity:.35;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal-dow{font-size:.72rem;text-transform:uppercase;color:var(--muted);padding:4px 0}
.cal-day{aspect-ratio:1;border:0;border-radius:10px;background:transparent;font:500 .95rem var(--sans);cursor:pointer;position:relative;color:var(--ink)}
.cal-day:hover:not(:disabled){background:var(--leaf-l)}
.cal-day:disabled{color:#b5b5aa;cursor:not-allowed}
.cal-day.full:disabled{text-decoration:line-through}
.cal-day.limited::after,.cal-day.full::after{content:"";position:absolute;bottom:5px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--gold)}
.cal-day.full::after{background:#c8c2b0}
.cal-day.selected{background:var(--clay)!important;color:#fff}
.cal-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem;color:var(--muted);margin-top:12px}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.dot-open{background:var(--leaf)}.dot-limited{background:var(--gold)}.dot-full{background:#c8c2b0}

/* Fields */
.field{margin-bottom:16px;flex:1}
.field-row{display:flex;gap:16px}
label{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px}
.opt{font-weight:400;color:var(--muted)}
input[type=text],input[type=email],input[type=tel],input[type=number],textarea,select{width:100%;padding:12px 14px;border:2px solid var(--sand);border-radius:12px;background:#fff;font:inherit;color:var(--ink)}
input:focus,textarea:focus,select:focus,.chip:focus-visible,.tab:focus-visible,.cal-day:focus-visible,summary:focus-visible,.btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.stepper{display:flex;align-items:center;gap:6px}
.stepper button{width:44px;height:46px;border:2px solid var(--sand);background:#fff;border-radius:12px;font-size:1.3rem;cursor:pointer}
.stepper input{text-align:center;width:70px;-moz-appearance:textfield}
.form-error{background:#fde8e0;color:#8f2d10;padding:12px 16px;border-radius:12px;margin-bottom:14px;font-weight:500}
.form-ok{background:var(--leaf-l);color:var(--leaf);padding:12px 16px;border-radius:12px;margin-top:12px;font-weight:600}

/* Summary */
.summary{position:sticky;top:90px;background:var(--ink);color:var(--cream);border-radius:var(--r);padding:30px}
.summary h3{font-size:1.5rem;margin-bottom:16px;color:#fff}
.sum-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:.95rem}
.sum-row span:first-child{opacity:.75}
.sum-row span:last-child{text-align:right}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px;font-family:var(--serif);font-size:1.7rem}
.sum-note{font-size:.82rem;opacity:.7;margin-top:10px}
.sum-empty{opacity:.6}

/* Confirmation */
.confirm{background:var(--leaf);color:#fff;border-radius:var(--r);padding:clamp(26px,5vw,54px);margin-top:30px;text-align:center}
.confirm h3{font-size:2rem;margin-bottom:12px}
.confirm p{max-width:34em;margin:0 auto 20px}
.confirm .btn-ghost{color:#fff;border-color:#fff}
.confirm .btn-ghost:hover{background:#fff;color:var(--leaf)}
.pay-block{margin:24px 0}
.pay-block .btn{background:var(--gold);border-color:var(--gold);color:var(--ink)}

/* Reviews */
.rating-line{font:500 1.15rem var(--serif);margin-top:12px}
.stars{color:var(--gold);letter-spacing:2px}
.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin-bottom:36px}
.review{background:var(--paper);border-radius:var(--r);padding:26px;box-shadow:var(--shadow)}
.review p{margin:10px 0 16px}
.review footer{font-size:.88rem;color:var(--muted)}
.review-empty{grid-column:1/-1;background:var(--paper);padding:30px;border-radius:var(--r);text-align:center;color:var(--muted)}
.review-form-wrap summary{list-style:none;display:inline-block;cursor:pointer}
.review-form-wrap summary::-webkit-details-marker{display:none}
.review-form{background:var(--paper);border-radius:var(--r);padding:28px;margin-top:20px;max-width:640px}
.stars-input{display:flex;gap:4px}
.stars-input button{border:0;background:none;font-size:2rem;color:#d4cdb8;cursor:pointer;line-height:1}
.stars-input button.on{color:var(--gold)}

/* FAQ */
.faq-list{max-width:760px}
.faq-list details{border-bottom:1px solid rgba(31,42,36,.15);padding:18px 0}
.faq-list summary{font:500 1.2rem var(--serif);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq-list summary::after{content:"+";font-size:1.5rem;color:var(--clay-d)}
.faq-list details[open] summary::after{content:"–"}
.faq-list p{margin-top:10px;color:var(--muted)}

/* Contact */
.contact-card{background:var(--clay-d);color:#fff;border-radius:30px;padding:56px 6vw;display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:center}
.contact-card em{color:#fff;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:.18em;text-decoration-thickness:3px}
.contact-links{display:flex;flex-direction:column;gap:12px}
.contact-links a{background:rgba(255,255,255,.14);padding:14px 20px;border-radius:14px;text-decoration:none;font-weight:600;transition:background-color .2s var(--ease-out),color .2s var(--ease-out),transform .16s var(--ease-out)}
.contact-links a:active{transform:scale(.98)}
.contact-links a:hover{background:#fff;color:var(--clay-d)}
.footer{text-align:center;padding:50px 5vw 40px;color:var(--muted)}

/* Reveal (only hides when JS is running; safety timeout in main.js) */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .55s var(--ease-out),transform .55s var(--ease-out);transition-delay:var(--d,0ms)}
.js .reveal.in{opacity:1;transform:none}

/* Responsive */
@media (max-width:900px){
  .hero,.story,.book-layout,.contact-card{grid-template-columns:1fr}
  .hero{padding-top:110px;min-height:0}
  .hero-img{aspect-ratio:4/3;border-radius:var(--r)}
  .story-img{max-width:280px}
  .summary{position:static}
  .tours-section{margin:0;border-radius:0}
}
@media (max-width:720px){
  body{font-size:16px}
  .nav-toggle{display:block}
  .nav-links{position:fixed;top:64px;left:0;right:0;flex-direction:column;background:var(--cream);padding:24px 5vw 30px;gap:18px;transform:translateY(-130%);transition:transform .25s var(--ease-drawer);border-bottom:1px solid rgba(31,42,36,.1)}
  .nav-links.open{transform:none}
  .field-row{flex-direction:column;gap:0}
}
@media (prefers-reduced-motion:reduce){
  .js .reveal{transform:none;transition:opacity .3s ease;transition-delay:0ms}
  .slot img,.act-card,.btn{transition-property:background-color,border-color,color}
}

/* Time slots */
.slot-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%}
.slot-label{font-weight:600;font-size:.85rem;min-width:84px;color:var(--muted)}
#slotChips{flex-direction:column;gap:12px}
.chip-time::before{content:none!important}
.chip-time{padding:8px 16px}
/* More details dropdown */
.more{margin:16px 0 4px;border-top:1px solid rgba(31,42,36,.12);padding-top:12px}
.more summary{cursor:pointer;font-weight:600;color:var(--clay-d);list-style:none;font-size:.95rem}
.more summary::-webkit-details-marker{display:none}
.more summary::after{content:" +"}
.more[open] summary::after{content:" –"}
.more-item{margin-top:12px}
.more-item p{margin:2px 0 0;font-size:.93rem}
.tour-card .more{margin-bottom:20px}
.review h3{font-size:1.2rem;margin:8px 0 0}
.story-img img{object-position:center 22%}
.credits{max-width:760px;margin:14px auto 0;text-align:left}.credits summary{cursor:pointer;text-align:center}.credits ul{margin:10px 0 0 1.2em}.credits li{margin-bottom:4px}

/* Calendar & chips: cal days respond */
.cal-day{transition:background-color .15s var(--ease-out),transform .16s var(--ease-out)}
.cal-day:active:not(:disabled){transform:scale(.94)}
/* Total price ticks when it changes */
@keyframes tick{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
.sum-total .tick{animation:tick .22s var(--ease-out)}
/* Confirmation entrance */
@keyframes confirm-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.confirm:not([hidden]){animation:confirm-in .4s var(--ease-out)}
/* Smooth open/close for details (progressive enhancement) */
.more::details-content,.faq-list details::details-content{block-size:0;overflow:clip;opacity:0;transition:block-size .25s var(--ease-out),opacity .2s var(--ease-out),content-visibility .25s allow-discrete}
.more[open]::details-content,.faq-list details[open]::details-content{block-size:auto;opacity:1}

p,li{text-wrap:pretty}
.price,.sum-row,.sum-total,.chip-price,.act-meta{font-variant-numeric:tabular-nums}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;transition:top .2s var(--ease-out)}
.skip:focus{top:12px}
.nav-links a[aria-current=true]:not(.btn){color:var(--clay-d);box-shadow:inset 0 -2px 0 var(--clay-d)}
::selection{background:var(--leaf);color:#fff}

/* Touch targets (min 44px) */
.cal-nav{width:44px;height:44px}
.stars-input button{min-width:44px;min-height:44px}
.more summary{padding:10px 0;margin:-10px 0}
.faq-list summary{padding:4px 0;min-height:44px;align-items:center}
@media (max-width:720px){
  .book-form{padding:22px 14px}
  .calendar{max-width:none;padding:10px}
  .cal-grid{gap:2px}
  .cal-day{aspect-ratio:auto;min-height:44px}
}

/* ===== Mobile polish ===== */
@media (max-width:720px){
  .hero{padding:96px 5vw 40px;gap:28px}
  h1{font-size:clamp(2.2rem,10vw,2.8rem)}
  .lead{font-size:1.05rem;margin:16px 0 22px}
  .hero-cta{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .hero-cta .btn{text-align:center;padding:14px 10px;font-size:.95rem}
  .hero-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:26px;font-size:.82rem;line-height:1.3}
  .hero-facts li{display:flex;flex-direction:column}
  .hero-img{aspect-ratio:5/4}
  .nav-links a:not(.btn){display:block;padding:12px 0;font-size:1.1rem}
  .nav-links .btn{text-align:center;padding:14px}
  .section{padding:56px 5vw}
  .section-head{margin-bottom:30px}
  .chip{min-height:44px;padding:10px 16px}
  .chip-time{padding:10px 16px}
  .tab{padding:16px}
  .tour-card .btn{align-self:stretch;text-align:center}
  .contact-card{padding:38px 22px;border-radius:24px}
  .tours-section{padding:56px 5vw}
  .stepper input{width:64px}
  .summary{padding:24px}
}
.hero-img img{object-position:center 8%}

/* Hero motion: slow Ken Burns drift (any photo named hero.*) */
.hero-img img{object-position:center;transform-origin:60% 40%;animation:kenburns 26s ease-in-out infinite alternate;will-change:transform}
@keyframes kenburns{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-2.5%,-1.5%,0)}}
@media (hover:hover) and (pointer:fine){.hero-img:hover img{transform:none}}
@media (prefers-reduced-motion:reduce){.hero-img img{animation:none}}
.hero-img img{object-position:center 8%}

/* ===== Animated tour covers ===== */
.cover{position:relative;aspect-ratio:16/10;overflow:hidden;background:#cfe6c4}
.cover svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.cover-tag{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.92);color:var(--ink);font:600 .8rem var(--sans);padding:6px 12px;border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.15)}
.cover-food .cover-tag{background:#ffd36a}
.dish-label{font:600 16px var(--sans);fill:#ffe9c7}
.sc{animation:scroll-x linear infinite}
.s-far{animation-duration:90s}.s-mid{animation-duration:34s}.s-near{animation-duration:14s}.s-road{animation-duration:3.2s}
@keyframes scroll-x{to{transform:translateX(-640px)}}
.cloud{animation:drift linear infinite}
.c1{animation-duration:70s;animation-delay:-20s}.c2{animation-duration:95s;animation-delay:-60s}
@keyframes drift{from{transform:translateX(-120px)}to{transform:translateX(780px)}}
.halo{animation:pulse 5s ease-in-out infinite;transform-origin:480px 112px}
@keyframes pulse{50%{transform:scale(1.12);opacity:.55}}
.wheel{transform-box:fill-box;transform-origin:center;animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.bob{animation:bob .8s ease-in-out infinite alternate}
@keyframes bob{to{transform:translateY(-2.5px)}}
.leg{transform-box:fill-box;transform-origin:20% 0;animation:pedal .9s ease-in-out infinite alternate}
@keyframes pedal{from{transform:rotate(-14deg)}to{transform:rotate(14deg)}}
.lan{animation:swing 3.6s ease-in-out infinite alternate}
@keyframes swing{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
.bulb{animation:twinkle 1.8s ease-in-out infinite}
@keyframes twinkle{50%{opacity:.25}}
.dish{animation:dish-bob 2.4s ease-in-out infinite alternate}
@keyframes dish-bob{to{transform:translateY(-4px)}}
.steam{opacity:0;animation:steam 2.8s ease-out infinite}
@keyframes steam{0%{opacity:0;transform:translateY(8px)}30%{opacity:.7}100%{opacity:0;transform:translateY(-18px)}}
.tour-card .cover{border-radius:0}
@media (prefers-reduced-motion:reduce){.sc,.cloud,.halo,.wheel,.bob,.leg,.lan,.bulb,.dish,.steam{animation:none}.steam{opacity:.4}}

/* Covers v2 */
.s-far{animation-duration:140s}.s-far2{animation-duration:95s}.s-vil{animation-duration:55s}.s-fg{animation-duration:1.9s}
.c3{animation-duration:120s;animation-delay:-35s}
.dish-label{font:600 13.5px var(--sans);fill:#fff1d6}
.dish-num{font:700 11px var(--sans);fill:#3a2208}
.lglow{animation:glow 3.6s ease-in-out infinite alternate}
@keyframes glow{from{opacity:.18}to{opacity:.4}}
.cover{box-shadow:inset 0 -40px 60px -50px rgba(0,0,0,.25)}
@media (prefers-reduced-motion:reduce){.s-far,.s-far2,.s-vil,.s-fg,.c3,.lglow{animation:none}}

/* Transport choice */
.tab[role=radio]{display:block}
.transport-note{margin:4px 0 14px;line-height:1.45}

/* Hero facts v2: cards that appear one after another on load */
.hero .hero-facts{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px;font-size:1rem;color:var(--ink)}
.hero .hero-facts li{display:flex;align-items:center;gap:10px;padding:8px 16px 8px 8px;background:rgba(255,255,255,.72);border:1px solid rgba(31,42,36,.1);border-radius:999px;box-shadow:0 8px 22px rgba(31,42,36,.08);backdrop-filter:blur(6px);animation:fact-in .7s var(--ease-out) both;animation-delay:calc(.45s + var(--i,0) * .16s)}
.hero .hero-facts li:nth-child(1){--i:0}.hero .hero-facts li:nth-child(2){--i:1}.hero .hero-facts li:nth-child(3){--i:2}
.fact-ic{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:var(--leaf);color:#fff;animation:fact-pop .55s var(--ease-out) both;animation-delay:calc(.6s + var(--i,0) * .16s)}
.fact-tx{display:flex;flex-direction:column;line-height:1.2}
.hero .hero-facts strong{font:600 1.05rem var(--serif);color:var(--ink)}
.fact-tx small{font-size:.8rem;color:var(--muted)}
@keyframes fact-in{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
@keyframes fact-pop{from{transform:scale(.4) rotate(-20deg)}to{transform:none}}
@media (max-width:1180px){
  .hero .hero-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:24px}
  .hero .hero-facts li{flex-direction:column;text-align:center;gap:6px;padding:12px 6px;border-radius:18px;font-size:.82rem}
  .fact-ic{width:38px;height:38px}
  .fact-tx small{font-size:.72rem}
}
@media (prefers-reduced-motion:reduce){.hero .hero-facts li,.fact-ic{animation:none}}

/* Slightly tighter spacing between sections */
.section{padding-top:clamp(46px,6.5vw,88px);padding-bottom:clamp(46px,6.5vw,88px)}
.section-head{margin-bottom:36px}
.tours-section{padding-top:64px;padding-bottom:64px}
.hero{padding-bottom:44px}
@media (max-width:720px){.section{padding-top:44px;padding-bottom:44px}.section-head{margin-bottom:26px}.tours-section{padding-top:44px;padding-bottom:44px}.hero{padding-bottom:30px}}

/* Covers v3 */
.par{transform:translate3d(calc(var(--px,0) * var(--k,0) * 1px),0,0);transition:transform .45s var(--ease-out)}
.rays{transform-origin:478px 108px;animation:spin-slow 90s linear infinite}
@keyframes spin-slow{to{transform:rotate(360deg)}}
.bird{animation:fly linear infinite}
@keyframes fly{from{transform:translateX(-30px)}to{transform:translateX(690px)}}
.flap{transform-box:fill-box;transform-origin:center bottom;animation:flap .42s ease-in-out infinite alternate}
@keyframes flap{from{transform:scaleY(1)}to{transform:scaleY(-.5)}}
.dust{animation:dust 1.3s ease-out infinite;opacity:0}
@keyframes dust{0%{opacity:.5;transform:translate(0,0) scale(.5)}100%{opacity:0;transform:translate(-46px,-6px) scale(1.7)}}
.scarf{transform-box:fill-box;transform-origin:right center;animation:scarf .35s ease-in-out infinite alternate}
@keyframes scarf{from{transform:skewY(-8deg) scaleX(1)}to{transform:skewY(8deg) scaleX(.82)}}
.spk circle{animation:twinkle 1.6s ease-in-out infinite}
.spk2 circle{animation-delay:-.8s}
.reed{animation:sway 3.2s ease-in-out infinite alternate}
@keyframes sway{from{transform:rotate(-3deg)}to{transform:rotate(3.5deg)}}
.ember{animation:ember linear infinite;opacity:0}
@keyframes ember{0%{opacity:0;transform:translate(0,0)}15%{opacity:.9}100%{opacity:0;transform:translate(14px,-150px)}}
/* tasting spotlight: each dish takes the stage in turn (5 x 2s) */
.hl-d,.hl-l{transform-box:fill-box;transform-origin:center bottom;animation:hl-pop 10s ease-in-out infinite;animation-delay:calc(var(--i) * 2s)}
.hl-g{opacity:0;animation:hl-glow 10s ease-in-out infinite;animation-delay:calc(var(--i) * 2s)}
.lbl-bg{fill:#140b10;fill-opacity:.55;animation:lbl-bg 10s ease-in-out infinite;animation-delay:calc(var(--i) * 2s)}
.hl-l .lbl-tx{animation:lbl-tx 10s ease-in-out infinite;animation-delay:calc(var(--i) * 2s)}
@keyframes hl-pop{0%{transform:scale(1)}4%,17%{transform:scale(1.12) translateY(-7px)}22%,100%{transform:scale(1)}}
@keyframes hl-glow{0%{opacity:0}5%,17%{opacity:1}22%,100%{opacity:0}}
@keyframes lbl-bg{0%{fill:#140b10;fill-opacity:.55}5%,17%{fill:#ffd36a;fill-opacity:1}22%,100%{fill:#140b10;fill-opacity:.55}}
@keyframes lbl-tx{0%{fill:#fff1d6}5%,17%{fill:#3a2208}22%,100%{fill:#fff1d6}}
@media (prefers-reduced-motion:reduce){.rays,.bird,.flap,.dust,.scarf,.spk circle,.reed,.ember,.hl-d,.hl-l,.hl-g,.lbl-bg,.lbl-tx{animation:none}.par{transition:none}}

/* Weather cycle on the rice-field cover: golden day > hot noon > rain > sunset (48s loop) */
.w-hot,.w-rain,.w-sunset,.hot-halo,.set-disc,.set-halo,.pud,.wet{opacity:0}
.w-hot{animation:w-hot 48s ease-in-out infinite}
.w-rain{animation:w-rain 48s ease-in-out infinite}
.w-sunset{animation:w-sunset 48s ease-in-out infinite}
.hot-halo{animation:w-hot 48s ease-in-out infinite}
.set-disc,.set-halo{animation:w-sunset 48s ease-in-out infinite}
.set-halo{fill-opacity:.35}
.sunwrap{animation:w-sun 48s ease-in-out infinite}
.pud{animation:w-pud 48s ease-in-out infinite}
.wet{animation:w-wet 48s ease-in-out infinite}
.w-bird{animation:w-bird 48s ease-in-out infinite}
@keyframes w-hot{0%,20%{opacity:0}28%,42%{opacity:1}50%,100%{opacity:0}}
@keyframes w-rain{0%,44%{opacity:0}52%,66%{opacity:1}74%,100%{opacity:0}}
@keyframes w-pud{0%,48%{opacity:0}56%,72%{opacity:1}84%,100%{opacity:0}}
@keyframes w-wet{0%,46%{opacity:0}54%,70%{opacity:.3}84%,100%{opacity:0}}
@keyframes w-sunset{0%,72%{opacity:0}82%,94%{opacity:1}100%{opacity:0}}
@keyframes w-bird{0%,44%{opacity:1}50%,68%{opacity:0}74%,100%{opacity:1}}
@keyframes w-sun{0%,70%{transform:translateY(0)}84%,94%{transform:translateY(74px)}100%{transform:translateY(0)}}
.heat{animation:heat 3s linear infinite}
@keyframes heat{from{transform:translateX(0)}to{transform:translateX(80px)}}
.rain{animation:rain-fall .55s linear infinite}
.r-far{animation-duration:.85s}
@keyframes rain-fall{to{transform:translateY(80px)}}
.dk-cloud{animation:dk-drift 30s linear infinite alternate}
@keyframes dk-drift{from{transform:translateX(-30px)}to{transform:translateX(30px)}}
.rip{transform-box:fill-box;transform-origin:center;animation:rip 1.5s ease-out infinite;opacity:0}
.rip.r2{animation-delay:-.75s}
@keyframes rip{0%{transform:scale(.2);opacity:.9}100%{transform:scale(1.15);opacity:0}}
/* flock of birds */
.flock{animation:fly 42s linear infinite}
@keyframes fly{from{transform:translate(-70px,92px)}to{transform:translate(720px,70px)}}
.flock-bob{animation:bob-flock 2.4s ease-in-out infinite alternate}
@keyframes bob-flock{to{transform:translateY(5px)}}
.wl,.wr{transform-origin:0 0;animation:wing .5s ease-in-out infinite alternate}
.wl{--a:-26deg;--b:32deg}.wr{--a:26deg;--b:-32deg}
@keyframes wing{from{transform:rotate(var(--a))}to{transform:rotate(var(--b))}}
@media (prefers-reduced-motion:reduce){.w-hot,.w-rain,.w-sunset,.hot-halo,.set-disc,.set-halo,.sunwrap,.pud,.wet,.w-bird,.heat,.rain,.dk-cloud,.rip,.flock,.flock-bob,.wl,.wr{animation:none}}
.hot-halo{fill-opacity:.4}.set-halo{fill-opacity:.22}
.rain{animation-duration:.9s}.r-far{animation-duration:1.3s}

/* Weather v2: 4 phases of 15s each (60s loop): day > hot > rain > sunset */
.w-hot,.hot-halo{animation:w-hot 60s ease-in-out infinite}
.w-rain{animation:w-rain 60s ease-in-out infinite}
.w-sunset,.set-disc,.set-halo{animation:w-sunset 60s ease-in-out infinite}
.sunwrap{animation:w-sun 60s ease-in-out infinite}
.pud{animation:w-pud 60s ease-in-out infinite}
.wet{animation:w-wet 60s ease-in-out infinite}
.w-bird{animation:w-bird 60s ease-in-out infinite}
@keyframes w-hot{0%,22.5%{opacity:0}27.5%,47.5%{opacity:1}52.5%,100%{opacity:0}}
@keyframes w-rain{0%,47.5%{opacity:0}52.5%,72.5%{opacity:1}77.5%,100%{opacity:0}}
@keyframes w-pud{0%,50%{opacity:0}56%,80%{opacity:1}90%,100%{opacity:0}}
@keyframes w-wet{0%,50%{opacity:0}56%,78%{opacity:.3}90%,100%{opacity:0}}
@keyframes w-sunset{0%,72.5%{opacity:0}77.5%,93%{opacity:1}100%{opacity:0}}
@keyframes w-bird{0%,47.5%{opacity:1}52.5%,72.5%{opacity:0}77.5%,100%{opacity:1}}
@keyframes w-sun{0%,72.5%{transform:translateY(0)}77.5%,93%{transform:translateY(74px)}100%{transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.w-hot,.hot-halo,.w-rain,.w-sunset,.set-disc,.set-halo,.sunwrap,.pud,.wet,.w-bird{animation:none}}

/* Smoother restart: the sunset fades out and the sun climbs back over the last 7s of the loop */
@keyframes w-sunset{0%,72.5%{opacity:0}77.5%,88%{opacity:1}100%{opacity:0}}
@keyframes w-sun{0%,72.5%{transform:translateY(0)}77.5%,88%{transform:translateY(74px)}100%{transform:translateY(0)}}
