@font-face{font-family:'Noto Thai';src:url('assets/thai-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Noto Thai';src:url('assets/thai-semibold.ttf') format('truetype');font-weight:500 800;font-display:swap}
@font-face{font-family:Jakarta;src:url('assets/jakarta.ttf') format('truetype');font-weight:500 800;font-display:swap}
:root{
  --navy:#16254c;--navy-hover:#263a68;--lemon:#e6e624;--lemon-hover:#f2f241;
  --ink:#2b3851;--muted:#626b7b;--white:#fff;--surface:#f8fafc;--border:#e8ecf2;
  --on-dark-muted:#c7cddd;--focus:#a94c00;--tint-blue:#edf1f9;--tint-lemon:#f8f8d7;
  --tint-rose:#f7ecef;--tint-lilac:#f0ecf7;--tint-peach:#fbefe8
}
*{box-sizing:border-box;letter-spacing:0}
html{scroll-behavior:smooth;scroll-padding-top:112px}
body{margin:0;background:var(--white);color:var(--ink);font:16px/1.75 'Noto Thai',sans-serif}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
a,button,summary{transition:background-color .18s,color .18s,border-color .18s}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:5px}
section:focus{outline:none}
svg{width:22px;height:22px;stroke-width:1.7;flex-shrink:0}
img{max-width:100%;display:block}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-weight:600;line-height:1.5}
h2{font-size:32px;font-weight:500;text-wrap:balance}
h3{font-size:20px}
.container{width:calc(100% - 96px);max-width:1200px;margin-inline:auto}
.section{padding-block:88px}
.eyebrow{color:var(--muted);font:600 11px/1.7 Jakarta,sans-serif;margin-bottom:16px}
.on-dark{color:var(--lemon)}
.muted{color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:-100px;left:16px;padding:12px 18px;background:var(--white);z-index:100}
.skip-link:focus{top:12px}
.topbar{background:var(--surface);border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}
.topbar .container{display:flex;justify-content:space-between;gap:12px;padding-block:7px}
.topbar span span{padding-inline:8px}
.site-header{position:sticky;top:0;z-index:30;background:var(--white);border-bottom:1px solid var(--border)}
.header-inner{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:block;flex-shrink:0;padding:8px 0}
.brand img{width:162px;height:auto}
nav{display:flex;align-items:center;gap:27px}
nav a{font-size:14px;min-height:44px;display:inline-flex;align-items:center}
nav a:hover{text-decoration:underline;text-decoration-color:var(--lemon);text-decoration-thickness:3px;text-underline-offset:9px}
.header-actions{display:flex;align-items:center;gap:12px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;border:1px solid transparent;border-radius:8px;padding:12px 21px;font-size:15px;font-weight:500;line-height:1.6;text-align:center}
.button-lemon{background:var(--lemon);color:var(--navy)}
.button-lemon:hover{background:var(--lemon-hover)}
.button-navy{background:var(--navy);color:var(--white)}
.button-navy:hover{background:var(--navy-hover)}
.button-outline{border-color:#a4acbc;background:transparent;color:var(--navy)}
.button-outline:hover{background:var(--surface);border-color:var(--navy)}
.header-line{font-size:13px;min-height:46px;padding:10px 16px}
.header-line svg{width:19px}
.icon-button{min-width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--border);border-radius:5px;background:var(--white)}
.icon-button:hover{background:var(--surface)}
.menu-toggle{display:none}
.hero{background:var(--white);color:var(--navy);overflow:hidden;border-bottom:1px solid var(--border)}
.hero-inner{min-height:550px;position:relative;padding-top:48px;padding-bottom:66px}
.hero-copy{position:relative;width:52%;z-index:1}
.hero .eyebrow{margin-bottom:20px}
.hero h1{font-size:29px;font-weight:500;line-height:1.4}
.hero h1 span{display:block;font-size:68px;font-weight:500;margin:4px 0 16px;line-height:1.35}
.hero-promise{font-size:21px;line-height:1.8;color:var(--ink)}
.hero-description{font-size:15px;color:var(--muted);margin-top:16px}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:28px}
.hero-actions .button{font-size:14px;padding-inline:18px}
.hero-actions .button svg{width:19px}
.text-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;color:var(--navy);font-size:14px;font-weight:500}
.text-link:hover{text-decoration:underline;text-underline-offset:6px}
.text-link.on-dark{color:var(--white)}
.text-link svg{width:18px}
.hero-brand{position:absolute;width:39%;height:auto;right:3%;top:50%;transform:translateY(-55%)}
.hero-caption{position:absolute;bottom:28px;right:0;width:44%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.hero-caption span{font:500 10px/1.8 Jakarta,sans-serif;color:var(--muted)}
.hero-caption a{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--border);border-radius:50%}
.hero-caption a:hover{background:var(--tint-lemon);border-color:var(--lemon);color:var(--navy)}
.value-strip{border-bottom:1px solid var(--border);background:var(--surface)}
.value-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-block:28px}
.value-grid>div{display:flex;align-items:center;justify-content:center;gap:18px;padding:8px 20px;border-right:1px solid var(--border)}
.value-grid>div:first-child{justify-content:flex-start;padding-left:0}
.value-grid>div:last-child{justify-content:flex-end;border:0;padding-right:0}
.value-grid svg{color:var(--navy);width:30px;height:30px}
.value-grid span{font-size:15px;font-weight:500}
.value-grid small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:38px}
.section-intro{color:var(--muted);font-size:14px}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.service{border:1px solid var(--border);border-radius:8px;padding:28px;min-height:240px;display:flex;align-items:flex-start;flex-direction:column;box-shadow:0 4px 18px #16254c04}
.service-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;margin-bottom:22px;color:var(--navy)}
.tint-blue{background:var(--tint-blue)}.tint-lemon{background:var(--tint-lemon)}.tint-rose{background:var(--tint-rose)}.tint-lilac{background:var(--tint-lilac)}.tint-peach{background:var(--tint-peach)}
.service h3{font-size:18px;font-weight:500;margin-bottom:10px}
.service p{color:var(--muted);font-size:14px;margin-bottom:24px}
.service-link{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:44px;font-size:13px;color:var(--navy)}
.service-link:hover{text-decoration:underline;text-underline-offset:5px}
.service-link svg{width:18px}
.ortho-section{padding-block:72px;background:var(--surface);color:var(--navy)}
.ortho-section h2{font-size:32px}
.ortho-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:stretch}
.ortho-grid article{border-top:1px solid #cdd5e2;padding-top:26px;min-width:0}
.item-number{color:var(--muted);font:500 12px/1.8 Jakarta,sans-serif}
.ortho-grid h3{font-size:21px;margin-top:12px}
.ortho-grid p{font-size:14px;color:var(--muted);min-height:48px;margin:10px 0 20px}
.ortho-price{color:var(--navy);font:500 25px/1.8 Jakarta,'Noto Thai',sans-serif;font-variant-numeric:tabular-nums}
.ortho-price small{font:400 13px/1.8 'Noto Thai',sans-serif}
.ortho-note{font-size:12px;color:var(--muted);margin-top:32px}
.doctors-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;max-width:620px;margin-inline:auto}
.doctor-photo{overflow:hidden;background:#d0ced0;aspect-ratio:4/4.7;width:220px;max-width:100%;margin-inline:auto;border-radius:8px}
.doctor-photo img{width:100%;height:100%;object-fit:cover;object-position:center 32%}
.doctor figcaption{text-align:center;padding:18px 0 20px}
.doctor figcaption>span{display:block;color:var(--muted);font-size:14px;margin-bottom:4px}
.doctor figcaption h3{font-size:18px;font-weight:500}
.doctors-contact{margin-top:30px;text-align:center}
.doctors-contact p{font-size:14px;color:var(--muted);margin-bottom:6px}
.prices-section{padding-block:80px;background:var(--surface)}
.price-notice{display:flex;gap:12px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:14px;margin-bottom:36px}
.price-notice svg{width:20px;height:20px;margin-top:2px}
.price-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px}
.price-group{scroll-margin-top:24px;min-width:0}
.price-group h3{font-size:19px;margin-bottom:20px}
table{width:100%;border-collapse:collapse;font-size:14px}
thead th{color:var(--muted);font-size:12px;font-weight:400;padding:10px 0 12px;border-bottom:1px solid #acb4c3}
th{text-align:left}
tbody th{font-weight:400}
tbody th,tbody td{padding:15px 0;border-bottom:1px solid var(--border)}
tbody td,thead th:last-child{text-align:right}
tbody th{padding-right:16px}
tbody th small{display:block;color:var(--muted);font-size:11px}
tbody td{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--navy)}
.price-followup{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:36px}
.price-followup p{color:var(--muted);font-size:14px}
.branches-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.branch{border:1px solid var(--border);border-radius:8px;padding:32px;min-width:0;background:var(--surface)}
.branch-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.branch-number{width:36px;height:36px;display:grid;place-items:center;font:500 12px/1.8 Jakarta,sans-serif;background:var(--tint-lemon);border-radius:50%}
.branch-area{font:500 10px/1.8 Jakarta,sans-serif;color:var(--muted)}
.branch h3{font-size:27px}
.branch-hours{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);margin-top:14px}
.branch-hours svg{width:18px}
.branch-phone{display:inline-flex;align-items:center;gap:10px;font:500 22px/1.8 Jakarta,sans-serif;padding-block:16px 24px}
.branch-phone svg{width:18px}
.branch-phone:hover{text-decoration:underline;text-underline-offset:5px}
.branch-actions{display:flex;gap:12px;flex-wrap:wrap}
.branch-actions .button{font-size:14px;padding-inline:17px}
.branch-actions svg{width:18px}
.branch-note{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:24px;font-size:13px;color:var(--muted)}
.branch-note a{display:inline-flex;gap:8px;align-items:center;color:var(--navy);text-decoration:underline;text-underline-offset:5px}
.branch-note svg{width:16px}
.faq-section{padding-block:64px 80px;border-top:1px solid var(--border)}
.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
.faq-layout .muted{font-size:14px;margin-top:12px}
.faq-list details{border-bottom:1px solid var(--border);padding-block:14px}
.faq-list details:first-child{padding-top:0}
.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;min-height:48px;font-size:15px;font-weight:500}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary svg{width:18px}
.faq-list details[open] summary svg{transform:rotate(45deg)}
.faq-list details p{padding:12px 30px 8px 0;font-size:14px;color:var(--muted)}
.faq-list details a{text-decoration:underline;text-underline-offset:4px;color:var(--navy)}
.contact-section{background:var(--navy);color:var(--white);padding-block:64px}
.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:48px}
.contact-inner h2{font-size:32px}
.contact-inner p:not(.eyebrow){color:var(--on-dark-muted);font-size:14px;margin-top:16px}
.contact-actions{display:flex;flex-direction:column;align-items:center;gap:12px;flex-shrink:0}
.footer-inner{display:flex;align-items:center;gap:36px;padding-block:36px}
.footer-brand img{width:154px}
.footer-copy{font-size:12px;color:var(--muted);margin-left:auto}
.back-top{width:44px;height:44px;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;flex-shrink:0}
.back-top:hover{background:var(--surface)}
.mobile-contact{display:none}
@media(min-width:1600px){.hero-inner{min-height:530px}}
@media(max-width:1200px){
  .container{width:calc(100% - 64px)}.header-inner{gap:20px}nav{gap:20px}nav a{font-size:13px}
  .brand img{width:145px}.header-line{padding-inline:12px;font-size:12px;gap:8px}
  .hero-actions{gap:14px}.hero-actions .text-link{font-size:13px}.ortho-price{font-size:23px}
  .service{padding:22px}.service h3{font-size:18px}.price-columns{gap:36px}
}
@media(max-width:1000px){
  html{scroll-padding-top:100px}.header-inner{min-height:82px}.brand img{width:145px}
  .header-line{font-size:13px;padding-inline:16px}.menu-toggle{display:grid}
  nav{display:none;position:absolute;left:0;right:0;top:100%;padding:16px 32px;background:var(--white);border-bottom:1px solid var(--border);box-shadow:0 16px 24px #16254c0d;max-height:calc(100dvh - 100px);overflow-y:auto}
  nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:4px}nav a{font-size:16px;padding:10px 12px}
  .hero-inner{min-height:530px}.hero-copy{width:57%}.hero-brand,.hero-caption{width:38%}
  .hero-promise{font-size:20px}.hero h1 span{font-size:62px}
  .hero-actions{flex-direction:column;align-items:flex-start;gap:10px}.hero-actions .button{font-size:13px}
  .hero-caption span{font-size:9px}.value-grid>div{padding-inline:16px;gap:12px}
  .value-grid span{font-size:13px}.value-grid small{font-size:11px}.value-grid svg{width:24px;height:24px}
  h2{font-size:30px}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ortho-grid{gap:32px}.ortho-grid h3{font-size:19px}.ortho-price{font-size:23px}.ortho-grid p{min-height:64px;font-size:14px}
  .doctor figcaption h3{font-size:18px}.doctors-grid{gap:40px}.price-columns{gap:28px}table{font-size:13px}
  .branch{padding:24px}.branch-actions{gap:10px}.branch-actions .button{font-size:12px;padding-inline:12px;gap:7px}
  .faq-layout{gap:48px}.contact-inner h2{font-size:28px}.contact-actions .button{font-size:13px;padding-inline:14px}
}
@media(max-width:700px){
  .container{width:calc(100% - 40px)}body{padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  html{scroll-padding-top:90px}.topbar{font-size:10px}.topbar .container{padding-block:6px}.topbar span span{padding-inline:3px}
  .header-inner{min-height:76px;gap:12px}.brand img{width:137px}.header-line{display:none}nav{padding:12px 20px;max-height:calc(100dvh - 168px - env(safe-area-inset-bottom))}
  .hero-inner{padding-block:34px 30px;min-height:0}.hero-copy{width:100%}
  .hero .eyebrow{font-size:10px;margin-bottom:14px}.hero h1{font-size:24px}.hero h1 span{font-size:60px;margin-top:2px;margin-bottom:14px}
  .hero-promise{font-size:20px}.hero-description{font-size:14px;margin-top:14px}.hero-description br{display:none}
  .hero-actions{margin-top:24px;gap:10px}.hero-actions .button{font-size:14px;width:100%;min-height:52px}.hero-actions .text-link{font-size:13px}
  .hero-brand{display:none}.hero-caption{position:static;width:100%;margin-top:22px;border-top:1px solid var(--border);padding-top:14px}
  .hero-caption span{font-size:9px}.hero-caption a{width:44px;height:44px}.hero-caption svg{width:18px}
  .value-grid{grid-template-columns:1fr;padding-block:6px}
  .value-grid>div,.value-grid>div:first-child,.value-grid>div:last-child{justify-content:flex-start;gap:16px;padding:16px 0;border:0}
  .value-grid>div:not(:last-child){border-bottom:1px solid var(--border)}
  .value-grid span{font-size:14px}.value-grid small{font-size:12px}.value-grid svg{width:25px;height:25px}
  .section{padding-block:56px}h2{font-size:27px}.eyebrow{font-size:10px;margin-bottom:12px}
  .section-heading{display:block;margin-bottom:28px}.section-intro{font-size:14px;margin-top:18px}.section-intro br{display:none}
  .services-grid{grid-template-columns:1fr;gap:12px}.service{padding:22px;min-height:220px}.service h3{font-size:19px}
  .service-icon{margin-bottom:18px}.service p{margin-bottom:16px}
  .ortho-section{padding-block:48px}.ortho-section h2{font-size:27px}.ortho-section .section-heading .text-link{margin-top:16px}
  .ortho-grid{grid-template-columns:1fr;gap:32px}.ortho-grid article{padding-top:24px}
  .ortho-grid h3{font-size:21px;margin-top:8px}.ortho-grid p{min-height:0;font-size:14px;margin-bottom:14px}
  .ortho-price{font-size:27px}.ortho-note{font-size:12px;margin-top:24px}
  .doctors-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:420px}.doctor-photo{width:144px;aspect-ratio:3/4}
  .doctor figcaption{padding-block:14px 18px}.doctor figcaption h3{font-size:16px;line-height:1.7}.doctor figcaption>span{font-size:13px}.doctors-contact{margin-top:24px}
  .doctors-contact p{font-size:13px}.prices-section{padding-block:48px}
  .price-notice{font-size:13px;line-height:1.8;margin-bottom:30px}.price-columns{grid-template-columns:1fr;gap:36px}
  .price-group{scroll-margin-top:16px}.price-group h3{font-size:18px;margin-bottom:16px}table{font-size:13px}
  tbody th,tbody td{padding-block:14px}tbody th{padding-right:12px}
  .price-followup{align-items:flex-start;flex-direction:column;gap:16px;margin-top:28px}.price-followup p{font-size:13px}
  .branches-grid{grid-template-columns:1fr;gap:18px}.branch{padding:24px}.branch h3{font-size:25px}.branch-phone{font-size:22px}
  .branch-actions .button{font-size:13px;padding-inline:13px}.branch-note{font-size:12px;gap:12px}
  .faq-section{padding-block:48px}.faq-layout{grid-template-columns:1fr;gap:28px}.faq-list summary{font-size:14px}
  .faq-list details p{padding-right:12px;font-size:14px}.contact-section{padding-block:48px}
  .contact-inner{flex-direction:column;align-items:flex-start;gap:28px}.contact-inner h2{font-size:27px}
  .contact-actions{width:100%;align-items:flex-start;gap:10px}.contact-actions .button{font-size:14px;width:100%}
  .footer-inner{gap:20px;flex-wrap:wrap;padding-block:28px}.footer-brand img{width:132px}
  .footer-copy{order:3;width:100%;margin:0;font-size:11px}.back-top{margin-left:auto}
  .mobile-contact{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;gap:12px;align-items:center;padding:12px 16px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--white)}
  .mobile-call{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;font-size:10px;min-width:64px;min-height:48px}
  .mobile-call svg{width:19px;height:19px}.mobile-contact .button{flex:1;font-size:13px;padding:12px 10px;min-height:48px;gap:8px}
  .mobile-contact .button svg{width:18px;height:18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
