:root {
  --navy:#202c48; --ink:#202a40; --slate:#4c6090; --muted:#4f5a6d;
  --pink:#e70078; --action:#a80053; --rose:#f9e9ef;
  --paper:#f8f6f1; --white:#fff; --line:#dcdedc; --wrap:68rem;
}
* { box-sizing:border-box }
body { margin:0; background:var(--white); color:var(--ink); font:1rem/1.62 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif }
a { color:inherit; text-underline-offset:.22em }
a:hover { text-decoration-thickness:2px }
a:focus-visible,summary:focus-visible { outline:3px solid var(--pink); outline-offset:4px }
img { display:block; max-width:100%; height:auto }
svg { width:1.15rem; height:1.15rem; flex:none }
p { margin:.65rem 0 1rem }
figure { margin:0 }
h1,h2,h3 { margin:0; font-family:Georgia,"Times New Roman",serif; font-weight:400; line-height:1.08 }
h1 { font-size:clamp(3rem,6.2vw,6rem); letter-spacing:-.063em }
h2 { font-size:clamp(2.05rem,4.25vw,3.65rem); letter-spacing:-.045em }
h3 { font-size:1.68rem; letter-spacing:-.028em }
ul { padding-inline-start:1.3rem }
.wrap { width:min(var(--wrap),calc(100% - 4rem)); margin-inline:auto }
.kicker { margin:0 0 .85rem; color:var(--slate); font-size:.72rem; font-weight:760; letter-spacing:.15em; line-height:1.45; text-transform:uppercase }
.skip { position:absolute; z-index:8; top:.5rem; left:.5rem; transform:translateY(-150%); background:white; color:var(--navy); padding:.7rem }
.skip:focus { transform:none }

.top { position:relative; background:var(--white); border-bottom:1px solid var(--line) }
.header-row { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:1.4rem }
.brand { display:inline-flex; align-items:center; gap:.68rem; flex:none; text-decoration:none; line-height:1.15 }
.brand img { width:46px }
.brand b { font-size:.96rem }
.brand small { display:block; margin-top:.24rem; color:var(--muted); font-size:.79rem }
.nav { display:flex; align-items:center; gap:clamp(.65rem,2vw,1.7rem) }
.nav a { font-size:.9rem; font-weight:640; text-decoration:none }
.nav a:hover { text-decoration:underline }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.56rem; min-height:49px; padding:.65rem 1.05rem; border:1px solid transparent; border-radius:5px; background:var(--navy); color:white; font-size:.94rem; font-weight:720; line-height:1.15; text-decoration:none }
.btn:hover { filter:brightness(.91); text-decoration:underline }
.btn.white { background:white; color:var(--navy) }
.btn.pink { background:var(--action); color:white }
.btn.soft { border-color:#d9aabc; background:transparent; color:var(--action) }
.header-phone.btn { min-height:44px; white-space:nowrap; font-size:1.15rem; font-weight:800; font-variant-numeric:tabular-nums }
.actions { display:flex; flex-wrap:wrap; gap:.63rem }

.hero { background:#eef1f7; border-bottom:1px solid var(--line) }
.hero-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:clamp(1.5rem,4.5vw,4.5rem); align-items:center; padding-block:2.4rem }
.hero h1 { font-size:clamp(2.85rem,5.25vw,4.5rem); color:var(--navy) }
.team-name { margin:.78rem 0 0; color:var(--slate); font-size:1rem; font-weight:690 }
.hero .lead { margin:.4rem 0 1.25rem; color:var(--muted); font-size:1.04rem }
.hero-phone { display:inline-block; margin:0 0 .85rem; color:var(--navy); font-size:clamp(1.95rem,4.5vw,2.85rem); font-weight:820; font-variant-numeric:tabular-nums; line-height:1.12; white-space:nowrap; text-decoration:none }
.hero-phone:hover { text-decoration:underline }
.hero-photo img { width:100%; aspect-ratio:8/5; object-fit:cover; border-radius:8px; background:#e5e8ee }

.section { padding-block:4.3rem }
.section.light { background:var(--paper) }
.heading-row { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:1.7rem }
.text-link { display:inline-flex; align-items:center; gap:.52rem; color:var(--slate); font-size:.91rem; font-weight:740; text-decoration:none }
.text-link:hover { text-decoration:underline }
.text-link svg { width:1rem }
.grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.15rem }
.grid.two { grid-template-columns:repeat(2,minmax(0,1fr)) }
.tile { position:relative; display:block; padding:1.35rem; border:1px solid var(--line); border-radius:6px; background:white }
.tile .kicker { margin-bottom:.55rem; font-size:.68rem }
.tile p:last-child { margin-bottom:0 }
.tile-link { display:flex; flex-direction:column; text-decoration:none }
.tile-link:hover { border-color:var(--slate) }
.tile-link:hover h3 { text-decoration:underline }
.tile-link p { color:var(--muted); font-size:.92rem }
.tile-link .arrow { display:inline-flex; margin-top:auto; align-self:end; color:var(--slate) }
.tile-icon { display:grid; place-items:center; width:2.55rem; height:2.55rem; margin-bottom:.82rem; border-radius:50%; background:var(--rose); color:var(--action) }

.section.section-compact { padding-block:2.8rem }
.cabinet-overview { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:clamp(1.4rem,5vw,4rem); align-items:center }
.cabinet-photo { width:100%; aspect-ratio:1.75; object-fit:cover; object-position:center 57%; border-radius:6px }
.cabinet-copy p,.practical p { color:var(--muted); max-width:39rem }
.care-photos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.15rem }
.care-photos img { width:100%; aspect-ratio:8/5; object-fit:cover; border-radius:6px }
.care-photos figcaption { padding-top:.5rem; color:var(--navy); font-weight:690 }
.care-note { margin:.9rem 0 0; color:var(--muted); font-size:.94rem }
.practical { display:grid; grid-template-columns:1fr .72fr; align-items:start; gap:2rem }
.practical>div+div { border-left:2px solid #e4bdcf; padding-left:1.25rem }
.practical p { margin-bottom:0 }
.gallery img,.feature img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:6px; background:var(--paper) }
.gallery figcaption { padding-top:.45rem; color:var(--muted); font-size:.81rem }
.news-tile { padding:0; overflow:hidden }
.news-tile .tile-copy { display:flex; flex:1; flex-direction:column; padding:1.25rem }
.tile-photo { width:100%; aspect-ratio:2.08; object-fit:cover; object-position:center 46%; background:var(--paper) }
.care-grid .tile { border-top:3px solid var(--slate) }

