/* =========================================================
   NARA LEGACY THAI — shared stylesheet
   Palette: indigo/denim, warm ivory paper, brass accent
   Type: Taviraj (display) + IBM Plex Sans Thai (body)
   ========================================================= */

:root{
  --navy:      #16233F;
  --navy-2:    #1E3153;
  --denim:     #2F5077;
  --denim-2:   #3D6690;
  --sky:       #E7EEF5;
  --paper:     #FAF8F3;
  --paper-2:   #F1EDE3;
  --ink:       #1C2230;
  --ink-soft:  #4B5468;
  --brass:     #B98B4E;
  --brass-soft:#D9BD8C;
  --line:      #DAD9CE;
  --line-on-navy: rgba(255,255,255,.16);

  --font-display: 'Taviraj', 'Noto Serif Thai', serif;
  --font-body: 'IBM Plex Sans Thai', 'Sarabun', sans-serif;

  --maxw: 1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  color:var(--navy);
  line-height:1.25;
  margin:0 0 .5em;
  letter-spacing:.01em;
}
h1{ font-size:clamp(2.1rem, 4.4vw, 3.4rem); font-weight:500; }
h2{ font-size:clamp(1.6rem, 2.8vw, 2.15rem); }
h3{ font-size:1.25rem; font-weight:600; }
p{ margin:0 0 1.1em; color:var(--ink-soft); max-width:62ch; }
a{ color:var(--denim); text-decoration:none; }
a:hover{ text-decoration:underline; }
img{ max-width:100%; display:block; }
ul{ margin:0 0 1.1em; padding-left:1.2em; color:var(--ink-soft); }
li{ margin-bottom:.4em; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }

/* ---------- skip link / focus ---------- */
.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--navy); color:#fff; padding:10px 16px; z-index:200;
}
.skip-link:focus{ left:16px; top:16px; }
a:focus-visible, button:focus-visible, input:focus-visible, label:focus-visible{
  outline:3px solid var(--brass); outline-offset:2px;
}

/* ---------- header / nav ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--navy);
  border-bottom:1px solid var(--line-on-navy);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 0;
}
.brand{
  display:flex; align-items:baseline; gap:.55em;
  font-family:var(--font-display); color:#fff;
  font-size:1.15rem; letter-spacing:.02em;
}
.brand small{
  display:block; font-family:var(--font-body); font-size:.62rem;
  letter-spacing:.14em; color:var(--brass-soft); font-weight:500;
  margin-top:2px;
}
.brand-mark{
  width:34px; height:34px; flex:0 0 auto;
}
.nav-links{
  display:flex; gap:2.1rem; list-style:none; margin:0; padding:0;
}
.nav-links a{
  color:#EAF0F8; font-size:.95rem; font-weight:500; letter-spacing:.02em;
  padding:6px 2px; border-bottom:2px solid transparent;
}
.nav-links a:hover, .nav-links a[aria-current="page"]{
  color:#fff; text-decoration:none; border-bottom-color:var(--brass);
}
.nav-toggle{ display:none; }
.nav-toggle-label{
  display:none; cursor:pointer; width:26px; height:20px; position:relative;
}
.nav-toggle-label span, .nav-toggle-label::before, .nav-toggle-label::after{
  content:""; position:absolute; left:0; right:0; height:2px; background:#fff;
}
.nav-toggle-label span{ top:9px; }
.nav-toggle-label::before{ top:0; }
.nav-toggle-label::after{ bottom:0; }

@media (max-width: 780px){
  .nav-toggle-label{ display:block; }
  .nav-links{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:0; background:var(--navy-2);
    max-height:0; overflow:hidden; transition:max-height .25s ease;
  }
  .nav-links a{ display:block; padding:14px 28px; border-bottom:1px solid var(--line-on-navy); }
  .nav-toggle:checked ~ .nav-links{ max-height:320px; }
}

/* ---------- zigzag divider (pinking-shears motif) ---------- */
.divider{
  height:16px; width:100%;
  -webkit-mask-repeat:repeat-x; mask-repeat:repeat-x;
  -webkit-mask-size:22px 16px; mask-size:22px 16px;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='16' viewBox='0 0 22 16'%3E%3Cpath d='M0 16 L11 0 L22 16 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='16' viewBox='0 0 22 16'%3E%3Cpath d='M0 16 L11 0 L22 16 Z'/%3E%3C/svg%3E");
}
.divider--navy{ background-color:var(--navy); }
.divider--sky{ background-color:var(--sky); }
.divider--paper{ background-color:var(--paper); }

