/* EGA London — shared Verde styles (tokens, header, buttons, cards, footer).
   Extracted from index-verde.html; service pages and the homepage share this file. */
  :root, :root[data-theme="dark"], :root[data-theme="light"] {
    --bg: #f2f1ec;
    --fg: #16261f;
    --muted-fg: #59695f;
    --card: #ffffff;
    --border: hsl(150 8% 82%);
    --hairline: hsl(160 12% 28% / .22);
    --green: #1c6b47;
    --green-deep: #12362a;
    --green-soft: #e3ede6;
    --gold: #b08c42;
    --gold-soft: hsl(43 45% 60% / .35);
    --parch-ink: hsl(27 22% 52%);
    --shadow: 0 1px 2px hsl(160 25% 12% / .05), 0 10px 28px hsl(160 25% 12% / .08);
    --marble-light:
      url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="700" height="700"%3E%3Cfilter id="m"%3E%3CfeTurbulence type="turbulence" baseFrequency="0.011 0.021" numOctaves="3" seed="8"/%3E%3CfeColorMatrix type="matrix" values="0 0 0 0 .38  0 0 0 0 .45  0 0 0 0 .41  0 0 0 13 -9.2"/%3E%3C/filter%3E%3Crect width="700" height="700" filter="url(%23m)" opacity=".07"/%3E%3C/svg%3E');
    --marble-dark:
      url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="900" height="700"%3E%3Cfilter id="d"%3E%3CfeTurbulence type="turbulence" baseFrequency="0.008 0.019" numOctaves="3" seed="12"/%3E%3CfeColorMatrix type="matrix" values="0 0 0 0 .82  0 0 0 0 .9  0 0 0 0 .84  0 0 0 17 -12.2"/%3E%3C/filter%3E%3Crect width="900" height="700" filter="url(%23d)" opacity=".17"/%3E%3C/svg%3E');
    /* granite speckle — Miralles material language */
    --stone-tex:
      url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="240" height="240"%3E%3Cfilter id="s"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="2" seed="4"/%3E%3CfeColorMatrix type="matrix" values="0 0 0 0 .3  0 0 0 0 .34  0 0 0 0 .3  0 0 0 .055 0"/%3E%3C/filter%3E%3Crect width="240" height="240" filter="url(%23s)"/%3E%3C/svg%3E');
    --stone-tex-light:
      url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="240" height="240"%3E%3Cfilter id="w"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="2" seed="6"/%3E%3CfeColorMatrix type="matrix" values="0 0 0 0 1  0 0 0 0 1  0 0 0 0 .95  0 0 0 .1 0"/%3E%3C/filter%3E%3Crect width="240" height="240" filter="url(%23w)"/%3E%3C/svg%3E');
  }

  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

  body {
    margin: 0;
    background: var(--marble-light), var(--bg);
    color: var(--fg);
    font-family: "Montserrat", "Avenir Next", "Segoe UI", system-ui, sans-serif;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
  }

  .wrap { max-width: 1060px; margin: 0 auto; padding-inline: 24px; }
  .display { font-family: "Didot", "Bodoni 72", "Playfair Display", Georgia, serif; font-weight: 400; letter-spacing: .005em; }

  /* ---------- header ---------- */
  header.site {
    position: sticky; top: 0; z-index: 20;
    background: color-mix(in srgb, var(--bg) 90%, transparent);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--hairline);
  }
  .nav {
    display: flex; align-items: center; gap: 28px;
    padding: 16px 24px; max-width: 1060px; margin: 0 auto;
  }
  .logo {
    font-weight: 700; letter-spacing: .32em; font-size: 15px;
    color: #8a6a2e; text-decoration: none;
  }
  .logo span { color: var(--green); }
  .nav-links { display: flex; gap: 24px; margin-left: auto; }
  .nav-links a {
    color: var(--muted-fg); text-decoration: none; font-size: 13px;
    letter-spacing: .06em; text-transform: uppercase; font-weight: 600;
  }
  .nav-links a:hover, .nav-links a:focus-visible { color: var(--green); }
  .btn {
    display: inline-block; text-decoration: none; font-weight: 600;
    font-size: 14px; letter-spacing: .05em;
    padding: 13px 28px; border-radius: 2px;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .btn:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
  .btn-solid { background: var(--green); color: #fff; }
  .btn-solid:hover { background: #14523a; transform: translateY(-1px); box-shadow: var(--shadow); }
  .btn-ghost { border: 1px solid var(--border); color: var(--fg); background: #fff; }
  .btn-ghost:hover { border-color: var(--green); color: var(--green); }
  .nav .btn { padding: 9px 20px; font-size: 13px; }
  .menu-btn { display: none; }
  @media (max-width: 720px) {
    .nav { gap: 12px; padding: 14px 18px; position: relative; }
    .nav .btn { margin-left: auto; padding: 8px 14px; font-size: 12px; }
    .menu-btn {
      display: flex; flex-direction: column; justify-content: center; gap: 4px;
      width: 42px; height: 38px; padding: 0 11px; flex: none;
      background: none; border: 1px solid var(--hairline); border-radius: 2px; cursor: pointer;
    }
    .menu-btn span { display: block; height: 1.5px; background: var(--fg); }
    .nav-links {
      display: none; position: absolute; top: 100%; left: 0; right: 0;
      flex-direction: column; gap: 0; margin: 0;
      background: var(--bg); border-bottom: 1px solid var(--hairline);
      padding: 4px 18px 10px;
    }
    .nav-links a { padding: 13px 0; border-top: 1px solid var(--hairline); }
    .nav-links a:first-child { border-top: none; }
    .nav.open .nav-links { display: flex; }
  }

  /* ---------- shared ---------- */
  .eyebrow {
    text-transform: uppercase; letter-spacing: .26em; font-size: 12px;
    font-weight: 700; color: var(--green); margin: 0 0 14px;
  }
  h1, h2, h3 { text-wrap: balance; line-height: 1.16; margin: 0; }
  h2 { font-size: clamp(30px, 3.9vw, 48px); }
  section { padding: 128px 0; scroll-margin-top: 72px; }
  ::selection { background: var(--green-soft); color: var(--green-deep); }
  .lede { font-size: 18px; color: var(--muted-fg); max-width: 62ch; }
  .goldrule { width: 64px; height: 1px; background: var(--gold); margin: 22px 0 0; }
  .reveal { opacity: 0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease; }
  .reveal.in { opacity: 1; transform: none; }
  @media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

  .graph-bg {
    background:
      linear-gradient(hsl(160 20% 25% / .06) 1px, transparent 1px),
      linear-gradient(90deg, hsl(160 20% 25% / .06) 1px, transparent 1px),
      linear-gradient(hsl(160 20% 25% / .035) 1px, transparent 1px),
      linear-gradient(90deg, hsl(160 20% 25% / .035) 1px, transparent 1px);
    background-size: 120px 120px, 120px 120px, 24px 24px, 24px 24px;
  }
  .clinic-head { max-width: 62ch; margin-bottom: 72px; }
  .clinic-head h2 { margin-bottom: 14px; }
  .wall {
    display: grid; grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: minmax(72px, auto); gap: 18px; margin-bottom: 72px;
  }
  .stone {
    border-radius: 2px; padding: 30px 30px;
    background: var(--stone-tex), linear-gradient(180deg, #fefdf9, #f3f1e9);
    border: 1px solid var(--border);
    box-shadow: inset 0 1px 0 hsl(0 0% 100% / .9), inset 0 -2px 4px hsl(160 12% 28% / .07), var(--shadow);
  }
  .stone h3 { font-size: 19px; margin-bottom: 6px; }
  .stone .sub { margin: 0 0 16px; font-size: 14px; color: var(--muted-fg); }
  .stone ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
  .stone li { position: relative; padding-left: 22px; font-size: 15px; }
  .stone li::before {
    content: ""; position: absolute; left: 0; top: 7px;
    width: 9px; height: 9px; background: var(--green);
    border-radius: 0 75% 0 75%; transform: rotate(45deg);
  }
  .stone li:nth-child(even)::before { background: #175c3e; border-radius: 75% 0 75% 0; transform: rotate(-45deg); }

  /* ---------- footer: verde bookend ---------- */
  footer.site {
    margin-top: 40px;
    background:
      var(--marble-dark),
      linear-gradient(#123527, var(--green-deep));
    color: hsl(140 15% 78%); font-size: 14px;
    padding: 64px 0 72px;
    border-top: 1px solid var(--gold-soft);
  }
  footer .cols { display: flex; gap: 48px; flex-wrap: wrap; justify-content: space-between; }
  footer .logo { font-size: 14px; color: #d8b567; }
  footer .logo span { color: #e6cd8c; }
  footer a { color: #dfe9e1; text-decoration: none; }
  footer a:hover { color: var(--gold); }
  footer address { font-style: normal; line-height: 1.9; }
  .f-col { display: flex; flex-direction: column; gap: 9px; font-size: 14px; }
  .f-col b {
    font-size: 11px; font-weight: 700; letter-spacing: .2em;
    text-transform: uppercase; color: #b99b55; margin-bottom: 4px;
  }
  .f-bottom {
    margin-top: 48px; padding-top: 22px;
    border-top: 1px solid hsl(150 18% 32% / .6);
    font-size: 12px; color: hsl(140 12% 62%);
    display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  }

/* ======================================================================
   Service pages (generated from content/services/*.json)
   ====================================================================== */
.crumbs { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-fg); margin: 0 0 28px; }
.crumbs a { color: var(--muted-fg); text-decoration: none; }
.crumbs a:hover { color: var(--green); }
.crumbs span[aria-hidden] { margin: 0 8px; color: var(--gold); }

.svc-hero { position: relative; padding: 96px 0 104px; border-bottom: 1px solid var(--hairline); }
.svc-hero-frame { position: absolute; inset: 18px; border: 1px solid hsl(43 50% 45% / .45); pointer-events: none; }
.svc-hero-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, 1fr); gap: 56px; align-items: start; }
.svc-hero h1 { font-family: "Didot", "Bodoni 72", "Playfair Display", Georgia, serif; font-weight: 400; font-size: clamp(36px, 4.6vw, 58px); letter-spacing: .003em; }
.svc-hero h1 em { display: block; font-style: italic; color: var(--green); }
.svc-hero .lede { margin: 26px 0 34px; }

.spec { padding: 30px 30px 26px; position: relative; }
.spec::before { content: ""; position: absolute; left: 30px; right: 30px; top: 0; height: 2px; background: var(--gold); }
.spec-row { padding: 14px 0; border-top: 1px solid var(--hairline); }
.spec-row:first-child { border-top: none; padding-top: 4px; }
.spec-label { font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--muted-fg); margin: 0 0 4px; }
.spec-value { margin: 0; font-size: 15px; }
.spec-price { font-family: "Didot", "Bodoni 72", Georgia, serif; font-size: 40px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.spec-note { margin: 16px 0 0; font-size: 12px; color: var(--muted-fg); }

/* price gate */
.pg { display: inline-flex; align-items: center; gap: 8px; }
.pg-locked { cursor: pointer; background: none; border: 0; padding: 0; font: inherit; color: inherit; }
.pg-locked .pg-mask { filter: blur(5px); opacity: .65; user-select: none; }
.pg-locked .pg-lock { width: .5em; height: .5em; min-width: 14px; min-height: 14px; color: var(--green); }
.pg-locked:hover .pg-mask { opacity: .85; }
.pg-cta { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 600; color: var(--green); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
html.prices-unlocked .pg-cta { display: none; }

/* editorial sections */
.ed { padding: 96px 0; border-bottom: 1px solid var(--hairline); }
.ed.alt { background: var(--stone-tex), hsl(150 14% 94% / .7); }
.ed-grid { display: grid; grid-template-columns: minmax(200px, 1fr) minmax(0, 2.3fr); gap: 56px; }
.ed-head { position: sticky; top: 96px; align-self: start; }
.ed-num { font-family: "Didot", "Bodoni 72", Georgia, serif; font-size: 15px; color: var(--gold); letter-spacing: .1em; margin: 0 0 10px; }
.ed-head h2 { font-family: "Didot", "Bodoni 72", Georgia, serif; font-weight: 400; font-size: clamp(28px, 3vw, 38px); }
.ed-body > p { margin: 0 0 22px; font-size: 17px; color: var(--muted-fg); max-width: 64ch; }
.ed-body > p.closer { color: var(--fg); font-weight: 500; margin-top: 26px; }

.markers { border-top: 1px solid var(--hairline); margin: 8px 0 24px; }
.markers details { border-bottom: 1px solid var(--hairline); }
.markers summary { list-style: none; display: grid; grid-template-columns: 44px 1fr 24px; align-items: baseline; gap: 12px; padding: 20px 0; cursor: pointer; }
.markers summary::-webkit-details-marker { display: none; }
.markers .m-num { font-family: "Didot", "Bodoni 72", Georgia, serif; color: var(--gold); font-size: 15px; }
.markers .m-title { font-size: 18px; font-weight: 600; }
.markers .m-plus { color: var(--green); font-size: 20px; line-height: 1; transition: transform .2s ease; text-align: right; }
.markers details[open] .m-plus { transform: rotate(45deg); }
.markers details p { margin: 0 0 22px 56px; color: var(--muted-fg); max-width: 62ch; }

.ticks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 32px; }
.ticks li { position: relative; padding-left: 24px; font-size: 15px; }
.ticks li::before { content: ""; position: absolute; left: 0; top: 7px; width: 9px; height: 9px; background: var(--green); border-radius: 0 75% 0 75%; transform: rotate(45deg); }
.ticks.one { grid-template-columns: 1fr; }
.note { margin-top: 24px; padding: 16px 20px; border-left: 2px solid var(--gold); background: hsl(43 45% 60% / .08); font-size: 14px; color: var(--muted-fg); }

.points { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.points .stone { padding: 24px 24px; }
.points h3 { font-size: 16px; margin: 0 0 8px; }
.points p { margin: 0; font-size: 14px; color: var(--muted-fg); }

.faq { border-top: 1px solid var(--hairline); }
.faq details { border-bottom: 1px solid var(--hairline); }
.faq summary { list-style: none; display: flex; justify-content: space-between; gap: 24px; padding: 20px 0; cursor: pointer; font-size: 17px; font-weight: 600; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--green); font-size: 22px; line-height: 1; transition: transform .2s ease; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { margin: 0 0 22px; color: var(--muted-fg); max-width: 66ch; }

/* next step: deep-green marble band, echoes the footer */
.book-band { padding: 96px 0; color: hsl(140 15% 84%); background: var(--marble-dark), linear-gradient(#174535, var(--green-deep)); border-top: 1px solid var(--gold-soft); }
.book-band .eyebrow { color: #d8b567; }
.book-band h2 { font-family: "Didot", "Bodoni 72", Georgia, serif; font-weight: 400; color: #fff; font-size: clamp(30px, 3.6vw, 44px); }
.book-band .lede { color: hsl(140 15% 78%); margin: 12px 0 44px; }
.steps { list-style: none; margin: 0 0 44px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid hsl(43 50% 60% / .35); }
.steps li { padding: 24px 22px 0 0; display: flex; flex-direction: column; gap: 8px; }
.steps .s-num { font-family: "Didot", "Bodoni 72", Georgia, serif; font-size: 30px; color: #d8b567; line-height: 1; }
.steps b { color: #fff; font-size: 16px; }
.steps span { font-size: 14px; }
.book-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding-top: 28px; border-top: 1px solid hsl(150 18% 40% / .5); }
.btn-gold { background: #d8b567; color: var(--green-deep); }
.btn-gold:hover { background: #e6cd8c; transform: translateY(-1px); }
.book-contact { font-size: 14px; text-align: right; line-height: 1.8; }
.book-contact a { color: #fff; text-decoration: none; }
.book-contact a:hover { color: #e6cd8c; }

.related { padding: 88px 0 96px; }
.related h2 { font-family: "Didot", "Bodoni 72", Georgia, serif; font-weight: 400; font-size: clamp(26px, 2.8vw, 34px); margin-bottom: 28px; }
.rel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.rel-grid a { display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: var(--fg); padding: 24px; }
.rel-grid a:hover { border-color: var(--green); }
.rel-grid .r-name { font-size: 16px; font-weight: 600; }
.rel-grid .r-price { font-family: "Didot", "Bodoni 72", Georgia, serif; font-size: 22px; }
.rel-grid .r-go { margin-top: auto; font-size: 13px; font-weight: 600; color: var(--green); }

/* footer additions: services column + CQC badge */
footer .f-cqc { display: inline-block; margin-top: 18px; background: #fff; padding: 6px 8px; border-radius: 3px; line-height: 0; }
footer .f-cqc img { width: 112px; height: auto; display: block; }

/* price unlock dialog */
.pu-dialog { border: 1px solid var(--border); border-radius: 3px; padding: 0; max-width: 440px; width: calc(100% - 32px); box-shadow: 0 24px 60px hsl(160 25% 12% / .25); background: var(--bg); color: var(--fg); }
.pu-dialog::backdrop { background: hsl(160 30% 8% / .45); backdrop-filter: blur(2px); }
.pu-dialog form { padding: 34px 32px 30px; display: flex; flex-direction: column; gap: 14px; }
.pu-dialog h2 { font-family: "Didot", "Bodoni 72", Georgia, serif; font-weight: 400; font-size: 30px; }
.pu-dialog p { margin: 0 0 6px; font-size: 14px; color: var(--muted-fg); }
.pu-dialog .pu-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pu-dialog input { width: 100%; font: inherit; font-size: 15px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 2px; background: #fff; color: var(--fg); }
.pu-dialog input:focus { outline: 2px solid var(--green); outline-offset: 1px; border-color: var(--green); }
.pu-dialog .pu-err { color: #b3261e; font-size: 13px; min-height: 1em; margin: 0; }
.pu-dialog .btn { border: 0; cursor: pointer; width: 100%; margin-top: 4px; }
.pu-dialog .pu-close { position: absolute; top: 10px; right: 12px; background: none; border: 0; font-size: 24px; line-height: 1; color: var(--muted-fg); cursor: pointer; padding: 6px; }
.pu-toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%); background: var(--green-deep); color: #fff; padding: 12px 20px; border-radius: 3px; font-size: 14px; box-shadow: var(--shadow); z-index: 60; }

@media (max-width: 860px) {
  .svc-hero-grid, .ed-grid { grid-template-columns: 1fr; gap: 32px; }
  .ed-head { position: static; }
  .steps { grid-template-columns: 1fr 1fr; row-gap: 8px; }
  .rel-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .svc-hero { padding: 64px 0 72px; }
  .svc-hero-frame { inset: 10px; }
  .ed, .book-band { padding: 64px 0; }
  .related { padding: 56px 0 64px; }
  .ticks, .points, .pu-dialog .pu-row { grid-template-columns: 1fr; }
  .markers details p { margin-left: 0; }
  .steps { grid-template-columns: 1fr; }
  .book-contact { text-align: left; }
  .svc-hero .btn, .book-row .btn { width: 100%; text-align: center; }
  footer.site { padding: 48px 0 56px; }
}

/* ======================================================================
   Policy pages
   ====================================================================== */
.policy { padding: 88px 0 112px; }
.policy .wrap { max-width: 780px; }
.policy h1 { font-family: "Didot", "Bodoni 72", "Playfair Display", Georgia, serif; font-weight: 400; font-size: clamp(34px, 4.4vw, 52px); }
.policy-updated { margin: 14px 0 0; font-size: 13px; letter-spacing: .06em; color: var(--muted-fg); }
.prose { margin-top: 40px; font-size: 16px; color: var(--muted-fg); }
.prose > p:first-child { color: var(--fg); }
.prose h2 { font-size: 20px; color: var(--fg); margin: 44px 0 12px; font-weight: 600; }
.prose h3 { font-size: 17px; color: var(--fg); margin: 28px 0 10px; font-weight: 600; }
.prose p { margin: 0 0 16px; }
.prose ul, .prose ol { margin: 0 0 18px; padding-left: 22px; }
.prose li { margin-bottom: 8px; }
.prose li::marker { color: var(--green); }
.prose a { color: var(--green); text-underline-offset: 3px; }
.prose strong { color: var(--fg); font-weight: 600; }
@media (max-width: 720px) { .policy { padding: 56px 0 72px; } }

/* ======================================================================
   Navigation dropdowns (The Clinic ▾ / About EGA ▾)
   ====================================================================== */
.nav-links { align-items: center; }
.dd { position: relative; }
.dd-btn {
  display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; padding: 8px 0; cursor: pointer;
  color: var(--muted-fg); font: inherit; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; font-weight: 600;
}
.dd-btn svg { width: 11px; height: 11px; transition: transform .15s ease; }
.dd:hover .dd-btn, .dd:focus-within .dd-btn, .dd.open .dd-btn { color: var(--green); }
.dd:hover .dd-btn svg, .dd.open .dd-btn svg { transform: rotate(180deg); }
.dd-menu {
  position: absolute; top: 100%; left: -18px; min-width: 220px; padding: 8px 0;
  background: var(--bg); border: 1px solid var(--hairline); border-top: 2px solid var(--gold); box-shadow: var(--shadow);
  opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.dd:hover .dd-menu, .dd:focus-within .dd-menu, .dd.open .dd-menu { opacity: 1; visibility: visible; transform: none; }
.nav-links .dd-menu a { display: block; padding: 10px 18px; text-transform: none; letter-spacing: .01em; font-size: 14px; font-weight: 500; color: var(--fg); }
.nav-links .dd-menu a:hover { background: var(--green-soft); color: var(--green-deep); }
@media (max-width: 720px) {
  .dd { border-top: 1px solid var(--hairline); padding: 6px 0 10px; }
  .dd:first-child { border-top: none; }
  .dd-btn { padding: 8px 0; pointer-events: none; color: var(--gold); font-size: 11px; letter-spacing: .2em; }
  .dd-btn svg { display: none; }
  .dd-menu { position: static; opacity: 1; visibility: visible; transform: none; border: 0; box-shadow: none; background: none; padding: 0; min-width: 0; }
  .nav-links .dd-menu a { padding: 9px 0; border-top: none; font-size: 15px; }
  .nav-links .dd-menu a:hover { background: none; color: var(--green); }
}

/* ======================================================================
   Homepage (The Clinic)
   ====================================================================== */
.about-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.about h2, .catalogue h2, .book h2 { margin-bottom: 16px; }
.about-img, .cat-img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; box-shadow: var(--shadow); filter: sepia(.06) saturate(1.05); }
.display em { font-style: italic; color: var(--green); }

#assessments .pkg { text-decoration: none; color: var(--fg); display: flex; flex-direction: column; gap: 12px; }
#assessments .pkg:hover { border-color: var(--green); }
#assessments .pkg .price { font-size: 38px; }
.pkg-go { margin-top: auto; padding-top: 6px; font-size: 13px; font-weight: 600; color: var(--green); }
.vip { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 32px 48px; align-items: start; text-decoration: none; color: var(--fg); padding: 36px 40px; margin-top: 8px; }
.vip:hover { border-color: var(--green); }
.vip h3 { font-size: clamp(24px, 2.6vw, 32px); margin: 0 0 12px; }
.vip p { margin: 0 0 10px; font-size: 15px; color: var(--muted-fg); }
.vip .vip-note { font-size: 13px; color: var(--gold); letter-spacing: .02em; }
.vip-go { grid-column: 1 / -1; font-size: 14px; font-weight: 600; color: var(--green); border-top: 1px solid var(--hairline); padding-top: 18px; }

.catalogue { border-top: 1px solid var(--hairline); }
.catalogue.alt { background: var(--stone-tex), hsl(150 14% 94% / .6); }
.cat-head { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 56px; align-items: center; margin-bottom: 52px; }
.unlock-banner {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: center;
  padding: 14px 20px; margin-bottom: 28px; border: 1px solid hsl(155 45% 30% / .25); background: var(--green-soft); font-size: 14px;
}
.unlock-banner svg { width: 18px; height: 18px; color: var(--green); }
.unlock-banner .btn { padding: 9px 18px; font-size: 13px; border: 0; cursor: pointer; }
html.prices-unlocked .unlock-banner { display: none; }

.cats { border-top: 1px solid var(--hairline); }
.cat { border-bottom: 1px solid var(--hairline); }
.cat > summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px 4px; cursor: pointer; font-size: 21px; font-family: "Didot", "Bodoni 72", Georgia, serif; }
.cat > summary::-webkit-details-marker { display: none; }
.cat-plus { color: var(--green); font-family: "Montserrat", system-ui, sans-serif; font-size: 22px; transition: transform .2s ease; }
.cat[open] .cat-plus { transform: rotate(45deg); }
.cat-body { padding: 0 4px 28px; }
.sub-label { margin: 18px 0 4px; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); }
.items { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }
.item { padding: 16px 0; border-top: 1px solid var(--hairline); }
.item-top { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.item-name { margin: 0; font-size: 16px; font-weight: 600; color: var(--fg); text-decoration: none; }
a.item-name span { margin-left: 6px; color: var(--green); opacity: 0; transition: opacity .15s ease; }
a.item-name:hover { color: var(--green); }
a.item-name:hover span { opacity: 1; }
.item-price { flex: none; font-family: "Didot", "Bodoni 72", Georgia, serif; font-size: 19px; }
.item-desc { margin: 6px 0 0; font-size: 14px; color: var(--muted-fg); }
.item-extra { margin: 8px 0 0; font-size: 13px; color: var(--green-deep); }
.item-upgrade { margin: 6px 0 0; font-size: 13px; color: var(--gold); }
.cat-foot { margin: 22px 0 0; font-size: 13px; color: var(--muted-fg); }

.book-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 48px; align-items: stretch; }
/* Left column matches the form's height: contacts on top, photo fills the rest. */
.book-info { display: flex; flex-direction: column; }
.book-contacts { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 28px; margin-bottom: 32px; }
.book-contacts > div { display: flex; flex-direction: column; gap: 4px; }
.book-contacts a.ct-val { color: var(--fg); text-decoration: none; }
.book-contacts a.ct-val:hover { color: var(--green); }
.book-info img { flex: 1 1 0; min-height: 280px; width: 100%; height: auto; object-fit: cover; border-radius: 2px; box-shadow: var(--shadow); }
.contact-form { padding: 36px 34px; display: flex; flex-direction: column; gap: 14px; }
.contact-form h3 { font-size: 30px; margin: 0 0 6px; font-weight: 400; }
.contact-form label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--muted-fg); }
.contact-form input, .contact-form textarea { font: inherit; font-size: 15px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 2px; background: #fff; color: var(--fg); resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { outline: 2px solid var(--green); outline-offset: 1px; border-color: var(--green); }
.cf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.contact-form .btn { border: 0; cursor: pointer; width: 100%; margin-top: 4px; font-family: inherit; }
.contact-form .btn[disabled] { opacity: .6; cursor: default; }
.cf-status { margin: 0; font-size: 14px; min-height: 1.2em; }
.cf-status.ok { color: var(--green); }
.cf-status.err { color: #b3261e; }
.cf-note { margin: 0; text-align: center; font-size: 13px; color: var(--muted-fg); }
.policy-note { margin-top: 40px; border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); }
.policy-note summary { cursor: pointer; padding: 16px 0; font-size: 14px; font-weight: 600; color: var(--muted-fg); }
.policy-note div { padding: 0 0 18px; font-size: 14px; color: var(--muted-fg); }
.policy-note p { margin: 0 0 6px; }
.policy-note strong { color: var(--fg); }
.policy-note a { color: var(--green); }

.brand-band { padding: 104px 0; color: hsl(140 15% 84%); background: var(--marble-dark), linear-gradient(#174535, var(--green-deep)); border-top: 1px solid var(--gold-soft); }
.brand-band .eyebrow { color: #d8b567; }
.brand-band h2 { color: #fff; font-size: clamp(30px, 3.6vw, 44px); }
.brand-band h2 em { color: #e6cd8c; }
.brand-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.brand-links { display: flex; flex-direction: column; gap: 14px; }
.brand-links a { display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; padding: 22px 24px; border: 1px solid hsl(43 50% 60% / .35); text-decoration: none; color: inherit; transition: border-color .15s ease, background .15s ease; }
.brand-links a:hover { border-color: #d8b567; background: hsl(150 30% 20% / .35); }
.bl-k { color: #fff; font-size: 18px; font-weight: 600; }
.bl-d { grid-column: 1; font-size: 14px; }
.bl-go { grid-column: 2; grid-row: 1 / 3; align-self: center; color: #d8b567; font-weight: 600; font-size: 14px; }

.brand-page > section { padding-top: 96px; }

@media (max-width: 860px) {
  .about-grid, .cat-head, .book-grid, .brand-grid, .vip { grid-template-columns: 1fr; gap: 32px; }
  .items { grid-template-columns: 1fr; }
  .book-info img { flex: none; aspect-ratio: 4 / 3; min-height: 0; }
}
@media (max-width: 720px) {
  .book-contacts, .cf-row { grid-template-columns: 1fr; }
  .contact-form { padding: 26px 20px; }
  .vip { padding: 26px 22px; }
  .brand-band { padding: 64px 0; }
  .brand-page > section { padding-top: 56px; }
  .cat > summary { font-size: 19px; }
}
.about .clinic-stats > div { flex: 1 1 0; min-width: 0; padding: 18px 16px; }
.about .clinic-stats .cs-num { font-size: 26px; }

/* price gate v2: no locks, no blur — amounts read "£···"; one "View prices →" per group */
.pg-locked .pg-mask { filter: none; opacity: 1; color: var(--muted-fg); letter-spacing: .02em; }
.pg-locked:hover .pg-mask { color: var(--green); }
.pg-lock { display: none; }
.sub-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 18px 0 4px; }
.sub-head .sub-label { margin: 0; }
.sub-head.solo { justify-content: flex-end; margin: 4px 0 0; }
.view-prices {
  background: none; border: 0; padding: 0; cursor: pointer; text-decoration: none;
  font: inherit; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gold);
}
.view-prices span { display: inline-block; margin-left: 4px; transition: transform .15s ease; }
.view-prices:hover { color: var(--green); }
.view-prices:hover span { transform: translateX(3px); }
html.prices-unlocked .sub-head.solo { display: none; }

/* scroll reveal: visible by default; hidden-then-faded only while site.js runs */
.reveal { opacity: 1; transform: none; }
html.reveal-on .reveal:not(.in) { opacity: 0; transform: translateY(14px); }
@media (prefers-reduced-motion: reduce) { html.reveal-on .reveal:not(.in) { opacity: 1; transform: none; } }
/* price gate v3 (kz Oct 18): blurred amounts again, still no lock icons */
.pg-locked .pg-mask { color: var(--fg); }
.pg-blur { filter: blur(5px); opacity: .7; user-select: none; }
.pg-locked:hover .pg-blur { opacity: .9; }

/* cookie consent banner */
.cc {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 70; max-width: 720px; margin: 0 auto;
  display: flex; align-items: center; gap: 20px; padding: 18px 20px;
  background: var(--bg); border: 1px solid var(--hairline); border-top: 2px solid var(--gold); box-shadow: 0 18px 50px hsl(160 25% 12% / .22);
}
.cc[hidden] { display: none; }
.cc p { margin: 0; font-size: 13px; line-height: 1.6; color: var(--muted-fg); }
.cc a { color: var(--green); }
.cc-actions { display: flex; gap: 10px; flex: none; }
.cc .btn { padding: 10px 16px; font-size: 13px; cursor: pointer; }
.cc .btn-ghost { border: 1px solid var(--border); }
.f-cookies { background: none; border: 0; padding: 0; font: inherit; font-size: 12px; color: hsl(140 12% 62%); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.f-cookies:hover { color: var(--gold); }
@media (max-width: 640px) {
  .cc { flex-direction: column; align-items: stretch; }
  .cc-actions .btn { flex: 1; }
}
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* ── "Ask EGA" chat assistant ─────────────────────────────────────────── */
.ac [hidden], .ac[hidden] { display: none !important; }
.ac-launch {
  position: fixed; right: 20px; bottom: 20px; z-index: 50;
  display: flex; align-items: center; gap: 10px; padding: 12px 16px 12px 14px;
  background: var(--green-deep); color: #fff; border: 1px solid var(--gold-soft); border-radius: 3px;
  font: inherit; font-size: 13px; font-weight: 600; letter-spacing: .32em; cursor: pointer;
  box-shadow: 0 10px 30px hsl(160 25% 12% / .25); transition: transform .2s, background .2s;
}
.ac-launch:hover { background: #0d2a20; transform: translateY(-1px); }
.ac-launch.ac-wait { display: none; }
.ac-launch svg { color: var(--gold); flex: none; display: block; transform: translateY(-.4px); }
/* Optical centring: caps sit high in the line box, the icon's tail pulls it low.
   letter-spacing also adds trailing space, hence the negative right margin. */
.ac-launch span { display: block; line-height: 1; margin-right: -.32em; transform: translateY(.5px); }
/* Unread "1": the assistant has a message waiting (the language offer). */
.ac-unread {
  position: absolute; top: -8px; right: -8px; min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 9px; background: var(--gold); color: var(--green-deep); box-shadow: 0 0 0 2px var(--bg);
  font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: 0; line-height: 18px; text-align: center;
}
.ac-panel {
  position: fixed; right: 20px; bottom: 20px; z-index: 55;
  width: calc(100vw - 40px); max-width: 380px; height: min(560px, calc(100dvh - 40px));
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--bg); border: 1px solid var(--hairline); border-radius: 3px;
  box-shadow: 0 24px 60px hsl(160 25% 12% / .28);
  animation: ac-in .25s ease-out;
}
@keyframes ac-in { from { opacity: 0; transform: translateY(12px); } }
@media (prefers-reduced-motion: reduce) { .ac-panel { animation: none; } }
.ac-head {
  display: flex; align-items: center; gap: 8px; padding: 12px 14px 12px 18px;
  background: var(--green-deep); color: #fff; border-bottom: 2px solid var(--gold);
}
.ac-title { flex: 1; }
.ac-title p { margin: 0; font-family: "Didot", "Bodoni 72", Georgia, serif; font-size: 17px; line-height: 1.2; }
.ac-title .ac-sub { font-family: inherit; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: hsl(43 45% 72%); }
.ac-icon { background: none; border: 0; color: inherit; padding: 4px; border-radius: 2px; cursor: pointer; display: grid; place-items: center; }
.ac-icon:hover { background: hsl(0 0% 100% / .12); }
.ac-log { flex: 1; min-height: 0; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; overscroll-behavior: contain; }
.ac-msg { display: flex; flex-direction: column; align-items: flex-start; }
.ac-user { align-items: flex-end; }
.ac-bubble { max-width: 88%; padding: 10px 14px; border-radius: 3px; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.ac-bubble p { margin: 0 0 .55em; }
.ac-bubble p:last-child, .ac-bubble ul:last-child { margin-bottom: 0; }
.ac-bubble ul { margin: .2em 0 .6em; padding-left: 1.1em; }
.ac-bubble li { margin: .25em 0; padding-left: .2em; }
.ac-bubble li::marker { color: var(--gold); }
.ac-bubble strong { font-weight: 600; }
.ac-bubble a { color: var(--green); text-decoration: underline; text-decoration-color: var(--gold-soft); text-underline-offset: 3px; }
.ac-bubble a:hover { text-decoration-color: var(--green); }
.ac-assistant .ac-bubble { background: var(--card); color: var(--fg); border: 1px solid var(--border); border-left: 2px solid var(--gold); }
.ac-user .ac-bubble { background: var(--green); color: #fff; }
/* typing indicator */
.ac-dots { display: inline-flex; gap: 4px; padding: 6px 2px; }
.ac-dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--gold); opacity: .35; animation: ac-dot 1.2s infinite ease-in-out; }
.ac-dots i:nth-child(2) { animation-delay: .15s; }
.ac-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes ac-dot { 0%, 80%, 100% { opacity: .35; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
@media (prefers-reduced-motion: reduce) { .ac-dots i { animation: none; opacity: .7; } }
/* prompt ideas: a line of small links above the message box, with a shuffle */
.ac-prompts { display: flex; align-items: flex-start; gap: 8px; padding: 9px 12px 8px; }
.ac-prompts[hidden] + .ac-composer { padding-top: 10px; } /* conversation started: prompts gone */
.ac-prompt-list { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.ac-prompt {
  font: inherit; font-size: 12px; line-height: 1.5; color: var(--green); background: none; border: 0; padding: 0;
  max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  cursor: pointer; text-align: left; text-decoration: underline; text-decoration-color: var(--gold-soft); text-underline-offset: 3px;
}
.ac-prompt:hover { text-decoration-color: var(--green); }
.ac-shuffle { flex: none; display: grid; place-items: center; width: 24px; height: 24px; margin-top: -2px; padding: 0; border: 0; border-radius: 2px; background: none; color: var(--gold); cursor: pointer; transition: transform .3s, color .15s; }
.ac-shuffle:hover { color: var(--green); }
.ac-shuffle:focus { outline: none; }
.ac-shuffle:focus-visible { outline: 1px solid var(--gold); outline-offset: 2px; }
.ac-shuffle:active { transform: rotate(180deg); }
/* inline actions under a reply share the row style below */
.ac-action {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%;
  font: inherit; font-size: 14px; text-align: left; color: var(--fg); cursor: pointer;
  background: none; border: 0; border-bottom: 1px solid var(--border); padding: 10px 2px;
  transition: color .15s;
}
.ac-action:hover, .ac-action:focus-visible { color: var(--green); }
.ac-arrow { color: var(--gold); flex: none; transition: transform .15s; }
.ac-action:hover .ac-arrow { transform: translateX(3px); }
/* inline actions under a reply (book / unlock) */
.ac-actions-inline { display: flex; flex-direction: column; width: 88%; border-top: 1px solid var(--border); }
.ac-actions-inline .ac-action { font-weight: 600; color: var(--green); padding: 10px 4px; }
html.prices-unlocked .ac-unlock { display: none; }
/* composer + footnote */
.ac-composer { display: flex; gap: 8px; padding: 0 12px 8px; }
.ac-composer input {
  flex: 1; min-width: 0; font: inherit; font-size: 14px; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: 2px; background: var(--card); color: var(--fg); outline: none;
}
.ac-composer input:focus { border-color: var(--green); }
.ac-send { flex: none; width: 44px; align-self: stretch; border-radius: 2px; border: 0; background: var(--green); color: #fff; display: grid; place-items: center; cursor: pointer; }
.ac-send:disabled { opacity: .4; cursor: default; }
.ac-privacy { margin: 0; padding: 0 14px 10px; font-size: 11px; line-height: 1.45; color: var(--muted-fg); }
.ac-privacy a { color: var(--green); }
/* booking form card in the thread */
.ac-booking { width: 88%; display: flex; flex-direction: column; gap: 10px; }
.ac-booking-title { font-family: "Didot", "Bodoni 72", Georgia, serif; font-size: 18px; margin: 0; }
.ac-note { margin: 0; font-size: 12px; color: var(--muted-fg); }
.ac-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ac-booking label:not(.hp) { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted-fg); }
.ac-booking input, .ac-booking textarea {
  font: inherit; font-size: 14px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 2px;
  background: var(--card); color: var(--fg); outline: none; resize: none; width: 100%; box-sizing: border-box;
}
.ac-booking input:focus, .ac-booking textarea:focus { border-color: var(--green); }
.ac-err { margin: 0; min-height: 1em; font-size: 12px; color: #a33a2a; }
.ac-booking .btn { width: 100%; cursor: pointer; border: 0; font: inherit; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
@media (max-width: 480px) {
  .ac-launch { right: 14px; bottom: 14px; }
  .ac-panel { right: 10px; bottom: 10px; width: calc(100vw - 20px); height: calc(100dvh - 20px); }
}
@media print { .ac { display: none; } }

/* ── announcement banner (switched on in /admin → Site settings) ── */
.announce { display: block; padding: 9px 20px; text-align: center; font-size: 13px; letter-spacing: .02em; background: var(--green-deep); color: #f3e7c6; text-decoration: none; border-bottom: 1px solid var(--gold-soft); }
a.announce:hover { color: #fff; }

/* ── brand: original EGA wordmark (arrow G) in Verde gold; tree-ring tiles in the footer ── */
.logo { display: inline-flex; align-items: center; line-height: 0; letter-spacing: 0; }
.logo img { display: block; }
header.site .logo img { height: 14px; width: auto; }
footer .logo img { height: 24px; width: auto; }
.f-rings { display: flex; gap: 10px; margin: 20px 0 18px; }
.f-rings img { width: 56px; height: 56px; border-radius: 10px; box-shadow: 0 0 0 1px hsl(43 45% 60% / .22); }

/* "EGA" in headings wears the logo gold (same as the nav wordmark) */
.ega-gold { color: #8a6a2e; }

/* policy tables (cookie list) */
.policy-table { width: 100%; border-collapse: collapse; margin: 14px 0 18px; font-size: 14px; }
.policy-table th, .policy-table td { text-align: left; vertical-align: top; padding: 9px 12px; border-bottom: 1px solid var(--border); }
.policy-table th { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted-fg); font-weight: 600; }
.policy-table td:first-child { font-family: ui-monospace, Menlo, monospace; font-size: 13px; white-space: nowrap; }
@media (max-width: 640px) { .policy-table { display: block; overflow-x: auto; } }

/* Brand pages: the section's first heading is promoted to <h1>; keep the h2 look */
.brand-page h1 { font-size: clamp(30px, 3.9vw, 48px); }
.brand-page .journey-head h1, .brand-page .guard-head h1 { margin-bottom: 14px; }
.brand-page .journey-head h1 em, .brand-page .guard-head h1 em { font-style: italic; color: var(--green); }

/* 404 */
.notfound { min-height: 60vh; text-align: center; }
.notfound .goldrule { margin-inline: auto; }
.nf-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 28px; }
.ac-flag { margin: 4px 0 0; font-size: 12px; color: #a33a2a; }
/* developer mode: screenshots */
.ac-attach { flex: none; width: 32px; align-self: stretch; display: grid; place-items: center; padding: 0; border: 0; background: none; color: var(--gold); cursor: pointer; }
.ac-attach:hover { color: var(--green); }
.ac-attach:focus { outline: none; }
.ac-attach:focus-visible { outline: 1px solid var(--gold); outline-offset: 2px; }
.ac-tray { padding: 8px 12px 0; }
.ac-tray-list { display: flex; gap: 8px; }
.ac-chip { position: relative; width: 52px; height: 52px; border: 1px solid var(--border); border-radius: 2px; overflow: hidden; background: var(--card); }
.ac-chip img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ac-chip.loading img { opacity: .45; }
.ac-chip-x { position: absolute; top: 2px; right: 2px; width: 18px; height: 18px; padding: 0; border: 0; border-radius: 2px; background: hsl(160 30% 12% / .7); color: #fff; display: grid; place-items: center; cursor: pointer; }
.ac-chip-x svg { width: 12px; height: 12px; }
.ac-tray-note { margin: 6px 0 0; font-size: 11px; color: var(--muted-fg); }
.ac-shots { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ac-shots img { width: 72px; height: 72px; object-fit: cover; border-radius: 2px; border: 1px solid hsl(0 0% 100% / .35); display: block; }

/* price slots in running text (FAQ answers, bullets): click opens the unlock dialog */
[data-pid] { cursor: pointer; }

/* ======================================================================
   Languages (en root, /zh /ja /ko /es /ar)
   ====================================================================== */
/* Language menu on the footer's bottom line. The button is quiet text on the dark
   green; the open list wears the nav dropdown's look (cream, hairline, gold rule on
   the edge next to the button) and opens upwards, since it sits at the page bottom. */
.lang-dd { position: relative; }
.lang-btn {
  display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; padding: 4px 0; cursor: pointer;
  font: inherit; font-size: 12px; font-weight: 600; letter-spacing: .04em; color: hsl(140 12% 72%);
}
.lang-btn .globe { width: 15px; height: 15px; flex: none; }
.lang-btn .chev { width: 10px; height: 10px; flex: none; transition: transform .15s ease; }
.lang-btn:hover, .lang-dd.open .lang-btn { color: #e6d3a3; }
.lang-dd.open .lang-btn .chev { transform: rotate(180deg); }
.lang-btn:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 2px; }
.lang-menu {
  position: absolute; bottom: calc(100% + 10px); right: -18px; z-index: 30; min-width: 200px; padding: 8px 0;
  background: var(--bg); border: 1px solid var(--hairline); border-bottom: 2px solid var(--gold); box-shadow: var(--shadow);
  animation: lang-up .15s ease;
}
@keyframes lang-up { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.lang-menu[hidden] { display: none; }
.lang-menu a {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 18px;
  font-size: 14px; font-weight: 500; letter-spacing: .01em; color: var(--fg); text-decoration: none;
}
.lang-menu a:hover, .lang-menu a:focus-visible { background: var(--green-soft); color: var(--green-deep); outline: none; }
/* Hiragino has no medium weight and drops to its light one; bring 日本語 level with the others. */
.lang-menu a:lang(ja) { font-weight: 600; }
.lang-menu a[aria-current]::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); flex: none; }
[dir="rtl"] .lang-menu { right: auto; left: -18px; }
@media (max-width: 720px) {
  .lang-btn { font-size: 13px; padding: 8px 0; }
  .lang-menu a { padding: 12px 18px; font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .lang-menu { animation: none; } .lang-btn .chev { transition: none; } }
/* translated pages: "translated from English" line */
.f-note { margin-top: 18px; font-size: 12px; color: hsl(140 12% 62%); }
.f-note p { margin: 0; }
.f-note a { text-decoration: underline; text-underline-offset: 3px; }

/* CJK and Arabic: Montserrat/Didot have no glyphs, so name good fallbacks per
   language (Latin keeps Montserrat/Didot), drop the wide tracking, and don't
   fake italics. Latin-only bits (logo, prices, address) stay as they are. */
:root:lang(zh) { --intl: "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei"; }
:root:lang(ja) { --intl: "Hiragino Sans", "Yu Gothic", "Noto Sans JP"; }
:root:lang(ko) { --intl: "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR"; }
:root:lang(ar) { --intl: "Geeza Pro", "Noto Naskh Arabic"; }
:root:is(:lang(zh), :lang(ja), :lang(ko), :lang(ar)) body { font-family: "Montserrat", "Avenir Next", var(--intl), "Segoe UI", system-ui, sans-serif; }
:root:is(:lang(zh), :lang(ja), :lang(ko), :lang(ar)) :is(.display, .svc-hero h1, .spec-price, .ed-num, .ed-head h2, .book-band h2, .steps .s-num, .related h2, .rel-grid .r-price,
  .pu-dialog h2, .policy h1, .cat > summary, .item-price, .ac-title p, .ac-booking-title, .markers .m-num, .pkg .price, .pkg-head h3, .egai-steps b) {
  font-family: "Didot", "Bodoni 72", Georgia, var(--intl), serif;
}
:root:is(:lang(zh), :lang(ja), :lang(ko), :lang(ar)) .letter { font-family: Georgia, "Iowan Old Style", var(--intl), serif; }
:root:is(:lang(zh), :lang(ja), :lang(ko), :lang(ar)) .letter :is(h3, .letter-carve p, .letter-ctas) { font-family: "Montserrat", "Avenir Next", var(--intl), system-ui, sans-serif; }
:root:is(:lang(zh), :lang(ja), :lang(ko), :lang(ar)) body :not(.ac-launch, .ac-launch *, .logo, [dir="ltr"], [dir="ltr"] *) { letter-spacing: 0 !important; }
:root:is(:lang(zh), :lang(ja), :lang(ko), :lang(ar)) :is(em, i, .letter .opener, .letter .proverb) { font-style: normal; }
:root:is(:lang(zh), :lang(ja), :lang(ko)) body { line-height: 1.75; }
:root:lang(ar) body { line-height: 1.8; }

/* RTL (Arabic): mirror what is set with physical left/right */
[dir="rtl"] .nav-links { margin-left: 0; margin-right: auto; }
[dir="rtl"] .dd-menu { left: auto; right: -18px; }
[dir="rtl"] :is(.stone li, .ticks li, .letter li, .pkg-list li) { padding-left: 0; padding-right: 22px; }
[dir="rtl"] :is(.stone li, .ticks li, .letter li, .pkg-list li)::before { left: auto; right: 0; }
[dir="rtl"] .markers .m-plus { text-align: left; }
/* Latin-only blocks keep LTR word order but sit on the right edge like the Arabic around them. */
[dir="rtl"] :is(.hero-addr, .ac-title p)[dir="ltr"] { text-align: right; }
[dir="rtl"] .markers details p { margin: 0 56px 22px 0; }
[dir="rtl"] .note { border-left: 0; border-right: 2px solid var(--gold); }
[dir="rtl"] .steps li { padding: 24px 0 0 22px; }
[dir="rtl"] .book-contact { text-align: left; }
[dir="rtl"] a.item-name span { margin-left: 0; margin-right: 6px; }
[dir="rtl"] .view-prices span { margin-left: 0; margin-right: 4px; }
[dir="rtl"] .view-prices:hover span { transform: translateX(-3px); }
[dir="rtl"] .clinic-stats > div + div { border-left: 0; border-right: 1px solid var(--hairline); }
[dir="rtl"] .meter { transform: scaleX(-1); }
[dir="rtl"] .pu-dialog .pu-close { right: auto; left: 12px; }
[dir="rtl"] .hp { left: auto; right: -10000px; }
[dir="rtl"] :is(input[type="email"], input[type="tel"]) { direction: ltr; text-align: right; }
[dir="rtl"] .acronym-inner div:first-child { padding-left: 28px; padding-right: 0; }
[dir="rtl"] .acronym-inner div:last-child { padding-right: 28px; padding-left: 0; }
[dir="rtl"] .acronym-inner div + div { border-left: none; border-right: 1px solid var(--hairline); }
[dir="rtl"] .hero::after { background: linear-gradient(-90deg, hsl(40 30% 96% / .94) 0%, hsl(40 30% 96% / .86) 46%, hsl(40 30% 96% / .5) 74%, hsl(40 30% 96% / .3) 100%); }
[dir="rtl"] .timeline { padding-left: 0; padding-right: 40px; }
[dir="rtl"] .timeline::before { left: auto; right: 8px; }
[dir="rtl"] .step::before { left: auto; right: -39px; }
[dir="rtl"] .step::after { left: auto; right: -23px; }
[dir="rtl"] .agechart svg { direction: ltr; }
@media (max-width: 720px) {
  [dir="rtl"] .nav .btn { margin-left: 0; margin-right: auto; }
  [dir="rtl"] .nav-links { margin-right: 0; }
  [dir="rtl"] .markers details p { margin-right: 0; }
  [dir="rtl"] .book-contact { text-align: right; }
  [dir="rtl"] .acronym-inner div, [dir="rtl"] .acronym-inner div:first-child, [dir="rtl"] .acronym-inner div:last-child { padding: 20px 0; }
  [dir="rtl"] .acronym-inner div + div { border-right: none; border-top: 1px solid var(--hairline); }
  [dir="rtl"] .timeline { padding-right: 32px; }
  [dir="rtl"] .timeline::before { right: 6px; }
  [dir="rtl"] .step::before { right: -32px; }
  [dir="rtl"] .step::after { right: -18px; }
}
@media (max-width: 820px) { [dir="rtl"] .clinic-stats > div + div { border-right: 0; } }
/* chat widget on the left, bubbles and form mirrored */
[dir="rtl"] .ac-launch { right: auto; left: 20px; padding: 12px 14px 12px 16px; }
[dir="rtl"] .ac-panel { right: auto; left: 20px; }
[dir="rtl"] .ac-head { padding: 12px 18px 12px 14px; }
[dir="rtl"] .ac-assistant .ac-bubble { border-left: 1px solid var(--border); border-right: 2px solid var(--gold); }
[dir="rtl"] .ac-bubble ul { padding-left: 0; padding-right: 1.1em; }
[dir="rtl"] .ac-bubble li { padding-left: 0; padding-right: .2em; }
[dir="rtl"] :is(.ac-prompt, .ac-action) { text-align: right; }
[dir="rtl"] .ac-action:hover .ac-arrow { transform: translateX(-3px); }
[dir="rtl"] .ac-send svg { transform: scaleX(-1); }
@media (max-width: 480px) {
  [dir="rtl"] .ac-launch { right: auto; left: 14px; }
  [dir="rtl"] .ac-panel { right: auto; left: 10px; }
}

/* ── chat booking card: short form (name + phone or email) — owned by assets/chat.js ── */
.ac-either { display: flex; flex-direction: column; gap: 8px; }
.ac-booking .ac-hint { margin: -2px 0 0; font-size: 12px; color: var(--muted-fg); }
.ac-booking input[aria-invalid="true"] { border-color: #a33a2a; }
.ac-booking .ac-err:empty { min-height: 0; margin-top: -10px; }
/* end chat booking card */

/* ======================================================================
   Prices in words ("Upon Request"): shown as is, a size down from an amount
   ====================================================================== */
.spec-price .pg-word { font-size: 28px; }
.rel-grid .r-price .pg-word, .item-price .pg-word { font-size: .85em; }

/* ======================================================================
   WhatsApp: homepage contact row (QR on hover/focus, desktop only) + footer
   ====================================================================== */
.book-contacts > .ct-wa { position: relative; }
.ct-sub { font-size: 12px; color: var(--muted-fg); }
.wa-qr { display: none; }
@media (hover: hover) and (pointer: fine) {
  .wa-qr {
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    position: absolute; top: calc(100% + 10px); left: -12px; z-index: 10; width: 168px; padding: 14px 14px 10px;
    background: var(--bg); border: 1px solid var(--hairline); border-top: 2px solid var(--gold); box-shadow: var(--shadow);
    opacity: 0; visibility: hidden; transform: translateY(4px); pointer-events: none;
    transition: opacity .15s ease, transform .15s ease, visibility .15s;
  }
  .book-info .wa-qr img { display: block; flex: none; width: 132px; height: 132px; min-height: 0; object-fit: contain; border-radius: 0; box-shadow: none; }
  .wa-qr span { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
  .ct-wa:hover .wa-qr, .ct-wa:focus-within .wa-qr { opacity: 1; visibility: visible; transform: none; }
}
[dir="rtl"] .wa-qr { left: auto; right: -12px; }
@media (prefers-reduced-motion: reduce) { .wa-qr { transition: none; } }
footer .f-wa .wa-icon { display: inline-block; width: 14px; height: 14px; margin-inline-end: 7px; vertical-align: -2px; color: var(--gold); }

/* ======================================================================
   Landing page: /performance-health-assessment (tools/landing.mjs)
   ====================================================================== */
.pha .eyebrow { color: #8a6a2e; }
.pha h2.display { font-size: clamp(30px, 3.6vw, 44px); }
.pha h3.display { font-weight: 400; }
.pha-band { padding: 112px 0; border-top: 1px solid var(--hairline); }
.pha-alt { background: var(--stone-tex), hsl(150 14% 94% / .6); }
.pha-num { font-family: "Didot", "Bodoni 72", Georgia, serif; font-size: 15px; letter-spacing: .1em; color: var(--gold); margin: 0; }
.pha-go { margin-top: auto; font-size: 14px; font-weight: 600; color: var(--green); text-decoration: none; }
.pha-go span, .pha-arrow { display: inline-block; transition: transform .15s ease; }
.pha-go:hover span, .pha-caps a:hover .pha-arrow { transform: translateX(3px); }
.pha .btn span { display: inline-block; margin-left: 4px; }

/* hero: text on cream, the clinic entrance beside it */
.pha-hero { padding: 0; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); min-height: min(88vh, 860px); background: var(--bg); border-bottom: 1px solid var(--hairline); }
.pha-hero-text { display: flex; align-items: center; padding: 88px 56px 88px max(24px, calc((100vw - 1060px) / 2 + 24px)); }
.pha-hero-inner { max-width: 560px; }
.pha-hero h1 { font-size: clamp(38px, 4.8vw, 62px); color: var(--green-deep); margin-bottom: 4px; }
.pha-hero h1 em { font-style: italic; color: var(--green); }
.pha-hero .goldrule { margin: 22px 0 26px; }
.pha-hero .lede { margin: 0 0 36px; }
.pha-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 48px; border-top: 1px solid var(--hairline); }
.pha-facts > div { display: flex; flex-direction: column; gap: 4px; padding: 20px 16px 0; }
.pha-facts > div:first-child { padding-left: 0; }
.pha-facts > div + div { border-left: 1px solid var(--hairline); }
.pha-facts b { font-family: "Didot", "Bodoni 72", Georgia, serif; font-weight: 400; font-size: 19px; line-height: 1.25; color: var(--green-deep); }
.pha-facts span { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted-fg); }
.pha-hero-media { position: relative; overflow: hidden; min-height: 420px; }
.pha-hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: sepia(.06) saturate(1.05); }
.pha-hero-media::after { content: ""; position: absolute; inset: 18px; border: 1px solid hsl(43 50% 75% / .7); pointer-events: none; }
.pha-hero-card { position: absolute; left: 44px; bottom: 44px; z-index: 1; width: 320px; max-width: calc(100% - 88px); padding: 22px 24px; background: color-mix(in srgb, var(--bg) 93%, transparent); backdrop-filter: blur(8px); border: 1px solid var(--hairline); border-top: 2px solid var(--gold); }
.pha-hero-card .eyebrow { margin-bottom: 8px; font-size: 11px; }
.pha-hero-card p:last-child { margin: 0; font-size: 14px; }

.pha-split { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 56px; align-items: end; }
.pha-split .lede { margin: 0; }
.pha-head { display: flex; justify-content: space-between; align-items: end; gap: 32px; margin-bottom: 56px; }
.pha-head h2 { max-width: 20ch; }
.pha-head > p { max-width: 36ch; margin: 0; color: var(--muted-fg); }

.pha-paths { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--hairline); }
.pha-paths article { display: flex; flex-direction: column; padding: 36px 32px; }
.pha-paths article:first-child { padding-left: 0; }
.pha-paths article:last-child { padding-right: 0; }
.pha-paths article + article { border-left: 1px solid var(--hairline); }
.pha-paths h3 { font-size: 26px; margin: 28px 0 12px; }
.pha-paths article > p:not(.pha-num) { margin: 0 0 28px; color: var(--muted-fg); font-size: 15px; }

.pha-areas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.pha-area-img { position: relative; aspect-ratio: 4 / 5; overflow: hidden; margin-bottom: 22px; border: 1px solid var(--border); background: var(--green-soft); }
.pha-area-img img { width: 100%; height: 100%; object-fit: cover; display: block; filter: sepia(.06) saturate(1.05); transition: transform .7s ease; }
.pha-areas article:hover .pha-area-img img { transform: scale(1.03); }
.pha-icon { position: absolute; left: 16px; top: 16px; width: 44px; height: 44px; display: grid; place-items: center; background: var(--bg); border-top: 2px solid var(--gold); color: var(--green-deep); }
.pha-icon svg { width: 20px; height: 20px; }
.pha-areas h3 { font-size: 24px; }
.pha-areas article > p { margin: 10px 0 0; color: var(--muted-fg); font-size: 15px; }

.pha-caps { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 72px; border-top: 1px solid var(--hairline); }
.pha-caps a { display: flex; flex-direction: column; gap: 8px; min-height: 176px; padding: 26px 26px; border-bottom: 1px solid var(--hairline); color: var(--fg); text-decoration: none; transition: background .15s ease; }
.pha-caps a:not(:nth-child(3n + 1)) { border-left: 1px solid var(--hairline); }
.pha-caps a:hover { background: hsl(0 0% 100% / .55); }
.pha-cap-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: auto; padding-bottom: 18px; }
.pha-arrow { color: var(--green); }
.pha-cap-name { font-size: 17px; font-weight: 600; }
.pha-caps a:hover .pha-cap-name { color: var(--green); }
.pha-cap-body { font-size: 14px; color: var(--muted-fg); }

/* the assessment journey: deep-green marble band, like the service pages' next step */
.pha-journey { padding: 112px 0; color: hsl(140 15% 84%); background: var(--marble-dark), linear-gradient(#174535, var(--green-deep)); border-top: 1px solid var(--gold-soft); }
.pha .pha-journey .eyebrow { color: #d8b567; }
.pha-journey h2 { color: #fff; max-width: 16ch; }
.pha-journey-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 56px; }
.pha-journey-grid > div > p:last-child { margin: 22px 0 0; max-width: 40ch; color: hsl(140 15% 78%); }
.pha-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; }
.pha-steps li { display: flex; flex-direction: column; gap: 8px; padding: 26px 26px 30px; border-top: 1px solid hsl(43 50% 60% / .35); }
.pha-steps li:nth-child(odd) { padding-left: 0; }
.pha-steps li:nth-child(even) { border-left: 1px solid hsl(43 50% 60% / .35); }
.pha-steps .s-num { font-family: "Didot", "Bodoni 72", Georgia, serif; font-size: 30px; line-height: 1; color: #d8b567; margin-bottom: 8px; }
.pha-steps b { color: #fff; font-size: 18px; font-weight: 600; }
.pha-steps li > span:last-child { font-size: 14px; }

.pha-why .wrap, .pha-cta .wrap { max-width: 780px; text-align: center; }
.pha-why .goldrule, .pha-cta .goldrule { margin: 22px auto 0; }
.pha-why .lede, .pha-cta .lede { margin: 24px auto 0; }
.pha-why-list { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; text-align: start; }
.pha-why-list li { padding: 16px 0; border-top: 1px solid var(--hairline); font-size: 15px; font-weight: 600; }
.pha-why-list li::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-inline-end: 12px; vertical-align: .12em; background: var(--green); border-radius: 0 75% 0 75%; transform: rotate(45deg); }
.pha-cta h2.display { font-size: clamp(32px, 4.2vw, 52px); }
.pha-cta .hero-ctas { justify-content: center; margin-top: 36px; }
.pha-contact { margin: 36px 0 0; font-size: 13px; color: var(--muted-fg); }
.pha-contact a { color: inherit; text-decoration: none; }
.pha-contact a:hover { color: var(--green); }

@media (max-width: 960px) {
  .pha-hero { grid-template-columns: 1fr; min-height: 0; }
  .pha-hero-text { padding: 72px 24px 64px; }
  .pha-hero-inner { max-width: 640px; }
  .pha-hero-media { min-height: 58vh; }
  .pha-split, .pha-journey-grid { grid-template-columns: 1fr; gap: 28px; }
  .pha-head { flex-direction: column; align-items: flex-start; }
  .pha-caps { grid-template-columns: 1fr 1fr; }
  .pha-caps a:not(:nth-child(3n + 1)) { border-left: 0; }
  .pha-caps a:nth-child(even) { border-left: 1px solid var(--hairline); }
}
@media (max-width: 720px) {
  .pha-band, .pha-journey { padding: 72px 0; }
  .pha-hero-text { padding: 56px 24px 48px; }
  .pha-hero-media { min-height: 52vh; }
  .pha-hero-media::after { inset: 10px; }
  .pha-hero-card { left: 22px; right: 22px; bottom: 22px; width: auto; max-width: none; }
  .pha-hero .btn, .pha-cta .btn { width: 100%; text-align: center; }
  .pha-facts > div { padding: 16px 10px 0; }
  .pha-facts b { font-size: 16px; }
  .pha-facts span { font-size: 11px; }
  .pha-paths, .pha-areas, .pha-caps, .pha-steps, .pha-why-list { grid-template-columns: 1fr; }
  .pha-paths article, .pha-paths article:first-child, .pha-paths article:last-child { padding: 30px 0; }
  .pha-paths article + article { border-left: 0; border-top: 1px solid var(--hairline); }
  .pha-paths h3 { margin-top: 18px; }
  .pha-areas { gap: 44px; }
  .pha-caps { margin-top: 56px; }
  .pha-caps a, .pha-caps a:nth-child(even) { border-left: 0; min-height: 0; padding: 22px 0; }
  .pha-cap-top { padding-bottom: 10px; }
  .pha-steps li, .pha-steps li:nth-child(odd) { padding: 22px 0 24px; }
  .pha-steps li:nth-child(even) { border-left: 0; }
}
/* RTL: mirror the physical sides */
[dir="rtl"] .pha-hero-text { padding: 88px max(24px, calc((100vw - 1060px) / 2 + 24px)) 88px 56px; }
[dir="rtl"] .pha-facts > div:first-child { padding-left: 16px; padding-right: 0; }
[dir="rtl"] .pha-facts > div + div { border-left: 0; border-right: 1px solid var(--hairline); }
[dir="rtl"] .pha-paths article:first-child { padding-left: 32px; padding-right: 0; }
[dir="rtl"] .pha-paths article:last-child { padding-left: 0; padding-right: 32px; }
[dir="rtl"] .pha-paths article + article { border-left: 0; border-right: 1px solid var(--hairline); }
[dir="rtl"] .pha-caps a:not(:nth-child(3n + 1)) { border-left: 0; border-right: 1px solid var(--hairline); }
[dir="rtl"] .pha-steps li:nth-child(odd) { padding-left: 26px; padding-right: 0; }
[dir="rtl"] .pha-steps li:nth-child(even) { border-left: 0; border-right: 1px solid hsl(43 50% 60% / .35); }
[dir="rtl"] .pha-hero-card { left: auto; right: 44px; }
[dir="rtl"] .pha-icon { left: auto; right: 16px; }
[dir="rtl"] .pha .btn span { margin-left: 0; margin-right: 4px; }
[dir="rtl"] .pha-go:hover span, [dir="rtl"] .pha-caps a:hover .pha-arrow { transform: translateX(-3px); }
:root:is(:lang(zh), :lang(ja), :lang(ko), :lang(ar)) :is(.pha-facts b, .pha-num, .pha-steps .s-num) { font-family: "Didot", "Bodoni 72", Georgia, var(--intl), serif; }

/* Homepage E/G/A strip: the original site's lead-in line ("Our name embodies…"),
   a quiet Didot italic above the three columns, aligned with them. */
.acronym .acronym-intro {
  margin: 0 auto; padding-top: 30px; padding-bottom: 14px; font-family: "Didot", "Bodoni 72", Georgia, serif; font-style: italic;
  font-size: 21px; line-height: 1.35; color: var(--fg);
}
.acronym .acronym-intro + .acronym-inner div { padding-top: 18px; }
@media (max-width: 860px) { .acronym .acronym-intro { font-size: 19px; padding-top: 24px; padding-bottom: 4px; } }
:root:is(:lang(zh), :lang(ja), :lang(ko), :lang(ar)) .acronym .acronym-intro { font-style: normal; font-family: inherit; font-size: 18px; letter-spacing: 0; }
