:root { color-scheme:light; --ink:#17352f; --muted:#63736f; --jade:#13715f; --jade-dark:#0b5145; --cream:#f5f1e8; --card:#fffdf8; --line:#d8dfd8; --sun:#d29b48; --page-width:min(1160px,calc(100% - 2rem)); --page-start-gap:clamp(1.25rem,2.6vw,2rem); --page-intro-gap:clamp(1.5rem,2.5vw,2rem); --page-title-gap:clamp(.75rem,1.5vw,1.25rem); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font:16px/1.6 Inter,ui-sans-serif,system-ui,sans-serif; }
a { color:var(--jade); text-underline-offset:.22em; }
.site-header { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:.85rem clamp(1rem,5vw,5rem); background:rgba(255,253,248,.94); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); }
.brand { display:flex; align-items:center; gap:.65rem; color:var(--ink); font-size:1.3rem; font-weight:780; text-decoration:none; letter-spacing:-.02em; }
.brand-mark { display:grid; place-items:center; width:2rem; height:2rem; color:#fff; background:var(--jade); border-radius:50% 50% 50% 12%; font-size:.9rem; }
#main-nav { display:flex; align-items:center; flex-wrap:wrap; gap:1.15rem; }
#main-nav a { color:var(--ink); text-decoration:none; font-size:.93rem; }
#main-nav a:hover { color:var(--jade); }
.nav-contact { padding:.5rem .9rem; color:#fff!important; background:var(--jade); border-radius:999px; }
main { min-height:70vh; overflow:hidden; }
.site-breadcrumbs { width:var(--page-width); margin:clamp(.75rem,1.8vw,1.25rem) auto 0; font-size:.9rem; line-height:1.35; }
.site-breadcrumbs ol { display:flex; align-items:center; flex-wrap:wrap; gap:0 .55rem; list-style:none; padding:0; margin:0; }
.site-breadcrumbs li { display:inline-flex; align-items:center; gap:.5rem; min-width:0; max-width:100%; overflow-wrap:anywhere; }
.site-breadcrumbs a,.site-breadcrumbs [aria-current="page"] { display:inline-flex; align-items:center; min-height:44px; padding-block:.35rem; }
.site-breadcrumbs a { color:var(--jade); text-decoration:underline; font-size:inherit; }
.site-breadcrumbs [aria-current="page"] { color:var(--ink); }
.breadcrumb-separator { display:inline-flex; align-items:center; min-height:44px; color:var(--muted); }
.hero,.content,.route,.latest { width:var(--page-width); margin-inline:auto; }
.hero { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr); gap:clamp(2rem,7vw,7rem); align-items:end; padding:clamp(4rem,9vw,8rem) 0; }
.hero h1 { max-width:800px; margin:.12em 0 .35em; font-family:Georgia,serif; font-size:clamp(3rem,7.4vw,6.6rem); font-weight:500; line-height:.94; letter-spacing:-.055em; }
.hero h1 em { color:var(--jade); font-weight:500; }
.hero-lead { max-width:690px; color:#3d514c; font-size:clamp(1.08rem,1.8vw,1.32rem); }
.eyebrow { margin:0 0 .8rem; color:var(--jade); font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.16em; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin:2rem 0 1rem; }
.button { display:inline-flex; padding:.78rem 1.15rem; border:1px solid var(--jade); border-radius:999px; font-weight:720; text-decoration:none; }
.button.primary { color:#fff; background:var(--jade); }
.button.secondary { color:var(--jade-dark); background:transparent; }
.safe-note { color:var(--muted); font-size:.88rem; }
.hero-panel { padding:1.8rem; background:var(--jade-dark); color:#fff; border-radius:1.5rem 1.5rem 1.5rem .25rem; box-shadow:0 24px 70px rgba(16,64,54,.18); }
.hero-panel h2 { margin:.2rem 0; font:500 1.45rem/1.2 Georgia,serif; }
.hero-panel p { margin:.45rem 0 1.25rem; color:#d7e7e1; }
.panel-number { color:#efc77c; font-size:.75rem; font-weight:800; letter-spacing:.12em; }
.panel-line { display:block; height:1px; margin:1.35rem 0; background:#396e63; }
.route { padding:clamp(3rem,7vw,6rem) 0; border-top:1px solid var(--line); }
.route>h2,.section-heading h2 { max-width:720px; margin:.1rem 0 2.2rem; font:500 clamp(2.1rem,4.5vw,4rem)/1.05 Georgia,serif; letter-spacing:-.035em; }
.route-grid,.grid,.cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.clinic-trust-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.catalog-items>p { grid-column:1/-1; max-width:60ch; }
.route-grid article { padding:1.4rem 0 1rem; border-top:2px solid var(--ink); }
.route-grid span { color:var(--sun); font-weight:800; }
.route-grid h3 { margin:1rem 0 .35rem; font-size:1.15rem; }
.route-grid p { margin:0; color:var(--muted); }
.latest { padding:clamp(3rem,7vw,6rem) 0; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; }
.grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid article,.cards article,details { padding:1.5rem; background:var(--card); border:1px solid var(--line); border-radius:1rem; }
.grid h3 { margin-top:0; font:500 1.55rem Georgia,serif; }
.grid a { display:block; margin:.65rem 0; }
.content { max-width:860px; margin-block:clamp(3rem,7vw,6rem); }
.content h1 { font:500 clamp(2.5rem,6vw,5rem)/1 Georgia,serif; letter-spacing:-.04em; }
#main-content h1 { overflow-wrap:anywhere; }
.content>h1,.content>article:first-child>h1 { margin-block:0 var(--page-title-gap); }
#main-content>.site-breadcrumbs+* { margin-block-start:var(--page-start-gap); }
#main-content>.site-breadcrumbs+:is(article,section,div)>header:first-child { margin-block-start:0; padding-block-start:0; }
#main-content>.site-breadcrumbs+:is(article,section,div)>header:first-child>:last-child { margin-block-end:0; }
#main-content>.site-breadcrumbs+.home-section { width:var(--page-width); padding-block-start:0; }
#main-content>.site-breadcrumbs+.home-section>h1 { margin-block-start:0; }
.lead { font-size:1.2rem; }
.source,footer { color:var(--muted); font-size:.9rem; }
details { margin:.75rem 0; }
summary { cursor:pointer; font-weight:700; }
footer { display:grid; grid-template-columns:1fr 2fr auto; gap:2rem; align-items:start; padding:2.5rem clamp(1rem,5vw,5rem); background:#e9e5dc; border-top:1px solid var(--line); }
footer a { font-weight:700; }
@media (max-width:860px) { .site-header { align-items:flex-start; } #main-nav { gap:.7rem; } .hero { grid-template-columns:1fr; } .hero-panel { max-width:560px; } .route-grid { grid-template-columns:1fr; } footer { grid-template-columns:1fr 1fr; } }
@media (max-width:620px) { .site-header { position:relative; flex-direction:column; } #main-nav { font-size:.9rem; } .hero { padding-top:3rem; } .hero h1 { font-size:3.4rem; } .grid { grid-template-columns:1fr; } .section-heading { display:block; } footer { grid-template-columns:1fr; } }
