/* Hallmark · checked: 2026-10-25 · genre: editorial (inferred)
 * floor: 0 FAIL · fixed: 7a, 20, 33, 34, 38i, 39a, 48, 50, 54, 63, 67 · structural: 3 printed (8, 9, 58)
 * built: the project · redesign: polish · v2.0.0 */
@font-face {
  font-family:'Be Vietnam Pro';
  src:url('../fonts/be-vietnam-pro-400.ttf') format('truetype');
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face {
  font-family:'Be Vietnam Pro';
  src:url('../fonts/be-vietnam-pro-500.ttf') format('truetype');
  font-style:normal;
  font-weight:500;
  font-display:swap;
}
@font-face {
  font-family:'Be Vietnam Pro';
  src:url('../fonts/be-vietnam-pro-600.ttf') format('truetype');
  font-style:normal;
  font-weight:600;
  font-display:swap;
}
@font-face {
  font-family:'Be Vietnam Pro';
  src:url('../fonts/be-vietnam-pro-700.ttf') format('truetype');
  font-style:normal;
  font-weight:700;
  font-display:swap;
}
@font-face {
  font-family:'Lora';
  src:url('../fonts/lora-regular.ttf') format('truetype');
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
}
@font-face {
  font-family:'Lora';
  src:url('../fonts/lora-italic.ttf') format('truetype');
  font-style:italic;
  font-weight:400 700;
  font-display:swap;
}
:root {
  --ink:#203c3a;
  --green:#214f49;
  --green-deep:#163e39;
  --sage:#e9eee8;
  --sage-ink:#6c7b66;
  --paper:#faf9f5;
  --paper-glass:rgb(250 249 245 / .96);
  --cream:#f1efe7;
  --surface-band:#eeefe9;
  --surface-card:#f7f8f2;
  --surface-input:#fdfdf9;
  --muted:#5f6b65;
  --placeholder:#7b8479;
  --line:#dcded5;
  --line-strong:#c3ccbf;
  --gold:#b5976a;
  --gold-ink:#8a6d42;
  --on-dark:#f8f9ef;
  --on-dark-muted:#bccabe;
  --line-dark:#4c6a61;
  --accent-soft:#e3e9da;
  --gap-cols:clamp(40px,6vw,80px);
  --serif:'Lora',Georgia,serif;
  --sans:'Be Vietnam Pro',Arial,sans-serif
}
* {
  box-sizing:border-box
}
html {
  overflow-x:clip;
  scroll-behavior:smooth;
  scroll-padding-top:105px
}
body {
  overflow-x:clip;
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.8 var(--sans);
  -webkit-font-smoothing:antialiased
}
button,input,select {
  font:inherit
}
button,a,input,select {
  -webkit-tap-highlight-color:transparent
}
a {
  color:inherit;
  text-decoration:none
}
button {
  cursor:pointer
}
img {
  display:block;
  width:100%;
  height:auto
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2,h3 {
  font-weight:400
}
h1,h2 {
  font-family:var(--serif);
  text-wrap:balance;
  overflow-wrap:break-word;
  min-width:0
}
h2 {
  font-size:clamp(30px,3vw,43px);
  line-height:1.4;
  letter-spacing:-1.1px
}
h3 {
  font-size:18px;
  font-weight:500;
  line-height:1.6
}
p {
  color:var(--muted)
}
a,button {
  touch-action:manipulation
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:5px
}
button:disabled,.button[aria-disabled=true] {
  cursor:not-allowed;
  background:var(--line);
  border-color:var(--line);
  color:var(--ink);
  transform:none
}
[hidden] {
  display:none!important
}
.container {
  max-width:1248px;
  width:calc(100% - 96px);
  margin:auto
}
.section {
  padding:104px 0
}
.icon {
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0
}
.svg-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}
.skip-link {
  position:fixed;
  top:-80px;
  left:20px;
  padding:12px 18px;
  background:var(--green);
  color:var(--on-dark);
  z-index:100
}
.skip-link:focus {
  top:10px
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:20px;
  min-height:52px;
  padding:13px 23px;
  background:var(--green);
  color:var(--on-dark);
  border:1px solid var(--green);
  font-size:14px;
  font-weight:500;
  line-height:1.7;
  transition:background .2s,transform .2s
}
.button:hover {
  background:var(--green-deep);
  transform:translateY(-2px)
}
.button .icon {
  width:18px
}
.button-outline {
  background:transparent;
  color:var(--green);
  border-color:var(--line-strong)
}
.button-outline:hover {
  background:var(--sage)
}
.button-small {
  min-height:43px;
  padding:10px 18px;
  font-size:14px;
  gap:15px
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:16px;
  font-size:14px;
  font-weight:500;
  line-height:1.8;
  padding:6px 0;
  border-bottom:1px solid var(--line-strong)
}
.text-link:hover {
  border-color:var(--ink)
}
.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:var(--paper-glass);
  border-bottom:1px solid var(--line)
}
.header-inner {
  height:91px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px
}
.brand {
  display:flex;
  gap:12px;
  align-items:center;
  flex-shrink:0
}
.brand-mark {
  display:grid;
  place-items:center;
  width:39px;
  height:44px;
  color:var(--green)
}
.brand-mark svg {
  width:30px;
  height:35px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.3
}
.brand-words {
  font-family:var(--serif);
  font-size:19px;
  font-weight:500;
  letter-spacing:-.4px;
  line-height:1.5
}
.brand-words>span {
  display:block;
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:0;
  font-weight:400;
  color:var(--muted);
  margin-top:0
}
.desktop-nav {
  display:flex;
  gap:29px;
  font-size:14px
}
.desktop-nav a:hover {
  color:var(--sage-ink)
}
.header-actions {
  display:flex;
  align-items:center;
  gap:24px
}
.language-switch {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:12px
}
.language-switch button {
  border:0;
  background:none;
  color:var(--muted);
  padding:10px 2px;
  font-size:12px
}
.language-switch button[aria-pressed=true] {
  color:var(--green);
  font-weight:700
}
.language-switch>span {
  color:var(--line-strong)
}
.menu-toggle {
  display:none;
  border:0;
  background:none;
  width:36px;
  height:42px;
  padding:8px
}
.menu-toggle span {
  display:block;
  height:1px;
  background:var(--ink);
  margin:6px 0;
  transition:transform .2s
}
.mobile-nav {
  background:var(--paper);
  padding:10px 24px 24px;
  border-top:1px solid var(--line)
}
.mobile-nav a {
  display:block;
  padding:13px 0;
  border-bottom:1px solid var(--line)
}
.hero {
  padding:56px 0 66px;
  overflow:hidden
}
.hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  gap:var(--gap-cols);
  align-items:center
}
.hero-copy {
  padding:12px 0
}
h1 {
  font-size:clamp(36px,4.1vw,58px);
  line-height:1.34;
  letter-spacing:-1.9px
}
.hero-description {
  font-size:18px;
  max-width:520px;
  line-height:2;
  margin-top:26px
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:24px;
  margin-top:32px;
  flex-wrap:wrap
}
.hero-actions .text-link {
  font-size:14px;
  gap:9px
}
.hero-note {
  font-size:12px;
  margin-top:17px
}
.hero-principles {
  display:flex;
  gap:23px;
  padding-top:27px;
  margin-top:33px;
  border-top:1px solid var(--line);
  font-size:12px
}
.hero-principles>span {
  display:flex;
  gap:7px;
  align-items:center
}
.hero-principles .icon {
  width:16px;
  height:16px;
  color:var(--sage-ink)
}
.hero-visual {
  position:relative;
  margin-right:20px
}
.hero-photo {
  height:542px;
  object-fit:cover;
  object-position:center 51%;
  border-radius:160px 2px 2px 2px
}
.photo-corner {
  position:absolute;
  width:140px;
  height:180px;
  border:1px solid var(--gold);
  right:-16px;
  bottom:-16px;
  z-index:-1
}
.photo-caption {
  position:absolute;
  left:-24px;
  bottom:24px;
  display:flex;
  gap:13px;
  align-items:center;
  background:var(--paper);
  padding:18px 25px;
  border:1px solid var(--line);
}
.photo-caption strong {
  display:block;
  font-family:var(--serif);
  font-size:17px;
  font-weight:500
}
.photo-caption div>span {
  display:block;
  font-size:12px;
  margin-top:3px;
  color:var(--muted)
}
.intro-strip {
  background:var(--green-deep);
  color:var(--on-dark)
}
.intro-strip .container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding-top:24px;
  padding-bottom:24px
}
.intro-strip p {
  font-family:var(--serif);
  font-size:20px;
  color:var(--on-dark)
}
.intro-strip a {
  font-size:12px;
  display:flex;
  gap:25px;
  align-items:center;
  color:var(--on-dark-muted)
}
.intro-strip a>span:last-child {
  font-size:22px
}
.section-heading {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  align-items:end;
  gap:var(--gap-cols);
  margin-bottom:47px
}
.section-intro {
  font-size:16px;
  line-height:1.95;
  max-width:365px
}
.needs-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr)
}
.need-item {
  padding:26px 32px 0 0;
  border-top:1px solid var(--line)
}
.need-item+article {
  padding-left:32px;
  border-left:1px solid var(--line)
}
.need-item h3 {
  margin-bottom:13px;
  font-family:var(--serif);
  font-size:23px
}
.need-item p {
  font-size:16px;
  line-height:2;
  min-height:120px
}
.need-item .text-link {
  font-size:14px;
  margin-top:18px
}
.doctor-section {
  background:var(--cream)
}
.doctor-grid {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:var(--gap-cols);
  align-items:center
}
.doctor-portrait {
  position:relative;
  padding-bottom:32px;
  max-width:470px
}
.doctor-portrait>img {
  height:530px;
  object-fit:cover;
  object-position:48% 38%;
  filter:saturate(.75)
}
.portrait-label {
  position:absolute;
  bottom:0;
  right:-25px;
  background:var(--paper);
  padding:24px;
  display:flex;
  align-items:center;
  gap:24px;
  min-width:240px
}
.portrait-label>span:first-child {
  font-family:var(--serif);
  font-size:33px;
  color:var(--gold);
  border-right:1px solid var(--line);
  padding-right:24px
}
.portrait-label>span:last-child {
  font-size:12px;
  line-height:1.9
}
.doctor-copy h2 {
  font-size:38px;
  letter-spacing:-1.2px
}
.doctor-role {
  font-size:12px;
  margin:10px 0 27px
}
.doctor-lead {
  font-family:var(--serif);
  font-size:23px;
  line-height:1.6;
  color:var(--ink);
  margin-bottom:18px
}
.doctor-copy>p:not(.eyebrow):not(.doctor-role):not(.doctor-lead) {
  font-size:16px;
  line-height:2
}
.credentials {
  margin:25px 0
}
.credentials>div {
  display:grid;
  grid-template-columns:120px 1fr;
  border-top:1px solid var(--line);
  padding:13px 0;
  gap:22px;
  font-size:15px;
  line-height:1.9
}
.credentials dt {
  font-weight:500
}
.credentials dd {
  margin:0;
  color:var(--muted)
}
.doctor-copy .text-link {
  font-size:14px
}
.journey-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--gap-cols)
}
.journey-grid>li {
  border-top:1px solid var(--line);
  padding-top:25px
}
.journey-grid {
  list-style:none;
  padding:0;
  margin:0;
  counter-reset:step
}
.journey-grid>li {
  counter-increment:step
}
.journey-grid>li::before {
  content:counter(step,decimal-leading-zero);
  display:block;
  font:italic 32px/1.4 var(--serif);
  font-variant-numeric:tabular-nums;
  color:var(--gold-ink)
}
.journey-grid h3 {
  margin:22px 0 12px;
  font-size:18px
}
.journey-grid p {
  font-size:16px;
  line-height:2
}
.care-note {
  margin-top:40px;
  padding:20px 24px;
  background:var(--sage);
  display:flex;
  gap:17px;
  align-items:center
}
.care-note p {
  font-size:12px;
  color:var(--green)
}
.plans-section {
  background:var(--surface-band)
}
.plans-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}
.plan-card {
  border:1px solid var(--line-strong);
  background:var(--surface-card);
  padding:30px;
  display:flex;
  flex-direction:column
}
.plan-card h3 {
  font-family:var(--serif);
  font-size:33px;
  font-weight:400
}
.plan-for {
  font-size:16px;
  line-height:1.9;
  margin-top:13px;
  min-height:63px
}
.check-list {
  padding:24px 0 25px;
  margin:19px 0 25px;
  list-style:none;
  border-top:1px solid var(--line);
  flex:1
}
.check-list li {
  position:relative;
  font-size:16px;
  padding-left:19px;
  margin-bottom:14px;
  line-height:1.9
}
.check-list li:before {
  content:'✓';
  position:absolute;
  left:0;
  color:var(--sage-ink)
}
.plan-card .button {
  width:100%;
  font-size:14px;
  gap:15px
}
.plan-featured {
  background:var(--green-deep);
  border-color:var(--green-deep);
  color:var(--on-dark)
}
.plan-featured .plan-for {
  color:var(--on-dark-muted)
}
.plan-featured .check-list {
  border-color:var(--line-dark)
}
.plan-featured .check-list li:before {
  color:var(--on-dark-muted)
}
.plan-featured .button {
  background:var(--accent-soft);
  border-color:var(--accent-soft);
  color:var(--green-deep)
}
.plan-featured .button:hover {
  background:var(--on-dark)
}
.plan-details {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);
  gap:var(--gap-cols);
  margin-top:29px;
  border-top:1px solid var(--line-strong);
  padding-top:25px;
  align-items:start
}
.plan-details h3 {
  font-size:16px;
  max-width:240px
}
.plan-details p {
  font-size:12px;
  line-height:2.2
}
.example-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.95fr);
  gap:var(--gap-cols);
  align-items:center
}
.example-copy h2 {
  font-size:37px
}
.example-copy>p:not(.eyebrow):not(.fine-print) {
  font-size:16px;
  margin-top:25px;
  line-height:2
}
.example-response {
  padding-left:22px;
  border-left:2px solid var(--gold);
  margin-top:26px
}
.example-response>span {
  font-size:14px;
  font-weight:600;
  color:var(--ink)
}
.example-response p {
  font-size:16px;
  line-height:2;
  margin-top:9px
}
.fine-print {
  font-size:12px;
  margin-top:22px
}
.example-photo {
  position:relative
}
.example-photo img {
  height:440px;
  object-fit:cover;
  object-position:center;
  border-radius:2px 90px 2px 2px;
  filter:saturate(.65)
}
.example-photo figcaption {
  position:absolute;
  bottom:20px;
  left:20px;
  right:20px;
  padding:13px;
  background:var(--paper-glass);
  text-align:center;
  font-family:var(--serif);
  font-size:15px
}
.faq-section {
  border-top:1px solid var(--line)
}
.faq-grid {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:var(--gap-cols)
}
.faq-grid .section-intro {
  margin-top:23px;
  font-size:16px;
  max-width:300px
}
.faq-list details {
  border-top:1px solid var(--line)
}
.faq-list details:last-child {
  border-bottom:1px solid var(--line)
}
.faq-list summary {
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:25px;
  cursor:pointer;
  padding:22px 0;
  font-size:16px;
  font-weight:500
}
.faq-list summary::-webkit-details-marker {
  display:none
}
.faq-list summary .icon {
  width:15px;
  height:15px;
  transition:transform .2s;
  color:var(--muted)
}
.faq-list details[open] summary .icon {
  transform:rotate(45deg)
}
.faq-list details p {
  font-size:16px;
  line-height:2;
  padding:0 28px 23px 0
}
.contact-section {
  background:var(--green-deep);
  color:var(--on-dark);
  padding:90px 0
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--gap-cols);
  align-items:center
}
.contact-copy h2 {
  font-size:46px;
  line-height:1.35
}
.contact-copy>p:not(.eyebrow) {
  color:var(--on-dark-muted);
  max-width:370px;
  font-size:16px;
  margin-top:23px;
  line-height:2
}
.contact-methods {
  margin-top:35px;
  display:grid;
  gap:20px
}
.contact-methods a>span {
  display:block;
  color:var(--on-dark-muted);
  font-size:14px
}
.contact-methods strong {
  display:block;
  font:400 clamp(21px,2vw,26px) var(--serif);
  margin-top:7px
}
.contact-methods strong>span {
  font-size:14px;
  color:var(--on-dark-muted);
  margin-left:13px
}
.inquiry-form {
  background:var(--paper);
  padding:36px;
  color:var(--ink)
}
.inquiry-form h3 {
  font:400 25px/1.5 var(--serif)
}
.form-intro {
  font-size:14px;
  margin-top:8px;
  margin-bottom:23px
}
.inquiry-form label {
  display:block;
  font-size:14px;
  margin-bottom:7px;
  font-weight:500
}
.inquiry-form input:not([type=hidden]),.inquiry-form select {
  width:100%;
  min-width:0;
  background:transparent;
  color:var(--ink);
  border:1px solid var(--line-strong);
  border-radius:0;
  min-height:45px;
  padding:10px 11px;
  font-size:16px;
  margin-bottom:18px
}
.inquiry-form input::placeholder {
  color:var(--placeholder)
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}
.form-privacy {
  font-size:12px;
  line-height:1.9;
  margin:1px 0 18px
}
.form-submit {
  width:100%
}
.form-footnote {
  font-size:12px;
  line-height:1.8;
  margin-top:12px;
  text-align:center
}
.form-status {
  padding:14px;
  background:var(--sage);
  color:var(--green);
  font-size:14px;
  margin-top:17px
}
.site-footer {
  padding:40px 0 26px
}
.footer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:29px;
  border-bottom:1px solid var(--line);
  gap:30px
}
.footer-brand {
  font:500 18px var(--serif)
}
.footer-brand>span {
  display:block;
  font:12px var(--sans);
  margin-top:10px;
  color:var(--muted)
}
.footer-links {
  display:flex;
  gap:29px;
  font-size:14px
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:60px;
  padding-top:20px
}
.footer-bottom>span {
  font-size:12px;
  color:var(--muted);
  flex-shrink:0
}
.footer-bottom p {
  max-width:600px;
  font-size:12px;
  line-height:1.8
}
.mobile-contact {
  display:none
}
@media(min-width:1500px) {
  .hero {
    padding-top:70px;
    padding-bottom:80px
  }
  .hero-photo {
    height:585px
  }
}
@media(max-width:1150px) {
  .container {
    width:calc(100% - 64px)
  }
  .desktop-nav {
    gap:18px
  }
  .header-actions {
    gap:14px
  }
  .brand-words {
    font-size:16px
  }
  .hero-grid {
    gap:var(--gap-cols)
  }
  h1 {
    font-size:43px
  }
  .hero-photo {
    height:520px
  }
  .hero-actions {
    gap:17px
  }
  .hero-actions .button {
    padding:12px 18px
  }
  .hero-principles {
    gap:14px;
    font-size:12px
  }
  .doctor-grid {
    gap:var(--gap-cols)
  }
  .contact-grid {
    gap:var(--gap-cols)
  }
  .section-heading {
    gap:var(--gap-cols)
  }
  .plan-card {
    padding:23px
  }
  .example-grid {
    gap:var(--gap-cols)
  }
  .faq-grid {
    gap:var(--gap-cols)
  }
}
@media(max-width:950px) {
  .desktop-nav,.header-cta {
    display:none
  }
  .menu-toggle {
    display:block
  }
  .header-inner {
    height:78px
  }
  .hero-grid {
    gap:var(--gap-cols);
    grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)
  }
  .hero h1 {
    font-size:35px;
    letter-spacing:-1.1px
  }
  .hero-description {
    font-size:16px
  }
  .hero-principles {
    flex-wrap:wrap;
    gap:13px
  }
  .hero-photo {
    height:480px
  }
  .hero-note {
    font-size:12px
  }
  .hero-visual {
    margin-right:12px
  }
  .photo-caption {
    left:-12px;
    padding:14px 17px
  }
  .photo-caption strong {
    font-size:14px
  }
  .photo-caption div>span {
    font-size:12px
  }
  .intro-strip p {
    font-size:17px
  }
  .section {
    padding:80px 0
  }
  .section-heading {
    gap:var(--gap-cols)
  }
  .section-intro {
    font-size:16px
  }
  h2 {
    font-size:32px
  }
  .need-item {
    padding-right:22px
  }
  .need-item+article {
    padding-left:22px
  }
  .need-item h3 {
    font-size:21px
  }
  .need-item p {
    min-height:150px;
    font-size:16px
  }
  .doctor-grid {
    gap:var(--gap-cols)
  }
  .doctor-copy h2 {
    font-size:30px
  }
  .doctor-portrait>img {
    height:480px
  }
  .doctor-lead {
    font-size:20px
  }
  .credentials>div {
    grid-template-columns:90px 1fr;
    gap:15px;
    font-size:15px
  }
  .portrait-label {
    right:-10px;
    min-width:210px;
    padding:18px
  }
  .journey-grid {
    gap:32px
  }
  .journey-grid h3 {
    font-size:18px
  }
  .plans-grid {
    gap:12px
  }
  .plan-card {
    padding:19px
  }
  .plan-for {
    font-size:16px;
    min-height:80px
  }
  .check-list li {
    font-size:16px
  }
  .plan-card h3 {
    font-size:28px
  }
  .plan-card .button {
    padding:12px 10px;
    font-size:14px;
    gap:10px
  }
  .example-grid {
    gap:var(--gap-cols)
  }
  .example-copy h2 {
    font-size:30px
  }
  .example-photo img {
    height:440px
  }
  .contact-grid {
    gap:var(--gap-cols)
  }
  .inquiry-form {
    padding:25px
  }
  .contact-copy h2 {
    font-size:39px
  }
  .faq-grid {
    gap:var(--gap-cols)
  }
  .footer-bottom {
    gap:30px
  }
}
@media(max-width:700px) {
  .inquiry-form input:not([type=hidden]),.inquiry-form select {
    font-size:16px
  }
  .inquiry-form select {
    padding-left:8px;
    padding-right:5px
  }
  html {
    scroll-padding-top:87px
  }
  .container {
    width:calc(100% - 40px)
  }
  .header-inner {
    height:73px;
    gap:10px
  }
  .brand {
    gap:7px;
    min-width:0
  }
  .brand-mark {
    width:28px
  }
  .brand-mark svg {
    width:25px
  }
  .brand-words {
    font-size:15px
  }
  .brand-words>span {
    display:none
  }
  .header-actions {
    gap:10px;
    flex-shrink:0
  }
  .language-switch {
    gap:4px
  }
  .language-switch button {
    font-size:12px
  }
  .menu-toggle {
    width:29px;
    padding:4px
  }
  .hero {
    padding:34px 0 36px
  }
  .hero-grid {
    grid-template-columns:minmax(0,1fr);
    gap:30px
  }
  .hero-copy {
    padding:0
  }
  .hero h1 {
    font-size:clamp(34px,8.7vw,48px);
    letter-spacing:-1.1px;
    line-height:1.4
  }
  .hero-description {
    font-size:16px;
    line-height:1.95;
    margin-top:20px;
    max-width:460px
  }
  .hero-actions {
    gap:19px;
    margin-top:25px
  }
  .hero-actions .button {
    font-size:14px;
    min-height:47px;
    padding:11px 17px;
    gap:12px
  }
  .hero-actions .text-link {
    font-size:14px;
    gap:7px
  }
  .hero-note {
    font-size:12px;
    margin-top:13px
  }
  .hero-principles {
    padding-top:19px;
    margin-top:22px;
    gap:16px;
    flex-wrap:wrap;
    font-size:12px;
    justify-content:space-between
  }
  .hero-principles>span {
    gap:5px
  }
  .hero-principles .icon {
    width:14px;
    height:14px
  }
  .hero-visual {
    margin-right:11px;
    margin-left:10px
  }
  .hero-photo {
    height:380px;
    border-top-left-radius:110px;
    object-position:center 49%
  }
    .photo-caption {
    left:-10px;
    bottom:16px;
    padding:13px 18px;
    max-width:calc(100% + 5px)
  }
  .photo-caption strong {
    font-size:16px
  }
  .photo-caption div>span {
    font-size:12px
  }
  .photo-corner {
    right:-10px;
    bottom:-10px;
    width:90px;
    height:130px
  }
  .intro-strip .container {
    padding:22px 0;
    display:block
  }
  .intro-strip p {
    font-size:16px;
    line-height:1.7
  }
  .intro-strip a {
    font-size:12px;
    margin-top:9px;
    gap:15px
  }
  .intro-strip a>span:last-child {
    font-size:17px
  }
  .section {
    padding:62px 0
  }
  .section-heading {
    grid-template-columns:minmax(0,1fr);
    gap:20px;
    margin-bottom:31px
  }
  h2 {
    font-size:30px;
    letter-spacing:-.8px;
    line-height:1.45
  }
  .section-intro {
    max-width:none;
    font-size:16px
  }
  .needs-grid {
    grid-template-columns:1fr
  }
  .need-item,.need-item+article {
    border-left:0;
    padding:25px 0
  }
  .need-item:last-child {
    padding-bottom:0
  }
  .need-item h3 {
    font-size:24px;
    margin-bottom:9px
  }
  .need-item p {
    min-height:0;
    font-size:16px
  }
  .need-item .text-link {
    margin-top:12px;
    font-size:14px
  }
  .doctor-grid {
    grid-template-columns:minmax(0,1fr);
    gap:var(--gap-cols)
  }
  .doctor-portrait {
    max-width:none;
    margin-right:12px
  }
  .doctor-portrait>img {
    height:380px;
    object-position:center 30%
  }
  .portrait-label {
    right:-12px;
    padding:17px 21px
  }
  .portrait-label>span:first-child {
    font-size:29px
  }
  .doctor-copy h2 {
    font-size:31px
  }
  .doctor-role {
    font-size:12px;
    margin:9px 0 23px
  }
  .doctor-lead {
    font-size:23px
  }
  .doctor-copy>p:not(.eyebrow):not(.doctor-role):not(.doctor-lead) {
    font-size:16px
  }
  .credentials>div {
    grid-template-columns:95px 1fr;
    font-size:15px;
    gap:20px
  }
  .journey-grid {
    grid-template-columns:1fr;
    gap:24px
  }
  .journey-grid>li {
    display:grid;
    grid-template-columns:43px 1fr;
    column-gap:19px;
    padding-top:24px
  }
  .journey-grid>li::before {
    grid-row:1/3;
    font-size:28px;
    padding-top:4px
  }
  .journey-grid h3 {
    margin:0 0 9px;
    font-size:18px
  }
  .journey-grid p {
    font-size:16px
  }
  .care-note {
    align-items:flex-start;
    padding:18px;
    margin-top:28px;
    gap:12px
  }
  .care-note .icon {
    margin-top:4px
  }
  .care-note p {
    font-size:12px
  }
  .plans-grid {
    grid-template-columns:1fr;
    gap:16px
  }
  .plan-card {
    padding:28px
  }
  .plan-card h3 {
    font-size:32px
  }
  .plan-for {
    font-size:16px;
    min-height:0;
    max-width:300px
  }
  .check-list {
    padding-top:20px;
    padding-bottom:4px;
    margin:20px 0
  }
  .check-list li {
    font-size:16px;
    margin-bottom:13px
  }
  .plan-card .button {
    font-size:14px;
    min-height:48px
  }
  .plan-details {
    grid-template-columns:1fr;
    gap:12px;
    margin-top:25px;
    padding-top:22px
  }
  .plan-details h3 {
    font-size:16px;
    max-width:none
  }
  .plan-details p {
    font-size:12px
  }
  .example-grid {
    grid-template-columns:minmax(0,1fr);
    gap:var(--gap-cols)
  }
  .example-copy h2 {
    font-size:30px
  }
  .example-photo img {
    height:330px;
    border-top-right-radius:70px
  }
  .example-photo figcaption {
    font-size:13px
  }
  .faq-grid {
    grid-template-columns:1fr;
    gap:var(--gap-cols)
  }
  .faq-grid .section-intro {
    max-width:none;
    margin-top:17px
  }
  .faq-list summary {
    font-size:16px;
    padding:20px 0;
    gap:15px
  }
  .faq-list details p {
    font-size:16px;
    padding-right:10px
  }
  .contact-section {
    padding:60px 0
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:var(--gap-cols)
  }
  .contact-copy h2 {
    font-size:39px
  }
  .contact-copy>p:not(.eyebrow) {
    font-size:16px;
    margin-top:20px
  }
  .contact-methods {
    grid-template-columns:1fr;
    gap:20px;
    margin-top:27px
  }
  .contact-methods strong {
    font-size:21px
  }
    .inquiry-form {
    padding:26px 23px
  }
  .inquiry-form h3 {
    font-size:25px
  }
  .form-row {
    gap:10px
  }
  .form-privacy,.form-footnote {
    font-size:12px
  }
  .site-footer {
    padding:31px 0 100px
  }
  .footer-top {
    display:block;
    padding-bottom:23px
  }
  .footer-brand {
    font-size:18px
  }
  .footer-links {
    margin-top:25px;
    gap:25px
  }
  .footer-bottom {
    display:block;
    padding-top:20px
  }
  .footer-bottom p {
    margin-top:12px;
    font-size:12px
  }
  .mobile-contact {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:15;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    min-height:58px;
    padding:15px 25px calc(15px + env(safe-area-inset-bottom));
    background:var(--green-deep);
    color:var(--on-dark);
    font-size:14px;
    border-top:1px solid var(--line-dark);
    }
  .mobile-contact .icon {
    width:18px
  }
}
@media(max-width:360px) {
  .brand-words {
    font-size:13px
  }
  .header-actions {
    gap:6px
  }
  .hero h1 {
    font-size:32px
  }
  .hero-principles {
    gap:7px;
    font-size:12px
  }
  .hero-actions {
    gap:13px
  }
  .hero-actions .text-link {
    font-size:14px
  }
  .form-row {
    grid-template-columns:1fr
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
}
@media print {
  .site-header,.mobile-contact,.inquiry-form,.hero-actions,.footer-links {
    display:none
  }
  .section,.contact-section {
    padding:25px 0;
    break-inside:avoid
  }
  .container {
    width:100%
  }
  .hero-photo {
    height:350px
  }
  .hero-grid {
    gap:30px
  }
  .contact-section {
    background:var(--on-dark);
    color:var(--ink)
  }
  body {
    font-size:11px
  }
  .site-footer {
    padding-bottom:0
  }
}

.contact-call {
  display:inline-block;
  margin-top:26px;
  font-size:14px;
  color:var(--on-dark-muted);
  border-bottom:1px solid var(--line-dark);
  padding-bottom:4px;
}
.inquiry-draft {
  margin-top:20px;
}
.inquiry-draft textarea {
  width:100%;
  min-height:190px;
  padding:13px;
  resize:vertical;
  border:1px solid var(--line-strong);
  border-radius:0;
  background:var(--surface-input);
  color:var(--ink);
  font:14px/1.8 var(--sans);
}
.inquiry-draft textarea:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:3px;
}
.draft-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:14px;
}
.draft-actions .button {
  flex:1;
  min-width:150px;
  padding-left:12px;
  padding-right:12px;
}
@media(max-width:700px) {
  .hero-principles { justify-content:flex-start; }
  .hero-actions { align-items:flex-start; }
  .inquiry-draft textarea { font-size:16px; }
}

