/* V5.8.1 — calm navigation, bilingual typography and shared location tabs. */
:root {
 --font:"Kanit",Tahoma,sans-serif;
 --serif:"Cinzel",Georgia,serif;
}
body {font-family:var(--font);font-weight:400;line-height:1.8}
button,input,textarea,select {font-family:inherit}
strong {font-weight:600}
.eyebrow,.hero-caption,.demo-tag,.wordmark small {font-family:var(--font)}
.eyebrow:lang(th) {letter-spacing:.055em;line-height:1.9}
.hero-copy h1,.section-heading h2,.design-heading h2,.story-copy h2,.visit h2 {
 line-height:1.5;letter-spacing:0;font-weight:500;
}
html:lang(en) :is(.hero-copy h1,.section-heading h2,.design-heading h2,.story-copy h2,.visit h2) {
 font-family:var(--serif);font-weight:400;line-height:1.3;letter-spacing:-.025em;
}
html:lang(en) .hero-copy h1 {font-size:clamp(32px,3.5vw,52px)}
html:lang(en) :is(.section-heading h2,.design-heading h2,.story-copy h2,.visit h2) {
 font-size:clamp(26px,2.6vw,38px);
}
html:lang(en) .story-signature {font-family:var(--serif);font-size:22px}
.story-signature {font-family:var(--font);font-style:normal;line-height:1.7}
.model-heading,.model-heading span,.model-heading strong,.modal-product-copy h2,.product-stage>.stage-label,.demo-tag[lang="en"] {
 font-family:var(--serif);
}
.button {line-height:1.6;padding-block:13px;font-weight:500;white-space:normal}
.product-stage>.stage-label {line-height:2;padding-block:3px;overflow:visible}
.view-switch button {line-height:1.9}
.product-meta,.color-heading {align-items:baseline;line-height:1.9}
.color-heading {flex-wrap:wrap}
.cookie-banner,.cookie-dialog {font-family:var(--font)}

