/* ========================================================================
   คลื่นทะเล — เว็บไซต์ร้าน (One-page) · ลูกค้า
   ใช้ design tokens จาก pos.css (--c-deep / --c-sea / --c-wave ...)
   ======================================================================== */

:root{
  --site-max:1120px;
  --cream:#fffaf2;
  --ink:#10303a;
}

body{ background:var(--cream); color:var(--ink); }
.site *{ box-sizing:border-box; }
img{max-width:100%}
.wrap{ max-width:var(--site-max); margin:0 auto; padding:0 20px; }
.eyebrow{
  display:inline-block; font-weight:700; font-size:13px; letter-spacing:2px;
  text-transform:uppercase; color:var(--c-sea-2);
  background:var(--c-foam); padding:5px 12px; border-radius:999px;
}
.sec-title{ font-size:30px; font-weight:800; margin:10px 0 6px; color:var(--c-deep); }
.sec-sub{ color:var(--muted); max-width:560px; margin:0 auto; }
.center{ text-align:center; }

/* ── Buttons ──────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; gap:8px; justify-content:center;
  font-weight:700; font-size:16px; cursor:pointer; border:none;
  padding:13px 24px; border-radius:999px; transition:.18s transform,.18s box-shadow,.18s background;
  text-decoration:none;
}
.btn:active{ transform:translateY(1px); }
.btn-coral{ background:var(--c-coral); color:#fff; box-shadow:0 8px 20px rgba(255,107,93,.34); }
.btn-coral:hover{ background:var(--c-coral-d); }
.btn-sea{ background:var(--c-sea); color:#fff; box-shadow:0 8px 20px rgba(14,124,139,.3); }
.btn-sea:hover{ background:var(--c-deep); }
.btn-ghost{ background:rgba(255,255,255,.14); color:#fff; border:1.5px solid rgba(255,255,255,.55); }
.btn-ghost:hover{ background:rgba(255,255,255,.24); }
.btn-lg{ padding:15px 30px; font-size:17px; }

/* ── Top nav ──────────────────────────────────────────── */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; gap:18px;
  padding:14px 22px; transition:.25s;
}
.site-nav .brand{ display:flex; align-items:center; gap:9px; font-weight:800; font-size:20px; color:#fff; }
.site-nav .brand .logo{ font-size:26px; }
.site-nav .brand small{ display:block; font-size:11px; font-weight:600; opacity:.8; }
.site-nav .links{ margin-left:auto; display:flex; gap:6px; align-items:center; }
.site-nav .links a{
  color:#fff; font-weight:600; font-size:15px; padding:8px 14px; border-radius:999px; opacity:.92;
}
.site-nav .links a:hover{ background:rgba(255,255,255,.16); }
.site-nav.scrolled{
  background:rgba(255,255,255,.96); box-shadow:var(--shadow); backdrop-filter:blur(8px);
  padding:10px 22px;
}
.site-nav.scrolled .brand{ color:var(--c-deep); }
.site-nav.scrolled .brand small{ color:var(--muted); }
.site-nav.scrolled .links a{ color:var(--ink); }
.site-nav.scrolled .links a:hover{ background:var(--c-foam); }
.site-nav.scrolled .links .btn-ghost{ background:var(--c-coral); color:#fff; border-color:transparent; }
.nav-burger{ display:none; }

/* ── Hero ─────────────────────────────────────────────── */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:center;
  color:#fff; overflow:hidden;
  background:
    radial-gradient(900px 500px at 80% -10%, rgba(31,182,201,.55), transparent 60%),
    radial-gradient(700px 500px at 5% 20%, rgba(19,163,179,.45), transparent 55%),
    linear-gradient(160deg, #052e3a 0%, #074554 45%, #0e7c8b 100%);
}
.hero::after{ /* subtle wave texture */
  content:""; position:absolute; inset:0;
  background-image:radial-gradient(rgba(255,255,255,.05) 1px, transparent 1.4px);
  background-size:22px 22px; opacity:.5;
}
.hero-inner{ position:relative; z-index:2; padding:120px 0 150px; }
.hero .eyebrow{ background:rgba(255,255,255,.16); color:#dffafe; }
.hero h1{ font-size:clamp(38px,7vw,68px); font-weight:800; line-height:1.05; margin:16px 0 14px; letter-spacing:-.5px; }
.hero h1 .accent{ color:var(--c-sun); }
.hero p.lead{ font-size:clamp(16px,2.4vw,21px); max-width:540px; opacity:.94; }
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; margin-top:30px; }
.hero-badges{ display:flex; gap:26px; flex-wrap:wrap; margin-top:40px; }
.hero-badges .hb{ display:flex; flex-direction:column; }
.hero-badges .hb b{ font-size:26px; font-weight:800; color:var(--c-sun); }
.hero-badges .hb span{ font-size:13px; opacity:.85; }
.hero-waves{ position:absolute; left:0; right:0; bottom:-1px; z-index:1; line-height:0; }
.hero-waves svg{ width:100%; height:90px; display:block; }

/* ── Sections ─────────────────────────────────────────── */
.section{ padding:74px 0; }
.section.alt{ background:var(--surface); }

/* features */
.features{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:38px; }
.feature{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px 20px; text-align:center; box-shadow:var(--shadow);
}
.feature .ic{ font-size:34px; }
.feature h4{ margin:10px 0 5px; color:var(--c-deep); font-size:17px; }
.feature p{ color:var(--muted); font-size:14px; }

/* signature cards */
.sig-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:40px; }
.sig-card{
  position:relative; background:linear-gradient(180deg,#fff,#fbfdfd);
  border:1px solid var(--line); border-radius:18px; padding:26px 22px;
  box-shadow:var(--shadow); transition:.2s transform,.2s box-shadow; overflow:hidden;
}
.sig-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.sig-card .emoji{
  font-size:42px; width:72px; height:72px; display:flex; align-items:center; justify-content:center;
  background:var(--c-foam); border-radius:18px; margin-bottom:14px;
}
.sig-card h4{ font-size:19px; color:var(--c-deep); margin-bottom:5px; }
.sig-card p{ color:var(--muted); font-size:14px; min-height:38px; }
.sig-card .price{ font-size:22px; font-weight:800; color:var(--c-sea); margin-top:10px; }
.badge-hot{
  position:absolute; top:16px; right:16px; background:var(--c-coral); color:#fff;
  font-size:12px; font-weight:700; padding:4px 10px; border-radius:999px;
}

/* full menu */
.menu-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:30px 48px; margin-top:42px; align-items:start; }
.menu-cat{ break-inside:avoid; margin-bottom:14px; }
.menu-cat-head{
  display:flex; align-items:center; gap:10px; padding-bottom:10px; margin-bottom:12px;
  border-bottom:2px solid var(--c-foam);
}
.menu-cat-head .ic{ font-size:24px; }
.menu-cat-head h3{ font-size:20px; color:var(--c-deep); }
.menu-item{ display:flex; align-items:baseline; gap:8px; padding:9px 0; }
.menu-item .nm{ font-weight:600; color:var(--ink); white-space:nowrap; }
.menu-item .dots{ flex:1; border-bottom:1.5px dotted #c7d6d9; transform:translateY(-4px); }
.menu-item .pr{ font-weight:800; color:var(--c-sea); white-space:nowrap; }
.menu-item .desc{ display:block; font-size:13px; color:var(--muted); font-weight:400; margin-top:1px; }
.menu-item .nm-wrap{ max-width:78%; }

/* about */
.about-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; }
.about-card{
  background:linear-gradient(160deg,var(--c-deep),var(--c-sea)); color:#fff;
  border-radius:22px; padding:36px; box-shadow:var(--shadow-lg);
}
.about-card .big{ font-size:54px; }
.about p{ color:#274a52; font-size:16px; line-height:1.7; margin-top:14px; }

/* info / contact */
.info-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:38px; }
.info-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px; box-shadow:var(--shadow); text-align:center;
}
.info-card .ic{ font-size:30px; }
.info-card h4{ margin:8px 0 4px; color:var(--c-deep); }
.info-card p{ color:var(--muted); }

