@font-face {
  font-family:Inter;
  src:url('../fonts/inter-latin.woff2') format('woff2');
  font-style:normal;
  font-weight:400 700;
  font-display:swap
}
@font-face {
  font-family:'Noto Sans Thai';
  src:url('../fonts/noto-sans-thai.woff2') format('woff2');
  font-style:normal;
  font-weight:100 900;
  font-display:swap
}

:root {
  --forest:#35493e;
  --forest-deep:#2e4037;
  --clay:#9b503a;
  --ink:#303a32;
  --muted:#66695d;
  --soft:#eeeee4;
  --line:#dcded1;
  --radius:18px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px
}
body {
  margin:0;
  color:var(--ink);
  font-family:Inter,Arial,sans-serif;
  font-size:16px;
  line-height:1.7
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent
}
a,button,summary {
  touch-action:manipulation
}
button,summary {
  cursor:pointer
}
img {
  max-width:100%;
  display:block
}
h1,h2,h3,h4,p {
  margin-top:0
}
h1,h2,h3,h4 {
  line-height:1.17
}
h1 {
  font-size:clamp(2rem,3.6vw,2.75rem);
  font-weight:600;
  margin-bottom:22px
}
h2 {
  font-size:clamp(22px,1.9vw,26px);
  font-weight:600;
  margin-bottom:20px
}
h3 {
  font-size:1.15rem;
  font-weight:600
}
h4 {
  font-size:.95rem;
  letter-spacing:-.01em
}
p {
  margin-bottom:20px
}
strong {
  font-weight:600
}
.container {
  width:min(1200px,calc(100% - 80px));
  margin-inline:auto
}
.eyebrow {
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.13em;
  line-height:1.6;
  color:#94513c;
  margin-bottom:17px
}
.section {
  padding:96px 0
}
.soft {
  background:var(--soft)
}
.grounded {
  background:var(--forest);
  color:#fff
}
.grounded .eyebrow,.hero .eyebrow,.closing .eyebrow,.page-hero .eyebrow {
  color:var(--clay)
}
.grounded p {
  color:#dde2d5
}
.grounded .eyebrow {
  color:var(--clay)
}
.accent,.brand-dot {
  color:var(--clay)
}
.site-header {
  background:var(--forest);
  color:white;
  position:relative;
  z-index:10;
  border-bottom:1px solid #ffffff1c
}
.header-inner {
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px
}
.wordmark {
  font-size:2rem;
  font-weight:600;
  letter-spacing:-.075em;
  line-height:1.2;
  white-space:nowrap
}
.brand-dot {
  font-size:1.2em
}
.site-header nav {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:.9rem;
  font-weight:500
}
.site-header nav>a:not(.button):hover,.site-header summary:hover {
  color:var(--clay)
}
.site-header [aria-current=page] {
  color:var(--clay)
}
.nav-item {
  position:relative
}
.nav-item>a {
  display:flex;
  align-items:center;
  gap:6px;
  padding:15px 0
}
.nav-item .caret {
  font-size:.65em;
  transition:transform .15s ease
}
.nav-item.submenu-open .caret {
  transform:rotate(180deg)
}
.dropdown {
  position:absolute;
  top:100%;
  left:-20px;
  width:290px;
  background:white;
  color:var(--forest);
  padding:10px;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 12px 30px #0002;
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity .15s ease,transform .15s ease,visibility .15s ease;
  max-height:70vh;
  overflow-y:auto
}
.nav-item.submenu-open .dropdown {
  opacity:1;
  visibility:visible;
  transform:translateY(0)
}
.dropdown a {
  display:block;
  padding:12px;
  border-radius:5px
}
.dropdown a:hover {
  background:var(--soft)
}
.dropdown a[aria-current=page] {
  color:#805200;
  background:var(--soft)
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  background:var(--clay);
  color:var(--forest);
  padding:16px 24px;
  border:1px solid transparent;
  border-radius:6px;
  font-size:.9rem;
  font-weight:650;
  line-height:1.4;
  transition:background .2s,transform .2s
}
.button:hover {
  background:#ffbc3f;
  transform:translateY(-2px)
}
.button.small {
  font-size:.85rem;
  padding:13px 19px;
  gap:16px
}
.button:disabled {
  cursor:wait;
  opacity:.65
}
.menu-toggle {
  display:none;
  background:none;
  border:1px solid #ffffff50;
  border-radius:5px;
  color:white;
  padding:9px 13px
}
.skip-link {
  position:absolute;
  left:20px;
  top:-70px;
  z-index:50;
  padding:12px;
  background:var(--clay);
  color:var(--forest)
}
.skip-link:focus {
  top:10px
}
:focus-visible {
  outline:3px solid #596b4c;
  outline-offset:5px
}
.site-header :focus-visible,.grounded :focus-visible,.hero :focus-visible {
  outline-color:var(--clay)
}
.hero {
  position:relative;
  min-height:640px;
  display:flex;
  align-items:center;
  background:var(--forest);
  color:white;
  overflow:hidden
}
.hero picture,.hero picture img,.hero-shade {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover
}
.hero picture img {
  object-position:center 48%
}
.hero-shade {
  background:linear-gradient(90deg,rgba(10,22,40,.97) 0%,rgba(10,22,40,.89) 30%,rgba(10,22,40,.60) 51%,rgba(10,22,40,.08) 78%)
}
.hero-content {
  position:relative;
  padding-block:85px
}
.hero-content>p:not(.eyebrow) {
  max-width:530px;
  color:#66695d;
  font-size:1.075rem;
  line-height:1.8;
  margin-bottom:32px
}
.hero h1 {
  max-width:660px
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:26px;
  flex-wrap:wrap
}
.text-link {
  display:inline-flex;
  gap:18px;
  align-items:center;
  font-size:.9rem;
  font-weight:650;
  color:var(--forest);
  padding:5px 0;
  border-bottom:1px solid #afb6a5
}
.text-link:hover {
  color:#77432f;
  border-color:var(--clay)
}
.text-link.light {
  color:#fff;
  border-color:#ffffff70
}
.hero-caption {
  position:absolute;
  right:40px;
  bottom:24px;
  font-size:.75rem;
  color:white;
  text-shadow:0 1px 5px #000
}
.context-bar {
  border-bottom:1px solid var(--line);
  background:#fff
}
.context-bar .container {
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding-block:24px;
  font-size:.85rem;
  color:var(--muted)
}
.context-bar span:before {
  content:'—';
  color:#94513c;
  margin-right:13px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  gap:50px;
  align-items:flex-end;
  margin-bottom:36px
}
.section-heading h2 {
  margin-bottom:0
}
.section-heading>p {
  max-width:365px;
  color:var(--muted);
  margin-bottom:3px
}
.service-grid,.three-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px
}
.service-card {
  position:relative;
  display:flex;
  flex-direction:column;
  padding:32px 30px 27px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  transition:transform .2s,border-color .2s,box-shadow .2s
}
.service-card:hover {
  transform:translateY(-5px);
  border-color:#9aa88d;
  box-shadow:0 14px 32px #12223f0b
}
.card-number {
  display:block;
  color:#94513c;
  font-size:.95rem;
  letter-spacing:.04em;
  margin-bottom:30px
}
.service-card .eyebrow {
  font-size:.68rem;
  letter-spacing:.09em;
  margin-bottom:16px;
  color:var(--muted)
}
.service-card h3 {
  font-size:1.25rem;
  max-width:290px
}
.service-card p:not(.eyebrow) {
  color:var(--muted);
  font-size:.95rem
}
.card-link {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid var(--line);
  padding-top:20px;
  margin-top:auto;
  font-size:.85rem;
  font-weight:650
}
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:86px;
  align-items:start
}
.split>div>p {
  color:var(--muted)
}
.split>div>.eyebrow {
  color:#94513c
}
.situations>div {
  display:flex;
  gap:28px;
  border-bottom:1px solid var(--line);
  padding:0 0 22px;
  margin-bottom:22px
}
.situations>div:last-child {
  margin-bottom:0
}
.situations span {
  font-size:.8rem;
  color:#94513c;
  padding-top:5px
}
.situations p {
  margin:0;
  color:var(--muted)
}
.situations strong {
  color:var(--ink)
}
.four-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:36px;
  margin-top:48px
}
.four-grid article {
  border-top:1px solid #ffffff30;
  padding-top:26px
}
.four-grid h3 {
  font-size:1.2rem;
  letter-spacing:-.025em
}
.four-grid p,.three-grid p {
  font-size:.95rem;
  margin-bottom:0
}
.steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:35px;
  margin-top:42px
}
.steps span {
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  background:#eeeee3;
  border:1px solid #d6dacb;
  border-radius:50%;
  color:#94513c;
  font-size:.85rem;
  margin-bottom:25px
}
.steps h3 {
  font-size:1.2rem
}
.steps p {
  color:var(--muted);
  font-size:.95rem;
  margin-bottom:0
}
.report-section {
  grid-template-columns:.8fr 1.2fr;
  gap:65px;
  align-items:center
}
.report {
  background:white;
  border:1px solid var(--line);
  border-radius:10px;
  padding:28px;
  box-shadow:0 10px 40px #2e403707
}
.report-head {
  display:flex;
  justify-content:space-between;
  gap:15px
}
.report .eyebrow {
  font-size:.65rem;
  letter-spacing:.1em;
  color:var(--muted);
  display:block;
  margin-bottom:8px
}
.report h3 {
  font-size:1.2rem;
  letter-spacing:-.025em;
  margin-bottom:12px
}
.tag {
  font-size:.65rem;
  line-height:1.4;
  border:1px solid #d4c5aa;
  background:#f4eee3;
  color:#6d543b;
  border-radius:4px;
  padding:6px 9px;
  height:fit-content;
  max-width:170px
}
.report-meta {
  font-size:.75rem;
  color:var(--muted);
  padding-bottom:16px;
  border-bottom:1px solid var(--line)
}
.report-row {
  display:grid;
  grid-template-columns:24px 1fr;
  gap:10px 12px;
  padding:16px 0;
  border-bottom:1px solid var(--line)
}
.issue-number {
  font-size:.75rem;
  color:#8d692b
}
.report-row h4 {
  font-size:.85rem;
  margin-bottom:7px
}
.report-row p {
  font-size:.75rem;
  color:var(--muted);
  margin:0
}
.status {
  grid-column:2;
  font-size:.68rem;
  display:block;
  width:fit-content;
  padding:3px 8px;
  border-radius:4px;
  background:#f3e6d9;
  color:#79513d
}
.status.neutral {
  background:#e9eee3;
  color:#58634f
}
.report-next {
  background:var(--soft);
  padding:15px 17px;
  margin-top:20px;
  border-left:2px solid var(--clay)
}
.report-next strong {
  font-size:.8rem
}
.report-next p {
  font-size:.8rem;
  margin:6px 0 0;
  line-height:1.6;
  color:var(--muted)
}
.note {
  font-size:.82rem;
  color:var(--muted);
  line-height:1.7
}
.report>.note {
  font-size:.7rem;
  margin:14px 0 0
}
.faq-layout {
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:80px
}
.faq-list details {
  border-bottom:1px solid #d5dacd
}
.faq-list summary {
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:22px 0;
  line-height:1.5;
  font-weight:600;
  font-size:.95rem
}
.faq-list summary::-webkit-details-marker {
  display:none
}
.faq-list summary span {
  font-size:1.4rem;
  font-weight:400;
  color:#94513c
}
.faq-list details[open] summary span {
  transform:rotate(45deg)
}
.faq-list p {
  font-size:.95rem;
  color:var(--muted);
  padding-right:30px
}
.closing {
  background:var(--forest-deep);
  color:white;
  padding:72px 0
}
.closing-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:45px
}
.closing h2 {
  margin:0
}
.site-footer {
  background:var(--forest);
  color:#616b5c;
  padding:64px 0 22px
}
.site-footer .wordmark {
  color:white
}
.footer-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  gap:65px
}
.footer-grid>div>p {
  font-size:.8rem;
  margin:18px 0 8px
}
.footer-grid .muted {
  font-size:.75rem;
  color:#68745f;
  margin:0
}
.footer-grid h2 {
  display:inline-block;
  font-size:.85rem;
  color:white;
  letter-spacing:0;
  margin:4px 0 16px;
  padding-bottom:8px;
  border-bottom:2px solid var(--clay)
}
.footer-grid>div>a:not(.wordmark) {
  display:block;
  font-size:.8rem;
  margin-bottom:10px
}
.footer-grid a:hover {
  color:var(--clay)
}
.footer-bottom {
  display:flex;
  gap:24px;
  justify-content:space-between;
  border-top:1px solid #ffffff18;
  padding-top:22px;
  margin-top:8px;
  font-size:.7rem;
  color:#68745f
}
.page-hero {
  background:var(--forest-deep);
  color:white;
  padding:72px 0 80px;
  position:relative;
  overflow:hidden
}
.page-hero .container {
  position:relative
}
.page-hero h1 {
  font-size:clamp(1.8rem,3.4vw,2.4rem);
  max-width:920px
}
.lead {
  font-size:1rem;
  max-width:650px;
  color:#66695d;
  margin-bottom:0
}
.package-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));
  gap:25px
}
.package {
  border:1px solid var(--line);
  padding:32px;
  border-radius:var(--radius);
  display:flex;
  flex-direction:column
}
.package .card-number {
  margin-bottom:24px
}
.package h3 {
  font-size:1.3rem
}
.package-subtitle {
  font-weight:600;
  color:var(--ink)!important
}
.package p {
  color:var(--muted);
  font-size:.95rem
}
.package .text-link {
  margin-top:auto;
  align-self:start
}
.check-list {
  list-style:none;
  padding:0;
  margin:0 0 30px
}
.check-list li {
  padding:15px 0 15px 25px;
  position:relative;
  border-bottom:1px solid var(--line);
  font-size:.95rem;
  color:var(--muted)
}
.check-list li:before {
  content:'✓';
  position:absolute;
  left:0;
  top:15px;
  color:#94513c
}
.scope-note {
  padding:32px;
  background:white;
  border-left:3px solid var(--clay)
}
.scope-note p {
  margin:0;
  color:var(--muted)
}
.three-grid {
  gap:45px;
  margin-top:45px
}
.three-grid h3 {
  font-size:1.3rem
}
.contact-layout {
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:80px
}
.contact-layout aside>p {
  color:var(--muted);
  font-size:.95rem
}
.preview-notice {
  padding:24px;
  background:#f3eadb;
  border:1px solid #dcc4a9;
  border-radius:8px;
  margin-bottom:32px
}
.preview-notice h2 {
  font-size:1.2rem;
  letter-spacing:-.02em
}
.preview-notice p {
  font-size:.9rem;
  margin-bottom:0;
  color:#6e533f
}
.preview-notice .eyebrow {
  display:block
}
.form-intro,.field-help {
  font-size:.8rem;
  color:var(--muted)
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}
.field {
  min-width:0
}
.field.full {
  grid-column:1/-1
}
.field label {
  display:block;
  font-size:.85rem;
  font-weight:600;
  line-height:1.5;
  margin-bottom:8px
}
.field label>span {
  color:#94513c
}
.field label .optional {
  font-weight:400;
  color:var(--muted)
}
input,select,textarea {
  display:block;
  width:100%;
  min-height:49px;
  border:1px solid #c2c7b8;
  background:white;
  border-radius:5px;
  padding:11px 12px;
  color:var(--ink);
  font-size:1rem
}
textarea {
  resize:vertical
}
input:focus,select:focus,textarea:focus {
  outline:2px solid #596b4c;
  outline-offset:2px
}
.field-help {
  display:block;
  margin-top:9px;
  line-height:1.6
}
[aria-invalid=true] {
  border-color:#b23731
}
.field-error {
  color:#a02d27;
  font-size:.8rem;
  display:block;
  margin-top:6px
}
.form-status:empty {
  display:none
}
.form-status {
  padding:15px 18px;
  border-radius:5px;
  margin-bottom:24px;
  background:#edf0e7;
  border-left:3px solid #596b4c;
  font-size:.9rem
}
.form-status.error {
  background:#fff2ef;
  border-color:#b23731
}
.form-status.success {
  background:#eef7f1;
  border-color:#356c48
}
.contact-layout form>.note {
  margin:24px 0
}
.prose {
  max-width:790px
}
.prose h2 {
  font-size:1.3rem;
  margin-top:40px
}
.prose h2:first-child {
  margin-top:0
}
.prose p {
  color:var(--muted)
}