/* The central menu stays centered independently of the logo and language controls. */
.site-header {
 display:grid;grid-template-columns:1fr auto 1fr;column-gap:28px;
 height:100px;border-bottom-color:transparent;
}
.site-header .brand-logo {width:126px;justify-self:start}
.desktop-nav {display:flex;gap:28px;font-size:14px;font-weight:400}
.desktop-nav a {display:flex;align-items:center;min-height:44px;white-space:nowrap}
.header-actions {justify-self:end;gap:22px}
.language-switch {font-family:var(--font);font-size:14px;gap:10px}
.language-switch button {font-family:inherit;min-height:44px}
.menu-button {min-width:44px;min-height:44px}
.hero-copy .eyebrow:lang(th) {letter-spacing:.1em}
.hero-caption:lang(th) {letter-spacing:.07em}
/* Reserve room for the contact dock, including its expanded labels. */
.hero-bottom {right:max(182px,4%)}
.hero-caption {gap:12px;flex-wrap:wrap}
.hero-buttons {gap:12px;margin-bottom:34px}
.hero-buttons .button {
 display:inline-flex;align-items:center;justify-content:center;gap:10px;
 flex:0 1 190px;min-width:0;min-height:50px;padding:12px 22px;
 font-family:var(--font);font-size:16px;line-height:1.5;letter-spacing:.01em;border-radius:4px;
}
.hero-buttons .button-light {border-color:#fff;background:#fff;color:#18251f}
.hero-buttons .button-light:hover {background:#edf0ec;border-color:#edf0ec}
.hero-buttons .button-glass {
 color:#fff;background:rgba(19,31,25,.52);border-color:rgba(255,255,255,.65);
 backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.hero-buttons .button-glass:hover {background:rgba(19,31,25,.78);border-color:#fff}
.contact-icon {width:20px;height:20px;flex:none}
.contact-actions {display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.contact-actions .button {flex:1 1 160px;min-width:0;margin-top:0}
.visit .contact-actions {max-width:550px;margin:30px auto 0;justify-content:center}
.modal-product-copy .contact-actions {gap:10px}
.modal-product-copy .contact-actions .button {font-size:14px}

/* Both panels share one grid cell, preserving space for the taller translation. */
.locations {background:#f6f7f4;padding-top:88px;padding-bottom:94px}
.locations .section-heading {margin-bottom:0}
.location-tabs {
 position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 max-width:440px;margin:38px auto 0;border-bottom:1px solid #cdd3cd;
}
.location-tabs[hidden] {display:none}
.location-tabs::after {
 content:"";position:absolute;left:0;bottom:-1px;width:50%;height:2px;
 background:#1d3027;transform:translateX(calc(var(--location-index,0) * 100%));
 transition:transform .22s ease;pointer-events:none;
}
.location-tabs button {
 position:relative;width:100%;padding:14px 16px;min-height:54px;
 font-family:var(--font);font-size:17px;font-weight:400;line-height:1.5;color:#626d65;
 transition:color .18s ease,background .18s ease;
}
.location-tabs button:hover {color:#172b22;background:#1d302705}
.location-tabs button[aria-selected="true"] {color:#172b22;font-weight:500}
.location-tabs button:focus-visible {outline:2px solid #806632;outline-offset:4px;border-radius:2px}
.location-panels {max-width:1000px;margin:0 auto}
.location-panel {
 display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
 align-content:start;gap:56px;padding:48px 0 12px;min-width:0;
}
.locations[data-tabs-ready] .location-panels {display:grid}
.locations[data-tabs-ready] .location-panel {grid-area:1/1}
.locations[data-tabs-ready] .location-panel[aria-hidden="true"] {visibility:hidden;opacity:0;pointer-events:none}
.locations[data-tabs-ready] .location-panel[aria-hidden="false"] {animation:location-reveal .2s ease both}
.location-panel:focus-visible {outline:2px solid #806632;outline-offset:10px}
.location-identity>.eyebrow {font-size:11px;line-height:1.8;letter-spacing:.14em;color:#6c755f;margin:0 0 12px}
.location-identity h3 {font-family:var(--font);font-size:28px;font-weight:500;line-height:1.5;letter-spacing:0;margin:0}
.location-details {min-width:0;padding-top:3px}
.location-details address {
 max-width:470px;font-style:normal;font-size:17px;font-weight:400;line-height:1.85;
 color:#4d5d52;text-wrap:pretty;
}
.location-actions {display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;margin-top:26px}
.location-actions .button {
 display:inline-flex;align-items:center;justify-content:center;gap:8px;
 min-width:160px;min-height:48px;margin:0;padding:12px 24px;font-size:15px;
}
.location-actions svg {width:19px;height:19px;flex:none}
.location-map-link {
 display:inline-flex;align-items:center;gap:8px;min-height:44px;
 font-size:15px;color:#34493d;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#34493d66;
}
.location-map-link:hover {color:#12281a;text-decoration-color:currentColor}
@keyframes location-reveal {from {opacity:0} to {opacity:1}}
@media(max-width:1060px) {
 .site-header {grid-template-columns:1fr auto;column-gap:16px}
 .desktop-nav {display:none}
 .header-actions {gap:16px}
}
@media(max-width:760px) {
 .site-header {height:92px;padding-inline:20px}
 .site-header .brand-logo {width:106px}
 .header-actions {gap:12px}
 .language-switch {font-size:13px;gap:7px}
 .hero-copy h1 {line-height:1.5}
 html:lang(en) .hero-copy h1 {max-width:540px;margin-inline:auto;font-size:clamp(29px,7vw,38px);line-height:1.3}
 .hero-buttons {flex-direction:row;max-width:400px;margin:0 auto 26px;gap:10px}
 .hero-buttons .button {flex:1 1 0;min-height:48px;padding:12px 10px;font-size:15px;gap:8px}
 .contact-icon {width:18px;height:18px}
 .contact-actions {gap:10px}
 .contact-actions .button {flex-basis:calc(50% - 5px);font-size:14px;padding-inline:10px}
 .product-stage>.stage-label {font-size:11px;letter-spacing:1.5px}
 .info-dialog h2 {line-height:1.6}
 .info-dialog>p,.cookie-banner p {line-height:1.9}
 .menu-dialog nav {gap:16px;margin-top:30px}
 .menu-dialog nav a {font-size:23px;line-height:1.8}
 .modal-product-copy h2 {font-size:clamp(22px,6vw,28px);overflow-wrap:normal}
 .locations {padding-top:64px;padding-bottom:64px}
 .location-tabs {max-width:420px;margin-top:28px}
 .location-tabs button {font-size:16px;min-height:52px}
 .location-panel {grid-template-columns:minmax(0,1fr);gap:20px;padding:30px 0 8px}
 .location-identity h3 {font-size:24px}
 .location-identity>.eyebrow {font-size:10px;margin-bottom:10px}
 .location-details {padding:0}
 .location-details address {max-width:100%;font-size:16px;line-height:1.9}
 .location-actions {gap:12px 20px;margin-top:22px}
 .location-actions .button {min-width:148px}
}
@media(max-width:360px) {
 .site-header {padding-inline:14px;column-gap:10px}
 .site-header .brand-logo {width:92px}
 .header-actions {gap:6px}
 .language-switch {gap:5px;font-size:12px}
 .hero-buttons .button {gap:7px;padding-inline:8px;font-size:14px}
 .contact-actions .button {flex-basis:100%}
 .location-actions .button {min-width:130px;padding-inline:18px}
 .location-actions {column-gap:16px}
}
@media(prefers-reduced-motion:reduce) {
 .location-tabs::after,.location-tabs button {transition:none}
 .locations[data-tabs-ready] .location-panel[aria-hidden="false"] {animation:none}
}

/* V5.8.2 — embedded maps, direct floating contacts and a single enquiry action. */
.enquiry-actions {margin-top:28px}
.enquiry-trigger {
 display:inline-flex;align-items:center;justify-content:center;gap:24px;
 min-width:240px;min-height:50px;padding:13px 25px;border-radius:4px;
 font-family:var(--font);font-size:16px;font-weight:400;
}
.enquiry-arrow {flex:none;width:20px;height:20px}
.enquiry-trigger .enquiry-arrow {transition:transform .18s ease}
.enquiry-trigger:hover .enquiry-arrow {transform:translateX(3px)}
.visit .enquiry-actions {margin:30px auto 0}
.visit .enquiry-trigger {margin-top:0}
.modal-product-copy .enquiry-trigger {width:100%;min-width:0;gap:16px}
.floating-contact {
 position:fixed;z-index:32;right:max(18px,env(safe-area-inset-right,0px));
 bottom:max(var(--contact-clearance,20px),calc(20px + env(safe-area-inset-bottom,0px)));
 display:flex;flex-direction:column;align-items:flex-end;gap:9px;width:auto;
}
.floating-contact a {
 display:flex;flex-direction:row-reverse;align-items:center;justify-content:flex-start;gap:0;
 flex:none;width:48px;height:48px;min-height:48px;padding:0 13px;
 overflow:hidden;border:1px solid #ffffff60;border-radius:26px;
 color:#203728;background:linear-gradient(135deg,#ffffffa3,#eff4e899);
 box-shadow:0 3px 15px #172b2010;backdrop-filter:blur(14px) saturate(110%);
 -webkit-backdrop-filter:blur(14px) saturate(110%);
 font-family:var(--font);font-size:14px;font-weight:500;line-height:1.5;
 transition:width .24s ease,gap .24s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.floating-contact a>span {
 display:block;min-width:0;max-width:0;overflow:hidden;opacity:0;
 white-space:nowrap;transform:translateX(5px);pointer-events:none;
 transition:max-width .24s ease,opacity .16s ease,transform .24s ease;
}
.floating-contact .contact-icon {width:20px;height:20px;flex:none}
.floating-contact a:focus-visible {
 width:148px;gap:10px;background:linear-gradient(135deg,#ffffffdf,#f0f5e8bd);
 outline:2px solid #806632;outline-offset:4px;
}
.floating-contact a:focus-visible>span {max-width:96px;opacity:1;transform:translateX(0)}
@media(hover:hover) and (pointer:fine) {
 .floating-contact a:hover {
  width:148px;gap:10px;background:linear-gradient(135deg,#ffffffdf,#f0f5e8bd);
  border-color:#ffffffa3;box-shadow:0 4px 20px #172b201a;
 }
 .floating-contact a:hover>span {max-width:96px;opacity:1;transform:translateX(0)}
}
body:has(dialog[open]) .floating-contact {visibility:hidden}
.contact-dialog {
 width:540px;max-width:calc(100vw - 32px);max-height:calc(100svh - 40px);
 padding:30px 32px 24px;border:1px solid #e0e5dc;border-radius:14px;
 background:#fffffc;color:#203128;box-shadow:0 22px 80px #10251b30;overflow:auto;
 overscroll-behavior:contain;
}
.contact-dialog[open] {animation:contact-reveal .18s ease both}
.contact-dialog::backdrop {background:#0c211770;backdrop-filter:blur(4px)}
.contact-dialog .dialog-top {align-items:center;margin-bottom:12px}
.contact-dialog .dialog-top .eyebrow {margin:0;font-family:var(--serif);font-size:11px;letter-spacing:.13em;color:#6f795f}
.contact-dialog .close-button {margin:-8px -10px -8px 0;color:#4c5f50;border-radius:50%}
.contact-dialog .close-button:hover {background:#edf1e9}
.contact-dialog h2 {margin:0 0 12px;font-family:var(--font);font-size:30px;font-weight:500;line-height:1.45}
html:lang(en) .contact-dialog h2 {font-family:var(--serif);font-size:29px;font-weight:400;line-height:1.35}
.contact-dialog>p {margin:0;color:#627064;font-size:15px;line-height:1.8}
.enquiry-context {display:flex;align-items:center;gap:14px;margin:24px 0 12px;padding:16px 18px;background:#f3f5ef;border-radius:7px}
.enquiry-context p {margin:0 0 2px;font-family:var(--serif);font-size:14px;color:#273a2c}
.enquiry-context div>span {font-size:13px;color:#6a766a}
.enquiry-swatch {flex:none;width:24px;height:24px;border:3px solid #fff;border-radius:50%;background:var(--enquiry-color,#203b63);box-shadow:0 0 0 1px #d7ddd2}
.contact-dialog[data-color="burgundy"] {--enquiry-color:#662128}
.contact-dialog[data-color="olive"] {--enquiry-color:#565b36}
.contact-choices {display:grid;gap:4px}
.contact-choice {
 display:grid;grid-template-columns:44px minmax(0,1fr) 20px;align-items:center;gap:14px;
 min-height:88px;padding:16px 8px;border-bottom:1px solid #e7ebe3;
 border-radius:5px;transition:background .18s ease;
}
.contact-choice:hover {background:#f6f8f2}
.contact-choice-icon {width:44px;height:44px;display:grid;place-items:center;border:1px solid #dce2d6;border-radius:50%;color:#304b33;background:#fafbf7}
.contact-choice-icon .contact-icon {width:23px;height:23px}
.contact-choice-copy {display:flex;flex-direction:column;gap:4px;min-width:0}
.contact-choice-copy strong {font-size:16px;font-weight:500;line-height:1.5}
.contact-choice-copy>span {font-size:13px;font-weight:400;color:#6a7769;line-height:1.7}
.contact-choice>.enquiry-arrow {color:#677a65}
.contact-dialog>.contact-dialog-note {margin-top:20px;font-size:12px;color:#778271;line-height:1.8}
.location-panel {row-gap:32px}
.location-map {grid-column:1/-1;min-width:0}
.location-map iframe {
 display:block;width:100%;height:400px;border:0;border-radius:8px;
 background:#e9eee5;
}
.location-map-credit {margin:10px 0 0;font-size:12px;color:#74816f;line-height:1.6}
@keyframes contact-reveal {from {opacity:0;transform:translateY(6px)} to {opacity:1;transform:translateY(0)}}
@media(max-width:760px) {
 .floating-contact {right:max(12px,env(safe-area-inset-right,0px));gap:8px}
 .floating-contact a {width:46px;height:46px;min-height:46px;padding:0 12px}
 .enquiry-trigger {min-width:0;width:100%;font-size:15px;justify-content:space-between;padding-inline:22px}
 .visit .enquiry-actions {max-width:340px}
 .contact-dialog {
  position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:100%;
  max-height:calc(100svh - 24px);border-radius:20px 20px 0 0;
  padding:24px 22px max(26px,env(safe-area-inset-bottom,0px));
 }
 .contact-dialog h2 {font-size:27px}
 html:lang(en) .contact-dialog h2 {font-size:26px}
 .contact-dialog>p {font-size:14px}
 .enquiry-context {margin-top:20px;padding:14px}
 .contact-choice {grid-template-columns:40px minmax(0,1fr) 18px;gap:12px;padding:15px 4px;min-height:82px}
 .contact-choice-icon {width:40px;height:40px}
 .contact-choice-copy strong {font-size:15px}
 .contact-choice-copy>span {font-size:12px}
 .location-map iframe {height:320px}
 .location-panel {row-gap:24px}
}
@media(max-width:360px) {
 .contact-dialog {padding-inline:18px}
 .contact-choice {gap:10px}
 .contact-choice-copy strong {font-size:14px}
 .enquiry-context p {font-size:13px}
 .location-map iframe {height:280px}
}
@media(prefers-reduced-motion:reduce) {
 .contact-dialog[open] {animation:none}
 .enquiry-trigger .enquiry-arrow,.floating-contact a,.floating-contact a>span,.contact-choice {transition:none}
}
@media(max-height:500px) {
 .floating-contact {flex-direction:row;width:auto;gap:8px}
 .floating-contact {align-items:center}
}
/* Respect the visitor's transparency and high-contrast preferences. */
@media(prefers-reduced-transparency:reduce) {
 .floating-contact a,.floating-contact a:is(:hover,:focus-visible) {background:#f4f6ef;backdrop-filter:none;-webkit-backdrop-filter:none}
}
@media(forced-colors:active) {
 .floating-contact a,.floating-contact a:is(:hover,:focus-visible) {border:1px solid ButtonText;background:Canvas;color:ButtonText;box-shadow:none}
}
