/* ===== Riyadh Zoo × Seven Tickets — booking platform ===== */
@font-face{font-family:"Teshrin";src:url("../assets/fonts/TeshrinAR LT-Light.otf") format("opentype");font-weight:300;font-display:swap}
@font-face{font-family:"Teshrin";src:url("../assets/fonts/TeshrinAR LT-Regular.otf") format("opentype");font-weight:400;font-display:swap}
@font-face{font-family:"Teshrin";src:url("../assets/fonts/TeshrinAR LT-Medium.otf") format("opentype");font-weight:500;font-display:swap}
@font-face{font-family:"Teshrin";src:url("../assets/fonts/TeshrinAR LT-Bold.otf") format("opentype");font-weight:700;font-display:swap}
@font-face{font-family:"Teshrin";src:url("../assets/fonts/TeshrinAR LT-Heavy.otf") format("opentype");font-weight:900;font-display:swap}

:root{
  /* primary palette (brand guideline 3.0) */
  --orange:#F28E1B; --orange-d:#DC7A0A;
  --green:#30A93F;
  --citron:#ACAD16;
  --blue:#2AB5B6;
  --pink:#ED6F6E;
  --ink:#231E20;
  /* secondary palette */
  --forest:#1E6928; --forest-d:#134A1B; --forest-dd:#0D3513;
  --beige:#F4F1DE; --beige-2:#EAE5C6; --beige-3:#DDD6B0;
  --lav:#D3AED2;
  --water:#AED9E7;
  --white:#fff;
  --muted:#6B6658;
  --line:#E3DEC3;
  --r-sm:12px; --r:20px; --r-lg:28px; --r-xl:36px;
  --shadow:0 10px 30px -12px rgba(35,30,32,.25);
  --shadow-lg:0 30px 60px -25px rgba(19,74,27,.45);
  --hdr:76px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Teshrin",system-ui,-apple-system,"Segoe UI",Tahoma,sans-serif;background:var(--beige);color:var(--ink);font-size:16px;line-height:1.7;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.25;font-weight:700}
p{margin:0}
.wrap{max-width:1240px;margin-inline:auto;padding-inline:24px}
.hide-sm{}
i[data-i]{display:inline-flex;width:1.15em;height:1.15em;flex:none}
i[data-i] svg{width:100%;height:100%}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px;border-radius:8px}

/* ===== top bar ===== */
.topbar{background:var(--forest-dd);color:#E9F2DF;font-size:13px}
.topbar__in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:50px}
.topbar__hours{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.topbar__hours .dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(48,169,63,.25)}
.topbar__hours .sep{opacity:.5}
.topbar__ncw{height:39px;width:auto;opacity:.95}

