/* ===== Design tokens ===== */
:root{
  --bg:#fbfbfa; --text:#1c1c1c; --nav:#444; --muted:#666; --faint:#999;
  --border:rgba(0,0,0,.06); --border2:rgba(0,0,0,.15); --card:#fff; --hover:#f2f5f2;
  --chip-bg:#eef2ee; --chip-text:#175132; --green:#175132; --green-hover:#1e6a42;
  --accent:oklch(0.55 0.15 148);
  --px:clamp(20px,4.5vw,3.5rem);
}
[data-theme="dark"]{
  --bg:#141714; --text:#e9ece9; --nav:#b9beb9; --muted:#a3a9a3; --faint:#7e847e;
  --border:rgba(255,255,255,.08); --border2:rgba(255,255,255,.16); --card:#1d211d; --hover:#1b201b;
  --chip-bg:rgba(88,181,127,.14); --chip-text:#6fc492; --green:#6fc492; --green-hover:#175132;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--text);
  font-family:'IBM Plex Sans Thai',system-ui,sans-serif;
  transition:background .2s ease,color .2s ease;
}
input,textarea{font-family:'IBM Plex Sans Thai',system-ui,sans-serif}
img{max-width:100%}
a{color:inherit}

.page{min-height:100vh}

/* ===== Navbar ===== */
.navbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:20px var(--px);border-bottom:1px solid var(--border);
}
.navbar__logo{height:72px;display:block;cursor:pointer}
.navbar__menu{display:flex;gap:clamp(16px,2.2vw,32px);font-size:17px;color:var(--nav);white-space:nowrap}
.navbar__menu a{cursor:pointer;text-decoration:none;color:inherit}
.navbar__menu a:hover{color:#175132}
.navbar__menu a.active{color:var(--text);font-weight:600;border-bottom:2px solid var(--accent);padding-bottom:3px}
.navbar__right{display:flex;align-items:center;gap:12px;white-space:nowrap}
.navbar__burger{display:none;font-size:22px;cursor:pointer;color:var(--nav);padding:0 4px;user-select:none;background:none;border:none;font-family:inherit}
.navbar__theme{display:inline-block;font-size:14px;padding:7px 14px;border:1px solid var(--border2);border-radius:999px;cursor:pointer;color:var(--nav);background:none;font-family:inherit}
.navbar__lang{font-size:14px;color:var(--faint)}
.navbar__login{display:inline-block;font-size:14px;color:var(--faint);text-decoration:none}
.navbar__login:hover{color:var(--green)}
.navbar__quote{display:inline-block;font-size:15px;padding:9px 20px;border:1px solid var(--text);border-radius:999px;cursor:pointer;background:none;color:var(--text);text-decoration:none}
.navbar__quote:hover{background:var(--text);color:var(--bg)}

/* ===== Mobile drawer ===== */
.drawer-overlay{position:fixed;inset:0;z-index:100;display:none}
.drawer-overlay.open{display:block}
.drawer-overlay__bg{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.drawer{
  position:absolute;top:0;right:0;width:280px;max-width:82vw;height:100%;
  background:var(--card);color:var(--text);display:flex;flex-direction:column;
  padding:22px 20px;box-sizing:border-box;overflow:auto;
}
.drawer__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.drawer__head span:first-child{font-weight:600;font-size:16px}
.drawer__close{font-size:20px;cursor:pointer;padding:2px 8px;background:none;border:none;color:inherit}
.drawer__link{padding:14px 8px;font-size:16px;cursor:pointer;border-bottom:1px solid var(--border);text-decoration:none;color:inherit;display:block}
.drawer__quote{margin-top:18px;background:#175132;color:#fff;text-align:center;padding:13px;border-radius:999px;font-size:15px;font-weight:600;cursor:pointer;border:none;width:100%;text-decoration:none;display:block;box-sizing:border-box;font-family:inherit}
.drawer__login{margin-top:12px;text-align:center;font-size:14px;color:var(--faint);text-decoration:none;display:block}

@media (max-width:920px){
  .navbar__menu{display:none}
  .navbar__burger{display:inline-block}
}
@media (max-width:640px){
  .navbar__lang,.navbar__quote{display:none}
}

/* ===== Footer ===== */
.footer{
  display:flex;justify-content:space-between;align-items:center;
  padding:28px var(--px);border-top:1px solid var(--border);
  font-size:14.5px;color:var(--faint);
}

/* ===== Buttons / chips ===== */
.btn{display:inline-block;border-radius:999px;font-size:16px;cursor:pointer;text-decoration:none;text-align:center;border:none}
.btn-primary{background:#175132;color:#fff;padding:14px 30px}
.btn-primary:hover{background:#1e6a42}
.btn-outline{padding:14px 30px;border:1px solid var(--border2);background:none;color:var(--text)}
.btn-outline:hover{border-color:var(--text)}
.btn-white{background:#fff;color:#175132;padding:13px 30px;font-size:16px;font-weight:600}
.btn-white:hover{background:#e6efe9}

.chip{font-size:14.5px;white-space:nowrap;padding:9px 18px;border-radius:999px;cursor:pointer;border:1px solid var(--border2);background:none;color:var(--muted);font-weight:500}
.chip.active{background:#175132;color:#fff;border-color:#175132}
.chip-row{display:flex;gap:10px;flex-wrap:wrap;padding:0 var(--px) 28px}

/* ===== Eyebrow / headings ===== */
.eyebrow{font-size:14px;letter-spacing:.22em;color:var(--accent);font-weight:600}
.h1{font-size:clamp(28px,4.6vw,43.5px);font-weight:600}
.section-title{font-size:clamp(22px,3vw,27.5px);font-weight:600}
.lede{font-size:17.5px;line-height:1.85;color:var(--muted);max-width:64ch}

/* ===== Grids ===== */
.grid-hair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:1px;background:var(--border)}
.grid-cell{background:var(--bg);padding:clamp(24px,4vw,40px) clamp(20px,4vw,48px);display:flex;flex-direction:column;gap:14px}

/* ===== CTA band ===== */
.cta-band{display:flex;justify-content:space-between;align-items:center;padding:36px var(--px);background:#175132;color:#fff;gap:20px;flex-wrap:wrap}
.cta-band__title{font-size:20.5px;font-weight:600}
.cta-band__sub{font-size:15px;color:rgba(255,255,255,.7)}

/* ===== Cards ===== */
.card{border:1px solid var(--border2);border-radius:14px;overflow:hidden;background:var(--card);display:flex;flex-direction:column}
.card:hover{box-shadow:0 6px 18px rgba(0,0,0,.08)}
.card__media{height:170px;background-size:contain;background-position:center;background-color:var(--card)}
.card__body{padding:16px 18px;display:flex;flex-direction:column;gap:5px}
.card__name{font-size:16.5px;font-weight:600}
.card__desc{font-size:14.5px;line-height:1.65;color:var(--muted)}

.portfolio-card{border-radius:14px;overflow:hidden;border:1px solid var(--border2);background:var(--card);display:flex;flex-direction:column}
.portfolio-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.1)}
.portfolio-card__media{aspect-ratio:4/3;overflow:hidden;background-size:contain;background-position:center;background-color:var(--card)}
.portfolio-card__body{padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.portfolio-card__title{font-size:18px;font-weight:600}
.portfolio-card__sub{font-size:14.5px;color:var(--faint)}
.portfolio-card__arrow{color:var(--accent);font-size:19.5px}

.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:900px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.portfolio-grid{grid-template-columns:1fr}}

/* ===== Forms ===== */
.field{border:1px solid rgba(0,0,0,.14);border-radius:8px;padding:12px 15px;font-size:15.5px;outline:none;width:100%;background:var(--card);color:var(--text)}
[data-theme="dark"] .field{border-color:rgba(255,255,255,.16)}
.field:focus{border-color:#175132}
.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:14px}

/* ===== Hero ===== */
.hero{padding:96px var(--px) 80px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:var(--px);align-items:center}
.hero__copy{display:flex;flex-direction:column;gap:24px}
.hero__title{font-size:clamp(30px,5vw,45px);line-height:1.28;font-weight:600;text-wrap:pretty}
.hero__desc{font-size:18px;line-height:1.85;color:var(--muted);max-width:48ch}
.hero__actions{display:flex;gap:14px;margin-top:8px;flex-wrap:wrap}
.hero__media{aspect-ratio:4/3;border-radius:16px;position:relative;overflow:hidden;background:#eef2ee}
.hero__slide{position:absolute;inset:0;transition:opacity 1.2s ease;background-size:contain;background-position:center;background-color:var(--card);opacity:0}
.hero__dots{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;gap:8px}
.hero__dot{width:8px;height:8px;border-radius:999px;background:rgba(255,255,255,.45);cursor:pointer;border:none;padding:0}

/* ===== Business links row (home) ===== */
.links-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1px;background:var(--border);border-top:1px solid var(--border)}
.links-row__item{background:var(--bg);padding:34px 44px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;text-decoration:none;color:inherit}
.links-row__item:hover{background:var(--hover)}
.links-row__title{font-size:19.5px;font-weight:600}
.links-row__sub{font-size:15px;color:var(--faint)}
.links-row__arrow{color:var(--accent);font-size:20.5px}

/* ===== Page header block ===== */
.page-header{padding:72px var(--px) 48px;display:flex;flex-direction:column;gap:16px}
.page-header.bordered{border-bottom:1px solid var(--border)}

/* ===== Utility ===== */
.container{padding:0 var(--px)}
.hidden{display:none !important}