@media(min-width:1500px) {
  .hero {
  min-height:720px
}
.hero picture img {
  object-position:center 43%
}

}

@media(max-width:1050px) {
  .container {
  width:calc(100% - 48px)
}
.site-header nav {
  gap:20px
}
.site-header .button.small {
  font-size:.75rem;
  padding:12px
}
.wordmark {
  font-size:1.8rem
}
.split,.faq-layout,.contact-layout {
  gap:45px
}
.service-card {
  padding:26px 23px
}
.service-card h3 {
  font-size:1.15rem
}
.four-grid {
  gap:24px
}
.hero {
  min-height:620px
}
.hero-content>p:not(.eyebrow) {
  max-width:470px
}
.hero h1 {
  font-size:2.4rem
}
.steps {
  gap:24px
}
.footer-grid {
  gap:30px
}

}

@media(max-width:800px) {
  .menu-toggle {
  display:flex;
  align-items:center;
  gap:14px
}
.header-inner {
  min-height:78px;
  flex-wrap:wrap;
  gap:0
}
.site-header nav {
  display:none;
  width:100%;
  align-items:stretch;
  padding:16px 0 24px;
  flex-direction:column;
  gap:12px
}
.site-header nav.open {
  display:flex
}
.site-header nav>a:not(.button) {
  padding:9px 0
}
.nav-item>a {
  padding:9px 0
}
.dropdown {
  position:static;
  width:100%;
  margin:7px 0;
  box-shadow:none;
  opacity:1;
  visibility:visible;
  transform:none;
  display:none
}
.nav-item.submenu-open .dropdown {
  display:block
}
.site-header .button.small {
  font-size:.9rem;
  align-self:start
}
.hero {
  min-height:600px
}
.hero h1 {
  font-size:2.1rem
}
.hero-shade {
  background:linear-gradient(90deg,#35493eed,#35493ebb 45%,#35493e50)
}
.hero-content>p:not(.eyebrow) {
  max-width:450px
}
.hero-caption {
  display:none
}
.hero-actions {
  gap:20px
}
.context-bar .container {
  font-size:.75rem;
  gap:15px
}
.context-bar span:before {
  display:none
}
.section {
  padding:68px 0
}
.section-heading {
  display:block
}
.section-heading>p {
  margin-top:24px;
  max-width:550px
}
.service-grid {
  gap:16px
}
.service-card {
  padding:24px 18px
}
.service-card .eyebrow {
  font-size:.65rem
}
.service-card h3 {
  font-size:1.05rem
}
.service-card p:not(.eyebrow) {
  font-size:.88rem
}
.card-link {
  font-size:.75rem;
  gap:10px
}
.split,.report-section,.faq-layout,.contact-layout {
  grid-template-columns:1fr;
  gap:36px
}
.four-grid,.steps {
  grid-template-columns:1fr 1fr;
  gap:32px
}
.report {
  max-width:660px
}
.closing-inner {
  align-items:start;
  flex-direction:column;
  gap:30px
}
.three-grid {
  gap:24px
}
.footer-grid {
  grid-template-columns:1.2fr 1fr 1fr
}
.footer-bottom {
  flex-wrap:wrap;
  justify-content:start;
  gap:10px 25px
}
.page-hero {
  padding:55px 0 65px
}
.contact-layout aside {
  max-width:660px
}

}

@media(max-width:580px) {
  .container {
  width:calc(100% - 40px)
}
.hero {
  min-height:720px;
  align-items:flex-start
}
.hero picture img {
  object-position:65% center
}
.hero-shade {
  background:linear-gradient(180deg,#35493ef5 0%,#35493ee6 36%,#35493e90 65%,#35493e29 100%)
}
.hero-content {
  padding:52px 0 260px
}
.hero h1 {
  font-size:clamp(1.9rem,7.8vw,2.5rem);
  margin-bottom:22px
}
.hero-content>p:not(.eyebrow) {
  font-size:.95rem;
  line-height:1.75;
  max-width:390px;
  margin-bottom:26px
}
.hero .eyebrow {
  font-size:.65rem
}
.hero-actions {
  align-items:start;
  flex-direction:column;
  gap:15px
}
.button {
  padding:15px 19px;
  font-size:.85rem
}
.context-bar .container {
  flex-direction:column;
  gap:4px;
  padding-block:20px
}
.context-bar span:before {
  display:inline
}
.context-bar {
  font-size:.8rem
}
.section {
  padding:56px 0
}
.section-heading {
  margin-bottom:28px
}
.service-grid,.three-grid {
  grid-template-columns:1fr
}
.service-card {
  padding:28px
}
.service-card h3 {
  font-size:1.25rem;
  max-width:290px
}
.service-card p:not(.eyebrow) {
  font-size:.95rem
}
.service-card .eyebrow {
  font-size:.7rem
}
.card-number {
  margin-bottom:24px
}
.card-link {
  font-size:.85rem
}
.four-grid,.steps {
  gap:28px 22px
}
.four-grid h3,.steps h3 {
  font-size:1.05rem
}
.four-grid p,.steps p {
  font-size:.85rem
}
.steps span {
  margin-bottom:20px
}
.report {
  padding:20px
}
.report-head {
  gap:10px
}
.report h3 {
  font-size:1.05rem
}
.report-meta {
  font-size:.67rem
}
.report .tag {
  font-size:.6rem
}
.closing {
  padding:55px 0
}
.site-footer {
  padding-top:48px
}
.footer-grid {
  grid-template-columns:1fr 1fr;
  gap:35px 24px
}
.footer-grid>div:first-child {
  grid-column:1/-1
}
.footer-bottom {
  flex-direction:column;
  font-size:.68rem
}
.form-grid {
  grid-template-columns:1fr
}
.field.full {
  grid-column:auto
}
.package {
  padding:27px
}
.page-hero h1 {
  font-size:1.9rem
}
.lead {
  font-size:.9rem
}
.scope-note {
  padding:25px
}
.eyebrow {
  font-size:.7rem
}
.prose h2 {
  font-size:1.15rem
}

}

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

}

/* Allow text enlargement without forcing grid tracks beyond their container. */
h1,h2,h3,h4,p,a {
  overflow-wrap:break-word
}
.split>*,.three-grid>*,.four-grid>*,.steps>* {
  min-width:0
}

@media(max-width:580px) {
  .hero picture img {
  object-position:85% center
}
.four-grid,.steps {
  grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr))
}

}

