:root{
  --ink:#163c48;--ink-2:#45656b;--deep:#0b343a;--deep-2:#06272d;--paper:#f7f2e8;--paper-2:#efe4d3;
  --gold:#c99243;--gold-2:#e5bd73;--line:rgba(22,60,72,.12);--white:#fffdf8;
  --shadow:0 24px 70px rgba(12,37,43,.11);--radius:30px;--container:1220px;--ease:cubic-bezier(.2,.75,.25,1)
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font-family:"Be Vietnam Pro",system-ui,-apple-system,sans-serif;color:var(--ink);background:linear-gradient(180deg,#faf7f1 0%,#f2e7d9 44%,#f7f2ea 100%);overflow-x:hidden}body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.4;background:radial-gradient(rgba(22,60,72,.07) .7px,transparent .8px) 0 0/18px 18px;mask-image:linear-gradient(#0007,transparent)}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}button,a{color:inherit}button{cursor:pointer}a{text-decoration:none}.skip-link{position:fixed;left:16px;top:-60px;z-index:200;padding:12px 16px;background:#fff;border-radius:12px;transition:.2s}.skip-link:focus{top:12px}.page-progress{position:fixed;z-index:180;left:0;right:0;top:0;height:3px;background:transparent}.page-progress span{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--gold-2),var(--gold),#2c9b93)}
.site-header{position:fixed;z-index:150;top:16px;left:50%;transform:translateX(-50%);width:min(var(--container),calc(100% - 28px));min-height:76px;padding:8px 10px 8px 12px;display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(22,60,72,.1);border-radius:26px;background:rgba(249,244,234,.94);backdrop-filter:blur(18px);box-shadow:0 18px 50px rgba(20,44,49,.12);transition:.35s var(--ease)}.site-header.scrolled{top:8px;min-height:68px}.brand{display:flex;align-items:center;gap:11px}.brand img{width:56px;height:56px;border-radius:50%;object-fit:cover;background:#fff;box-shadow:0 8px 22px rgba(0,0,0,.11)}.brand span{display:grid;line-height:1.05}.brand strong{font-family:"Playfair Display",serif;font-size:20px}.brand small{margin-top:5px;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#6a7e82}.site-nav{display:flex;align-items:center;gap:3px}.site-nav a{padding:12px 14px;border-radius:14px;font-size:13px;font-weight:700;transition:.25s}.site-nav a:hover,.site-nav a.active{background:rgba(22,60,72,.07)}.site-nav .nav-book{padding-inline:20px;background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#153845;box-shadow:0 12px 28px rgba(201,146,67,.23)}.nav-toggle{display:none;width:48px;height:48px;border:0;border-radius:16px;background:rgba(22,60,72,.08);padding:13px}.nav-toggle span{display:block;height:2px;margin:5px 0;border-radius:2px;background:var(--ink)}
.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;color:#fff;background:#061b24}.hero-photo{position:absolute;inset:0;background:url("assets/real/coastal-evening.webp") center 58%/cover no-repeat;animation:heroDrift 24s ease-in-out infinite alternate}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,15,22,.3),rgba(4,15,22,.32) 40%,rgba(4,15,22,.72) 100%),radial-gradient(circle at 50% 40%,rgba(6,27,35,.06),rgba(6,27,35,.3) 65%)}.weather-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}.sun-moon{position:absolute;right:11%;top:17%;width:118px;height:118px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#fff5cd 0%,#e3b85c 52%,#c88a32 100%);box-shadow:0 0 72px rgba(242,187,88,.24);opacity:.7;animation:orbFloat 8s ease-in-out infinite}.cloud{position:absolute;width:230px;height:52px;border-radius:999px;background:rgba(255,255,255,.15);filter:blur(2px);opacity:.25;box-shadow:65px 4px 0 10px rgba(255,255,255,.12),120px -8px 0 18px rgba(255,255,255,.09);animation:cloudMove 42s linear infinite}.cloud-1{top:22%;left:-35%}.cloud-2{top:36%;left:-55%;transform:scale(.8);animation-duration:58s;animation-delay:-26s}.rain{position:absolute;inset:-30% 0 0;opacity:0;background-image:repeating-linear-gradient(105deg,transparent 0 18px,rgba(255,255,255,.22) 19px 20px,transparent 21px 38px);background-size:46px 120px;animation:rainFall .75s linear infinite}.stars{position:absolute;inset:0;opacity:0;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.5px);background-size:74px 74px;animation:starDrift 30s linear infinite}.hero[data-time="night"] .sun-moon{width:92px;height:92px;background:radial-gradient(circle at 36% 34%,#fff,#dce7eb 55%,#93acb6 100%);box-shadow:0 0 50px rgba(216,235,241,.18);opacity:.75}.hero[data-time="night"] .stars{opacity:.38}.hero[data-time="night"] .hero-photo{filter:brightness(.62) saturate(.82)}.hero[data-time="sunrise"] .hero-photo{filter:brightness(.92) saturate(1.02)}.hero[data-time="sunset"] .hero-photo{filter:brightness(.82) saturate(1.12)}.hero[data-weather="cloudy"] .cloud{opacity:.58}.hero[data-weather="rain"] .rain,.hero[data-weather="storm"] .rain{opacity:.25}.hero[data-weather="rain"] .hero-photo,.hero[data-weather="storm"] .hero-photo{filter:brightness(.58) saturate(.74)}.hero[data-weather="rain"] .cloud,.hero[data-weather="storm"] .cloud{opacity:.72;background:rgba(110,127,132,.42)}
.hero-content{position:relative;z-index:2;width:min(900px,calc(100% - 36px));text-align:center;padding:34px 28px 38px;margin-top:42px}.hero-content::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:34px;background:linear-gradient(180deg,rgba(4,20,27,.3),rgba(4,20,27,.5));border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(7px);box-shadow:0 28px 80px rgba(0,0,0,.2)}.eyebrow{margin:0 0 14px;font:700 12px/1.3 "Space Mono",monospace;letter-spacing:.15em;color:var(--gold);text-transform:uppercase}.eyebrow.light{color:#f3c86e}.hero h1{margin:0 0 20px;font-family:"Playfair Display",serif;font-size:clamp(76px,12vw,156px);line-height:.82;text-shadow:0 20px 46px rgba(0,0,0,.35)}.hero-tagline{max-width:760px;margin:0 auto;font-size:clamp(17px,2vw,25px);line-height:1.65;color:rgba(255,255,255,.94);text-shadow:0 5px 18px rgba(0,0,0,.28)}.hero-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{min-height:50px;padding:13px 20px;border:0;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;transition:.3s var(--ease)}.btn:hover{transform:translateY(-3px)}.btn-primary{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#153845;box-shadow:0 15px 34px rgba(201,146,67,.27)}.btn-outline{border:1px solid rgba(255,255,255,.48);background:rgba(255,255,255,.08);color:#fff}.btn-soft{background:#e8ddcc;color:var(--ink)}.btn-light{background:#fff;color:var(--ink)}.btn-outline-light{border:1px solid rgba(255,255,255,.3);color:#fff;background:transparent}.btn-facebook{background:#1877f2;color:#fff}.btn-zalo{background:#08a8ee;color:#fff}.btn-glass{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2)}.hero-features{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:22px;font-size:13px;color:rgba(255,255,255,.82)}.hero-features i{width:4px;height:4px;border-radius:50%;background:var(--gold-2)}.weather-card{position:absolute;z-index:4;top:112px;right:30px;display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:18px;background:rgba(6,31,38,.48);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(12px);box-shadow:0 12px 34px rgba(0,0,0,.12)}.weather-card>span{width:9px;height:9px;border-radius:50%;background:var(--gold-2);box-shadow:0 0 14px rgba(229,189,115,.6);animation:pulse 2s ease-in-out infinite}.weather-card div{display:grid}.weather-card strong{font-size:12px}.weather-card small{margin-top:2px;color:rgba(255,255,255,.72);font-size:11px}.scroll-cue{position:absolute;z-index:3;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.78)}.scroll-cue span{width:18px;height:30px;border:1px solid rgba(255,255,255,.48);border-radius:20px;position:relative}.scroll-cue span::after{content:"";position:absolute;width:3px;height:6px;border-radius:4px;background:#fff;left:50%;top:6px;transform:translateX(-50%);animation:scrollDot 1.7s infinite}
.section{position:relative;padding:112px 24px}.section>*{width:min(var(--container),100%);margin-inline:auto}.section-head{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end;margin-bottom:44px}.section-head h2,.menu-copy h2,.booking-intro h2,.contact-copy h2{margin:0;font-family:"Playfair Display",serif;font-size:clamp(44px,6vw,76px);line-height:.98}.section-head h2 em,.menu-copy h2 em,.booking-intro h2 em,.contact-copy h2 em{color:var(--gold)}.section-head>p,.menu-copy>p,.booking-intro>p,.contact-copy>p{margin:0;color:#64797d;line-height:1.8}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.experience-card{position:relative;min-height:460px;border-radius:30px;overflow:hidden;box-shadow:var(--shadow);background:#0b2d33}.experience-wide{grid-column:1/-1;min-height:560px}.experience-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.experience-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.7) 88%)}.experience-card:hover img{transform:scale(1.055)}.card-copy{position:absolute;z-index:2;left:28px;right:28px;bottom:26px;color:#fff}.card-copy span{font:700 11px/1.2 "Space Mono",monospace;color:#f1c46e;letter-spacing:.12em}.card-copy h3{margin:8px 0 7px;font-size:clamp(25px,3vw,42px)}.card-copy p{margin:0;max-width:680px;color:rgba(255,255,255,.78);line-height:1.7}.card-link{position:absolute;z-index:2;right:26px;bottom:26px;padding:12px 16px;border-radius:14px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.17);backdrop-filter:blur(10px)}
.menu-section,.reviews,.contact{background:linear-gradient(180deg,var(--deep),var(--deep-2));color:#fff}.menu-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:start}.menu-copy{position:sticky;top:120px}.menu-copy>p{color:rgba(255,255,255,.72)}.menu-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px}.text-link{font-weight:700;color:#f1c46e}.menu-poster{position:relative;border:0;padding:12px;border-radius:30px;background:rgba(255,255,255,.08);box-shadow:0 24px 70px rgba(0,0,0,.2);overflow:hidden}.menu-poster img{width:100%;border-radius:22px}.menu-poster span{position:absolute;left:28px;right:28px;bottom:28px;padding:14px 16px;border-radius:18px;background:rgba(6,27,34,.74);backdrop-filter:blur(12px);display:flex;justify-content:space-between;color:#fff}.menu-poster span small{opacity:.7}.food-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.food-grid button{position:relative;min-height:170px;border:0;padding:0;border-radius:22px;overflow:hidden;background:#102f35}.food-grid img{width:100%;height:100%;object-fit:cover;transition:.6s var(--ease)}.food-grid button:hover img{transform:scale(1.08)}.food-grid span{position:absolute;left:10px;right:10px;bottom:10px;padding:10px 11px;border-radius:13px;background:rgba(5,25,31,.7);color:#fff;font-size:12px;font-weight:700;backdrop-filter:blur(8px)}
.gallery-filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:24px}.gallery-filters button{border:1px solid var(--line);background:#fffaf2;padding:10px 14px;border-radius:999px;color:var(--ink);font-weight:700}.gallery-filters button.active{background:var(--deep);color:#fff}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:14px}.gallery-item{position:relative;border:0;padding:0;border-radius:24px;overflow:hidden;background:#10343a}.gallery-item[hidden]{display:none}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.65s var(--ease)}.gallery-item:hover img{transform:scale(1.07)}.gallery-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.72) 100%)}.gallery-item span{position:absolute;z-index:2;left:15px;right:15px;bottom:14px;color:#fff;text-align:left}.gallery-item span strong,.gallery-item span small{display:block}.gallery-item span small{margin-top:4px;color:rgba(255,255,255,.72);font-size:11px}.gallery-wide{grid-column:span 2}.gallery-tall{grid-row:span 2}.reviews .section-head>p{color:rgba(255,255,255,.68)}.review-highlights{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.review-highlights article{min-height:230px;padding:26px;border-radius:24px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1)}.review-highlights span{font:700 12px/1 "Space Mono",monospace;color:#f1c46e}.review-highlights h3{margin:34px 0 10px;font-size:22px}.review-highlights p{margin:0;color:rgba(255,255,255,.7);line-height:1.7}.review-cta{margin-top:22px;padding:26px;border-radius:24px;background:rgba(255,255,255,.08);display:flex;align-items:center;gap:16px;flex-wrap:wrap}.review-cta>div{margin-right:auto}.review-cta h3{margin:0 0 7px}.review-cta p{margin:0;color:rgba(255,255,255,.68)}
.booking-intro{margin-bottom:34px}.booking-shell{padding:30px;border-radius:38px;background:linear-gradient(180deg,#fffdf8,#f2e7d8);border:1px solid var(--line);box-shadow:var(--shadow)}.booking-progress{position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:38px}.booking-progress-line{position:absolute;left:5%;right:5%;top:18px;height:2px;background:rgba(22,60,72,.12)}.booking-progress-line span{display:block;height:100%;width:0;background:linear-gradient(90deg,#2c9b93,var(--gold));transition:.35s}.booking-step{position:relative;z-index:2;display:grid;justify-items:center;gap:8px;color:#73878a;font-size:12px;font-weight:700}.booking-step b{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line)}.booking-step.current,.booking-step.done{color:var(--ink)}.booking-step.current b,.booking-step.done b{background:linear-gradient(135deg,var(--gold-2),var(--gold));border-color:var(--gold)}.booking-panel[hidden]{display:none}.booking-panel{animation:panelIn .4s var(--ease)}.panel-copy>span{font:700 11px/1 "Space Mono",monospace;color:var(--gold);letter-spacing:.14em;text-transform:uppercase}.panel-copy h3{margin:10px 0 7px;font-family:"Playfair Display",serif;font-size:42px}.panel-copy p{margin:0 0 24px;color:#6f8183}.zone-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.zone-card{position:relative;min-height:300px;border:1px solid rgba(22,60,72,.12);padding:0;border-radius:26px;overflow:hidden;background:#102f34;box-shadow:0 18px 42px rgba(16,40,45,.09);transition:.35s var(--ease)}.zone-card:hover,.zone-card.selected{transform:translateY(-6px);border-color:rgba(201,146,67,.72);box-shadow:0 24px 50px rgba(16,40,45,.14)}.zone-card img{width:100%;height:100%;object-fit:cover}.zone-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 28%,rgba(3,20,25,.88) 100%)}.zone-card span{position:absolute;z-index:2;left:16px;right:16px;bottom:16px;color:#fff;text-align:left}.zone-card strong,.zone-card small{display:block}.zone-card small{margin-top:5px;color:rgba(255,255,255,.75);font-size:12px}.booking-summary{display:flex;align-items:center;gap:14px;margin-top:18px;padding:17px 18px;border-radius:20px;background:#ece1d0;border:1px solid rgba(22,60,72,.1)}.booking-summary>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#153845}.booking-summary div{display:grid}.booking-summary small{font:700 10px/1.2 "Space Mono",monospace;color:var(--gold);text-transform:uppercase;letter-spacing:.1em}.booking-summary strong{margin-top:6px}.booking-summary.empty strong{color:#7c817d}.booking-summary:not(.empty){background:linear-gradient(135deg,#1b5058,#0c333a);color:#fff}.date-row{display:flex;gap:10px;overflow:auto;padding-bottom:8px}.date-button,.time-button{border:1px solid var(--line);background:#fffaf3;border-radius:16px;padding:12px 14px;font-weight:700;color:var(--ink)}.date-button{min-width:94px;display:grid;gap:4px}.date-button small{color:#748488}.date-button.active,.time-button.active{background:var(--deep);color:#fff;border-color:var(--deep)}.time-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:18px}.time-button:disabled{opacity:.35;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label>span,.review-dialog label>span{display:block;margin-bottom:9px;font-size:13px;font-weight:700}.form-grid input,.form-grid textarea,.form-grid select,.review-dialog input,.review-dialog textarea,.review-dialog select{width:100%;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.9);padding:14px 15px;color:var(--ink);outline:none}.form-grid input:focus,.form-grid textarea:focus,.review-dialog input:focus,.review-dialog textarea:focus,.review-dialog select:focus{border-color:rgba(201,146,67,.72);box-shadow:0 0 0 4px rgba(201,146,67,.12)}.field-full{grid-column:1/-1}.guest-stepper{height:50px;display:grid;grid-template-columns:50px 1fr 50px;align-items:center;border:1px solid var(--line);border-radius:17px;background:#fff}.guest-stepper button{height:100%;border:0;background:transparent;font-size:20px}.guest-stepper strong{text-align:center}.booking-actions{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.booking-actions .btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.confirm-card{display:grid;gap:10px;padding:22px;border-radius:22px;background:#fff;border:1px solid var(--line)}.confirm-row{display:flex;justify-content:space-between;gap:20px;padding-bottom:10px;border-bottom:1px dashed rgba(22,60,72,.13)}.confirm-row:last-child{border-bottom:0}.confirm-row span{color:#6f8183}.confirm-row strong{text-align:right}.booking-channels{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.booking-channels a{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding:14px;border-radius:18px;background:#fff;border:1px solid var(--line)}.booking-channels a>span{grid-row:1/3;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#e7eceb;font-weight:800}.booking-channels strong,.booking-channels small{display:block}.booking-channels small{color:#718083;font-size:11px}.booking-status{min-height:24px;margin-top:14px;font-size:13px}.booking-status.success{color:#1c7b62}.booking-status.error{color:#b2493c}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:44px;border-radius:38px;background:linear-gradient(180deg,#f8f2e8,#eee1cf);color:var(--ink);box-shadow:0 28px 80px rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.38)}.contact-logo{width:82px;height:82px;border-radius:50%;box-shadow:0 12px 30px rgba(16,40,45,.1)}.contact-info{display:grid;gap:10px;margin-top:28px}.contact-info a{display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:center;padding:15px 17px;border-radius:18px;background:#fffaf3;border:1px solid var(--line)}.contact-info span{font:700 10px/1.2 "Space Mono",monospace;color:var(--gold);text-transform:uppercase;letter-spacing:.12em}.contact-info strong{text-align:right}.contact-actions{display:grid;gap:14px;align-content:center}.contact-action{display:grid;grid-template-columns:52px 1fr auto;gap:14px;align-items:center;padding:17px 18px;border-radius:20px;background:#fffaf3;border:1px solid var(--line);transition:.3s var(--ease)}.contact-action:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(16,40,45,.1)}.contact-action>span{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;color:#fff;font-weight:800}.contact-action.facebook>span{background:#1877f2}.contact-action.zalo>span{background:#08a8ee}.contact-action.map>span{background:#2aa894}.contact-action.phone>span{background:var(--gold)}.contact-action div{display:grid;gap:3px}.contact-action small{color:#708083}.contact-action b{color:var(--gold);font-size:20px}.site-footer{padding:28px max(24px,calc((100vw - var(--container))/2));display:flex;align-items:center;justify-content:space-between;gap:20px;background:#051b20;color:rgba(255,255,255,.7)}.footer-brand{display:flex;align-items:center;gap:12px}.footer-brand img{width:48px;height:48px;border-radius:50%}.footer-brand div{display:grid}.footer-brand strong{color:#fff}.footer-brand span{font-size:11px}.footer-links{display:flex;gap:14px;flex-wrap:wrap}.site-footer p{margin:0;font-size:12px}
.quick-contact{position:fixed;z-index:160;right:18px;bottom:18px}.quick-toggle{width:54px;height:54px;border:0;border-radius:18px;background:var(--deep);color:#fff;font-size:28px;box-shadow:0 16px 40px rgba(0,0,0,.18);transition:.3s}.quick-contact.open .quick-toggle{transform:rotate(45deg)}.quick-panel{position:absolute;right:0;bottom:66px;display:grid;gap:8px;min-width:150px;padding:10px;border-radius:18px;background:#fffaf3;box-shadow:0 18px 50px rgba(0,0,0,.16);opacity:0;visibility:hidden;transform:translateY(10px);transition:.25s}.quick-contact.open .quick-panel{opacity:1;visibility:visible;transform:none}.quick-panel a{padding:10px 12px;border-radius:12px;font-weight:700}.quick-panel a:hover{background:#ece2d4}.toast{position:fixed;z-index:220;left:50%;bottom:24px;transform:translate(-50%,20px);padding:12px 16px;border-radius:14px;background:#092e34;color:#fff;box-shadow:0 15px 40px rgba(0,0,0,.18);opacity:0;visibility:hidden;transition:.25s}.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
.modal{position:fixed;inset:0;z-index:210;display:grid;place-items:center;padding:18px;opacity:0;visibility:hidden;transition:.25s}.modal.open{opacity:1;visibility:visible}.modal-backdrop{position:absolute;inset:0;background:rgba(3,14,18,.78);backdrop-filter:blur(6px)}.modal-dialog{position:relative;width:min(960px,100%);max-height:90vh;overflow:hidden;border-radius:28px;background:#fbf7ef;box-shadow:0 30px 100px rgba(0,0,0,.35)}.modal-bar{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-bar div{display:grid}.modal-bar span{font-size:11px;color:#728184}.modal-bar button{width:42px;height:42px;border:0;border-radius:13px;background:#e9dfd0;font-size:24px}.menu-scroll{max-height:68vh;overflow:auto;padding:14px}.menu-scroll img{width:100%;border-radius:18px}.modal-actions{display:flex;gap:9px;flex-wrap:wrap;padding:14px 16px;border-top:1px solid var(--line)}.image-dialog{width:min(1100px,100%)}.image-dialog>img{width:100%;max-height:78vh;object-fit:contain;background:#061b20}.review-dialog{width:min(620px,100%);padding-bottom:18px}.review-dialog form{display:grid;gap:14px;padding:18px}.review-form-status{min-height:20px;font-size:13px}.modal-open{overflow:hidden}.reveal{opacity:0;transform:translateY(34px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.visible{opacity:1;transform:none}
@keyframes heroDrift{0%{transform:scale(1.02)}100%{transform:scale(1.08) translateY(-8px)}}@keyframes cloudMove{to{transform:translateX(180vw)}}@keyframes rainFall{to{background-position:0 120px}}@keyframes starDrift{to{background-position:74px 74px}}@keyframes orbFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.75);opacity:.55}}@keyframes scrollDot{0%{opacity:0;transform:translate(-50%,0)}50%{opacity:1}100%{opacity:0;transform:translate(-50%,11px)}}@keyframes panelIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:1050px){.site-nav{position:absolute;top:82px;left:0;right:0;display:grid;padding:10px;border-radius:20px;background:#fbf7ef;box-shadow:0 18px 45px rgba(8,44,49,.15);opacity:0;visibility:hidden;transform:translateY(-10px);transition:.25s}.site-nav.open{opacity:1;visibility:visible;transform:none}.nav-toggle{display:block}.menu-layout{grid-template-columns:1fr}.menu-copy{position:static}.food-grid{grid-template-columns:repeat(3,1fr)}.gallery-grid{grid-template-columns:repeat(3,1fr)}.review-highlights{grid-template-columns:1fr 1fr}.zone-grid{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr}.weather-card{top:100px;right:18px}}
@media(max-width:760px){.site-header{top:8px;min-height:66px}.brand img{width:48px;height:48px}.brand span{display:none}.hero{min-height:900px}.hero-content{width:calc(100% - 24px);padding:28px 18px}.hero h1{font-size:clamp(72px,24vw,116px)}.hero-tagline br{display:none}.weather-card{left:14px;right:auto;top:88px}.section{padding:88px 16px}.section-head{grid-template-columns:1fr;gap:16px}.experience-grid{grid-template-columns:1fr}.experience-wide{grid-column:auto}.experience-card,.experience-wide{min-height:440px}.card-link{left:26px;right:auto;bottom:120px}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:180px;gap:10px}.review-highlights{grid-template-columns:1fr}.review-cta{align-items:flex-start}.booking-shell{padding:18px;border-radius:28px}.booking-step span{display:none}.panel-copy h3{font-size:34px}.zone-card{min-height:210px}.time-grid{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:1fr}.field-full{grid-column:auto}.booking-channels{grid-template-columns:1fr}.contact-grid{padding:22px;border-radius:28px}.contact-info a{grid-template-columns:1fr;gap:6px}.contact-info strong{text-align:left;font-size:14px}.site-footer{display:grid}.footer-links{order:3}.quick-contact{right:12px;bottom:12px}}
@media(max-width:520px){.hero{min-height:860px}.hero-features{gap:8px;font-size:12px}.hero-features i{display:none}.experience-card,.experience-wide{min-height:390px}.food-grid{grid-template-columns:1fr 1fr}.gallery-grid{grid-auto-rows:160px}.gallery-wide{grid-column:span 2}.zone-grid{grid-template-columns:1fr 1fr;gap:10px}.zone-card{min-height:185px;border-radius:20px}.zone-card span{left:12px;right:12px;bottom:12px}.zone-card strong{font-size:15px}.zone-card small{font-size:11px}.booking-actions{align-items:stretch}.booking-actions .btn{flex:1}.modal-actions .btn{flex:1 1 46%}.weather-card{transform:scale(.92);transform-origin:left top}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-photo,.cloud,.rain,.stars,.sun-moon,.weather-card>span,.scroll-cue span::after{animation:none!important}.reveal{opacity:1;transform:none;transition:none}}
.booking-summary em{margin-top:4px;font-style:normal;font-size:13px;color:rgba(255,255,255,.76)}.booking-summary.empty em{color:#6f8183}.review-form-status.success{color:#1c7b62}.review-form-status.error{color:#b2493c}


/* =========================================================
   HERO DEMO V2 — optimized from the supplied reference
   ========================================================= */
.site-header{
  top:14px;
  min-height:68px;
  padding:7px 9px 7px 10px;
  border-color:transparent;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
.site-header .brand strong,.site-header .site-nav a{color:#fff}
.site-header .brand small{color:rgba(255,255,255,.7)}
.site-header .brand img{width:52px;height:52px;border:2px solid rgba(255,255,255,.7);box-shadow:0 10px 28px rgba(0,0,0,.18)}
.site-header .site-nav a:hover,.site-header .site-nav a.active{background:rgba(255,255,255,.1)}
.site-header .site-nav .nav-book{color:#173845;background:linear-gradient(135deg,var(--gold-2),var(--gold));box-shadow:0 12px 28px rgba(201,146,67,.24)}
.site-header.scrolled{
  top:8px;
  min-height:66px;
  border-color:rgba(22,60,72,.1);
  background:rgba(249,244,234,.94);
  backdrop-filter:blur(18px);
  box-shadow:0 18px 50px rgba(20,44,49,.12)
}
.site-header.scrolled .brand strong,.site-header.scrolled .site-nav a{color:var(--ink)}
.site-header.scrolled .brand small{color:#6a7e82}
.site-header.scrolled .site-nav a:hover,.site-header.scrolled .site-nav a.active{background:rgba(22,60,72,.07)}
.site-header.scrolled .site-nav .nav-book{color:#153845}

.hero-demo{
  position:relative;
  min-height:100svh;
  display:grid;
  place-items:center;
  overflow:hidden;
  color:#fff;
  isolation:isolate;
  background:linear-gradient(180deg,#0b2e2c 0%,#114c47 27%,#16766c 48%,#d89b47 63%,#22a79b 79%,#0e7c72 100%);
}
.hero-demo[data-time="sunrise"]{background:linear-gradient(180deg,#173c46 0%,#2d6e70 30%,#efa86e 61%,#45b5aa 80%,#0f8177 100%)}
.hero-demo[data-time="sunset"]{background:linear-gradient(180deg,#10343c 0%,#285e60 31%,#df8f59 61%,#3ba99f 79%,#0d776f 100%)}
.hero-demo[data-time="night"]{background:linear-gradient(180deg,#061822 0%,#0b3037 34%,#164d50 60%,#147f77 82%,#0a5a55 100%)}
.hero-demo[data-weather="cloudy"]{filter:saturate(.9)}
.hero-demo[data-weather="rain"],.hero-demo[data-weather="storm"]{background:linear-gradient(180deg,#152a31 0%,#28464a 36%,#5f7774 62%,#32766f 82%,#1b5753 100%)}

.hero-sparks{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.hero-spark{position:absolute;bottom:28%;width:3px;height:3px;border-radius:50%;background:#f4c875;box-shadow:0 0 7px 1px rgba(244,200,117,.92);animation:heroSparkRise var(--spark-duration,9s) ease-out infinite;animation-delay:var(--spark-delay,0s)}
@keyframes heroSparkRise{0%{transform:translate3d(0,0,0) scale(.45);opacity:0}10%{opacity:1}84%{opacity:.72}100%{transform:translate3d(var(--spark-x,16px),-230px,0) scale(1);opacity:0}}

.weather-layer{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.sun-moon{position:absolute;right:10%;top:15%;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#fff6d2 0%,#e5bc63 52%,#c98c35 100%);box-shadow:0 0 76px rgba(242,187,88,.25);opacity:.72;animation:orbFloat 8s ease-in-out infinite}
.cloud{position:absolute;width:230px;height:52px;border-radius:999px;background:rgba(255,255,255,.13);filter:blur(2px);opacity:.22;box-shadow:65px 4px 0 10px rgba(255,255,255,.1),120px -8px 0 18px rgba(255,255,255,.08);animation:cloudMove 44s linear infinite}.cloud-1{top:21%;left:-34%}.cloud-2{top:34%;left:-55%;transform:scale(.8);animation-duration:59s;animation-delay:-27s}.rain{position:absolute;inset:-30% 0 0;opacity:0;background-image:repeating-linear-gradient(105deg,transparent 0 18px,rgba(255,255,255,.2) 19px 20px,transparent 21px 38px);background-size:46px 120px;animation:rainFall .78s linear infinite}.stars{position:absolute;inset:0;opacity:0;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.5px);background-size:78px 78px;animation:starDrift 32s linear infinite}.hero-demo[data-time="night"] .sun-moon{width:88px;height:88px;background:radial-gradient(circle at 36% 34%,#fff,#dce7eb 55%,#93acb6 100%);box-shadow:0 0 50px rgba(216,235,241,.18)}.hero-demo[data-time="night"] .stars{opacity:.42}.hero-demo[data-weather="cloudy"] .cloud{opacity:.54}.hero-demo[data-weather="rain"] .rain,.hero-demo[data-weather="storm"] .rain{opacity:.24}.hero-demo[data-weather="rain"] .cloud,.hero-demo[data-weather="storm"] .cloud{opacity:.7;background:rgba(111,126,132,.42)}

.hero-mountains{position:absolute;left:0;right:0;bottom:18%;height:42%;z-index:2;pointer-events:none}
.hero-mountain{position:absolute;inset:0;width:100%;height:100%;will-change:transform}
.hero-mountain-back polygon{fill:#2a4438;opacity:.58}
.hero-mountain-front polygon{fill:#1b3027;opacity:.9}
.hero-waves{position:absolute;left:0;right:0;bottom:0;height:46%;overflow:hidden;z-index:3;pointer-events:none}
.hero-wave{position:absolute;left:0;bottom:0;width:210%;height:100%;animation:heroWaveDrift linear infinite;will-change:transform}
.hero-wave path{fill:currentColor}.hero-wave-back{bottom:15px;color:#cfeee8;opacity:.3;animation-duration:38s}.hero-wave-mid{bottom:7px;color:#1eaa9e;opacity:.56;animation-duration:26s;animation-delay:-8s}.hero-wave-front{color:#0e7c72;opacity:.95;animation-duration:18s;animation-delay:-4s}
@keyframes heroWaveDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-1260px,0,0)}}

.hero-demo .hero-content{position:relative;z-index:5;width:min(920px,calc(100% - 36px));text-align:center;padding:20px 26px 34px;margin-top:-16px}
.hero-demo .hero-content::before{display:none}
.hero-demo .eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:15px;color:#f4c875;text-shadow:0 3px 16px rgba(0,0,0,.22)}
.comet-mark{position:relative;display:inline-block;width:18px;height:18px}
.comet-mark::before{content:"";position:absolute;left:0;top:9px;width:15px;height:2px;border-radius:3px;background:linear-gradient(90deg,transparent,#f4c875);transform:rotate(-42deg);transform-origin:right center}.comet-mark::after{content:"";position:absolute;right:0;top:1px;width:7px;height:7px;border-radius:50%;background:#f4c875;box-shadow:0 0 10px rgba(244,200,117,.8)}
.hero-demo h1{margin:0 0 18px;font-family:"Playfair Display",serif;font-size:clamp(74px,12vw,150px);line-height:.82;text-shadow:0 12px 38px rgba(0,0,0,.28)}
.hero-demo .hero-tagline{max-width:760px;margin:0 auto;color:rgba(255,255,255,.93);text-shadow:0 4px 18px rgba(0,0,0,.25)}
.hero-demo .hero-actions{margin-top:27px}
.hero-demo .btn{border-radius:999px;padding-inline:25px}
.hero-demo .btn-primary{box-shadow:0 14px 30px rgba(231,163,62,.34)}
.hero-demo .btn-outline{border-color:rgba(255,255,255,.5);background:transparent}
.hero-demo .hero-features{margin-top:20px;color:rgba(255,255,255,.82)}
.hero-demo .weather-card{top:104px;right:26px;z-index:6;background:rgba(6,31,38,.36);border-color:rgba(255,255,255,.14);box-shadow:0 12px 30px rgba(0,0,0,.12)}
.hero-demo .scroll-cue{z-index:6;bottom:20px}

@media (max-width:900px){
  .site-header{background:rgba(249,244,234,.94);border-color:rgba(22,60,72,.1);backdrop-filter:blur(18px);box-shadow:0 16px 42px rgba(20,44,49,.12)}
  .site-header .brand strong,.site-header .site-nav a{color:var(--ink)}
  .site-header .brand small{color:#6a7e82}
  .site-header .brand img{border-color:#fff}
  .hero-demo .weather-card{top:94px;right:14px}
  .hero-mountains{bottom:21%;height:38%}
  .hero-waves{height:42%}
}
@media (max-width:640px){
  .hero-demo{min-height:840px;padding-top:94px}
  .hero-demo .weather-card{top:88px;left:14px;right:auto;padding:10px 12px}
  .hero-demo .hero-content{margin-top:45px;padding-inline:12px}
  .hero-demo h1{font-size:clamp(64px,22vw,104px)}
  .hero-demo .hero-tagline{font-size:16px;line-height:1.6}
  .hero-demo .hero-tagline br{display:none}
  .hero-demo .hero-features{gap:8px;font-size:12px}
  .hero-demo .hero-features i{display:none}
  .hero-mountains{bottom:24%;height:34%}
  .hero-waves{height:38%}
  .sun-moon{right:8%;top:17%;width:84px;height:84px}
}
@media (prefers-reduced-motion:reduce){
  .hero-spark,.hero-wave,.sun-moon,.cloud,.stars,.rain{animation:none!important}
}


/* =========================================================
   FONT MATCH V3 — Fraunces + Manrope + Space Mono
   Closely matches the supplied hero reference.
   ========================================================= */
body,
button,
input,
textarea,
select{
  font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
}

/* Brand / display typography */
.brand strong,
.hero-demo h1,
.section-head h2,
.menu-copy h2,
.booking-intro h2,
.contact-copy h2,
.experience-card h3,
.food-card h3,
.review-card h3,
.booking-panel h3,
.confirm-card h3,
.modal h2{
  font-family:"Fraunces",Georgia,serif;
  font-variation-settings:"opsz" 96;
}

.brand strong{
  font-size:22px;
  font-weight:700;
  letter-spacing:.025em;
  line-height:.95;
}
.brand small{
  font-family:"Manrope",sans-serif;
  font-weight:600;
  letter-spacing:.11em;
}

.site-nav a{
  font-family:"Manrope",sans-serif;
  font-size:14px;
  font-weight:700;
  letter-spacing:-.015em;
}
.site-nav .nav-book{
  font-weight:800;
}

.hero-demo .eyebrow,
.eyebrow,
.card-copy span,
.booking-step small,
.summary-kicker{
  font-family:"Space Mono",monospace;
}

.hero-demo h1{
  font-family:"Fraunces",Georgia,serif;
  font-variation-settings:"opsz" 144;
  font-weight:500;
  letter-spacing:-.055em;
  line-height:.79;
  font-size:clamp(82px,12.6vw,162px);
}
.hero-demo .hero-tagline{
  font-family:"Manrope",sans-serif;
  font-weight:500;
  letter-spacing:-.035em;
  line-height:1.48;
  font-size:clamp(19px,2.15vw,29px);
}
.hero-demo .btn{
  font-family:"Manrope",sans-serif;
  font-weight:800;
  font-size:16px;
  letter-spacing:-.025em;
}

.section-head h2,
.menu-copy h2,
.booking-intro h2,
.contact-copy h2{
  font-weight:600;
  letter-spacing:-.045em;
  line-height:.95;
}
.experience-card h3,
.food-card h3,
.review-card h3,
.booking-panel h3,
.confirm-card h3{
  font-weight:600;
  letter-spacing:-.025em;
}

@media(max-width:640px){
  .brand strong{font-size:19px}
  .hero-demo h1{
    font-size:clamp(66px,22.5vw,108px);
    letter-spacing:-.06em;
  }
  .hero-demo .hero-tagline{
    font-size:17px;
    line-height:1.52;
  }
  .site-nav a{font-size:15px}
}


/* =========================================================
   HERO EXACT V4 — match supplied demo proportions & typography
   ========================================================= */
.demo-header.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  width:100%;
  max-width:none;
  min-height:108px;
  padding:18px clamp(34px,4.4vw,86px);
  border:0;
  border-radius:0;
  background:rgba(8,55,53,.96);
  box-shadow:none;
  backdrop-filter:blur(10px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  z-index:80;
  transition:min-height .3s ease,background .3s ease,box-shadow .3s ease;
}
.demo-header.site-header.scrolled{
  min-height:78px;
  padding-top:12px;
  padding-bottom:12px;
  background:rgba(251,254,252,.94);
  box-shadow:0 1px 0 rgba(11,46,44,.08),0 10px 30px rgba(11,46,44,.06);
}
.demo-brand.brand{
  display:flex;
  align-items:center;
  gap:14px;
  color:#fff;
  text-decoration:none;
  min-width:260px;
}
.demo-brand .brand-comet{width:40px;height:34px;flex:0 0 40px}
.demo-brand strong{
  font-family:"Fraunces",Georgia,serif;
  font-weight:600;
  font-size:clamp(24px,2.05vw,34px);
  line-height:1;
  letter-spacing:.005em;
  text-decoration:underline;
  text-decoration-thickness:1.5px;
  text-underline-offset:5px;
}
.demo-header.scrolled .demo-brand{color:#0b2e2c}
.demo-nav.site-nav{
  display:flex;
  align-items:center;
  gap:clamp(30px,4.1vw,82px);
  margin-left:auto;
}
.demo-nav.site-nav a{
  font-family:"Manrope",sans-serif;
  font-size:clamp(16px,1.25vw,24px);
  font-weight:600;
  letter-spacing:-.025em;
  color:rgba(255,255,255,.86);
  background:transparent !important;
  border-radius:0;
  padding:7px 0;
  text-decoration:none;
  position:relative;
}
.demo-nav.site-nav a:not(.nav-book)::after{
  content:"";
  position:absolute;
  left:0;
  bottom:1px;
  width:0;
  height:2px;
  background:#e7a33e;
  transition:width .25s ease;
}
.demo-nav.site-nav a:hover::after,.demo-nav.site-nav a.active::after{width:100%}
.demo-nav.site-nav .nav-book{
  margin-left:clamp(34px,5.2vw,92px);
  padding:18px 34px;
  border-radius:999px;
  color:#0b2e2c;
  background:#eda83b !important;
  box-shadow:0 13px 26px rgba(231,163,62,.27);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:4px;
}
.demo-header.scrolled .demo-nav a{color:#123f3a}
.demo-header.scrolled .demo-nav .nav-book{color:#0b2e2c}

.hero-demo.hero{
  min-height:100svh;
  padding-top:108px;
  background:linear-gradient(180deg,#0b2e2c 0%,#114c47 28%,#16766c 50%,#e7a33e 64%,#22a79b 78%,#0e7c72 100%);
}
.hero-demo .hero-content{
  width:min(1000px,calc(100% - 42px));
  margin:0 auto;
  padding:0 24px 66px;
  text-align:center;
  transform:translateY(14px);
}
.hero-demo .eyebrow{
  margin-bottom:26px;
  font-family:"Space Mono",monospace;
  font-size:clamp(14px,1.15vw,20px);
  font-weight:400;
  letter-spacing:.095em;
  color:#f4c875;
}
.hero-demo h1{
  font-family:"Fraunces",Georgia,serif;
  font-variation-settings:"opsz" 144;
  font-size:clamp(74px,9vw,138px);
  font-weight:600;
  line-height:.84;
  letter-spacing:-.045em;
  margin:0 0 30px;
  color:#fbfefc;
  text-shadow:0 8px 34px rgba(0,0,0,.24);
}
.hero-demo .hero-tagline{
  max-width:980px;
  margin:0 auto;
  font-family:"Manrope",sans-serif;
  font-size:clamp(22px,2.35vw,39px);
  font-weight:400;
  line-height:1.48;
  letter-spacing:-.035em;
  color:rgba(251,254,252,.93);
}
.hero-demo .hero-actions{margin-top:40px;gap:26px}
.hero-demo .btn{
  min-width:244px;
  justify-content:center;
  padding:19px 34px;
  font-family:"Manrope",sans-serif;
  font-size:clamp(18px,1.45vw,25px);
  font-weight:700;
  border-radius:999px;
  text-decoration:underline;
  text-underline-offset:5px;
}
.hero-demo .btn-primary{background:#eda83b;color:#0b2e2c}
.hero-demo .btn-outline{border:3px solid rgba(251,254,252,.62);color:#fff;background:rgba(12,48,45,.24)}
.hero-demo .hero-features{display:none}
.hero-mountains{bottom:17%;height:43%}
.hero-mountain-back polygon{fill:#314737;opacity:.6}
.hero-mountain-front polygon{fill:#1b3027;opacity:.92}
.hero-waves{height:45%}
.weather-card{
  top:132px !important;
  right:28px !important;
  left:auto !important;
  width:auto;
  min-width:190px;
  padding:11px 14px !important;
  border-radius:18px;
  background:rgba(8,55,53,.38) !important;
  border:1px solid rgba(255,255,255,.15) !important;
  backdrop-filter:blur(11px);
}
.weather-card strong{font-size:13px}.weather-card small{font-size:11px}
.sun-moon{width:64px;height:64px;right:5%;top:18%;opacity:.75}

@media(max-width:980px){
  .demo-header.site-header{min-height:86px;padding:12px 22px;background:rgba(251,254,252,.94);box-shadow:0 1px 0 rgba(11,46,44,.08)}
  .demo-brand.brand{color:#0b2e2c;min-width:0}
  .demo-brand strong{font-size:25px}
  .demo-brand .brand-comet{width:32px;height:28px;flex-basis:32px}
  .demo-nav.site-nav{gap:18px}
  .demo-nav.site-nav a{font-size:15px;color:#123f3a}
  .demo-nav.site-nav .nav-book{margin-left:8px;padding:12px 20px}
  .hero-demo.hero{padding-top:86px}
  .weather-card{top:100px !important;right:14px !important;transform:scale(.92);transform-origin:right top}
  .hero-demo .hero-content{padding-bottom:58px}
  .hero-demo h1{font-size:clamp(72px,12vw,112px)}
  .hero-demo .hero-tagline{font-size:clamp(19px,3.1vw,29px)}
  .hero-demo .btn{min-width:190px;padding:15px 25px;font-size:17px}
}
@media(max-width:760px){
  .demo-header.site-header{min-height:72px;padding:9px 14px}
  .demo-brand strong{font-size:21px}
  .demo-header .nav-toggle{display:flex}
  .demo-nav.site-nav{gap:0}
  .demo-nav.site-nav a{font-size:16px}
  .demo-nav.site-nav .nav-book{margin-left:0;border-radius:14px;padding:13px 16px;text-decoration:none}
  .hero-demo.hero{min-height:850px;padding-top:72px}
  .weather-card{top:82px !important;left:14px !important;right:auto !important;min-width:170px;transform:scale(.9);transform-origin:left top}
  .hero-demo .hero-content{width:calc(100% - 20px);padding:0 10px 92px;transform:translateY(44px)}
  .hero-demo .eyebrow{font-size:11px;margin-bottom:18px;white-space:nowrap}
  .hero-demo h1{font-size:clamp(66px,22vw,104px);margin-bottom:22px}
  .hero-demo .hero-tagline{font-size:17px;line-height:1.55}
  .hero-demo .hero-tagline br{display:none}
  .hero-demo .hero-actions{display:grid;grid-template-columns:1fr;gap:12px;max-width:286px;margin:28px auto 0}
  .hero-demo .btn{width:100%;min-width:0;padding:15px 22px;font-size:17px}
  .hero-mountains{bottom:23%;height:35%}
  .hero-waves{height:39%}
  .sun-moon{width:54px;height:54px;right:7%;top:19%}
}


/* =========================================================
   HERO EXACT V5 — header positioning hotfix
   The base header used left:50% + translateX(-50%).
   V4 changed left to 0 but accidentally kept that transform,
   which shifted half of the navigation outside the viewport.
   ========================================================= */
.demo-header.site-header{
  left:0 !important;
  right:0 !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  transform:none !important;
  box-sizing:border-box;
}
.demo-header.site-header.scrolled{
  left:0 !important;
  right:0 !important;
  transform:none !important;
}
@media(min-width:981px){
  .demo-header.site-header{overflow:visible}
  .demo-brand.brand{flex:0 0 auto}
  .demo-nav.site-nav{min-width:0;justify-content:flex-end}
}

/* =========================================================
   HERO-ONLY FIX V6
   Keep the entire website layout and typography unchanged.
   Only the opening/header section follows the supplied demo.
   ========================================================= */

/* Restore the original typography everywhere below the hero. */
body,
button,
input,
textarea,
select{
  font-family:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",sans-serif !important;
}
.section-head h2,
.menu-copy h2,
.booking-intro h2,
.contact-copy h2,
.modal h2{
  font-family:"Playfair Display",Georgia,serif !important;
  font-variation-settings:normal !important;
}
.experience-card h3,
.food-card h3,
.review-card h3,
.booking-panel h3,
.confirm-card h3{
  font-family:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",sans-serif !important;
  font-variation-settings:normal !important;
}

/* Demo typography is restricted to the opening section only. */
.demo-header,
.demo-header a,
.hero-demo .hero-tagline,
.hero-demo .btn{
  font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif !important;
}
.demo-brand strong,
.hero-demo h1{
  font-family:"Fraunces",Georgia,serif !important;
  font-variation-settings:"opsz" 144 !important;
}
.demo-brand strong{
  font-size:clamp(26px,2vw,34px) !important;
  font-weight:600 !important;
  letter-spacing:.01em !important;
  line-height:1 !important;
}
.demo-nav a{
  font-size:clamp(15px,1.15vw,18px) !important;
  font-weight:700 !important;
  letter-spacing:-.02em !important;
}
.hero-demo .eyebrow{
  font-family:"Space Mono",monospace !important;
  font-size:clamp(12px,1.05vw,16px) !important;
  font-weight:400 !important;
  letter-spacing:.11em !important;
}
.hero-demo h1{
  margin:0 0 24px !important;
  font-size:clamp(78px,9vw,118px) !important;
  font-weight:600 !important;
  line-height:.98 !important;
  letter-spacing:-.052em !important;
  text-shadow:0 8px 30px rgba(0,0,0,.22) !important;
}
.hero-demo .hero-tagline{
  max-width:780px !important;
  font-size:clamp(18px,1.85vw,27px) !important;
  font-weight:400 !important;
  line-height:1.55 !important;
  letter-spacing:-.025em !important;
}
.hero-demo .hero-actions{
  margin-top:32px !important;
  gap:16px !important;
}
.hero-demo .btn{
  min-width:190px !important;
  padding:15px 28px !important;
  font-size:16px !important;
  font-weight:700 !important;
  text-decoration:underline !important;
  text-underline-offset:4px !important;
}

/* Replace the artificial vector waves with a restrained real water texture. */
.hero-waves{
  display:none !important;
}
.hero-demo::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:26%;
  z-index:3;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(10,79,77,0) 0%,rgba(10,79,77,.22) 24%,rgba(9,92,87,.72) 100%),
    url("assets/real/water-ripple.webp") center 58% / cover no-repeat;
  opacity:.78;
  filter:saturate(.78) brightness(.74) contrast(1.06);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.42) 19%,#000 44%);
  mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.42) 19%,#000 44%);
  animation:heroWaterBreath 14s ease-in-out infinite alternate;
}
@keyframes heroWaterBreath{
  from{transform:scale(1.015) translateY(3px)}
  to{transform:scale(1.045) translateY(-4px)}
}
.hero-mountains{
  bottom:18% !important;
}
.hero-demo .scroll-cue{
  z-index:7 !important;
}

@media(max-width:980px){
  .demo-brand strong{font-size:25px !important}
  .hero-demo h1{font-size:clamp(72px,11vw,106px) !important}
  .hero-demo .hero-tagline{font-size:clamp(18px,2.8vw,25px) !important}
  .hero-demo::after{height:24%}
}
@media(max-width:760px){
  .demo-brand strong{font-size:21px !important}
  .hero-demo h1{font-size:clamp(66px,20vw,96px) !important;line-height:.96 !important}
  .hero-demo .hero-tagline{font-size:17px !important;line-height:1.52 !important}
  .hero-demo .hero-actions{margin-top:26px !important}
  .hero-demo .btn{font-size:16px !important;padding:14px 22px !important}
  .hero-demo::after{height:22%;background-position:center 54%}
  .hero-mountains{bottom:17% !important}
}
@media(prefers-reduced-motion:reduce){
  .hero-demo::after{animation:none !important}
}


/* === Japan-touch refinement V7 === */
:root{
  --warm-ivory:#f6f1e8;
  --warm-paper:#fbf7f1;
  --warm-sand:#efe5d6;
  --deep-green:#123f42;
  --forest:#28493f;
  --gold-soft:#d8ab59;
}
body{background:linear-gradient(180deg,#fcfaf6 0%,#f7f1e7 100%)}
.demo-header.site-header{
  background:rgba(250,247,241,.93)!important;
  border:1px solid rgba(21,58,56,.08)!important;
  box-shadow:0 14px 36px rgba(16,35,35,.10)!important;
}
.demo-header.site-header .brand strong,
.demo-header.site-header .site-nav a{color:var(--deep-green)!important}
.demo-header.site-header .site-nav a{font-weight:700;letter-spacing:.01em}
.demo-header.site-header .site-nav .nav-book{
  color:#163836!important;
  background:linear-gradient(135deg,#efc26c,#d89d35)!important;
  box-shadow:0 14px 30px rgba(208,153,56,.22)!important;
}
.demo-brand strong{font-family:"Fraunces",serif!important;font-weight:600;letter-spacing:-.03em}

.hero-demo.hero{
  background:
    linear-gradient(180deg,rgba(8,34,37,.92) 0%,rgba(23,86,86,.78) 34%,rgba(188,142,85,.44) 67%,rgba(10,43,40,.78) 100%),
    url("assets/real/booking-japanese-calm-sunset.webp") center 58%/cover no-repeat !important;
}
.hero-demo.hero::before{
  content:"";
  position:absolute;inset:0;
  background:radial-gradient(circle at 50% 18%,rgba(255,244,213,.06),transparent 38%),linear-gradient(180deg,rgba(255,255,255,.03),transparent 28%);
  z-index:0;pointer-events:none;
}
.weather-layer{z-index:1!important}
.sun-moon{
  right:8.5%!important;top:16%!important;width:110px!important;height:110px!important;
  background:radial-gradient(circle at 38% 35%,#fff3cf 0%,#f2cf80 34%,#d9a45c 70%,rgba(222,156,73,.28) 100%)!important;
  box-shadow:0 0 85px rgba(232,183,88,.20)!important;opacity:.66!important;
}
.cloud{
  width:340px!important;height:92px!important;border-radius:999px!important;box-shadow:none!important;
  background:
    radial-gradient(circle at 18% 55%, rgba(255,255,255,.18) 0 19%, transparent 20%),
    radial-gradient(circle at 40% 40%, rgba(255,255,255,.22) 0 24%, transparent 25%),
    radial-gradient(circle at 64% 48%, rgba(255,255,255,.18) 0 23%, transparent 24%),
    radial-gradient(circle at 84% 58%, rgba(255,255,255,.14) 0 17%, transparent 18%),
    linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.04));
  filter:blur(10px)!important;opacity:.34!important;
}
.cloud-1{top:17%!important;left:-26%!important;animation-duration:56s!important}
.cloud-2{top:28%!important;left:-36%!important;transform:scale(.9)!important;animation-duration:72s!important}
.hero-mountains{bottom:18.5%!important;height:38%!important;opacity:.98}
.hero-mountain-back polygon,
.hero-mountain-back path{fill:#4f6757!important;opacity:.70!important;filter:blur(.1px) saturate(.9)}
.hero-mountain-front polygon,
.hero-mountain-front path{fill:#243d33!important;opacity:.88!important}
.hero-mountain-back{transform:translateY(4px)}
.hero-mountain-front{filter:drop-shadow(0 -8px 40px rgba(0,0,0,.10))}
.hero-waves{height:25%!important;bottom:0!important;opacity:.35}
.hero-wave-back path{fill:rgba(48,90,89,.55)!important}
.hero-wave-mid path{fill:rgba(44,115,108,.46)!important}
.hero-wave-front path{fill:rgba(77,160,157,.52)!important}
.hero-demo::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:26%;z-index:3;pointer-events:none;
  background:linear-gradient(180deg,rgba(4,24,23,0) 0%,rgba(3,24,23,.16) 40%,rgba(3,24,23,.32) 100%),url("assets/real/booking-japanese-calm-sunset.webp") center bottom/cover no-repeat;
  opacity:.28;mix-blend-mode:screen;
}
.hero-demo .hero-content{z-index:6!important}
.hero-demo h1{
  font-family:"Fraunces",serif!important;
  font-weight:500!important;
  letter-spacing:-.055em!important;
  line-height:.86!important;
  text-shadow:0 14px 40px rgba(0,0,0,.25)!important;
}
.hero-demo .hero-tagline{
  font-family:"Manrope",sans-serif!important;
  font-size:clamp(19px,2.6vw,30px)!important;
  line-height:1.5!important;
  max-width:820px!important;
}
.hero-demo .eyebrow{
  letter-spacing:.18em!important;color:#e8c06b!important;
  text-shadow:0 4px 14px rgba(0,0,0,.18)!important;
}
.hero-demo .btn-primary{background:#e3ab47!important;color:#133637!important}
.hero-demo .btn-outline{border:2px solid rgba(255,255,255,.56)!important;background:rgba(7,38,37,.18)!important}
.hero-demo .scroll-cue{opacity:.82!important}
.hero-demo .weather-card{
  background:rgba(19,46,44,.34)!important;border-color:rgba(255,255,255,.16)!important;
  backdrop-filter:blur(12px)!important;border-radius:22px!important
}

.experience-card img,
.food-grid img,
.gallery-item img,
.zone-card img{filter:saturate(1.12) contrast(1.02) brightness(.99)}
.section-head p,.panel-copy>span{color:#cc9745!important}
.section-head h2 em,
.booking-intro h2 em,
.menu-copy h2 em,
.contact-copy h2 em{color:#9d7a49;font-style:normal}
.booking-shell{
  background:linear-gradient(180deg,#fdfaf4 0%,#f3e9db 100%)!important;
  border:1px solid rgba(28,58,55,.10)!important;
  box-shadow:0 22px 54px rgba(22,39,36,.08)!important;
}
.booking-progress-line{background:rgba(23,58,53,.10)!important}
.booking-progress-line span{background:linear-gradient(90deg,#547265,#d9a456)!important}
.booking-step.current b,.booking-step.done b{background:linear-gradient(135deg,#edc26d,#d5a04d)!important}
.zone-card{
  border-radius:30px!important;
  border:1px solid rgba(20,50,46,.10)!important;
  background:#152c2a!important;
  box-shadow:0 18px 40px rgba(16,37,35,.10)!important;
}
.zone-card::after{background:linear-gradient(180deg,rgba(9,21,18,.04) 10%,rgba(9,21,18,.78) 100%)!important}
.zone-card span{bottom:18px!important}
.zone-card strong{font-size:20px;letter-spacing:-.02em}
.zone-card small{font-size:12px;color:rgba(255,255,255,.82)!important}
.booking-summary{background:#efe3d2!important}
.booking-summary:not(.empty){background:linear-gradient(135deg,#284842,#173a38)!important}
.date-button,.time-button{background:#fffdfa!important;border-color:rgba(20,50,46,.10)!important}
.date-button.active,.time-button.active{background:#214642!important;border-color:#214642!important}
.form-grid input,.form-grid textarea,.review-dialog input,.review-dialog textarea,.review-dialog select{background:rgba(255,252,246,.95)!important}
.contact-grid{background:linear-gradient(135deg,#fbf8f2,#f1e8db)!important}
.gallery-item span,.experience-card .card-copy{backdrop-filter:blur(2px)}
@media(max-width:760px){
  .cloud{width:240px!important;height:72px!important}
  .hero-mountains{bottom:21%!important;height:33%!important}
  .hero-waves{height:21%!important}
  .hero-demo .hero-tagline{font-size:17px!important;line-height:1.55!important}
  .zone-card strong{font-size:16px}
}


/* =========================================================
   LAGUNA-INSPIRED EDITORIAL REDESIGN V8
   Immersive imagery, generous spacing, restrained motion.
   ========================================================= */
:root{
  --laguna-ink:#173c3c;
  --laguna-cream:#f5f1e9;
  --laguna-paper:#fbf8f2;
  --laguna-gold:#c69a55;
  --laguna-mist:#dce5df;
}
html{scroll-behavior:smooth}
body{background:var(--laguna-paper);color:var(--laguna-ink)}
.section{padding-block:clamp(88px,10vw,150px)}

/* Header sits on imagery, then becomes a calm ivory bar */
.site-header.demo-header{
  top:22px!important;
  width:min(1320px,calc(100% - 48px))!important;
  min-height:76px!important;
  padding:10px 14px 10px 22px!important;
  background:rgba(10,38,38,.15)!important;
  border:1px solid rgba(255,255,255,.20)!important;
  box-shadow:0 18px 60px rgba(0,0,0,.13)!important;
  backdrop-filter:blur(12px)!important;
}
.site-header.demo-header .brand strong,
.site-header.demo-header .site-nav a{color:#fff!important}
.site-header.demo-header .site-nav a{font-size:13px!important;letter-spacing:.02em!important}
.site-header.demo-header .site-nav a:not(.nav-book){padding:12px 14px!important}
.site-header.demo-header .nav-book{background:#d0a15b!important;color:#173c3c!important;box-shadow:none!important;padding:14px 22px!important}
.site-header.demo-header.scrolled{
  top:10px!important;background:rgba(251,248,242,.95)!important;border-color:rgba(23,60,60,.10)!important;
  box-shadow:0 18px 55px rgba(20,45,44,.12)!important;backdrop-filter:blur(18px)!important
}
.site-header.demo-header.scrolled .brand strong,
.site-header.demo-header.scrolled .site-nav a{color:var(--laguna-ink)!important}

/* Hero */
.hero-laguna{
  position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;color:#fff;background:#173c3c;isolation:isolate
}
.laguna-hero-media,.laguna-slide,.laguna-slide img,.laguna-hero-overlay{position:absolute;inset:0}
.laguna-hero-media{z-index:0;overflow:hidden;background:#173c3c}
.laguna-slide{margin:0;opacity:0;animation:lagunaCrossfade 24s infinite ease-in-out;will-change:opacity,transform}
.laguna-slide img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.035);animation:lagunaKenBurns 24s infinite ease-in-out;filter:saturate(.96) contrast(1.04)}
.laguna-slide-1{animation-delay:0s}.laguna-slide-2{animation-delay:8s}.laguna-slide-3{animation-delay:16s}
.laguna-slide-1 img{animation-delay:0s}.laguna-slide-2 img{animation-delay:8s;object-position:center 48%}.laguna-slide-3 img{animation-delay:16s;object-position:center 58%}
@keyframes lagunaCrossfade{0%,29%{opacity:1}35%,94%{opacity:0}100%{opacity:1}}
@keyframes lagunaKenBurns{0%{transform:scale(1.035) translate3d(0,0,0)}29%{transform:scale(1.09) translate3d(-1.2%,-1%,0)}35%,100%{transform:scale(1.035)}}
.laguna-hero-overlay{z-index:1;background:
  linear-gradient(90deg,rgba(8,28,29,.80) 0%,rgba(8,28,29,.52) 39%,rgba(8,28,29,.16) 70%,rgba(8,28,29,.26) 100%),
  linear-gradient(180deg,rgba(5,24,25,.36) 0%,rgba(5,24,25,.05) 50%,rgba(5,24,25,.62) 100%)}
.laguna-hero-content{position:relative;z-index:3;width:min(1320px,calc(100% - 48px));margin:0 auto;padding:150px 0 130px;text-align:left}
.laguna-hero-content .eyebrow{margin-bottom:22px;color:#efd29e!important;letter-spacing:.20em!important}
.laguna-hero-content h1{max-width:880px;margin:0;font-family:"Fraunces",Georgia,serif;font-size:clamp(68px,7.8vw,126px);font-weight:500;line-height:.90;letter-spacing:-.06em;text-shadow:0 18px 54px rgba(0,0,0,.30)}
.laguna-hero-content h1 em{display:inline-block;color:#f1d9ab;font-style:italic;font-weight:400}
.laguna-lead{max-width:650px;margin:30px 0 0;font-size:clamp(17px,1.55vw,23px);line-height:1.65;color:rgba(255,255,255,.88);text-shadow:0 4px 20px rgba(0,0,0,.25)}
.laguna-actions{justify-content:flex-start!important;margin-top:34px!important}
.laguna-actions .btn{min-height:56px;padding-inline:30px;border-radius:2px!important;text-decoration:none!important}
.laguna-actions .btn-primary{background:#d1a15b!important;color:#173c3c!important;box-shadow:none!important}
.laguna-actions .btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.60)}
.laguna-actions .btn-ghost:hover{background:rgba(255,255,255,.10)}
.laguna-weather{top:118px!important;right:clamp(24px,5vw,82px)!important;z-index:4!important;background:rgba(7,31,32,.34)!important;border:1px solid rgba(255,255,255,.18)!important;backdrop-filter:blur(12px)!important}
.laguna-hero-facts{position:absolute;z-index:3;right:clamp(24px,5vw,82px);bottom:62px;display:flex;gap:0;border-top:1px solid rgba(255,255,255,.24);border-bottom:1px solid rgba(255,255,255,.24)}
.laguna-hero-facts span{display:flex;flex-direction:column;min-width:170px;padding:18px 24px;border-left:1px solid rgba(255,255,255,.20)}
.laguna-hero-facts span:last-child{border-right:1px solid rgba(255,255,255,.20)}
.laguna-hero-facts small{font-family:"Space Mono",monospace;color:#e3bd78;font-size:11px}
.laguna-hero-facts strong{margin-top:7px;font-size:13px;font-weight:700;color:rgba(255,255,255,.94)}
.laguna-scroll{left:clamp(24px,5vw,82px)!important;right:auto!important;bottom:56px!important;z-index:4!important}

/* Story intro */
.laguna-story{width:min(1320px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(46px,8vw,110px);align-items:center;padding:clamp(100px,12vw,170px) 0}
.laguna-story-copy .eyebrow{color:#a67b3c!important}
.laguna-story-copy h2{margin:20px 0 28px;font-family:"Fraunces",Georgia,serif;font-size:clamp(50px,5.1vw,82px);line-height:.98;letter-spacing:-.055em;font-weight:500}
.laguna-story-copy h2 em{color:#9a7846;font-weight:400}
.laguna-story-copy>p:not(.eyebrow){max-width:570px;font-size:18px;line-height:1.85;color:#536b68}
.laguna-story-copy .text-link{display:inline-flex;margin-top:24px;color:var(--laguna-ink);font-weight:800;text-underline-offset:6px}
.laguna-story-image{position:relative;margin:0;min-height:640px;overflow:hidden;background:#ddd}
.laguna-story-image img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform 1.2s cubic-bezier(.22,.61,.36,1)}
.laguna-story-image:hover img{transform:scale(1.025)}
.laguna-story-image figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px;background:linear-gradient(180deg,transparent,rgba(4,29,28,.74));color:#fff}
.laguna-story-image figcaption span{display:block;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.15em;color:#e7c183}
.laguna-story-image figcaption strong{display:block;margin-top:8px;font-family:"Fraunces",serif;font-size:28px;font-weight:500}

/* Editorial section rhythm */
.laguna-experience{background:#f0ece4!important}
.laguna-experience .section-head,.gallery .section-head,.reviews .section-head{width:min(1320px,calc(100% - 48px))!important}
.section-head h2,.menu-copy h2,.booking-intro h2,.contact-copy h2{font-weight:500!important;letter-spacing:-.055em!important;line-height:.98!important}
.experience-grid{width:min(1320px,calc(100% - 48px))!important;gap:24px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
.experience-card{min-height:620px!important;border-radius:0!important;box-shadow:none!important}
.experience-card.experience-wide{grid-column:auto!important}
.experience-card img{transition:transform 1.1s cubic-bezier(.22,.61,.36,1)!important}
.experience-card:hover img{transform:scale(1.035)!important}
.experience-card .card-copy{padding:38px!important;background:linear-gradient(180deg,transparent 0%,rgba(7,32,31,.82) 100%)!important}
.experience-card .card-copy h3{max-width:520px;font-size:clamp(30px,3vw,46px)!important;font-weight:500!important}
.experience-card .card-copy p{max-width:500px;color:rgba(255,255,255,.78)!important}

.menu-section{background:#173c3c!important}
.menu-layout{width:min(1320px,calc(100% - 48px))!important;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)!important;gap:clamp(44px,7vw,100px)!important}
.menu-copy{align-self:center}
.menu-copy h2{font-size:clamp(54px,5.6vw,88px)!important}
.menu-poster{border-radius:0!important;box-shadow:0 34px 90px rgba(0,0,0,.26)!important}
.food-grid{grid-column:1/-1!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:12px!important;margin-top:22px}
.food-grid button{border-radius:0!important;aspect-ratio:4/5}
.food-grid span{font-size:12px!important;letter-spacing:.04em}

.gallery{background:#fbf8f2!important}
.gallery-grid{width:min(1320px,calc(100% - 48px))!important;gap:14px!important}
.gallery-item{border-radius:0!important;box-shadow:none!important}
.gallery-item img{transition:transform 1.15s cubic-bezier(.22,.61,.36,1)!important}
.gallery-item:hover img{transform:scale(1.035)!important}
.gallery-filters button{border-radius:0!important}

.reviews{background:#173c3c!important;color:#fff}
.reviews .section-head h2,.reviews .section-head p{color:#fff!important}
.review-card{border-radius:0!important;background:rgba(255,255,255,.07)!important;border-color:rgba(255,255,255,.12)!important;box-shadow:none!important}

.booking{position:relative;background:#f0ece4!important;padding-top:clamp(96px,10vw,150px)!important}
.booking-intro{width:min(1320px,calc(100% - 48px))!important;text-align:left!important}
.booking-intro p:last-child{max-width:660px!important;margin-left:0!important}
.laguna-booking-visual{position:relative;width:min(1320px,calc(100% - 48px));height:clamp(360px,48vw,620px);margin:54px auto 54px;overflow:hidden;background:#ddd}
.laguna-booking-visual img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.laguna-booking-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(5,31,30,.72))}
.laguna-booking-visual figcaption{position:absolute;z-index:1;left:42px;bottom:36px;color:#fff}
.laguna-booking-visual span{display:block;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.15em;color:#e8c588}
.laguna-booking-visual strong{display:block;max-width:650px;margin-top:9px;font-family:"Fraunces",serif;font-size:clamp(26px,3vw,42px);font-weight:500}
.booking-shell{width:min(1320px,calc(100% - 48px))!important;border-radius:0!important;box-shadow:none!important;border:1px solid rgba(23,60,60,.10)!important;background:#fbf8f2!important}
.zone-card{border-radius:0!important}

.contact{background:#fbf8f2!important}
.contact-grid{border-radius:0!important;box-shadow:none!important;border:1px solid rgba(23,60,60,.10)!important}
.site-footer{background:#102f2f!important;color:#fff!important}

@media(max-width:980px){
  .site-header.demo-header{width:calc(100% - 24px)!important;top:10px!important;background:rgba(251,248,242,.95)!important;border-color:rgba(23,60,60,.10)!important}
  .site-header.demo-header .brand strong,.site-header.demo-header .site-nav a{color:var(--laguna-ink)!important}
  .laguna-hero-content{width:calc(100% - 36px);padding-top:160px;padding-bottom:170px}
  .laguna-hero-content h1{font-size:clamp(58px,10.5vw,94px)}
  .laguna-hero-facts{left:18px;right:18px;bottom:54px;overflow:auto}
  .laguna-hero-facts span{min-width:155px;padding:14px 18px}
  .laguna-scroll{display:none!important}
  .laguna-weather{top:98px!important;right:18px!important}
  .laguna-story{grid-template-columns:1fr;padding-block:100px}
  .laguna-story-image{min-height:540px}
  .experience-grid{grid-template-columns:1fr!important}
  .experience-card{min-height:540px!important}
  .food-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:640px){
  .section{padding-block:78px}
  .laguna-hero-content{padding-top:150px;padding-bottom:190px}
  .laguna-hero-content h1{font-size:clamp(50px,16vw,74px);line-height:.94}
  .laguna-lead{font-size:16px;line-height:1.65;margin-top:22px}
  .laguna-actions{gap:10px!important}.laguna-actions .btn{min-height:50px;padding-inline:18px}
  .laguna-weather{display:none!important}
  .laguna-hero-facts span{min-width:145px;padding:12px 14px}
  .laguna-story{width:calc(100% - 28px);padding-block:80px;gap:42px}
  .laguna-story-image{min-height:430px}
  .laguna-story-image figcaption{padding:28px}
  .experience-grid,.menu-layout,.gallery-grid,.booking-intro,.laguna-booking-visual,.booking-shell{width:calc(100% - 28px)!important}
  .experience-card{min-height:480px!important}
  .food-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .laguna-booking-visual{height:440px;margin-top:36px}
  .laguna-booking-visual figcaption{left:24px;right:24px;bottom:24px}
}
@media(prefers-reduced-motion:reduce){
  .laguna-slide,.laguna-slide img{animation:none!important}
  .laguna-slide-1{opacity:1}.laguna-slide-2,.laguna-slide-3{display:none}
}


/* ==========================================================
   V9 — Laguna-inspired, paper-bag palette, rounded controls,
   static sky & sea hero, subtle shooting-star details.
   ========================================================== */
:root{
  --kraft:#ddc6a7;
  --kraft-light:#ead9c1;
  --kraft-soft:#f0e3d1;
  --kraft-deep:#c9ae88;
  --laguna-ink:#163d3b;
  --laguna-teal:#355e59;
  --laguna-teal-deep:#264945;
  --laguna-gold:#c99a53;
  --laguna-paper:#e6d4b9;
}
html{scroll-padding-top:96px}
body{
  background:
    radial-gradient(circle at 10% 5%,rgba(255,255,255,.16),transparent 28%),
    radial-gradient(circle at 85% 22%,rgba(255,255,255,.10),transparent 30%),
    repeating-linear-gradient(0deg,rgba(83,60,35,.018) 0 1px,transparent 1px 5px),
    linear-gradient(180deg,#eadbc5 0%,#dfc9a9 42%,#e8d8c1 100%)!important;
  color:var(--laguna-ink)!important;
}
body::before{
  opacity:.22!important;
  background:
    radial-gradient(rgba(71,54,34,.16) .55px,transparent .7px) 0 0/15px 15px,
    radial-gradient(rgba(255,255,255,.12) .6px,transparent .8px) 8px 7px/19px 19px!important;
  mask-image:none!important;
}

/* Header and navigation */
.site-header.demo-header{
  border-radius:30px!important;
  background:rgba(33,70,67,.30)!important;
  border-color:rgba(255,255,255,.18)!important;
}
.site-header.demo-header.scrolled{
  background:rgba(232,216,193,.94)!important;
  border-color:rgba(36,73,69,.12)!important;
}
.site-header.demo-header.scrolled .brand strong,
.site-header.demo-header.scrolled .site-nav a{color:var(--laguna-ink)!important}
.site-header.demo-header .site-nav a,
.site-header.demo-header .nav-book,
.nav-toggle{border-radius:999px!important}
.site-header.demo-header .site-nav a:not(.nav-book):hover,
.site-header.demo-header .site-nav a.active{background:rgba(255,255,255,.12)!important}
.site-header.demo-header.scrolled .site-nav a:not(.nav-book):hover,
.site-header.demo-header.scrolled .site-nav a.active{background:rgba(22,61,59,.08)!important}
.site-header.demo-header .nav-book{
  background:linear-gradient(135deg,#dfb368,#c58f3e)!important;
  box-shadow:0 12px 28px rgba(151,103,43,.22)!important;
}

/* Static hero: original sea and sky */
.hero-laguna{background:#102f34!important}
.laguna-hero-media{background:#102f34!important}
.laguna-slide{opacity:1!important;animation:none!important}
.laguna-slide img{
  animation:heroBreath 22s ease-in-out infinite alternate!important;
  transform:scale(1.035)!important;
  filter:saturate(.95) contrast(1.02) brightness(.92)!important;
  object-position:center 58%!important;
}
@keyframes heroBreath{
  from{transform:scale(1.035) translate3d(0,0,0)}
  to{transform:scale(1.075) translate3d(-.6%,-.4%,0)}
}
.laguna-hero-overlay{
  background:
    linear-gradient(90deg,rgba(7,29,31,.82) 0%,rgba(7,29,31,.56) 42%,rgba(7,29,31,.20) 72%,rgba(7,29,31,.28) 100%),
    linear-gradient(180deg,rgba(7,26,29,.25) 0%,rgba(7,26,29,.02) 48%,rgba(7,26,29,.66) 100%)!important;
}
.sunset-horizon{
  position:absolute;left:0;right:0;bottom:0;height:46%;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse at 28% 82%,rgba(236,167,76,.27),transparent 35%),linear-gradient(180deg,transparent,rgba(16,44,43,.10));
}
.meteor-field{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}
.meteor{
  position:absolute;width:120px;height:2px;border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(255,244,209,.86),rgba(238,180,83,.94));
  filter:drop-shadow(0 0 8px rgba(241,190,96,.62));opacity:0;transform:rotate(-28deg);
}
.meteor::after{content:"";position:absolute;right:-3px;top:-2px;width:6px;height:6px;border-radius:50%;background:#fff2bf;box-shadow:0 0 12px #e8b15e}
.meteor-1{top:20%;left:24%;animation:meteorFall 11s 1s ease-in-out infinite}
.meteor-2{top:32%;left:66%;width:90px;animation:meteorFall 15s 6s ease-in-out infinite}
.meteor-3{top:13%;left:47%;width:72px;animation:meteorFall 17s 10s ease-in-out infinite}
@keyframes meteorFall{
  0%,76%{opacity:0;transform:translate3d(0,0,0) rotate(-28deg)}
  80%{opacity:.9}
  92%{opacity:0;transform:translate3d(220px,130px,0) rotate(-28deg)}
  100%{opacity:0}
}
.meteor-star{position:absolute;width:3px;height:3px;border-radius:50%;background:#f4c977;box-shadow:0 0 10px #efc16d;animation:starPulse 3.4s ease-in-out infinite}
.star-a{left:18%;top:42%}.star-b{right:22%;top:28%;animation-delay:1.1s}.star-c{right:38%;top:18%;animation-delay:2s}
@keyframes starPulse{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:.95;transform:scale(1.45)}}
.laguna-hero-content h1 em{color:#f0d6a6!important}
.laguna-actions .btn,
.btn,
.gallery-filters button,
.modal-actions .btn,
.text-link,
.card-link,
.contact-action,
.quick-panel a,
.booking-channels a,
.date-button,
.time-button{
  border-radius:999px!important;
}
.laguna-actions .btn{min-height:56px!important;padding-inline:32px!important}
.laguna-hero-facts{
  border:0!important;background:rgba(24,58,55,.28);backdrop-filter:blur(10px);border-radius:24px!important;overflow:hidden
}
.laguna-hero-facts span{border-color:rgba(255,255,255,.14)!important}
.laguna-weather{border-radius:22px!important}

/* Laguna-style restaurant description */
.restaurant-overview{
  position:relative;padding:clamp(84px,10vw,138px) 24px;
  background:
    radial-gradient(circle at 50% 0,rgba(255,255,255,.18),transparent 40%),
    linear-gradient(180deg,#dfc7a5 0%,#e8d7bf 100%);
  border-bottom:1px solid rgba(44,70,62,.10);
}
.restaurant-overview::after{
  content:"";position:absolute;left:50%;bottom:0;width:min(920px,70%);height:1px;transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(48,78,72,.30),transparent)
}
.overview-inner{width:min(1120px,100%);margin:auto;text-align:center}
.overview-inner .eyebrow{color:#a97435!important}
.overview-inner h2{
  max-width:1000px;margin:20px auto 30px;font-family:"Fraunces",Georgia,serif;
  font-size:clamp(38px,4.5vw,64px);line-height:1.06;font-weight:500;letter-spacing:-.045em;color:#153f3c
}
.overview-inner p:not(.eyebrow){max-width:1040px;margin:0 auto 18px;font-size:17px;line-height:1.85;color:#47625d}

/* Paper-bag background across the site */
.laguna-story,
.laguna-experience,
.gallery,
.booking,
.contact{
  background:transparent!important;
}
.laguna-story{padding-inline:0}
.laguna-story-copy>p:not(.eyebrow),
.section-head>p,.menu-copy>p,.booking-intro>p,.contact-copy>p{color:#4f6862!important}
.laguna-experience{
  background:linear-gradient(180deg,#e3cfb2,#dcc3a2)!important;
}
.gallery{
  background:linear-gradient(180deg,#ead9c2,#e0c9aa)!important;
}
.booking{
  background:linear-gradient(180deg,#dcc3a3,#eadac4)!important;
}
.contact{
  background:linear-gradient(180deg,#eadac4,#d8bc99)!important;
}
.menu-section,
.reviews{
  background:linear-gradient(135deg,#355b56,#294b48)!important;
}
.booking-shell,
.contact-grid,
.review-card,
.modal-dialog{
  background:#ead8bf!important;
  border-color:rgba(34,69,64,.12)!important;
  box-shadow:0 24px 70px rgba(72,53,32,.10)!important;
}
.booking-shell,
.contact-grid{border-radius:34px!important}
.menu-poster,.experience-card,.gallery-item,.laguna-story-image,.laguna-booking-visual{border-radius:26px!important}
.food-grid button,.zone-card{border-radius:24px!important}
.experience-card,.gallery-item,.food-grid button,.zone-card,.laguna-story-image,.laguna-booking-visual{box-shadow:0 24px 58px rgba(70,51,31,.10)!important}
.contact-action{
  background:rgba(246,233,214,.70)!important;
  border:1px solid rgba(34,69,64,.10)!important;
}
.contact-action:hover{background:rgba(246,233,214,.92)!important}
.site-footer{background:#294a47!important}

/* Messenger-like quick contact bubble */
.quick-toggle.messenger-toggle{
  width:58px!important;height:58px!important;border-radius:50%!important;padding:0!important;
  display:grid!important;place-items:center!important;
  background:linear-gradient(135deg,rgba(13,137,255,.82),rgba(117,75,255,.78),rgba(247,78,158,.74))!important;
  border:1px solid rgba(255,255,255,.32)!important;
  box-shadow:0 16px 40px rgba(29,74,110,.25)!important;
  opacity:.78!important;backdrop-filter:blur(10px)!important;
}
.quick-toggle.messenger-toggle:hover{opacity:1!important;transform:translateY(-3px) scale(1.03)!important}
.quick-contact.open .quick-toggle.messenger-toggle{transform:rotate(0deg)!important;opacity:1!important}
.quick-toggle svg{width:34px;height:34px}
.quick-toggle .bubble{fill:#fff}.quick-toggle .bolt{fill:url(#none);fill:#5d63e7}
.quick-panel{
  background:rgba(233,217,195,.96)!important;
  border:1px solid rgba(40,74,69,.12)!important;
  border-radius:22px!important;
}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Form controls stay calm and warm */
.form-grid input,.form-grid textarea,.review-dialog input,.review-dialog textarea,.review-dialog select,
.date-button,.time-button{
  background:#f1e4d1!important;border-color:rgba(37,75,69,.12)!important;
}
.date-button.active,.time-button.active{background:#355b56!important;color:#fff!important;border-color:#355b56!important}
.booking-summary{background:#dfc8aa!important}
.booking-summary:not(.empty){background:#355b56!important}
.booking-channels a{background:#f1e4d1!important;border-color:rgba(37,75,69,.10)!important}

@media(max-width:980px){
  .site-header.demo-header{background:rgba(232,216,193,.95)!important;border-color:rgba(36,73,69,.12)!important}
  .site-header.demo-header .brand strong,.site-header.demo-header .site-nav a{color:var(--laguna-ink)!important}
  .laguna-hero-facts{border-radius:20px!important}
}
@media(max-width:640px){
  .restaurant-overview{padding:74px 18px}
  .overview-inner p:not(.eyebrow){font-size:15.5px;line-height:1.75;text-align:left}
  .overview-inner h2{font-size:clamp(34px,10vw,48px)}
  .meteor-2,.meteor-3{display:none}
  .laguna-slide img{animation:none!important;transform:scale(1.02)!important}
  .quick-toggle.messenger-toggle{width:54px!important;height:54px!important}
}
@media(prefers-reduced-motion:reduce){
  .laguna-slide img,.meteor,.meteor-star{animation:none!important}
}


/* =========================================================
   TYPOGRAPHY & COLOR REFINEMENT V10
   Warm paper palette, clearer hierarchy, softer contrast.
   ========================================================= */
:root{
  --text-main:#243f3b;
  --text-strong:#153a36;
  --text-soft:#5a6b64;
  --text-muted:#758078;
  --accent-warm:#a9783d;
  --accent-soft:#d7b677;
  --cream-text:#f4ecdf;
  --cream-muted:#d9d5ca;
  --paper-warm:#e7d5ba;
  --paper-light:#f0e3d0;
}

body,
button,
input,
textarea,
select{
  font-family:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif!important;
}
body{color:var(--text-main)!important}

/* Display font: elegant but still highly readable in Vietnamese */
.hero-laguna h1,
.overview-inner h2,
.laguna-story-copy h2,
.section-head h2,
.menu-copy h2,
.booking-intro h2,
.contact-copy h2,
.card-copy h3,
.review-card h3,
.booking-panel h3,
.confirm-card h3,
.modal-dialog h2{
  font-family:"Cormorant Garamond",Georgia,serif!important;
  font-weight:600!important;
  letter-spacing:-.025em!important;
}
.hero-laguna h1 em,
.laguna-story-copy h2 em,
.section-head h2 em,
.menu-copy h2 em,
.booking-intro h2 em,
.contact-copy h2 em{
  font-family:"Cormorant Garamond",Georgia,serif!important;
  font-style:italic!important;
  font-weight:500!important;
}

/* Header */
.site-header.demo-header .brand strong{
  font-family:"Cormorant Garamond",Georgia,serif!important;
  font-weight:700!important;
  letter-spacing:.02em!important;
  color:var(--cream-text)!important;
}
.site-header.demo-header .site-nav a{
  color:#efe8dc!important;
  font-weight:700!important;
}
.site-header.demo-header.scrolled .brand strong,
.site-header.demo-header.scrolled .site-nav a{
  color:var(--text-strong)!important;
}
.site-header.demo-header .nav-book{
  color:#193b37!important;
  font-weight:800!important;
}

/* Hero */
.hero-laguna h1{
  color:#f6eee2!important;
  text-shadow:0 16px 40px rgba(4,18,20,.32)!important;
}
.hero-laguna h1 em{color:#e5c78f!important}
.hero-laguna .eyebrow{color:#dfbc78!important}
.hero-laguna .laguna-lead{
  color:#e8e3d8!important;
  font-weight:500!important;
  line-height:1.75!important;
  text-shadow:0 4px 16px rgba(0,0,0,.28)!important;
}
.hero-laguna .laguna-hero-facts strong{color:#f2eadc!important}
.hero-laguna .laguna-hero-facts small{color:#d9b571!important}
.hero-laguna .btn-primary{color:#1c3a36!important}
.hero-laguna .btn-ghost{color:#f3eadc!important;border-color:rgba(244,236,223,.48)!important}
.hero-laguna .weather-card strong{color:#f3eadc!important}
.hero-laguna .weather-card small{color:#d6d5cc!important}

/* Light paper sections */
.overview-inner h2,
.laguna-story-copy h2,
.section-head h2,
.booking-intro h2,
.contact-copy h2{color:var(--text-strong)!important}
.overview-inner h2 em,
.laguna-story-copy h2 em,
.section-head h2 em,
.booking-intro h2 em,
.contact-copy h2 em{color:#9c703a!important}
.overview-inner p:not(.eyebrow),
.laguna-story-copy>p:not(.eyebrow),
.section-head>p,
.booking-intro>p,
.contact-copy>p{
  color:var(--text-soft)!important;
  font-weight:500!important;
}
.eyebrow,
.panel-copy>span,
.summary-kicker{
  color:var(--accent-warm)!important;
  font-weight:700!important;
}
.text-link{color:#315d56!important;font-weight:800!important}
.text-link:hover{color:#8f642f!important}

/* Dark green sections */
.menu-section .menu-copy h2,
.reviews .section-head h2{color:#f1e9dc!important}
.menu-section .menu-copy h2 em,
.reviews .section-head h2 em{color:#dfbc78!important}
.menu-section .menu-copy>p,
.reviews .section-head>p{color:#d2d6cd!important}
.menu-section .eyebrow,
.reviews .eyebrow{color:#dfbc78!important}
.menu-section .btn-light{background:#efe3d1!important;color:#1d403b!important}
.menu-section .btn-outline-light{color:#efe7da!important;border-color:rgba(239,231,218,.38)!important}

/* Image cards */
.card-copy h3,
.gallery-item strong,
.zone-card strong{color:#f5eee3!important}
.card-copy p,
.gallery-item small,
.zone-card small{color:#dcd8ce!important}
.card-copy span{color:#e4be77!important}
.card-link{color:#f2eadf!important}
.food-grid button span{color:#f1eadf!important}

/* Reviews and booking cards */
.review-card{color:var(--text-main)!important}
.review-card h3{color:var(--text-strong)!important}
.review-card p{color:var(--text-soft)!important}
.review-card small{color:#7b6c57!important}
.booking-step span{color:var(--text-soft)!important}
.booking-step.current span,.booking-step.done span{color:var(--text-strong)!important}
.booking-panel h3,.booking-panel h2{color:var(--text-strong)!important}
.booking-panel>p,.field-note,.form-grid label,.confirm-card p{color:var(--text-soft)!important}
.booking-summary.empty{color:#706553!important}
.booking-summary:not(.empty){color:#f2eadf!important}
.date-button,.time-button{color:var(--text-main)!important}
.date-button.active,.time-button.active{color:#f5eee4!important}
.form-grid input,.form-grid textarea,.review-dialog input,.review-dialog textarea,.review-dialog select{
  color:var(--text-main)!important;
}
.form-grid input::placeholder,.form-grid textarea::placeholder,
.review-dialog input::placeholder,.review-dialog textarea::placeholder{color:#8b8a80!important}

/* Contact */
.contact-info a span{color:#6f756e!important}
.contact-info a strong{color:var(--text-strong)!important}
.contact-action strong{color:var(--text-strong)!important}
.contact-action small{color:var(--text-soft)!important}
.quick-panel a{color:var(--text-strong)!important}
.quick-panel small{color:var(--text-soft)!important}

/* Footer */
.site-footer{color:#e9e1d5!important}
.site-footer a{color:#e9e1d5!important}
.site-footer small{color:#c9c8c0!important}

/* Global button tone */
.btn-primary,
.nav-book{
  background:linear-gradient(135deg,#dfb56d,#c99243)!important;
}
.btn-soft{background:#ddc9aa!important;color:#1d403b!important}
.btn-light{background:#efe4d3!important;color:#1d403b!important}

@media(max-width:640px){
  .hero-laguna h1{letter-spacing:-.035em!important}
  .hero-laguna .laguna-lead{font-size:16px!important;line-height:1.65!important}
  .overview-inner p:not(.eyebrow),
  .laguna-story-copy>p:not(.eyebrow),
  .section-head>p,
  .booking-intro>p,
  .contact-copy>p{font-size:15px!important;line-height:1.75!important}
}


/* =========================================================
   V11 — fixed image paths + Vietnam day/night hero
   Day: warm sunset sea and mountains. Night: dark teal sea scene.
   ========================================================= */
.laguna-slide-static{opacity:1!important;animation:none!important;transform:none!important}
.laguna-slide-static .hero-period-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  opacity:0!important;
  transform:scale(1.025)!important;
  animation:none!important;
  transition:opacity 1.35s ease,transform 14s ease!important;
  filter:none!important;
}
.hero-laguna[data-period="day"] .hero-period-day{opacity:1!important;transform:scale(1.055)!important}
.hero-laguna[data-period="day"] .hero-period-night{opacity:0!important}
.hero-laguna[data-period="night"] .hero-period-day{opacity:0!important}
.hero-laguna[data-period="night"] .hero-period-night{opacity:1!important;transform:scale(1.05)!important}
.hero-laguna[data-period="day"] .laguna-hero-overlay{
  background:
    linear-gradient(90deg,rgba(9,31,31,.74) 0%,rgba(9,31,31,.48) 42%,rgba(9,31,31,.12) 74%,rgba(9,31,31,.22) 100%),
    linear-gradient(180deg,rgba(8,25,27,.18) 0%,rgba(8,25,27,.02) 48%,rgba(7,26,27,.56) 100%)!important;
}
.hero-laguna[data-period="night"] .laguna-hero-overlay{
  background:
    linear-gradient(90deg,rgba(3,20,25,.86) 0%,rgba(3,20,25,.60) 44%,rgba(3,20,25,.28) 76%,rgba(3,20,25,.40) 100%),
    linear-gradient(180deg,rgba(2,18,23,.40) 0%,rgba(2,18,23,.10) 46%,rgba(2,18,23,.74) 100%)!important;
}
.hero-laguna[data-period="day"] .meteor-field{opacity:.42}
.hero-laguna[data-period="night"] .meteor-field{opacity:.88}
.hero-laguna[data-period="day"] .sunset-horizon{opacity:.80}
.hero-laguna[data-period="night"] .sunset-horizon{opacity:.24}
.hero-laguna[data-period="night"] .meteor-star{opacity:.95}
.hero-laguna[data-period="day"] .meteor-star{opacity:.55}
.hero-laguna .weather-card{transition:background .8s ease,border-color .8s ease}
.hero-laguna[data-period="day"] .weather-card{background:rgba(21,53,51,.36)!important}
.hero-laguna[data-period="night"] .weather-card{background:rgba(5,27,34,.58)!important;border-color:rgba(239,229,205,.18)!important}
@media(max-width:760px){
  .laguna-slide-static .hero-period-day{object-position:center 54%!important}
  .laguna-slide-static .hero-period-night{object-position:center 50%!important}
}
@media(prefers-reduced-motion:reduce){
  .laguna-slide-static .hero-period-image{transition:none!important;transform:none!important}
}

/* =========================================================
   V12 — MOBILE DESKTOP-LIKE REFINEMENT
   Preserve the desktop editorial composition on phones:
   compact glass header, controlled hero type, aligned CTAs,
   three equal fact columns, and no floating-button overlap.
   ========================================================= */
@media (max-width:760px){
  /* Compact glass header, visually consistent with desktop */
  .site-header.demo-header,
  .site-header.demo-header:not(.scrolled){
    top:10px!important;
    left:12px!important;
    right:12px!important;
    width:calc(100% - 24px)!important;
    min-height:62px!important;
    padding:7px 8px 7px 14px!important;
    border-radius:18px!important;
    background:rgba(8,38,38,.34)!important;
    border:1px solid rgba(255,255,255,.22)!important;
    box-shadow:0 14px 36px rgba(0,0,0,.16)!important;
    backdrop-filter:blur(14px)!important;
  }
  .site-header.demo-header.scrolled{
    top:8px!important;
    min-height:58px!important;
    background:rgba(236,220,198,.96)!important;
    border-color:rgba(28,67,62,.12)!important;
    box-shadow:0 12px 30px rgba(43,55,48,.13)!important;
  }
  .demo-brand.brand{gap:9px!important;min-width:0!important}
  .demo-brand .brand-comet{width:27px!important;height:23px!important;flex:0 0 27px!important}
  .site-header.demo-header .brand strong{
    color:#fff!important;
    font-size:18px!important;
    line-height:1!important;
    letter-spacing:.015em!important;
    text-underline-offset:4px!important;
  }
  .site-header.demo-header.scrolled .brand strong{color:var(--laguna-ink)!important}
  .demo-header .nav-toggle{
    display:block!important;
    width:42px!important;
    height:42px!important;
    padding:10px!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.14)!important;
    border:1px solid rgba(255,255,255,.16)!important;
  }
  .demo-header .nav-toggle span{
    height:1.5px!important;
    margin:4px 0!important;
    background:#fff!important;
  }
  .demo-header.scrolled .nav-toggle{
    background:rgba(23,60,60,.08)!important;
    border-color:rgba(23,60,60,.08)!important;
  }
  .demo-header.scrolled .nav-toggle span{background:var(--laguna-ink)!important}
  .demo-nav.site-nav{
    top:68px!important;
    left:0!important;
    right:0!important;
    padding:9px!important;
    gap:2px!important;
    border-radius:18px!important;
    background:rgba(241,229,211,.98)!important;
    border:1px solid rgba(29,66,61,.10)!important;
    box-shadow:0 18px 44px rgba(15,40,37,.18)!important;
  }
  .demo-nav.site-nav a,
  .site-header.demo-header .site-nav a{
    color:var(--laguna-ink)!important;
    font-size:14px!important;
    padding:11px 12px!important;
    border-radius:12px!important;
  }
  .demo-nav.site-nav .nav-book{
    margin-left:0!important;
    padding:12px 14px!important;
    border-radius:12px!important;
  }

  /* Hero keeps the desktop left-aligned editorial composition */
  .hero-laguna{
    min-height:max(760px,100svh)!important;
    align-items:center!important;
  }
  .laguna-hero-content{
    width:calc(100% - 36px)!important;
    max-width:620px!important;
    margin:0 auto!important;
    padding:112px 0 150px!important;
    text-align:left!important;
  }
  .laguna-hero-content .eyebrow{
    max-width:100%!important;
    margin:0 0 14px!important;
    font-size:9.5px!important;
    line-height:1.45!important;
    letter-spacing:.13em!important;
    white-space:normal!important;
  }
  .laguna-hero-content .eyebrow .comet-mark{
    width:15px!important;
    height:15px!important;
    margin-right:2px!important;
  }
  .laguna-hero-content h1,
  .hero-laguna h1{
    max-width:350px!important;
    margin:0!important;
    font-size:clamp(46px,12.6vw,57px)!important;
    line-height:.93!important;
    letter-spacing:-.045em!important;
    text-shadow:0 12px 34px rgba(0,0,0,.34)!important;
  }
  .laguna-hero-content h1 em{display:inline!important}
  .laguna-lead,
  .hero-laguna .laguna-lead{
    max-width:350px!important;
    margin:18px 0 0!important;
    font-size:14.5px!important;
    line-height:1.58!important;
    letter-spacing:-.015em!important;
  }
  .laguna-actions{
    display:flex!important;
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    width:100%!important;
    max-width:350px!important;
    gap:8px!important;
    margin-top:22px!important;
  }
  .laguna-actions .btn{
    flex:1 1 0!important;
    width:auto!important;
    min-width:0!important;
    min-height:46px!important;
    padding:11px 12px!important;
    border-radius:999px!important;
    font-size:13.5px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
  }
  .laguna-actions .btn-ghost{border-color:rgba(255,255,255,.55)!important}

  /* Three desktop-style facts, fitted to the phone width */
  .laguna-hero-facts{
    left:12px!important;
    right:12px!important;
    bottom:13px!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:auto!important;
    overflow:hidden!important;
    border-radius:14px!important;
    background:rgba(9,39,38,.34)!important;
    border:1px solid rgba(255,255,255,.17)!important;
    backdrop-filter:blur(8px)!important;
  }
  .laguna-hero-facts span{
    min-width:0!important;
    padding:10px 8px!important;
    border-left:0!important;
    border-right:1px solid rgba(255,255,255,.16)!important;
  }
  .laguna-hero-facts span:last-child{border-right:0!important}
  .laguna-hero-facts small{
    font-size:8.5px!important;
    line-height:1!important;
  }
  .laguna-hero-facts strong{
    margin-top:5px!important;
    font-size:10.5px!important;
    line-height:1.25!important;
    white-space:normal!important;
  }

  /* Image and overlay crop closer to desktop composition */
  .laguna-slide-static .hero-period-day{object-position:58% 54%!important}
  .laguna-slide-static .hero-period-night{object-position:56% 50%!important}
  .hero-laguna[data-period="day"] .laguna-hero-overlay{
    background:
      linear-gradient(90deg,rgba(8,29,30,.79) 0%,rgba(8,29,30,.52) 58%,rgba(8,29,30,.18) 100%),
      linear-gradient(180deg,rgba(6,23,25,.22) 0%,rgba(6,23,25,.03) 48%,rgba(6,23,25,.62) 100%)!important;
  }
  .hero-laguna[data-period="night"] .laguna-hero-overlay{
    background:
      linear-gradient(90deg,rgba(3,20,25,.88) 0%,rgba(3,20,25,.65) 60%,rgba(3,20,25,.32) 100%),
      linear-gradient(180deg,rgba(2,18,23,.42) 0%,rgba(2,18,23,.12) 46%,rgba(2,18,23,.76) 100%)!important;
  }

  /* Avoid the Messenger bubble covering the third fact */
  .quick-contact{right:12px!important;bottom:82px!important}
  .quick-toggle.messenger-toggle{width:50px!important;height:50px!important}
  .quick-toggle svg{width:30px!important;height:30px!important}

  /* Keep the remaining pages visually close to desktop but phone-readable */
  .restaurant-overview{padding:68px 18px!important}
  .overview-inner h2{font-size:clamp(34px,9.5vw,44px)!important;line-height:1.04!important}
  .laguna-story-copy h2,
  .section-head h2,
  .menu-copy h2,
  .booking-intro h2,
  .contact-copy h2{
    font-size:clamp(38px,10.5vw,48px)!important;
    line-height:1!important;
  }
  .experience-card{min-height:430px!important}
  .laguna-story-image{min-height:410px!important}
}

@media (max-width:370px){
  .laguna-hero-content h1,
  .hero-laguna h1{font-size:44px!important}
  .laguna-lead,
  .hero-laguna .laguna-lead{font-size:13.5px!important}
  .laguna-actions .btn{font-size:12.5px!important;padding-inline:8px!important}
  .laguna-hero-facts strong{font-size:9.5px!important}
}

/* =========================================================
   V13 — TRUE MOBILE / DESKTOP EXPERIENCE PARITY
   Keeps every desktop feature on phones while adapting scale,
   touch targets and animation performance for iOS/Android.
   ========================================================= */

html{
  -webkit-text-size-adjust:100%;
  text-rendering:optimizeLegibility;
}
body{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overscroll-behavior-y:none;
}
body.modal-open{
  position:fixed;
  left:0;
  right:0;
  width:100%;
  overflow:hidden!important;
}
img{
  image-rendering:auto;
  backface-visibility:hidden;
}
.btn,
.site-nav a,
.gallery-item,
.food-grid button,
.zone-card,
.contact-action,
.quick-toggle,
.modal-bar button{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}

/* Desktop-quality popup motion on every device */
.modal{
  display:grid!important;
  pointer-events:none;
  opacity:0!important;
  visibility:hidden!important;
  transition:opacity .32s cubic-bezier(.2,.75,.25,1),visibility 0s linear .32s!important;
}
.modal.open{
  pointer-events:auto;
  opacity:1!important;
  visibility:visible!important;
  transition:opacity .32s cubic-bezier(.2,.75,.25,1),visibility 0s!important;
}
.modal-backdrop{
  opacity:0;
  background:rgba(4,22,24,.66)!important;
  -webkit-backdrop-filter:blur(0);
  backdrop-filter:blur(0);
  transition:opacity .32s ease,-webkit-backdrop-filter .42s ease,backdrop-filter .42s ease;
}
.modal.open .modal-backdrop{
  opacity:1;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
.modal-dialog{
  opacity:0;
  transform:translate3d(0,34px,0) scale(.955);
  transform-origin:50% 55%;
  will-change:transform,opacity;
  transition:transform .48s cubic-bezier(.18,.84,.2,1),opacity .3s ease!important;
}
.modal.open .modal-dialog{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}
.modal-bar button{
  transition:transform .24s ease,background .24s ease;
}
.modal-bar button:hover{transform:rotate(5deg) scale(1.06)}

/* Reveal motion remains active on touch devices */
.reveal{
  opacity:0!important;
  transform:translate3d(0,30px,0) scale(.99)!important;
  filter:blur(4px);
  will-change:transform,opacity,filter;
  transition:
    opacity .72s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms),
    transform .72s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms),
    filter .72s ease var(--reveal-delay,0ms)!important;
}
.reveal.visible{
  opacity:1!important;
  transform:translate3d(0,0,0) scale(1)!important;
  filter:blur(0);
}

@keyframes mobileHeroBreath{
  0%{transform:scale(1.025) translate3d(0,0,0)}
  100%{transform:scale(1.065) translate3d(-.5%,.35%,0)}
}
@keyframes weatherEnter{
  0%{opacity:0;transform:translate3d(0,-8px,0) scale(.96)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
@keyframes mobilePanelPop{
  0%{opacity:0;transform:translate3d(0,-12px,0) scale(.965)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}

@media (hover:hover) and (pointer:fine){
  .experience-card:hover img,
  .gallery-item:hover img,
  .food-grid button:hover img,
  .zone-card:hover img{transform:scale(1.045)}
}

@media (max-width:760px){
  :root{--mobile-gutter:14px}

  html{scroll-padding-top:84px}
  body{overflow-x:clip}

  /* Header keeps the same glass/paper visual language as desktop */
  .site-header.demo-header,
  .site-header.demo-header:not(.scrolled){
    top:calc(8px + env(safe-area-inset-top,0px))!important;
    left:var(--mobile-gutter)!important;
    right:var(--mobile-gutter)!important;
    transform:none!important;
    width:auto!important;
    min-height:58px!important;
    padding:6px 7px 6px 14px!important;
    border-radius:18px!important;
    background:rgba(13,51,49,.46)!important;
    border:1px solid rgba(255,255,255,.22)!important;
    box-shadow:0 14px 34px rgba(3,24,25,.18)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.12)!important;
    backdrop-filter:blur(16px) saturate(1.12)!important;
  }
  .site-header.demo-header.scrolled{
    top:calc(6px + env(safe-area-inset-top,0px))!important;
    min-height:56px!important;
    background:rgba(235,219,196,.94)!important;
    border-color:rgba(30,70,65,.12)!important;
    box-shadow:0 12px 30px rgba(39,54,47,.14)!important;
  }
  .demo-brand.brand{
    min-width:0!important;
    gap:8px!important;
  }
  .demo-brand .brand-comet{
    width:25px!important;
    height:22px!important;
    flex:0 0 25px!important;
  }
  .site-header.demo-header .brand strong{
    display:block!important;
    color:#f5eddf!important;
    font-size:18px!important;
    line-height:1!important;
    letter-spacing:.015em!important;
    white-space:nowrap!important;
    text-decoration-thickness:1px!important;
    text-underline-offset:4px!important;
  }
  .site-header.demo-header.scrolled .brand strong{color:var(--laguna-ink)!important}
  .demo-header .nav-toggle{
    display:block!important;
    width:42px!important;
    height:42px!important;
    padding:10px!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.13)!important;
    border:1px solid rgba(255,255,255,.16)!important;
    transition:transform .3s ease,background .3s ease!important;
  }
  .demo-header .nav-toggle:active{transform:scale(.92)}
  .demo-header .nav-toggle span{
    height:1.5px!important;
    margin:4px 0!important;
    background:#fff!important;
    transition:transform .28s ease,opacity .2s ease!important;
  }
  .demo-header.scrolled .nav-toggle{
    background:rgba(23,60,60,.08)!important;
    border-color:rgba(23,60,60,.08)!important;
  }
  .demo-header.scrolled .nav-toggle span{background:var(--laguna-ink)!important}
  .demo-header .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
  .demo-header .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .demo-header .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

  /* Navigation is a genuine animated popup instead of a plain dropdown */
  .demo-nav.site-nav{
    top:66px!important;
    left:0!important;
    right:0!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
    padding:10px!important;
    border-radius:18px!important;
    background:rgba(239,226,207,.97)!important;
    border:1px solid rgba(29,66,61,.12)!important;
    box-shadow:0 20px 54px rgba(8,34,32,.24)!important;
    -webkit-backdrop-filter:blur(18px)!important;
    backdrop-filter:blur(18px)!important;
    transform:translate3d(0,-12px,0) scale(.965)!important;
    transform-origin:top right!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:opacity .25s ease,transform .36s cubic-bezier(.18,.84,.2,1),visibility 0s linear .36s!important;
  }
  .demo-nav.site-nav.open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translate3d(0,0,0) scale(1)!important;
    transition:opacity .25s ease,transform .36s cubic-bezier(.18,.84,.2,1),visibility 0s!important;
  }
  .demo-nav.site-nav a,
  .site-header.demo-header .site-nav a{
    color:var(--laguna-ink)!important;
    font-size:13px!important;
    padding:12px 11px!important;
    border-radius:12px!important;
    text-align:center!important;
    background:rgba(255,255,255,.32)!important;
  }
  .demo-nav.site-nav .nav-book{
    grid-column:1/-1!important;
    margin:0!important;
    padding:13px 14px!important;
    border-radius:12px!important;
    background:linear-gradient(135deg,#dfb368,#c58f3e)!important;
  }

  /* Hero contains every desktop element: weather, meteors, cue and facts */
  .hero-laguna{
    min-height:max(780px,100svh)!important;
    align-items:center!important;
    isolation:isolate;
  }
  .laguna-slide-static .hero-period-image{
    animation:mobileHeroBreath 20s ease-in-out infinite alternate!important;
    will-change:transform,opacity;
  }
  .laguna-slide-static .hero-period-day{object-position:58% 53%!important}
  .laguna-slide-static .hero-period-night{object-position:56% 50%!important}
  .meteor-field{display:block!important}
  .meteor-2,.meteor-3{display:block!important}
  .meteor-1{top:18%!important;right:2%!important}
  .meteor-2{top:31%!important;right:-8%!important;transform:scale(.7)!important}
  .meteor-3{top:47%!important;right:12%!important;transform:scale(.58)!important}

  .laguna-weather,
  .hero-laguna .weather-card{
    display:flex!important;
    left:auto!important;
    right:var(--mobile-gutter)!important;
    top:calc(76px + env(safe-area-inset-top,0px))!important;
    min-width:0!important;
    max-width:calc(100vw - 28px)!important;
    padding:9px 12px!important;
    gap:8px!important;
    border-radius:16px!important;
    background:rgba(6,34,35,.48)!important;
    border:1px solid rgba(255,255,255,.18)!important;
    box-shadow:0 12px 28px rgba(0,0,0,.17)!important;
    -webkit-backdrop-filter:blur(13px) saturate(1.15)!important;
    backdrop-filter:blur(13px) saturate(1.15)!important;
    transform:none!important;
    transform-origin:right top!important;
    animation:weatherEnter .55s .16s both!important;
  }
  .hero-laguna .weather-card>span{
    width:8px!important;
    height:8px!important;
    flex:0 0 8px!important;
  }
  .hero-laguna .weather-card strong{
    font-size:11px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
  }
  .hero-laguna .weather-card small{
    margin-top:3px!important;
    font-size:9.5px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
  }

  .laguna-hero-content{
    width:calc(100% - 32px)!important;
    max-width:620px!important;
    margin:0 auto!important;
    padding:142px 0 172px!important;
    text-align:left!important;
  }
  .laguna-hero-content .eyebrow{
    max-width:100%!important;
    margin:0 0 13px!important;
    font-size:9.5px!important;
    line-height:1.45!important;
    letter-spacing:.12em!important;
    white-space:normal!important;
  }
  .laguna-hero-content .eyebrow .comet-mark{
    width:15px!important;
    height:15px!important;
  }
  .laguna-hero-content h1,
  .hero-laguna h1{
    max-width:360px!important;
    margin:0!important;
    font-size:clamp(46px,13.3vw,58px)!important;
    line-height:.92!important;
    letter-spacing:-.045em!important;
    text-shadow:0 14px 38px rgba(0,0,0,.36)!important;
  }
  .laguna-hero-content h1 em{display:inline!important}
  .laguna-lead,
  .hero-laguna .laguna-lead{
    max-width:355px!important;
    margin:18px 0 0!important;
    font-size:14.5px!important;
    line-height:1.58!important;
    letter-spacing:-.01em!important;
  }
  .laguna-actions{
    display:flex!important;
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    width:100%!important;
    max-width:355px!important;
    gap:8px!important;
    margin-top:22px!important;
  }
  .laguna-actions .btn{
    flex:1 1 0!important;
    width:auto!important;
    min-width:0!important;
    min-height:47px!important;
    padding:11px 10px!important;
    border-radius:999px!important;
    font-size:13px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
  }
  .laguna-actions .btn:active{transform:translateY(1px) scale(.97)!important}

  .laguna-hero-facts{
    left:var(--mobile-gutter)!important;
    right:var(--mobile-gutter)!important;
    bottom:calc(14px + env(safe-area-inset-bottom,0px))!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:auto!important;
    overflow:hidden!important;
    border-radius:15px!important;
    background:rgba(8,39,38,.45)!important;
    border:1px solid rgba(255,255,255,.18)!important;
    -webkit-backdrop-filter:blur(10px)!important;
    backdrop-filter:blur(10px)!important;
    box-shadow:0 12px 32px rgba(0,0,0,.15)!important;
  }
  .laguna-hero-facts span{
    min-width:0!important;
    padding:10px 8px!important;
    border-left:0!important;
    border-right:1px solid rgba(255,255,255,.16)!important;
  }
  .laguna-hero-facts span:last-child{border-right:0!important}
  .laguna-hero-facts small{font-size:8px!important;line-height:1!important}
  .laguna-hero-facts strong{
    margin-top:5px!important;
    font-size:10px!important;
    line-height:1.24!important;
    white-space:normal!important;
  }
  .laguna-scroll{
    display:flex!important;
    left:var(--mobile-gutter)!important;
    right:auto!important;
    bottom:calc(86px + env(safe-area-inset-bottom,0px))!important;
    transform:none!important;
    gap:6px!important;
    font-size:8px!important;
    letter-spacing:.12em!important;
    opacity:.86!important;
  }
  .laguna-scroll span{width:15px!important;height:24px!important}

  /* Same content hierarchy as desktop, adapted rather than removed */
  .section{padding:82px var(--mobile-gutter)!important}
  .section>*{width:100%!important}
  .restaurant-overview{padding:74px 18px!important}
  .overview-inner h2,
  .laguna-story-copy h2,
  .section-head h2,
  .menu-copy h2,
  .booking-intro h2,
  .contact-copy h2{
    font-size:clamp(38px,10.6vw,49px)!important;
    line-height:.99!important;
  }
  .overview-inner p:not(.eyebrow),
  .laguna-story-copy>p:not(.eyebrow),
  .section-head>p,
  .menu-copy>p,
  .booking-intro>p,
  .contact-copy>p{
    font-size:15px!important;
    line-height:1.72!important;
  }
  .laguna-story{
    width:calc(100% - 28px)!important;
    gap:38px!important;
    padding-block:82px!important;
  }
  .laguna-story-image{min-height:420px!important}
  .experience-grid{grid-template-columns:1fr!important;gap:16px!important}
  .experience-card,.experience-wide{
    min-height:440px!important;
    border-radius:24px!important;
  }
  .experience-card:active img,
  .gallery-item:active img,
  .food-grid button:active img,
  .zone-card:active img{transform:scale(1.035)!important}
  .card-copy{left:22px!important;right:22px!important;bottom:22px!important}
  .card-copy h3{font-size:30px!important}
  .card-copy p{font-size:14px!important;line-height:1.6!important}
  .card-link{left:22px!important;right:auto!important;bottom:118px!important}

  .menu-layout{grid-template-columns:1fr!important;gap:30px!important}
  .menu-copy{position:static!important}
  .food-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:11px!important}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:170px!important;gap:10px!important}
  .gallery-wide{grid-column:span 2!important}
  .gallery-tall{grid-row:span 2!important}

  .review-highlights{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .review-highlights article{min-height:210px!important;padding:20px!important}
  .review-highlights h3{margin-top:26px!important;font-size:19px!important}
  .review-highlights p{font-size:13px!important;line-height:1.6!important}
  .review-cta{align-items:flex-start!important;padding:22px!important}

  /* Keep all four booking step names visible, like desktop */
  .booking-shell{padding:20px 14px!important;border-radius:27px!important}
  .booking-progress{margin-bottom:30px!important}
  .booking-progress-line{top:15px!important}
  .booking-step{gap:6px!important;font-size:9px!important}
  .booking-step b{width:31px!important;height:31px!important;font-size:11px!important}
  .booking-step span{
    display:block!important;
    max-width:68px!important;
    text-align:center!important;
    line-height:1.25!important;
  }
  .panel-copy h3{font-size:34px!important}
  .zone-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .zone-card{min-height:205px!important;border-radius:20px!important}
  .zone-card span{left:12px!important;right:12px!important;bottom:12px!important}
  .zone-card strong{font-size:14px!important;line-height:1.25!important}
  .zone-card small{font-size:10px!important;line-height:1.25!important}
  .date-row{scroll-snap-type:x mandatory!important;overscroll-behavior-x:contain!important}
  .date-button{scroll-snap-align:start!important}
  .time-grid{grid-template-columns:repeat(3,1fr)!important}
  .form-grid{grid-template-columns:1fr!important}
  .field-full{grid-column:auto!important}
  .booking-channels{grid-template-columns:1fr!important}
  .booking-actions{align-items:stretch!important}
  .booking-actions .btn{flex:1!important}

  .contact-grid{padding:22px!important;border-radius:27px!important}
  .contact-info a{grid-template-columns:1fr!important;gap:5px!important}
  .contact-info strong{text-align:left!important;font-size:14px!important}
  .site-footer{display:grid!important;gap:18px!important}
  .footer-links{order:3!important}

  /* Messenger floats above facts and never blocks interactive content */
  .quick-contact{
    right:12px!important;
    bottom:calc(82px + env(safe-area-inset-bottom,0px))!important;
    z-index:190!important;
  }
  .quick-toggle.messenger-toggle{width:50px!important;height:50px!important}
  .quick-toggle:active{transform:scale(.92)!important}
  .quick-panel{
    bottom:60px!important;
    border-radius:18px!important;
    transform:translate3d(0,14px,0) scale(.96)!important;
    transform-origin:bottom right!important;
    transition:opacity .25s ease,transform .34s cubic-bezier(.18,.84,.2,1),visibility 0s linear .34s!important;
  }
  .quick-contact.open .quick-panel{
    transform:translate3d(0,0,0) scale(1)!important;
    transition:opacity .25s ease,transform .34s cubic-bezier(.18,.84,.2,1),visibility 0s!important;
  }

  /* Mobile popups match desktop styling and motion */
  .modal{
    padding:calc(12px + env(safe-area-inset-top,0px)) 10px calc(12px + env(safe-area-inset-bottom,0px))!important;
    align-items:center!important;
  }
  .modal-dialog{
    width:100%!important;
    max-height:min(90svh,840px)!important;
    border-radius:24px 24px 18px 18px!important;
  }
  .modal-bar{padding:13px 14px!important}
  .modal-bar button{width:40px!important;height:40px!important;border-radius:999px!important}
  .menu-scroll{max-height:58svh!important;padding:10px!important;-webkit-overflow-scrolling:touch}
  .image-dialog>img{max-height:72svh!important}
  .review-dialog form{max-height:72svh!important;overflow:auto!important;-webkit-overflow-scrolling:touch}
  .modal-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding:12px!important}
  .modal-actions .btn{min-width:0!important;padding:11px 8px!important;font-size:12px!important}

  /* Prevent animation jank without removing visual effects */
  .hero-laguna,
  .laguna-hero-media,
  .laguna-slide-static,
  .laguna-slide-static .hero-period-image,
  .experience-card img,
  .gallery-item img,
  .food-grid img,
  .zone-card img{
    transform:translateZ(0);
    backface-visibility:hidden;
  }
  main>section:not(.hero){contain:layout paint style}
}

@media (max-width:390px){
  .laguna-hero-content h1,.hero-laguna h1{font-size:45px!important}
  .laguna-lead,.hero-laguna .laguna-lead{font-size:13.5px!important}
  .laguna-actions .btn{font-size:12px!important;padding-inline:7px!important}
  .laguna-hero-facts strong{font-size:9.3px!important}
  .hero-laguna .weather-card strong{font-size:10.5px!important}
  .hero-laguna .weather-card small{font-size:9px!important}
}

@media (prefers-reduced-motion:reduce){
  .modal,.modal-backdrop,.modal-dialog,.site-nav,.quick-panel,.reveal,
  .laguna-slide-static .hero-period-image{
    animation:none!important;
    transition:none!important;
  }
  .reveal{opacity:1!important;transform:none!important;filter:none!important}
}

/* ========================================================================== */
/* V14 — MOBILE COMPACT DESKTOP PARITY                                        */
/* Keep the desktop visual hierarchy on small screens without giant cards.    */
/* ========================================================================== */
@media (max-width:760px){
  :root{--mobile-gutter:14px}

  /* Denser overall rhythm: less empty vertical travel */
  .section{padding:58px var(--mobile-gutter)!important}
  .restaurant-overview{padding:52px 16px!important}
  .overview-inner{max-width:100%!important}
  .overview-inner h2,
  .section-head h2,
  .menu-copy h2,
  .booking-intro h2,
  .contact-copy h2{
    font-size:clamp(31px,8.8vw,40px)!important;
    line-height:1!important;
  }
  .overview-inner p:not(.eyebrow),
  .section-head>p,
  .menu-copy>p,
  .booking-intro>p,
  .contact-copy>p{
    font-size:13.2px!important;
    line-height:1.58!important;
  }
  .section-head{
    grid-template-columns:minmax(0,1.1fr) minmax(110px,.9fr)!important;
    gap:14px!important;
    align-items:end!important;
    margin-bottom:24px!important;
  }
  .section-head .eyebrow{font-size:8.5px!important;margin-bottom:8px!important}

  /* Story remains side-by-side like desktop */
  .laguna-story{
    width:calc(100% - 28px)!important;
    grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)!important;
    gap:14px!important;
    align-items:stretch!important;
    padding-block:58px!important;
  }
  .laguna-story-copy{align-self:center!important}
  .laguna-story-copy .eyebrow{font-size:8px!important;margin-bottom:8px!important}
  .laguna-story-copy h2{
    margin:8px 0 12px!important;
    font-size:clamp(27px,7.8vw,34px)!important;
    line-height:.98!important;
  }
  .laguna-story-copy>p:not(.eyebrow){
    font-size:12.2px!important;
    line-height:1.52!important;
    display:-webkit-box;
    -webkit-line-clamp:5;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .laguna-story-copy .text-link{margin-top:12px!important;font-size:11px!important;line-height:1.35!important}
  .laguna-story-image{min-height:250px!important;border-radius:20px!important}
  .laguna-story-image figcaption{padding:13px!important}
  .laguna-story-image figcaption span{font-size:7px!important}
  .laguna-story-image figcaption strong{margin-top:4px!important;font-size:14px!important;line-height:1.15!important}

  /* Experience follows desktop: wide / two halves / wide */
  .experience-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  .experience-card{
    min-height:210px!important;
    border-radius:20px!important;
  }
  .experience-wide{
    grid-column:1/-1!important;
    min-height:245px!important;
  }
  .card-copy{left:13px!important;right:13px!important;bottom:13px!important}
  .card-copy span{font-size:7.5px!important;letter-spacing:.09em!important}
  .card-copy h3{
    margin:5px 0 4px!important;
    font-size:17px!important;
    line-height:1.05!important;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .experience-wide .card-copy h3{font-size:23px!important;max-width:82%!important}
  .card-copy p{
    font-size:10.5px!important;
    line-height:1.38!important;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .experience-card:not(.experience-wide) .card-copy p{-webkit-line-clamp:2}
  .card-link{
    left:auto!important;
    right:12px!important;
    top:12px!important;
    bottom:auto!important;
    padding:8px 10px!important;
    border-radius:999px!important;
    font-size:9px!important;
  }

  /* Menu uses a desktop-like two-column composition */
  .menu-layout{
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)!important;
    gap:12px!important;
    align-items:center!important;
  }
  .menu-copy{position:static!important}
  .menu-copy .eyebrow{font-size:8px!important;margin-bottom:8px!important}
  .menu-copy h2{font-size:clamp(27px,7.6vw,34px)!important}
  .menu-copy>p{font-size:11.5px!important;line-height:1.5!important}
  .menu-actions{display:grid!important;gap:8px!important;margin-top:13px!important}
  .menu-actions .btn{min-height:40px!important;padding:9px 10px!important;font-size:10.5px!important;border-radius:12px!important}
  .menu-actions .text-link{font-size:10px!important;line-height:1.35!important}
  .menu-poster{padding:6px!important;border-radius:18px!important}
  .menu-poster img{border-radius:14px!important}
  .menu-poster span{
    left:10px!important;right:10px!important;bottom:10px!important;
    padding:8px 9px!important;border-radius:11px!important;
    font-size:9px!important;
  }
  .menu-poster span small{font-size:8px!important}
  .food-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
    margin-top:12px!important;
  }
  .food-grid button{min-height:0!important;aspect-ratio:4/5!important;border-radius:15px!important}
  .food-grid span{
    left:6px!important;right:6px!important;bottom:6px!important;
    padding:6px!important;border-radius:8px!important;
    font-size:8.5px!important;line-height:1.25!important;
  }

  /* Gallery resembles a compact desktop mosaic */
  .gallery-filters{gap:6px!important;margin-bottom:14px!important;flex-wrap:nowrap!important;overflow-x:auto!important;padding-bottom:4px!important}
  .gallery-filters button{flex:0 0 auto!important;padding:7px 10px!important;font-size:9.5px!important}
  .gallery-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-rows:122px!important;
    gap:7px!important;
  }
  .gallery-item{border-radius:15px!important}
  .gallery-wide{grid-column:span 2!important}
  .gallery-tall{grid-row:span 2!important}
  .gallery-item span{left:8px!important;right:8px!important;bottom:7px!important}
  .gallery-item span strong{font-size:9.5px!important;line-height:1.2!important}
  .gallery-item span small{display:none!important}

  /* Reviews stay in a 2x2 desktop-style grid */
  .review-highlights{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .review-highlights article{min-height:150px!important;padding:14px!important;border-radius:17px!important}
  .review-highlights span{font-size:8px!important}
  .review-highlights h3{margin:16px 0 6px!important;font-size:15px!important;line-height:1.15!important}
  .review-highlights p{
    font-size:10.5px!important;line-height:1.42!important;
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  }
  .review-cta{margin-top:10px!important;padding:15px!important;border-radius:17px!important;gap:10px!important}
  .review-cta h3{font-size:16px!important}
  .review-cta p{font-size:10.5px!important;line-height:1.4!important}
  .review-cta .btn{min-height:40px!important;padding:9px 12px!important;font-size:10.5px!important}

  /* Booking remains full-featured but considerably denser */
  .booking-intro{margin-bottom:20px!important}
  .booking-shell{padding:14px 11px!important;border-radius:20px!important}
  .booking-progress{margin-bottom:22px!important}
  .booking-progress-line{top:13px!important}
  .booking-step{gap:4px!important;font-size:7.5px!important}
  .booking-step b{width:27px!important;height:27px!important;font-size:9px!important}
  .booking-step span{max-width:62px!important;font-size:7.5px!important;line-height:1.15!important}
  .panel-copy h3{margin:7px 0 5px!important;font-size:28px!important}
  .panel-copy p{margin-bottom:14px!important;font-size:11.5px!important;line-height:1.45!important}
  .zone-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .zone-card{min-height:150px!important;border-radius:16px!important}
  .zone-card span{left:9px!important;right:9px!important;bottom:9px!important}
  .zone-card strong{font-size:11.5px!important}
  .zone-card small{font-size:8.5px!important;margin-top:3px!important}
  .booking-summary{margin-top:10px!important;padding:10px!important;border-radius:14px!important;gap:9px!important}
  .booking-summary>span{width:34px!important;height:34px!important;border-radius:10px!important}
  .booking-summary small{font-size:7.5px!important}
  .booking-summary strong{margin-top:3px!important;font-size:10.5px!important;line-height:1.35!important}
  .date-row{gap:7px!important}
  .date-button,.time-button{padding:9px 10px!important;border-radius:12px!important;font-size:10px!important}
  .date-button{min-width:76px!important}
  .time-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:7px!important;margin-top:11px!important}
  .form-grid{grid-template-columns:1fr 1fr!important;gap:9px!important}
  .field-full{grid-column:1/-1!important}
  .form-grid label>span{margin-bottom:5px!important;font-size:10px!important}
  .form-grid input,.form-grid textarea,.form-grid select{padding:10px!important;border-radius:12px!important;font-size:11px!important}
  .guest-stepper{height:40px!important;border-radius:12px!important;grid-template-columns:40px 1fr 40px!important}
  .booking-actions{margin-top:12px!important;gap:8px!important}
  .booking-actions .btn{min-height:40px!important;padding:9px 12px!important;font-size:10.5px!important}
  .confirm-card{padding:14px!important;border-radius:16px!important;gap:7px!important}
  .confirm-row{font-size:10.5px!important;gap:10px!important;padding-bottom:7px!important}
  .booking-channels{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;margin-top:10px!important}
  .booking-channels a{display:flex!important;flex-direction:column!important;gap:5px!important;padding:9px 5px!important;text-align:center!important;border-radius:13px!important}
  .booking-channels a>span{width:31px!important;height:31px!important;border-radius:10px!important;font-size:11px!important}
  .booking-channels strong{font-size:9.5px!important;line-height:1.2!important}
  .booking-channels small{display:none!important}

  /* Contact actions are a compact 2x2 grid */
  .contact-grid{padding:17px!important;border-radius:20px!important;gap:20px!important}
  .contact-copy .contact-logo{width:50px!important;height:50px!important}
  .contact-info{gap:5px!important}
  .contact-info a{grid-template-columns:72px 1fr!important;gap:8px!important;padding:8px 0!important}
  .contact-info a span{font-size:9px!important}
  .contact-info strong{text-align:right!important;font-size:10px!important;line-height:1.3!important}
  .contact-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  .contact-action{padding:11px!important;border-radius:15px!important;gap:8px!important}
  .contact-action>span{width:32px!important;height:32px!important;font-size:12px!important}
  .contact-action strong{font-size:10px!important}
  .contact-action small{display:none!important}
  .contact-action b{font-size:10px!important}

  .site-footer{padding:28px 14px!important;gap:13px!important}
  .footer-brand img{width:42px!important;height:42px!important}
  .footer-brand strong{font-size:11px!important}
  .footer-brand span,.site-footer p,.footer-links a{font-size:9px!important}
}

@media (max-width:390px){
  .section-head{grid-template-columns:minmax(0,1.18fr) minmax(98px,.82fr)!important}
  .laguna-story-copy h2{font-size:27px!important}
  .experience-wide{min-height:232px!important}
  .experience-card{min-height:198px!important}
  .gallery-grid{grid-auto-rows:116px!important}
  .food-grid span{font-size:8px!important}
}

/* ========================================================================== */
/* V15 — KHUNG ĐẦU TRANG ĐIỆN THOẠI RÕ NHƯ BẢN MÁY TÍNH                      */
/* ========================================================================== */
.mobile-header-actions{display:contents}
.mobile-header-book{display:none}

@media (max-width:760px){
  .site-header.demo-header,
  .site-header.demo-header:not(.scrolled){
    top:calc(8px + env(safe-area-inset-top,0px))!important;
    left:10px!important;
    right:10px!important;
    width:auto!important;
    min-height:64px!important;
    padding:8px 8px 8px 15px!important;
    border-radius:22px!important;
    background:linear-gradient(105deg,rgba(17,57,56,.80),rgba(34,61,64,.62))!important;
    border:1.5px solid rgba(244,231,207,.42)!important;
    box-shadow:
      0 15px 38px rgba(2,22,24,.26),
      inset 0 0 0 1px rgba(255,255,255,.06)!important;
    -webkit-backdrop-filter:blur(18px) saturate(1.22)!important;
    backdrop-filter:blur(18px) saturate(1.22)!important;
  }
  .site-header.demo-header::before{
    content:"";
    position:absolute;
    inset:4px;
    border-radius:17px;
    border:1px solid rgba(255,255,255,.08);
    pointer-events:none;
  }
  .site-header.demo-header.scrolled{
    min-height:61px!important;
    background:rgba(237,222,199,.97)!important;
    border-color:rgba(29,68,64,.18)!important;
    box-shadow:0 13px 32px rgba(32,48,43,.17),inset 0 0 0 1px rgba(255,255,255,.30)!important;
  }
  .site-header.demo-header.scrolled::before{border-color:rgba(25,63,59,.06)}

  .demo-brand.brand{position:relative;z-index:1;flex:1 1 auto!important}
  .site-header.demo-header .brand strong{
    font-size:18.5px!important;
    letter-spacing:.025em!important;
  }
  .mobile-header-actions{
    position:relative;
    z-index:1;
    display:flex!important;
    align-items:center;
    gap:7px;
    margin-left:auto;
  }
  .mobile-header-book{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:0 14px;
    border-radius:999px;
    background:linear-gradient(135deg,#e7b75f,#d59a3f);
    color:#123d3a!important;
    font-size:12px;
    font-weight:800;
    line-height:1;
    box-shadow:0 8px 20px rgba(208,154,72,.22);
    white-space:nowrap;
  }
  .site-header.demo-header.scrolled .mobile-header-book{color:#123d3a!important}
  .demo-header .nav-toggle{
    flex:0 0 40px!important;
    width:40px!important;
    height:40px!important;
    padding:9px!important;
    background:rgba(255,255,255,.13)!important;
    border:1px solid rgba(255,255,255,.22)!important;
  }
  .demo-header.scrolled .nav-toggle{
    background:rgba(18,58,55,.08)!important;
    border-color:rgba(18,58,55,.12)!important;
  }
  .demo-nav.site-nav{top:72px!important}
  .laguna-weather,
  .hero-laguna .weather-card{top:calc(84px + env(safe-area-inset-top,0px))!important}
}

@media (max-width:370px){
  .site-header.demo-header,
  .site-header.demo-header:not(.scrolled){left:8px!important;right:8px!important;padding-left:12px!important}
  .site-header.demo-header .brand strong{font-size:16px!important}
  .demo-brand .brand-comet{width:21px!important;flex-basis:21px!important}
  .mobile-header-book{min-height:38px;padding:0 10px;font-size:11px}
  .demo-header .nav-toggle{width:38px!important;height:38px!important;flex-basis:38px!important}
}

/* ===== V16: Luxury contact section redesign ===== */
.contact{
  background:linear-gradient(180deg,#f7f0e5 0%, #f0e2cf 52%, #f7f0e5 100%)!important;
  color:var(--text-strong)!important;
}
.contact-grid{
  display:grid!important;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;
  align-items:start!important;
  gap:28px!important;
  padding:30px!important;
  border-radius:38px!important;
  background:linear-gradient(145deg,rgba(255,252,246,.96),rgba(244,232,213,.96))!important;
  border:1px solid rgba(163,126,71,.18)!important;
  box-shadow:0 28px 80px rgba(54,45,30,.10), inset 0 1px 0 rgba(255,255,255,.85)!important;
  overflow:hidden!important;
}
.contact-copy{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:12px!important;
  padding:24px!important;
  border-radius:30px!important;
  background:linear-gradient(180deg,rgba(255,249,240,.95),rgba(250,243,231,.9))!important;
  border:1px solid rgba(163,126,71,.12)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85)!important;
}
.contact-logo{
  width:68px!important;
  height:68px!important;
  border:1px solid rgba(157,118,58,.14)!important;
  box-shadow:0 12px 28px rgba(32,38,39,.08)!important;
}
.contact-copy .eyebrow{
  margin-top:2px!important;
  color:#8a6a3c!important;
  letter-spacing:.24em!important;
}
.contact-copy h2{
  margin:0!important;
  max-width:12ch!important;
  color:#163f43!important;
  font-size:clamp(54px,5.3vw,76px)!important;
  letter-spacing:-.05em!important;
  line-height:.98!important;
}
.contact-copy h2 em{
  color:#aa7a3b!important;
}
.contact-copy > p{
  max-width:560px!important;
  margin:0!important;
  color:#5f736d!important;
  font-size:16px!important;
  line-height:1.8!important;
}
.contact-info{
  width:100%!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:14px!important;
  margin-top:10px!important;
}
.contact-info a{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  min-height:110px!important;
  gap:8px!important;
  padding:18px 18px 18px 20px!important;
  border-radius:22px!important;
  background:linear-gradient(180deg,#fffdf9,#f8f1e6)!important;
  border:1px solid rgba(163,126,71,.14)!important;
  box-shadow:0 12px 28px rgba(32,38,39,.06)!important;
}
.contact-info a::before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:14px!important;
  bottom:14px!important;
  width:4px!important;
  border-radius:0 10px 10px 0!important;
  background:linear-gradient(180deg,#cda35d,#9e7337)!important;
}
.contact-info a span{
  color:#8a6a3c!important;
  font:700 10px/1.3 "Space Mono",monospace!important;
  text-transform:uppercase!important;
  letter-spacing:.18em!important;
}
.contact-info a strong{
  text-align:left!important;
  color:#163f43!important;
  font-size:clamp(18px,1.7vw,24px)!important;
  line-height:1.42!important;
  word-break:break-word!important;
}
.contact-info a:nth-child(4) strong{
  font-size:clamp(16px,1.45vw,21px)!important;
}
.contact-actions{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:16px!important;
  align-content:start!important;
}
.contact-action{
  min-height:126px!important;
  padding:18px!important;
  gap:14px!important;
  border-radius:24px!important;
  grid-template-columns:54px 1fr auto!important;
  align-items:center!important;
  background:linear-gradient(180deg,#fffdf9,#f8f1e6)!important;
  border:1px solid rgba(163,126,71,.14)!important;
  box-shadow:0 14px 30px rgba(32,38,39,.06)!important;
}
.contact-action:hover{
  transform:translateY(-4px)!important;
  background:linear-gradient(180deg,#fffefd,#fbf4e9)!important;
  box-shadow:0 18px 36px rgba(32,38,39,.08)!important;
}
.contact-action > span{
  width:54px!important;
  height:54px!important;
  border-radius:17px!important;
  font-size:18px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25)!important;
}
.contact-action div{
  display:grid!important;
  gap:5px!important;
}
.contact-action strong{
  color:#163f43!important;
  font-size:17px!important;
  line-height:1.25!important;
}
.contact-action small{
  display:block!important;
  color:#6f817c!important;
  font-size:13px!important;
  line-height:1.45!important;
}
.contact-action b{
  color:#b28343!important;
  font-size:18px!important;
}
.site-footer{
  background:#123f42!important;
}
@media (max-width: 1050px){
  .contact-grid{
    grid-template-columns:1fr!important;
  }
  .contact-actions,
  .contact-info{
    grid-template-columns:1fr 1fr!important;
  }
}
@media (max-width: 760px){
  .contact{
    padding-top:72px!important;
    padding-bottom:72px!important;
  }
  .contact-grid{
    padding:18px!important;
    gap:18px!important;
    border-radius:28px!important;
  }
  .contact-copy{
    padding:18px!important;
    gap:10px!important;
    border-radius:24px!important;
  }
  .contact-logo{
    width:56px!important;
    height:56px!important;
  }
  .contact-copy h2{
    max-width:11ch!important;
    font-size:clamp(38px,10.8vw,58px)!important;
  }
  .contact-copy > p{
    font-size:15px!important;
    line-height:1.72!important;
  }
  .contact-info{
    grid-template-columns:1fr!important;
    gap:10px!important;
    margin-top:8px!important;
  }
  .contact-info a{
    min-height:auto!important;
    gap:6px!important;
    padding:15px 15px 15px 17px!important;
    border-radius:18px!important;
  }
  .contact-info a strong,
  .contact-info a:nth-child(4) strong{
    font-size:17px!important;
    text-align:left!important;
    line-height:1.4!important;
  }
  .contact-actions{
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
  }
  .contact-action{
    min-height:92px!important;
    padding:14px!important;
    gap:10px!important;
    border-radius:18px!important;
    grid-template-columns:42px 1fr auto!important;
  }
  .contact-action > span{
    width:42px!important;
    height:42px!important;
    border-radius:13px!important;
    font-size:15px!important;
  }
  .contact-action strong{
    font-size:14px!important;
  }
  .contact-action small{
    font-size:11px!important;
    line-height:1.35!important;
  }
  .contact-action b{
    font-size:14px!important;
  }
}
@media (max-width: 440px){
  .contact-grid{
    padding:16px!important;
    gap:16px!important;
  }
  .contact-copy{
    padding:16px!important;
  }
  .contact-copy h2{
    font-size:clamp(35px,11.5vw,48px)!important;
  }
  .contact-actions{
    grid-template-columns:1fr 1fr!important;
  }
  .contact-action small{
    display:none!important;
  }
}


/* V19.2 — Lịch và giờ tự chọn */
.custom-datetime-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:8px;
}
.custom-datetime-card{
  position:relative;
  display:grid;
  grid-template-columns:52px 1fr;
  grid-template-rows:auto auto;
  align-items:center;
  gap:2px 14px;
  min-height:118px;
  padding:18px;
  border:1px solid rgba(22,60,72,.14);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(247,237,222,.95));
  box-shadow:0 14px 34px rgba(28,49,45,.07);
  cursor:pointer;
  transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.custom-datetime-card:hover,
.custom-datetime-card:focus-within{
  transform:translateY(-3px);
  border-color:rgba(201,146,67,.72);
  box-shadow:0 20px 42px rgba(28,49,45,.11),0 0 0 4px rgba(201,146,67,.08);
}
.custom-datetime-icon{
  grid-row:1/3;
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:17px;
  background:linear-gradient(135deg,var(--gold-2),var(--gold));
  color:#173b3f;
  font-size:22px;
  box-shadow:0 10px 24px rgba(201,146,67,.23);
}
.custom-datetime-copy{
  display:grid;
  gap:5px;
}
.custom-datetime-copy small{
  color:#a26f2f;
  font:700 10px/1.2 "Space Mono",monospace;
  letter-spacing:.14em;
}
.custom-datetime-copy strong{
  color:var(--ink);
  font-size:16px;
}
.custom-datetime-card input{
  grid-column:2;
  width:100%;
  min-height:45px;
  margin-top:8px;
  padding:10px 12px;
  border:1px solid rgba(22,60,72,.14);
  border-radius:14px;
  background:#fffdf8;
  color:var(--ink);
  font-weight:750;
  outline:none;
  cursor:pointer;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.custom-datetime-card input:focus{
  border-color:rgba(201,146,67,.86);
  box-shadow:0 0 0 4px rgba(201,146,67,.12);
}
.custom-datetime-card input[aria-invalid="true"]{
  border-color:#b2493c;
  box-shadow:0 0 0 4px rgba(178,73,60,.10);
}
.datetime-help{
  margin:13px 2px 0;
  color:#6f8183;
  font-size:12px;
  line-height:1.6;
}
.datetime-error{
  display:none;
  margin-top:10px;
  padding:11px 13px;
  border:1px solid rgba(178,73,60,.22);
  border-radius:14px;
  background:rgba(178,73,60,.08);
  color:#9f3f34;
  font-size:12px;
  font-weight:700;
}
.datetime-error.show{display:block;animation:panelIn .28s var(--ease)}
@media(max-width:760px){
  .custom-datetime-grid{grid-template-columns:1fr;gap:11px}
  .custom-datetime-card{
    grid-template-columns:46px 1fr;
    min-height:104px;
    padding:14px;
    border-radius:19px;
  }
  .custom-datetime-icon{
    width:46px;
    height:46px;
    border-radius:14px;
    font-size:19px;
  }
  .custom-datetime-copy strong{font-size:14px}
  .custom-datetime-card input{min-height:43px;font-size:16px}
}


/* V19.3 - Số khách nhập bằng bàn phím */
.guest-stepper-input{
  grid-template-columns:56px minmax(0,1fr) 56px!important;
  overflow:hidden;
}
.guest-stepper-input input{
  height:100%;
  border:0!important;
  border-left:1px solid rgba(22,60,72,.10)!important;
  border-right:1px solid rgba(22,60,72,.10)!important;
  border-radius:0!important;
  background:transparent!important;
  text-align:center;
  font-size:24px;
  font-weight:800;
  color:var(--ink)!important;
  padding:0 10px!important;
  outline:none;
  box-shadow:none!important;
  appearance:textfield;
  -moz-appearance:textfield;
}
.guest-stepper-input input::-webkit-outer-spin-button,
.guest-stepper-input input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.guest-stepper-input button{
  font-size:24px!important;
  font-weight:700;
  color:var(--ink);
  transition:background .2s ease, transform .12s ease;
}
.guest-stepper-input button:hover{background:rgba(22,60,72,.06)}
.guest-stepper-input button:active{transform:scale(.96)}
@media(max-width:760px){
  .guest-stepper-input{grid-template-columns:48px minmax(0,1fr) 48px!important}
  .guest-stepper-input input{font-size:20px!important}
  .guest-stepper-input button{font-size:22px!important}
}


/* V19.4 - Chỉ giữ gửi yêu cầu qua Gmail */
.booking-email-note{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-top:16px;
  padding:16px 18px;
  border-radius:20px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 10px 24px rgba(18,42,44,.05);
}
.booking-email-note > span{
  width:42px;
  height:42px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--gold-2),var(--gold));
  color:#153845;
  font-size:18px;
  flex:0 0 42px;
}
.booking-email-note div{display:grid;gap:5px}
.booking-email-note small{
  font:700 10px/1.2 "Space Mono",monospace;
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.1em;
}
.booking-email-note strong{
  color:var(--ink);
  font-size:14px;
  line-height:1.55;
}
@media(max-width:760px){
  .booking-email-note{padding:14px 14px;border-radius:16px;gap:12px}
  .booking-email-note strong{font-size:13px;line-height:1.5}
}


/* V20.1 - Nút Gọi món / Giao hàng nổi bật hơn */
.btn-order-cta{
  position:relative;
  overflow:hidden;
  min-width:205px;
  padding-inline:24px!important;
  border:1px solid rgba(255,231,180,.62)!important;
  background:linear-gradient(135deg,#f4ca78 0%,#e2aa4f 58%,#c98732 100%)!important;
  color:#123b3c!important;
  box-shadow:0 16px 36px rgba(202,139,49,.28),inset 0 1px 0 rgba(255,255,255,.45)!important;
}
.btn-order-cta::before{
  content:"";
  position:absolute;
  top:-80%;
  left:-35%;
  width:35%;
  height:260%;
  transform:rotate(22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
  transition:left .55s var(--ease);
}
.btn-order-cta:hover::before{left:115%}
.btn-order-cta:hover{
  transform:translateY(-3px) scale(1.015)!important;
  box-shadow:0 20px 42px rgba(202,139,49,.36),inset 0 1px 0 rgba(255,255,255,.5)!important;
}
.btn-order-cta span,.btn-order-cta b{position:relative;z-index:1}
.btn-order-cta b{font-size:19px;transition:transform .25s var(--ease)}
.btn-order-cta:hover b{transform:translateX(4px)}


/* =========================================================
   V20.7 — MOBILE UI, BOOKING AREA STATES & TRANSPARENT COPY
   ========================================================= */

/* Feature cards: keep photos visible, with transparent editorial text overlay */
.experience-card::after{
  background:linear-gradient(180deg,
    rgba(3,22,25,0) 30%,
    rgba(3,22,25,.18) 53%,
    rgba(3,22,25,.76) 100%)!important;
}
.experience-card .card-copy{
  background:transparent!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  box-shadow:none!important;
  text-shadow:0 2px 18px rgba(0,0,0,.46)!important;
}
.experience-card .card-copy p{
  color:rgba(255,255,255,.88)!important;
  text-shadow:0 2px 12px rgba(0,0,0,.45)!important;
}
.experience-card .card-link{
  background:rgba(4,35,38,.28)!important;
  -webkit-backdrop-filter:blur(6px)!important;
  backdrop-filter:blur(6px)!important;
}

/* Selected booking area is unmistakable; other cards recede */
.zone-card{
  isolation:isolate;
  transition:opacity .28s var(--ease),filter .28s var(--ease),transform .28s var(--ease),border-color .28s var(--ease),box-shadow .28s var(--ease)!important;
}
.zone-card::before{
  content:"✓";
  position:absolute;
  z-index:5;
  top:12px;
  right:12px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#143b3a;
  background:linear-gradient(135deg,#f8d889,#d79b39);
  border:2px solid rgba(255,255,255,.82);
  box-shadow:0 10px 24px rgba(0,0,0,.24);
  opacity:0;
  transform:scale(.68) rotate(-12deg);
  transition:opacity .24s var(--ease),transform .28s var(--ease);
}
.zone-card.selected{
  opacity:1!important;
  filter:none!important;
  transform:translateY(-4px) scale(1.015)!important;
  border-color:#e3ad4d!important;
  box-shadow:0 0 0 3px rgba(227,173,77,.30),0 22px 52px rgba(49,35,18,.20)!important;
}
.zone-card.selected::before{opacity:1;transform:scale(1) rotate(0)}
.zone-grid.has-selection .zone-card:not(.selected){
  opacity:.48!important;
  filter:saturate(.55) brightness(.70) blur(.55px)!important;
  transform:scale(.975)!important;
}
.zone-grid.has-selection .zone-card:not(.selected):hover{
  opacity:.74!important;
  filter:saturate(.75) brightness(.82)!important;
}

/* Booking navigation: clearer contrast, never washed out */
.booking-actions .btn-soft{
  color:#153e3d!important;
  background:#fff8ed!important;
  border:1px solid rgba(22,61,59,.25)!important;
  box-shadow:0 8px 20px rgba(34,57,52,.08)!important;
}
.booking-actions .btn-primary{
  color:#153b3a!important;
  background:linear-gradient(135deg,#f4c86d,#d99c3e)!important;
  border:1px solid rgba(181,120,38,.34)!important;
  box-shadow:0 12px 26px rgba(193,128,38,.22)!important;
}
.booking-actions .btn:hover{filter:brightness(1.03)}
.booking-actions .btn:disabled{
  opacity:1!important;
  color:#746b5f!important;
  background:#e8dbc6!important;
  border-color:rgba(90,73,52,.12)!important;
  box-shadow:none!important;
}

@media(max-width:760px){
  /* Mobile CTA group: compact desktop-like structure, no clipped text */
  .laguna-actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    width:100%!important;
    max-width:380px!important;
    gap:10px!important;
    align-items:stretch!important;
  }
  .laguna-actions .btn{
    width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    padding:11px 12px!important;
    border-radius:16px!important;
    font-size:12.5px!important;
    line-height:1.25!important;
    white-space:normal!important;
    text-align:center!important;
  }
  .laguna-actions .btn-order-cta{
    grid-column:1/-1!important;
    min-width:0!important;
    min-height:50px!important;
    justify-content:center!important;
    gap:10px!important;
  }
  .laguna-actions .btn-order-cta b{font-size:17px!important}

  .booking-actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:10px!important;
    width:100%!important;
  }
  .booking-actions>span{display:none!important}
  .booking-actions .btn{
    width:100%!important;
    min-height:46px!important;
    border-radius:15px!important;
    font-size:12px!important;
    font-weight:800!important;
  }
  .booking-panel[data-panel="1"] .booking-actions{
    grid-template-columns:1fr!important;
  }

  .zone-grid{gap:10px!important}
  .zone-card::before{
    width:30px;height:30px;top:9px;right:9px;font-size:14px;
  }
  .zone-grid.has-selection .zone-card:not(.selected){
    opacity:.42!important;
    filter:saturate(.48) brightness(.68) blur(.45px)!important;
  }

  .experience-card::after{
    background:linear-gradient(180deg,
      rgba(3,22,25,0) 28%,
      rgba(3,22,25,.16) 50%,
      rgba(3,22,25,.80) 100%)!important;
  }
  .experience-card .card-copy{
    left:14px!important;
    right:14px!important;
    bottom:14px!important;
    padding:0!important;
  }
  .experience-card .card-copy h3{color:#fff!important}
  .experience-card .card-copy p{color:rgba(255,255,255,.88)!important}
}

@media(max-width:420px){
  .laguna-actions{max-width:100%!important;gap:8px!important}
  .laguna-actions .btn{font-size:11.5px!important;padding-inline:9px!important}
  .laguna-actions .btn-order-cta{font-size:12.5px!important}
}
