@font-face{font-family:"Source Serif 4";font-weight:600;src:url(assets/fonts/source-serif-4-latin-600-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Source Serif 4";font-weight:700;src:url(assets/fonts/source-serif-4-latin-700-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Source Serif 4";font-weight:800;src:url(assets/fonts/source-serif-4-latin-800-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Inter;font-weight:400;src:url(assets/fonts/inter-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Inter;font-weight:600;src:url(assets/fonts/inter-latin-600-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Inter;font-weight:700;src:url(assets/fonts/inter-latin-700-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Yellowtail;font-weight:400;src:url(assets/fonts/yellowtail-latin-400-normal.woff2) format("woff2");font-display:swap}
:root{--blue:#0b5aa8;--blue2:#0b6bbd;--ink:#0a1633;--muted:#5d6877;--line:#e9edf2;--serif:"Source Serif 4",Georgia,serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--script:Yellowtail,"Brush Script MT",cursive}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:#dfe7ee;font-family:var(--sans);color:var(--ink)}
button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}
.app-shell{width:100%;max-width:430px;min-height:100dvh;margin:0 auto;background:#fff;position:relative;overflow-x:hidden;box-shadow:0 0 50px rgba(7,30,48,.18)}
svg.i{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* top bar */
.topbar{position:fixed;z-index:40;top:0;left:50%;transform:translateX(-50%);width:min(100%,430px);height:64px;padding:max(6px,env(safe-area-inset-top)) 14px 0;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}
.topbar.clear{background:transparent;backdrop-filter:none}
.topbar.script .brand-mini{font-family:var(--script);font-size:27px;color:var(--blue);line-height:1}
.brand-mini{display:flex;justify-content:center;align-items:center;height:52px}.brand-mini img{height:50px;width:auto;max-width:160px;object-fit:contain}.topbar.clear .brand-mini{visibility:hidden}
.topbar.cartbar{grid-template-columns:48px 1fr 48px}.topbar .ttl{font-family:var(--serif);font-weight:700;font-size:21px;text-align:center}
.icon-btn{width:44px;height:44px;display:grid;place-items:center}
.cart-btn{position:relative;width:44px;height:44px;display:grid;place-items:center}
#cartCount{position:absolute;right:-2px;top:0;min-width:20px;height:20px;padding:0 4px;border-radius:10px;background:var(--blue);color:#fff;font:700 11px/20px var(--sans);text-align:center}
/* bottom nav */
.bottom-nav{position:fixed;z-index:50;left:50%;transform:translateX(-50%);bottom:max(8px,env(safe-area-inset-bottom));width:min(calc(100% - 16px),414px);height:68px;border-radius:26px;background:#fff;box-shadow:0 8px 30px rgba(8,30,55,.16);display:grid;grid-template-columns:repeat(4,1fr)}
.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#59626e;font-size:11px;font-weight:600}
.bottom-nav button.active{color:var(--blue);font-weight:700}.bottom-nav svg.i{width:26px;height:26px}.bottom-nav button.active svg.i.fillable{fill:var(--blue)}
body.nonav .bottom-nav{display:none}
main{min-height:100dvh;padding:64px 0 96px}main.home{padding:0}
/* HOME */
.hero{position:relative;height:100dvh;min-height:640px;overflow:hidden;background:#cfe3f3}
.hero-sky{position:absolute;inset:0;background:url(assets/acajutla-harbor.jpg) 35% 62%/auto 118% no-repeat}
.hero-sky:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.92) 0,rgba(255,250,240,.7) 26%,rgba(255,255,255,.12) 50%,rgba(10,40,70,.1) 100%)}
.hero-brand{position:relative;z-index:2;text-align:center;padding-top:calc(58px + env(safe-area-inset-top))}
.hero-logo{display:block;width:76%;max-width:330px;margin:0 auto;filter:drop-shadow(0 2px 6px rgba(255,255,255,.6))}
.verse{margin-top:6px;font-family:var(--serif);font-weight:700;font-size:19px;color:#0b66ae}
.meal-line{margin-top:7px;font-size:11px;letter-spacing:.24em;font-weight:600;color:#142030}
.hero-slogan{position:absolute;z-index:2;left:20px;top:46%;font-family:var(--script);font-size:33px;line-height:1.02;color:#0b2a5b;transform:rotate(-5deg);text-shadow:0 1px 6px rgba(255,255,255,.8)}
.hero-wave{position:absolute;z-index:2;left:62px;top:calc(46% + 82px);width:140px;height:26px}
.hero-table{position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(180deg,rgba(70,48,32,0),#4a3424 38%,#35261a)}
.hero-food{position:absolute;z-index:1;left:0;right:0;bottom:calc(8px + 68px + 70px);width:100%;aspect-ratio:1038/564;object-fit:cover;transform:scale(1.05);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 24%,#000 80%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 24%,#000 80%,transparent 100%)}
.order-now{position:absolute;z-index:3;left:22px;right:22px;bottom:calc(8px + 68px + 14px);height:56px;border-radius:28px;border:2.5px solid #fff;background:var(--blue);color:#fff;font-weight:700;font-size:17px;letter-spacing:.04em;box-shadow:0 10px 24px rgba(0,40,80,.38)}
/* MENU */
.page-head{padding:6px 20px 12px}.page-head h1{font-family:var(--serif);font-weight:800;font-size:38px;line-height:1.05;margin:0 0 6px;letter-spacing:-.01em}
.page-head p{margin:0;color:#5b6573;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:400}
.chips{display:flex;gap:10px;overflow-x:auto;padding:6px 20px 14px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chip{flex:none;padding:12px 18px;border-radius:18px;background:#f6f7f9;box-shadow:0 2px 8px rgba(10,30,60,.1);font-family:var(--serif);font-weight:700;font-size:15px}
.chip.active{background:var(--blue);color:#fff;box-shadow:0 6px 14px rgba(11,90,168,.3)}
.products{padding:0 16px 10px;display:grid;gap:12px}
.product-card{display:grid;grid-template-columns:136px 1fr 44px;gap:14px;align-items:center;padding:8px 12px 8px 8px;border-radius:16px;background:#fff;box-shadow:0 3px 14px rgba(10,30,60,.09);border:1px solid #f0f2f5;cursor:pointer;text-align:left}
.product-card img{width:136px;height:104px;object-fit:cover;border-radius:12px;background:#eef1f4}
.product-card h3{font-family:var(--serif);font-weight:700;font-size:19px;line-height:1.12;margin:0}
.product-card p{margin:3px 0 0;font-size:12.5px;line-height:1.3;color:#2f3b4d;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.price{font-family:var(--serif);font-weight:700;color:var(--blue2);font-size:20px;margin-top:8px}
.go{width:42px;height:42px;border-radius:50%;background:#ececee;display:grid;place-items:center;align-self:end;margin-bottom:4px}.go svg{width:20px;height:20px;stroke-width:2.2}
/* DETAIL */
.detail-hero{height:232px;overflow:hidden;background:#d9e0e3}.detail-hero img{width:100%;height:100%;object-fit:cover}
.detail-content{padding:16px 18px 150px}
.detail-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.detail-title{font-family:var(--serif);font-weight:800;font-size:28px;margin:0;line-height:1.05}.detail-price{font-family:var(--serif);font-weight:700;font-size:24px;color:var(--blue2)}
.desc-row{display:flex;justify-content:space-between;gap:10px;margin:8px 0 14px}.detail-desc{margin:0;color:#4a5565;font-size:14px;line-height:1.45;max-width:300px}
.heart{width:34px;height:34px;display:grid;place-items:center;flex:none;color:#2b3445}.heart.on{color:#d0343f}.heart.on svg{fill:#d0343f}
.detail-section h3{font-family:var(--serif);font-weight:700;font-size:19px;color:#0b2a5b;margin:8px 0 0}.detail-section .sub{font-size:13px;color:#5b6573;margin:2px 0 10px}
.option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.option-card{position:relative;border:1.5px solid #dfe5ec;background:#fff;border-radius:14px;padding:12px 4px 9px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:3px}
.option-card.selected{border-color:#2d8fd4}.option-card .pic{width:62px;height:50px;display:grid;place-items:center}.option-card .pic img,.option-card .pic svg{max-width:100%;max-height:100%}
.option-card b{font-family:var(--serif);font-weight:600;font-size:13px;color:#111}.option-card small{font-size:12.5px;font-weight:600;color:var(--blue2)}
.radio{position:absolute;right:-4px;top:-5px;width:24px;height:24px;border-radius:50%;border:1.5px solid #cfd6df;background:#fff;display:grid;place-items:center}.selected .radio{background:var(--blue2);border-color:#fff;box-shadow:0 0 0 1.5px var(--blue2)}.radio svg{width:14px;height:14px;stroke:#fff;stroke-width:3;display:none}.selected .radio svg{display:block}
.extra-list{margin-top:4px}.extra-row{display:grid;grid-template-columns:32px 1fr auto;align-items:center;padding:11px 2px;border-top:1px solid var(--line);font-size:14.5px;font-weight:600;cursor:pointer}
.extra-row input{appearance:none;width:22px;height:22px;border:1.8px solid #b7c0cc;border-radius:5px;margin:0;display:grid;place-items:center}.extra-row input:checked{background:var(--blue2);border-color:var(--blue2)}.extra-row input:checked:after{content:"✓";color:#fff;font-size:15px;font-weight:700}
.extra-price{color:#1d5f95;font-weight:400}
.radio-list{display:grid;gap:8px;margin-bottom:12px}.radio-row{display:grid;grid-template-columns:1fr auto;padding:12px 14px;border:1.5px solid #dfe5ec;border-radius:12px;font-weight:600}.radio-row.selected{border-color:#2d8fd4;background:#f3f9fe}
.detail-sticky{position:fixed;z-index:45;left:50%;transform:translateX(-50%);bottom:0;width:min(100%,430px);padding:10px 14px calc(12px + env(safe-area-inset-bottom));background:#fff;display:grid;grid-template-columns:118px 1fr;gap:12px;box-shadow:0 -8px 20px rgba(10,30,60,.06)}
.qty{height:52px;border:1.5px solid #dfe5ec;border-radius:26px;display:grid;grid-template-columns:40px 1fr 40px;align-items:center;padding:0 5px;background:#fff}.qty button{height:38px;border-radius:50%;background:#f1f3f6;font-size:20px;font-weight:600;line-height:1}.qty span{text-align:center;font-weight:700;font-size:17px}
.primary{height:52px;border-radius:26px;background:var(--blue2);color:#fff;font-weight:700;font-size:17px;padding:0 16px;box-shadow:0 6px 16px rgba(11,107,189,.28)}.primary.full{width:100%}
/* CART */
.cart-list{padding:0 18px}.cart-item{display:grid;grid-template-columns:82px 1fr auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);position:relative}
.cart-item img{width:82px;height:82px;object-fit:cover;border-radius:12px}.cart-item h4{font-family:var(--serif);font-weight:700;font-size:17px;line-height:1.15;margin:2px 28px 3px 0}
.cart-item .unit{color:#37567f;font-size:14px}.mod-summary{font-size:11px;color:#6c7886;margin-top:2px}
.cart-qty{display:inline-grid;grid-template-columns:30px 30px 30px;align-items:center;margin-top:6px;border:1.5px solid #dfe5ec;border-radius:20px;padding:2px;text-align:center;font-weight:700}.cart-qty button{height:28px;border-radius:50%;background:#f1f3f6;font-size:17px}
.cart-item strong{align-self:end;font-family:var(--serif);font-weight:800;font-size:19px;padding-bottom:10px}
.rm{position:absolute;right:0;top:14px;width:28px;height:28px;border-radius:50%;background:#efeff1;display:grid;place-items:center}.rm svg{width:14px;height:14px;stroke-width:2.4}
.note-card{margin:16px 18px 0;border-radius:14px;background:#f4f5f7;padding:14px;font-size:13.5px;display:flex;align-items:center;gap:12px;width:calc(100% - 36px);text-align:left}.note-card span{flex:1}
.note-input{margin:8px 18px 0;width:calc(100% - 36px);border:1.5px solid #dfe5ec;border-radius:12px;padding:12px;font-size:14px;outline:none}
.summary{margin:16px 18px 12px}.sum-row{display:flex;justify-content:space-between;padding:6px 0;font-size:16px;color:#2c3a50}.sum-row span:last-child{color:#0b2a5b}
.sum-row.total{border-top:1px solid #e1e5ea;margin-top:8px;padding-top:12px;font-family:var(--serif);font-weight:800;font-size:25px;color:var(--ink)}.sum-row.total span:last-child{color:var(--blue2);font-size:29px}
.checkout-pad{padding:0 18px 12px}
/* misc pages */
.order-type{margin:12px 18px;background:#eef5fb;padding:5px;border-radius:16px;display:grid;grid-template-columns:1fr 1fr;gap:5px}.order-type button{padding:12px;border-radius:12px;color:#546573;font-weight:700}.order-type button.active{background:#fff;color:var(--blue);box-shadow:0 3px 10px rgba(0,0,0,.08)}
.section{padding:6px 18px 24px}.section h2{font-family:var(--serif);font-weight:700}
.table-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.table-btn{padding:15px 5px;border:1.5px solid #dce7ed;border-radius:13px;background:#fff;font-weight:700;color:#405665}.table-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.field{display:grid;gap:6px;margin:14px 0}.field label{font-size:13px;font-weight:700}.field input,.field textarea{width:100%;border:1.5px solid #dbe4e9;border-radius:12px;padding:13px;outline:none}
.notice{padding:13px 14px;border-radius:13px;background:#eef6fd;color:#2f5877;font-size:13px;line-height:1.45}
.acct-card{margin:12px 0;border:1px solid #e3e8ee;border-radius:18px;padding:18px;background:#fff;box-shadow:0 3px 14px rgba(10,30,60,.06)}.acct-card h3{font-family:var(--serif);margin:0 0 8px}.acct-card p{margin:4px 0;color:#4a5565;font-size:14px}.acct-card a{color:var(--blue2);font-weight:700;text-decoration:none}
.orders-admin{display:grid;gap:12px}.admin-order{border:1px solid #e0e5e8;border-radius:16px;padding:14px}.admin-order-head{display:flex;justify-content:space-between;gap:10px}.admin-order h3{margin:0}
.status{border-radius:99px;padding:6px 10px;background:#fff3d5;color:#876000;font-size:11px;font-weight:700;height:fit-content}.status.ready{background:#e2f8eb;color:#167047}
.admin-items{font-size:13px;line-height:1.5;color:#52616a;margin:9px 0}.admin-actions{display:flex;gap:7px}.admin-actions button{border-radius:9px;padding:9px 11px;font-size:12px;font-weight:700;background:#edf5f9}.admin-actions .danger{background:#fff0f0;color:#a44141}
.success-card{text-align:center;padding:80px 22px}.success-badge{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:#e4f6ed;color:#187148;font-size:36px;margin:0 auto}.order-number{font-size:45px;color:var(--blue);font-weight:800;margin:8px}
.order-meta{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-bottom:12px}.pill{background:#f0f5f8;border-radius:99px;padding:8px 12px;font-size:13px;font-weight:700}
.empty{text-align:center;padding:60px 20px;color:#77828a}.empty .primary{margin-top:14px;padding:0 28px}
.toast{position:fixed;z-index:100;bottom:100px;left:50%;transform:translate(-50%,16px);background:#051f34;color:#fff;padding:11px 16px;border-radius:99px;font-size:13px;font-weight:600;opacity:0;transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}
/* drawer */
.drawer-bg{position:fixed;inset:0;z-index:80;background:rgba(5,25,45,.45);display:none}.drawer-bg.open{display:block}
.drawer{position:absolute;left:50%;transform:translateX(-50%);top:0;width:min(100%,430px);background:#fff;border-radius:0 0 24px 24px;padding:70px 20px 18px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.drawer a,.drawer button{display:block;width:100%;text-align:left;padding:15px 4px;font-family:var(--serif);font-weight:700;font-size:20px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.drawer small{display:block;margin-top:14px;color:#5b6573;font-size:12.5px}
@media(max-height:720px){.hero-slogan{top:44%;font-size:28px}.hero-wave{top:calc(44% + 70px)}.hero-logo{width:66%}}
