:root{--teal:#0f6f78;--teal2:#1a7f86;--lime:#8dc63f;--mint:#eaf6f3;--sand:#f7efdf;--cream:#fffaf1;--ink:#1c2b2e;--muted:#5d6b6e;--acc:#d4561c;--line:#e9dfc9;--r:16px;--shadow:0 10px 30px rgba(15,111,120,.12);--serif:"Noto Serif Thai","Sarabun",Georgia,serif;--sans:"Sarabun","Noto Sans Thai",system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.7;font-size:17px}
img{max-width:100%;height:auto;display:block}
a{color:var(--teal2)}
h1,h2,h3{font-family:var(--serif);line-height:1.3;color:var(--ink)}
h2{font-size:clamp(1.6rem,3.2vw,2.2rem);margin:.2em 0 .6em}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.sec{padding-top:64px;padding-bottom:64px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
.sr{position:absolute;left:-9999px}
.eyebrow{margin:0;color:var(--teal2);font-weight:700;letter-spacing:.04em;font-size:.95rem}
.eyebrow:before{content:"";display:inline-block;width:28px;height:3px;background:var(--lime);border-radius:2px;margin-right:10px;vertical-align:middle}

/* header */
.top{background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:3px solid var(--lime);position:sticky;top:0;z-index:20}
.bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.brand{display:flex;align-items:center;gap:10px;color:var(--teal);font-weight:700;font-size:1.2rem;text-decoration:none}
.brand img{height:52px;width:auto}
nav{display:flex;align-items:center;flex-wrap:wrap;gap:4px 22px}
nav a{color:var(--ink);text-decoration:none;font-weight:500}
nav a:hover{color:var(--teal2)}
nav a.nav-cta{background:#06c755;color:#fff;padding:8px 18px;border-radius:999px;font-weight:700}
nav a.nav-cta:hover{filter:brightness(1.08);color:#fff}

/* buttons */
.btn{display:inline-block;background:var(--acc);color:#fff;padding:13px 28px;border-radius:999px;text-decoration:none;font-weight:700;box-shadow:0 6px 16px rgba(212,86,28,.28);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(212,86,28,.34)}
.btn.ghost{background:transparent;color:var(--teal);border:2px solid var(--teal);box-shadow:none}
.btn.ghost:hover{background:var(--teal);color:#fff}
.btn.ghost-w{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.7);box-shadow:none}
.btn.ghost-w:hover{background:#fff;color:var(--teal)}
.btn.alt{background:#ee4d2d;box-shadow:0 6px 16px rgba(238,77,45,.25)}
.hero-btns{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}

/* hero */
.hero{background:radial-gradient(1200px 500px at 90% -10%,#d9f0ea 0,transparent 60%),linear-gradient(180deg,var(--mint),var(--cream));padding:48px 0 56px}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:44px;align-items:center}
.hero h1{font-size:clamp(2rem,4.6vw,3.3rem);margin:.25em 0 .35em;color:var(--teal)}
.lead{font-size:1.1rem;color:var(--muted);max-width:34em}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:20px 0 0}
.chips li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:.92rem;font-weight:500}
.chips.dark li{background:var(--mint);border-color:#cfe8e2}
.hero-media{min-width:0}
.hero-fallback{display:grid;place-items:center;font-size:8rem;aspect-ratio:3/2;background:var(--sand);border-radius:var(--r)}

/* slider */
.slider{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);background:#f3f3f3;border:6px solid #fff}
.track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.track::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;scroll-snap-align:center;margin:0;position:relative}
.slide img{width:100%;aspect-ratio:3/2;object-fit:cover}
.slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 16px 14px;color:#fff;font-weight:700;background:linear-gradient(transparent,rgba(0,0,0,.6));text-align:center}
.sl-btn{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.9);font-size:1.7rem;line-height:1;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.sl-btn.prev{left:10px}.sl-btn.next{right:10px}

/* products / cards */
.chipnav{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 8px}
.chipnav a{padding:7px 18px;border-radius:999px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:500}
.chipnav a:hover{background:var(--teal);color:#fff;border-color:var(--teal)}
.cathead{margin:36px 0 16px;font-size:1.3rem;display:flex;align-items:center;gap:12px}
.cathead:after{content:"";flex:1;height:1px;background:var(--line)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.cimg{position:relative;display:block;overflow:hidden}
.card img{width:100%;object-fit:cover;object-position:center 30%;transition:transform .4s}
.card:hover img{transform:scale(1.05)}
.card img[height="600"]{aspect-ratio:1/1}.card img[height="400"]{aspect-ratio:3/2}
.badge{position:absolute;top:12px;left:12px;background:rgba(28,43,46,.85);color:#fff;font-size:.8rem;padding:3px 12px;border-radius:999px}
.cb{padding:14px 18px 20px;flex:1;display:flex;flex-direction:column}
.cb h3{margin:4px 0;font-size:1.08rem}.cb h3 a{text-decoration:none;color:var(--ink)}
.cb p{margin:4px 0;font-size:.94rem;color:var(--muted)}
.cat{font-size:.78rem;color:var(--teal2);font-weight:700;letter-spacing:.03em}
.price{color:var(--acc)!important;font-weight:700;font-size:1.15rem!important;margin-top:auto!important;padding-top:8px}
.price small{color:#8a8a8a;font-weight:400;font-size:.8rem}.price.big{font-size:1.9rem!important}

/* sections */
.band{background:var(--mint)}.band.sand{background:var(--sand)}
.steps{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px}
.steps li{background:#fff;border-radius:var(--r);padding:22px 18px;border-top:4px solid var(--lime);box-shadow:0 4px 14px rgba(15,111,120,.07)}
.steps b{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--teal);color:#fff;font-family:var(--serif);margin-bottom:8px}
.steps h3,.order h3{font-size:1.05rem;margin:.2em 0}.steps p,.order p{margin:0;color:var(--muted);font-size:.95rem}
.order{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:24px}
.order>div{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px}
.order span{font-size:2rem;color:var(--teal2);line-height:1}
.about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:center}
.locs{display:grid;gap:16px}
.loc{display:flex;gap:14px;background:#fff;border-radius:var(--r);padding:18px;border:1px solid var(--line)}
.loc span{font-size:1.6rem}.loc p{margin:2px 0 6px;color:var(--muted);font-size:.95rem}

/* CTA + footer */
.cta-band{background:linear-gradient(135deg,var(--teal),#0b5057);color:#fff;text-align:center;padding:54px 0;margin-top:40px}
.cta-band h2{color:#fff;margin:0 0 6px}.cta-band p{margin:6px 0;opacity:.92}
.cta-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:20px!important}
footer{background:#0d3e44;color:#dbe8e8;padding:44px 0 20px}
footer a{color:#bfe9c8}footer strong{color:#fff;display:block;margin-bottom:8px}
.fbrand{font-family:var(--serif);font-size:1.3rem}
.fgrid{display:grid;grid-template-columns:1.1fr 1.2fr 1fr;gap:32px}
footer p{margin:6px 0;font-size:.95rem}
.fb{list-style:none;padding:0;margin:0}.fb li{margin:5px 0;font-size:.95rem}
.small{font-size:.85rem;opacity:.7}.copy{text-align:center;margin-top:28px!important;border-top:1px solid rgba(255,255,255,.12);padding-top:16px}
.fab{position:fixed;right:16px;bottom:16px;z-index:30;background:#06c755;color:#fff;text-decoration:none;font-weight:700;padding:12px 20px;border-radius:999px;box-shadow:0 8px 22px rgba(0,0,0,.25)}
.fab:hover{filter:brightness(1.08)}

/* product page */
.crumb{font-size:.9rem;margin:18px 0;color:var(--muted)}.crumb a{color:var(--muted)}
.detail{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-bottom:40px}
.detail h1{font-size:clamp(1.6rem,3.4vw,2.3rem);margin:0 0 6px}
.gal>img{border-radius:22px;border:6px solid #fff;box-shadow:var(--shadow);width:100%}
.thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.thumbs img{width:80px;height:80px;object-fit:cover;border-radius:10px}

/* articles */
.article{max-width:780px}.article h1{font-size:clamp(1.7rem,3.6vw,2.5rem)}
.article img{border-radius:var(--r);margin:16px 0}.article figure{margin:16px 0}
.article>img{width:100%;max-height:520px;object-fit:cover;object-position:center 30%;box-shadow:var(--shadow)}
.article h2{margin-top:36px}.article p,.article li{font-size:1.05rem}

/* reviews */
.rv{margin:0;background:#fff;border:1px solid var(--line);border-left:4px solid var(--lime);border-radius:12px;padding:16px 20px}.rv p{margin:0 0 8px}.rv footer{background:none;color:#777;padding:0;margin:0;font-size:.9rem}
.rvimgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:16px}.rvimgs img{border-radius:12px;border:1px solid var(--line);width:100%}

/* reveal on scroll (only when JS is on) */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

@media(max-width:900px){
  .hero-grid,.about-grid,.detail{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  .sec{padding-top:44px;padding-bottom:44px}
  nav{gap:4px 14px;font-size:.95rem}
}
@media(max-width:520px){body{font-size:16px}.brand img{height:44px}.fab{padding:10px 16px}}
.noimg{aspect-ratio:3/2;display:grid;place-items:center;font-size:3.2rem;text-decoration:none;background:linear-gradient(135deg,var(--mint),var(--sand))}

/* gallery */
.center{text-align:center;margin-top:28px}
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}
.mosaic a{display:block;overflow:hidden;border-radius:14px;aspect-ratio:1/1}
.mosaic a:first-child{grid-column:span 2;grid-row:span 2}
.mosaic img,.gal-grid img,.aimg img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.mosaic a:hover img,.gal-grid a:hover img,.album:hover img{transform:scale(1.06)}
.albums{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;margin-top:24px}
.album{display:block;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.album:hover{box-shadow:var(--shadow)}
.aimg{display:block;aspect-ratio:3/2;overflow:hidden}
.atxt{display:flex;justify-content:space-between;gap:10px;padding:12px 16px;align-items:baseline}
.atxt small{color:var(--muted)}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:20px}
.gal-grid figure{margin:0}
.gal-grid a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:12px}
.gal-grid figcaption{font-size:.85rem;color:var(--muted);margin-top:4px}
.lb{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.9);display:grid;place-items:center;padding:20px}
.lb[hidden]{display:none}
.lb img{max-width:92vw;max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:8px}
.lb button{position:absolute;background:rgba(255,255,255,.15);color:#fff;border:0;width:48px;height:48px;border-radius:50%;font-size:2rem;line-height:1;cursor:pointer}
.lb-x{top:16px;right:16px}.lb-p{left:12px;top:50%}.lb-n{right:12px;top:50%}
.lb-c{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#fff;margin:0;padding:0 70px}
@media(max-width:700px){.mosaic{grid-template-columns:repeat(2,1fr)}.mosaic a:first-child{grid-column:span 2;grid-row:span 1;aspect-ratio:2/1}}