.feature { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:2rem }
.feature img { max-height:410px }
.feature p { max-width:38rem; color:var(--muted) }
.address { margin:.75rem 0; font-style:normal }
.subhero { padding-block:3.65rem; background:var(--paper); border-bottom:1px solid var(--line) }
.subhero h1 { font-size:clamp(2.65rem,5.2vw,4.7rem) }
.subhero p:not(.kicker) { max-width:43rem; margin-bottom:0; color:var(--muted); font-size:1.1rem }
.subhero .actions { margin-top:1.25rem }
.contact { padding-block:2.4rem; background:var(--slate); color:white }
.contact .wrap { display:flex; justify-content:space-between; align-items:center; gap:1.1rem }
.contact h2 { font-size:clamp(1.8rem,3.5vw,2.7rem) }
.contact p { margin:.35rem 0 0 }
.contact .phone { font-size:clamp(1.45rem,3vw,2rem); font-weight:780; white-space:nowrap }
.foot { padding-block:2rem; background:var(--navy); color:#fff }
.foot .wrap { display:flex; justify-content:space-between; align-items:flex-start; gap:2rem }
.foot nav { display:flex; flex-wrap:wrap; gap:.55rem 1rem }
.foot a { font-size:.9rem }
.foot p,.foot .brand small { color:#e1e6f6 }
.foot p { margin:.5rem 0 0; font-size:.89rem }
.foot .brand img { width:42px }
.prose { max-width:47rem }
.prose p,.prose li { max-width:66ch }
.prose h2 { margin:2rem 0 .55rem; font-size:2rem }
.prose h2:first-child { margin-top:0 }
.prose li+li { margin-top:.4rem }
.prose .back { margin-top:1.5rem }
.news-picture { width:100%; max-height:310px; margin-bottom:1.5rem; border-radius:6px; object-fit:cover }
.faq details { padding:1rem 0; border-bottom:1px solid var(--line) }
.faq summary { font-size:1.06rem; font-weight:700; cursor:pointer }
.faq p { margin:.6rem 0 0; color:var(--muted) }

@media(max-width:960px) {
  .nav a { font-size:.87rem }
  .header-row { gap:.85rem }
  .hero-inner { gap:1.65rem }
}
@media(max-width:740px) {
  .wrap { width:calc(100% - 2rem) }
  .header-row { min-height:0; flex-wrap:wrap; justify-content:space-between; padding-top:.72rem; gap:0 }
  .header-phone.btn { padding-inline:.62rem; font-size:1rem; gap:.35rem }
  .header-phone svg { width:1rem; height:1rem }
  .brand img { width:38px }
  .nav { flex-basis:100%; justify-content:space-between; flex-wrap:wrap; gap:0 .4rem; padding-top:.26rem }
  .nav a { display:flex; align-items:center; min-height:44px; font-size:clamp(.75rem, 3.3vw, .85rem) }
  .hero-inner { grid-template-columns:1fr; gap:1.25rem; padding-block:1.5rem }
  .hero h1 { font-size:clamp(2.65rem,10.1vw,4rem) }
  .hero .lead { margin:.35rem 0 1rem }
  .hero-photo img { aspect-ratio:1.75 }
  .btn { padding-inline:.78rem; font-size:.88rem }
  .section { padding-block:2.65rem }
  .heading-row { align-items:start; flex-direction:column; gap:.47rem; margin-bottom:1.2rem }
  .grid,.grid.two,.feature,.cabinet-overview,.practical { grid-template-columns:1fr; gap:1rem }
  .section.section-compact { padding-block:2rem }
  .cabinet-copy { grid-row:1 }
  .cabinet-photo,.gallery img { max-height:290px }
  .care-photos { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem }
  .care-photos figcaption { font-size:.86rem }
  .subhero { padding-block:2.4rem }
  .contact .wrap,.foot .wrap { align-items:start; flex-direction:column; gap:1rem }
}
@media(max-width:350px) {
  .header-phone.btn { padding-inline:.48rem; font-size:.91rem }
  .header-phone svg { display:none }
  .header-row .brand { gap:.4rem }
  .header-row .brand img { width:34px }
  .actions { gap:.4rem }
  .btn { padding-inline:.56rem; font-size:.82rem }
  .btn svg { width:1rem }
  .hero h1 { font-size:2.42rem }
}

.cabinet-map { display:block; width:100%; height:clamp(18rem,40vw,23rem); border:1px solid var(--line); border-radius:6px; background:white }
.insurance { display:flex; align-items:center; gap:.65rem }
.insurance img { flex:none; object-fit:contain }
.footer-links { display:grid; gap:1rem }
.foot .external-links a { display:inline-flex; align-items:center; gap:.4rem }
.external-links img { width:20px; height:20px; object-fit:contain }
.practical .text-link { margin-top:.7rem }
.archive-date { color:var(--muted); font-size:.9rem }
.prose h3 { margin-top:1.15rem }
