/* Public HTML pages share the homepage's fonts, logo and theme variables. */
body { margin:0; }
.seo-site { --seo-ink:#35312b; --seo-muted:#716a60; color:var(--seo-ink); background:#fffefa; font:16px/1.7 var(--font-body),sans-serif; }
.seo-site * { box-sizing:border-box; }
.seo-site a { color:inherit; text-decoration:none; text-underline-offset:5px; }
.seo-site a:hover { color:var(--gold-dark); }
.seo-site a:focus-visible,.seo-site summary:focus-visible { outline:3px solid var(--gold-dark); outline-offset:5px; }
.seo-intro { position:relative; isolation:isolate; overflow:hidden; padding:42px max(24px,calc((100vw - 1120px)/2)) 65px; background:radial-gradient(ellipse at 95% 80%,#e9c48030,transparent 50%),var(--surface-warm); border-bottom:1px solid #b08d5722; }
.seo-intro::after { content:''; position:absolute; z-index:-1; width:460px; height:460px; border:1px solid #b08d5733; border-radius:50%; right:-220px; top:20px; box-shadow:0 0 0 45px #e9c4800e,0 0 0 46px #b08d5717,0 0 0 90px #e9c4800e,0 0 0 91px #b08d5717; transform:rotate(-25deg) scaleX(.8); pointer-events:none; }
.seo-intro nav { font-size:11px; color:var(--seo-muted); margin-bottom:38px; overflow-wrap:anywhere; }
.seo-intro nav a:hover { text-decoration:underline; }
.seo-eyebrow { display:block; font-size:10px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--gold-dark); }
.seo-eyebrow span { white-space:nowrap; }
.seo-intro h1 { font-family:var(--font-heading),serif; font-size:clamp(36px,4.7vw,64px); font-weight:400; line-height:1.35; max-width:980px; margin:18px 0 22px; }
.seo-lead { max-width:710px; color:var(--seo-muted); font-size:15px; line-height:1.85; }
.seo-actions { display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-top:28px; }
.seo-actions .button { padding:13px 24px; min-height:46px; font-size:12px; }
.seo-button { display:inline-flex; align-items:center; justify-content:center; padding:12px 23px; min-height:46px; border:1px solid var(--gold); border-radius:10px; background:var(--gold); color:#30291d; font-weight:600; font-size:12px; }
.seo-button.seo-secondary { background:transparent; border-color:#b08d5770; }
.seo-section { max-width:1220px; margin:0 auto; padding:65px 30px; }
.seo-site h2 { font:400 clamp(30px,3.2vw,46px)/1.45 var(--font-heading),serif; margin:0 0 20px; }
.seo-section>p { max-width:720px; color:var(--seo-muted); font-size:14px; }
.seo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; margin-top:32px; }
.seo-card { border:1px solid #e9dfd0; border-radius:22px; overflow:hidden; min-width:0; background:#fff; transition:transform .25s,box-shadow .25s; }
.seo-card:hover { transform:translateY(-5px); box-shadow:0 18px 42px #5f482211; }
.seo-card-image { display:block; overflow:hidden; background:var(--surface-warm); }
.seo-card img { display:block; width:100%; height:245px; object-fit:cover; transition:transform .35s; }
.seo-card:hover img { transform:scale(1.035); }
.seo-card-copy { padding:25px; }
.seo-card-copy .seo-eyebrow { font-size:9px; letter-spacing:.08em; }
.seo-card h3 { font:500 19px/1.45 var(--font-body),sans-serif; margin:10px 0; }
.seo-card h3 a { display:flex; align-items:start; justify-content:space-between; gap:10px; }
.seo-card h3 span { color:var(--gold-dark); }
.seo-card p { font-size:12px; line-height:1.8; color:var(--seo-muted); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; margin-bottom:0; }
.seo-product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.seo-product-card img { object-fit:contain; height:240px; padding:18px; }
.seo-product-card .seo-card-copy { padding:22px; }
.seo-product-card h3 { font-size:16px; }
.seo-detail { max-width:1220px; margin:0 auto; padding:65px 30px; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:70px; align-items:start; }
.seo-detail:has(>div:only-child) { grid-template-columns:1fr; max-width:960px; }
.seo-detail-visual { position:sticky; top:160px; padding:20px; border:1px solid #e9dfd0; border-radius:26px; background:var(--surface-warm); box-shadow:0 20px 45px #55411e0a; }
.seo-gallery { min-width:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(44px,64px)); gap:10px; padding:16px; }
.seo-gallery-radio { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
.seo-gallery-slide { display:none; grid-column:1/-1; grid-row:1; height:380px; min-width:0; border-radius:14px; overflow:hidden; background:#fff; }
.seo-gallery-radio:checked + .seo-gallery-slide { display:grid; place-items:center; }
.seo-detail-image,.seo-gallery-video { display:block; width:100%; height:100%; max-height:380px; object-fit:contain; }
.seo-gallery-thumbnail { display:grid; place-items:center; height:64px; min-height:44px; padding:4px; border:2px solid #ded6ca; border-radius:8px; background:#fff; color:#76542c; cursor:pointer; overflow:hidden; }
.seo-gallery-thumbnail img { width:100%; height:52px; min-width:0; min-height:0; object-fit:contain; }
.seo-gallery-radio:checked + .seo-gallery-slide + .seo-gallery-thumbnail { border-color:#76542c; }
.seo-gallery-radio:focus-visible + .seo-gallery-slide + .seo-gallery-thumbnail { outline:3px solid #76542c; outline-offset:3px; }
.seo-gallery-radio:focus-visible + .seo-gallery-slide { outline:3px solid #76542c; outline-offset:3px; }
@media(max-width:760px) { .seo-gallery-slide { height:280px; }.seo-detail-image,.seo-gallery-video { max-height:280px; } }
.seo-detail section { margin:30px 0; padding-top:22px; border-top:1px solid #e9dfd0; }
.seo-detail h2 { font-family:var(--font-body),sans-serif; font-size:18px; font-weight:600; }
.seo-prose { overflow-wrap:anywhere; color:var(--seo-muted); font-size:14px; line-height:1.9; }
.seo-price { color:var(--gold-dark); font-size:26px; margin:0 0 10px; }
.seo-note { font-size:11px; line-height:1.8; color:var(--seo-muted); }
.seo-faq { padding:22px 26px; border:1px solid #e9dfd0; border-radius:16px; background:#fff; margin-bottom:12px; }
.seo-faq summary { font-size:15px; font-weight:500; cursor:pointer; padding-right:10px; }
.seo-faq[open] { background:var(--surface-warm); }
.seo-faq p,.seo-faq .seo-prose { max-width:850px; margin:16px 0 0; font-size:14px; color:var(--seo-muted); }
.seo-location { display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.seo-location>div { padding:35px; background:var(--surface-warm); border:1px solid #e9dfd0; border-radius:24px; }
.seo-location h2 { font-size:36px; }
.seo-location address { font-style:normal; }
.seo-location p { font-size:13px; color:var(--seo-muted); }
.seo-credentials { margin-top:70px; }
.seo-credential-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.seo-credential-grid article { padding:25px; background:var(--surface-warm); border-radius:18px; border:1px solid #e9dfd0; }
.seo-credential-grid article>span { font-size:28px; color:var(--gold-dark); }
.seo-credential-grid h3 { font:600 15px/1.5 var(--font-body),sans-serif; }
.seo-credential-grid p,.seo-credential-grid a { font-size:12px; color:var(--seo-muted); }
.seo-footer { padding:55px max(24px,calc((100vw - 1220px)/2)); display:grid; grid-template-columns:1.2fr 1fr 1fr .7fr; gap:45px; background:#25231f; color:#fff; }
.seo-footer p,.seo-footer address { font-style:normal; font-size:12px; line-height:1.9; color:#c5bdae; }
.seo-footer strong { font-size:13px; }
.seo-footer nav { display:flex; flex-direction:column; align-items:start; gap:8px; font-size:12px; color:#e5c893; }
.seo-footer a:hover { color:#fff; }
.seo-footer .public-logo { height:var(--brand-logo-height); width:auto; max-width:210px; object-fit:contain; }
.seo-skip { position:absolute; left:20px; top:-200px; z-index:50; padding:14px; background:white; }
.seo-skip:focus { top:10px; }
@media(max-width:1120px) { .seo-product-grid,.seo-credential-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.seo-detail { gap:35px; }.seo-location { gap:25px; } }
@media(max-width:760px) { .seo-intro { padding:24px 24px 44px; }.seo-intro nav { margin-bottom:28px; }.seo-intro h1 { font-size:40px; line-height:1.45; }.seo-eyebrow span { display:block; margin-top:6px; }.seo-section,.seo-detail { padding:40px 22px; }.seo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }.seo-detail,.seo-location { grid-template-columns:1fr; }.seo-detail-visual { position:static; }.seo-footer { grid-template-columns:1fr 1fr; }.seo-footer>div:first-child { grid-column:1/-1; }.seo-location>div { padding:25px; }.seo-lead { font-size:14px; } }
@media(max-width:480px) { .seo-grid { grid-template-columns:1fr; }.seo-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.seo-product-card .seo-card-copy { padding:15px 12px; }.seo-product-card img { height:170px; padding:12px; }.seo-product-card h3 { font-size:13px; }.seo-product-card p { font-size:11px; }.seo-product-card .seo-eyebrow { font-size:8px; }.seo-credential-grid,.seo-footer { grid-template-columns:1fr; }.seo-actions { gap:10px; }.seo-actions .button { padding:12px 16px; font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .seo-card,.seo-card img { transition:none; }.seo-card:hover,.seo-card:hover img { transform:none; } }

/* Legal documents and visible keyboard controls share the clinic palette. */
.seo-site .seo-button,.seo-site .button-primary { background:#76542c; color:#fff; }
.seo-site .seo-secondary { background:#f4eddf; color:#60431f; }
.seo-site .public-legal-links { color:#f5eee2; }
.seo-site .public-legal-links a:hover { color:#fff; }
.legal-document { max-width:960px; margin-inline:auto; }
.legal-document .alert { background:#fff2d8; color:#634415; padding:20px; line-height:1.65; }
.legal-document dl { background:#f7f3ec; border:1px solid #c2b39e; border-radius:16px; padding:24px; overflow-wrap:anywhere; }
.legal-document dt { font-weight:700; color:#60431f; margin-top:16px; }
.legal-document dt:first-child { margin-top:0; }
.legal-document dd { margin:4px 0 0; }
.legal-prose { font-size:17px; line-height:1.85; overflow-wrap:anywhere; }
.legal-prose p { margin-bottom:24px; }
.legal-document nav { display:flex; flex-wrap:wrap; gap:14px 24px; border-top:1px solid #c2b39e; padding-top:24px; }
.seo-site .legal-document a { text-decoration:underline; }
.seo-site .legal-prose h2 { font-family:'DM Sans',sans-serif; font-size:24px; line-height:1.4; margin:32px 0 16px; color:#35312b; }
