:root {
  --forest: #063f2f;
  --deep-forest: #022e24;
  --parchment: #f4e3c5;
  --antique-paper: #e8d0a8;
  --asian-red: #c91d24;
  --antique-gold: #c89a52;
  --ink-black: #111111;
  --brand-white: #fff8e8;
  --leaf-green: #47754d;
  --oxblood: var(--asian-red);
  --oxblood-deep: var(--deep-forest);
  --terracotta: var(--antique-gold);
  --gold: var(--antique-gold);
  --saffron: var(--antique-paper);
  --ink: var(--ink-black);
  --cream: var(--parchment);
  --warm-white: var(--brand-white);
  --paper: var(--antique-paper);
  --sage: var(--leaf-green);
  --line: rgba(17, 17, 17, 0.14);
  --shadow: 0 22px 55px rgba(2, 46, 36, 0.16);
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--warm-white); font-family: "Poppins", system-ui, sans-serif; overflow-x:hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
body.drawer-open { overflow: hidden; }

.preview-strip { padding: 7px 16px; color: var(--antique-paper); background: #001f18; text-align: center; font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.site-header { min-height: 78px; margin: 0; padding: 8px max(24px,calc((100vw - 1192px)/2)); position:relative; z-index:40; display: grid; grid-template-columns: auto 1fr auto; gap: 28px; align-items: center; color:var(--brand-white); background:var(--forest); border-bottom:1px solid rgba(200,154,82,.5); overflow:hidden; }
.site-header::before,.site-header::after { content:""; width:90px; height:36px; position:absolute; border-radius:100% 0 100% 0; background:var(--leaf-green); opacity:.55; pointer-events:none; }
.site-header::before { left:-28px; top:-6px; transform:rotate(24deg); }
.site-header::after { right:-30px; bottom:-9px; transform:rotate(204deg); }
.brand { display: flex; gap: 10px; align-items: center; }
.brand-mark { width: 58px; height: 58px; flex:0 0 auto; display: grid; place-items: center; border:2px solid var(--antique-gold); border-radius: 50%; background: var(--brand-white); overflow:hidden; box-shadow: 0 6px 16px rgba(0,0,0,.24); }
.brand-mark img { width:100%; height:100%; display:block; border-radius:50%; object-fit:cover; }
.brand > span:last-child { display: grid; line-height: 1.05; }
.brand strong { color:var(--brand-white); font-family: "Playfair Display", serif; font-size: 17px; }
.brand strong i { color:var(--antique-gold); font-family: "Caveat", cursive; font-size: 17px; font-weight: 700; }
.brand small { margin-top: 4px; color: rgba(255,248,232,.68); font-size: 7px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.desktop-nav { display: flex; justify-content: center; gap: clamp(13px,1.6vw,27px); color: var(--brand-white); font-size: 11px; font-weight: 600; white-space:nowrap; }
.desktop-nav a { position: relative; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:2px; background:var(--antique-gold); transition:right .2s ease; }
.desktop-nav a:hover::after,.desktop-nav a.active::after { right:0; }
.desktop-nav a.active { color:var(--antique-gold); }
.bag-button { display: flex; gap: 8px; align-items: center; border: 1px solid rgba(255,255,255,.17); border-radius: 999px; padding: 10px 10px 10px 17px; color: var(--brand-white); background: var(--asian-red); box-shadow: 0 8px 20px rgba(0,0,0,.22); cursor: pointer; font-weight: 800; text-transform: uppercase; white-space:nowrap; }
.bag-button span { display:flex; align-items:center; gap:7px; }
.bag-button svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.bag-button b, .mobile-order-bar b { min-width: 25px; height: 25px; padding: 0 6px; display: grid; place-items: center; border-radius: 999px; color: var(--deep-forest); background: var(--brand-white); font-size: 12px; }

.section-shell { max-width: 1240px; margin: 0 auto; padding-inline: 24px; }
.hero { min-height: 690px; position: relative; isolation:isolate; display: grid; grid-template-columns: .68fr 1.28fr .82fr; align-items: center; gap: 34px; padding-top: 48px; padding-bottom: 118px; overflow:visible; }
.hero::before { content:""; width:100vw; position:absolute; z-index:-3; left:50%; top:0; bottom:0; transform:translateX(-50%); background-color:var(--parchment); background-image:url("assets/home-travel-background.webp"); background-position:center center; background-repeat:no-repeat; background-size:cover; }
.hero::after { content:""; width:100vw; position:absolute; z-index:-2; left:50%; top:0; bottom:0; transform:translateX(-50%); pointer-events:none; background:linear-gradient(90deg,rgba(244,227,197,.5) 0%,rgba(244,227,197,.84) 34%,rgba(244,227,197,.76) 67%,rgba(244,227,197,.44) 100%); }
.hero-landmarks { width:100vw; height:185px; position:absolute; z-index:-1; left:50%; bottom:-1px; display:none; transform:translateX(-50%); color:var(--forest); overflow:hidden; opacity:.42; }
.hero-landmarks svg { width:100%; height:100%; fill:currentColor; }
.hero-flight-path { width:340px; height:110px; position:absolute; z-index:0; left:49%; top:52px; display:none; border-top:2px dashed rgba(6,63,47,.35); border-radius:50%; transform:rotate(8deg); }
.hero-flight-path span { position:absolute; right:8px; top:-14px; color:var(--forest); font-size:25px; transform:rotate(19deg); }
.hero-brand-panel { position:relative; z-index:2; display:grid; justify-items:center; text-align:center; }
.hero-brand-panel::before,.hero-brand-panel::after { content:"✿"; position:absolute; z-index:-1; color:#d85e68; font-size:26px; text-shadow:-22px 18px 0 #ef9aa0,18px 25px 0 #c91d24,31px -2px 0 #eab0ac; opacity:.82; }
.hero-brand-panel::before { left:-7px; top:16px; transform:rotate(-18deg); }
.hero-brand-panel::after { right:-2px; bottom:92px; transform:rotate(25deg) scale(.74); }
.hero-main-logo { width:min(240px,100%); aspect-ratio:1; border:5px solid rgba(255,248,232,.85); border-radius:50%; object-fit:cover; box-shadow:0 16px 38px rgba(2,46,36,.17),0 0 0 2px var(--asian-red); }
.travel-script { margin:18px 0 1px; color:var(--forest); font:700 30px/1 "Caveat", cursive; transform:rotate(-2deg); }
.delivered-line { display:flex; align-items:center; gap:8px; color:var(--ink); font-size:9px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.delivered-line svg { width:30px; height:22px; fill:none; stroke:var(--forest); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.origin-note { max-width:230px; margin:17px 0 0; padding:10px 12px; border:1px dashed rgba(6,63,47,.28); color:#665747; background:rgba(255,248,232,.52); font:600 10px/1.55 "Poppins",sans-serif; transform:rotate(1deg); }
.hero-copy { max-width: 650px; position: relative; z-index: 2; text-align:center; }
.ad-welcome { width: fit-content; margin:0 auto 17px; padding: 7px 12px; border: 1px solid rgba(6,63,47,.18); border-radius: 999px; color: var(--forest); background: rgba(255,248,232,.62); font-size: 10px; font-weight: 700; }
.ad-welcome span { color: var(--gold); margin-right: 5px; }
.eyebrow { margin: 0 0 12px; color: var(--forest); font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow.light { color: var(--saffron); }
h1, h2 { font-family: "Playfair Display", Georgia, serif; letter-spacing: -.035em; }
h1 { margin: 0 auto; max-width: 670px; font-family:"Caveat",cursive; font-size: clamp(48px, 5.1vw, 72px); font-weight:700; line-height: .8; letter-spacing:-.045em; }
h1 span { display:inline-block; color:var(--ink); }
h1 em { display:inline-block; margin:1px 0 6px; color: var(--asian-red); font-family: "Caveat", cursive; font-size: 1.28em; font-style: normal; font-weight: 700; letter-spacing: -.06em; transform:rotate(-2deg); }
.hero-lede { max-width: 610px; margin: 24px auto 20px; color: #51483f; font-size: 14px; line-height: 1.65; }
.hero-lede strong { color: var(--forest); font-family:"Playfair Display",serif; font-size: 18px; }
.benefit-row { max-width:620px; margin:0 auto 22px; padding:14px 0; display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid rgba(6,63,47,.18); }
.benefit-row > div { min-width:0; padding:0 9px; display:flex; align-items:center; justify-content:center; gap:7px; border-right:1px solid rgba(6,63,47,.16); }
.benefit-row > div:last-child { border-right:0; }
.benefit-row svg { width:29px; height:29px; flex:0 0 auto; fill:none; stroke:var(--forest); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.benefit-row p { margin:0; display:grid; text-align:left; line-height:1.18; text-transform:uppercase; }
.benefit-row strong { color:var(--ink); font-size:8.5px; letter-spacing:.045em; }
.benefit-row small { margin-top:3px; color:#6f6257; font-size:7.5px; letter-spacing:.04em; }
.hero-actions { display: flex; flex-direction:column; align-items:center; justify-content:center; gap: 9px; }
.button { min-height: 50px; padding: 0 21px; border: 0; border-radius: 12px; display: inline-flex; justify-content: center; align-items: center; gap: 18px; cursor: pointer; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: var(--brand-white); background: var(--asian-red); box-shadow: 0 10px 24px rgba(201,29,36,.23); }
.button-primary:hover { background: #aa151b; }
.button-ghost { color: var(--forest); border: 1px solid rgba(6,63,47,.3); background: transparent; }
.button-dark { color: #fff; background: var(--ink); }
.button.full, .full { width: 100%; }
.journey-button { min-width:min(390px,100%); min-height:62px; border-radius:999px; font-size:15px; letter-spacing:.035em; text-transform:uppercase; }
.journey-button .cutlery { font-size:19px; }
.explore-button { min-width:235px; min-height:43px; border-color:var(--ink); border-radius:999px; color:var(--ink); background:rgba(255,248,232,.58); font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.hero-visual { min-height: 520px; position: relative; isolation:isolate; display:grid; place-items:center; }
.hero-visual::before { content:""; width:280px; height:280px; position:absolute; z-index:-1; left:50%; top:49%; transform:translate(-50%,-50%); border-radius:50%; background:var(--asian-red); opacity:.14; box-shadow:0 0 0 28px rgba(255,248,232,.34); }
.passport-cover { width:300px; height:auto; position:relative; display:block; border-radius:12px 22px 22px 12px; background:var(--deep-forest); box-shadow:-7px 8px 0 #001f18,0 27px 52px rgba(2,46,36,.34); transform:rotate(14deg); overflow:hidden; }
.passport-cover::before,.passport-cover::after { display:none; }
.passport-cover-image { width:100%; height:auto; display:block; }
.passport-corner { position:absolute; z-index:2; right:19px; top:18px; padding:8px; border:1px solid rgba(200,154,82,.6); border-radius:50%; font:700 9px/1.05 "Caveat",cursive; text-align:center; transform:rotate(8deg); }
.passport-title { position:relative; z-index:2; display:grid; justify-items:center; text-align:center; }
.passport-title small { font:700 19px/1 "Caveat",cursive; }
.passport-title strong { margin-top:7px; color:var(--antique-gold); font-family:"Playfair Display",serif; font-size:28px; letter-spacing:.04em; }
.passport-title span { margin-top:6px; font-size:7px; font-weight:600; letter-spacing:.19em; text-transform:uppercase; }
.passport-globe { width:130px; height:130px; position:relative; z-index:2; margin:24px 0 12px; color:var(--antique-gold); }
.passport-globe svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.3; }
.passport-globe .land { fill:currentColor; stroke:none; opacity:.88; }
.passport-stamp { width:66px; height:66px; position:absolute; z-index:3; left:17px; bottom:54px; display:grid; place-items:center; border:2px double var(--antique-gold); border-radius:50%; font-size:7px; font-weight:800; line-height:.8; letter-spacing:.08em; text-align:center; transform:rotate(-11deg); }
.passport-stamp b { color:var(--antique-gold); font-size:18px; }
.passport-motto { position:relative; z-index:2; margin:auto 0 18px; font:600 19px/1 "Caveat",cursive; text-align:center; transform:rotate(-2deg); }
.passport-motto strong { color:var(--brand-white); }
.passport-lines { width:54px; position:absolute; z-index:2; right:26px; bottom:63px; display:grid; gap:4px; transform:rotate(-8deg); }
.passport-lines i { height:1px; background:var(--antique-gold); }
.passport-ticket { min-width:225px; position:absolute; z-index:8; left:50%; bottom:30px; padding:12px 15px; display:grid; grid-template-columns:auto 1fr; gap:1px 10px; border:1px dashed var(--forest); color:var(--forest); background:var(--brand-white); box-shadow:0 12px 25px rgba(2,46,36,.14); transform:translateX(-50%) rotate(-4deg); }
.passport-ticket span { grid-row:1/3; align-self:center; font-size:25px; }
.passport-ticket b { font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.passport-ticket small { color:#726454; font-size:8px; text-transform:uppercase; }
.passport-note { min-width:150px; position:absolute; z-index:9; padding:13px 15px; display:grid; border:1px solid rgba(118,77,43,.23); color:var(--ink); background:var(--brand-white); box-shadow:0 9px 20px rgba(53,35,22,.12); font:700 17px/1.03 "Caveat",cursive; }
.passport-note::before { content:""; width:38px; height:11px; position:absolute; left:50%; top:-7px; background:rgba(205,178,126,.72); transform:translateX(-50%) rotate(-3deg); }
.passport-note strong { color:var(--forest); }
.passport-note em { color:var(--asian-red); font-style:normal; }
.passport-note span { margin-top:5px; color:#50453b; font-size:14px; }
.passport-note.note-one { left:-22px; bottom:54px; transform:rotate(-7deg); }
.passport-note.note-two { right:-50px; top:48px; transform:rotate(6deg); }

.menu-section { padding: 92px 0; color: var(--brand-white); background-color:var(--forest); background-image:linear-gradient(rgba(2,46,36,.18),rgba(2,46,36,.18)),url("assets/countries-menu-background.webp"); background-position:center top,center top; background-repeat:no-repeat,repeat-y; background-size:auto,100% auto; border-block: 4px solid var(--antique-gold); position:relative; }
.menu-section::before { display:none; }
.menu-section .section-shell { position:relative; z-index:1; }
.menu-section .eyebrow { color:var(--antique-gold); }
.menu-section .section-heading > p { color:rgba(255,248,232,.72); }
.country-heading { text-align:center; }
.country-heading .eyebrow { margin-bottom:8px; }
.country-heading h2 { margin:0; color:var(--parchment); font:700 clamp(38px,4.4vw,60px)/1.05 "Playfair Display",serif; }
.country-heading > p { margin:10px 0 0; color:rgba(255,248,232,.78); font-size:11px; font-weight:600; letter-spacing:.17em; text-transform:uppercase; }
.country-showcase-grid { margin:34px 0 72px; display:grid; grid-template-columns:repeat(8,1fr); gap:10px; }
.country-tile { min-width:0; aspect-ratio:1; position:relative; padding:0; border:2px solid var(--antique-gold); border-radius:10px; color:var(--brand-white); background:var(--deep-forest); overflow:hidden; cursor:pointer; box-shadow:0 7px 16px rgba(0,0,0,.16); }
.country-tile::before { content:""; position:absolute; z-index:2; inset:0 0 31px; background:linear-gradient(180deg,rgba(2,46,36,.02) 20%,rgba(2,46,36,.3) 100%); transition:background .22s ease; pointer-events:none; }
.country-tile::after { content:""; position:absolute; z-index:3; inset:auto 0 0; height:33px; background:rgba(2,46,36,.96); border-top:1px solid var(--antique-gold); }
.country-tile:hover::before { background:linear-gradient(180deg,rgba(2,46,36,.04) 20%,rgba(2,46,36,.42) 100%); }
.tile-image { width:100%; height:180%; position:absolute; z-index:1; left:0; bottom:-2%; display:block; object-fit:cover; object-position:center bottom; filter:saturate(.96) contrast(1.02); transform:scale(1); transition:transform .22s ease,filter .22s ease; }
.country-tile:hover .tile-image,.country-tile:focus-visible .tile-image { filter:saturate(1.03) contrast(1.04); transform:scale(1.045); }
.tile-flag { position:absolute; z-index:4; left:7px; top:7px; padding:2px 5px; border-radius:4px; background:rgba(255,248,232,.9); font-size:14px; }
.country-tile strong { position:absolute; z-index:4; left:4px; right:4px; bottom:8px; font-size:clamp(7px,.72vw,10px); font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.country-tile em { position:absolute; z-index:5; inset:0 0 31px; display:grid; place-items:center; color:var(--brand-white); background:rgba(2,46,36,.65); opacity:0; font-size:10px; font-style:normal; font-weight:800; letter-spacing:.17em; text-transform:uppercase; transition:opacity .2s ease; }
.country-tile:hover em,.country-tile:focus-visible em { opacity:1; }
.tile-globe { position:absolute; z-index:2; left:50%; top:38%; color:var(--forest); font:400 66px/1 "Playfair Display",serif; transform:translate(-50%,-50%); }
.menu-heading { padding-top:52px; border-top:1px dashed rgba(200,154,82,.5); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.section-heading h2, .passport-order-section h2, .faq-panel h2 { margin: 0; font-size: clamp(38px, 5vw, 60px); line-height: 1.02; }
.section-heading > p { max-width: 440px; margin: 0 0 4px; color: #73665d; line-height: 1.6; }
.country-filter { margin: 34px -4px 27px; padding: 4px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.country-filter::-webkit-scrollbar { display: none; }
.filter-pill { flex: 0 0 auto; min-height: 40px; padding: 0 16px; border: 1px solid rgba(200,154,82,.55); border-radius: 999px; color: rgba(255,248,232,.82); background: rgba(255,255,255,.06); cursor: pointer; font-weight: 700; }
.filter-pill.active { color: var(--deep-forest); border-color: var(--antique-gold); background: var(--antique-gold); box-shadow: 0 8px 18px rgba(0,0,0,.18); }
.menu-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.dish-card { min-height: 370px; position: relative; padding: 20px; display: flex; flex-direction: column; border: 1px solid var(--antique-gold); border-radius: 20px; color:var(--ink); background: var(--brand-white); overflow: hidden; transition: transform .18s ease, box-shadow .18s ease; }
.dish-card:hover { transform: translateY(-4px); box-shadow: 0 16px 35px rgba(76,34,25,.1); }
.dish-card.hidden { display: none; }
.dish-image-frame { width:calc(100% + 40px); height:170px; flex:0 0 auto; margin:-20px -20px 18px; overflow:hidden; border-bottom:1px solid rgba(200,154,82,.48); background:var(--antique-paper); }
.dish-image { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.dish-symbol { width: 90px; height: 90px; margin-bottom: 22px; position: relative; display: grid; place-items: center; border-radius: 50%; font-size: 47px; filter: drop-shadow(0 8px 7px rgba(70,35,20,.16)); }
.country-tag { margin: 0 0 6px; color: var(--forest); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.dish-card h3 { max-width: 220px; margin: 0; font-family: "Playfair Display", serif; font-size: 21px; line-height: 1.12; }
.dish-meta { margin: 7px 0 0; color: #8a776c; font-size: 12px; line-height: 1.4; }
.dish-bottom { margin-top: auto; padding-top: 16px; display: flex; justify-content: space-between; align-items: center; }
.dish-price { color: var(--asian-red); font-size: 19px; font-weight: 800; }
.add-dish { width: 42px; height: 42px; border: 0; border-radius: 50%; color: #fff; background: var(--ink); cursor: pointer; font-size: 22px; transition: transform .16s ease, background .16s ease; }
.add-dish:hover { transform: scale(1.07); background: var(--asian-red); }
.add-dish.added { background: var(--sage); }
.order-how { margin-top: 32px; padding: 22px 25px; display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; border: 1px solid var(--antique-gold); border-radius: 18px; color: var(--brand-white); background: var(--deep-forest); }
.order-how > div { display: flex; gap: 13px; align-items: center; }
.order-how b { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.36); border-radius: 50%; color: var(--saffron); }
.order-how span { display: grid; }
.order-how strong { font-size: 13px; }
.order-how small { margin-top: 3px; color: rgba(255,248,235,.72); font-size: 11px; }

.passport-order-section { padding: 95px 0 100px; position:relative; background-color:var(--deep-forest); background-image:linear-gradient(rgba(244,227,197,.06),rgba(244,227,197,.06)),url("assets/passport-experience-background.webp"); background-position:center,center; background-repeat:no-repeat,no-repeat; background-size:auto,100% 100%; overflow:hidden; }
.stamp-texture { position:absolute; inset:0; pointer-events:none; opacity:.12; }
.stamp-texture span { position:absolute; width:130px; height:130px; display:grid; place-items:center; border:4px double var(--forest); border-radius:50%; color:var(--forest); font:800 13px/1.1 "Poppins",sans-serif; letter-spacing:.08em; text-align:center; text-transform:uppercase; }
.stamp-texture span:nth-child(1){left:3%;top:7%;transform:rotate(-14deg)}
.stamp-texture span:nth-child(2){right:5%;top:22%;width:95px;height:95px;transform:rotate(11deg)}
.stamp-texture span:nth-child(3){left:8%;bottom:19%;width:150px;height:150px;transform:rotate(8deg)}
.stamp-texture span:nth-child(4){right:18%;bottom:4%;width:105px;height:105px;transform:rotate(-9deg)}
.experience-heading { position:relative; z-index:1; text-align:center; }
.experience-heading h2 { margin:0; color:var(--ink); font:700 clamp(46px,5.2vw,68px)/.95 "Caveat",cursive; letter-spacing:-.04em; }
.experience-heading p { margin:10px 0 0; color:var(--forest); font-size:11px; font-weight:700; letter-spacing:.19em; text-transform:uppercase; }
.process-grid { margin:45px 0 58px; position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,1fr) 215px; gap:14px; align-items:stretch; }
.process-step { min-height:210px; position:relative; padding:25px 20px; display:grid; align-content:start; justify-items:center; border:1px solid rgba(200,154,82,.6); border-radius:18px; text-align:center; background:rgba(255,248,232,.74); box-shadow:0 10px 24px rgba(78,48,28,.07); }
.process-step:not(.reward-step)::after { content:"→"; position:absolute; z-index:3; right:-22px; top:42px; color:var(--asian-red); font:700 26px/1 "Caveat",cursive; }
.process-step > span { width:62px; height:62px; display:grid; place-items:center; border-radius:50%; color:var(--brand-white); background:linear-gradient(145deg,var(--antique-gold),#9b6a31); box-shadow:0 7px 14px rgba(102,67,30,.18); font-size:28px; }
.process-step b { margin-top:15px; color:var(--ink); font-size:14px; font-weight:800; text-transform:uppercase; }
.process-step p { margin:8px 0 0; color:#65584d; font-size:10px; line-height:1.55; }
.reward-step { border-color:rgba(201,29,36,.34); }
.reward-note { min-height:210px; padding:25px 18px; display:grid; align-content:center; justify-items:center; border:1px solid rgba(118,77,43,.24); color:var(--ink); background:var(--brand-white); box-shadow:0 13px 25px rgba(78,48,28,.13); text-align:center; transform:rotate(3deg); }
.reward-note::before { content:""; width:56px; height:13px; position:absolute; left:50%; top:-7px; background:rgba(191,160,103,.67); transform:translateX(-50%) rotate(-3deg); }
.reward-note small { font-size:11px; font-weight:800; text-transform:uppercase; }
.reward-note strong { margin:8px 0 3px; color:var(--asian-red); font:800 30px/1 "Poppins",sans-serif; text-transform:uppercase; }
.reward-note em { color:var(--forest); font:700 21px/1 "Caveat",cursive; }
.experience-grid { position:relative; z-index:1; display: grid; grid-template-columns: 1.04fr .96fr; gap: 34px; }
.passport-panel, .faq-panel { border-radius: 28px; }
.passport-panel { padding: 48px; color: var(--brand-white); background: linear-gradient(145deg,var(--forest),var(--deep-forest)); border:1px solid var(--antique-gold); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.passport-intro { max-width: 600px; color: rgba(255,248,235,.76); line-height: 1.65; }
.passport-book { margin-top: 28px; padding: 22px; color: var(--ink); background: var(--paper); border-radius: 17px; box-shadow: 0 15px 35px rgba(30,10,8,.18); background-image: linear-gradient(90deg, transparent 49.7%, rgba(100,60,35,.08) 50%, transparent 50.3%); }
.passport-topline { padding-bottom: 13px; display: flex; justify-content: space-between; border-bottom: 1px dashed rgba(80,51,36,.25); color: var(--oxblood); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.stamp-grid { margin: 19px 0; display: grid; grid-template-columns: repeat(6,1fr); gap: 10px; }
.passport-slot { aspect-ratio: 1; display: grid; place-items: center; border: 1px dashed rgba(112,43,37,.28); border-radius: 50%; color: rgba(112,43,37,.35); background: rgba(255,255,255,.25); font-size: 9px; font-weight: 800; text-align: center; text-transform: uppercase; transform: rotate(var(--tilt)); transition: all .22s ease; }
.passport-slot.filled { color: var(--oxblood); border: 3px double var(--oxblood); background: rgba(255,250,241,.55); box-shadow: 0 3px 0 rgba(112,43,37,.12); }
.progress-track { height: 8px; border-radius: 999px; background: rgba(112,43,37,.13); overflow: hidden; }
.progress-track span { height: 100%; width: 0; display: block; border-radius: inherit; background: linear-gradient(90deg,var(--terracotta),var(--gold)); transition: width .3s ease; }
.passport-book > p { margin: 12px 0 0; color: #68564a; font-size: 11px; }
.passport-countries { margin-top: 17px; display: flex; gap: 7px; flex-wrap: wrap; }
.passport-country { min-height: 35px; padding: 0 12px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: rgba(255,255,255,.78); background: rgba(255,255,255,.05); cursor: pointer; font-size: 11px; }
.passport-country.stamped { color: var(--oxblood-deep); border-color: var(--saffron); background: var(--saffron); }
.text-button { margin-top: 15px; padding: 0; border: 0; color: rgba(255,255,255,.64); background: none; cursor: pointer; font-size: 11px; text-decoration: underline; }
.faq-panel { padding: 48px; border:1px solid rgba(200,154,82,.55); background: var(--brand-white); }
.faq-panel .eyebrow { margin-top: 2px; }
.faq-list { margin: 28px 0; border-top: 1px solid var(--line); }
details { border-bottom: 1px solid var(--line); }
summary { padding: 19px 0; display: flex; justify-content: space-between; gap: 16px; cursor: pointer; font-weight: 800; list-style: none; }
summary::-webkit-details-marker { display:none; }
summary span { color: var(--terracotta); font-size: 20px; transition: transform .2s; }
details[open] summary span { transform: rotate(45deg); }
details p { margin: -6px 34px 18px 0; color: #76695f; font-size: 13px; line-height: 1.65; }

.story-area { padding:90px 0 100px; position:relative; background-color:var(--parchment); background-image:linear-gradient(rgba(244,227,197,.08),rgba(244,227,197,.08)),url("assets/story-background.webp"); background-position:center,center; background-repeat:no-repeat,no-repeat; background-size:auto,cover; }
.story-section { margin-top:0; padding:42px; position:relative; z-index:1; display:grid; grid-template-columns:.9fr 1.1fr .72fr; gap:34px; align-items:center; border:1px solid rgba(200,154,82,.58); color:var(--ink); background:rgba(255,248,232,.82); box-shadow:0 18px 45px rgba(64,42,25,.09); clip-path:polygon(0 1%,6% 0,14% 1.2%,24% .2%,34% 1%,44% 0,55% 1%,65% .2%,76% 1%,87% 0,100% 1%,99.3% 99%,89% 98.6%,78% 100%,66% 98.9%,55% 100%,43% 98.7%,32% 100%,20% 98.8%,8% 100%,.6% 99%); }
.story-postcard { position:relative; overflow:hidden; border:1px solid rgba(17,17,17,.18); background:var(--brand-white); box-shadow:0 12px 25px rgba(60,41,28,.17); transform:rotate(-3deg); }
.story-postcard img { width:100%; height:auto; display:block; }
.tape { width:80px; height:20px; position:absolute; z-index:2; left:50%; top:-12px; background:rgba(206,177,122,.68); transform:translateX(-50%) rotate(2deg); }
.postcard-caption { position:absolute; left:20px; bottom:8px; color:var(--forest); font:700 19px/1 "Caveat",cursive; }
.story-copy .eyebrow { margin-bottom:5px; }
.story-copy h2 { margin:0 0 18px; color:var(--ink); font:700 clamp(38px,4vw,55px)/.95 "Caveat",cursive; letter-spacing:-.035em; }
.story-copy > p { margin:0 0 12px; color:#5f544b; font-size:11px; line-height:1.65; }
.story-signature { display:block; margin-top:14px; color:var(--forest); font:700 21px/1 "Caveat",cursive; }
.story-note { width:max-content; max-width:100%; margin-top:22px; padding:14px 18px; display:grid; border:1px solid rgba(118,77,43,.23); background:var(--antique-paper); box-shadow:0 8px 16px rgba(73,49,30,.1); transform:rotate(-2deg); }
.story-note b { color:var(--asian-red); font:700 20px/1 "Caveat",cursive; }
.story-note em { margin-top:5px; color:var(--forest); font:600 15px/1 "Caveat",cursive; }
.story-food-visual { width:100%; margin:0; overflow:hidden; border:1px solid rgba(255,248,232,.72); border-radius:18px; background:#6f401f; box-shadow:0 15px 30px rgba(55,36,24,.2); transform:rotate(2deg); }
.story-food-visual img { width:100%; height:auto; aspect-ratio:1; display:block; object-fit:contain; }

.final-cta { position:relative; color:var(--brand-white); background-color:var(--deep-forest); background-image:url("assets/ready-to-explore-background.webp"); background-position:center; background-repeat:no-repeat; background-size:100% 100%; overflow:hidden; }
.final-cta::before { content:""; position:absolute; inset:0; opacity:.05; background-image:linear-gradient(30deg,transparent 49.4%,var(--antique-gold) 50%,transparent 50.6%); background-size:230px 150px; }
.final-cta-inner { min-height:235px; position:relative; z-index:2; display:grid; grid-template-columns:1fr auto auto; gap:28px; align-items:center; }
.final-cta-inner h2 { margin:0; color:var(--parchment); font:700 clamp(48px,5vw,68px)/.9 "Caveat",cursive; }
.final-cta-inner > div:first-child p { margin:12px 0 0; color:rgba(255,248,232,.72); font-size:9px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.final-order-button { min-height:70px; padding:0 34px; display:flex; align-items:center; gap:13px; border:1px solid rgba(255,255,255,.2); border-radius:999px; color:var(--brand-white); background:var(--asian-red); box-shadow:0 12px 26px rgba(0,0,0,.23); cursor:pointer; font-size:20px; font-weight:800; text-transform:uppercase; }
.final-order-button b { font-size:27px; }
.channel-actions { display:flex; gap:10px; }
.channel-button { min-height:58px; padding:9px 15px; display:flex; align-items:center; gap:9px; border:1px solid rgba(255,248,232,.2); border-radius:12px; color:var(--brand-white); background:rgba(0,0,0,.12); cursor:pointer; text-align:left; }
.channel-button > span { width:31px; height:31px; display:grid; place-items:center; border-radius:9px; color:#fff; font-size:18px; }
.messenger-dot { background:#168aff; }
.channel-button b { display:grid; font-size:10px; }
.channel-button small { margin-top:2px; color:rgba(255,248,232,.62); font-size:8px; font-weight:500; }
.final-flight { position:absolute; left:48%; top:23px; color:var(--antique-gold); font-size:22px; transform:rotate(-8deg); opacity:.72; }
.final-leaves { width:160px; height:130px; position:absolute; left:-22px; bottom:-20px; opacity:.65; transform:rotate(-18deg); }
.final-leaves::before { content:""; width:4px; height:150px; position:absolute; left:70px; bottom:-10px; background:var(--antique-gold); transform:rotate(35deg); }
.final-leaves i { width:80px; height:36px; position:absolute; border-radius:100% 0 100% 0; background:var(--leaf-green); }
.final-leaves i:nth-child(1){left:10px;top:20px}.final-leaves i:nth-child(2){left:75px;top:55px;transform:rotate(180deg)}.final-leaves i:nth-child(3){left:22px;top:92px}
.trust-bar { min-height:74px; position:relative; z-index:2; padding:13px max(24px,calc((100vw - 1192px)/2)); display:grid; grid-template-columns:repeat(4,1fr); align-items:center; color:var(--ink); background:var(--parchment); border-top:3px solid var(--antique-gold); }
.trust-bar > div { min-height:34px; padding:0 17px; display:flex; align-items:center; justify-content:center; gap:10px; border-right:1px solid rgba(17,17,17,.18); text-align:left; }
.trust-bar > div:last-child { border-right:0; }
.trust-bar span { color:var(--forest); }
.trust-bar b { display:grid; font-size:10px; line-height:1.35; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.trust-bar small { margin-top:3px; font-size:9px; line-height:1.45; font-weight:500; }

footer { min-height:185px; position:relative; margin:0; padding:0 max(24px,calc((100vw - 1192px)/2)) 78px; display:flex; align-items:end; justify-content:center; color:var(--antique-gold); background-color:var(--deep-forest); background-image:linear-gradient(rgba(2,46,36,.12),rgba(2,46,36,.28)),url("assets/footer-background.webp"); background-position:center,center bottom; background-repeat:no-repeat,no-repeat; background-size:100% 100%,100% auto; overflow:hidden; }
.footer-skyline { width:100%; height:150px; position:absolute; left:0; bottom:31px; color:var(--antique-gold); opacity:.8; }
.footer-skyline svg { width:100%; height:100%; fill:currentColor; }
.footer-tagline { position:relative; z-index:2; padding:9px 18px; border-radius:999px; color:var(--antique-gold); background:var(--deep-forest); font-size:9px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.footer-tagline span { margin-inline:7px; }
footer a { position:absolute; z-index:3; right:max(24px,calc((100vw - 1192px)/2)); bottom:13px; color:rgba(255,248,232,.68); font-size:9px; font-weight:700; }

.mobile-order-bar { display: none; }
.drawer-backdrop { position: fixed; inset: 0; z-index: 90; pointer-events: none; background: rgba(28,17,14,.46); opacity: 0; backdrop-filter: blur(3px); transition: opacity .25s; }
.drawer-backdrop.visible { pointer-events: auto; opacity: 1; }
.order-drawer { width: min(570px,100%); height: 100%; position: fixed; z-index: 100; right: 0; top: 0; padding: 28px 30px 45px; overflow-y: auto; background: var(--warm-white); box-shadow: -25px 0 55px rgba(28,17,14,.16); transform: translateX(105%); transition: transform .3s cubic-bezier(.2,.75,.25,1); }
.order-drawer.open { transform: translateX(0); }
.drawer-header { padding-bottom: 20px; display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 1px solid var(--line); }
.drawer-header h2 { margin: 0; font-family: "Playfair Display", serif; font-size: 31px; }
.close-button { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: transparent; cursor: pointer; font-size: 26px; }
.cart-items { display: grid; }
.cart-row { padding: 15px 0; display: grid; grid-template-columns: 1fr auto; gap: 14px; border-bottom: 1px solid var(--line); }
.cart-row-name { display: grid; }
.cart-row-name small { margin-bottom: 3px; color: var(--terracotta); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cart-row-name strong { font-family: "Playfair Display", serif; font-size: 15px; }
.cart-row-name span { margin-top: 4px; color: var(--oxblood); font-size: 12px; font-weight: 800; }
.quantity-control { display: flex; align-items: center; gap: 10px; }
.quantity-control button { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 50%; background: #fff; cursor: pointer; font-size: 17px; }
.quantity-control b { min-width: 13px; text-align: center; font-size: 12px; }
.empty-cart { padding: 45px 20px; display: grid; place-items: center; text-align: center; }
.empty-cart > span { color: var(--gold); font-size: 30px; }
.empty-cart h3 { margin: 9px 0 5px; font-family: "Playfair Display", serif; font-size: 24px; }
.empty-cart p { margin: 0 0 18px; color: #807269; font-size: 13px; }
#orderForm { display: none; }
#orderForm.active { display: block; }
.order-total { padding: 19px 0 4px; display: flex; justify-content: space-between; align-items: center; }
.order-total span { font-weight: 700; }
.order-total strong { color: var(--oxblood); font-size: 25px; }
.delivery-note { margin: 0 0 23px; padding: 10px 12px; border-radius: 9px; color: #6b5b50; background: #f4e7d4; font-size: 11px; }
#orderForm h3 { margin: 0 0 14px; font-family: "Playfair Display", serif; font-size: 20px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.form-grid label { display: grid; gap: 6px; color: #67594f; font-size: 11px; font-weight: 800; }
.form-grid .full-field { grid-column: 1 / -1; }
input, select, textarea { width: 100%; border: 1px solid rgba(67,43,33,.18); border-radius: 9px; padding: 12px; color: var(--ink); background: #fff; outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--terracotta); box-shadow: 0 0 0 3px rgba(200,97,71,.1); }
textarea { resize: vertical; }
.consent { margin: 17px 0; display: flex; gap: 10px; align-items: flex-start; color: #75675e; font-size: 11px; line-height: 1.45; }
.consent input { width: 17px; height: 17px; flex: 0 0 auto; margin-top: 1px; accent-color: var(--oxblood); }
.submit-button { margin-top: 2px; }
.messenger-summary { width: 100%; padding: 13px; border: 0; color: var(--oxblood); background: transparent; cursor: pointer; font-size: 12px; font-weight: 800; text-decoration: underline; }
.secure-note { margin: 0; color: #8a7a70; text-align: center; font-size: 10px; }
.form-error { min-height: 0; margin-bottom: 8px; color: #a8352b; font-size: 11px; font-weight: 700; }
.toast { position: fixed; z-index: 120; left: 50%; bottom: 24px; padding: 12px 18px; color: #fff; background: var(--ink); border-radius: 999px; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translate(-50%,16px); transition: all .22s; font-size: 12px; font-weight: 700; }
.toast.show { opacity: 1; transform: translate(-50%,0); }

@media (max-width: 1180px) {
  .brand > span:last-child { display:none; }
  .country-showcase-grid { grid-template-columns:repeat(4,1fr); }
  .process-grid { grid-template-columns:repeat(4,1fr); }
  .reward-note { grid-column:2/4; min-height:155px; }
}

@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; gap: 45px; padding-top: 45px; }
  .hero-brand-panel { display:none; }
  .hero-copy { margin: 0 auto; text-align: center; }
  .ad-welcome { margin-inline: auto; }
  .hero-actions { justify-content: center; }
  .hero-visual { width: min(440px,100%); margin: 0 auto; }
  .desktop-nav { display:none; }
  .site-header { grid-template-columns:1fr auto; }
  .menu-grid { grid-template-columns: repeat(3,1fr); }
  .experience-grid { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .reward-note { grid-column:1/-1; }
  .story-section { grid-template-columns:1fr 1fr; }
  .story-food-visual { width:min(420px,100%); grid-column:1/-1; justify-self:center; }
  .final-cta-inner { padding-block:45px; grid-template-columns:1fr auto; }
  .final-cta-inner > div:first-child { grid-column:1/-1; text-align:center; }
  .channel-actions { grid-column:1/-1; justify-content:center; }
  .trust-bar { grid-template-columns:repeat(2,1fr); }
  .trust-bar > div:nth-child(2) { border-right:0; }
  .trust-bar > div:nth-child(-n+2) { border-bottom:1px solid rgba(17,17,17,.18); }
}

@media (max-width: 720px) {
  .preview-strip { font-size: 9px; }
  .site-header { min-height: 76px; padding:8px 16px; grid-template-columns:1fr auto; gap:10px; }
  .brand-mark { width: 52px; height: 52px; }
  .brand strong { font-size: 16px; }
  .brand small { max-width:180px; font-size: 7px; }
  .bag-button span { display:flex; font-size:0; }
  .bag-button span svg { width:21px; height:21px; }
  .bag-button { padding: 8px; border: 0; }
  .section-shell { padding-inline: 16px; }
  .hero { min-height: auto; padding-top: 36px; padding-bottom: 65px; gap: 36px; }
  .hero-copy { text-align: center; }
  .ad-welcome { margin-inline: auto; margin-bottom: 18px; font-size: 9px; }
  h1 { font-size: clamp(48px,15vw,66px); line-height:.82; }
  .hero-lede { margin: 22px auto 19px; font-size: 13px; }
  .hero-lede strong { font-size:16px; }
  .benefit-row { grid-template-columns:1fr 1fr; gap:0; }
  .benefit-row > div { min-height:57px; justify-content:flex-start; padding:8px 12px; border-bottom:1px solid rgba(6,63,47,.16); }
  .benefit-row > div:nth-child(2) { border-right:0; }
  .benefit-row > div:nth-child(n+3) { border-bottom:0; }
  .benefit-row svg { width:27px; height:27px; }
  .benefit-row strong { font-size:8px; }
  .hero-actions { display: grid; justify-content: stretch; }
  .hero-actions .button { width: 100%; }
  .hero-visual { min-height: 430px; }
  .passport-cover { width:min(285px,78vw); height:auto; padding:0; transform:rotate(8deg); }
  .passport-title strong { font-size:25px; }
  .passport-globe { width:115px; height:115px; margin-top:21px; }
  .passport-ticket { bottom:9px; }
  .passport-note { display:none; }
  .hero-flight-path { display:none; }
  .hero-landmarks { height:125px; opacity:.3; }
  .menu-section { padding: 64px 0; background-size:auto,auto 680px; }
  .country-heading h2 { font-size:38px; }
  .country-heading > p { font-size:8px; line-height:1.6; }
  .country-showcase-grid { margin:28px 0 50px; grid-template-columns:repeat(2,1fr); gap:9px; }
  .country-tile { aspect-ratio:1; }
  .country-tile strong { font-size:9px; }
  .menu-heading { padding-top:38px; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 14px; }
  .section-heading h2, .passport-order-section h2, .faq-panel h2 { font-size: 39px; }
  .section-heading > p { font-size: 14px; }
  .menu-grid { grid-template-columns: repeat(2,1fr); gap: 10px; }
  .dish-card { min-height: 320px; padding: 15px; border-radius: 16px; }
  .dish-image-frame { width:calc(100% + 30px); height:140px; margin:-15px -15px 14px; }
  .dish-symbol { width: 74px; height: 74px; margin-bottom: 16px; font-size: 38px; }
  .dish-card h3 { font-size: 17px; }
  .dish-meta { font-size: 10px; }
  .dish-price { font-size: 16px; }
  .add-dish { width: 38px; height: 38px; }
  .passport-order-section { padding: 65px 0; background-size:auto,auto 100%; }
  .experience-heading h2 { font-size:47px; }
  .process-grid { margin:34px 0 48px; grid-template-columns:1fr; gap:18px; }
  .process-step { min-height:175px; }
  .process-step:not(.reward-step)::after { right:50%; top:auto; bottom:-25px; transform:translateX(50%) rotate(90deg); }
  .reward-note { grid-column:auto; min-height:165px; }
  .passport-panel, .faq-panel { padding: 28px 20px; border-radius: 21px; }
  .stamp-grid { gap: 5px; }
  .passport-slot { font-size: 7px; }
  .story-area { padding:65px 0; }
  .story-section { margin-top:0; padding:28px 18px; grid-template-columns:1fr; gap:28px; clip-path:none; border-radius:18px; }
  .story-copy h2 { font-size:43px; }
  .story-food-visual { grid-column:auto; }
  .final-cta-inner { padding-block:48px; grid-template-columns:1fr; justify-items:center; text-align:center; }
  .final-cta-inner > div:first-child,.channel-actions { grid-column:auto; }
  .final-order-button { width:100%; justify-content:center; }
  .channel-actions { width:100%; display:grid; grid-template-columns:1fr; }
  .channel-button { justify-content:center; }
  .trust-bar { padding-inline:12px; }
  .trust-bar > div { min-height:58px; padding:8px; justify-content:flex-start; }
  footer { min-height:165px; padding:0 16px 72px; align-items:flex-end; }
  .footer-skyline { height:120px; bottom:28px; }
  .footer-tagline { font-size:7px; letter-spacing:.12em; text-align:center; }
  footer a { right:16px; }
  .mobile-order-bar { height: 68px; position: fixed; z-index: 70; left: 10px; right: 10px; bottom: 10px; padding: 10px 10px 10px 15px; display: flex; align-items: center; justify-content: space-between; border: 1px solid rgba(255,255,255,.1); border-radius: 16px; color: #fff; background: rgba(42,31,27,.96); box-shadow: 0 15px 35px rgba(42,24,17,.26); backdrop-filter: blur(12px); transform: translateY(100px); transition: transform .28s ease; }
  .mobile-order-bar.visible { transform: translateY(0); }
  .mobile-order-bar > div { display: grid; }
  .mobile-order-bar small { color: rgba(255,255,255,.65); font-size: 9px; }
  .mobile-order-bar strong { font-size: 17px; }
  .mobile-order-bar button { min-height: 46px; padding: 0 12px 0 16px; display: flex; gap: 8px; align-items: center; border: 0; border-radius: 11px; color: var(--oxblood-deep); background: var(--saffron); font-weight: 800; }
  .mobile-order-bar b { color: #fff; background: var(--oxblood); }
  .order-drawer { padding: 24px 18px 35px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .full-field { grid-column: auto; }
}

@media (max-width: 560px) {
  .menu-grid { grid-template-columns:1fr; gap:14px; }
  .dish-card { min-height:370px; }
  .dish-image-frame { height:220px; }
  .dish-card h3 { max-width:none; font-size:20px; }
  .dish-meta { font-size:12px; }
}

@media (max-width: 370px) {
  .menu-grid { grid-template-columns: 1fr; }
  .dish-card { min-height: 350px; }
  .dish-image-frame { height:200px; }
  .stamp-grid { grid-template-columns: repeat(3,1fr); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
