/* =========================================================
   МД плюс — Redesign 2026
   Design system: modern medical, teal + coral, airy, animated
   ========================================================= */

/* ---------- Fonts ---------- */
/* Manrope (headings/UI) + Inter (body) via Google Fonts, with safe fallbacks */

/* ---------- Tokens ---------- */
:root{
  --c-primary:      #0d9488;
  --c-primary-600:  #0f766e;
  --c-primary-700:  #115e59;
  --c-primary-800:  #0c4a44;
  --c-primary-050:  #ecfdfa;
  --c-primary-100:  #d0f5ee;
  --c-primary-200:  #a7e9dd;
  --c-cyan:         #0891b2;
  --c-cyan-light:   #22d3ee;
  --c-accent:       #ff6f5e;
  --c-accent-600:   #f2543f;
  --c-accent-050:   #fff1ee;
  --c-gold:         #f6b93b;

  --c-ink:          #0b2b2b;
  --c-heading:      #0c3b39;
  --c-body:         #40575a;
  --c-muted:        #7c9598;
  --c-line:         #e4efee;
  --c-line-strong:  #cfe2e0;
  --c-bg:           #f4faf9;
  --c-bg-soft:      #eef7f6;
  --c-surface:      #ffffff;

  --grad-hero: linear-gradient(135deg,#0f766e 0%,#0d9488 42%,#0891b2 100%);
  --grad-accent: linear-gradient(135deg,#ff8a6b 0%,#ff6f5e 100%);
  --grad-mint: linear-gradient(135deg,#ecfdfa 0%,#f4faf9 100%);

  --shadow-xs: 0 1px 2px rgba(12,59,57,.06);
  --shadow-sm: 0 4px 14px rgba(12,59,57,.07);
  --shadow-md: 0 12px 30px rgba(12,59,57,.10);
  --shadow-lg: 0 24px 60px rgba(12,59,57,.14);
  --shadow-glow: 0 18px 40px rgba(13,148,136,.28);

  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 32px;
  --r-full: 999px;

  --container: 1200px;
  --gutter: clamp(18px, 4vw, 40px);
  --sp: clamp(64px, 9vw, 116px);      /* section vertical padding */

  --font-head: "Manrope", "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-body: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--c-body);
  background:var(--c-bg);
  line-height:1.65;
  font-size:clamp(15px,1.05vw,17px);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3,h4,h5{
  font-family:var(--font-head);
  color:var(--c-heading);
  line-height:1.12;
  margin:0 0 .5em;
  font-weight:800;
  letter-spacing:-.02em;
}
h1{ font-size:clamp(2.1rem,5.2vw,4rem); }
h2{ font-size:clamp(1.7rem,3.6vw,2.75rem); }
h3{ font-size:clamp(1.25rem,2.1vw,1.6rem); }
p{ margin:0 0 1em; }
a{ color:var(--c-primary-600); text-decoration:none; transition:color .2s var(--ease); }
a:hover{ color:var(--c-accent-600); }
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }
strong{ color:var(--c-heading); font-weight:700; }
:focus-visible{ outline:3px solid var(--c-primary); outline-offset:2px; border-radius:6px; }

/* ---------- Layout ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--sp); position:relative; }
.section--tight{ padding-block:clamp(44px,6vw,72px); }
.section--soft{ background:var(--c-bg-soft); }
.section--mint{ background:var(--grad-mint); }
.section--ink{ background:var(--c-primary-800); color:#cdeae6; }
.section--ink h2,.section--ink h3{ color:#fff; }

.grid{ display:grid; gap:clamp(16px,2.2vw,26px); }
.g-2{ grid-template-columns:repeat(2,1fr); }
.g-3{ grid-template-columns:repeat(3,1fr); }
.g-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:960px){ .g-3,.g-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .g-2,.g-3,.g-4{ grid-template-columns:1fr; } }

/* ---------- Section heading ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--font-head); font-weight:700; font-size:.82rem;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--c-primary-600);
  background:var(--c-primary-050);
  border:1px solid var(--c-primary-100);
  padding:.5em 1em; border-radius:var(--r-full);
}
.eyebrow::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--c-accent); box-shadow:0 0 0 4px var(--c-accent-050); }
.sec-head{ max-width:720px; margin-bottom:clamp(28px,4vw,52px); }
.sec-head.center{ margin-inline:auto; text-align:center; }
.sec-head p{ font-size:1.08rem; color:var(--c-body); margin-top:.4em; }
.sec-head h2{ margin-top:.6em; }

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--c-primary); --fg:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--font-head); font-weight:700; font-size:1rem; line-height:1;
  padding:.95em 1.6em; border-radius:var(--r-full);
  background:var(--bg); color:var(--fg);
  border:1.5px solid transparent; cursor:pointer;
  transition:transform .25s var(--ease-out), box-shadow .25s var(--ease-out), background .2s;
  box-shadow:var(--shadow-sm); white-space:nowrap;
}
.btn:hover{ transform:translateY(-3px); box-shadow:var(--shadow-glow); color:#fff; }
.btn:active{ transform:translateY(-1px); }
.btn--accent{ --bg:var(--c-accent); background:var(--grad-accent); }
.btn--accent:hover{ box-shadow:0 18px 40px rgba(255,111,94,.34); }
.btn--ghost{ --bg:transparent; --fg:var(--c-primary-700); border-color:var(--c-line-strong); box-shadow:none; }
.btn--ghost:hover{ --fg:var(--c-primary-700); border-color:var(--c-primary); background:var(--c-primary-050); box-shadow:var(--shadow-sm); }
.btn--white{ --bg:#fff; --fg:var(--c-primary-700); }
.btn--white:hover{ color:var(--c-primary-800); }
.btn--lg{ font-size:1.08rem; padding:1.1em 2em; }
.btn--sm{ font-size:.9rem; padding:.7em 1.15em; }
.btn--block{ width:100%; }
.btn svg{ width:1.15em; height:1.15em; }

/* ---------- Top utility bar ---------- */
.topbar{ background:var(--c-primary-800); color:#bfe6e0; font-size:.86rem; }
.topbar__in{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:42px; flex-wrap:wrap; }
.topbar a{ color:#d9f2ee; }
.topbar a:hover{ color:#fff; }
.topbar__addr{ display:inline-flex; align-items:center; gap:.5em; opacity:.9; }
.topbar__links{ display:flex; align-items:center; gap:18px; }
.topbar__links .sep{ opacity:.35; }
@media (max-width:720px){ .topbar{ display:none; } }

/* ---------- Header / nav ---------- */
.header{ position:sticky; top:0; z-index:70; background:rgba(255,255,255,.86); backdrop-filter:blur(14px); border-bottom:1px solid transparent; transition:box-shadow .3s var(--ease), border-color .3s, background .3s; }
.header.is-stuck{ box-shadow:var(--shadow-sm); border-color:var(--c-line); background:rgba(255,255,255,.94); }
.nav{ display:flex; align-items:center; gap:18px; min-height:76px; }
.brand{ display:inline-flex; align-items:center; gap:12px; font-family:var(--font-head); font-weight:800; color:var(--c-heading); font-size:1.32rem; letter-spacing:-.02em; }
.brand:hover{ color:var(--c-heading); }
.brand__mark{ width:44px; height:44px; border-radius:13px; background:var(--grad-hero); display:grid; place-items:center; color:#fff; box-shadow:var(--shadow-glow); position:relative; flex:none; }
.brand__mark svg{ width:26px; height:26px; }
.brand__sub{ display:block; font-family:var(--font-body); font-weight:500; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--c-muted); margin-top:2px; }
.brand b{ font-weight:800; }
.brand .plus{ color:var(--c-accent); }

.nav__menu{ display:flex; align-items:center; gap:2px; margin-inline:auto; }
.nav__link{ position:relative; white-space:nowrap; font-family:var(--font-head); font-weight:600; font-size:.95rem; color:var(--c-heading); padding:.55em .7em; border-radius:var(--r-sm); transition:color .2s, background .2s; }
.nav__link:hover,.nav__link.active{ color:var(--c-primary-700); background:var(--c-primary-050); }
.nav__link.active::after{ content:""; position:absolute; left:.9em; right:.9em; bottom:.15em; height:2px; background:var(--c-accent); border-radius:2px; }

.nav__has{ position:relative; }
.nav__has > .nav__link{ display:inline-flex; align-items:center; gap:.35em; }
.nav__has > .nav__link .chev{ width:.7em; height:.7em; transition:transform .25s; }
.nav__has:hover > .nav__link .chev{ transform:rotate(180deg); }
.dropdown{
  position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(8px);
  background:#fff; border:1px solid var(--c-line); border-radius:var(--r-md); box-shadow:var(--shadow-lg);
  padding:10px; min-width:300px; opacity:0; visibility:hidden; transition:opacity .22s var(--ease), transform .22s var(--ease);
  display:grid; gap:2px;
}
.nav__has:hover .dropdown{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.dropdown a{ display:flex; align-items:center; gap:12px; padding:.7em .8em; border-radius:var(--r-sm); color:var(--c-heading); font-weight:600; font-size:.95rem; }
.dropdown a:hover{ background:var(--c-primary-050); color:var(--c-primary-700); }
.dropdown a .ic{ width:34px; height:34px; border-radius:9px; background:var(--c-primary-050); color:var(--c-primary); display:grid; place-items:center; flex:none; }
.dropdown a small{ display:block; font-weight:500; color:var(--c-muted); font-size:.78rem; }

.nav__cta{ display:flex; align-items:center; gap:14px; }
.nav__phone{ font-family:var(--font-head); font-weight:800; color:var(--c-heading); font-size:1.02rem; white-space:nowrap; }
.nav__phone small{ display:block; font-weight:500; font-size:.68rem; color:var(--c-muted); letter-spacing:.02em; }

.burger{ display:none; width:46px; height:46px; border:1px solid var(--c-line-strong); background:#fff; border-radius:12px; cursor:pointer; padding:0; place-items:center; }
.burger span{ display:block; width:20px; height:2px; background:var(--c-heading); border-radius:2px; position:relative; transition:.25s; }
.burger span::before,.burger span::after{ content:""; position:absolute; left:0; width:20px; height:2px; background:var(--c-heading); border-radius:2px; transition:.25s; }
.burger span::before{ top:-6px; } .burger span::after{ top:6px; }
body.menu-open .burger span{ background:transparent; }
body.menu-open .burger span::before{ top:0; transform:rotate(45deg); }
body.menu-open .burger span::after{ top:0; transform:rotate(-45deg); }

@media (max-width:1160px){
  .nav__menu{ display:none; }
  .burger{ display:grid; }
  .nav__cta .nav__phone{ display:none; }
}

/* mobile drawer */
.drawer{ position:fixed; inset:0 0 0 auto; width:min(88vw,380px); background:#fff; z-index:90; transform:translateX(100%); transition:transform .35s var(--ease-out); box-shadow:var(--shadow-lg); display:flex; flex-direction:column; padding:24px; overflow-y:auto; }
body.menu-open .drawer{ transform:translateX(0); }
.drawer__overlay{ position:fixed; inset:0; background:rgba(11,43,43,.44); backdrop-filter:blur(3px); opacity:0; visibility:hidden; transition:.3s; z-index:85; }
body.menu-open .drawer__overlay{ opacity:1; visibility:visible; }
.drawer a{ font-family:var(--font-head); font-weight:600; color:var(--c-heading); padding:.85em .4em; border-bottom:1px solid var(--c-line); display:flex; align-items:center; justify-content:space-between; }
.drawer a:hover{ color:var(--c-primary-700); }
.drawer__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.drawer__close{ width:42px; height:42px; border:1px solid var(--c-line); background:#fff; border-radius:12px; font-size:1.4rem; cursor:pointer; color:var(--c-heading); }
.drawer .btn{ margin-top:18px; }
.drawer__sub a{ font-weight:500; font-size:.92rem; color:var(--c-body); padding-left:1.2em; border:none; }

/* ---------- Hero ---------- */
.hero{ position:relative; overflow:hidden; padding-block:clamp(48px,7vw,96px) clamp(60px,8vw,110px); }
.hero__bg{ position:absolute; inset:0; z-index:-2; background:var(--grad-mint); }
.blob{ position:absolute; border-radius:50%; filter:blur(48px); opacity:.5; z-index:-1; animation:float 14s ease-in-out infinite; }
.blob--1{ width:520px; height:520px; background:radial-gradient(circle at 30% 30%,#a7e9dd,transparent 70%); top:-160px; right:-120px; }
.blob--2{ width:440px; height:440px; background:radial-gradient(circle at 40% 40%,#bae6fd,transparent 70%); bottom:-180px; left:-140px; animation-delay:-5s; }
.blob--3{ width:300px; height:300px; background:radial-gradient(circle at 50% 50%,#ffd8cf,transparent 70%); top:40%; left:44%; opacity:.4; animation-delay:-9s; }
@keyframes float{ 0%,100%{ transform:translateY(0) translateX(0) scale(1); } 33%{ transform:translateY(-26px) translateX(16px) scale(1.05); } 66%{ transform:translateY(18px) translateX(-14px) scale(.97); } }

.hero__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,4vw,56px); align-items:center; }
@media (max-width:940px){ .hero__grid{ grid-template-columns:1fr; } }
.hero__badge{ margin-bottom:22px; }
.hero h1{ margin-bottom:.35em; }
.hero h1 .hl{ position:relative; color:var(--c-primary-600); white-space:nowrap; }
.hero h1 .hl::after{ content:""; position:absolute; left:0; right:0; bottom:.08em; height:.32em; background:var(--c-accent); opacity:.28; border-radius:6px; z-index:-1; }
.hero__lead{ font-size:clamp(1.05rem,1.5vw,1.22rem); color:var(--c-body); max-width:36ch; margin-bottom:1.8em; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.hero__trust{ display:flex; gap:26px; margin-top:34px; flex-wrap:wrap; }
.hero__trust .num{ font-family:var(--font-head); font-weight:800; font-size:clamp(1.6rem,2.6vw,2.1rem); color:var(--c-primary-700); line-height:1; }
.hero__trust .lbl{ font-size:.86rem; color:var(--c-muted); margin-top:.35em; max-width:15ch; }
.hero__trust > div{ position:relative; padding-right:26px; }
.hero__trust > div:not(:last-child)::after{ content:""; position:absolute; right:0; top:6px; bottom:6px; width:1px; background:var(--c-line-strong); }

/* hero visual card */
.hero__visual{ position:relative; }
.hero__card{ background:#fff; border-radius:var(--r-xl); box-shadow:var(--shadow-lg); padding:26px; position:relative; overflow:hidden; }
.hero__card::before{ content:""; position:absolute; inset:0; background:var(--grad-hero); opacity:.06; }
.hero__photo{ border-radius:var(--r-lg); background:var(--grad-hero); aspect-ratio:4/3.4; position:relative; overflow:hidden; display:grid; place-items:center; }
.hero__photo .pulse-ring{ position:absolute; width:64%; aspect-ratio:1; border-radius:50%; border:2px solid rgba(255,255,255,.4); animation:pulse 3.5s ease-out infinite; }
.hero__photo .pulse-ring:nth-child(2){ animation-delay:1.2s; }
.hero__photo .pulse-ring:nth-child(3){ animation-delay:2.4s; }
@keyframes pulse{ 0%{ transform:scale(.6); opacity:.9; } 100%{ transform:scale(1.5); opacity:0; } }
.hero__photo .heart{ width:78px; height:78px; color:#fff; z-index:1; filter:drop-shadow(0 8px 20px rgba(0,0,0,.2)); animation:beat 1.6s ease-in-out infinite; }
@keyframes beat{ 0%,100%{ transform:scale(1); } 14%{ transform:scale(1.16); } 28%{ transform:scale(1); } 42%{ transform:scale(1.12); } }

.hero__chip{ position:absolute; background:#fff; border-radius:16px; box-shadow:var(--shadow-md); padding:12px 16px; display:flex; align-items:center; gap:12px; font-weight:600; color:var(--c-heading); font-size:.9rem; animation:floaty 6s ease-in-out infinite; }
.hero__chip .ic{ width:38px; height:38px; border-radius:11px; display:grid; place-items:center; color:#fff; flex:none; }
.hero__chip small{ display:block; color:var(--c-muted); font-weight:500; font-size:.76rem; }
.hero__chip--1{ top:6%; left:-6%; } .hero__chip--1 .ic{ background:var(--grad-accent); }
.hero__chip--2{ bottom:8%; right:-5%; animation-delay:-3s; } .hero__chip--2 .ic{ background:var(--grad-hero); }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-12px); } }
@media (max-width:520px){ .hero__chip--1{ left:-2%; } .hero__chip--2{ right:-2%; } }

/* ---------- Marquee (specialties ticker) ---------- */
.marquee{ overflow:hidden; padding-block:16px; border-block:1px solid var(--c-line); background:#fff; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee__track{ display:flex; gap:44px; width:max-content; animation:scrollx 34s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__item{ display:inline-flex; align-items:center; gap:10px; font-family:var(--font-head); font-weight:700; color:var(--c-primary-700); font-size:1.02rem; white-space:nowrap; }
.marquee__item svg{ width:20px; height:20px; color:var(--c-accent); }
@keyframes scrollx{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---------- Cards ---------- */
.card{ background:var(--c-surface); border:1px solid var(--c-line); border-radius:var(--r-lg); padding:clamp(20px,2.4vw,30px); box-shadow:var(--shadow-xs); transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out), border-color .3s; position:relative; overflow:hidden; }
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:var(--c-primary-100); }
.card__ic{ width:58px; height:58px; border-radius:16px; display:grid; place-items:center; background:var(--c-primary-050); color:var(--c-primary-600); margin-bottom:18px; transition:.3s; }
.card:hover .card__ic{ background:var(--grad-hero); color:#fff; transform:rotate(-6deg) scale(1.05); }
.card__ic svg{ width:28px; height:28px; }
.card h3{ margin-bottom:.4em; }
.card p{ color:var(--c-body); margin-bottom:1em; font-size:.98rem; }
.card__more{ font-family:var(--font-head); font-weight:700; font-size:.92rem; color:var(--c-primary-600); display:inline-flex; align-items:center; gap:.4em; }
.card__more svg{ width:1em; height:1em; transition:transform .25s; }
.card:hover .card__more svg{ transform:translateX(4px); }
.card--link{ cursor:pointer; }

/* service card variant with top accent */
.svc{ display:flex; flex-direction:column; }
.svc__tags{ margin-top:auto; display:flex; flex-wrap:wrap; gap:6px; }
.svc__tags span{ font-size:.76rem; background:var(--c-bg-soft); color:var(--c-body); padding:.35em .75em; border-radius:var(--r-full); }

/* feature (why us) */
.feat{ display:flex; gap:16px; align-items:flex-start; }
.feat__ic{ width:52px; height:52px; border-radius:14px; background:var(--c-primary-050); color:var(--c-primary-600); display:grid; place-items:center; flex:none; }
.feat__ic svg{ width:26px; height:26px; }
.feat h3{ font-size:1.12rem; margin-bottom:.25em; }
.feat p{ font-size:.94rem; color:var(--c-body); margin:0; }

/* stat cards */
.stat{ text-align:center; padding:clamp(20px,2.4vw,30px); }
.stat .num{ font-family:var(--font-head); font-weight:800; font-size:clamp(2.1rem,4vw,3rem); color:var(--c-primary-700); line-height:1; }
.stat .num .suf{ color:var(--c-accent); }
.stat .lbl{ color:var(--c-body); margin-top:.5em; font-weight:600; }

/* ---------- Popular services / price teasers ---------- */
.plist{ display:grid; gap:10px; }
.pline{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:.95em 1.2em; background:#fff; border:1px solid var(--c-line); border-radius:var(--r-md); transition:.25s; }
.pline:hover{ border-color:var(--c-primary-200); box-shadow:var(--shadow-sm); transform:translateX(4px); }
.pline__name{ font-weight:600; color:var(--c-heading); }
.pline__price{ font-family:var(--font-head); font-weight:800; color:var(--c-primary-700); white-space:nowrap; }
.pline__price .rub{ color:var(--c-muted); font-weight:600; font-size:.85em; }

/* ---------- Doctors ---------- */
.doc{ text-align:left; padding:0; overflow:hidden; display:flex; flex-direction:column; }
.doc__photo{ position:relative; aspect-ratio:1/1; background:linear-gradient(160deg,#eef7f6,#dcecea); overflow:hidden; }
.doc__photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; transition:transform .55s var(--ease-out); }
.doc:hover .doc__photo img{ transform:scale(1.05); }
.doc__ava{ position:absolute; inset:0; display:grid; place-items:center; font-family:var(--font-head); font-weight:800; font-size:2.6rem; color:#fff; letter-spacing:.02em; }
.doc__body{ padding:18px 22px 22px; display:flex; flex-direction:column; flex:1; }
.doc h3{ font-size:1.06rem; margin-bottom:.2em; }
.doc__spec{ color:var(--c-body); font-size:.87rem; line-height:1.5; }
.doc__cat{ margin-top:14px; align-self:flex-start; font-size:.76rem; font-weight:700; color:var(--c-primary-700); background:var(--c-primary-050); padding:.35em .8em; border-radius:var(--r-full); }
.filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
.chip{ font-family:var(--font-head); font-weight:600; font-size:.9rem; color:var(--c-body); background:#fff; border:1px solid var(--c-line-strong); padding:.55em 1.05em; border-radius:var(--r-full); cursor:pointer; transition:.2s; }
.chip:hover{ border-color:var(--c-primary); color:var(--c-primary-700); }
.chip.active{ background:var(--c-primary-700); color:#fff; border-color:var(--c-primary-700); box-shadow:var(--shadow-sm); }

/* ---------- Reviews ---------- */
.review{ display:flex; flex-direction:column; gap:14px; }
.review__stars{ color:var(--c-gold); display:flex; gap:2px; }
.review__stars svg{ width:18px; height:18px; }
.review__text{ color:var(--c-body); font-size:.98rem; }
.review__foot{ display:flex; align-items:center; gap:12px; margin-top:auto; }
.review__ava{ width:46px; height:46px; border-radius:50%; display:grid; place-items:center; color:#fff; font-family:var(--font-head); font-weight:800; flex:none; }
.review__who b{ display:block; color:var(--c-heading); font-size:.98rem; }
.review__who span{ font-size:.82rem; color:var(--c-muted); }
.review__reply{ margin-top:4px; padding:12px 14px; background:var(--c-primary-050); border-radius:12px; border-left:3px solid var(--c-primary); font-size:.9rem; color:var(--c-body); }
.review__reply b{ color:var(--c-primary-700); }

/* ---------- CTA band ---------- */
.cta{ position:relative; overflow:hidden; border-radius:var(--r-xl); background:var(--grad-hero); color:#fff; padding:clamp(34px,5vw,64px); box-shadow:var(--shadow-lg); }
.cta::after{ content:""; position:absolute; width:380px; height:380px; border-radius:50%; background:rgba(255,255,255,.08); top:-140px; right:-80px; }
.cta::before{ content:""; position:absolute; width:260px; height:260px; border-radius:50%; background:rgba(255,255,255,.06); bottom:-120px; left:8%; }
.cta__in{ position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; }
.cta h2{ color:#fff; margin-bottom:.25em; }
.cta p{ color:rgba(255,255,255,.9); margin:0; max-width:52ch; }
.cta .btn--white{ box-shadow:0 14px 30px rgba(0,0,0,.18); }

/* ---------- Price page ---------- */
.price-layout{ display:grid; grid-template-columns:280px 1fr; gap:34px; align-items:start; }
@media (max-width:960px){ .price-layout{ grid-template-columns:1fr; } }
.price-side{ position:sticky; top:100px; }
@media (max-width:960px){ .price-side{ position:static; } }
.price-search{ position:relative; margin-bottom:18px; }
.price-search input{ width:100%; font-family:var(--font-body); font-size:1rem; padding:.9em 1em .9em 2.8em; border:1.5px solid var(--c-line-strong); border-radius:var(--r-full); background:#fff; transition:.2s; }
.price-search input:focus{ outline:none; border-color:var(--c-primary); box-shadow:0 0 0 4px var(--c-primary-050); }
.price-search svg{ position:absolute; left:1.05em; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--c-muted); }
.cat-nav{ display:flex; flex-direction:column; gap:2px; max-height:min(70vh,720px); overflow-y:auto; padding-right:6px; }
.cat-nav::-webkit-scrollbar{ width:8px; } .cat-nav::-webkit-scrollbar-thumb{ background:var(--c-line-strong); border-radius:8px; }
.cat-nav button{ text-align:left; font-family:var(--font-head); font-weight:600; font-size:.92rem; color:var(--c-body); background:none; border:none; padding:.7em .9em; border-radius:var(--r-sm); cursor:pointer; transition:.18s; display:flex; justify-content:space-between; gap:10px; align-items:center; }
.cat-nav button:hover{ background:var(--c-bg-soft); color:var(--c-primary-700); }
.cat-nav button.active{ background:var(--c-primary-050); color:var(--c-primary-700); box-shadow:inset 3px 0 0 var(--c-primary); }
.cat-nav button .cnt{ font-size:.74rem; color:var(--c-muted); font-weight:600; background:var(--c-bg-soft); padding:.15em .55em; border-radius:var(--r-full); }
@media (max-width:960px){ .cat-nav{ flex-direction:row; flex-wrap:wrap; max-height:none; } .cat-nav button.active{ box-shadow:none; } }

.price-cat{ margin-bottom:40px; scroll-margin-top:96px; }
.price-cat__head{ display:flex; align-items:center; gap:14px; margin-bottom:8px; padding-bottom:14px; border-bottom:2px solid var(--c-line); }
.price-cat__head .ic{ width:48px; height:48px; border-radius:13px; background:var(--grad-hero); color:#fff; display:grid; place-items:center; flex:none; }
.price-cat__head h2{ font-size:clamp(1.3rem,2.2vw,1.7rem); margin:0; }
.price-sub{ font-family:var(--font-head); font-weight:800; color:var(--c-primary-700); font-size:1.02rem; margin:22px 0 8px; padding-left:12px; border-left:3px solid var(--c-accent); }
.price-table{ width:100%; border-collapse:collapse; }
.price-table tr{ border-bottom:1px solid var(--c-line); transition:background .15s; }
.price-table tr:hover{ background:var(--c-primary-050); }
.price-table td{ padding:.8em .4em; vertical-align:top; }
.price-table td.name{ color:var(--c-heading); font-size:.96rem; }
.price-table td.price{ text-align:right; white-space:nowrap; font-family:var(--font-head); font-weight:800; color:var(--c-primary-700); width:1%; padding-left:20px; }
.price-table td.price .rub{ font-size:.8em; color:var(--c-muted); font-weight:600; }
.price-note{ background:var(--c-accent-050); border:1px solid #ffd9d1; border-radius:var(--r-md); padding:16px 20px; font-size:.9rem; color:var(--c-body); display:flex; gap:12px; align-items:flex-start; margin-bottom:26px; }
.price-note svg{ width:22px; height:22px; color:var(--c-accent-600); flex:none; margin-top:1px; }
.price-empty{ text-align:center; padding:60px 20px; color:var(--c-muted); }
.price-empty svg{ width:52px; height:52px; margin-bottom:14px; color:var(--c-line-strong); }
.is-hidden{ display:none !important; }
mark{ background:#fff2b8; color:inherit; border-radius:3px; padding:0 2px; }

/* ---------- Forms ---------- */
.form{ display:grid; gap:16px; }
.field{ display:grid; gap:6px; }
.field label{ font-family:var(--font-head); font-weight:600; font-size:.9rem; color:var(--c-heading); }
.field input,.field textarea,.field select{ font-family:var(--font-body); font-size:1rem; padding:.85em 1em; border:1.5px solid var(--c-line-strong); border-radius:var(--r-md); background:#fff; transition:.2s; color:var(--c-heading); width:100%; }
.field input:focus,.field textarea:focus,.field select:focus{ outline:none; border-color:var(--c-primary); box-shadow:0 0 0 4px var(--c-primary-050); }
.field textarea{ min-height:130px; resize:vertical; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .form__row{ grid-template-columns:1fr; } }
.form__note{ font-size:.82rem; color:var(--c-muted); }
.checkbox{ display:flex; gap:10px; align-items:flex-start; font-size:.85rem; color:var(--c-body); }
.checkbox input{ width:18px; height:18px; margin-top:3px; accent-color:var(--c-primary); flex:none; }

/* ---------- Branches / contacts ---------- */
.branch{ padding:26px; }
.branch__badge{ display:inline-flex; align-items:center; gap:.5em; font-size:.78rem; font-weight:700; color:var(--c-primary-700); background:var(--c-primary-050); padding:.35em .8em; border-radius:var(--r-full); margin-bottom:14px; }
.branch h3{ font-size:1.2rem; margin-bottom:.5em; }
.branch__row{ display:flex; gap:12px; align-items:flex-start; margin-bottom:10px; font-size:.94rem; color:var(--c-body); }
.branch__row svg{ width:20px; height:20px; color:var(--c-primary); flex:none; margin-top:2px; }
.branch__row a{ font-weight:600; }
.map-wrap{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-md); border:1px solid var(--c-line); background:#fff; min-height:340px; }
.map-wrap iframe{ width:100%; height:100%; min-height:420px; border:0; display:block; filter:saturate(1.05); }

/* ---------- Page hero (inner) ---------- */
.phero{ position:relative; overflow:hidden; padding-block:clamp(46px,7vw,84px) clamp(38px,5vw,60px); background:var(--grad-mint); }
.phero .blob{ opacity:.4; }
.crumbs{ display:flex; gap:.5em; align-items:center; font-size:.86rem; color:var(--c-muted); margin-bottom:16px; flex-wrap:wrap; }
.crumbs a{ color:var(--c-muted); font-weight:600; } .crumbs a:hover{ color:var(--c-primary-600); }
.crumbs .sep{ opacity:.5; }
.phero h1{ max-width:20ch; }
.phero p{ max-width:56ch; font-size:1.08rem; color:var(--c-body); margin-top:.4em; }

/* prose */
.prose{ max-width:760px; }
.prose h2{ margin-top:1.6em; }
.prose h3{ margin-top:1.4em; }
.prose p{ font-size:1.04rem; color:var(--c-body); }
.prose ul.ticks{ display:grid; gap:12px; margin:1.2em 0; }
.prose ul.ticks li{ position:relative; padding-left:2em; color:var(--c-body); }
.prose ul.ticks li::before{ content:""; position:absolute; left:0; top:.15em; width:1.35em; height:1.35em; border-radius:50%; background:var(--c-primary-050); }
.prose ul.ticks li::after{ content:""; position:absolute; left:.42em; top:.5em; width:.42em; height:.24em; border-left:2px solid var(--c-primary); border-bottom:2px solid var(--c-primary); transform:rotate(-45deg); }

/* pill list */
.pills{ display:flex; flex-wrap:wrap; gap:10px; }
.pills a,.pills span{ font-family:var(--font-head); font-weight:600; font-size:.92rem; color:var(--c-primary-700); background:#fff; border:1px solid var(--c-primary-100); padding:.6em 1.1em; border-radius:var(--r-full); transition:.2s; }
.pills a:hover{ background:var(--c-primary-050); transform:translateY(-2px); box-shadow:var(--shadow-sm); }

/* accordion */
.acc__item{ background:#fff; border:1px solid var(--c-line); border-radius:var(--r-md); margin-bottom:12px; overflow:hidden; }
.acc__q{ width:100%; text-align:left; background:none; border:none; padding:1.1em 1.3em; font-family:var(--font-head); font-weight:700; color:var(--c-heading); font-size:1.02rem; cursor:pointer; display:flex; justify-content:space-between; gap:16px; align-items:center; }
.acc__q .pm{ width:26px; height:26px; flex:none; border-radius:50%; background:var(--c-primary-050); color:var(--c-primary-600); display:grid; place-items:center; transition:.25s; font-size:1.1rem; }
.acc__item.open .acc__q .pm{ background:var(--c-primary-700); color:#fff; transform:rotate(45deg); }
.acc__a{ max-height:0; overflow:hidden; transition:max-height .3s var(--ease); }
.acc__a > div{ padding:0 1.3em 1.2em; color:var(--c-body); }

/* ---------- Footer ---------- */
.footer{ background:var(--c-primary-800); color:#a9d6d0; padding-block:clamp(48px,6vw,76px) 30px; margin-top:var(--sp); }
.footer a{ color:#cdeae6; } .footer a:hover{ color:#fff; }
.footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:36px; }
@media (max-width:900px){ .footer__grid{ grid-template-columns:1fr 1fr; gap:28px; } }
@media (max-width:520px){ .footer__grid{ grid-template-columns:1fr; } }
.footer .brand{ color:#fff; margin-bottom:16px; }
.footer .brand__sub{ color:#7fb8b1; }
.footer__about{ font-size:.92rem; color:#9fccc6; max-width:34ch; }
.footer h4{ color:#fff; font-family:var(--font-head); font-size:1rem; margin-bottom:16px; letter-spacing:.01em; }
.footer__links{ display:grid; gap:10px; font-size:.94rem; }
.footer__contact div{ display:flex; gap:10px; align-items:flex-start; margin-bottom:12px; font-size:.92rem; }
.footer__contact svg{ width:18px; height:18px; color:var(--c-cyan-light); flex:none; margin-top:2px; }
.footer__phone{ font-family:var(--font-head); font-weight:800; font-size:1.25rem; color:#fff; }
.footer__soc{ display:flex; gap:10px; margin-top:14px; }
.footer__soc a{ width:42px; height:42px; border-radius:12px; background:rgba(255,255,255,.08); display:grid; place-items:center; color:#fff; transition:.25s; }
.footer__soc a:hover{ background:var(--c-accent); transform:translateY(-3px); }
.footer__soc svg{ width:20px; height:20px; }
.footer__bottom{ border-top:1px solid rgba(255,255,255,.12); margin-top:40px; padding-top:22px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:.84rem; color:#7fb8b1; }
.footer__bottom a{ color:#9fccc6; }
.footer__disc{ max-width:70ch; font-size:.8rem; line-height:1.6; color:#6fa9a3; margin-top:14px; }

/* ---------- Floating actions ---------- */
.fab{ position:fixed; right:20px; bottom:20px; z-index:60; display:flex; flex-direction:column; gap:12px; align-items:flex-end; }
.fab__btn{ width:56px; height:56px; border-radius:50%; display:grid; place-items:center; color:#fff; box-shadow:var(--shadow-md); transition:transform .25s; position:relative; }
.fab__btn:hover{ transform:scale(1.08); color:#fff; }
.fab__btn svg{ width:26px; height:26px; }
.fab__btn--wa{ background:#25d366; }
.fab__btn--up{ background:var(--c-primary-700); opacity:0; visibility:hidden; transform:translateY(12px); transition:.3s; }
.fab__btn--up.show{ opacity:1; visibility:visible; transform:translateY(0); }
.fab__pulse::after{ content:""; position:absolute; inset:0; border-radius:50%; box-shadow:0 0 0 0 rgba(37,211,102,.5); animation:ring 2.2s ease-out infinite; }
@keyframes ring{ to{ box-shadow:0 0 0 16px rgba(37,211,102,0); } }

/* ---------- Reveal animation ---------- */
[data-reveal]{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal][data-delay="1"]{ transition-delay:.08s; }
[data-reveal][data-delay="2"]{ transition-delay:.16s; }
[data-reveal][data-delay="3"]{ transition-delay:.24s; }
[data-reveal][data-delay="4"]{ transition-delay:.32s; }
[data-reveal][data-delay="5"]{ transition-delay:.40s; }
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1 !important; transform:none !important; transition:none !important; }
  .blob,.hero__chip,.marquee__track,.hero__photo .heart,.hero__photo .pulse-ring,.fab__pulse::after{ animation:none !important; }
}

/* ---------- Icon sizing inside coloured tiles ---------- */
.hero__photo .heart svg{ width:100%; height:100%; }
.price-cat__head .ic svg,.hero__chip .ic svg,.dropdown a .ic svg{ width:56%; height:56%; }
.nav__has .chev svg{ width:100%; height:100%; display:block; }
.topbar svg,.crumbs svg,.badge-soft svg,.branch__badge svg,.marquee__item svg,.review__reply svg{ vertical-align:-.15em; }

/* ---------- Misc utilities ---------- */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; } .mb-0{ margin-bottom:0; }
.lead{ font-size:1.12rem; color:var(--c-body); }
.divider{ height:1px; background:var(--c-line); border:0; margin:0; }
.tag-row{ display:flex; flex-wrap:wrap; gap:8px; }
.badge-soft{ display:inline-flex; align-items:center; gap:.4em; font-size:.8rem; font-weight:700; color:var(--c-primary-700); background:var(--c-primary-050); padding:.35em .8em; border-radius:var(--r-full); }
.anchor{ position:relative; top:-90px; visibility:hidden; }