/* ---------- hero ---------- */
.hero{
  background:var(--navy);
  color:#fff;
  overflow:hidden;
}
.hero .wrap{
  display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch; gap:0;
  padding:0;
}
.hero-copy{
  padding:64px 28px 72px 0;
  display:flex; flex-direction:column; justify-content:center;
}
.hero-eyebrow{
  color:var(--brass-soft); font-size:.85rem; letter-spacing:.06em; margin-bottom:14px;
}
.hero h1{ color:#fff; margin-bottom:.4em; }
.hero p{ color:#C9D3E4; font-size:1.08rem; }
.hero-figure{
  position:relative; min-height:340px;
}
.hero-figure img{
  width:100%; height:100%; object-fit:cover; position:absolute; inset:0;
}
@media (max-width: 900px){
  .hero .wrap{ grid-template-columns:1fr; }
  .hero-copy{ padding:44px 28px 32px; }
  .hero-figure{ min-height:280px; }
}

/* ---------- buttons ---------- */
.btn-row{ display:flex; gap:16px; flex-wrap:wrap; margin-top:8px; }
.btn{
  display:inline-flex; align-items:center; gap:.5em;
  padding:13px 26px; font-weight:600; font-size:.95rem;
  border:1.5px solid transparent; border-radius:2px;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.btn:hover{ text-decoration:none; }
.btn-primary{ background:var(--brass); color:var(--navy); }
.btn-primary:hover{ background:var(--brass-soft); }
.btn-outline{ border-color:rgba(255,255,255,.55); color:#fff; }
.btn-outline:hover{ background:rgba(255,255,255,.1); }
.btn-outline-dark{ border-color:var(--denim); color:var(--denim); }
.btn-outline-dark:hover{ background:var(--sky); }

/* ---------- sections ---------- */
section{ padding:76px 0; }
.section--sky{ background:var(--sky); }
.section--paper{ background:var(--paper); }
.section--navy{ background:var(--navy); color:#fff; }
.section--navy h2, .section--navy h3{ color:#fff; }
.section--navy p{ color:#C9D3E4; }

.section-head{ max-width:640px; margin-bottom:44px; }
.kicker{
  display:inline-block; color:var(--denim); font-weight:600;
  font-size:.85rem; margin-bottom:12px; letter-spacing:.02em;
}
.section--navy .kicker{ color:var(--brass-soft); }

/* split (image + text) */
.split{
  display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
}
.split.reverse .split-figure{ order:2; }
.split-figure img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
@media (max-width: 860px){
  .split{ grid-template-columns:1fr; gap:28px; }
  .split.reverse .split-figure{ order:0; }
}

/* three-up feature grid */
.grid-3{
  display:grid; grid-template-columns:repeat(3,1fr); gap:40px;
}
.feature{ border-top:2px solid var(--brass); padding-top:18px; }
.feature h3{ margin-bottom:.5em; }
@media (max-width:860px){ .grid-3{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .grid-3{ grid-template-columns:1fr; } }

/* numbered process (real sequence) */
.process{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; counter-reset:step; }
.process-step{ position:relative; padding-left:56px; }
.process-step::before{
  counter-increment:step; content:counter(step,decimal-leading-zero);
  position:absolute; left:0; top:-2px;
  font-family:var(--font-display); font-size:1.6rem; color:var(--brass);
}
@media (max-width:860px){ .process{ grid-template-columns:1fr; } }

/* category swatch row */
.swatches{
  display:grid; grid-template-columns:repeat(5,1fr); gap:18px;
}
.swatch{ position:relative; }
.swatch img{ width:100%; aspect-ratio:3/4; object-fit:cover; }
.swatch span{
  display:block; margin-top:10px; font-weight:600; font-size:.92rem; color:var(--navy);
  text-align:center;
}
@media (max-width:860px){ .swatches{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .swatches{ grid-template-columns:repeat(2,1fr); } }

/* pull quote / callout */
.callout{
  border-left:3px solid var(--brass);
  padding:6px 0 6px 28px; margin:8px 0;
}
.callout p{ font-family:var(--font-display); font-size:1.3rem; color:var(--navy); max-width:48ch; }
.section--navy .callout p{ color:#fff; }

/* info cards (contact page) — plain, not shadowed SaaS cards */
.info-list{ display:grid; grid-template-columns:1fr 1fr; gap:0 48px; }
.info-item{ padding:22px 0; border-bottom:1px solid var(--line); }
.info-item dt{ font-weight:600; color:var(--navy); font-size:.85rem; letter-spacing:.03em; margin-bottom:6px; }
.info-item dd{ margin:0; font-size:1.08rem; }
@media (max-width:700px){ .info-list{ grid-template-columns:1fr; } }

.map-frame{ border:1px solid var(--line); }
.map-frame iframe{ width:100%; height:340px; border:0; display:block; }

/* legal / policy content */
.legal h2{ margin-top:1.6em; }
.legal ol{ color:var(--ink-soft); }
.legal .meta{ color:var(--ink-soft); font-size:.92rem; }

/* footer */
.site-footer{ background:var(--navy); color:#C9D3E4; padding:56px 0 28px; }
.footer-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; margin-bottom:36px;
}
.footer-grid h4{ color:#fff; font-family:var(--font-body); font-size:.85rem; letter-spacing:.04em; margin-bottom:14px; }
.footer-grid p, .footer-grid a{ color:#B7C2D6; font-size:.94rem; }
.footer-grid a:hover{ color:#fff; }
.footer-bottom{
  border-top:1px solid var(--line-on-navy); padding-top:22px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-size:.85rem; color:#8FA0BE;
}
@media (max-width:780px){ .footer-grid{ grid-template-columns:1fr; } }

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ transition:none !important; }
}
