:root {
  --navy: #032d47;
  --navy-2: #064d70;
  --blue: #087bb5;
  --cyan: #30c9eb;
  --foam: #effcff;
  --sand: #fff4dc;
  --paper: #ffffff;
  --coral: #ef533f;
  --coral-dark: #bf2f25;
  --yellow: #ffd447;
  --ink: #0b2430;
  --muted: #647680;
  --line: rgba(3,45,71,.13);
  --green: #25d366;
  --shadow: 0 24px 70px rgba(3,45,71,.14);
  --shadow-dark: 0 30px 90px rgba(0,0,0,.32);
  --radius-xl: 38px;
  --radius-lg: 28px;
  --radius-md: 20px;
  --container: 1180px;
}
* { box-sizing: border-box; }
.ico { display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; flex-shrink: 0; }
.ico svg { display: block; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin:0; color:var(--ink); background:var(--foam); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.55; overflow-x:hidden; }
body.menu-page { background:#f5fbfd; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
button { color:inherit; }
.container { width:min(var(--container),92%); margin-inline:auto; }
.skip-link { position:fixed; left:14px; top:-100px; z-index:1000; background:#fff; padding:12px 18px; border-radius:12px; font-weight:850; box-shadow:var(--shadow); }
.skip-link:focus { top:14px; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1; letter-spacing:-.045em; }
h2 { font-size:clamp(2.35rem,5vw,4.7rem); margin-bottom:18px; }
h3 { font-size:1.38rem; }
.kicker,.section-kicker { margin:0 0 15px; color:var(--coral); font-size:.78rem; font-weight:950; letter-spacing:.16em; text-transform:uppercase; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:13px 22px; border:0; border-radius:999px; font-weight:900; cursor:pointer; transition:.22s ease; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { color:var(--navy); background:linear-gradient(135deg,var(--yellow),#ffeb84); box-shadow:0 18px 42px rgba(255,212,71,.28); }
.btn-primary:hover { box-shadow:0 22px 52px rgba(255,212,71,.4); }
.btn-ghost { color:#fff; border:1px solid rgba(255,255,255,.34); background:rgba(255,255,255,.09); }
.btn-dark { background:var(--navy); color:#fff; }
.btn-light { background:#fff; color:var(--navy); }

/* Header */
.topbar { position:fixed; inset:0 0 auto; z-index:100; background:rgba(3,45,71,.88); border-bottom:1px solid rgba(255,255,255,.12); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.nav { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:inline-flex; align-items:center; gap:12px; color:#fff; min-width:0; }
.brand-logo { width:61px; height:61px; object-fit:contain; border-radius:14px; background:#fff; box-shadow:0 8px 22px rgba(0,0,0,.18); flex:0 0 auto; }
.brand-copy { min-width:0; }
.brand-copy strong { display:block; font-size:1.02rem; line-height:1.05; white-space:nowrap; }
.brand-copy small { display:block; color:#aeeefe; font-size:.75rem; margin-top:4px; }
.nav-menu { display:flex; align-items:center; gap:23px; color:#fff; font-weight:820; font-size:.92rem; }
.nav-menu>a:not(.mini-cta) { opacity:.9; }
.nav-menu>a:not(.mini-cta):hover { color:var(--yellow); opacity:1; }
.mini-cta { padding:11px 18px; border:0; border-radius:999px; background:var(--yellow); color:var(--navy)!important; box-shadow:0 10px 30px rgba(255,212,71,.22); font-weight:900; cursor:pointer; }
.mini-cta:hover { background:#ffe47a; transform:translateY(-1px); }
.nav-toggle { display:none; width:46px; height:46px; place-items:center; border:1px solid rgba(255,255,255,.22); border-radius:14px; background:rgba(255,255,255,.08); color:#fff; font-size:1.35rem; cursor:pointer; }

/* Home hero */
.hero { position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; background:var(--navy); }
.hero-media { position:absolute; inset:0; background:url('../img/ceviche-mixto.webp') center 46%/cover no-repeat; transform:scale(1.025); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(1,28,45,.98) 0%,rgba(2,40,61,.92) 43%,rgba(2,39,59,.38) 75%,rgba(0,0,0,.28) 100%),radial-gradient(circle at 84% 20%,rgba(48,201,235,.32),transparent 27%); }
.bubble { position:absolute; border-radius:50%; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.05); z-index:1; animation:bubble 8s ease-in-out infinite; }
.bubble-one { width:120px; height:120px; right:8%; top:18%; }
.bubble-two { width:56px; height:56px; right:34%; bottom:16%; animation-delay:-3s; }
@keyframes bubble { 50% { transform:translateY(-18px) scale(1.05); opacity:.65; } }
.hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.06fr) minmax(340px,.64fr); align-items:center; gap:54px; padding:132px 0 82px; color:#fff; }
.hero-copy { max-width:780px; }
.hero-copy .kicker { color:#91ebff; }
.hero h1 { margin:0 0 24px; font-size:clamp(3.7rem,7.7vw,7.55rem); letter-spacing:-.075em; }
.hero h1 em { color:var(--yellow); font-style:normal; text-shadow:0 7px 0 rgba(239,83,63,.68); }
.hero-lead { max-width:700px; color:#e4f7fb; font-size:clamp(1.05rem,1.7vw,1.28rem); margin-bottom:30px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:13px; }
.hero-points { display:flex; flex-wrap:wrap; gap:18px; margin-top:28px; color:#d8f6fb; font-size:.88rem; font-weight:800; }
.hero-showcase { position:relative; align-self:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); border-radius:34px; padding:15px; box-shadow:var(--shadow-dark); backdrop-filter:blur(12px); transform:rotate(1.3deg); }
.hero-showcase>img { width:100%; height:410px; object-fit:cover; border-radius:24px; }
.fresh-badge { position:absolute; top:-18px; right:22px; z-index:2; padding:10px 16px; border-radius:999px; background:var(--coral); color:#fff; font-size:.7rem; font-weight:950; letter-spacing:.11em; box-shadow:0 12px 28px rgba(239,83,63,.34); }
.showcase-body { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 9px 5px; }
.showcase-body small { display:block; color:#96ecff; font-weight:800; }
.showcase-body strong { display:block; margin-top:2px; font-size:1.28rem; }
.showcase-icon { font-size:2rem; }
.scroll-cue { position:absolute; z-index:3; bottom:24px; left:50%; width:42px; height:42px; display:grid; place-items:center; transform:translateX(-50%); border:1px solid rgba(255,255,255,.32); border-radius:50%; color:#fff; animation:floatDown 1.7s ease-in-out infinite; }
@keyframes floatDown { 50% { transform:translate(-50%,7px); } }

.trust-strip { background:var(--navy); color:#fff; border-top:1px solid rgba(255,255,255,.08); }
.trust-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.trust-grid>div { min-height:132px; display:grid; grid-template-columns:auto 1fr; align-content:center; column-gap:15px; padding:27px 34px; border-right:1px solid rgba(255,255,255,.11); }
.trust-grid>div:last-child { border-right:0; }
.trust-badge { grid-row:span 2; align-self:center; display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:rgba(48,201,235,.12); border:2px solid rgba(48,201,235,.3); font-size:1.5rem; font-weight:950; color:var(--cyan); }
.trust-grid strong { font-size:1.05rem; }
.trust-grid small { color:#bcdde7; }

.section { padding:105px 0; }
.section-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.5fr); align-items:end; gap:40px; margin-bottom:46px; }
.section-heading h2 { margin-bottom:0; }
.section-heading>p { margin:0; color:var(--muted); font-size:1.02rem; }
.featured { background:linear-gradient(180deg,#f0fcff,#dff4f6); }
.food-mosaic { display:grid; grid-template-columns:1.18fr .82fr; grid-template-rows:repeat(2,300px); gap:18px; }
.food-card { position:relative; min-height:250px; border-radius:30px; overflow:hidden; box-shadow:var(--shadow); background:#062d42; }
.food-card-large { grid-row:span 2; }
.food-card img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.food-card:hover img { transform:scale(1.05); }
.food-card-shade { position:absolute; inset:0; background:linear-gradient(0deg,rgba(1,25,38,.92),transparent 66%); }
.food-card-copy { position:absolute; z-index:2; left:28px; right:28px; bottom:24px; color:#fff; }
.food-card-copy span { color:#8feaff; font-size:.72rem; font-weight:950; letter-spacing:.14em; text-transform:uppercase; }
.food-card-copy h3 { margin:7px 0 10px; font-size:clamp(1.5rem,2.7vw,2.5rem); }
.food-card-copy a { font-size:.9rem; font-weight:900; }
.food-card-copy a:hover { color:var(--yellow); }

.menu-preview { background:var(--coral); color:#fff; overflow:hidden; }
.menu-preview-grid { display:grid; grid-template-columns:.86fr 1.14fr; gap:76px; align-items:center; }
.menu-preview-copy .section-kicker { color:var(--yellow); }
.menu-preview-copy p:not(.section-kicker) { color:#fff3ed; font-size:1.05rem; }
.sample-note { margin:24px 0; padding:15px 17px; border:1px solid rgba(255,255,255,.2); border-radius:16px; background:rgba(0,0,0,.13); color:#fff8e4; font-size:.88rem; }
.menu-ticket { position:relative; background:var(--paper); color:var(--ink); border-radius:var(--radius-xl); padding:34px; box-shadow:18px 18px 0 rgba(130,30,24,.28),var(--shadow-dark); transform:rotate(-1deg); }
.menu-ticket::before,.menu-ticket::after { content:''; position:absolute; top:50%; width:32px; height:32px; border-radius:50%; background:var(--coral); transform:translateY(-50%); }
.menu-ticket::before { left:-16px; } .menu-ticket::after { right:-16px; }
.ticket-top { display:flex; align-items:center; gap:16px; padding-bottom:22px; border-bottom:2px dashed rgba(3,45,71,.17); }
.ticket-top img { width:82px; height:82px; object-fit:contain; border-radius:15px; }
.ticket-top small { display:block; color:var(--coral); font-weight:950; letter-spacing:.12em; }
.ticket-top strong { display:block; font-size:1.45rem; }
.ticket-line { display:flex; justify-content:space-between; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.ticket-line b,.ticket-line span { display:block; }
.ticket-line span { color:var(--muted); font-size:.85rem; margin-top:2px; }
.ticket-line>strong { color:var(--coral); white-space:nowrap; }
.ticket-button { display:flex; justify-content:space-between; align-items:center; margin-top:24px; padding:14px 17px; border-radius:16px; background:var(--navy); color:#fff; font-weight:900; }
.ticket-button span { color:var(--yellow); font-size:1.25rem; }

.gallery-section { background:#031f30; color:#fff; }
.gallery-section .section-kicker { color:var(--cyan); }
.gallery-section .section-heading>p { color:#b7d5df; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:250px; gap:15px; }
.gallery-item { position:relative; border:0; padding:0; border-radius:24px; overflow:hidden; background:#02131d; cursor:zoom-in; }
.gallery-item::after { content:'＋'; position:absolute; right:15px; top:15px; width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:rgba(3,45,71,.78); color:#fff; font-size:1.2rem; opacity:0; transform:scale(.8); transition:.25s ease; }
.gallery-item:hover::after { opacity:1; transform:scale(1); }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:.35s ease; }
.gallery-item:hover img { transform:scale(1.05); opacity:.84; }
.gallery-tall { grid-row:span 2; } .gallery-wide { grid-column:span 2; }

.contact-section { background:#dff4f6; }
.contact-card { display:grid; grid-template-columns:1fr .9fr; gap:50px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--radius-xl); padding:48px; box-shadow:var(--shadow); }
.contact-copy>p:not(.section-kicker):not(.delivery-note) { color:var(--muted); font-size:1.04rem; }
.contact-links { display:grid; gap:11px; margin-top:27px; }
.contact-links a { display:flex; align-items:center; gap:14px; padding:14px 16px; border:1px solid var(--line); border-radius:18px; background:#f4fcfe; transition:.2s ease; }
.contact-links a:hover { transform:translateX(5px); border-color:rgba(8,123,181,.38); }
.contact-links a>span { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; background:var(--navy); color:#fff; font-weight:900; }
.contact-links small,.contact-links strong { display:block; }
.contact-links small { color:var(--muted); font-size:.76rem; }
.delivery-note { margin:18px 0 0; color:var(--coral); font-size:.85rem; font-weight:800; }
.contact-visual { position:relative; min-height:460px; display:grid; place-items:center; border-radius:30px; overflow:hidden; background:linear-gradient(145deg,var(--navy),var(--blue)); color:#fff; padding:28px; text-align:center; }
.contact-visual::before { content:''; position:absolute; width:360px; height:360px; border-radius:50%; border:1px solid rgba(255,255,255,.18); box-shadow:0 0 0 55px rgba(255,255,255,.04),0 0 0 110px rgba(255,255,255,.025); }
.contact-visual img { position:relative; z-index:1; width:min(330px,80%); border-radius:24px; box-shadow:0 20px 50px rgba(0,0,0,.24); }
.contact-visual div { position:relative; z-index:1; margin-top:18px; }
.contact-visual span,.contact-visual strong,.contact-visual small { display:block; }
.contact-visual span { color:var(--cyan); font-weight:900; text-transform:uppercase; letter-spacing:.14em; font-size:.7rem; }
.contact-visual strong { font-size:2rem; }
.contact-visual small { color:#d7f5fb; }

.location-section { background:#fff9ec; }
.location-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:45px; align-items:center; }
.location-copy p:not(.section-kicker) { color:var(--muted); font-size:1.05rem; }
.location-chips { display:flex; flex-wrap:wrap; gap:9px; margin:24px 0 28px; }
.location-chips span { padding:10px 13px; border-radius:999px; background:#fff; border:1px solid var(--line); font-size:.85rem; font-weight:800; }
.map-card { overflow:hidden; border-radius:30px; box-shadow:var(--shadow); border:8px solid #fff; min-height:470px; }
.map-card iframe { display:block; width:100%; height:470px; }
.final-cta { padding:75px 0; background:linear-gradient(135deg,var(--navy),var(--blue)); color:#fff; }
.final-cta-inner { display:flex; justify-content:space-between; align-items:center; gap:30px; }
.final-cta p { margin-bottom:8px; color:#9defff; font-weight:850; }
.final-cta h2 { margin:0; max-width:760px; font-size:clamp(2.2rem,4.5vw,4.4rem); }
.footer { background:#021c2c; color:#fff; padding:34px 0; }
.footer-grid { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:30px; }
.footer nav { display:flex; gap:22px; font-weight:800; }
.footer nav a:hover { color:var(--cyan); }
.footer p { margin:0; color:#9ebbc6; font-size:.84rem; }
.footer-brand .brand-logo { width:52px; height:52px; }
.floating-whatsapp { position:fixed; right:20px; bottom:20px; z-index:160; width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:var(--green); color:#fff; box-shadow:0 12px 35px rgba(37,211,102,.4); font-size:1.7rem; font-weight:900; }
.floating-whatsapp:hover { transform:scale(1.06); }
.lightbox { position:fixed; inset:0; z-index:400; display:none; align-items:center; justify-content:center; padding:30px; background:rgba(0,16,25,.9); backdrop-filter:blur(10px); }
.lightbox.open { display:flex; }
.lightbox img { max-width:min(1000px,92vw); max-height:86vh; border-radius:22px; box-shadow:var(--shadow-dark); }
.lightbox-close,.modal-close { position:absolute; top:18px; right:18px; width:42px; height:42px; border:0; border-radius:50%; background:rgba(3,45,71,.88); color:#fff; font-size:1.5rem; cursor:pointer; z-index:2; }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease,transform .7s ease; }
.reveal.visible { opacity:1; transform:none; }

/* Menu page */
.menu-topbar { background:rgba(3,45,71,.94); }
.menu-cart-button { display:inline-flex; align-items:center; gap:8px; }
.menu-cart-button span { min-width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:var(--coral); color:#fff; font-size:.75rem; }
.menu-hero { position:relative; min-height:620px; display:flex; align-items:center; overflow:hidden; background:var(--navy); }
.menu-hero-media { position:absolute; inset:0; background:url('../img/ensaladas-para-llevar.webp') center 50%/cover no-repeat; }
.menu-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(1,28,45,.98),rgba(2,40,61,.9) 46%,rgba(2,40,61,.35)); }
.menu-hero-content { position:relative; z-index:2; color:#fff; padding-top:128px; padding-bottom:70px; }
.back-link { display:inline-block; margin-bottom:34px; color:#b3f2ff; font-weight:850; }
.menu-hero h1 { margin:0 0 22px; max-width:840px; font-size:clamp(3.4rem,7vw,7rem); letter-spacing:-.075em; }
.menu-hero h1 em { color:var(--yellow); font-style:normal; text-shadow:0 6px 0 rgba(239,83,63,.62); }
.menu-hero-content>p:not(.kicker) { max-width:720px; color:#d8f4f9; font-size:1.1rem; }
.hero-cart-trigger span { min-width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:var(--coral); color:#fff; }
.prices-banner { background:#fff0bf; border-bottom:1px solid rgba(3,45,71,.1); }
.prices-banner .container { min-height:68px; display:flex; align-items:center; gap:13px; }
.prices-banner p { margin:0; color:#6f5811; font-size:.9rem; }
.quick-nav-wrap { position:sticky; top:82px; z-index:80; background:rgba(255,255,255,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); overflow-x:auto; }
.quick-nav { display:flex; gap:8px; padding:12px 0; min-width:max-content; }
.quick-nav a { padding:10px 15px; border-radius:999px; background:#edf8fb; border:1px solid var(--line); color:var(--navy); font-size:.84rem; font-weight:850; }
.quick-nav a:hover { background:var(--navy); color:#fff; }
.menu-content { padding:80px 0 130px; }
.menu-toolbar { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:55px; }
.menu-toolbar h2 { margin:0; }
.menu-search { width:min(410px,100%); display:flex; align-items:center; gap:10px; padding:0 16px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 10px 30px rgba(3,45,71,.06); }
.menu-search span { font-size:1.7rem; color:var(--blue); }
.menu-search input { width:100%; min-height:54px; border:0; outline:0; background:transparent; color:var(--ink); }
.menu-category { margin-bottom:78px; scroll-margin-top:165px; }
.category-banner { position:relative; min-height:250px; display:flex; align-items:end; overflow:hidden; border-radius:30px; box-shadow:var(--shadow); margin-bottom:24px; }
.category-banner img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.category-banner-shade { position:absolute; inset:0; background:linear-gradient(0deg,rgba(1,28,45,.96),rgba(2,40,61,.18)); }
.category-head { position:relative; z-index:1; display:flex; align-items:end; gap:22px; padding:30px 34px; color:#fff; }
.category-head>span { color:var(--cyan); font-size:3.4rem; font-weight:950; letter-spacing:-.08em; }
.category-head h2 { margin:0 0 7px; font-size:clamp(2rem,4.4vw,4.3rem); }
.category-head p { margin:0; color:#d7f4fa; }
.menu-items { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.menu-item-card { display:flex; flex-direction:column; min-height:250px; padding:23px; border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:0 14px 40px rgba(3,45,71,.07); transition:.25s ease; }
.menu-item-card:hover { transform:translateY(-4px); border-color:rgba(8,123,181,.32); box-shadow:0 20px 50px rgba(3,45,71,.13); }
.menu-item-card.featured-item { border:2px solid rgba(239,83,63,.38); background:linear-gradient(145deg,#fff,#fff6f1); }
.item-top { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }
.item-top h3 { margin:8px 0 0; font-size:1.35rem; line-height:1.08; }
.item-tag { display:inline-flex; width:max-content; padding:5px 9px; border-radius:999px; background:#e7f8fc; color:var(--blue); font-size:.65rem; font-weight:950; letter-spacing:.08em; }
.item-tag.star { background:#fff0bf; color:#7a5b00; }
.item-tag.spicy { background:#ffe3df; color:var(--coral-dark); }
.price-pill { flex:0 0 auto; padding:8px 11px; border-radius:12px; background:var(--navy); color:#fff; font-size:1.02rem; }
.menu-item-card>p { color:var(--muted); font-size:.91rem; margin:18px 0 22px; }
.item-buttons { margin-top:auto; display:grid; grid-template-columns:1fr auto; gap:8px; }
.item-add,.item-view { min-height:45px; border-radius:13px; font-weight:900; cursor:pointer; transition:.2s ease; }
.item-add { display:flex; justify-content:space-between; align-items:center; padding:10px 13px; border:0; background:var(--yellow); color:var(--navy); }
.item-add:hover { background:#ffe57d; transform:translateY(-1px); }
.item-add.added { background:var(--green); color:#fff; }
.item-view { padding:10px 13px; border:1px solid var(--line); background:#f3fbfd; color:var(--navy); }
.item-view:hover { border-color:var(--blue); }
.menu-item-card.filtered-out { display:none; }
.no-results { padding:70px 25px; text-align:center; border:2px dashed var(--line); border-radius:28px; background:#fff; }
.no-results span { font-size:3rem; } .no-results h3 { margin:14px 0 8px; font-size:1.8rem; } .no-results p { margin:0; color:var(--muted); }

.cart-overlay { position:fixed; inset:0; z-index:200; background:rgba(0,17,26,.62); opacity:0; visibility:hidden; transition:.25s; }
.cart-overlay.open { opacity:1; visibility:visible; }
.cart-panel { position:fixed; top:0; right:0; z-index:210; width:min(470px,100%); height:100%; display:flex; flex-direction:column; background:#f8fdff; box-shadow:-25px 0 70px rgba(0,0,0,.24); transform:translateX(104%); transition:transform .32s ease; }
.cart-panel.open { transform:none; }
.cart-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:25px 26px; background:var(--navy); color:#fff; }
.cart-header small { color:#8feaff; font-weight:900; letter-spacing:.1em; }
.cart-header h2 { margin:5px 0 0; font-size:2rem; }
.cart-header button { width:42px; height:42px; border:1px solid rgba(255,255,255,.24); border-radius:50%; background:rgba(255,255,255,.08); color:#fff; font-size:1.5rem; cursor:pointer; }
.cart-body { flex:1; overflow:auto; padding:18px; }
.cart-empty { height:100%; min-height:340px; display:grid; place-items:center; text-align:center; color:var(--muted); }
.cart-empty span { font-size:3.6rem; }
.cart-empty h3 { margin:12px 0 7px; color:var(--ink); font-size:1.6rem; }
.cart-item { margin-bottom:12px; padding:17px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.cart-item-head { display:flex; justify-content:space-between; gap:16px; }
.cart-item-head h3 { margin:0 0 4px; font-size:1.05rem; }
.cart-item-head small { color:var(--muted); }
.cart-item-head button { width:32px; height:32px; border:0; border-radius:50%; background:#ffe3df; color:var(--coral-dark); font-size:1.2rem; cursor:pointer; }
.cart-item-note { margin-top:12px; padding:9px 11px; border-radius:10px; background:#f1f9fb; color:var(--muted); font-size:.83rem; }
.cart-item-price { display:flex; justify-content:space-between; margin-top:14px; padding-top:12px; border-top:1px solid var(--line); font-size:.9rem; }
.cart-item-price strong { color:var(--coral); }
.cart-footer { padding:20px 24px 24px; border-top:1px solid var(--line); background:#fff; }
.cart-total { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.cart-total strong { font-size:2rem; color:var(--coral); }
.cart-footer>p { margin:8px 0 16px; color:var(--muted); font-size:.78rem; }
.send-order,.clear-cart { width:100%; min-height:50px; border-radius:14px; font-weight:900; cursor:pointer; }
.send-order { border:0; background:var(--green); color:#fff; box-shadow:0 12px 30px rgba(37,211,102,.24); }
.send-order:disabled { opacity:.45; cursor:not-allowed; }
.clear-cart { margin-top:8px; border:1px solid var(--line); background:transparent; color:var(--coral-dark); }

.delivery-options { padding:16px 24px; border-top:1px solid var(--line); }
.dos-label { display:block; margin-bottom:12px; font-size:.82rem; font-weight:800; color:var(--muted); }
.do-option { display:flex; align-items:center; gap:12px; padding:14px 15px; margin-bottom:8px; border:2px solid var(--line); border-radius:14px; cursor:pointer; transition:border-color .2s; }
.do-option:has(input:checked) { border-color:var(--coral); background:rgba(239,83,63,.06); }
.do-option input { accent-color:var(--coral); width:18px; height:18px; }
.do-icon { display:flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:12px; background:#eff5f8; color:var(--navy); flex-shrink:0; }
.do-option b { display:block; font-size:.92rem; color:var(--ink); }
.do-option small { color:var(--muted); font-size:.78rem; }
.cart-fee-row { display:flex; justify-content:space-between; align-items:center; padding-bottom:10px; margin-bottom:10px; border-bottom:1px dashed var(--line); color:var(--navy); font-size:.85rem; font-weight:700; }
.cart-summary { margin-bottom:12px; }

.modal { position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(0,17,26,.72); opacity:0; visibility:hidden; transition:.25s; backdrop-filter:blur(6px); }
.modal.open { opacity:1; visibility:visible; }
.modal-card { position:relative; width:min(500px,100%); padding:31px; border-radius:28px; background:#fff; box-shadow:var(--shadow-dark); transform:scale(.94) translateY(10px); transition:.25s; }
.modal.open .modal-card { transform:none; }
.modal-kicker { margin:0 0 8px; color:var(--blue); font-size:.72rem; font-weight:950; letter-spacing:.14em; text-transform:uppercase; }
.modal-card h2 { margin:0 50px 8px 0; font-size:2rem; }
.modal-price { color:var(--coral); font-weight:900; }
.quantity-row { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:25px 0 20px; font-weight:850; }
.quantity-control { display:flex; align-items:center; border:1px solid var(--line); border-radius:13px; overflow:hidden; }
.quantity-control button { width:43px; height:43px; border:0; background:#edf8fb; color:var(--navy); font-size:1.2rem; cursor:pointer; }
.quantity-control input { width:48px; height:43px; border:0; text-align:center; outline:0; font-weight:900; -moz-appearance:textfield; }
.quantity-control input::-webkit-inner-spin-button { -webkit-appearance:none; }
.note-field { display:grid; gap:8px; color:var(--ink); font-weight:850; }
.note-field textarea { width:100%; resize:vertical; padding:12px; border:1px solid var(--line); border-radius:13px; outline:0; color:var(--ink); }
.note-field textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(8,123,181,.12); }
.modal-subtotal { display:flex; justify-content:space-between; align-items:center; margin:20px 0 16px; padding-top:18px; border-top:1px solid var(--line); }
.modal-subtotal strong { color:var(--coral); font-size:1.45rem; }
.modal-confirm { width:100%; min-height:50px; border:0; border-radius:14px; background:var(--yellow); color:var(--navy); font-weight:950; cursor:pointer; }
.product-view { position:relative; width:min(560px,100%); overflow:hidden; border-radius:28px; background:#fff; box-shadow:var(--shadow-dark); }
.pv-image { height:min(460px,58vh); background:#dceff4; }
.pv-image img { width:100%; height:100%; object-fit:cover; }
.pv-body { padding:24px 28px 28px; }
.pv-body h2 { margin:12px 0 10px; font-size:2rem; }
.pv-desc { color:var(--muted); margin:0 0 12px; }
.pv-price { color:var(--coral); font-size:1.25rem; }
.toast { position:fixed; left:50%; bottom:28px; z-index:500; transform:translate(-50%,30px); padding:12px 18px; border-radius:999px; background:var(--navy); color:#fff; box-shadow:var(--shadow-dark); opacity:0; visibility:hidden; transition:.25s; font-weight:850; }
.toast.show { opacity:1; visibility:visible; transform:translate(-50%,0); }
.tutorial-overlay { position:fixed; inset:0; z-index:500; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(0,17,26,.64); backdrop-filter:blur(6px); }
.tutorial-overlay.open { display:flex; }
.tutorial-card { width:min(480px,100%); padding:32px 28px; border-radius:30px; background:#fff; box-shadow:var(--shadow-dark); text-align:center; animation:modalFade .3s ease; }
@keyframes modalFade { from { opacity:0; transform:scale(.92) translateY(10px); } to { opacity:1; transform:none; } }
.tutorial-icon { display:block; margin-bottom:8px; font-size:3rem; }
.step-indicator { margin-bottom:12px; color:var(--blue); font-size:.82rem; font-weight:900; letter-spacing:.08em; }
.tutorial-card h3 { margin:0 0 12px; font-size:1.7rem; }
.tutorial-card p { color:var(--muted); line-height:1.7; }
.tutorial-actions { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; }
.tutorial-actions button { padding:10px 22px; border-radius:999px; font-weight:900; cursor:pointer; }
.btn-skip { border:1px solid var(--line); background:transparent; color:var(--muted); }
.btn-next { border:0; background:var(--yellow); color:var(--navy); }
.floating-buttons-menu { position:fixed; right:20px; bottom:20px; z-index:160; display:flex; flex-direction:column; align-items:center; gap:11px; }
.floating-buttons-menu .floating-whatsapp { position:static; }
.floating-help { width:56px; height:56px; border:0; border-radius:50%; background:var(--yellow); color:var(--navy); box-shadow:0 10px 30px rgba(255,212,71,.32); font-size:1.5rem; font-weight:950; cursor:pointer; }

.cart-float-bar { position:fixed; left:50%; bottom:20px; z-index:160; transform:translateX(-50%); display:flex; align-items:center; gap:10px; min-height:60px; padding:9px 18px; border:0; border-radius:999px; background:var(--navy); color:#fff; box-shadow:0 18px 50px rgba(3,45,71,.35); font-weight:800; cursor:pointer; transition:transform .2s; }
.cart-float-bar:hover { transform:translateX(-50%) translateY(-3px); }
.cfb-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--coral); flex-shrink:0; }
.cfb-text { font-size:.88rem; }
.cfb-badge { min-width:26px; height:26px; display:grid; place-items:center; border-radius:50%; background:var(--yellow); color:var(--navy); font-size:.75rem; font-weight:900; padding:0 6px; }
.cfb-total { color:var(--yellow); font-size:1.1rem; }

@media (max-width:980px) {
  .nav-toggle { display:grid; }
  .nav-menu { position:absolute; top:calc(100% + 1px); left:4%; right:4%; display:none; align-items:stretch; flex-direction:column; gap:3px; padding:15px; border-radius:0 0 20px 20px; background:rgba(3,45,71,.98); box-shadow:var(--shadow-dark); }
  .nav-menu.open { display:flex; }
  .nav-menu a,.nav-menu button { padding:12px 13px; }
  .mini-cta { text-align:center; }
  .hero-grid { grid-template-columns:1fr; padding-top:132px; }
  .hero-copy { max-width:800px; }
  .hero-showcase { width:min(520px,92%); justify-self:center; }
  .trust-grid { grid-template-columns:1fr; }
  .trust-grid>div { border-right:0; border-bottom:1px solid rgba(255,255,255,.1); }
  .trust-grid>div:last-child { border-bottom:0; }
  .section-heading { grid-template-columns:1fr; align-items:start; }
  .menu-preview-grid,.contact-card,.location-grid { grid-template-columns:1fr; }
  .menu-preview-grid { gap:54px; }
  .contact-visual { min-height:420px; }
  .footer-grid { grid-template-columns:1fr; text-align:center; justify-items:center; }
  .footer nav { flex-wrap:wrap; justify-content:center; }
  .menu-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .menu-toolbar { align-items:stretch; flex-direction:column; }
  .menu-search { width:100%; }
}
@media (max-width:720px) {
  .container { width:min(94%,680px); }
  .nav { min-height:74px; }
  .brand-logo { width:52px; height:52px; }
  .brand-copy strong { font-size:.93rem; }
  .hero { min-height:auto; }
  .hero-grid { padding:118px 0 75px; gap:40px; }
  .hero h1 { font-size:clamp(3.1rem,15vw,5rem); }
  .hero-showcase>img { height:340px; }
  .scroll-cue { display:none; }
  .section { padding:78px 0; }
  h2 { font-size:clamp(2.2rem,12vw,3.5rem); }
  .food-mosaic { display:grid; grid-template-columns:1fr; grid-template-rows:auto; }
  .food-card,.food-card-large { grid-row:auto; min-height:360px; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:220px; }
  .gallery-tall { grid-row:span 2; }
  .gallery-wide { grid-column:span 2; }
  .contact-card { padding:26px; }
  .contact-visual { min-height:360px; }
  .map-card,.map-card iframe { min-height:390px; height:390px; }
  .final-cta-inner { align-items:flex-start; flex-direction:column; }
  .floating-whatsapp { bottom:18px; right:16px; }
  .menu-hero { min-height:560px; }
  .menu-hero-content { padding-top:112px; }
  .menu-hero h1 { font-size:clamp(3rem,15vw,5rem); }
  .quick-nav-wrap { top:74px; }
  .menu-content { padding-top:58px; padding-bottom:110px; }
  .menu-items { grid-template-columns:1fr; }
  .category-banner { min-height:230px; }
  .category-head { padding:24px; gap:14px; }
  .category-head>span { font-size:2.8rem; }
  .item-buttons { grid-template-columns:1fr; }
  .floating-buttons-menu { bottom:78px; right:14px; }
  .cart-float-bar { width:calc(100% - 28px); max-width:480px; }
  .toast { bottom:84px; max-width:90%; text-align:center; }
}
@media (max-width:480px) {
  .brand-copy small { display:none; }
  .hero-actions .btn { width:100%; }
  .hero-points { gap:10px; flex-direction:column; }
  .hero-showcase { width:100%; }
  .hero-showcase>img { height:300px; }
  .trust-grid>div { padding:22px 18px; }
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:280px; }
  .gallery-tall,.gallery-wide { grid-row:auto; grid-column:auto; }
  .menu-ticket { padding:24px 20px; }
  .ticket-line { gap:12px; }
  .category-head { align-items:flex-start; flex-direction:column; }
  .modal-card { padding:27px 20px; }
  .cart-panel { width:100%; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } .reveal { opacity:1; transform:none; } }