/* CTA band */
.cta-band{
  position:relative; color:#fff; text-align:center; padding:64px 20px; overflow:hidden;
  background:radial-gradient(700px 300px at 50% -40%, rgba(31,182,201,.6), transparent),
             linear-gradient(120deg,var(--c-deep),var(--c-sea));
}
.cta-band h2{ font-size:clamp(26px,4vw,40px); font-weight:800; }
.cta-band p{ opacity:.9; margin:10px 0 24px; }

/* footer */
.site-footer{ background:#04222b; color:#aac7cd; padding:30px 20px; text-align:center; font-size:14px; }
.site-footer .logo{ font-size:22px; }
.site-footer a{ color:#dffafe; }

/* ── Responsive ───────────────────────────────────────── */
@media (max-width:860px){
  .features{ grid-template-columns:repeat(2,1fr); }
  .sig-grid{ grid-template-columns:1fr 1fr; }
  .menu-wrap{ grid-template-columns:1fr; }
  .about-grid{ grid-template-columns:1fr; }
  .info-grid{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .site-nav .links{ display:none; }
  .sig-grid{ grid-template-columns:1fr; }
  .features{ grid-template-columns:1fr 1fr; }
  .hero-inner{ padding:110px 0 130px; }
  .menu-item .nm-wrap{ max-width:70%; }
}

/* ── Reviews ── */
.rating-hero{ display:flex; align-items:center; gap:12px; justify-content:center; margin:16px 0 6px; flex-wrap:wrap; }
.rating-hero .rating-num{ font-size:42px; font-weight:800; color:var(--c-deep); }
.rating-hero .rating-stars{ color:#ffb020; font-size:24px; letter-spacing:2px; }
.rating-hero .rating-count{ color:var(--muted); font-size:14px; }
.review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:28px; }
.review-card{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:22px; box-shadow:var(--shadow); text-align:left; }
.review-card .rv-stars{ color:#ffb020; font-size:16px; letter-spacing:1px; margin-bottom:8px; }
.review-card .rv-stars .empty{ color:#dfe7e9; }
.review-card .rv-text{ color:var(--ink); font-size:15px; line-height:1.6; min-height:70px; }
.review-card .rv-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:12px; padding-top:10px; border-top:1px solid var(--c-foam); }
.review-card .rv-name{ font-weight:700; color:var(--c-deep); }
.review-card .rv-date{ font-size:12px; color:var(--muted); }
/* รูปอาหาร คอร์ปเป็นสัดส่วน 4:3 */
.sig-photo{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:14px; margin-bottom:14px; }
.dish-img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; display:block; }
@media (max-width:860px){ .review-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .review-grid{ grid-template-columns:1fr; } }

/* ── Live monitor (เรียลไทม์) ── */
.live-dot{ display:inline-block; width:8px; height:8px; border-radius:50%; background:#ff3b30; margin-right:6px; animation:livePulse 1.4s infinite; }
@keyframes livePulse{ 0%{ box-shadow:0 0 0 0 rgba(255,59,48,.5);} 70%{ box-shadow:0 0 0 8px rgba(255,59,48,0);} 100%{ box-shadow:0 0 0 0 rgba(255,59,48,0);} }
.live-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:28px; text-align:left; }
.live-h{ font-size:16px; color:var(--c-deep); margin-bottom:12px; font-weight:700; }
.live-chips{ display:flex; flex-direction:column; gap:10px; }
.live-chip{ display:flex; align-items:center; gap:12px; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:10px 14px; box-shadow:var(--shadow); }
.live-chip .lc-emoji{ font-size:24px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:var(--c-foam); border-radius:10px; flex-shrink:0; overflow:hidden; }
.live-chip .lc-name{ font-weight:700; color:var(--ink); line-height:1.3; }
.live-chip .lc-meta{ font-size:12px; color:var(--muted); margin-top:1px; }
.live-chip .lc-qty{ font-weight:800; color:var(--c-sea); font-size:18px; background:var(--c-foam); border-radius:999px; padding:2px 12px; min-width:44px; text-align:center; }
.live-chip.hot .lc-qty{ color:#fff; background:var(--c-coral); }
.live-chip.prep .lc-qty{ color:#fff; background:var(--c-lime); }
/* อนิเมชัน "กำลังเตรียม" — มีดหั่นบนเขียง + ผัก */
.anim-prep{ position:relative; overflow:visible; }
.anim-prep .board{ position:absolute; bottom:8px; left:8px; width:28px; height:5px; background:#c9a36b; border-radius:3px; }
.anim-prep .veg{ position:absolute; bottom:11px; left:10px; font-size:12px; }
.anim-prep .knife{ position:absolute; top:2px; left:14px; font-size:18px; transform-origin:70% 90%; animation:chop .8s ease-in-out infinite; }
@keyframes chop{ 0%,100%{ transform:translateY(-3px) rotate(-20deg);} 50%{ transform:translateY(3px) rotate(2deg);} }
.live-empty{ color:var(--muted); padding:18px; text-align:center; border:1px dashed var(--line); border-radius:12px; }
.live-updated{ font-size:12px; color:var(--muted); margin-top:16px; }
@media (max-width:860px){ .live-grid{ grid-template-columns:1fr; } }
