/* Vinfinity CI v2 — Royal Blue & Silver
   Midnight #0B142E · Royal Navy #1E3470 · Sapphire #3A5496 · Periwinkle #8698B5
   Silver Ice #D5DDEE · Mist #EEF2F8 · Slate #5A6480 · Gradient 135° #0B142E→#1A326B→#3A5496
   Type: Kanit (Thai) + Montserrat (Latin/numbers) */
:root{
  --navy:#0B142E; --navy-2:#1A326B; --royal:#1E3470; --sapphire:#3A5496; --peri:#8698B5; --silver:#D5DDEE; --mist:#EEF2F8;
  --pearl:#EEF2F8; --ink:#0B142E; --muted:#5A6480; --muted-2:#B4BED3; --line:#D5DDEE;
  --grad:linear-gradient(135deg,#0B142E 0%,#1A326B 55%,#3A5496 100%);
  --serif:'Montserrat','Kanit',system-ui,sans-serif; --sans:'Montserrat','Kanit',system-ui,sans-serif;
  --r:18px; --wrap:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--pearl);font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--royal)}a:hover{color:var(--royal)}
h1,h2,h3{line-height:1.3;margin:0;font-weight:600;color:inherit}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.eyebrow{font-family:var(--serif);letter-spacing:.3em;font-size:12.5px;text-transform:uppercase;color:var(--sapphire);font-weight:600}
.on-dark .eyebrow,.eyebrow.light{color:var(--silver)}
.h2{font-size:clamp(30px,4vw,44px);margin:12px 0 20px}
.lead{font-size:19px;color:var(--muted);max-width:640px}
.on-dark{background:var(--navy);color:#F6F8FC}
.on-dark .lead{color:var(--muted-2)}
.grid-bg{background-color:var(--navy);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 900' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='none' stroke='%23D5DDEE' stroke-opacity='.13' stroke-width='1'%3E%3Ccircle cx='900' cy='380' r='300'/%3E%3Ccircle cx='900' cy='380' r='470'/%3E%3Ccircle cx='900' cy='380' r='640'/%3E%3C/g%3E%3C/svg%3E"),radial-gradient(ellipse at 62% 42%,#2A4796 0%,#1A326B 32%,#0B142E 78%);background-size:cover,100% 100%;background-position:center,center;background-repeat:no-repeat}
section{padding:112px 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;font-weight:600;text-decoration:none;font-size:16px;transition:transform .15s ease,background .15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-silver{background:var(--silver);color:var(--navy)}.btn-silver:hover{background:#fff;color:var(--navy)}
.btn-ghost{border:1px solid rgba(213,221,238,.55);color:#fff}.btn-ghost:hover{color:#fff;border-color:#fff}
.btn-navy{background:var(--royal);color:#fff}.btn-navy:hover{background:var(--sapphire);color:#fff}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(4,23,56,.94);backdrop-filter:blur(8px);border-bottom:1px solid rgba(213,221,238,.12)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:#fff}
.brand:hover{color:#fff}
.brand-name{font-family:var(--serif);font-size:24px;letter-spacing:.3em;font-weight:500;line-height:1}
.brand-tag{font-size:9.5px;letter-spacing:.34em;color:var(--muted-2);margin-top:5px}
.nav{display:flex;gap:28px;font-size:15px}
.nav a{color:var(--silver);text-decoration:none}.nav a:hover{color:#fff}
.header-cta{min-height:44px;padding:0 22px;font-size:15px}

/* hero */
.hero{padding:72px 0 120px;color:#F4F6F9}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(40px,5.4vw,66px);font-weight:600;margin:20px 0 26px;line-height:1.22}
.hero h1 em{font-style:normal;color:var(--silver)}
.hero .lead{margin-bottom:36px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px}
.hero-meta{display:flex;flex-wrap:wrap;gap:36px;margin-top:52px;padding-top:28px;border-top:1px solid rgba(213,221,238,.22);font-size:14px;color:var(--muted-2)}
.hero-meta strong{display:block;font-family:var(--serif);font-size:34px;color:#fff;font-weight:500;line-height:1.1}
.portrait{position:relative}
.portrait-frame{aspect-ratio:4/5;border-radius:240px 240px 22px 22px;overflow:hidden;background:var(--mist);border:1px solid rgba(213,221,238,.4);max-width:440px;margin-left:auto}
.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:center 15%}
.portrait-card{position:absolute;left:0;bottom:36px;background:#fff;color:var(--royal);padding:16px 22px;border-radius:14px;box-shadow:0 24px 50px rgba(0,0,0,.35);max-width:270px}
.portrait-card b{display:block;font-size:16px}
.portrait-card span{font-size:13px;color:var(--muted);line-height:1.5;display:block}

/* story */
.story .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:start}
.story blockquote{margin:0;font-family:var(--serif);font-size:clamp(26px,3vw,34px);line-height:1.45;color:var(--royal);font-weight:500;border-top:1px solid var(--line);padding-top:28px}
.story blockquote cite{display:block;margin-top:18px;font-family:var(--sans);font-style:normal;font-size:14px;letter-spacing:.2em;color:var(--muted)}
.story-body p+p{margin-top:18px}
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:40px}
.pillar{background:#fff;border:1px solid var(--line);box-shadow:0 1px 2px rgba(11,20,46,.04);border-radius:var(--r);padding:24px}
.pillar .en{font-family:var(--serif);letter-spacing:.24em;font-size:13px;color:var(--royal);font-weight:600}
.pillar h3{font-size:22px;margin:6px 0 6px;color:var(--royal)}
.pillar p{font-size:15px;color:var(--muted)}

/* layers */
.layers{background:#fff}
.layer-list{margin-top:48px;border-top:1px solid var(--line)}
.layer{display:grid;grid-template-columns:90px 1fr 1.3fr 220px;gap:24px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line)}
.layer .num{font-family:var(--serif);font-size:38px;color:var(--sapphire);font-weight:300;line-height:1}
.layer h3{font-size:21px;color:var(--royal)}
.layer p{color:var(--muted);font-size:15.5px}
.layer .tx{font-size:14px;color:var(--royal);font-weight:600}

/* programs */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:48px}
.card{background:#fff;border:1px solid var(--line);box-shadow:0 1px 2px rgba(11,20,46,.04);border-radius:22px;padding:32px;display:flex;flex-direction:column;gap:14px}
.card .en{font-family:var(--serif);letter-spacing:.2em;font-size:13px;color:var(--royal);font-weight:600}
.card h3{font-size:24px;color:var(--royal)}
.card p{color:var(--muted);font-size:15.5px}
.card ul{margin:0;padding-left:18px;font-size:15px}
.card .foot{margin-top:auto;padding-top:18px;border-top:1px solid var(--mist);display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:15px}
.card .foot a{font-weight:600;text-decoration:none}
.card.dark{background:var(--grad);color:#F6F8FC;border-color:transparent}
.card.dark h3{color:#fff}.card.dark p{color:var(--muted-2)}.card.dark .en{color:var(--silver)}
.card.dark .foot{border-color:rgba(213,221,238,.2)}.card.dark .foot a{color:#fff}
.price{font-family:var(--serif);font-size:26px;font-weight:600}

/* doctor */
.doctor .wrap{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.doctor-media{display:grid;grid-template-columns:1fr;gap:16px}
.doctor-media img{border-radius:22px;width:100%;object-fit:cover}
.doctor-media .tall{aspect-ratio:4/5}
.doctor-media figcaption{font-size:13px;color:var(--muted-2);margin-top:8px}
.creds{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid rgba(213,221,238,.22)}
.creds li{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid rgba(213,221,238,.22);font-size:15.5px}
.creds li span{font-family:var(--serif);font-size:18px;color:var(--silver)}
.creds li b{color:#fff;font-weight:600}

/* method */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:52px}
.step{border-top:1px solid var(--royal);padding-top:22px}
.step .n{font-family:var(--serif);font-size:44px;color:var(--sapphire);font-weight:300;line-height:1}
.step h3{font-size:20px;margin:14px 0 6px;color:var(--royal)}
.step p{color:var(--muted);font-size:15px}

/* clinic */
.clinic-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:44px}
.clinic-grid img{width:100%;height:100%;min-height:380px;object-fit:cover;border-radius:22px}
.info{background:#fff;border:1px solid var(--line);box-shadow:0 1px 2px rgba(11,20,46,.04);border-radius:22px;padding:32px;display:flex;flex-direction:column;gap:18px}
.info small{display:block;color:var(--muted);font-size:13.5px}
.info b{font-weight:600}

/* faq */
.faq{background:#fff}
.faq-list{margin-top:40px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);padding:22px 0}
.faq summary{cursor:pointer;font-weight:600;font-size:18px;color:var(--royal);list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-family:var(--serif);font-size:28px;line-height:1;color:var(--royal)}
.faq details[open] summary::after{content:'–'}
.faq details p{margin-top:12px;color:var(--muted);max-width:820px}

/* cta + footer */
.cta-band{border-radius:32px;padding:64px 56px;display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between;color:#fff}
.cta-band h2{font-size:clamp(28px,3.4vw,40px)}
.site-footer{background:var(--navy);color:var(--muted-2);padding:56px 0 40px;font-size:14px}
.site-footer .cols{display:grid;grid-template-columns:1.2fr .9fr .9fr 1.2fr;gap:32px}
.site-footer a{color:var(--silver);text-decoration:none}.site-footer a:hover{color:#fff}
.site-footer h4{color:#fff;font-size:14px;letter-spacing:.2em;margin:0 0 12px;font-weight:500}
.legal{margin-top:40px;padding-top:24px;border-top:1px solid rgba(213,221,238,.15);font-size:12.5px;line-height:1.7;color:#8D97AA}

/* article pages */
.page-hero{padding:88px 0 96px}
.page-hero h1{font-size:clamp(36px,4.8vw,58px);margin:16px 0 22px}
.crumb{font-size:13.5px;color:var(--muted-2)}.crumb a{color:var(--silver)}
.article{padding:96px 0}
.article .wrap{display:grid;grid-template-columns:240px 1fr;gap:64px}
.toc{position:sticky;top:110px;align-self:start;font-size:14.5px;border-left:1px solid var(--line);padding-left:18px}
.toc a{display:block;color:var(--muted);text-decoration:none;padding:5px 0}.toc a:hover{color:var(--royal)}
.prose{max-width:760px}
.prose h2{font-size:30px;color:var(--royal);margin:56px 0 14px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:21px;color:var(--royal);margin:28px 0 8px}
.prose p{margin:0 0 16px;color:#25324D}
.prose ul{padding-left:20px;margin:0 0 16px;color:#25324D}
.prose table{width:100%;border-collapse:collapse;margin:8px 0 24px;font-size:15.5px;background:#fff;border-radius:14px;overflow:hidden}
.prose th,.prose td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{background:var(--royal);color:#fff;font-weight:500}
.note{background:var(--mist);border-radius:14px;padding:18px 22px;font-size:15px;color:var(--muted)}

@media (max-width:960px){
  .hero .wrap,.story .wrap,.doctor .wrap,.article .wrap{grid-template-columns:1fr}
  .portrait-frame{margin:0 auto}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .clinic-grid{grid-template-columns:1fr}
  .layer{grid-template-columns:60px 1fr}
  .layer p,.layer .tx{grid-column:2}
  .toc{display:none}
  .site-footer .cols{grid-template-columns:1fr}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  section{padding:80px 0}
  .nav{display:none}
  .pillars,.steps{grid-template-columns:1fr}
  .cta-band{padding:44px 24px}
  .portrait-card{position:static;margin-top:-40px;margin-left:16px}
}
picture{display:block}
body,.num,.n,.price,.hero-meta strong,.creds li span{font-variant-numeric:lining-nums}
.hero h1 .ln{display:block;white-space:nowrap}
@media (max-width:640px){.hero h1 .ln{white-space:normal}}
.hero .lead,.on-dark .lead{color:#C9D0DB}
@media (max-width:640px){
  .site-header .wrap{min-height:64px;flex-wrap:nowrap}
  .brand-tag{display:none}
  .brand-name{font-size:19px}
  .header-cta{min-height:40px;padding:0 16px;font-size:14px;white-space:nowrap}
}
/* official logo (brand book vectors) */
.brand{flex-direction:column;align-items:flex-start;gap:4px}
.brand .logo-h{height:34px;width:auto}
.brand .brand-tag{margin:0 0 0 46px;font-size:8.5px}
.brand-stack{align-items:flex-start}
.brand-stack img{height:96px;width:auto}
.brand-stack .brand-tag{margin:10px 0 0}
@media (max-width:640px){.brand .logo-h{height:28px}}

/* CI v2 details */
body{font-weight:400;letter-spacing:.005em}
h1,h2,h3{font-weight:500}
.hero h1{font-weight:500}
.hero h1 em{color:var(--silver)}
.site-header{background:rgba(11,20,46,.92)}
.portrait-frame{background:linear-gradient(180deg,#EEF2F8,#D5DDEE)}
.hero-meta strong,.price,.creds li span{font-family:'Montserrat',sans-serif;font-weight:500}
.creds li span{font-size:15px;letter-spacing:.08em;color:var(--silver)}
.glass{background:rgba(255,255,255,.08);border:1px solid rgba(213,221,238,.22);backdrop-filter:blur(10px)}
.site-footer{background:var(--navy)}

/* brand book v2 horizontal lockup: symbol + wordmark + signature line */
.lockup{flex-direction:row;align-items:center;gap:12px}
.lockup .lk-mark{height:40px;width:auto}
.lockup .lk-text{display:flex;flex-direction:column;gap:5px}
.lockup .lk-word{height:15px;width:auto}
.lockup .lk-tag{font-family:'Montserrat',sans-serif;font-size:8.6px;letter-spacing:.24em;color:var(--silver);font-weight:500;white-space:nowrap}
.hero h1{font-family:'Montserrat','Kanit',sans-serif;font-weight:600}
@media (max-width:640px){.lockup .lk-mark{height:34px}.lockup .lk-word{height:12px}.lockup .lk-tag{font-size:7px}}
.portrait-frame picture,.clinic-grid picture{height:100%}

/* ---------- anatomy explorer (original illustration) ---------- */
.anatomy{overflow:hidden}
.ana-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:40px;align-items:center;margin-top:40px}
.ana-figure{margin:0}
.ana-figure figcaption{font-size:12.5px;color:var(--muted-2);margin-top:6px}
.ana-svg{width:100%;height:auto;display:block;overflow:visible}
.ana-svg text{font-family:'Montserrat','Kanit',sans-serif}
.ana-en{font-size:10.5px;letter-spacing:.18em;fill:#B4BED3;font-weight:600}
.ana-th{font-size:16px;fill:#FFFFFF;font-weight:500}
.ana-note{font-size:11.5px;fill:#D5DDEE}
.ana-layer{cursor:pointer;transition:transform 1.1s cubic-bezier(.2,.8,.2,1),opacity .5s ease;transform:translateY(0)}
.anatomy.is-open .ana-layer{transform:translateY(var(--off))}
.anatomy.is-open .ana-layer[data-layer="0"]{transition-delay:.0s}
.anatomy.is-open .ana-layer[data-layer="1"]{transition-delay:.12s}
.anatomy.is-open .ana-layer[data-layer="2"]{transition-delay:.24s}
.anatomy.is-open .ana-layer[data-layer="3"]{transition-delay:.36s}
.ana-layer .ana-label{opacity:0;transition:opacity .6s ease .9s}
.anatomy.is-open .ana-layer .ana-label{opacity:.55}
.anatomy.is-open .ana-layer.is-on .ana-label{opacity:1}
.ana-layer.is-dim{opacity:.6}
.ana-layer.is-on{opacity:1}
.ana-artery{transition:opacity .6s ease}
.anatomy.is-open .ana-artery{opacity:0}
.ana-flow{animation:ana-flow 1.6s linear infinite}
@keyframes ana-flow{to{stroke-dashoffset:-28}}
.ana-tabs{display:flex;flex-direction:column;gap:8px}
.ana-tab{display:flex;align-items:center;gap:14px;width:100%;min-height:48px;padding:10px 16px;border-radius:14px;border:1px solid rgba(213,221,238,.22);background:rgba(255,255,255,.04);color:#E6ECF6;font:inherit;font-size:15.5px;text-align:left;cursor:pointer;transition:background .2s,border-color .2s}
.ana-tab .n{font-family:'Montserrat',sans-serif;font-size:13px;letter-spacing:.08em;color:var(--silver);min-width:22px}
.ana-tab:hover{background:rgba(255,255,255,.08)}
.ana-tab[aria-pressed="true"]{background:rgba(213,221,238,.16);border-color:rgba(213,221,238,.6);color:#fff}
.ana-tab:focus-visible{outline:2px solid var(--silver);outline-offset:2px}
.ana-panels{margin-top:18px;min-height:190px}
.ana-panel{background:rgba(255,255,255,.07);border:1px solid rgba(213,221,238,.22);backdrop-filter:blur(10px);border-radius:18px;padding:22px}
.ana-panel-en{font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.ana-panel h3{font-size:22px;margin:6px 0 8px;color:#fff}
.ana-panel p{color:#D5DDEE;font-size:15px}
.ana-panel-tx{display:inline-block;margin-top:12px;color:#fff;font-weight:500;font-size:15px}
@media (max-width:960px){.ana-grid{grid-template-columns:1fr}.ana-tabs{flex-direction:row;flex-wrap:wrap}.ana-tab{width:auto;flex:1 1 140px}}
@media (prefers-reduced-motion:reduce){.ana-layer,.ana-layer .ana-label,.ana-artery{transition:none}.ana-flow{animation:none}}
.ana-toggle{margin-top:10px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(213,221,238,.4);background:transparent;color:#D5DDEE;font:inherit;font-size:14px;cursor:pointer}
.ana-toggle:hover{color:#fff;border-color:#fff}

/* articles */
.article-meta{margin-top:18px;font-size:14px;color:var(--muted-2)}
.keybox{background:#fff;border:1px solid var(--line);border-left:0;border-radius:18px;padding:24px 28px;margin-bottom:8px;box-shadow:0 1px 2px rgba(11,20,46,.04)}
.keybox h2{margin:0 0 10px !important;font-size:22px !important}
.keybox ul{margin:0}
.prose sup a{font-size:11px;text-decoration:none;font-weight:600;padding:0 2px}
.refs{font-size:14.5px;color:var(--muted);padding-left:22px}
.refs li{margin-bottom:10px;line-height:1.6}
.refs li:target{background:var(--silver);border-radius:6px}
.article-card{text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}
.article-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(11,20,46,.08);color:inherit}
.article-card .foot span:last-child{color:var(--royal);font-weight:600}

/* ===== Reviews ===== */
.reviews{padding:110px 0 40px;background:var(--mist)}
.reviews .results-head,.results-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:40px}
.reviews .results-head .lead{margin:0}
.rv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}
.rv{margin:0;background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px}
.rv blockquote{margin:0 0 14px;font-size:16px;color:var(--navy);line-height:1.7}
.rv figcaption{font-size:13px;color:var(--muted)}
.rv-sources{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.rv-src{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px 24px;text-decoration:none;color:var(--navy);transition:border-color .15s ease,transform .15s ease}
.rv-src:hover{border-color:var(--sapphire);transform:translateY(-1px)}
.rv-src b{display:block;font-weight:500;font-size:17px}
.rv-src small{display:block;color:var(--muted);font-size:13px}
.rv-logo{flex:0 0 44px;height:44px;border-radius:50%;display:grid;place-items:center;font:700 20px 'Montserrat',sans-serif;background:var(--mist);color:var(--royal)}
.rv-logo.fb{background:var(--royal);color:#fff}
.rv-go{margin-left:auto;color:var(--royal);font-weight:500;white-space:nowrap}
.rv-write{margin:22px 0 0;font-size:14px;color:var(--muted)}
.rv-write a{color:var(--royal)}
.map-embed{margin-top:22px;border-radius:22px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/7;background:var(--mist)}
.map-embed iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:760px){
  .reviews{padding:72px 0}
  .reviews .results-head,.results-head{grid-template-columns:1fr;gap:14px;margin-bottom:28px}
  .rv-grid,.rv-sources{grid-template-columns:1fr}
  .map-embed{aspect-ratio:4/3}
  .site-footer .cols{grid-template-columns:1fr}
}
.rv-src{min-width:0}.rv-src>span:nth-child(2){min-width:0}.rv-src small{overflow-wrap:anywhere}
@media (max-width:760px){.rv-go{font-size:0}.rv-go::after{content:"→";font-size:18px}.rv-src{padding:18px}}
@media (max-width:1240px){.nav{gap:18px;font-size:14px}}
@media (max-width:1100px){.nav a[href="/#programs"],.nav a[href="/#doctor"]{display:none}}
.travel{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px 26px}.travel h3{margin:0 0 6px;font-size:18px;font-weight:500;color:var(--navy)}.travel p{margin:0;color:var(--muted);font-size:15px}.travel a{color:var(--royal)}
