@font-face{
  font-family:'Kanit';
  src:url('kanit.woff2') format('woff2');
  font-weight:normal;font-style:normal;font-display:swap;
}
:root{
  --green:#3F6E4F;
  --green-deep:#2E5340;
  --brown:#B36E35;
  --tan:#D5A269;
  --cream:#FDFBE6;
  --ink:#232B26;
  --faint:rgba(63,110,79,.16);
  --muted:#6B7A70;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:90px;}
body{
  font-family:'Kanit','Segoe UI',Tahoma,sans-serif;
  background:var(--cream);
  color:var(--ink);
  font-size:17.5px;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--brown);}

/* language switching */
[data-lang="th"] .lang-en{display:none;}
[data-lang="en"] .lang-th{display:none;}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:10;
  background:var(--cream);
  border-bottom:1px solid var(--faint);
  padding:14px 28px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.site-header img{height:30px;width:auto;display:block;}
.lang-switch{display:flex;align-items:center;gap:2px;font-size:15px;letter-spacing:.06em;}
.lang-switch button{
  appearance:none;background:none;border:none;cursor:pointer;
  font:inherit;color:var(--muted);
  padding:4px 10px;line-height:1.3;
  border-bottom:2px solid transparent;
}
.lang-switch button.active{color:var(--green-deep);border-bottom-color:var(--brown);}
.lang-switch .sep{color:var(--tan);}

/* ---------- title block ---------- */
.hero{
  max-width:1080px;margin:0 auto;
  padding:72px 28px 48px;
  border-bottom:1px solid var(--faint);
}
.hero .overline{
  font-size:13px;letter-spacing:.32em;color:var(--brown);
  text-transform:uppercase;margin-bottom:18px;
}
.hero h1{
  font-weight:normal;color:var(--green-deep);
  font-size:clamp(34px,5.4vw,56px);
  line-height:1.15;letter-spacing:.01em;
  max-width:16em;
}
.hero .meta{margin-top:22px;color:var(--muted);font-size:15.5px;}
.hero .meta b{font-weight:normal;color:var(--ink);}

/* ---------- layout ---------- */
.layout{
  max-width:1080px;margin:0 auto;
  padding:0 28px 80px;
  display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;
}
nav.toc{
  padding-top:52px;
  align-self:start;
  position:sticky;top:64px;
  max-height:calc(100vh - 80px);overflow-y:auto;
  font-size:15px;line-height:1.5;
}
nav.toc .toc-label{
  font-size:12px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--muted);margin-bottom:16px;
}
nav.toc ol{list-style:none;}
nav.toc li{margin-bottom:10px;display:flex;gap:10px;align-items:baseline;}
nav.toc .n{color:var(--tan);font-size:13px;min-width:18px;font-variant-numeric:tabular-nums;}
nav.toc a{color:var(--ink);text-decoration:none;}
nav.toc a:hover{color:var(--green);}

.content{padding-top:52px;max-width:70ch;}
.content .lead{font-size:19px;line-height:1.85;color:var(--ink);}
.content .lead + .lead{margin-top:14px;}

section{margin-top:64px;}
.sec-head{
  display:flex;align-items:baseline;gap:18px;
  border-top:1px solid var(--green);
  padding-top:22px;margin-bottom:20px;
}
.sec-head .no{
  color:var(--tan);font-size:clamp(22px,3vw,27px);line-height:1.3;
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.sec-head h2{
  font-weight:normal;color:var(--green-deep);
  font-size:clamp(22px,3vw,27px);line-height:1.3;
}
h3{
  font-weight:normal;color:var(--brown);
  font-size:19px;margin:30px 0 8px;
}
h4{
  font-weight:normal;color:var(--green);
  font-size:17.5px;margin:20px 0 2px;
}
p{margin-bottom:12px;}
p.follows{margin-top:-2px;}
ul{list-style:none;margin:6px 0 14px;}
ul li{padding-left:22px;position:relative;margin-bottom:7px;}
ul li::before{content:"–";position:absolute;left:2px;color:var(--brown);}
.dfn{margin-bottom:14px;}
.dfn dt{color:var(--green);}
.dfn dd{margin-left:0;}
.small-note{color:var(--muted);font-size:15.5px;}

/* contact */
.contact-block{margin-top:8px;}
.contact-block h4{margin-top:26px;}
.contact-row{display:flex;gap:14px;margin-bottom:4px;}
.contact-row .k{color:var(--muted);min-width:64px;flex:none;}
[data-lang="en"] .contact-row .k{min-width:84px;}

/* footer */
.site-footer{
  border-top:1px solid var(--faint);
  padding:26px 28px 34px;
  max-width:1080px;margin:0 auto;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  color:var(--muted);font-size:14.5px;
}
.site-footer .marks{display:flex;gap:6px;align-items:center;}
.site-footer .sw{width:22px;height:6px;border-radius:3px;display:inline-block;}

@media(max-width:860px){
  .layout{grid-template-columns:1fr;gap:0;}
  nav.toc{position:static;max-height:none;padding-top:40px;}
  .content{padding-top:40px;}
  .hero{padding:52px 28px 40px;}
}

.site-footer .sw.g{background:#3F6E4F;}
.site-footer .sw.b{background:#B36E35;}
.site-footer .sw.t{background:#D5A269;}
.mt18{margin-top:18px;}

/* ---------- campaign / news pages (additive; policy pages unaffected) ---------- */
@font-face{font-family:'Kanit';font-weight:600;font-display:swap;src:url('/assets/fonts/kanit-thai-600.woff2') format('woff2');unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC;}
@font-face{font-family:'Kanit';font-weight:600;font-display:swap;src:url('/assets/fonts/kanit-latin-600.woff2') format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
.content strong{font-weight:600;color:var(--green-deep);}
.hero .sub{margin-top:10px;color:var(--brown);font-size:clamp(18px,2.4vw,22px);}
ol.clauses{list-style:none;margin:6px 0 14px;}
ol.clauses li{display:grid;grid-template-columns:44px minmax(0,1fr);margin-bottom:14px;}
ol.clauses .cn{color:var(--tan);font-variant-numeric:tabular-nums;}
.hero h1.full{max-width:none;}
.nw { white-space: nowrap; }

/* Campaign image above the terms on news pages: desktop 1920x1280, phones 750x1156 via <picture>. */
.campaign-visual{margin:0;}
.campaign-visual img{display:block;width:100%;height:auto;border-radius:16px;}
/* Long URLs in the terms wrap instead of widening the page on phones. */
.content a{overflow-wrap:anywhere;}
/* A heading that groups the numbered sections under it (campaign terms): tighter gaps, no second rule line. */
.sec-group{margin-top:36px;}
.sec-group > section:first-of-type{margin-top:0;}
.sec-group > section:first-of-type > .sec-head{border-top:0;padding-top:0;}