/* Warm residential direction: linen, garden greens and fired-clay accents. */
body { background:#faf8f2; }
h1,h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; line-height:1.09; }
h3 { font-family:Georgia,'Times New Roman',serif; font-weight:400; }
.hero h1,.page-hero h1 { letter-spacing:-.01em; }
.eyebrow { letter-spacing:.11em; }
.site-header { background:#faf8f2; color:var(--ink); border-bottom:1px solid var(--line); }
.header-inner { min-height:98px; }
.wordmark { font-weight:500; letter-spacing:-.065em; }
.button { background:var(--forest); color:#fffdf7; border-radius:30px; padding:16px 25px; }
.button:hover { background:#253b2e; }
.button.small { border-radius:24px; }
.menu-toggle { color:var(--forest); border-color:#bdc6b5; border-radius:22px; }
.dropdown { border-radius:15px; background:#fffdf8; box-shadow:0 12px 35px #35493e12; }
.dropdown a { border-radius:8px; }
.site-header :focus-visible,.hero :focus-visible { outline-color:var(--forest); }
.hero { background:#faf8f2; color:var(--ink); min-height:660px; overflow:visible; }
.hero picture { inset:28px 3% 32px auto; width:46%; height:auto; overflow:hidden; border-radius:180px 180px 18px 18px; }
.hero picture img { object-position:81% center; }
.hero-shade { display:none; }
.hero-content { padding-block:80px; }
.hero h1 { font-size:clamp(2.2rem,3.8vw,2.75rem); max-width:54%; }
.hero .eyebrow { color:var(--clay); }
.hero-content>p:not(.eyebrow) { max-width:43%; font-size:1rem; line-height:1.85; }
.hero-actions { max-width:47%; gap:20px; }
.text-link.light { color:var(--forest); border-color:#b1baa7; }
.hero-caption { right:6%; bottom:51px; background:#faf8f2eb; color:var(--forest); padding:8px 15px; border-radius:20px; text-shadow:none; }
.context-bar { background:#eeeee4; border:0; }
.context-bar .container { padding-block:23px; }
.service-card,.package { background:#fffdf8; border-color:#e0e1d5; }
.service-card:hover { border-color:#9aa88d; box-shadow:0 12px 32px #35493e08; transform:translateY(-3px); }
.service-card h3 { font-size:1.35rem; }
.card-number { width:43px; height:43px; border-radius:50%; display:grid; place-items:center; background:#f0e9df; color:var(--clay); font-size:.8rem; }
.card-link { border-color:#e2e3d9; }
.grounded { background:#425443; }
.grounded .eyebrow { color:#e0bb94; }
.grounded h2 { color:#fffaf0; }
.grounded h3 { color:#f6f5e9; font-family:Inter,Arial,sans-serif; font-weight:500; }
.grounded p { color:#dce2d2; }
.four-grid article { border-color:#ffffff30; }
.steps span { border:0; color:var(--forest); background:#e8eddf; }
.steps h3 { font-family:Inter,Arial,sans-serif; font-weight:500; font-size:1.1rem; }
.report { background:#fffdf8; border-radius:18px; box-shadow:0 12px 40px #35493e08; }
.report h3 { font-family:Inter,Arial,sans-serif; font-weight:500; }
.report-next { border-color:var(--clay); border-radius:0 9px 9px 0; }
.scope-note { background:#fffdf8; border-radius:0 15px 15px 0; }
.closing { background:#e5e9db; color:var(--forest); }
.closing .eyebrow { color:var(--clay); }
.site-footer { background:#f3f1e8; color:#5c6758; }
.site-footer .wordmark,.footer-grid h2 { color:var(--forest); }
.footer-grid h2 { font-family:Inter,Arial,sans-serif; font-weight:600; }
.footer-bottom { border-color:#d7ddcd; }
.page-hero { background:#e9ecdf; color:var(--forest); }
.page-hero .eyebrow { color:var(--clay); }
.page-hero:after { content:''; position:absolute; width:140px; height:3px; background:#b77559; bottom:0; left:max(40px,calc((100% - 1200px)/2)); }
.preview-notice { border-radius:14px; }
input,select,textarea { background:#fffdf8; border-radius:9px; }
@media(min-width:1500px) { .hero { min-height:710px; } .hero picture img { object-position:81% center; } }
@media(max-width:1050px) { .hero h1 { font-size:2.4rem; } .hero picture { width:45%; border-radius:140px 140px 16px 16px; } .hero-content>p:not(.eyebrow) { max-width:47%; } }
@media(max-width:800px) { .header-inner { min-height:82px; } .hero { min-height:590px; } .hero h1 { font-size:2.1rem; } .hero-actions { flex-direction:column; align-items:start; } .hero picture { width:43%; border-radius:120px 120px 16px 16px; } .hero-content>p:not(.eyebrow) { max-width:49%; } .service-card h3 { font-size:1.2rem; } }
@media(max-width:580px) {
 .hero { min-height:0; display:flex; flex-direction:column; align-items:stretch; }
 .hero-content { order:0; padding:44px 0 34px; }
 .hero h1 { font-size:clamp(2rem,9vw,2.6rem); max-width:100%; }
 .hero-content>p:not(.eyebrow) { max-width:100%; font-size:1rem; }
 .hero-actions { max-width:100%; flex-direction:row; align-items:center; gap:15px 24px; }
 .hero picture { order:1; position:relative; inset:auto; width:calc(100% - 40px); height:330px; margin:0 20px 28px; border-radius:150px 150px 14px 14px; }
 .hero picture img { object-position:85% center; }
 .hero-caption { display:none; }
 .service-card h3 { font-size:1.35rem; }
 .page-hero h1 { font-size:2rem; }
 .page-hero:after { left:20px; }
}

/* Hero media stays out of document flow: existing hero heights are preserved. */
:root { --hero-gutter:max(40px, calc((100vw - 1200px) / 2)); }
.hero picture {
  right:var(--hero-gutter);
  width:calc((100% - 2 * var(--hero-gutter)) * .46);
}
.hero-caption { right:calc(var(--hero-gutter) + 20px); }
.page-hero-media {
  position:absolute;
  top:20px;
  bottom:20px;
  right:var(--hero-gutter);
  width:calc((100% - 2 * var(--hero-gutter)) * .55);
  overflow:hidden;
  border-radius:120px 120px 16px 16px;
  pointer-events:none;
}
.page-hero-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:75% center;
}
.page-hero-media::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, #e9ecdf 0%, rgba(233,236,223,.98) 18%, rgba(233,236,223,.88) 40%, rgba(233,236,223,.16) 76%, rgba(233,236,223,.03) 100%);
}
.page-hero .container { z-index:1; }
.page-hero:after { left:var(--hero-gutter); }
@media(max-width:1050px) {
  :root { --hero-gutter:24px; }
  .hero picture { width:calc((100% - 2 * var(--hero-gutter)) * .45); }
  .page-hero-media::after { background:linear-gradient(90deg,#e9ecdf 0%,rgba(233,236,223,.95) 40%,rgba(233,236,223,.55) 100%); }
}
@media(max-width:800px) {
  .hero picture { width:calc((100% - 2 * var(--hero-gutter)) * .43); }
  .page-hero-media { width:calc(100% - 2 * var(--hero-gutter)); border-radius:90px 90px 14px 14px; }
  .page-hero-media::after { background:linear-gradient(90deg,rgba(233,236,223,.98) 0%,rgba(233,236,223,.94) 45%,rgba(233,236,223,.76) 100%); }
}
@media(max-width:580px) {
  :root { --hero-gutter:20px; }
  .hero picture { right:auto; width:calc(100% - 2 * var(--hero-gutter)); }
  .page-hero-media { top:16px; bottom:16px; }
}

/* Contact details and shared floating actions. */
.contact-details { margin-bottom:36px; }
.contact-details h2 { font-size:1.3rem; }
.contact-details p { margin-bottom:12px; }
.contact-details .text-link { display:table; margin-bottom:14px; }
.footer-grid>div>a.footer-email { display:inline-block; margin-top:14px; }
.sticky-whatsapp,.sticky-line,.back-to-top {
  position:fixed;
  right:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  box-shadow:0 5px 18px #263d302b;
  z-index:30;
}
.sticky-whatsapp { bottom:calc(88px + env(safe-area-inset-bottom, 0px)); width:56px; height:56px; background:#167b42; color:#fff; }
.sticky-whatsapp svg { width:40px; height:40px; }
.sticky-whatsapp:hover { background:#116536; }
.back-to-top { bottom:calc(24px + env(safe-area-inset-bottom, 0px)); width:48px; height:48px; border:1px solid #fff8; background:var(--forest); color:#fff; }
.back-to-top[hidden] { display:none; }
.back-to-top svg { width:22px; height:22px; }
.back-to-top:hover { background:#253b2e; }
@media(max-width:580px) {
  .sticky-whatsapp,.sticky-line,.back-to-top { right:16px; }
  .footer-bottom { padding-inline:60px; align-items:center; text-align:center; }
}

/* A shorter homepage, with detail available through the main navigation. */
.process-link { color:#fffaf0; border-color:#dce2d280; margin-top:32px; }
.process-link:hover { color:#e0bb94; }
.faq-page { max-width:900px; }
.site-header nav { flex-wrap:wrap; }
@media(min-width:1101px) {
  .site-header nav { justify-content:flex-end; }
}
@media(min-width:801px) and (max-width:1100px) {
  .header-inner { flex-wrap:wrap; gap:0; }
  .menu-toggle { display:flex; align-items:center; gap:14px; }
  .site-header nav { display:none; width:100%; align-items:stretch; flex-direction:column; gap:12px; padding:16px 0 24px; }
  .site-header nav.open { display:flex; }
  .site-header nav>a:not(.button) { padding:9px 0; }
  .nav-item>a { padding:9px 0; }
  .dropdown { position:static; width:100%; margin:7px 0; box-shadow:none; opacity:1; visibility:visible; transform:none; display:none; }
  .nav-item.submenu-open .dropdown { display:block; }
  .site-header .button.small { align-self:start; }
}

/* Shared contact icons, inspired by the Walailaklaw contact treatment. */
.contact-channels { display:flex; align-items:center; gap:12px; }
.hero-channels { margin-top:16px; height:44px; }
.channel-link { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; flex:0 0 44px; border:1px solid #344b3630; border-radius:50%; background:#fffaf0; transition:transform .15s ease,background .15s ease; }
.channel-link:hover { transform:translateY(-2px); background:#fff; }
.channel-link:focus-visible { outline:3px solid var(--forest); outline-offset:4px; }
.channel-link svg,.channel-link img { width:24px; height:24px; }
.channel-phone { color:#94613f; }
.channel-email { color:#b34f40; }
.channel-whatsapp { color:#168348; }
.channel-line { color:#06c755; }
.channel-line img { border-radius:5px; }
.footer-channels { margin-top:18px; }
.footer-channels .channel-link { width:31px; height:31px; flex:0 0 31px; }
.footer-channels .channel-link svg,.footer-channels .channel-link img { width:17px; height:17px; }
.page-hero { padding-top:56px; padding-bottom:36px; }
.hero-content { padding-bottom:20px; }
@media(max-width:800px) { .page-hero { padding-top:39px; padding-bottom:21px; } }
@media(max-width:580px) { .hero-content { padding-top:18px; padding-bottom:0; } }
@media(prefers-reduced-motion:reduce) { .channel-link { transition:none; } }

/* Match the supporting-page sage background. */
.hero { background:#e9ecdf; }

/* Logo asset trial: original lettering reserves the existing logo dimensions. */
.wordmark { position:relative; }
.wordmark-original { visibility:hidden; }
.wordmark-image { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }

/* Slim contact bar trial; keep navigation and hero dimensions unchanged. */
.header-contact-bar { background:var(--forest); color:#fffaf0; }
.header-channels { height:36px; justify-content:flex-end; gap:8px; }
.header-channels .channel-link { width:44px; height:36px; flex-basis:44px; border:0; border-radius:0; background:transparent; color:#fffaf0; }
.header-channels .channel-link svg,.header-channels .channel-link img { width:20px; height:20px; }
.header-channels .channel-link:hover { background:#ffffff18; transform:none; }
.header-channels .channel-link:focus-visible { outline:2px solid #fffaf0; outline-offset:-3px; }
.page-hero { padding-top:86px; padding-bottom:66px; }
.hero-content { padding-bottom:80px; }
@media(max-width:800px) { .page-hero { padding-top:69px; padding-bottom:51px; } }
@media(max-width:580px) { .hero-content { padding-top:44px; padding-bottom:34px; } }

/* Optical sizing for the footer WhatsApp artwork. */
.footer-channels .channel-whatsapp svg { width:19px; height:19px; }

/* Optical sizing for WhatsApp in the slim contact bar. */
.header-channels .channel-whatsapp svg { width:22px; height:22px; }

/* Common property concerns: a calm ticker beside fixed contact links. */
.contact-bar-inner { display:flex; align-items:center; gap:16px; min-height:36px; }
.property-ticker { display:flex; flex:1; min-width:0; align-items:center; gap:4px; }
.ticker-window { flex:1; min-width:0; overflow-x:auto; scrollbar-width:none; }
.ticker-window::-webkit-scrollbar { display:none; }
.ticker-track { display:flex; width:max-content; }
.ticker-phrases { display:flex; align-items:center; width:max-content; margin:0; padding:0; list-style:none; }
.ticker-phrases li { flex:none; white-space:nowrap; font-size:12px; line-height:24px; padding-right:40px; }
.ticker-phrases li::after { content:'·'; margin-left:40px; color:#e0bb94; }
.ticker-toggle { display:flex; flex:none; align-items:center; justify-content:center; width:28px; height:28px; padding:0; border:0; border-radius:4px; background:transparent; color:#fffaf0; cursor:pointer; font-size:15px; }
.ticker-toggle[hidden] { display:none; }
.ticker-toggle:hover { background:#ffffff18; }
.header-contact-bar .ticker-toggle:focus-visible,.header-contact-bar .ticker-window:focus-visible { outline:2px solid #fffaf0; outline-offset:-2px; }
.header-channels { flex:none; }
.property-ticker.is-moving .ticker-window { overflow:hidden; }
.property-ticker.is-moving .ticker-track { animation:property-concerns-scroll var(--ticker-duration,160s) linear infinite; }
.property-ticker.is-paused .ticker-track,.property-ticker:hover .ticker-track,.property-ticker:focus-within .ticker-track { animation-play-state:paused; }
@keyframes property-concerns-scroll { to { transform:translateX(-50%); } }
@media(max-width:580px) {
  .contact-bar-inner { gap:6px; }
  .header-channels { gap:0; }
  .header-channels .channel-link { width:30px; flex-basis:30px; }
}
@media(prefers-reduced-motion:reduce) {
  .property-ticker.is-moving .ticker-track { animation:none; }
  .property-ticker.is-moving .ticker-window { overflow-x:auto; }
  .ticker-toggle,.ticker-copy { display:none; }
}


/* Sticky LINE action for Thai pages, sized to match the shared WhatsApp button. */
.sticky-line { bottom:calc(88px + env(safe-area-inset-bottom, 0px)); width:56px; height:56px; background:#fff; }
.sticky-line img { width:40px; height:40px; border-radius:10px; }
.sticky-line:hover { background:#f2f2ea; }

/* Thai typography: a self-hosted Thai-supporting face, with tracking and leading eased
   for stacked vowel/tone marks (the Latin site's tight negative tracking clips them). */
body.lang-th { font-family:'Noto Sans Thai',Inter,Arial,sans-serif; }
body.lang-th h1,body.lang-th h2,body.lang-th h3,body.lang-th h4,
body.lang-th .wordmark,body.lang-th .service-card h3,body.lang-th .package h3,
body.lang-th .steps h3,body.lang-th .report h3,body.lang-th .footer-grid h2 {
  font-family:'Noto Sans Thai',Inter,Arial,sans-serif;
  font-weight:600;
  letter-spacing:normal;
}
body.lang-th h1,body.lang-th h2,body.lang-th h3,body.lang-th h4 { line-height:1.35; }
body.lang-th .eyebrow { letter-spacing:.02em; }
body.lang-th .wordmark { letter-spacing:normal; }

/* Walailak-inspired hierarchy, adapted to Baanward's warm palette. */
:root {
  --accent-tint:#f3e7dc;
  --accent-border:#d8bba5;
  --surface:#fffdf8;
  --shadow-soft:0 10px 28px rgba(46,64,55,.08);
}
.eyebrow {
  display:table;
  width:fit-content;
  max-width:100%;
  letter-spacing:.065em;
  overflow-wrap:anywhere;
}
/* The rounded pill/badge treatment is a hero-only accent; other sections keep
   a plain tracked-caps label, matching the rest of the page's quieter type. */
.hero .eyebrow,.page-hero .eyebrow {
  padding:6px 13px;
  border:1px solid var(--accent-border);
  border-radius:999px;
  background:var(--accent-tint);
  color:#81432f;
}
.hero .eyebrow { max-width:50%; }
.section-heading h2::after,.split>div>h2::after,.faq-layout>div>h2::after {
  content:'';
  display:block;
  width:54px;
  height:3px;
  border-radius:999px;
  background:var(--clay);
  margin-top:20px;
}
.site-header { box-shadow:0 3px 18px #2e403709; }
.site-header nav>a:not(.button),.nav-item>a {
  border-radius:8px;
  transition:background .18s,color .18s;
}
.site-header nav>a:not(.button):hover,.nav-item>a:hover {
  background:#e9ecdf;
  color:#77432f;
}
.button {
  box-shadow:0 6px 20px -8px #9b503a66;
  transition:background .18s,transform .18s,box-shadow .18s;
}
.button:hover { box-shadow:0 10px 24px -8px #9b503a80; }
.service-card,.package,.report { box-shadow:0 5px 20px #2e403705; min-width:0; }
.service-card:hover,.service-card:focus-visible {
  border-color:var(--accent-border);
  box-shadow:var(--shadow-soft);
}
.card-number,.steps span { border:1px solid var(--accent-border); background:var(--accent-tint); color:#81432f; }
.situations>div { padding:22px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.situations span { flex:none; }
.three-grid>article { padding:24px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.grounded .three-grid>article { background:#ffffff08; border-color:#ffffff30; }
.faq-list { border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.faq-list details { padding-inline:24px; }
.faq-list details:last-child { border-bottom:0; }
.faq-list details[open] { background:#f0f2e9; }
.faq-list details:first-child { border-radius:14px 14px 0 0; }
.faq-list details:last-child { border-radius:0 0 14px 14px; }
.faq-list summary:hover { color:var(--clay); }
.faq-list summary span { flex:none; }
.faq-list summary:focus-visible { outline-offset:-3px; border-radius:6px; }
.contact-layout form { padding:30px; border:1px solid var(--line); border-radius:18px; background:var(--surface); box-shadow:var(--shadow-soft); min-width:0; }
.contact-details { padding:24px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.contact-details .text-link { overflow-wrap:anywhere; }
input,select,textarea { background:#fff; }
.scope-note { border:1px solid var(--line); border-left:3px solid var(--clay); border-radius:12px; }
.tag,.status { border-radius:999px; }
@media(max-width:580px) {
  .hero .eyebrow { max-width:100%; }
  .eyebrow { font-size:.68rem; letter-spacing:.045em; }
  .contact-layout form,.contact-details { padding:20px; }
  .faq-list details { padding-inline:18px; }
  .faq-list p { padding-right:0; }
  .situations>div { padding:18px; gap:18px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .button,.service-card,.site-header nav>a,.nav-item>a { transition:none; }
  .button:hover,.service-card:hover { transform:none; }
}

/* Locations hub and city pages. */
.breadcrumb { font-size:.8rem; color:var(--muted); margin-bottom:18px; }
.breadcrumb a { border-bottom:1px solid transparent; }
.breadcrumb a:hover { color:var(--clay); border-color:var(--clay); }
.breadcrumb span[aria-hidden] { margin:0 8px; color:#b7bcac; }
.location-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.location-card .eyebrow { margin-bottom:18px; }
.location-card p:not(.eyebrow) { min-height:0; }
.related-locations { display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:28px; }
.related-locations a { font-size:.85rem; font-weight:650; color:var(--forest); border-bottom:1px solid #afb6a5; padding:5px 0; }
.related-locations a:hover { color:#77432f; border-color:var(--clay); }
.footer-locations { display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline; row-gap:8px; column-gap:0; border-top:1px solid #ffffff18; margin-top:32px; padding-top:22px; padding-bottom:8px; font-size:.78rem; border-color:#d7ddcd; }
.footer-locations-label { color:#4f6049; font-weight:650; white-space:nowrap; margin-right:16px; }
.footer-locations a:hover { color:var(--clay); }
.footer-locations a:not(:last-child)::after { content:"|"; margin:0 12px; color:#afb6a5; }
@media(max-width:800px) {
  .location-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:580px) {
  .location-grid { grid-template-columns:1fr; }
  .footer-locations a:not(:last-child)::after { margin:0 9px; }
}

/* Keep parent navigation links separate from keyboard-accessible submenu controls. */
.nav-item { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; }
.nav-toggle { display:grid; place-items:center; min-width:32px; min-height:44px; border:0; border-radius:8px; background:transparent; color:inherit; padding:0 6px; }
.nav-toggle:hover { background:#e9ecdf; }
.nav-toggle .caret { font-size:14px; }
@media(max-width:1100px) {
  .nav-toggle { min-width:44px; }
  .nav-item .dropdown { grid-column:1/-1; max-height:none; overflow:visible; }
}

.footer-grid > div { min-width:0; overflow-wrap:anywhere; }

/* Service and coverage imagery: full-width photographs beneath readable card copy. */
.visual-card.service-card,.visual-card.package { padding:0; overflow:hidden; background:#fffdf8; }
.visual-card .card-copy { display:flex; flex-direction:column; flex:1; padding:32px 30px 0; }
.visual-card.package .card-copy { padding:32px 32px 0; }
.visual-card .card-media { flex:none; margin-top:18px; aspect-ratio:3/2; overflow:hidden; mask-image:linear-gradient(to bottom,transparent 0%,#000 17%); }
.visual-card .card-media img { display:block; width:100%; height:100%; object-fit:cover; }
.visual-card.location-card .card-media { aspect-ratio:16/10; }
@media (min-width:761px) and (max-width:1100px) {
  .visual-card .card-copy { padding:24px 18px 0; }
}
@media (max-width:760px) {
  .visual-card .card-copy,.visual-card.package .card-copy { padding:27px 27px 0; }
}

/* Walailak-style navigation: CSS hover/focus opening and compact dropdown links.
   Keep desktop menus usable even before JavaScript has loaded. */
@media(min-width:1101px) {
  .nav-item { column-gap:4px; }
  .nav-toggle { min-width:24px; padding:0 4px; }
  .nav-toggle .caret { font-size:10px; }
  .nav-item .dropdown { display:block; left:-10px; width:max-content; min-width:210px; max-width:290px; padding:8px; z-index:20; border-radius:8px; box-shadow:0 16px 32px #35493e20; }
  .nav-item .dropdown a { padding:8px 12px; font-size:13px; line-height:1.5; }
  .nav-item:not(.submenu-dismissed):hover .dropdown,
  .nav-item:not(.submenu-dismissed):focus-within .dropdown,
  .nav-item.submenu-open .dropdown { opacity:1; visibility:visible; transform:translateY(0); }
  .nav-item:not(.submenu-dismissed):hover .caret,
  .nav-item:not(.submenu-dismissed):focus-within .caret { transform:rotate(180deg); }
  .nav-item .dropdown a:hover,.nav-item .dropdown a:focus-visible { color:var(--clay); background:var(--soft); }
}
@media(max-width:1100px) {
  .nav-item .dropdown { width:auto; margin:2px 0 2px 16px; padding:0 0 0 12px; border:0; border-left:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
  .nav-item .dropdown a { padding:8px 0; font-size:.85rem; }
}

/* Premium forest-and-champagne direction, following the approved homepage reference. */
:root { --forest:#1c3026; --forest-deep:#122219; --gold:#CFA559; --gold-light:#CFA559; --gold-button:linear-gradient(180deg,#DDB76C,#C79C4D); --ink:#233029; --soft:#f0eee7; --line:#deddd4; }
.site-header { background:#faf9f5; }
.site-header .header-inner { min-height:88px; }




.site-header nav { gap:24px; font-size:14px; }
.site-header nav>a[aria-current="page"] { color:var(--ink); text-decoration:underline; text-decoration-color:#bc955b; text-underline-offset:10px; text-decoration-thickness:1px; }
.site-header .button.small { background:var(--forest-deep); padding:13px 24px; }


.premium-home .hero { position:relative; display:flex; align-items:center; min-height:590px; overflow:hidden; background:#102018; color:#fffdf8; }
.premium-home .hero picture { position:absolute; inset:0; width:100%; height:100%; border-radius:0; }
.premium-home .hero picture img { width:100%; height:100%; object-fit:cover; object-position:center 58%; }
.premium-home .hero-shade { display:block; position:absolute; inset:0; background:linear-gradient(90deg,rgba(9,22,15,.97) 0%,rgba(9,22,15,.84) 30%,rgba(9,22,15,.36) 58%,rgba(9,22,15,.04) 82%); }
.premium-home .hero-content { position:relative; z-index:1; padding-block:60px 48px; }
.premium-home .hero .eyebrow { display:block; width:auto; max-width:730px; background:none; border:0; border-radius:0; padding:0; color:var(--gold-light); font-size:12px; letter-spacing:.2em; line-height:1.7; margin-bottom:20px; }
.premium-home .hero h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(40px,4.05vw,62px); font-weight:400; line-height:1.06; letter-spacing:-.02em; max-width:730px; margin-bottom:24px; color:#fffdf8; }
.premium-home .hero h1 span { color:var(--gold-light); }
.premium-home .hero-content>p.hero-intro { max-width:590px; font-size:18px; line-height:1.7; color:#f4f3ed; margin-bottom:28px; }
.premium-home .hero-actions { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; max-width:750px; gap:16px; margin-top:0; }
.premium-home .hero-actions .button { background:linear-gradient(115deg,#CFA559,#CFA559); color:#19251c; border:1px solid #CFA559; font-size:14px; font-weight:650; padding:15px 26px; gap:20px; }
.premium-home .hero-actions .button:hover { background:#CFA559; transform:translateY(-2px); }
.premium-home .hero-actions .hero-secondary { background:transparent; color:#fffdf8; border-color:#d3d8cd; }
.premium-home .hero-actions .hero-secondary:hover { background:#ffffff15; }
.premium-home .hero :focus-visible { outline-color:var(--gold-light); }
.hero-assurances { display:flex; flex-wrap:wrap; gap:22px; list-style:none; padding:0; margin:25px 0 0; }
.hero-assurances li { display:flex; align-items:center; gap:8px; color:#fffdf8; font-size:12px; }
.hero-assurances svg { flex:none; width:30px; height:30px; color:var(--gold); border:1px solid #c6a66d90; border-radius:50%; padding:5px; }
.premium-home .hero-caption { position:absolute; right:4.8%; bottom:28px; z-index:1; max-width:240px; padding:0 0 12px; margin:0; background:none; color:#fff9ed; border-radius:0; font-family:Georgia,'Times New Roman',serif; font-style:italic; text-align:right; font-size:13px; line-height:1.45; text-shadow:0 2px 8px #000b; }
.premium-home .hero-caption::after { content:''; display:block; margin:10px 0 0 auto; width:56px; height:1px; background:var(--gold); }
.journey-band { background:linear-gradient(110deg,#17291f,#1c3026); color:#fffdf8; padding:28px 0 32px; }
.journey-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.journey-item { display:flex; flex-direction:column; align-items:center; text-align:center; padding:0 16px; position:relative; }
.journey-item + .journey-item { border-left:1px solid #b7c2af28; }
.journey-icon { display:grid; place-items:center; width:58px; height:58px; border:1px solid #c2a26a9c; color:var(--gold); border-radius:50%; margin-bottom:12px; }
.journey-icon svg { width:32px; height:32px; }
.journey-item h2 { font-size:18px; color:#fffdf8; margin-bottom:8px; line-height:1.2; }
.journey-item p { font-size:.8rem; line-height:1.55; margin:0; color:#eee; max-width:272px; }
.journey-item:hover h2 { color:var(--gold-light); }
.journey-item:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.support-band { padding:24px 0 30px; background:#f5f3ed; border-bottom:1px solid var(--line); }
.support-label { text-align:center; font-size:10px; letter-spacing:.2em; margin-bottom:24px; }
.support-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.support-item { display:flex; gap:15px; align-items:center; padding:0 22px; }
.support-item + .support-item { border-left:1px solid #26382b25; }
.support-item svg { width:34px; height:34px; flex:none; }
.support-item h2 { font:500 14px/1.4 Inter,Arial,sans-serif; margin-bottom:5px; }
.support-item p { font-size:8px; line-height:1.6; letter-spacing:.12em; margin:0; }
.due-diligence-section { background:#f0eee6; }
.due-diligence-details { background:#fffdf8; padding:30px; border:1px solid var(--line); border-radius:16px; }
.specialist-note { font-size:.85rem; color:var(--muted); margin-bottom:0; }
.premium-home .grounded { background:var(--forest); }
.lang-th.premium-home .hero h1 { font-family:'Noto Sans Thai',sans-serif; font-size:clamp(34px,3.3vw,52px); line-height:1.35; }
.lang-th .journey-item h2 { font-family:'Noto Sans Thai',sans-serif; }
@media(max-width:1200px) and (min-width:1101px) {
  .site-header nav { gap:12px; font-size:12px; }
  .site-header .header-inner { gap:20px; }


  .site-header .button.small { padding:12px 16px; font-size:12px; }
}
@media(max-width:1100px) {

  .site-header nav { font-size:14px; gap:10px; }
  .site-header .header-inner { min-height:80px; }

  .premium-home .hero h1 { max-width:650px; }
  .premium-home .hero-content>p.hero-intro { max-width:560px; }
  .premium-home .hero-caption { display:none; }
  .premium-home .hero-shade { background:linear-gradient(90deg,#0c1a13ed,#0c1a13a8 70%,#0c1a1350); }
  .journey-item { padding:0 16px; }
  .support-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 0; }
  .support-item:nth-child(3) { border-left:0; }
}
@media(max-width:650px) {

  .premium-home .hero { min-height:0; }
  .premium-home .hero picture img { object-position:65% center; }
  .premium-home .hero-shade { background:linear-gradient(90deg,#0b1913f2,#0b1913b8),linear-gradient(0deg,#0b191388,transparent); }
  .premium-home .hero-content { padding:46px 0 38px; }
  .premium-home .hero .eyebrow { font-size:10px; letter-spacing:.15em; margin-bottom:22px; }
  .premium-home .hero h1 { font-size:clamp(35px,8.5vw,46px); line-height:1.1; max-width:100%; }
  .premium-home .hero-content>p.hero-intro { max-width:100%; font-size:15px; line-height:1.75; }
  .premium-home .hero-actions { align-items:stretch; flex-direction:column; max-width:100%; gap:12px; }
  .premium-home .hero-actions .button { justify-content:space-between; padding:14px 21px; }
  .hero-assurances { flex-direction:column; gap:12px; margin-top:24px; }
  .hero-assurances li { font-size:12px; }
  .journey-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 0; }
  .journey-item { padding:0 12px; }
  .journey-item:nth-child(3) { border-left:0; }
  .journey-item h2 { font-size:16px; }
  .journey-item p { font-size:12px; }
  .support-item { padding:0 12px; flex-direction:column; align-items:flex-start; gap:10px; }
  .support-item h2 { font-size:12px; }
  .support-item p { font-size:8px; letter-spacing:.07em; }
  .due-diligence-details { padding:22px; }
}


@media(max-width:580px) {



  .site-header .menu-toggle { font-size:13px; padding:10px 14px; }
}

/* Shared full-bleed hero theme. Content uses the site's existing container margins. */
.page-hero { display:flex; align-items:center; min-height:440px; padding:64px 0; background:#102018; color:#fffdf8; }
.page-hero-media { inset:0; width:100%; height:100%; border-radius:0; }
.page-hero-media img { object-fit:cover; object-position:center 35%; }
.page-hero-media::after { background:linear-gradient(90deg,rgba(9,22,15,.96) 0%,rgba(9,22,15,.84) 32%,rgba(9,22,15,.46) 66%,rgba(9,22,15,.15) 100%); }
.page-hero .container { z-index:1; }
.page-hero h1 { max-width:760px; font-size:clamp(36px,3.6vw,54px); line-height:1.1; color:#fffdf8; margin-bottom:24px; }
.page-hero .hero-emphasis { color:var(--gold-light); }
.page-hero .eyebrow { display:block; width:auto; max-width:760px; border:0; border-radius:0; padding:0; background:none; color:var(--gold-light); font-size:12px; letter-spacing:.18em; }
.page-hero .lead { color:#f4f3ed; max-width:650px; font-size:17px; line-height:1.75; }
.page-hero .breadcrumb { color:#ecebe4; margin-bottom:25px; }
.page-hero .breadcrumb a:hover { color:var(--gold-light); border-color:var(--gold-light); }
.page-hero .breadcrumb span[aria-hidden] { color:#c8c9bc; }
.page-hero::after { background:var(--gold); }
.page-hero .button { background:var(--gold); color:#17271c; }
.page-hero :focus-visible { outline-color:var(--gold-light); }
.lang-th .page-hero h1 { font-family:'Noto Sans Thai',sans-serif; line-height:1.35; }
@media(max-width:800px) {
  .page-hero { min-height:400px; padding:48px 0; }
  .page-hero h1 { font-size:clamp(32px,5vw,44px); }
  .page-hero-media::after { background:linear-gradient(90deg,#0c1a13ed,#0c1a13b8 75%,#0c1a1388); }
}
@media(max-width:580px) {
  .page-hero { min-height:360px; padding:38px 0 44px; }
  .page-hero h1 { font-size:32px; }
  .page-hero .eyebrow { font-size:10px; letter-spacing:.13em; }
  .page-hero .lead { font-size:15px; }
  .page-hero .breadcrumb { font-size:11px; margin-bottom:22px; }
  .page-hero-media::after { background:#0b1913ce; }
}

/* Hero images run edge to edge; only the text follows the standard page margins. */
.premium-home .hero picture,
.premium-home .hero-shade,
.page-hero-media {
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  border-radius:0;
  overflow:hidden;
}
.premium-home .hero picture img { object-position:center 58%; }
.premium-home .hero-shade {
  background:linear-gradient(90deg,rgba(9,22,15,.97) 0%,rgba(9,22,15,.84) 30%,rgba(9,22,15,.36) 58%,rgba(9,22,15,.04) 82%);
}
.page-hero-media::after {
  background:linear-gradient(90deg,rgba(9,22,15,.96) 0%,rgba(9,22,15,.84) 32%,rgba(9,22,15,.46) 66%,rgba(9,22,15,.15) 100%);
}
.premium-home .hero-caption { right:var(--hero-gutter); bottom:36px; }
@media(max-width:800px) {
  .premium-home .hero-shade,.page-hero-media::after {
    background:linear-gradient(90deg,rgba(16,32,24,.96),rgba(16,32,24,.84) 65%,rgba(16,32,24,.6));
  }
}

/* Keep the existing logo and menu height; use the space beneath the wordmark. */
.site-header .brand-tagline {
  position:absolute;
  top:calc(100% - 2px);
  left:0;
  width:100%;
  text-align:center;
  font-family:Inter,sans-serif;
  font-size:5.5px;
  font-weight:500;
  line-height:1.5;
  letter-spacing:.08em;
  color:var(--ink);
  white-space:nowrap;
}

/* Language dropdown: the label shows the current language, the list offers the other three. */
.lang-item { justify-self:start; }
.lang-item .lang-toggle { display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:0 12px; border:1px solid var(--line); border-radius:22px; font:inherit; font-size:.85rem; font-weight:650; color:var(--forest); cursor:pointer; }
.lang-item .lang-toggle svg { width:16px; height:16px; flex:none; }
.lang-item .lang-toggle .caret { font-size:12px; }
.lang-item .lang-toggle:hover { background:#e9ecdf; }
.lang-item .lang-toggle:focus-visible { outline:2px solid var(--forest); outline-offset:2px; }
.lang-item .dropdown a { display:flex; align-items:baseline; justify-content:space-between; gap:20px; white-space:nowrap; }
.lang-item .lang-code { color:var(--muted); font-size:.72rem; font-weight:650; letter-spacing:.06em; }
@media(min-width:1101px) {
  .lang-item .dropdown { left:auto; right:0; min-width:170px; }
}
@media(max-width:1100px) {
  .lang-item { align-self:flex-start; }
  .lang-item .lang-toggle { justify-self:start; }
  .lang-item .dropdown { min-width:220px; }
}

/* Hero type scale, following the Walailaklaw hero: 44px headline (32px on phones), 16.5px sub-text
   capped at 520px; inner-page heroes use a 32px heading with 14.5px sub-text. */
.premium-home .hero h1 { font-size:44px; line-height:1.15; letter-spacing:-.01em; }
.premium-home .hero-content>p.hero-intro { font-size:16.5px; line-height:1.7; max-width:520px; color:#d3d6cc; }
.page-hero h1 { font-size:32px; line-height:1.2; }
.page-hero .lead { font-size:14.5px; line-height:1.7; max-width:520px; color:#d3d6cc; }
.lang-th.premium-home .hero h1 { font-size:40px; line-height:1.35; }
@media(max-width:560px) {
  .premium-home .hero h1 { font-size:32px; line-height:1.2; }
  .lang-th.premium-home .hero h1 { font-size:30px; line-height:1.35; }
}

/* Hero eyebrow as a pill badge, following the Walailaklaw location tag. */
.premium-home .hero .eyebrow,
.page-hero .eyebrow {
  display:inline-flex;
  align-items:center;
  width:auto;
  max-width:100%;
  padding:5px 12px;
  border:1px solid rgba(207,165,89,.42);
  border-radius:999px;
  background:rgba(207,165,89,.14);
  color:var(--gold-light);
  font-size:12px;
  font-weight:600;
  letter-spacing:.06em;
  line-height:1.5;
  text-transform:uppercase;
}
.premium-home .hero .eyebrow { margin-bottom:20px; }
.lang-th .hero .eyebrow,.lang-th .page-hero .eyebrow { letter-spacing:.02em; }
@media(max-width:560px) {
  .premium-home .hero .eyebrow,.page-hero .eyebrow { font-size:11px; letter-spacing:.04em; border-radius:16px; }
}

/* How we work: a connected four-step timeline and a dark "agreed up front" panel. */
.process-steps { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.process-steps>li { position:relative; padding-right:8px; }
.step-badge { position:relative; z-index:1; display:grid; place-items:center; width:54px; height:54px; margin-bottom:24px; border-radius:50%; background:var(--forest); color:var(--gold-light); font-family:Georgia,'Times New Roman',serif; font-size:1.05rem; letter-spacing:.02em; box-shadow:0 0 0 6px #faf8f2,0 0 0 7px rgba(155,80,58,.28),0 10px 22px -8px rgba(18,34,25,.55); transition:background .25s ease,color .25s ease,transform .25s ease; }
.process-steps>li:not(:last-child)::after { content:''; position:absolute; top:26px; left:66px; width:calc(100% - 60px + 24px - 12px); height:2px; background:repeating-linear-gradient(90deg,rgba(155,80,58,.55) 0 8px,transparent 8px 14px); }
.process-steps>li:hover .step-badge { background:var(--clay); color:#fffdf8; transform:translateY(-3px); }
.process-steps h3 { margin:0 0 10px; font-size:1.2rem; line-height:1.25; }
.process-steps p { margin:0; color:var(--muted); font-size:.95rem; line-height:1.7; }
.expectations { background:radial-gradient(60% 90% at 100% 0%,rgba(207,165,89,.13),transparent 62%),linear-gradient(135deg,#1f3529 0%,#122219 70%); color:#fffdf8; }
.expectations { padding:72px 0 76px; }
.expect-grid { display:block; }
.expect-intro { margin-bottom:36px; }
.expectations .eyebrow { color:var(--gold-light); }
.expectations h2 { color:#fffdf8; margin-bottom:0; }
.expectations h2::after { content:''; display:block; width:54px; height:3px; margin-top:20px; border-radius:999px; background:var(--gold); }
.agree-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.agree-list>li { display:flex; flex-direction:column; align-items:flex-start; gap:16px; padding:22px 20px; border:1px solid rgba(207,165,89,.2); border-radius:16px; background:rgba(255,255,255,.045); transition:transform .25s ease,border-color .25s ease,background .25s ease; }
.agree-list>li:hover { transform:translateY(-4px); border-color:rgba(207,165,89,.55); background:rgba(255,255,255,.08); }
.agree-icon { flex:none; display:grid; place-items:center; width:46px; height:46px; border-radius:14px; border:1px solid rgba(207,165,89,.35); background:rgba(207,165,89,.1); color:var(--gold-light); }
.agree-icon svg { width:22px; height:22px; }
.agree-text { color:#eef0e8; font-size:1rem; line-height:1.55; }
@media(max-width:1000px) {
  .process-steps { grid-template-columns:1fr; gap:0; max-width:680px; }
  .process-steps>li { padding:0 0 34px 78px; min-height:74px; }
  .process-steps>li:last-child { padding-bottom:0; }
  .step-badge { position:absolute; left:0; top:0; margin:0; }
  .process-steps>li:not(:last-child)::after { top:66px; left:26px; width:2px; height:calc(100% - 66px); background:repeating-linear-gradient(180deg,rgba(155,80,58,.55) 0 8px,transparent 8px 14px); }
  .process-steps h3 { padding-top:12px; }
  .agree-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:720px) { .agree-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .expectations { padding:56px 0 60px; } }
@media(max-width:560px) {
  .agree-list { grid-template-columns:1fr; gap:10px; }
  .agree-list>li { flex-direction:row; align-items:center; padding:14px 16px 14px 14px; gap:14px; }
  .agree-list>li:hover { transform:none; }
}
@media(prefers-reduced-motion:reduce) { .step-badge,.agree-list>li { transition:none; } .process-steps>li:hover .step-badge,.agree-list>li:hover { transform:none; } }

/* The due-diligence band is light, so it needs dark-on-light text (it also carries the .grounded class). */
.grounded.due-diligence-section .eyebrow,.grounded.due-diligence-section .split>div>.eyebrow { color:var(--clay); }
.grounded.due-diligence-section h2 { color:var(--ink); }
.grounded.due-diligence-section .split>div>p,.grounded.due-diligence-section p { color:var(--muted); }

/* Homepage "questions that matter": four question-and-answer cards that fill with forest green on hover. */
.qa-intro { max-width:600px; }
.qa-intro p { color:var(--muted); margin-bottom:14px; }
.qa-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.qa-card { position:relative; display:flex; flex-direction:column; padding:28px 24px 26px; background:#fffdf8; border:1px solid var(--line); border-radius:18px; overflow:hidden; transition:transform .3s ease,background .3s ease,border-color .3s ease,box-shadow .3s ease; }
.qa-card::before { content:'\201C'; position:absolute; right:16px; top:0; font:400 96px/1 Georgia,'Times New Roman',serif; color:rgba(155,80,58,.14); transition:color .3s ease; pointer-events:none; }
.qa-num { margin-bottom:18px; font-size:.75rem; font-weight:700; letter-spacing:.14em; color:var(--clay); transition:color .3s ease; }
.qa-q { position:relative; margin:0 0 20px; font:400 1.12rem/1.4 Georgia,'Times New Roman',serif; color:var(--ink); transition:color .3s ease; }
.qa-a { position:relative; margin:auto 0 0; padding-top:18px; border-top:1px solid var(--line); font-size:.9rem; line-height:1.65; color:var(--muted); transition:color .3s ease,border-color .3s ease; }
.qa-a::before { content:''; position:absolute; left:0; top:-1px; width:36px; height:2px; background:var(--clay); transition:width .3s ease,background .3s ease; }
.lang-th .qa-q { font-family:'Noto Sans Thai',sans-serif; line-height:1.55; }
@media(hover:hover) {
  .qa-card:hover,.qa-card:focus-within { transform:translateY(-6px); background:linear-gradient(160deg,#25392d 0%,#122219 100%); border-color:transparent; box-shadow:0 26px 40px -24px rgba(18,34,25,.6); }
  .qa-card:hover::before,.qa-card:focus-within::before { color:rgba(207,165,89,.18); }
  .qa-card:hover .qa-num,.qa-card:focus-within .qa-num { color:var(--gold-light); }
  .qa-card:hover .qa-q,.qa-card:focus-within .qa-q { color:#fffdf8; }
  .qa-card:hover .qa-a,.qa-card:focus-within .qa-a { color:#dfe5d8; border-color:rgba(207,165,89,.28); }
  .qa-card:hover .qa-a::before,.qa-card:focus-within .qa-a::before { width:64px; background:var(--gold); }
}
@media(max-width:1000px) { .qa-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .qa-grid { grid-template-columns:1fr; } .qa-intro { max-width:none; margin-top:20px; } }
@media(prefers-reduced-motion:reduce) { .qa-card,.qa-card::before,.qa-num,.qa-q,.qa-a,.qa-a::before { transition:none; } .qa-card:hover { transform:none; } }

/* Section intro paragraphs share one width so they read as about three lines. */
.qa-intro { max-width:545px; }
.section-heading>.section-intro { max-width:500px; }
.section-heading>.section-intro { color:var(--muted); }

/* Service cards: full-bleed photo tiles with the copy set over a deep-green fade. */
.service-grid .visual-card.service-card { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:400px; padding:0; border:0; border-radius:22px; overflow:hidden; isolation:isolate; background:#122219; box-shadow:0 22px 44px -28px rgba(18,34,25,.7); transition:transform .4s ease,box-shadow .4s ease; }
.service-grid .visual-card.service-card::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(9,22,15,.08) 0%,rgba(9,22,15,.3) 38%,rgba(9,22,15,.93) 100%); transition:opacity .4s ease; }
.service-grid .visual-card.service-card .card-media { position:absolute; inset:0; z-index:-2; margin:0; aspect-ratio:auto; mask-image:none; -webkit-mask-image:none; overflow:hidden; }
.service-grid .visual-card.service-card .card-media img { width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
.service-grid .visual-card.service-card .card-copy { position:static; flex:none; padding:0 26px 26px; }
.service-grid .visual-card.service-card .card-number { position:absolute; top:20px; left:22px; width:auto; height:auto; padding:6px 13px; border:1px solid rgba(207,165,89,.5); border-radius:999px; background:rgba(16,32,24,.5); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); color:var(--gold-light); font-size:.75rem; font-weight:700; letter-spacing:.14em; }
.service-grid .visual-card.service-card h3 { margin:0 0 8px; color:#fffdf8; font-size:1.35rem; line-height:1.25; }
.service-grid .visual-card.service-card p { margin:0 0 16px; color:#e3e8dc; font-size:.9rem; line-height:1.6; }
.service-grid .visual-card.service-card .card-link { align-self:flex-start; padding-bottom:4px; border-bottom:1px solid rgba(207,165,89,.5); color:var(--gold-light); font-size:.85rem; font-weight:600; transition:border-color .3s ease,letter-spacing .3s ease; }
.service-grid .visual-card.service-card:hover,.service-grid .visual-card.service-card:focus-visible { transform:translateY(-6px); box-shadow:0 32px 50px -26px rgba(18,34,25,.85); }
.service-grid .visual-card.service-card:hover .card-media img { transform:scale(1.07); }
.service-grid .visual-card.service-card:hover .card-link { border-color:var(--gold); letter-spacing:.02em; }
/* Five services: one tall feature tile beside a 2 x 2 block. */
.service-grid.svc-bento { grid-template-columns:1.15fr 1fr 1fr; grid-auto-rows:minmax(300px,auto); gap:18px; }
.service-grid.svc-bento .visual-card.service-card { min-height:300px; }
.service-grid.svc-bento .visual-card.service-card:first-child { grid-row:span 2; min-height:620px; }
.service-grid.svc-bento .visual-card.service-card:first-child h3 { font-size:1.8rem; }
.service-grid.svc-bento .visual-card.service-card:first-child p { font-size:.98rem; max-width:34ch; }
@media(max-width:1000px) {
  .service-grid.svc-bento { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .service-grid.svc-bento .visual-card.service-card:first-child { grid-row:auto; grid-column:1/-1; min-height:400px; }
}
@media(max-width:620px) {
  .service-grid.svc-bento { grid-template-columns:1fr; }
  .service-grid .visual-card.service-card,.service-grid.svc-bento .visual-card.service-card { min-height:340px; }
  .service-grid.svc-bento .visual-card.service-card:first-child { min-height:380px; }
}
@media(prefers-reduced-motion:reduce) { .service-grid .visual-card.service-card,.service-grid .visual-card.service-card .card-media img,.service-grid .visual-card.service-card .card-link { transition:none; } .service-grid .visual-card.service-card:hover { transform:none; } .service-grid .visual-card.service-card:hover .card-media img { transform:none; } }

/* "Someone to speak to": four glass pillars beside the heading. */
.pillars-section { background:radial-gradient(55% 80% at 0% 100%,rgba(207,165,89,.11),transparent 62%),linear-gradient(135deg,#1e3428 0%,#122219 72%); color:#fffdf8; }
.pillars-grid { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:64px; align-items:center; }
.pillars-section .eyebrow { color:var(--gold-light); }
.pillars-section h2 { color:#fffdf8; margin-bottom:0; }
.pillars-section h2::after { content:''; display:block; width:54px; height:3px; margin:20px 0 26px; border-radius:999px; background:var(--gold); }
.pillars-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; counter-reset:pillar; }
.pillar { position:relative; overflow:hidden; counter-increment:pillar; padding:26px 26px 24px; border:1px solid rgba(207,165,89,.2); border-radius:20px; background:linear-gradient(160deg,rgba(255,255,255,.075),rgba(255,255,255,.02)); transition:transform .3s ease,border-color .3s ease,background .3s ease; }
.pillar::after { content:'0' counter(pillar); position:absolute; right:18px; top:6px; font:400 68px/1 Georgia,'Times New Roman',serif; color:rgba(207,165,89,.09); pointer-events:none; }
.pillar:hover { transform:translateY(-5px); border-color:rgba(207,165,89,.55); background:linear-gradient(160deg,rgba(255,255,255,.11),rgba(255,255,255,.03)); }
.pillar-icon { display:grid; place-items:center; width:46px; height:46px; margin-bottom:18px; border:1px solid rgba(207,165,89,.4); border-radius:14px; background:rgba(207,165,89,.1); color:var(--gold-light); }
.pillar-icon svg { width:22px; height:22px; }
.pillar h3 { margin:0 0 8px; color:#fffdf8; font-family:Georgia,'Times New Roman',serif; font-size:1.2rem; font-weight:400; line-height:1.3; }
.lang-th .pillar h3 { font-family:'Noto Sans Thai',sans-serif; font-weight:600; }
.pillar p { position:relative; margin:0; color:#dbe1d3; font-size:.92rem; line-height:1.65; }
@media(max-width:1000px) { .pillars-grid { grid-template-columns:1fr; gap:36px; } }
@media(max-width:560px) { .pillars-list { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .pillar { transition:none; } .pillar:hover { transform:none; } }

/* "Someone to speak to": light, horizontal row of four pillars. */
.pillars-section { background:#fffdf8; color:var(--ink); }
.pillars-grid { display:block; }
.pillars-intro { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:18px 40px; margin-bottom:38px; }
.pillars-intro .eyebrow { flex:0 0 100%; margin:0 0 6px; }
.pillars-section .eyebrow { color:var(--clay); }
.pillars-section h2 { color:var(--forest); margin:0; }
.pillars-section h2::after { margin:18px 0 0; background:var(--clay); }
.pillars-intro .process-link { margin:0 0 4px; color:var(--forest); border-color:#afb6a5; }
.pillars-intro .process-link:hover { color:#77432f; border-color:var(--clay); }
.pillars-list { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.pillar { padding:26px 22px 24px; border:1px solid #dfe5d3; border-radius:20px; background:linear-gradient(170deg,#f1f4ea,#e8ede0); box-shadow:none; }
.pillar::after { color:rgba(155,80,58,.1); }
.pillar:hover { transform:translateY(-5px); border-color:#b9c4a8; background:linear-gradient(170deg,#f5f8ee,#e9eee1); box-shadow:0 18px 32px -22px rgba(28,48,38,.45); }
.pillar-icon { border:1px solid #c9d3b9; background:#fffdf8; color:var(--forest); }
.pillar h3 { color:var(--forest); font-size:1.12rem; }
.pillar p { color:#56635a; font-size:.88rem; }
@media(max-width:1000px) { .pillars-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .pillars-list { grid-template-columns:1fr; } }

/* Footer: deep forest, with a lighter coverage bar. */
.site-footer { background:radial-gradient(60% 90% at 0% 100%,rgba(207,165,89,.09),transparent 62%),linear-gradient(135deg,#1e3428 0%,#122219 72%); color:#d3dccb; }
.site-footer .wordmark,.footer-grid h2 { color:#fffdf8; }
.footer-grid h2 { border-bottom-color:var(--gold); }
.footer-grid>div>p,.footer-grid .note { color:#c5cfbd; }
.footer-grid a:not(.channel-link) { color:#e3e9dc; }
.footer-grid a:not(.channel-link):hover { color:var(--gold-light); }
.footer-locations a:hover { color:var(--gold-light); }
.footer-bottom { border-color:rgba(207,165,89,.16); color:#a9b5a1; }
.footer-locations { border-top:0; margin-top:34px; padding-top:16px; padding-bottom:16px; background:#2b4436; box-shadow:0 0 0 100vmax #2b4436; clip-path:inset(0 -100vmax); color:#e3e9dc; }
.footer-locations-label { color:var(--gold-light); }
.footer-locations a { color:#e3e9dc; }
.footer-locations a:not(:last-child)::after { color:rgba(207,165,89,.45); }
.footer-channels .channel-link { border-color:transparent; }
.site-footer :focus-visible { outline-color:var(--gold-light); }

/* Closing band: clay-to-gold rule, house watermark and the four contact icons. */
.closing { position:relative; overflow:hidden; isolation:isolate; }
.closing::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--clay),var(--gold)); }
.closing::after { content:''; position:absolute; z-index:-1; right:max(-40px,calc((100% - 1200px)/2 - 60px)); top:50%; width:340px; height:340px; transform:translateY(-50%); opacity:.6; pointer-events:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23c9d3b9' stroke-width='3' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M20 100 100 30l80 70'/%3E%3Cpath d='M40 90v80h120V90'/%3E%3Cpath d='M85 170v-45h30v45'/%3E%3Ccircle cx='100' cy='92' r='3' fill='%23c9d3b9'/%3E%3C/svg%3E") center/contain no-repeat; }
.closing-actions { display:flex; flex-direction:column; align-items:flex-end; gap:22px; }
.closing-channels { display:flex; gap:12px; margin:0; }
.closing-channels .channel-link { width:52px; height:52px; flex:0 0 52px; border-color:#cdd6bf; background:#fffdf8; }
.closing-channels .channel-link svg,.closing-channels .channel-link img { width:26px; height:26px; }
.closing-channels .channel-whatsapp svg { width:30px; height:30px; }
@media(max-width:800px) { .closing-actions { align-items:flex-start; } .closing::after { opacity:.35; right:-90px; } }

/* Closing band: text, contact icons and inquiry button share one row. */
.closing-inner { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:32px; }
.closing-inner>.button { justify-self:end; }
.closing-channels { justify-self:center; }
.footer-bottom { align-items:center; }
.footer-legal a { color:inherit; border-bottom:1px solid rgba(207,165,89,.35); padding-bottom:1px; }
.footer-legal a:hover { color:var(--gold-light); border-color:var(--gold-light); }
@media(max-width:900px) { .closing-inner { grid-template-columns:1fr; justify-items:start; gap:26px; } .closing-inner>.button,.closing-channels { justify-self:start; } }

/* About page: the homepage design language (numbered cards, forest panel, coverage chips). */
.ab-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:20px 56px; margin-bottom:38px; }
.ab-head h2 { margin:0; }
.ab-head h2::after { content:''; display:block; width:54px; height:3px; margin:20px 0 0; border-radius:999px; background:var(--clay); }
.ab-head .eyebrow { margin-bottom:10px; }
.ab-lead { margin:0; max-width:520px; color:var(--muted); line-height:1.7; }
.ab-duo { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.ab-card { position:relative; overflow:hidden; padding:34px 34px 32px; border:1px solid var(--line); border-radius:22px; background:#fffdf8; box-shadow:0 18px 40px -32px rgba(28,48,38,.45); transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease; }
.ab-card::before { content:''; position:absolute; left:34px; top:0; width:48px; height:3px; border-radius:0 0 3px 3px; background:var(--clay); }
.ab-card:hover { transform:translateY(-5px); border-color:#cfd5c2; box-shadow:0 28px 44px -30px rgba(28,48,38,.55); }
.ab-num { display:block; margin-bottom:16px; color:var(--clay); font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.ab-card h3 { margin:0 0 12px; font-family:Georgia,'Times New Roman',serif; font-size:1.45rem; font-weight:400; line-height:1.3; color:var(--forest); }
.lang-th .ab-card h3,.lang-th .ab-glass p { font-family:'Noto Sans Thai',sans-serif; }
.ab-card p { margin:0; color:var(--muted); line-height:1.7; font-size:.95rem; }
.ab-intro { background:#faf8f2; }
.ab-roles { background:#faf8f2; }
.ab-note { margin:22px 0 0; padding:20px 26px; border-left:3px solid var(--clay); border-radius:0 16px 16px 0; background:#f0eee7; color:var(--muted); font-size:.9rem; line-height:1.7; }

.ab-dark { background:radial-gradient(55% 80% at 0% 100%,rgba(207,165,89,.11),transparent 62%),linear-gradient(135deg,#1e3428 0%,#122219 72%); color:#fffdf8; }
.ab-dark-grid { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:64px; align-items:center; }
.ab-dark .eyebrow { color:var(--gold-light); }
.ab-dark h2 { color:#fffdf8; margin:0; }
.ab-dark h2::after { content:''; display:block; width:54px; height:3px; margin:20px 0 0; border-radius:999px; background:var(--gold); }
.ab-glass-list { display:grid; gap:16px; }
.ab-glass { display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:start; padding:26px 28px; border:1px solid rgba(207,165,89,.2); border-radius:20px; background:linear-gradient(160deg,rgba(255,255,255,.075),rgba(255,255,255,.02)); transition:transform .3s ease,border-color .3s ease; }
.ab-glass:hover { transform:translateY(-4px); border-color:rgba(207,165,89,.55); }
.ab-glass .pillar-icon { margin:0; border:1px solid rgba(207,165,89,.4); background:rgba(207,165,89,.1); color:var(--gold-light); }
.ab-glass p { margin:0; color:#e3e8dc; font-size:1rem; line-height:1.7; }

.ab-cover-grid { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:64px; align-items:start; }
.ab-cover h2 { margin:0; }
.ab-cover h2::after { content:''; display:block; width:54px; height:3px; margin:20px 0 0; border-radius:999px; background:var(--clay); }
.ab-cover p:not(.eyebrow) { margin:0 0 24px; color:var(--muted); line-height:1.7; }
.ab-chips { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.ab-chips a { display:inline-block; padding:10px 20px; border:1px solid #cfd5c2; border-radius:999px; background:#fffdf8; color:var(--forest); font-size:.88rem; font-weight:600; transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease; }
.ab-chips a:hover { background:var(--forest); border-color:var(--forest); color:#fffdf8; transform:translateY(-2px); }
.ab-chips .ab-chip-all a { border-color:var(--clay); color:var(--clay); }
.ab-chips .ab-chip-all a:hover { background:var(--clay); border-color:var(--clay); color:#fffdf8; }
@media(max-width:900px) {
  .ab-duo { grid-template-columns:1fr; }
  .ab-dark-grid,.ab-cover-grid { grid-template-columns:1fr; gap:34px; }
  .ab-card { padding:30px 26px 28px; }
  .ab-card::before { left:26px; }
}
@media(prefers-reduced-motion:reduce) { .ab-card,.ab-glass,.ab-chips a { transition:none; } .ab-card:hover,.ab-glass:hover,.ab-chips a:hover { transform:none; } }

/* Closing band: equal space either side of the contact icons. */
.closing-inner { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.closing-inner>.button,.closing-channels { flex:none; }
@media(max-width:900px) { .closing-inner { flex-direction:column; align-items:flex-start; gap:26px; } }

/* About coverage chips stay on one row on desktop. */
.ab-cover-grid { grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:48px; }
@media(min-width:901px) { .ab-chips { flex-wrap:nowrap; gap:8px; } .ab-chips a { padding:9px 15px; font-size:.85rem; white-space:nowrap; } }
@media(max-width:900px) { .ab-cover-grid { grid-template-columns:1fr; gap:34px; } }
@media(min-width:901px) and (max-width:1150px) { .ab-chips { gap:6px; } .ab-chips a { padding:8px 11px; font-size:.78rem; } .ab-cover-grid { gap:32px; } }

/* About coverage: paragraph and chips sit toward the right edge. */
.ab-cover-grid>div:last-child { justify-self:end; max-width:600px; }
.ab-cover-grid>div:last-child .ab-chips { justify-content:flex-end; }
@media(max-width:900px) { .ab-cover-grid>div:last-child { justify-self:stretch; max-width:none; } .ab-cover-grid>div:last-child .ab-chips { justify-content:flex-start; } }

/* Coverage and Services pages: three-up cards, photo tiles for locations, forest approach panel. */
.ab-trio { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.jr-track { display:flex; gap:6px; margin-top:24px; }
.jr-track i { width:34px; height:4px; border-radius:99px; background:#dcdfd0; }
.jr-track i.on { background:var(--clay); }
.jr-card .ab-num { display:inline-block; margin-bottom:18px; padding:6px 14px; border:1px solid #d9c3b8; border-radius:999px; background:#f7ede7; }
.cv-glass-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.cv-glass { grid-template-columns:1fr; gap:18px; padding:26px 24px 28px; }
.cv-glass h3 { margin:0 0 8px; color:#fffdf8; font-family:Georgia,'Times New Roman',serif; font-size:1.2rem; font-weight:400; line-height:1.3; }
.lang-th .cv-glass h3 { font-family:'Noto Sans Thai',sans-serif; font-weight:600; }
.cv-glass p { font-size:.9rem; color:#dbe1d3; }
.cv-approach .ab-head { align-items:flex-end; }
.cv-approach .process-link { margin:0 0 4px; }

.location-grid .visual-card.location-card { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:300px; padding:0; border:0; border-radius:22px; overflow:hidden; isolation:isolate; background:#122219; box-shadow:0 22px 44px -28px rgba(18,34,25,.7); transition:transform .4s ease,box-shadow .4s ease; }
.location-grid .visual-card.location-card::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(9,22,15,.08) 0%,rgba(9,22,15,.3) 38%,rgba(9,22,15,.93) 100%); }
.location-grid .visual-card.location-card .card-media { position:absolute; inset:0; z-index:-2; margin:0; aspect-ratio:auto; mask-image:none; -webkit-mask-image:none; overflow:hidden; }
.location-grid .visual-card.location-card .card-media img { width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
.location-grid .visual-card.location-card .card-copy { position:static; flex:none; padding:0 26px 26px; }
.location-grid .visual-card.location-card .eyebrow { position:absolute; top:20px; left:22px; margin:0; padding:6px 13px; border:1px solid rgba(207,165,89,.5); border-radius:999px; background:rgba(16,32,24,.5); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); color:var(--gold-light); font-size:.68rem; letter-spacing:.12em; }
.location-grid .visual-card.location-card h3 { margin:0 0 8px; color:#fffdf8; font-size:1.5rem; line-height:1.2; }
.location-grid .visual-card.location-card p:not(.eyebrow) { margin:0 0 16px; color:#e3e8dc; font-size:.9rem; line-height:1.6; }
.location-grid .visual-card.location-card .card-link { align-self:flex-start; padding-bottom:4px; border-bottom:1px solid rgba(207,165,89,.5); color:var(--gold-light); font-size:.85rem; font-weight:600; transition:border-color .3s ease,letter-spacing .3s ease; }
.location-grid .visual-card.location-card:hover { transform:translateY(-6px); box-shadow:0 32px 50px -26px rgba(18,34,25,.85); }
.location-grid .visual-card.location-card:hover .card-media img { transform:scale(1.07); }
.location-grid .visual-card.location-card:hover .card-link { border-color:var(--gold); letter-spacing:.02em; }
.location-grid.loc-core { grid-template-columns:1.15fr 1fr 1fr; grid-auto-rows:minmax(290px,auto); gap:18px; }
.location-grid.loc-core .visual-card.location-card:first-child { grid-row:span 2; min-height:600px; }
.location-grid.loc-core .visual-card.location-card:first-child h3 { font-size:1.9rem; }
.location-grid.loc-more { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:18px; }
.location-grid.loc-more .visual-card.location-card { min-height:290px; }
.location-grid.loc-more .visual-card.location-card p:not(.eyebrow) { display:none; }
@media(max-width:1000px) {
  .location-grid.loc-core { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .location-grid.loc-core .visual-card.location-card:first-child { grid-row:auto; grid-column:1/-1; min-height:400px; }
  .location-grid.loc-more { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cv-glass-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:900px) { .ab-trio { grid-template-columns:1fr; } }
@media(max-width:620px) {
  .location-grid.loc-core,.location-grid.loc-more,.cv-glass-grid { grid-template-columns:1fr; }
  .location-grid .visual-card.location-card,.location-grid.loc-core .visual-card.location-card:first-child { min-height:320px; }
}
@media(prefers-reduced-motion:reduce) { .location-grid .visual-card.location-card,.location-grid .visual-card.location-card .card-media img { transition:none; } .location-grid .visual-card.location-card:hover,.location-grid .visual-card.location-card:hover .card-media img { transform:none; } }
.service-grid .visual-card.service-card .card-link,.location-grid .visual-card.location-card .card-link { border-top:0; padding-top:0; }
.location-grid .visual-card.location-card .card-link,.service-grid .visual-card.service-card .card-link { display:inline-flex; width:auto; gap:8px; align-items:center; }
.cv-glass { align-content:start; }
.jr-card { display:flex; flex-direction:column; align-items:flex-start; }
.jr-card .jr-track { margin-top:auto; padding-top:24px; }

/* Location pages: numbered stage cards, five service tiles, checklist cards, nearby chips. */
.ab-quad { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.ab-quad .ab-card { padding:30px 26px 28px; }
.ab-quad .ab-card h3 { font-size:1.25rem; }
.ab-cover .ab-note { margin:22px 0 0; }
.ab-cover .ab-checks+.ab-note { margin-top:18px; }
.ab-checks { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.ab-checks li { display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:start; padding:18px 20px; border:1px solid var(--line); border-radius:16px; background:#fffdf8; color:var(--ink); font-size:.92rem; line-height:1.55; transition:transform .25s ease,border-color .25s ease; }
.ab-checks li::before { content:'✓'; display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:#f7ede7; border:1px solid #d9c3b8; color:var(--clay); font-size:.8rem; font-weight:700; }
.ab-checks li:hover { transform:translateY(-3px); border-color:#cfd5c2; }
.ab-near h2::after { content:''; display:block; width:54px; height:3px; margin:20px 0 0; border-radius:999px; background:var(--clay); }
.ab-near .related-locations { margin-top:30px; gap:10px; }
.ab-near .related-locations a { padding:10px 20px; border:1px solid #cfd5c2; border-radius:999px; background:#fffdf8; color:var(--forest); font-size:.88rem; font-weight:600; transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease; }
.ab-near .related-locations a:hover { background:var(--forest); border-color:var(--forest); color:#fffdf8; transform:translateY(-2px); }
.ab-near .related-locations a:last-child { border-color:var(--clay); color:var(--clay); }
.ab-near .related-locations a:last-child:hover { background:var(--clay); border-color:var(--clay); color:#fffdf8; }
@media(max-width:1000px) { .ab-quad { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .ab-quad,.ab-checks { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .ab-checks li,.ab-near .related-locations a { transition:none; } .ab-checks li:hover,.ab-near .related-locations a:hover { transform:none; } }

/* Location pages, horizontal: checklist row and intro callout. */
.ct-intro .ab-note { margin-top:26px; max-width:none; }
.ab-checks.ab-checks-row { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.ab-checks-row li { grid-template-columns:1fr; gap:14px; padding:22px 22px 24px; border-radius:20px; }
.ab-checks-row li::before { width:34px; height:34px; font-size:1rem; }
@media(max-width:1000px) { .ab-checks.ab-checks-row { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .ab-checks.ab-checks-row { grid-template-columns:1fr; } }

/* Service pages: horizontal package bands, lead bands, due-diligence timeline. */
.package-grid { grid-template-columns:1fr; gap:22px; }
.visual-card.package { position:relative; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); grid-template-areas:'media copy'; padding:0; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:#fffdf8; box-shadow:0 22px 44px -34px rgba(28,48,38,.5); }
.visual-card.package:nth-child(even) { grid-template-columns:minmax(0,7fr) minmax(0,5fr); grid-template-areas:'copy media'; }
.visual-card.package .card-media { grid-area:media; position:relative; margin:0; aspect-ratio:auto; min-height:340px; mask-image:none; -webkit-mask-image:none; }
.visual-card.package .card-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
.visual-card.package:hover .card-media img { transform:scale(1.05); }
.visual-card.package .card-media::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(9,22,15,0) 55%,rgba(9,22,15,.45)); }
.visual-card.package .card-copy { grid-area:copy; padding:38px 40px 34px; }
.package .card-number { display:inline-grid; margin:0 12px 0 0; width:38px; height:38px; vertical-align:middle; }
.package .card-copy .eyebrow { display:inline-block; margin:0; vertical-align:middle; }
.package .card-copy h3 { margin:20px 0 10px; font-size:1.55rem; line-height:1.25; }
.package .card-copy>p:not(.eyebrow) { margin:0 0 12px; max-width:62ch; }
.package .check-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; margin:18px 0 22px; }
.package .check-list li { margin:0; padding:14px 16px 14px 42px; border:0; border-radius:14px; background:#f3f2ea; font-size:.88rem; line-height:1.55; }
.package .check-list li::before { left:15px; top:14px; }
.package .text-link { margin-top:auto; }

.sv-band { background:#faf8f2; }
.sv-band.soft { background:#f0eee7; }
.sv-band .ab-note,.sv-dd .ab-note { margin-top:26px; }
.sv-dd .process-steps { margin-top:6px; }
.sv-dd .process-steps p { color:var(--ink); font-size:.95rem; }
.ct-clear .ab-glass p { font-size:1.02rem; }
@media(max-width:900px) {
  .visual-card.package,.visual-card.package:nth-child(even) { grid-template-columns:1fr; grid-template-areas:'media' 'copy'; }
  .visual-card.package .card-media { min-height:220px; }
  .visual-card.package .card-copy { padding:28px 24px 26px; }
  .package .check-list { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { .visual-card.package .card-media img { transition:none; } .visual-card.package:hover .card-media img { transform:none; } }
.visual-card.package .card-copy { flex-direction:row; flex-wrap:wrap; align-items:center; align-content:flex-start; }
.visual-card.package .card-copy>*:not(.card-number):not(.eyebrow) { flex:0 0 100%; }
.visual-card.package .card-copy .text-link { flex:0 0 auto; margin-top:6px; }

/* About coverage: paragraph centred over the chip row. */
.ab-cover-grid>div:last-child { text-align:center; }
.ab-cover-grid>div:last-child .ab-chips { justify-content:center; }
@media(max-width:900px) { .ab-cover-grid>div:last-child { text-align:left; } .ab-cover-grid>div:last-child .ab-chips { justify-content:flex-start; } }

/* Closing band contact: labelled 2 x 2 tiles. */
.closing-channels { display:grid; grid-template-columns:repeat(2,auto); gap:10px; }
.closing-channels .channel-link { width:auto; height:48px; flex:none; justify-content:flex-start; gap:10px; padding:0 20px 0 14px; border-radius:999px; white-space:nowrap; }
.closing-channels .channel-link svg,.closing-channels .channel-link img { width:22px; height:22px; flex:none; }
.closing-channels .channel-whatsapp svg { width:24px; height:24px; }
.closing-channels .channel-text { color:var(--forest); font-size:.86rem; font-weight:600; }
.closing-channels .channel-link:hover { border-color:var(--forest); background:#fff; box-shadow:0 10px 20px -14px rgba(28,48,38,.6); }
@media(max-width:420px) { .closing-channels { grid-template-columns:1fr; } }

/* Keep the closing band the same height as its text block. */
.closing-channels { gap:8px 10px; }
.closing-channels .channel-link { height:38px; padding:0 18px 0 12px; gap:8px; }
.closing-channels .channel-link svg,.closing-channels .channel-link img { width:20px; height:20px; }
.closing-channels .channel-whatsapp svg { width:22px; height:22px; }
.closing-channels .channel-text { font-size:.82rem; }

/* Closing band: one row of four labelled tiles between the heading and the inquiry button. */
@media(min-width:1200px) {
  .closing-channels { grid-template-columns:repeat(4,auto); gap:8px; }
  .closing-channels .channel-link { height:40px; padding:0 15px 0 11px; gap:7px; }
  .closing-channels .channel-text { font-size:.8rem; }
  .closing .closing-inner h2 { font-size:clamp(1.1rem,1.5vw,1.35rem); line-height:1.3; text-wrap:balance; }
  .closing-inner { gap:24px; }
}

/* Centred section headers (Train Develop Empower style): bar + eyebrow, bold title, muted description, all centred. */
.section-heading,.ab-head,.pillars-intro { display:flex; flex-direction:column; flex-wrap:nowrap; align-items:center; justify-content:center; gap:0; margin:0 0 48px; text-align:center; }
.section-heading>div,.ab-head>div { width:100%; text-align:center; }
.expect-intro,.ab-dark-intro { margin:0 0 48px; text-align:center; }
.section-heading .eyebrow,
.ab-head .eyebrow,
.pillars-intro .eyebrow,
.expect-intro .eyebrow,
.ab-dark-intro .eyebrow,
.ab-cover-grid>div:first-child .eyebrow,
#services>.container>.eyebrow,
.ab-near>.container>.eyebrow { display:flex; width:100%; max-width:none; justify-content:center; align-items:center; gap:12px; margin:0 0 16px; font-family:Inter,Arial,sans-serif; font-size:.75rem; font-weight:700; letter-spacing:.13em; line-height:1.65; text-transform:uppercase; color:var(--clay); }
.section-heading .eyebrow::before,
.ab-head .eyebrow::before,
.pillars-intro .eyebrow::before,
.expect-intro .eyebrow::before,
.ab-dark-intro .eyebrow::before,
.ab-cover-grid>div:first-child .eyebrow::before,
#services>.container>.eyebrow::before,
.ab-near>.container>.eyebrow::before { content:''; display:block; flex:none; width:36px; height:3px; border-radius:2px; background:var(--clay); }
.section-heading h2,
.ab-head h2,
.pillars-intro h2,
.expect-intro h2,
.ab-dark-intro h2,
.ab-cover-grid>div:first-child h2,
#services>.container>h2,
.ab-near>.container>h2 { max-width:900px; margin:0 auto; font-family:Inter,Arial,sans-serif; font-size:clamp(1.6rem,3vw,2.2rem); font-weight:700; line-height:1.2; letter-spacing:normal; color:var(--forest); text-align:center; text-wrap:balance; }
.section-heading h2::after,
.ab-head h2::after,
.pillars-intro h2::after,
.expect-intro h2::after,
.ab-dark-intro h2::after,
.ab-cover-grid>div:first-child h2::after,
#services>.container>h2::after,
.ab-near>.container>h2::after { content:none; }
.lang-th .section-heading h2,
.lang-th .ab-head h2,
.lang-th .pillars-intro h2,
.lang-th .expect-intro h2,
.lang-th .ab-dark-intro h2,
.lang-th .ab-cover-grid>div:first-child h2,
.lang-th #services>.container>h2,
.lang-th .ab-near>.container>h2 { font-family:'Noto Sans Thai',Inter,sans-serif; line-height:1.35; }
.section-heading>p,.ab-head>.ab-lead,.section-heading .qa-intro,.section-heading>.section-intro { max-width:560px; margin:12px auto 0; color:var(--muted); font-size:1rem; line-height:1.65; text-align:center; }
.qa-intro p { margin:0 auto 14px; }
.qa-intro .text-link,.pillars-intro .process-link,.cv-approach .process-link { margin:16px 0 0; }
#services>.container>h2 { margin-bottom:48px; }
.ab-near>.container>h2 { margin-bottom:0; }
.ab-near .related-locations { justify-content:center; margin-top:32px; }
/* dark sections */
.ab-dark .eyebrow,
.expectations .eyebrow,
.cv-approach .eyebrow { color:var(--gold-light); }
.ab-dark .eyebrow::before,
.expectations .eyebrow::before,
.cv-approach .eyebrow::before { background:var(--gold); }
.ab-dark h2,
.expectations h2 { color:#fffdf8; }
.ab-dark .ab-lead { color:#dbe1d3; }
/* about "independent support" and "clear from the start": heading on top, glass cards below */
.ab-dark-grid { display:block; }
.ab-glass-list { grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); }
.ab-glass-list:has(.ab-glass:only-child) { max-width:780px; margin-inline:auto; }
/* about coverage: heading, paragraph and chips stacked and centred */
.ab-cover-grid { display:block; }
.ab-cover-grid>div:first-child { margin:0 0 28px; }
.ab-cover-grid>div:last-child { max-width:720px; margin:0 auto; justify-self:center; text-align:center; }
.ab-cover-grid>div:last-child>p { max-width:560px; margin:0 auto 24px; }
/* home pillars: intro on top */
.pillars-grid { display:block; }
@media(max-width:900px) { .section-heading,.ab-head,.pillars-intro,.expect-intro,.ab-dark-intro { margin-bottom:36px; } }

/* Section headers, take two: gold eyebrow, Georgia title with a gold second line, short gold rule, larger description. */
:root { --gold-ink:#a67c33; }
.section-heading .eyebrow,
.ab-head .eyebrow,
.pillars-intro .eyebrow,
.expect-intro .eyebrow,
.ab-dark-intro .eyebrow,
.ab-cover-grid>div:first-child .eyebrow,
#services>.container>.eyebrow,
.ab-near>.container>.eyebrow { color:var(--gold-ink); font-size:.8rem; font-weight:600; letter-spacing:.2em; margin:0 0 14px; }
.section-heading .eyebrow::before,
.ab-head .eyebrow::before,
.pillars-intro .eyebrow::before,
.expect-intro .eyebrow::before,
.ab-dark-intro .eyebrow::before,
.ab-cover-grid>div:first-child .eyebrow::before,
#services>.container>.eyebrow::before,
.ab-near>.container>.eyebrow::before { content:none; display:none; }
.section-heading h2,
.ab-head h2,
.pillars-intro h2,
.expect-intro h2,
.ab-dark-intro h2,
.ab-cover-grid>div:first-child h2,
#services>.container>h2,
.ab-near>.container>h2 { max-width:920px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.9rem,3.6vw,2.7rem); font-weight:400; line-height:1.15; letter-spacing:-.005em; color:var(--forest); }
.section-heading h2::after,
.ab-head h2::after,
.pillars-intro h2::after,
.expect-intro h2::after,
.ab-dark-intro h2::after,
.ab-cover-grid>div:first-child h2::after,
#services>.container>h2::after,
.ab-near>.container>h2::after { content:''; display:block; width:96px; height:2px; margin:26px auto 0; background:var(--gold-ink); }
.lang-th .section-heading h2,
.lang-th .ab-head h2,
.lang-th .pillars-intro h2,
.lang-th .expect-intro h2,
.lang-th .ab-dark-intro h2,
.lang-th .ab-cover-grid>div:first-child h2,
.lang-th #services>.container>h2,
.lang-th .ab-near>.container>h2 { font-family:'Noto Sans Thai',Georgia,serif; font-weight:600; line-height:1.3; }
.t-accent { color:var(--gold-ink); }
.section-heading>p,.ab-head>.ab-lead,.section-heading .qa-intro,.section-heading>.section-intro { max-width:820px; margin:24px auto 0; color:#5d6660; font-size:1.1rem; line-height:1.6; }
.qa-intro p { margin:0 auto 14px; }
#services>.container>h2 { margin-bottom:56px; }
#services>.container>h2::after { margin-bottom:0; }
.ab-near>.container>h2 { margin-bottom:0; }
.ab-dark .eyebrow,
.expectations .eyebrow,
.cv-approach .eyebrow { color:var(--gold-light); }
.ab-dark h2,
.expectations h2 { color:#fffdf8; }
.ab-dark h2 .t-accent,
.expectations h2 .t-accent { color:var(--gold-light); }
.ab-dark h2::after,
.expectations h2::after { background:var(--gold); }
.ab-dark .ab-lead { color:#dbe1d3; }
@media(max-width:700px) { .section-heading>p,.ab-head>.ab-lead,.section-heading .qa-intro { font-size:1rem; } }
.lang-th .section-heading .eyebrow,
.lang-th .ab-head .eyebrow,
.lang-th .pillars-intro .eyebrow,
.lang-th .expect-intro .eyebrow,
.lang-th .ab-dark-intro .eyebrow,
.lang-th .ab-cover-grid>div:first-child .eyebrow,
.lang-th #services>.container>.eyebrow,
.lang-th .ab-near>.container>.eyebrow { font-size:.95rem; letter-spacing:.04em; font-weight:600; font-family:'Noto Sans Thai',Inter,sans-serif; }

/* "See more" links sit below the cards they follow, centred. */
.section-more { margin-top:44px; text-align:center; }
.section-more .text-link { margin:0; }
.pillars-section .section-more .process-link,.qa-section .section-more .text-link { color:var(--forest); border-color:#afb6a5; }
.pillars-section .section-more .process-link:hover { color:#77432f; border-color:var(--clay); }

/* ---- Step cards: centred cards with a ringed badge on the top edge, gold rule under the title. ---- */
:root { --card-line:rgba(207,165,89,.35); --ring:var(--gold); --ring-bg:#faf8f2; }
.soft,.sv-band.soft,.ct-stages,.ct-checks { --ring-bg:#f0eee7; }
.pillars-section { --ring-bg:#fffdf8; }
.process-steps>li,.qa-card,.pillar,.ab-card,.ab-checks-row li { position:relative; background:#fffdf8; border:1px solid var(--card-line); border-radius:20px; padding:46px 20px 24px; text-align:center; box-shadow:0 16px 32px -24px rgba(28,48,38,.35); overflow:visible; }
.pillar { background:#faf8f2; }
.process-steps { gap:16px; row-gap:46px; padding-top:6px; }
.qa-grid,.pillars-list,.ab-trio,.ab-duo,.ab-checks.ab-checks-row { row-gap:46px; }
.ab-trio,.ab-duo { padding-top:6px; }
/* badges */
.step-badge,.qa-num,.ab-card:not(.jr-card) .ab-num,.pillar-icon,.ab-checks-row li::before { position:absolute; top:-24px; left:50%; margin:0; transform:translateX(-50%); display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:var(--forest); color:var(--gold-light); font-family:Georgia,'Times New Roman',serif; font-size:.9rem; font-weight:400; letter-spacing:0; box-shadow:0 0 0 4px var(--ring-bg),0 0 0 5px var(--ring); }
.pillar-icon { width:50px; height:50px; border:0; }
.pillar-icon svg { width:22px; height:22px; color:var(--gold-light); }
.ab-checks-row li::before { content:'✓'; width:40px; height:40px; top:-20px; font-family:Inter,Arial,sans-serif; font-size:1rem; border:0; }
.process-steps>li:hover .step-badge { background:var(--forest); color:var(--gold-light); transform:translateX(-50%); }
.jr-card .ab-num { position:absolute; top:-16px; left:50%; transform:translateX(-50%); margin:0; padding:7px 16px; border:1px solid var(--ring); border-radius:999px; background:var(--forest); color:var(--gold-light); font-size:.7rem; white-space:nowrap; box-shadow:0 0 0 4px var(--ring-bg); }
/* titles with a short gold rule */
.process-steps h3,.qa-q,.ab-card h3,.pillar h3 { margin:0 0 12px; text-align:center; }
.process-steps h3::after,.ab-card h3::after,.pillar h3::after { content:''; display:block; width:34px; height:2px; margin:12px auto 0; background:var(--gold-ink); }
.qa-q { margin:0; }
.qa-q::after { content:''; display:block; width:34px; height:2px; margin:14px auto 14px; background:var(--gold-ink); }
.qa-card { align-items:center; }
.qa-card::before { content:none; }
.qa-a { margin:0; padding-top:0; border-top:0; }
.qa-a::before { content:none; }
.ab-card::before { content:none; }
.pillar::after { content:none; }
.ab-card p,.pillar p,.process-steps p,.qa-a { text-align:center; }
.ab-card:hover,.pillar:hover { transform:translateY(-4px); border-color:var(--ring); }
.jr-track { justify-content:center; }
.jr-card { align-items:center; }
/* connectors between sequential cards (desktop) */
.process-steps>li:not(:last-child)::after,.jr-card:not(:last-child)::after { content:'›'; position:absolute; top:-16px; right:-17px; left:auto; bottom:auto; width:18px; height:auto; background:none; text-align:center; color:var(--ring); font-size:24px; line-height:1; transform:none; z-index:2; }
/* scroll reveal */
.js-reveal { opacity:0; transform:translateY(20px); transition:opacity .6s ease,transform .6s ease; }
.js-reveal.in { opacity:1; transform:none; }
@media(max-width:1000px) {
  .process-steps { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:none; }
  .process-steps>li { padding:46px 20px 24px; min-height:0; }
  .process-steps>li:not(:last-child)::after,.jr-card:not(:last-child)::after { content:none; }
  .step-badge { position:absolute; left:50%; top:-24px; }
  .process-steps h3 { padding-top:0; }
}
@media(max-width:620px) {
  .process-steps { grid-template-columns:1fr; }
  .pillars-list,.ab-checks.ab-checks-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:46px 12px; }
  .pillar,.ab-checks-row li { padding:44px 12px 20px; }
  .pillar p,.ab-checks-row li { font-size:.84rem; }
  .ab-checks-row li { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { .js-reveal { opacity:1; transform:none; transition:none; } }

/* ---- Mobile, in the Train Develop Empower manner: hamburger icon, centred call-to-action, stacked footer. ---- */
@media(max-width:1100px) {
  .site-header .menu-toggle { font-size:0; gap:0; padding:8px 10px; border:0; background:transparent; }
  .site-header .menu-toggle span { font-size:30px; line-height:1; color:var(--forest); }
}
@media(max-width:900px) {
  .closing-inner { align-items:center; text-align:center; gap:24px; }
  .closing-inner>div:first-child { padding:0; }
  .closing-channels { justify-self:center; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; max-width:340px; }
  .closing-channels .channel-link { justify-content:center; padding:0 10px; }
  .closing-inner>.button { justify-self:center; width:100%; max-width:340px; justify-content:center; }
  .closing::after { opacity:.25; right:50%; transform:translate(50%,-50%); }
}
@media(max-width:420px) { .closing-channels { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) {
  .footer-grid { grid-template-columns:1fr; gap:34px; }
  .footer-grid>div:first-child { grid-column:auto; }
  .site-footer { padding-bottom:88px; }
  .footer-bottom { text-align:center; align-items:center; }
}

/* Mobile menu: submenus stay collapsed until their arrow is tapped. */
@media(max-width:1100px) {
  .nav-item:not(.lang-item)>.dropdown { display:none; }
  .nav-item.submenu-open:not(.lang-item)>.dropdown { display:block; }
}

/* Mobile refinements: centred coverage buttons, tighter footer bottom. */
@media(max-width:900px) {
  .ab-cover-grid>div:last-child { text-align:center; }
  .ab-cover-grid>div:last-child .ab-chips { justify-content:center; }
}
@media(max-width:560px) {
  .site-footer { padding-bottom:22px; }
  .footer-bottom { padding-top:18px; margin-top:0; gap:8px; }
}

/* Contact page on phones: the inquiry form comes first, contact details after it. */
@media(max-width:800px) { .contact-layout>form { order:-1; } }

/* ---- Eyebrows: 12px across all screen sizes, matching Walailak Law Firm. ---- */
.eyebrow { font-size:12px !important; font-weight:600 !important; letter-spacing:.06em !important; text-transform:uppercase !important; }
@media(min-width:901px) { .eyebrow { letter-spacing:.2em !important; } }
.lang-th .eyebrow { letter-spacing:.02em !important; }

/* ---- Footer: the coverage areas box sits inside the page margins; the copyright line is unchanged. ---- */
.site-footer { padding-bottom:22px; }
.footer-locations { position:relative; clip-path:none; box-shadow:none; background:#2b4436; border:1px solid rgba(207,165,89,.16); border-radius:14px; padding:14px 8px; }
.footer-locations::before { content:none; }
.footer-bottom { margin-top:8px; padding-top:22px; padding-bottom:0; border-top:1px solid rgba(207,165,89,.16); background:none; box-shadow:none; clip-path:none; }
@media(max-width:560px) { .site-footer { padding-bottom:22px; } .footer-bottom { padding-top:18px; margin-top:0; } }

/* ---- Bottom call-to-action band: same height as Train Develop Empower's (about 158px on desktop). ---- */
.closing { padding:34px 0; }
@media(max-width:900px) {
  .closing { padding:32px 0; }
  .closing-inner { gap:16px; }
  .closing-inner>div:first-child .eyebrow { margin-bottom:8px; }
  .closing-channels { gap:8px; }
  .closing-inner>.button { min-height:46px; }
}
@media(max-width:900px) { .closing .eyebrow { text-align:center; display:block; width:100%; } }
@media(max-width:900px) { .closing { padding:46px 0; } }

/* Question cards get their speech-mark back. */
.qa-card::before { content:'\201C'; position:absolute; right:16px; top:2px; font:400 96px/1 Georgia,'Times New Roman',serif; color:rgba(155,80,58,.16); pointer-events:none; transition:color .3s ease; }
.qa-card:hover::before,.qa-card:focus-within::before { color:rgba(207,165,89,.2); }

/* Due diligence: the four numbered step cards sit directly under the band. */
.dd-steps { margin:26px 0 12px; }
.dd-steps p { color:var(--ink); font-size:.95rem; }

/* Service pages: "your team" and "clear from the start" as two glass cards side by side. */
.sv-duo-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:20px; max-width:none; margin-inline:0; }
.sv-glass { grid-template-columns:1fr; justify-items:center; gap:18px; padding:38px 34px 40px; text-align:center; }
.sv-glass .pillar-icon { margin:0; width:52px; height:52px; }
.sv-glass .eyebrow { display:block; margin:0 0 12px; color:var(--gold-light); text-align:center; }
.sv-glass h3 { margin:0 0 16px; color:#fffdf8; font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.4rem,2.4vw,1.85rem); font-weight:400; line-height:1.2; }
.sv-glass h3 .t-accent { color:var(--gold-light); }
.sv-glass p:not(.eyebrow) { margin:0 0 12px; color:#dbe1d3; font-size:1rem; line-height:1.7; text-align:center; }
.sv-glass p:last-child { margin-bottom:0; }
.lang-th .sv-glass h3 { font-family:'Noto Sans Thai',sans-serif; font-weight:600; line-height:1.35; }
@media(max-width:800px) { .sv-duo-grid { grid-template-columns:1fr !important; } .sv-glass { padding:32px 22px 34px; } }
.sv-glass .eyebrow { width:100%; max-width:none; }
.sv-duo-grid { row-gap:46px; }
.sv-glass { position:relative; padding-top:52px; }
.sv-glass .pillar-icon { position:absolute; top:-26px; left:50%; transform:translateX(-50%); width:52px; height:52px; border:0; background:var(--forest); color:var(--gold-light); box-shadow:0 0 0 4px #1b2e23,0 0 0 5px var(--ring); }

/* How We Work on phones: the "property verification" text block is centred. */
@media(max-width:800px) {
  #reports .split>div:first-child .eyebrow { display:block; width:100%; text-align:center; }
  #reports .split>div:first-child h2 { margin-left:auto; margin-right:auto; text-align:center; }
  #reports .split>div:first-child h2::after { margin-left:auto; margin-right:auto; }
}

/* Location pages: the construction note and the confirmation note as two stacked cards. */
.ct-notes { display:grid; gap:16px; max-width:860px; margin:44px auto 0; }
.ct-note-card { display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:center; padding:26px 30px; background:#fffdf8; border:1px solid var(--card-line); border-radius:20px; box-shadow:0 16px 32px -24px rgba(28,48,38,.35); transition:transform .3s ease,border-color .3s ease; }
.ct-note-card:hover { transform:translateY(-3px); border-color:var(--ring); }
.ct-icon { display:grid; place-items:center; width:54px; height:54px; border-radius:50%; background:var(--forest); color:var(--gold-light); box-shadow:0 0 0 4px #faf8f2,0 0 0 5px var(--ring); }
.ct-icon svg { width:24px; height:24px; }
.ct-note-card h3 { margin:0 0 6px; font-family:Georgia,'Times New Roman',serif; font-size:1.3rem; font-weight:400; line-height:1.25; color:var(--forest); }
.ct-note-card h3::after { content:''; display:block; width:34px; height:2px; margin:10px 0 0; background:var(--gold-ink); }
.ct-note-card p { margin:10px 0 0; color:var(--muted); font-size:.98rem; line-height:1.65; }
.lang-th .ct-note-card h3 { font-family:'Noto Sans Thai',sans-serif; font-weight:600; line-height:1.4; }
@media(max-width:560px) { .ct-note-card { grid-template-columns:1fr; justify-items:center; text-align:center; gap:16px; padding:24px 20px; } .ct-note-card h3::after { margin-inline:auto; } }
@media(prefers-reduced-motion:reduce) { .ct-note-card { transition:none; } .ct-note-card:hover { transform:none; } }
.ct-notes { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:none; align-items:stretch; }
@media(max-width:800px) { .ct-notes { grid-template-columns:1fr; max-width:640px; } }

/* Keep mobile labels readable; longer translations wrap instead of shrinking. */
@media(max-width:900px) {
  body .eyebrow,
  body main section:not(.hero):not(.page-hero) .eyebrow {
    font-size:12px !important;
    white-space:normal;
    overflow-wrap:anywhere;
    max-width:100%;
    line-height:1.5;
  }
}

/* Focused local services: prominent, descriptive entry points into detailed support. */
.local-focus-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.local-focus-card { display:flex; flex-direction:column; align-items:flex-start; padding:32px; border:1px solid var(--line); border-radius:20px; background:#fffdf8; color:var(--ink); text-decoration:none; transition:transform .2s,border-color .2s; }
.local-focus-card:hover { transform:translateY(-3px); border-color:var(--gold-ink); }
.local-focus-card:focus-visible { outline:3px solid var(--gold-ink); outline-offset:5px; }
.local-focus-place { display:inline-flex; align-items:center; gap:10px; color:var(--gold-ink); font-size:.8rem; font-weight:600; }
.local-focus-need { margin:18px 0 8px; color:var(--muted); }
.local-focus-card h3 { margin:0 0 16px; font-family:Georgia,'Times New Roman',serif; font-size:1.35rem; line-height:1.25; }
.local-focus-card>p:not(.local-focus-need) { color:var(--muted); margin:0 0 24px; }
.local-focus-link { margin-top:auto; font-size:13px; font-weight:600; color:var(--forest); }
.local-focus-card:only-child { grid-column:1 / -1; max-width:900px; width:100%; justify-self:center; }
.page-hero a.text-link[href="#focused-services"] { color:var(--gold-light); margin-top:20px; }
@media(max-width:700px) { .local-focus-grid { grid-template-columns:1fr; } .local-focus-card { padding:26px; } }
@media(prefers-reduced-motion:reduce) { .local-focus-card { transition:none; } .local-focus-card:hover { transform:none; } }

.local-focus-icon { width:26px; height:26px; flex-shrink:0; }

/* Buyer Support: off-plan and handover lists as rows of numbered step cards. */
.card-group h3 { margin:64px 0 40px; text-align:center; font-size:1.5rem; line-height:1.25; }
.card-group h3::after { content:''; display:block; width:34px; height:2px; margin:14px auto 0; background:var(--gold-ink); }
.section-heading+.card-group h3 { margin-top:52px; }
.card-group .dd-steps { margin:0; }
.process-steps.cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.process-steps.cols-5 { grid-template-columns:repeat(5,minmax(0,1fr)); }
.process-steps.cols-5>li { padding-left:16px; padding-right:16px; }
.process-steps.cols-5 p { font-size:.9rem; line-height:1.65; }
.card-note { max-width:760px; margin:44px auto 0; text-align:center; }
.card-note p { margin:0; color:var(--muted); }
.card-note + .split { margin-top:48px; }
.card-links { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 28px; margin-top:26px; }
@media(max-width:1180px) {
  .process-steps.cols-5 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .process-steps.cols-5>li:not(:last-child)::after { content:none; }
}
@media(max-width:1000px) {
  .process-steps.cols-3,.process-steps.cols-5 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px) {
  .process-steps.cols-3,.process-steps.cols-5 { grid-template-columns:1fr; }
  .card-group h3 { margin:52px 0 36px; }
}

/* location pages: compact all-services card (same look and hover as its siblings, individual links inside) */
.local-focus-list { list-style:none; margin:0 0 24px; padding:0; display:grid; grid-auto-flow:column; grid-template-rows:repeat(3,auto); grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 22px; width:100%; }
.local-focus-list a { color:var(--ink); text-decoration:none; border-bottom:1px solid transparent; }
.local-focus-list a:hover, .local-focus-list a:focus-visible { color:var(--forest); border-bottom-color:var(--gold-ink); }
.local-focus-all a.local-focus-link { text-decoration:none; }
.local-focus-list li { position:relative; padding-left:16px; color:var(--muted); font-size:.95rem; line-height:1.4; }
.local-focus-list li::before { content:""; position:absolute; left:0; top:.55em; width:6px; height:6px; border-radius:50%; background:var(--gold-ink); }
@media(max-width:480px) { .local-focus-list { grid-auto-flow:row; grid-template-rows:none; grid-template-columns:1fr; } }

/* buyer support: jump links and compact location lists */
.jump-links { background:#fffdf8; border-bottom:1px solid var(--line); }
.jump-links .container { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px 10px; padding-top:14px; padding-bottom:14px; }
.jump-label { font-size:.75rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-ink); margin-right:6px; }
.jump-links a { padding:6px 14px; border:1px solid #cfd5c2; border-radius:999px; font-size:.85rem; font-weight:600; color:var(--forest); text-decoration:none; background:#fffdf8; transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease; }
.jump-links a:hover, .jump-links a:focus-visible { background:var(--forest); border-color:var(--forest); color:#fffdf8; transform:translateY(-2px); }
.package[id], section[id] { scroll-margin-top:96px; }
.loc-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.loc-group { padding:28px; border:1px solid var(--line); border-radius:20px; background:#fffdf8; transition:transform .2s,border-color .2s; }
.loc-group:hover, .loc-group:focus-within { transform:translateY(-3px); border-color:var(--gold-ink); }
.loc-group h3 { margin:0 0 16px; font-family:Georgia,'Times New Roman',serif; font-size:1.15rem; line-height:1.3; }
.loc-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.loc-list li { position:relative; padding-left:16px; font-size:.95rem; line-height:1.4; }
.loc-list li::before { content:""; position:absolute; left:0; top:.55em; width:6px; height:6px; border-radius:50%; background:var(--gold-ink); }
.loc-list a { color:var(--ink); font-weight:600; text-decoration:none; border-bottom:1px solid transparent; }
.loc-list a:hover, .loc-list a:focus-visible { color:var(--forest); border-bottom-color:var(--gold-ink); }
@media(max-width:900px) { .loc-groups { grid-template-columns:1fr; } }

@media(prefers-reduced-motion:reduce) { .loc-group, .jump-links a { transition:none; } .loc-group:hover, .loc-group:focus-within, .jump-links a:hover { transform:none; } }

/* Siam Oakmont gold for consultation CTAs across all languages and placements. */
a.button[href*="contact"],
.site-header a.button.small[href*="contact"],
.premium-home .hero-actions a.button[href*="contact"],
.page-hero a.button[href*="contact"] {
  background:var(--gold-button);
  color:#19251c;
  border-color:var(--gold);
}
a.button[href*="contact"]:hover,
.site-header a.button.small[href*="contact"]:hover,
.premium-home .hero-actions a.button[href*="contact"]:hover,
.page-hero a.button[href*="contact"]:hover {
  background:var(--gold-button);
  color:#19251c;
  filter:brightness(1.06);
}

/* Comparison table (who does what) */
.table-wrap { margin-top:34px; }
.compare-table { width:100%; border-collapse:separate; border-spacing:0; background:#fffdf8; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; font-size:.95rem; line-height:1.6; }
.compare-table caption { caption-side:bottom; padding:14px 4px 0; color:var(--muted); font-size:.85rem; text-align:center; }
.compare-table th,.compare-table td { padding:16px 18px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); }
.compare-table thead th { background:var(--forest); color:#fffdf8; font-weight:600; font-size:.9rem; letter-spacing:.02em; }
.compare-table tbody th { color:var(--forest); font-weight:700; width:20%; }
.compare-table td { color:var(--muted); }
.compare-table tbody tr:last-child>* { border-bottom:0; }
.compare-table tbody tr.is-us>* { background:rgba(155,80,58,.07); }
.compare-table tbody tr { transition:background-color .2s ease; }
.compare-table tbody tr:hover>* { background:rgba(53,73,62,.06); }
.compare-table tbody tr.is-us:hover>* { background:rgba(155,80,58,.11); }
@media(max-width:800px) {
  .compare-table,.compare-table tbody,.compare-table tr,.compare-table th,.compare-table td { display:block; }
  .compare-table thead { position:absolute; left:-9999px; }
  .compare-table tbody tr { border-bottom:1px solid var(--line); padding:6px 0; }
  .compare-table tbody tr:last-child { border-bottom:0; }
  .compare-table th,.compare-table td { border:0; padding:8px 18px; width:auto; }
  .compare-table { display:flex; flex-direction:column; }
  .compare-table caption { display:block; order:1; padding:12px 18px 16px; border-top:1px solid var(--line); }
  .compare-table tbody th { font-size:1.05rem; padding-top:14px; width:auto; }
  .compare-table td::before { content:attr(data-label); display:block; font-size:.74rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--clay); }
}

/* Breathing room between the lead text and the hero button on inner pages.
   The negative bottom margin cancels the top margin, so the hero keeps its height. */
.page-hero .lead + .button { display:flex; width:fit-content; margin-top:24px; margin-bottom:-24px; }

/* Personalised purchase checklist */
.checklist-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px 20px; background:#fffdf8; border:1px solid var(--line); border-radius:var(--radius); padding:26px; margin-top:32px; }
.checklist-form label { display:block; margin-bottom:6px; font-size:.9rem; font-weight:700; color:var(--forest); }
.checklist-form select { width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); font:inherit; }
.checklist-form select:focus-visible { outline:2px solid var(--forest); outline-offset:2px; }
.checklist-bar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; margin:30px 0 8px; }
.checklist-count { margin:0; color:var(--muted); }
.checklist-count strong { color:var(--forest); font-size:1.15rem; }
.checklist-privacy { margin:0; color:var(--muted); font-size:.88rem; }
.checklist-group { margin-top:30px; }
.checklist-group h3 { margin:0 0 14px; font-size:1.25rem; }
.checklist { list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.checklist li { background:#fffdf8; border:1px solid var(--line); border-radius:16px; transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.checklist li:hover { border-color:var(--clay); box-shadow:0 14px 28px -22px rgba(28,48,38,.45); transform:translateY(-2px); }
.checklist li[hidden],.checklist-group[hidden] { display:none; }
.checklist label { display:flex; gap:14px; align-items:flex-start; padding:16px 18px; cursor:pointer; }
.checklist input[type=checkbox] { flex:0 0 auto; width:22px; height:22px; margin:3px 0 0; accent-color:var(--forest); }
.checklist .step-body strong { display:block; color:var(--forest); }
.checklist .step-body span { display:block; color:var(--muted); font-size:.95rem; line-height:1.65; }
.checklist .step-link { display:inline-block; margin:0 18px 14px 54px; font-size:.9rem; }
.checklist input:checked + .step-body strong { text-decoration:line-through; text-decoration-thickness:1px; opacity:.7; }
@media print {
  .site-header,.page-hero,.page-hero-media,.site-footer,.closing,.checklist-form,.checklist-bar button,.whatsapp-float,.line-float,#back-to-top,.skip-link { display:none !important; }
  .checklist li { break-inside:avoid; box-shadow:none; transform:none; }
}
.lang-note { margin:0; padding:10px 16px; background:#f3efe4; border-bottom:1px solid var(--line); color:var(--forest); font-size:.85rem; line-height:1.5; text-align:center; }

/* Phones and tablets: language switch and Menu button as two outlined buttons in the header bar,
   matching siamoakmont.com and walailaklaw.com. main.js moves the language item next to the Menu button. */
@media(max-width:1100px) {
  .site-header .header-inner { column-gap:10px; }
  .site-header .header-inner>.lang-item { position:relative; display:flex; margin-left:auto; align-self:center; }
  .site-header .header-inner>.lang-item .lang-toggle { min-height:36px; padding:0 10px; gap:5px; border:1px solid #bdc6b5; border-radius:8px; background:transparent; font-size:12px; color:var(--forest); }
  .site-header .header-inner>.lang-item .lang-toggle svg { width:15px; height:15px; }
  .site-header .header-inner>.lang-item .lang-toggle .caret { font-size:11px; }
  .site-header .header-inner>.lang-item>.dropdown { position:absolute; top:calc(100% + 10px); right:0; left:auto; z-index:30; display:none; width:max-content; min-width:190px; margin:0; padding:8px; border:1px solid var(--line); border-radius:8px; background:#fffdf8; box-shadow:0 16px 32px #35493e20; opacity:1; visibility:visible; transform:none; }
  .site-header .header-inner>.lang-item.submenu-open>.dropdown { display:block; }
  .site-header .header-inner>.lang-item>.dropdown a { padding:10px 12px; }
  .site-header .menu-toggle { align-self:center; display:inline-flex; align-items:center; justify-content:center; width:40px; min-height:36px; padding:0; border:1px solid #bdc6b5; border-radius:8px; background:transparent; }
  .site-header .menu-toggle span { font-size:20px; line-height:1; }
}
@media(max-width:400px) { .site-header .header-inner>.lang-item .lang-toggle svg { display:none; } }
