/* SOUL HOME THAI V2 — NIGHT CONCIERGE / LOCAL DOSSIER */

:root {
  --ink: #15120f;
  --ink-2: #1d1814;
  --ink-3: #29211b;
  --paper: #f3ede3;
  --paper-soft: #d5cabe;
  --muted: #ad9f92;
  --mint: #d99a67;
  --mint-pale: #ffe1c6;
  --coral: #7bc4a8;
  --line: rgba(217, 154, 103, .22);
  --line-soft: rgba(243, 237, 227, .1);
  --frame: 76rem;
}

html { background: var(--ink); }

body.theme-v2 {
  background:
    radial-gradient(circle at var(--mx) var(--my), rgba(217,154,103,.13), transparent 25rem),
    radial-gradient(circle at 12% 76%, rgba(123,196,168,.07), transparent 28rem),
    var(--ink);
}

body.theme-v2::before {
  opacity: .045;
  background-image:
    repeating-linear-gradient(0deg, transparent 0 4px, rgba(255,255,255,.28) 5px),
    repeating-linear-gradient(90deg, transparent 0 7px, rgba(255,255,255,.18) 8px);
}

.theme-v2 .frame {
  background:
    linear-gradient(90deg, transparent calc(33.333% - .5px), var(--line-soft) 33.333%, transparent calc(33.333% + .5px)),
    linear-gradient(90deg, transparent calc(66.666% - .5px), var(--line-soft) 66.666%, transparent calc(66.666% + .5px)),
    var(--ink);
}

.theme-v2 .frame::before,
.theme-v2 .frame::after {
  border-radius: 0;
  opacity: .55;
}

.theme-v2 .frame::before {
  top: 13rem;
  right: -11rem;
  width: 31rem;
  height: 31rem;
  transform: rotate(18deg);
  box-shadow: 0 0 0 4rem rgba(217,154,103,.018), 0 0 0 8rem rgba(217,154,103,.01);
}

.theme-v2 .frame::after {
  top: 52rem;
  left: -7rem;
  width: 15rem;
  height: 23rem;
  border-color: rgba(123,196,168,.2);
  transform: rotate(-13deg);
}