/* ===== header ===== */
.hdr{position:sticky;top:0;z-index:50;background:var(--forest);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.06)}
.hdr__in{display:flex;align-items:center;gap:28px;height:var(--hdr)}
.hdr__brand{display:flex;align-items:center}
.hdr__zoo{height:48px;width:auto}
.hdr__nav{display:flex;gap:4px;margin-inline-start:8px}
.hdr__nav a{padding:8px 14px;border-radius:999px;font-weight:500;font-size:15px;color:rgba(255,255,255,.82);transition:.2s}
.hdr__nav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.hdr__nav a.on{color:var(--ink);background:var(--beige)}
.hdr__actions{display:flex;align-items:center;gap:10px;margin-inline-start:auto}
.icon-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);transition:.2s}
.icon-btn:hover{background:rgba(255,255,255,.18)}
.hdr__login{display:flex;align-items:center;gap:8px;height:42px;padding:0 16px 0 18px;border-radius:999px;background:var(--orange);color:#fff;font-weight:700;font-size:14px;transition:.2s}
.hdr__login:hover{background:var(--orange-d)}
.hdr__s7{display:flex;align-items:center;padding-inline-start:14px;margin-inline-start:4px;border-inline-start:1px solid rgba(255,255,255,.18)}
.hdr__s7 img{height:40px;width:auto}
.hdr__burger{display:none}

/* ===== buttons (brand: pill + round arrow) ===== */
.btn{display:inline-flex;align-items:center;gap:14px;height:54px;padding:0 24px 0 7px;border-radius:999px;font-weight:700;font-size:16px;background:var(--forest);color:#fff;transition:transform .15s, background .2s;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn .arr{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--orange);color:#fff}
.btn .arr i{width:20px;height:20px}
.btn--orange{background:var(--orange)}
.btn--orange .arr{background:#fff;color:var(--orange)}
.btn--orange:hover{background:var(--orange-d)}
.btn--light{background:#fff;color:var(--forest)}
.btn--light .arr{background:var(--green)}
.btn--pink{background:var(--pink)}
.btn--pink .arr{background:#fff;color:var(--pink)}
.btn--sm{height:44px;font-size:14px;padding:0 18px 0 5px;gap:10px}
.btn--sm .arr{width:34px;height:34px}
.btn--block{width:100%;justify-content:space-between}
.btn[disabled]{opacity:.45;pointer-events:none}
.link{color:var(--forest);font-weight:700;display:inline-flex;align-items:center;gap:6px}
.link:hover{color:var(--orange-d)}

/* ===== hero ===== */
.hero{padding-top:24px}
.hero__stage{position:relative;height:560px;border-radius:var(--r-xl);overflow:hidden;background:var(--forest-d);isolation:isolate}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;pointer-events:none}
.slide.on{opacity:1;pointer-events:auto}
.slide__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 7s ease}
.slide.on .slide__img{transform:scale(1)}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,rgba(13,53,19,.55) 0%,rgba(13,53,19,.05) 55%);z-index:0}
.slide--end::after{background:linear-gradient(90deg,rgba(13,53,19,.55) 0%,rgba(13,53,19,.05) 55%)}
.slide__panel{position:absolute;inset-block:48px;inset-inline-start:48px;width:min(520px,52%);z-index:1;display:flex;flex-direction:column;justify-content:center;padding:56px 56px 64px;color:#fff}
.slide--end .slide__panel{inset-inline-start:auto;inset-inline-end:48px}
.slide__panel > svg{position:absolute;inset:0;width:100%;height:100%;z-index:-1;filter:drop-shadow(0 20px 40px rgba(0,0,0,.25))}
.slide__kicker{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;opacity:.95;margin-bottom:10px}
.slide__kicker::before{content:"";width:28px;height:3px;border-radius:3px;background:currentColor}
.slide h1{font-size:50px;font-weight:900;letter-spacing:-.5px;line-height:1.15}
.slide p{font-size:18px;margin:14px 0 28px;opacity:.95;max-width:380px}
.hero__dots{position:absolute;inset-block-end:24px;inset-inline-start:50%;transform:translateX(50%);display:flex;gap:8px;z-index:3}
.hero__dots button{width:10px;height:10px;border-radius:999px;background:rgba(255,255,255,.5);transition:.3s}
.hero__dots button.on{width:34px;background:#fff}
.hero__nav{position:absolute;inset-block-start:50%;z-index:3;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--forest);display:grid;place-items:center;transform:translateY(-50%);box-shadow:var(--shadow)}
.hero__nav--next{inset-inline-end:16px}
.hero__stage.is-end .hero__nav--next{inset-inline-end:auto;inset-inline-start:16px}

/* booking bar */
.qbook{position:relative;z-index:5;margin:-58px auto 0;width:min(1060px,calc(100% - 48px));background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:18px;display:grid;grid-template-columns:1fr 230px auto;gap:14px;align-items:stretch}
.qbook__field{border:1.5px solid var(--line);border-radius:var(--r);padding:10px 16px;min-width:0}
.qbook__label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:6px}
.qbook__label i{color:var(--orange)}
.days{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.days::-webkit-scrollbar{display:none}
.day{flex:none;min-width:60px;padding:6px 8px;border-radius:14px;text-align:center;border:1.5px solid transparent;background:var(--beige);line-height:1.25;transition:.15s}
.day b{display:block;font-size:19px;font-weight:700}
.day small{font-size:11.5px;color:var(--muted)}
.day:hover{border-color:var(--beige-3)}
.day.on{background:var(--forest);color:#fff}
.day.on small{color:#cfe6cf}
.day[disabled]{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.qbook__people{display:flex;align-items:center;justify-content:space-between;gap:10px}
.qbook__people strong{font-size:18px}
.qbook .btn{height:auto;min-height:62px;align-self:stretch;border-radius:var(--r);padding:0 26px 0 12px;justify-content:space-between}

/* ===== sections ===== */
.sec{padding:88px 0 0}
.sec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}
.sec__title{display:flex;align-items:center;gap:14px}
.sec__title svg{width:44px;height:44px;flex:none}
.sec__title h2{font-size:34px;font-weight:900}
.sec__sub{color:var(--muted);margin-top:4px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{height:40px;padding:0 18px;border-radius:999px;background:#fff;border:1.5px solid var(--line);font-weight:500;font-size:14px;transition:.15s}
.chip:hover{border-color:var(--forest)}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}

/* ticket cards */
.tgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.tcard{--c:var(--orange);position:relative;display:flex;flex-direction:column;background:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 2px 0 rgba(0,0,0,.02);transition:transform .2s, box-shadow .2s}
.tcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.tcard__top{position:relative;background:var(--c);color:#fff;padding:24px 24px 30px;min-height:190px;overflow:hidden}
.tcard__top svg.blob{position:absolute;width:190px;height:190px;inset-inline-end:-50px;inset-block-end:-70px;opacity:.22}
.tcard__tag{display:inline-block;font-size:12px;font-weight:700;background:rgba(255,255,255,.22);padding:3px 12px;border-radius:999px;margin-bottom:14px}
.tcard__top h3{font-size:24px;font-weight:900}
.tcard__top p{font-size:14px;opacity:.95;margin-top:6px;max-width:240px}
.tcard__perf{position:relative;height:0;border-top:2px dashed var(--line);margin:0 18px}
.tcard__perf::before,.tcard__perf::after{content:"";position:absolute;top:-15px;width:28px;height:28px;border-radius:50%;background:var(--beige)}
.tcard__perf::before{right:-34px}.tcard__perf::after{left:-34px}
.tcard__body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:14px;flex:1}
.tcard__feats{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px;color:#4a463d}
.tcard__feats li{display:flex;gap:8px;align-items:flex-start}
.tcard__feats i{color:var(--green);margin-top:4px}
.tcard__foot{display:flex;align-items:flex-end;justify-content:space-between;margin-top:auto;gap:10px}
.price small{display:block;font-size:12px;color:var(--muted)}
.price b{font-size:28px;font-weight:900;line-height:1}
.price span{font-size:14px;font-weight:500;margin-inline-start:4px}

/* experiences scroller */
.rail{position:relative}
.rail__track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 60px)/4);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 2px 18px}
.rail__track::-webkit-scrollbar{display:none}
.rail__btns{display:flex;gap:8px}
.rail__btns button{width:44px;height:44px;border-radius:50%;background:#fff;border:1.5px solid var(--line);display:grid;place-items:center;color:var(--forest);transition:.15s}
.rail__btns button:hover{background:var(--forest);color:#fff;border-color:var(--forest)}
.xcard{scroll-snap-align:start;display:flex;flex-direction:column;background:#fff;border-radius:var(--r-lg);overflow:hidden;transition:transform .2s, box-shadow .2s;cursor:pointer}
.xcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.xcard__media{position:relative;aspect-ratio:4/3.1;overflow:hidden;background:var(--beige-2)}
.xcard__media > img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.xcard:hover .xcard__media > img{transform:scale(1.05)}
.xcard__badge{position:absolute;inset-block-start:14px;inset-inline-start:14px;background:#fff;color:var(--ink);font-size:12px;font-weight:700;padding:4px 12px;border-radius:999px}
.xcard__fav{position:absolute;inset-block-start:12px;inset-inline-end:12px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;color:var(--pink)}
.xcard__fav.on{background:var(--pink);color:#fff}
.xcard__sticker{position:absolute;inset-block-end:-1px;inset-inline-end:12px;width:46%;max-height:46%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 6px 10px rgba(0,0,0,.3));transform:translateY(22%) rotate(-3deg)}
.xcard__body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.xcard__body h3{font-size:19px;font-weight:700}
.meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--muted)}
.meta span{display:inline-flex;align-items:center;gap:5px}
.meta i{color:var(--orange)}
.xcard__foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:10px}
.xcard__foot .price b{font-size:22px}
.go{width:42px;height:42px;border-radius:50%;background:var(--forest);color:#fff;display:grid;place-items:center;transition:.2s}
.xcard:hover .go{background:var(--orange)}

/* zones */
.zgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.zcard{position:relative;display:block;min-height:300px;border-radius:var(--r-lg);isolation:isolate}
.zcard__media{position:absolute;inset:0;border-radius:inherit;overflow:hidden;background:var(--beige-2);box-shadow:0 2px 0 rgba(0,0,0,.03)}
.zcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.zcard:hover .zcard__media img{transform:scale(1.06)}
.zcard__logo{position:absolute;inset-block-end:16px;inset-inline-start:16px;width:92px;z-index:2;filter:drop-shadow(0 4px 10px rgba(0,0,0,.3));transition:transform .3s ease}
.zcard:hover .zcard__logo{transform:translateY(-3px)}

/* map / visit */
.visit{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}
.visit__map{position:relative;background:#F8F5E4;border-radius:var(--r-lg);overflow:hidden;min-height:520px}
.visit__map img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.visit__map .btn{position:absolute;inset-block-end:20px;inset-inline-start:20px}
.visit__col{display:grid;gap:20px}
.card{background:#fff;border-radius:var(--r-lg);padding:26px}
.card h3{font-size:20px;font-weight:900;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.card--forest{background:var(--forest);color:#fff;position:relative;overflow:hidden}
.card--forest .blob{position:absolute;width:220px;height:220px;inset-inline-end:-60px;inset-block-start:-70px;opacity:.15}
.hours{display:grid;gap:2px}
.hours div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:15px}
.hours div:last-child{border:0}
.hours b{font-weight:700}
.free{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.free div{background:var(--beige);border-radius:var(--r);padding:16px 12px;text-align:center;font-size:13.5px;font-weight:500;line-height:1.45}
.free i{width:34px;height:34px;padding:7px;border-radius:12px;color:#fff;margin:0 auto 8px;display:flex}
.note{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--muted);margin-top:14px}
.note i{color:var(--orange);margin-top:3px}

/* app banner */
.appban{position:relative;margin-top:88px;background:var(--orange);border-radius:var(--r-xl);overflow:hidden;color:#fff;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;min-height:320px}
.appban__txt{padding:48px 56px;position:relative;z-index:1}
.appban__txt h2{font-size:38px;font-weight:900}
.appban__txt p{font-size:17px;margin:12px 0 24px;max-width:440px}
.appban__art{position:relative;height:100%;min-height:320px}
.appban__art .spots{position:absolute;inset:0;width:100%;height:100%;opacity:.35}
.appban__ticket{position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(50%,-50%) rotate(-8deg);width:250px}
.mini-ticket{background:#fff;color:var(--ink);border-radius:24px;padding:20px;text-align:center;box-shadow:0 30px 50px -20px rgba(0,0,0,.45);display:flex;flex-direction:column;align-items:center;gap:4px}
.mini-ticket > img{height:46px;width:auto;margin-bottom:10px}
.mini-ticket__qr{width:150px;height:150px;padding:8px;border-radius:14px;background:var(--beige);margin-bottom:8px}
.mini-ticket__qr svg{width:100%;height:100%}
.mini-ticket b{font-size:15px}
.mini-ticket small{font-size:12.5px;color:var(--muted)}

/* partners */
.partners{margin-top:88px;background:#fff;border-block:1px solid var(--line)}
.partners__in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:130px;flex-wrap:wrap;padding-block:20px}
.partners__label{font-weight:700;color:var(--muted)}
.partners__logos{display:flex;align-items:center;gap:48px;flex-wrap:wrap}
.p-ncw{height:81px;width:auto}
.p-zoo{height:62px;width:auto}
.p-s7{border-radius:16px;padding:6px 14px;display:flex}
.p-s7 img{height:48px;width:auto}

/* footer */
.ftr{position:relative;background:var(--forest-d);color:#DDEBD6;overflow:hidden;padding-top:64px}
.ftr__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:36px;position:relative}
.ftr__zoo{height:64px;width:auto;margin-bottom:16px}
.ftr__about p{font-size:14.5px;opacity:.85;max-width:340px}
.ftr h4{color:#fff;font-size:16px;margin-bottom:14px}
.ftr__grid > div > a{display:block;font-size:14.5px;opacity:.8;padding:4px 0}
.ftr__grid > div > a:hover{opacity:1;color:var(--orange)}
.social{display:flex;gap:8px;margin-top:20px}
.social a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);font-size:12px;font-weight:700}
.social a:hover{background:var(--orange);color:#fff}
.ftr__s7 img{height:58px;width:auto;margin-bottom:12px}
.pay-badges{display:flex;flex-wrap:wrap;gap:6px}
.pay-badges span{background:#fff;border-radius:8px;height:34px;padding:0 10px;display:flex;align-items:center}
.pay-badges img{height:18px;width:auto}
.ftr__bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:48px;padding-block:20px;border-top:1px solid rgba(255,255,255,.1);font-size:13px;opacity:.85}
.ftr__ncw{height:44px;width:auto}
.ftr__shape{position:absolute;width:420px;height:420px;inset-inline-start:-120px;inset-block-end:-160px;background:var(--forest);border-radius:42% 58% 63% 37% / 41% 44% 56% 59%;opacity:.6}

/* ===== booking page ===== */
.crumbs{display:flex;gap:8px;align-items:center;font-size:13.5px;color:var(--muted);padding:22px 0 14px}
.crumbs a:hover{color:var(--forest)}
.bk-banner{position:relative;height:400px;border-radius:var(--r-xl);overflow:hidden;background:var(--forest-d)}
.bk-banner > img{width:100%;height:100%;object-fit:cover}
.bk-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,53,19,.65),transparent 55%)}
.bk-banner__sticker{position:absolute;z-index:1;inset-block-end:24px;inset-inline-end:28px;width:200px;transform:rotate(-4deg);filter:drop-shadow(0 10px 20px rgba(0,0,0,.35))}
.bk-banner__acts{position:absolute;z-index:1;inset-block-start:20px;inset-inline-end:20px;display:flex;gap:8px}
.bk-banner__acts button{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;color:var(--forest)}
.bk-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:36px;margin-top:28px;position:relative;z-index:2;align-items:start}
.bk-main{padding-top:0}
.bk-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.tag{font-size:12.5px;font-weight:700;padding:4px 12px;border-radius:999px;background:var(--beige-2);color:var(--forest)}
.tag--o{background:var(--orange);color:#fff}
.bk-main h1{font-size:42px;font-weight:900}
.bk-lead{font-size:18px;color:#4a463d;margin-top:10px;max-width:680px}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0}
.fact{background:#fff;border-radius:var(--r);padding:16px}
.fact i{width:38px;height:38px;padding:9px;border-radius:12px;background:var(--beige);color:var(--forest);display:flex;margin-bottom:10px}
.fact small{display:block;color:var(--muted);font-size:12.5px}
.fact b{font-size:15px}
.bk-sec{margin-top:36px}
.bk-sec h2{font-size:24px;font-weight:900;margin-bottom:14px}
.bk-sec p{color:#4a463d}
.incl{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;list-style:none;padding:0;margin:0}
.incl li{display:flex;gap:10px;align-items:center;background:#fff;border-radius:var(--r-sm);padding:12px 14px;font-weight:500;font-size:15px}
.incl i{width:28px;height:28px;padding:6px;border-radius:50%;background:var(--green);color:#fff}
.acc{background:#fff;border-radius:var(--r);margin-bottom:10px;overflow:hidden}
.acc summary{list-style:none;cursor:pointer;padding:16px 20px;font-weight:700;display:flex;justify-content:space-between;align-items:center}
.acc summary::-webkit-details-marker{display:none}
.acc summary i{transition:.2s;color:var(--orange)}
.acc[open] summary i{transform:rotate(-90deg)}
.acc ul{margin:0;padding:0 40px 18px 20px;color:#4a463d;font-size:14.5px;display:grid;gap:6px}
.bk-map{border-radius:var(--r-lg);overflow:hidden;background:#F8F5E4;position:relative;height:340px}
.bk-map img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.bk-map .btn{position:absolute;inset-block-end:16px;inset-inline-start:16px}

/* panel */
.panel{position:sticky;top:calc(var(--hdr) + 16px);background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.panel__head{background:var(--forest);color:#fff;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden}
.panel__head .blob{position:absolute;width:160px;height:160px;inset-inline-start:-40px;inset-block-start:-60px;opacity:.18}
.panel__head h3{font-size:19px;font-weight:900;position:relative}
.panel__head .price{position:relative;text-align:left}
.panel__head .price small{color:#cfe6cf}
.panel__head .price b{font-size:24px}
.panel__body{padding:8px 24px 24px}
.step{padding:18px 0;border-bottom:1px solid var(--line)}
.step:last-of-type{border:0}
.step__h{display:flex;align-items:center;gap:10px;font-weight:700;margin-bottom:12px}
.step__n{width:26px;height:26px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-size:13px}
.step__h small{margin-inline-start:auto;color:var(--muted);font-weight:500;font-size:13px}
.cal__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cal__nav b{font-size:15px}
.cal__nav button{width:34px;height:34px;border-radius:50%;background:var(--beige);display:grid;place-items:center}
.cal__nav button[disabled]{opacity:.35;pointer-events:none}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal__grid .wd{font-size:11.5px;color:var(--muted);padding:4px 0}
.cal__grid button{aspect-ratio:1;border-radius:12px;font-size:14px;font-weight:500;transition:.12s}
.cal__grid button:hover{background:var(--beige)}
.cal__grid button.today{box-shadow:inset 0 0 0 1.5px var(--orange)}
.cal__grid button.on{background:var(--forest);color:#fff}
.cal__grid button[disabled]{color:#c6c0a6;pointer-events:none}
.cal__grid button.closed{text-decoration:line-through}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.slot{border:1.5px solid var(--line);border-radius:14px;padding:8px 6px;text-align:center;line-height:1.3;transition:.12s}
.slot b{display:block;font-size:14.5px}
.slot small{font-size:11.5px;color:var(--green);font-weight:500}
.slot small.low{color:var(--pink)}
.slot:hover{border-color:var(--forest)}
.slot.on{border-color:var(--forest);background:var(--forest);color:#fff}
.slot.on small{color:#cfe6cf}
.slot[disabled]{opacity:.4;pointer-events:none}
.qty{display:flex;align-items:center;gap:12px;padding:10px 0}
.qty + .qty{border-top:1px dashed var(--line)}
.qty__info{flex:1;min-width:0}
.qty__info b{display:block;font-size:15px}
.qty__info small{color:var(--muted);font-size:12.5px;line-height:1.4;display:block}
.qty__price{font-weight:700;font-size:14px;white-space:nowrap}
.stepper{display:flex;align-items:center;gap:4px;background:var(--beige);border-radius:999px;padding:3px}
.stepper button{width:32px;height:32px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--forest);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.stepper button[disabled]{opacity:.35;pointer-events:none}
.stepper span{min-width:24px;text-align:center;font-weight:700}
.addon{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);border-radius:16px;padding:10px 12px;cursor:pointer;transition:.12s}
.addon + .addon{margin-top:8px}
.addon img{width:54px;height:54px;border-radius:12px;object-fit:cover;flex:none}
.addon__t{flex:1;min-width:0;line-height:1.35}
.addon__t b{display:block;font-size:14.5px}
.addon__t small{color:var(--muted);font-size:12.5px}
.addon input{position:absolute;opacity:0;pointer-events:none}
.addon .tick{width:24px;height:24px;border-radius:8px;border:1.5px solid var(--beige-3);display:grid;place-items:center;color:transparent;flex:none}
.addon.on{border-color:var(--green);background:#F3FAF1}
.addon.on .tick{background:var(--green);border-color:var(--green);color:#fff}
.total{display:flex;justify-content:space-between;align-items:center;padding:16px 0 14px}
.total span{color:var(--muted);font-size:14px}
.total b{font-size:28px;font-weight:900}
.total b small{font-size:14px;font-weight:500}
.secure{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12.5px;color:var(--muted);margin-top:12px}
.secure i{color:var(--green)}
.mbar{display:none}

/* ===== checkout ===== */
.steps{display:flex;align-items:center;gap:10px;margin:8px 0 28px;flex-wrap:wrap}
.steps span{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;color:var(--muted)}
.steps span b{width:28px;height:28px;border-radius:50%;background:var(--beige-2);display:grid;place-items:center;font-size:13px}
.steps span.done b{background:var(--green);color:#fff}
.steps span.on{color:var(--ink)}
.steps span.on b{background:var(--orange);color:#fff}
.steps .ln{width:40px;height:2px;background:var(--beige-3);border-radius:2px}
.co-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:32px;align-items:start;padding-bottom:20px}
.co-grid h1{font-size:34px;font-weight:900;margin-bottom:6px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form .full{grid-column:1/-1}
.fld label{display:block;font-size:13.5px;font-weight:700;margin-bottom:6px}
.fld input,.fld select{width:100%;height:54px;border-radius:16px;border:1.5px solid var(--line);background:#fff;padding:0 16px;font-size:15.5px;transition:.15s}
.fld input:focus,.fld select:focus{outline:0;border-color:var(--forest);box-shadow:0 0 0 4px rgba(30,105,40,.12)}
.fld .ph{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.fld .ph:focus-within{border-color:var(--forest);box-shadow:0 0 0 4px rgba(30,105,40,.12)}
.fld .ph span{padding:0 14px;border-inline-end:1.5px solid var(--line);font-weight:700;direction:ltr;height:54px;display:grid;place-items:center;background:var(--beige)}
.fld .ph input{border:0;box-shadow:none !important;direction:ltr;text-align:right}
.fld .err{color:#C2410C;font-size:12.5px;margin-top:4px;display:none}
.fld.bad input,.fld.bad .ph{border-color:#E5533D}
.fld.bad .err{display:block}
.pay{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.pay label{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);background:#fff;border-radius:16px;padding:14px 16px;cursor:pointer;transition:.12s}
.pay input{accent-color:var(--forest);width:18px;height:18px}
.pay label:has(input:checked){border-color:var(--forest);background:#F3FAF1}
.pay__logo{margin-inline-start:auto;display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);padding:6px 10px;border-radius:10px;height:38px}
.pay__logo img{height:20px;width:auto}
.pay label small{display:block;color:var(--muted);font-size:12px}
.summary{position:sticky;top:calc(var(--hdr) + 16px);background:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.summary__img{height:150px;position:relative}
.summary__img > img:first-child{width:100%;height:100%;object-fit:cover}
.summary__img .s{position:absolute;inset-block-end:12px;inset-inline-end:16px;width:110px;height:auto;transform:rotate(-4deg);filter:drop-shadow(0 6px 10px rgba(0,0,0,.3))}
.summary__body{padding:22px 22px 24px}
.summary__body h3{font-size:19px;font-weight:900}
.srow{display:flex;justify-content:space-between;gap:12px;font-size:14.5px;padding:7px 0}
.srow span:first-child{color:var(--muted)}
.srow.hr{border-top:1px dashed var(--line);margin-top:6px;padding-top:12px}
.srow.big{font-size:18px;font-weight:900}
.srow.big span:first-child{color:var(--ink)}
.timer{display:flex;align-items:center;gap:8px;background:#FFF4E5;color:#9A4A00;border-radius:14px;padding:10px 14px;font-size:13.5px;font-weight:500;margin-bottom:18px}
.timer b{font-variant-numeric:tabular-nums;margin-inline-start:auto;font-size:16px;direction:ltr}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:18px 0}
.check input{accent-color:var(--forest);width:18px;height:18px;margin-top:4px}
.check a{color:var(--forest);font-weight:700;text-decoration:underline}

/* ===== success / e-ticket ===== */
.success{max-width:900px;margin:0 auto;padding:40px 0 10px;text-align:center}
.done__icon{width:84px;height:84px;margin:0 auto 18px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 12px rgba(48,169,63,.15)}
.done__icon i{width:40px;height:40px}
.success h1{font-size:38px;font-weight:900}
.success > p{color:var(--muted);margin-top:6px}
.eticket{margin:36px auto 0;max-width:820px;display:grid;grid-template-columns:1fr 250px;background:#fff;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg);text-align:start}
.eticket__main{position:relative;padding:30px 32px;overflow:hidden}
.eticket__main .blob{position:absolute;width:260px;height:260px;inset-inline-end:-80px;inset-block-end:-110px;opacity:.12}
.eticket__brand{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}
.eticket__brand img{height:52px;width:auto}
.eticket__brand .s7{height:42px;background:var(--ink);border-radius:10px;padding:3px 8px}
.eticket h2{font-size:26px;font-weight:900}
.eticket__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px;position:relative}
.eticket__grid small{display:block;font-size:12px;color:var(--muted)}
.eticket__grid b{font-size:15px}
.eticket__stub{position:relative;background:var(--forest);color:#fff;padding:26px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-inline-start:3px dashed rgba(255,255,255,.35)}
.eticket__stub::before,.eticket__stub::after{content:"";position:absolute;inset-inline-start:-18px;width:34px;height:34px;border-radius:50%;background:var(--beige)}
.eticket__stub::before{top:-17px}.eticket__stub::after{bottom:-17px}
.qr{background:#fff;padding:10px;border-radius:16px;width:170px;height:170px}
.qr svg{width:100%;height:100%}
.eticket__code{font-family:ui-monospace,Menlo,monospace;letter-spacing:2px;font-size:15px;direction:ltr}
.done__acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:28px}

/* my tickets */
.mt-list{display:grid;gap:16px}
.mt{display:grid;grid-template-columns:150px 1fr auto;gap:20px;align-items:center;background:#fff;border-radius:var(--r-lg);padding:14px;padding-inline-end:24px}
.mt img{width:150px;height:110px;object-fit:cover;border-radius:var(--r)}
.mt h3{font-size:19px;font-weight:900}
.mt .status{display:inline-block;font-size:12px;font-weight:700;background:#E7F5E3;color:var(--forest);padding:2px 10px;border-radius:999px;margin-bottom:4px}
.empty{background:#fff;border-radius:var(--r-xl);padding:56px 24px;text-align:center;position:relative;overflow:hidden}
.empty img.mark{width:84px;margin:0 auto 16px}
.empty h2{font-size:26px;font-weight:900}
.empty p{color:var(--muted);margin:8px 0 22px}

/* modal / drawer / toast */
.modal{position:fixed;inset:0;z-index:100;background:rgba(19,30,20,.55);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}
.modal[hidden],.drawer[hidden]{display:none}
.modal__box{position:relative;background:#fff;border-radius:var(--r-xl);width:min(460px,100%);padding:32px;overflow:hidden;animation:pop .25s ease}
.modal__box .blob{position:absolute;width:200px;height:200px;inset-inline-end:-70px;inset-block-start:-80px;opacity:.9}
.modal__close{position:absolute;inset-block-start:16px;inset-inline-start:16px;width:38px;height:38px;border-radius:50%;background:var(--beige);display:grid;place-items:center;z-index:1}
.modal__box h2{font-size:26px;font-weight:900;margin:10px 0 6px;position:relative}
.modal__box > p{color:var(--muted);margin-bottom:20px;position:relative}
.otp{display:flex;gap:10px;justify-content:center;direction:ltr;margin:6px 0 18px}
.otp input{width:58px;height:62px;text-align:center;font-size:24px;font-weight:700;border-radius:16px;border:1.5px solid var(--line)}
.otp input:focus{outline:0;border-color:var(--forest)}
.search-box{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:16px;padding:0 14px;height:56px;margin-bottom:14px}
.search-box input{border:0;outline:0;flex:1;font-size:16px;background:none}
.sres{display:grid;gap:6px;max-height:50vh;overflow:auto}
.sres a{display:flex;align-items:center;gap:12px;padding:8px;border-radius:14px}
.sres a:hover{background:var(--beige)}
.sres img{width:52px;height:52px;border-radius:12px;object-fit:cover}
.sres small{display:block;color:var(--muted);font-size:12.5px}
@keyframes pop{from{transform:translateY(10px) scale(.98);opacity:0}}
.drawer{position:fixed;inset:0;z-index:90;background:rgba(19,30,20,.5)}
.drawer__panel{position:absolute;inset-block:0;inset-inline-start:0;width:min(320px,85vw);background:var(--forest);color:#fff;padding:24px;display:flex;flex-direction:column;gap:6px;animation:slide .25s ease}
.drawer__panel img{height:52px;width:auto;margin-bottom:18px;align-self:flex-start}
.drawer__panel a{padding:12px 14px;border-radius:14px;font-weight:700;font-size:17px}
.drawer__panel a:hover,.drawer__panel a.on{background:rgba(255,255,255,.1)}
@keyframes slide{from{transform:translateX(30px);opacity:0}}
.toast{position:fixed;inset-block-end:24px;inset-inline-start:50%;transform:translate(50%,30px);z-index:120;background:var(--ink);color:#fff;padding:12px 20px;border-radius:14px;font-weight:500;font-size:14.5px;opacity:0;pointer-events:none;transition:.3s;max-width:calc(100% - 32px)}
.toast.on{opacity:1;transform:translate(50%,0)}


/* ===== responsive ===== */
@media (max-width:1100px){
  .hdr__nav{display:none}
  .hdr__burger{display:grid}
  .tgrid{grid-template-columns:repeat(2,1fr)}
  .rail__track{grid-auto-columns:calc((100% - 40px)/3)}
  .bk-grid,.co-grid{grid-template-columns:1fr}
  .bk-grid{margin-top:22px}
  .panel{position:relative;top:0}
  .summary{position:relative;top:0}
  .facts{grid-template-columns:repeat(2,1fr)}
  .ftr__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  :root{--hdr:64px}
  .wrap{padding-inline:16px}
  .hide-sm{display:none}
  .topbar{font-size:12px}
  .topbar__ncw{height:31px}
  .hdr__in{gap:10px}
  .hdr__zoo{height:38px}
  .hdr__login span{display:none}
  .hdr__login{width:42px;padding:0;justify-content:center}
  .hdr__s7{padding-inline-start:8px}
  .hdr__s7 img{height:32px}
  .hdr__actions .icon-btn[data-action="search"]{display:none}
  .hero{padding-top:12px}
  .hero__stage{height:560px;border-radius:var(--r-lg)}
  .slide::after,.slide--end::after{background:linear-gradient(0deg,rgba(13,53,19,.6),rgba(13,53,19,0) 60%)}
  .slide__panel,.slide--end .slide__panel{inset:auto auto 44px 14px;inset-inline-start:14px;inset-inline-end:auto;width:min(236px,calc(100% - 28px));padding:16px 18px 20px}
  .slide__kicker{font-size:11px;margin-bottom:2px}
  .slide__kicker::before{width:18px}
  .slide h1{font-size:21px}
  .slide p{font-size:12px;line-height:1.55;margin:4px 0 10px}
  .slide .btn{height:36px;font-size:12.5px;padding:0 14px 0 4px;gap:8px}
  .slide .btn .arr{width:28px;height:28px}
  .slide .btn .arr i{width:16px;height:16px}
  .hero__nav{display:none}
  .qbook{grid-template-columns:1fr;width:calc(100% - 32px);margin-top:-36px;padding:14px}
  .sec{padding-top:64px}
  .sec__head{flex-direction:column;align-items:flex-start}
  .sec__title h2{font-size:26px}
  .sec__title svg{width:36px;height:36px}
  .tgrid{grid-template-columns:1fr}
  .rail__track{grid-auto-columns:78%}
  .rail__btns{display:none}
  .zgrid{grid-template-columns:1fr 1fr}
  .zgrid{gap:12px}
  .zcard{min-height:200px}
  .zcard__logo{width:66px;inset-block-end:10px;inset-inline-start:10px}
  .visit{grid-template-columns:1fr}
  .visit__map{min-height:420px}
  .free{grid-template-columns:1fr 1fr 1fr}
  .free div{font-size:12px;padding:12px 6px}
  .appban{grid-template-columns:1fr;margin-top:64px}
  .appban__txt{padding:36px 26px 10px}
  .appban__txt h2{font-size:28px}
  .appban__art{min-height:260px}
  .partners{margin-top:64px}
  .partners__logos{gap:22px}
  .p-ncw{height:60px}
  .p-zoo{height:46px}
  .p-s7 img{height:38px}
  .ftr__grid{grid-template-columns:1fr;gap:26px}
  .ftr__bottom{flex-direction:column;align-items:flex-start}
  .bk-banner{height:260px;border-radius:var(--r-lg)}
  .bk-banner__sticker{width:130px}
  .bk-main h1{font-size:30px}
  .bk-lead{font-size:16px}
  .incl{grid-template-columns:1fr}
  .co-grid h1{font-size:26px}
  .form{grid-template-columns:1fr}
  .pay{grid-template-columns:1fr}
  .eticket{grid-template-columns:1fr}
  .eticket__stub{border-inline-start:0;border-top:3px dashed rgba(255,255,255,.35)}
  .eticket__stub::before,.eticket__stub::after{top:-17px;inset-inline-start:auto;bottom:auto}
  .eticket__stub::before{right:-17px}.eticket__stub::after{left:-17px}
  .eticket__grid{grid-template-columns:1fr 1fr}
  .eticket__main{padding:24px 22px}
  .success h1{font-size:28px}
  .mt{grid-template-columns:90px 1fr;padding-inline-end:14px}
  .mt img{width:90px;height:90px}
  .mt > :last-child{grid-column:1/-1}
  .mbar{display:flex;position:fixed;inset-inline:0;inset-block-end:0;z-index:60;background:#fff;box-shadow:0 -10px 30px -10px rgba(0,0,0,.2);padding:12px 16px calc(12px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:12px}
  .mbar .total{padding:0}
  .mbar .total b{font-size:22px}
  body.has-mbar{padding-bottom:84px}
}
@media print{
  .topbar,.hdr,.partners,.ftr,.done__acts,.crumbs{display:none !important}
  body{background:#fff}
  .eticket{box-shadow:none;border:1px solid #ddd}
}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;scroll-behavior:auto !important}}
.slide .slide__panel > *{transition:opacity .35s ease}
.slide:not(.on) .slide__panel > *{opacity:0}