/* V4: states, network, facilities */
.button:active {
  background:var(--green-deep);
  transform:translateY(0)
}
.button-outline:active {
  background:var(--accent-soft)
}
.text-link:active,.desktop-nav a:active,.footer-links a:active,.contact-methods a:active {
  color:var(--sage-ink)
}
.language-switch button:hover {
  color:var(--ink)
}
.language-switch button:active {
  color:var(--green-deep)
}
.faq-list summary:hover {
  color:var(--green)
}
.faq-list summary:active {
  color:var(--green-deep)
}
.inquiry-form input:not([type=hidden]):hover,.inquiry-form select:hover {
  border-color:var(--sage-ink)
}
.inquiry-form input:user-invalid {
  border-color:var(--gold-ink)
}
.lang-en {
  display:none
}
html[lang=en] .lang-en {
  display:revert
}
html[lang=en] .lang-vi {
  display:none
}
.hero-note {
  max-width:520px
}
.plan-en {
  font-size:14px;
  color:var(--muted);
  margin-top:4px
}
.plan-featured .plan-en {
  color:var(--on-dark-muted)
}
.plan-details ul {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:32px;
  row-gap:4px
}
.plan-details li {
  font-size:14px;
  line-height:1.9;
  color:var(--muted);
  padding-left:16px;
  position:relative
}
.plan-details li::before {
  content:'';
  position:absolute;
  left:0;
  top:.9em;
  width:8px;
  height:1px;
  background:var(--gold)
}
.example-copy .fine-print {
  margin-top:12px
}