.theme-v2 .page-progress {
  height: 3px;
  background: linear-gradient(90deg, var(--coral), var(--mint) 52%, #f6cfad);
  box-shadow: 0 0 1.2rem rgba(217,154,103,.7);
}

.theme-v2 .site-header {
  min-height: 5rem;
  border-bottom-color: rgba(217,154,103,.18);
  background: rgba(21,18,15,.8);
  backdrop-filter: blur(18px) saturate(1.15);
}

.theme-v2 .site-header nav a { color: #c5b9ad; letter-spacing: .06em; }
.theme-v2 .site-header nav a::after { background: var(--mint); }
.theme-v2 .eyebrow { color: var(--coral); }
.theme-v2 .hero h1 em,
.theme-v2 .page-hero h1 em { color: var(--mint); }
.theme-v2 .hero h1,
.theme-v2 .page-hero h1,
.theme-v2 .sec-head h2,
.theme-v2 .local-plan h2,
.theme-v2 .guide-intro h2 {
  letter-spacing: -.045em;
  text-wrap: balance;
  word-break: keep-all;
}

.theme-v2 .hero-sub,
.theme-v2 .sec-head p,
.theme-v2 .local-plan p,
.theme-v2 .region-lead p {
  text-wrap: pretty;
  word-break: keep-all;
}

.theme-v2 .btn { border-radius: 0; }
.theme-v2 .btn--gold {
  color: #18120e;
  background: var(--mint);
  box-shadow: 0 0 0 1px rgba(217,154,103,.2), 0 1rem 2.5rem rgba(0,0,0,.22);
}
.theme-v2 .btn--gold:hover { background: #f1b27e; }
.theme-v2 .btn--ghost { border-color: rgba(243,237,227,.22); }

/* Home: reverse the editorial split while keeping the same imagery. */
@media (min-width: 60.01rem) {
  .theme-v2.page-home .hero {
    grid-template-columns: minmax(20rem,.9fr) minmax(28rem,1.1fr);
    column-gap: clamp(2.5rem,5vw,5.5rem);
  }
  .theme-v2.page-home .hero > :not(.hero-figure, .hero-thai) { grid-column: 2; }
  .theme-v2.page-home .hero-figure {
    grid-column: 1;
    grid-row: 1 / span 6;
    justify-self: stretch;
  }
  .theme-v2.page-home .hero-thai { right: -1rem; left: auto; text-align: right; }
}

.theme-v2 .hero-figure {
  clip-path: polygon(0 9%, 12% 0, 100% 0, 100% 91%, 88% 100%, 0 100%);
  background: #2a211a;
  box-shadow: 0 2rem 5rem rgba(0,0,0,.35);
}

.theme-v2 .hero-figure::before {
  border-color: rgba(217,154,103,.72);
  clip-path: polygon(0 9%, 12% 0, 100% 0, 100% 91%, 88% 100%, 0 100%);
}

.theme-v2 .hero-figure::after {
  background: linear-gradient(180deg, transparent 54%, rgba(21,18,15,.76));
}

.theme-v2 .hero-figure img {
  filter: saturate(.82) contrast(1.035) sepia(.06);
  transform: scale(1.035);
}

.theme-v2 .hero-note {
  border: 1px solid rgba(217,154,103,.28);
  background: rgba(21,18,15,.88);
  backdrop-filter: blur(12px);
}

.theme-v2 .hero-note strong { color: var(--mint-pale); }
.theme-v2 .hero-kws span { border-radius: 0; }
.theme-v2 .hero-kws span:first-child { color: var(--coral); }
.theme-v2 .marquee { color: #241b15; background: var(--mint); }
.theme-v2 .marquee i { color: #486f61; }

.theme-v2 .stats { border-color: rgba(217,154,103,.2); }
.theme-v2 .stat b { color: var(--mint-pale); }
.theme-v2 .stat b small { color: var(--coral); }

.theme-v2 .area-card { border-radius: 0; }
.theme-v2 .area-card::after {
  background: linear-gradient(180deg, transparent 38%, rgba(21,18,15,.94));
}
.theme-v2 .area-card img { filter: saturate(.72) contrast(1.04); }
.theme-v2 .area-card:hover img { filter: saturate(.98) contrast(1.04); }
.theme-v2 .chip-live { color: #17231e; background: var(--coral); border-radius: 0; }

/* Region hero variants: each hierarchy receives a different spatial signature. */
.theme-v2.page-region .page-hero {
  min-height: 41rem;
  grid-template-columns: minmax(0,1.12fr) minmax(20rem,.88fr);
  column-gap: clamp(2.5rem,6vw,6rem);
}

.theme-v2.page-region .page-hero h1 { max-width: 13ch; }
.theme-v2.page-region .page-hero .hero-figure { max-width: 25rem; }

.theme-v2.page-metro .page-hero .hero-figure {
  clip-path: polygon(10% 0,100% 0,100% 88%,88% 100%,0 100%,0 12%);
}

.theme-v2.page-district.layout-1 .page-hero {
  grid-template-columns: minmax(19rem,.8fr) minmax(0,1.2fr);
}
.theme-v2.page-district.layout-1 .page-hero > :not(.hero-figure) { grid-column: 2; }
.theme-v2.page-district.layout-1 .page-hero .hero-figure { grid-column: 1; }

.theme-v2.page-dong .page-hero .hero-figure {
  max-width: 21rem;
  justify-self: end;
  clip-path: polygon(0 0,88% 0,100% 12%,100% 100%,12% 100%,0 88%);
}

.theme-v2.page-dong.layout-2 .page-hero .hero-figure { transform: translateY(2.5rem) rotate(1.2deg); }

/* Unique regional lead: ivory editorial insert rather than another dark paragraph. */
.theme-v2 .region-lead {
  color: #241b15;
  background:
    linear-gradient(90deg, rgba(217,154,103,.14), transparent 34%),
    var(--paper);
  border-block: 1px solid rgba(36,27,21,.12);
}

.theme-v2 .region-lead__copy {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 0;
  counter-reset: lead;
}

.theme-v2 .region-lead__copy p {
  position: relative;
  min-height: 15rem;
  padding: 3rem 2.2rem 1.5rem;
  border-right: 1px solid rgba(36,27,21,.13);
  color: #4b3e34;
  font-size: .86rem;
  line-height: 1.9;
  counter-increment: lead;
}

.theme-v2 .region-lead__copy p:last-child { border-right: 0; }
.theme-v2 .region-lead__copy p::before {
  content: "0" counter(lead);
  display: block;
  margin-bottom: 2rem;
  color: #9d6036;
  font: 500 .66rem/1 var(--mono);
  letter-spacing: .16em;
}

/* Page-specific brief: four factual cards, always paired. */
.theme-v2 .local-plan {
  display: grid;
  grid-template-columns: minmax(15rem,.58fr) minmax(0,1.42fr);
  gap: 3rem 4rem;
  background: var(--ink-2);
}

.theme-v2 .local-plan__head { align-self: start; }
.theme-v2 .local-plan__head h2 {
  max-width: 10ch;
  margin-top: 1rem;
  font: 600 clamp(2.2rem,4vw,4rem)/1.13 var(--serif);
}
.theme-v2 .local-plan__head > p { margin-top: 1rem; color: var(--muted); font-size: .84rem; }

.theme-v2 .local-plan__grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}

.theme-v2 .local-plan__grid article {
  min-height: 18rem;
  padding: 1.5rem;
  background: #211b16;
  transition: background .35s var(--ease), transform .35s var(--ease);
}
.theme-v2 .local-plan__grid article:hover { z-index: 1; background: #30251d; transform: translateY(-4px); }
.theme-v2 .local-plan__grid small { color: var(--coral); font: 500 .61rem/1 var(--mono); letter-spacing: .13em; }
.theme-v2 .local-plan__grid h3 { margin-top: 3.8rem; font: 600 1.18rem/1.4 var(--serif); }
.theme-v2 .local-plan__grid p { margin-top: .8rem; color: var(--muted); font-size: .78rem; line-height: 1.82; }

.theme-v2 .local-consult {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: .58fr 1fr 1fr;
  gap: 1px;
  padding: 1px;
  color: #2d2119;
  background: rgba(36,27,21,.15);
  box-shadow: 0 1.5rem 4rem rgba(0,0,0,.18);
}

.theme-v2 .local-consult > span,
.theme-v2 .local-consult > p { padding: 1.25rem; background: var(--paper); }
.theme-v2 .local-consult > span { color: #925b38; font: 500 .63rem/1.5 var(--mono); letter-spacing: .13em; }
.theme-v2 .local-consult p { font-size: .8rem; line-height: 1.72; }
.theme-v2 .local-consult b { display: block; margin-bottom: .55rem; color: #6f4931; font-size: .68rem; }

.theme-v2.page-metro .local-plan { background: #191d19; }
.theme-v2.page-district .local-plan--1 .local-plan__head { order: 2; }
.theme-v2.page-district .local-plan--1 .local-plan__grid { order: 1; }
.theme-v2.page-dong .local-plan { grid-template-columns: minmax(0,1.25fr) minmax(14rem,.75fr); }
.theme-v2.page-dong .local-plan__head { grid-column: 2; }
.theme-v2.page-dong .local-plan__grid { grid-column: 1; grid-row: 1; }

.theme-v2 .sub-index { background: rgba(20,17,14,.82); }
.theme-v2 .sub-links a { border-radius: 0; border-color: rgba(217,154,103,.22); }
.theme-v2 .sub-links a.hot { color: #1d1712; background: var(--mint); border-color: var(--mint); }

.theme-v2.page-region .price-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.theme-v2.page-region .price-card { min-height: 20rem; }
.theme-v2 .price-card { background: #f1eadf; }
.theme-v2 .price-card:hover { background: #2c221b; }
.theme-v2 .price-card > i { color: #9b6038; }
.theme-v2 .price-lines strong { color: #795036; }

.theme-v2 .guide-grid { border-color: rgba(217,154,103,.2); background: rgba(217,154,103,.2); }
.theme-v2 .guide-grid article,
.theme-v2 .guide-cta { background: #201a16; }
.theme-v2 .guide-cta { color: #24180f; background: var(--mint); }
.theme-v2 .guide-cta:hover { background: var(--coral); }
.theme-v2 .guide-neighbors a { border-color: rgba(217,154,103,.22); }

.theme-v2 .faq details { border-color: rgba(217,154,103,.2); }
.theme-v2 .faq summary::after { color: var(--mint); }
.theme-v2 .hub-banner { color: #241b15; background: linear-gradient(135deg,#e8d9c8,#cde4da); }
.theme-v2 .hub-banner .eyebrow { color: #875333; }
.theme-v2 .hub-banner p { color: #56453a; }
.theme-v2 .hub-banner .btn--gold { color: var(--paper); background: #241b15; }

/* Chapter indicator created by experience-v2.js. */
.chapter-indicator {
  display: none;
  position: fixed;
  top: 50%;
  left: max(1rem,calc((100vw - var(--frame))/2 + 1.1rem));
  z-index: 18;
  width: 2.6rem;
  transform: translateY(-50%);
  color: rgba(243,237,227,.55);
  pointer-events: none;
}
.chapter-indicator span { display: block; font: 500 .63rem/1 var(--mono); letter-spacing: .12em; }
.chapter-indicator i { display: block; width: 1px; height: 4.5rem; margin: .8rem 0; background: rgba(243,237,227,.16); }
.chapter-indicator i::after { content:""; display:block; width:1px; height:var(--chapter-progress,0%); background:var(--mint); transition:height .45s var(--ease); }
.chapter-indicator b { color: var(--mint); font: 500 .63rem/1 var(--mono); }

@media (min-width: 86rem) {
  .chapter-indicator { display: block; }
  .theme-v2 .rail::after { background: linear-gradient(180deg,rgba(21,18,15,.36),rgba(21,18,15,.88)); }
}

@media (max-width: 60rem) {
  .theme-v2 .region-lead__copy { grid-template-columns: 1fr; }
  .theme-v2 .region-lead__copy p { min-height: auto; border-right: 0; border-bottom: 1px solid rgba(36,27,21,.13); }
  .theme-v2 .region-lead__copy p:last-child { border-bottom: 0; }
  .theme-v2 .local-plan,
  .theme-v2.page-dong .local-plan { grid-template-columns: 1fr; }
  .theme-v2.page-dong .local-plan__head,
  .theme-v2.page-dong .local-plan__grid { grid-column: auto; grid-row: auto; }
  .theme-v2.page-district .local-plan--1 .local-plan__head,
  .theme-v2.page-district .local-plan--1 .local-plan__grid { order: initial; }
  .theme-v2 .local-consult { grid-template-columns: 1fr; }
}

@media (max-width: 46rem) {
  .theme-v2 .site-header { min-height: 4.4rem; background: rgba(21,18,15,.92); }
  .theme-v2 .hero,
  .theme-v2 .page-hero { padding-top: 3.2rem; }
  .theme-v2 .hero h1,
  .theme-v2 .page-hero h1 { font-size: clamp(2.45rem,11.8vw,3.45rem); line-height: 1.13; }
  .theme-v2 .hero-figure,
  .theme-v2 .page-hero .hero-figure {
    width: calc(100% + 1.1rem);
    clip-path: polygon(0 8%,10% 0,100% 0,100% 92%,90% 100%,0 100%);
  }
  .theme-v2.page-dong.layout-2 .page-hero .hero-figure { transform: none; }
  .theme-v2 .region-lead__copy p { padding: 2rem 1.1rem; font-size: .82rem; }
  .theme-v2 .region-lead__copy p::before { margin-bottom: 1rem; }
  .theme-v2 .local-plan { gap: 2rem; }
  .theme-v2 .local-plan__head h2 { max-width: 12ch; font-size: 2.5rem; }
  .theme-v2 .local-plan__grid { grid-template-columns: 1fr; }
  .theme-v2 .local-plan__grid article { min-height: 13rem; }
  .theme-v2 .local-plan__grid h3 { margin-top: 2.2rem; }
  .theme-v2.page-region .price-grid { grid-template-columns: 1fr; }
  .theme-v2 .local-consult > span,
  .theme-v2 .local-consult > p { padding: 1rem; }
  .theme-v2 .callbar {
    border-radius: 0;
    transform: none !important;
    will-change: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .chapter-indicator i::after { transition: none; }
}