/* Specialist network */
.network-section {
  background:var(--paper)
}
.expert-list {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,560px),1fr));
  gap:24px
}
.expert-card {
  display:grid;
  grid-template-columns:minmax(0,240px) minmax(0,1fr);
  gap:32px;
  padding:28px;
  background:var(--surface-card);
  border:1px solid var(--line)
}
.expert-card:only-child {
  grid-column:1/-1;
  grid-template-columns:minmax(0,360px) minmax(0,1fr);
  gap:var(--gap-cols)
}
.expert-photo img {
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center 30%;
  filter:saturate(.85)
}
.expert-body h3 {
  font:400 32px/1.35 var(--serif);
  letter-spacing:-.6px;
  text-wrap:balance
}
.expert-role {
  font-size:16px;
  color:var(--ink);
  margin-top:4px
}
.expert-facts {
  margin:20px 0 0
}
.expert-facts>div {
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:20px;
  border-top:1px solid var(--line);
  padding:12px 0;
  font-size:15px;
  line-height:1.8
}
.expert-facts dt {
  font-weight:500
}
.expert-facts dd {
  margin:0;
  color:var(--muted)
}
.expert-strength {
  margin-top:16px;
  padding:16px 20px;
  border-left:2px solid var(--gold);
  background:var(--paper)
}
.expert-strength strong {
  display:block;
  font-size:14px;
  font-weight:600;
  color:var(--ink)
}
.expert-strength p {
  font-size:15px;
  line-height:1.8;
  margin-top:4px
}
.expert-signs {
  margin-top:16px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
.expert-signs summary {
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:16px 0;
  cursor:pointer;
  font-weight:500
}
.expert-signs summary::-webkit-details-marker {
  display:none
}
.expert-signs summary:hover {
  color:var(--green)
}
.expert-signs summary .icon {
  width:15px;
  height:15px;
  color:var(--muted);
  transition:transform .2s
}
.expert-signs[open] summary .icon {
  transform:rotate(45deg)
}
.expert-signs ul {
  margin:0;
  padding:0 0 16px 20px
}
.expert-signs li {
  font-size:15px;
  line-height:1.8;
  color:var(--muted);
  margin-bottom:8px
}
.expert-signs li.lang-en {
  color:var(--ink)
}
.expert-crisis {
  font-size:14px;
  line-height:1.8;
  margin-top:12px
}
.expert-actions {
  margin-top:24px;
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  align-items:center
}
.network-join {
  margin-top:32px;
  padding-top:20px;
  border-top:1px solid var(--line);
  font-size:15px
}
.network-join a {
  color:var(--green);
  border-bottom:1px solid var(--line-strong)
}
.network-join a:hover {
  border-color:var(--green)
}

/* Partner facilities */
.facilities-section {
  background:var(--cream)
}
.facility-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);
  gap:var(--gap-cols);
  align-items:start
}
.facility-group h3 {
  font:400 24px/1.5 var(--serif)
}
.facility-group>p {
  font-size:15px;
  line-height:1.9;
  margin-top:8px
}
.facility-list {
  list-style:none;
  padding:0;
  margin:20px 0 0;
  border-top:1px solid var(--line-strong)
}
.facility-list li {
  padding:12px 0;
  border-bottom:1px solid var(--line-strong);
  font-size:16px;
  line-height:1.6
}
.facility-list li span {
  display:block;
  font-size:14px;
  color:var(--muted)
}
.facility-direct .facility-list li {
  font:400 22px/1.5 var(--serif)
}
.facility-direct .facility-list li span {
  font:14px/1.7 var(--sans);
  margin-top:2px
}
.facility-list-cols {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:32px
}
.facility-note {
  margin-top:32px;
  font-size:14px;
  line-height:1.9;
  max-width:760px
}
@media(max-width:950px) {
  .expert-card,.expert-card:only-child {
    grid-template-columns:minmax(0,220px) minmax(0,1fr);
    gap:28px
  }
  .facility-grid {
    grid-template-columns:minmax(0,1fr)
  }
}
@media(max-width:700px) {
  .expert-card,.expert-card:only-child {
    grid-template-columns:minmax(0,1fr);
    padding:20px;
    gap:20px
  }
  .expert-photo img {
    aspect-ratio:1/1;
    object-position:center 24%
  }
  .expert-body h3 {
    font-size:28px
  }
  .expert-facts>div {
    grid-template-columns:96px minmax(0,1fr);
    gap:16px
  }
  .facility-list-cols,.plan-details ul {
    grid-template-columns:minmax(0,1fr)
  }
}

/* Price note */
.price-note {
  margin:-16px 0 32px;
  font-size:16px;
  line-height:1.9;
  color:var(--ink);
  max-width:760px
}
.price-note strong {
  font:400 24px/1.4 var(--serif);
  color:var(--green-deep);
  white-space:nowrap
}
.doctor-copy h2 a:hover {
  color:var(--green)
}
.doctor-copy h2 a:active {
  color:var(--green-deep)
}
.doctor-copy .expert-actions {
  margin-top:8px
}

/* Specialist profile pages */
.expert-body h3 a:hover {
  color:var(--green)
}
.expert-body h3 a:active {
  color:var(--green-deep)
}
.breadcrumb {
  padding-top:24px
}
.breadcrumb ol {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  font-size:14px;
  color:var(--muted)
}
.breadcrumb li+li::before {
  content:'/';
  margin-right:8px;
  color:var(--line-strong)
}
.breadcrumb a {
  border-bottom:1px solid var(--line-strong)
}
.breadcrumb a:hover {
  color:var(--green);
  border-color:var(--green)
}
.profile-hero {
  padding:40px 0 80px
}
.profile-grid {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:var(--gap-cols);
  align-items:center
}
.profile-photo img {
  aspect-ratio:4/5;
  max-height:600px;
  object-fit:cover;
  object-position:center 28%;
  border-radius:120px 2px 2px 2px;
  filter:saturate(.85)
}
.profile-copy h1 {
  font-size:clamp(34px,3.6vw,52px);
  line-height:1.3;
  letter-spacing:-1.4px
}
.profile-lead {
  font-size:18px;
  line-height:1.9;
  margin-top:16px;
  max-width:520px
}
.profile-facts {
  margin-top:40px
}
.who-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--gap-cols)
}
.who-grid article {
  border-top:1px solid var(--line);
  padding-top:24px
}
.who-grid h3 {
  font:400 23px/1.5 var(--serif);
  margin-bottom:12px
}
.who-grid p {
  font-size:16px;
  line-height:2
}
.services-section {
  background:var(--cream)
}
.service-list {
  border-top:1px solid var(--line-strong)
}
.service-item {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--gap-cols);
  padding:32px 0;
  border-bottom:1px solid var(--line-strong);
  scroll-margin-top:100px
}
.service-item h3 {
  font:400 26px/1.45 var(--serif);
  text-wrap:balance
}
.service-tag {
  font-size:14px;
  font-weight:600;
  color:var(--gold-ink);
  margin-top:4px
}
.service-item div>p:last-child {
  font-size:16px;
  line-height:2;
  margin-top:12px
}
.service-item ul {
  margin:0;
  padding:0;
  list-style:none
}
.service-item li {
  position:relative;
  padding:12px 0 12px 24px;
  border-top:1px solid var(--line);
  font-size:16px;
  line-height:1.8;
  color:var(--ink)
}
.service-item li:first-child {
  border-top:0;
  padding-top:0
}
.service-item li::before {
  content:'';
  position:absolute;
  left:0;
  top:1.5em;
  width:12px;
  height:1px;
  background:var(--gold)
}
.service-item li:first-child::before {
  top:.9em
}
.crisis-note {
  margin-top:40px;
  padding:20px 24px;
  background:var(--paper);
  border-left:2px solid var(--gold-ink);
  display:flex;
  gap:16px;
  align-items:flex-start
}
.crisis-note .icon {
  margin-top:4px;
  color:var(--gold-ink)
}
.crisis-note p {
  font-size:15px;
  line-height:1.9;
  color:var(--ink)
}
.prep-block {
  margin-top:48px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);
  gap:var(--gap-cols);
  border-top:1px solid var(--line);
  padding-top:24px
}
.prep-block h3 {
  font:400 23px/1.5 var(--serif)
}
.prep-block ul {
  margin:0;
  padding:0 0 0 20px
}
.prep-block li {
  font-size:16px;
  line-height:1.9;
  color:var(--muted);
  margin-bottom:8px
}
.other-experts {
  padding-top:0
}
.other-experts .network-join {
  margin-top:0
}
@media(max-width:950px) {
  .profile-grid,.service-item,.prep-block {
    grid-template-columns:minmax(0,1fr)
  }
  .service-item {
    gap:16px
  }
  .who-grid {
    grid-template-columns:minmax(0,1fr);
    gap:24px
  }
  .profile-photo {
    max-width:440px
  }
  .prep-block {
    gap:12px
  }
}
@media(max-width:700px) {
  .profile-hero {
    padding:24px 0 56px
  }
  .profile-photo img {
    aspect-ratio:1/1;
    border-top-left-radius:80px;
    object-position:center 22%
  }
  .profile-lead {
    font-size:16px
  }
  .service-item h3 {
    font-size:23px
  }
}
.profile-wide img {
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:30% center;
  border-radius:2px 90px 2px 2px;
  filter:saturate(.75)
}
.service-item li a,.network-join a {
  color:var(--green);
  border-bottom:1px solid var(--line-strong)
}
.service-item li a:hover {
  border-color:var(--green)
}
.language-switch a {
  color:var(--muted);
  padding:10px 2px;
  font-size:12px
}
.language-switch a[aria-current=page] {
  color:var(--green);
  font-weight:700
}
.language-switch a:hover {
  color:var(--ink)
}
.language-switch a:active {
  color:var(--green-deep)
}
.doctor-copy h2+.doctor-lead {
  margin-top:16px
}
.value-block {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,3fr);
  gap:var(--gap-cols);
  margin:0 0 40px;
  padding:24px 0;
  border-top:1px solid var(--line-strong);
  border-bottom:1px solid var(--line-strong)
}
.value-block h3 {
  font:400 23px/1.5 var(--serif)
}
.value-block ul {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:32px
}
.value-block strong {
  display:block;
  font-weight:600;
  font-size:16px;
  line-height:1.6;
  color:var(--ink)
}
.value-block span {
  display:block;
  margin-top:8px;
  font-size:15px;
  line-height:1.8;
  color:var(--muted)
}
.approach-section .value-block {
  margin-top:8px
}
.about-chv {
  padding-top:0
}
.about-chv-inner {
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  gap:var(--gap-cols);
  align-items:end;
  padding-top:48px;
  border-top:1px solid var(--line)
}
.about-chv h2 {
  font-size:clamp(26px,2.4vw,34px)
}
.about-chv p {
  font-size:16px;
  line-height:1.9;
  margin-top:12px;
  max-width:560px
}
@media(max-width:950px) {
  .value-block,.about-chv-inner {
    grid-template-columns:minmax(0,1fr);
    gap:20px
  }
}
@media(max-width:700px) {
  .value-block ul {
    grid-template-columns:minmax(0,1fr);
    gap:20px
  }
}
