/* =============================================================
   ArayDent — design tokens & base styles
   Palette: Charcoal Forest + Copper
   Type: Fraunces (display) + Manrope (UI)
============================================================== */

:root{
  /* color tokens — strict per brief */
  --charcoal-forest:#0B1F1A;
  --onyx:#070D0C;
  --copper:#B57A4A;
  --sand:#D6BEA2;
  --linen:#EFE9DD;
  --paper:#F2EDE4;
  --ink:#1A1A1A;
  --muted:#5D6A63;

  /* derived */
  --rule-dark:rgba(239,233,221,.12);
  --rule-light:rgba(11,31,26,.08);
  --copper-soft:rgba(181,122,74,.28);

  /* layout tokens — MOBILE defaults (0-1023px) */
  --container:100%;
  --pad-x:20px;
  --section-y:64px;
  --section-gap:40px;
  --grid-gap:14px;
  --hero-min-h:100svh;

  /* type tokens — MOBILE defaults */
  --display-size:clamp(36px, 11vw, 52px);
  --h1-size:clamp(32px, 9vw, 44px);
  --h2-size:clamp(28px, 7vw, 36px);
  --h3-size:18px;
  --body-l-size:16px;
  --body-size:15px;

  /* controls */
  --btn-h:48px;
  --header-h:64px;
  --header-stuck-h:72px;

  /* type families */
  --display:'Fraunces', 'Cormorant Garamond', Georgia, serif;
  --ui:'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono:'JetBrains Mono', 'SF Mono', ui-monospace, Menlo, monospace;

  /* anim */
  --ease:cubic-bezier(0.22, 1, 0.36, 1);
}

/* desktop overrides — kicks in at the unified md breakpoint */
@media (min-width: 1024px){
  :root{
    --container:1280px;
    --pad-x:80px;
    --section-y:160px;
    --section-gap:64px;
    --grid-gap:24px;
    --hero-min-h:100vh;

    --display-size:clamp(40px, 3.2vw, 56px);
    --h1-size:clamp(32px, 2.8vw, 44px);
    --h2-size:clamp(32px, 3.5vw, 48px);
    --h3-size:18px;
    --body-l-size:18px;
    --body-size:16px;

    --btn-h:52px;
    --header-h:80px;
    --header-stuck-h:104px;
  }
}

/* wide desktop — only what changes from md */
@media (min-width: 1280px){
  :root{
    /* placeholder — overrides go here if/when separate lg behavior is needed */
  }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--charcoal-forest);color:var(--linen);font-family:var(--ui);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-feature-settings:"ss01","ss02","cv11";
  text-size-adjust:100%;-webkit-text-size-adjust:100%;}
html{scroll-behavior:smooth;overflow-x:clip}
body{font-size:16px;line-height:1.6;overflow-x:clip;max-width:100vw}
body.modal-open,body.nav-open{overflow:hidden;touch-action:none}

/* iOS tap highlight removal */
a,button,input,select,textarea,[role="button"]{-webkit-tap-highlight-color:transparent}

/* prevent iOS input zoom — font-size must be ≥16px on focus */
input,select,textarea{font-size:16px}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

/* selection */
::selection{background:var(--copper);color:var(--onyx)}

/* containers ----------------------------------------------------- */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--pad-x)}

/* typography ----------------------------------------------------- */
.display{font-family:var(--display);font-weight:300;letter-spacing:-.022em;line-height:1;
  font-size:var(--display-size)}
.h1{font-family:var(--display);font-weight:300;letter-spacing:-.02em;line-height:1.04;
  font-size:var(--h1-size)}
.h2{font-family:var(--display);font-weight:300;letter-spacing:-.018em;line-height:1.06;
  font-size:var(--h2-size)}
.h3{font-family:var(--ui);font-weight:600;font-size:18px;line-height:1.3;letter-spacing:-.005em}
em,.italic{font-style:italic;font-weight:400}
.display em,.h1 em,.h2 em{font-style:italic;font-weight:300}

/* italic intensity — controls how aggressively em is used outside the hero */
body[data-italic="hero"] .h2 em,
body[data-italic="hero"] .h3 em,
body[data-italic="hero"] .doc-name em,
body[data-italic="hero"] .tech-name em,
body[data-italic="hero"] .case-facts .fact .val em,
body[data-italic="hero"] .footer em{font-style:normal}
body[data-italic="subdued"] .h3 em,
body[data-italic="subdued"] .doc-name em,
body[data-italic="subdued"] .tech-name em,
body[data-italic="subdued"] .case-facts .fact .val em,
body[data-italic="subdued"] .footer em{font-style:normal}
.body-l{font-size:18px;line-height:1.6}
.body{font-size:16px;line-height:1.6}
.caption{font-family:var(--ui);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:500;line-height:1.5}
.eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--ui);font-size:12px;
  letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--copper)}
.eyebrow::before{content:"";display:block;width:28px;height:1px;background:currentColor}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.04em}
.num{font-family:var(--display);font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* buttons -------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  height:var(--btn-h);padding:0 28px;border-radius:999px;font:inherit;font-size:13px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;border:1px solid transparent;
  transition:transform .25s var(--ease),background-color .25s var(--ease),color .25s var(--ease),
    border-color .25s var(--ease);cursor:pointer;white-space:nowrap}
.btn-primary{background:var(--copper);color:var(--onyx)}
.btn-primary:hover{background:var(--sand);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--linen);border-color:rgba(239,233,221,.35)}
.btn-ghost:hover{border-color:var(--linen);transform:translateY(-1px)}
.btn-ghost.on-light{color:var(--charcoal-forest);border-color:rgba(11,31,26,.25)}
.btn-ghost.on-light:hover{border-color:var(--charcoal-forest)}
.btn-small{height:44px;padding:0 22px;font-size:12px}

.link-arrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--ui);font-size:13px;
  font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--copper);
  transition:gap .25s var(--ease)}
.link-arrow::after{content:"→";font-weight:400}
.link-arrow:hover{gap:14px}

/* logomark ------------------------------------------------------- */
.logo{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;font-family:var(--ui);font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;font-size:13px}
.logo-mark{width:22px;height:22px;display:block;flex-shrink:0}
.logo-mark path{fill:currentColor}

/* sections ------------------------------------------------------- */
.section{padding:var(--section-y) 0;position:relative}
.section.dark{background:var(--charcoal-forest);color:var(--linen)}
.section.onyx{background:var(--onyx);color:var(--linen)}
.section.light{background:var(--paper);color:var(--charcoal-forest)}

.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;
  flex-wrap:wrap;margin-bottom:64px}
.section-head .lead{max-width:520px}
.section-head .lead .eyebrow{margin-bottom:24px}

/* ── HEADER ───────────────────────────────────────────────────── */
.header{position:fixed;top:0;left:0;right:0;z-index:60;color:var(--linen);
  transition:background-color .35s var(--ease),border-color .35s var(--ease),
    color .35s var(--ease),padding .35s var(--ease)}
.header-inner{max-width:var(--container);margin:0 auto;padding:12px var(--pad-x);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:var(--header-h)}
.header.scrolled{background:rgba(242,237,228,.96);color:var(--charcoal-forest);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--rule-light)}
.header .logo img{transition:filter .3s var(--ease);height:48px;width:auto;display:block}
.header.scrolled .logo img{filter:invert(1) sepia(.25) saturate(2) hue-rotate(110deg) brightness(.85)}

/* nav-main and phone — hidden on mobile, shown on desktop */
.nav-main{display:none;font-size:15px;letter-spacing:.04em;font-weight:500}
.nav-main a{position:relative;padding:10px 16px;border-radius:10px;color:inherit;opacity:.92;
  transition:opacity .2s var(--ease),background .25s var(--ease),color .25s var(--ease);white-space:nowrap}
.nav-main a:hover{opacity:1;background:rgba(239,233,221,.08)}
.header.scrolled .nav-main a:hover{background:rgba(11,31,26,.06)}
.nav-main a.active::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--copper)}
.header-right{display:flex;align-items:center;gap:12px}
.header-phone{display:none;font-family:var(--display);font-weight:300;font-size:20px;letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.header-right .btn-small{display:none}

/* burger — visible on mobile, replaces nav + cta + phone */
.burger{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;
  border-radius:0;border:0;background:transparent;color:inherit;padding:0;cursor:pointer;
  -webkit-tap-highlight-color:transparent}
.burger span{display:block;width:22px;height:1px;background:currentColor;position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:22px;height:1px;
  background:currentColor}
.burger span::before{top:-6px}
.burger span::after{top:6px}

@media (min-width: 1280px){
  .header-inner{padding:24px var(--pad-x);gap:32px}
  .header .logo img{height:72px}
  .header.scrolled .header-inner{padding-top:16px;padding-bottom:16px}
  .nav-main{display:flex;gap:8px}
  .header-right{gap:24px}
  .header-phone{display:inline-block}
  .header-right .btn-small{display:inline-flex}
  .burger{display:none}
}

/* ── NAV OVERLAY (mobile) ─────────────────────────────────────── */
.nav-overlay{
  position:fixed;inset:0;z-index:100;
  background:var(--charcoal-forest);color:var(--linen);
  display:flex;flex-direction:column;
  padding:env(safe-area-inset-top) 0 0;
  opacity:0;pointer-events:none;
  overflow-y:auto;overscroll-behavior:contain;
  transition:opacity .2s ease-out;
}
.nav-overlay.is-open{opacity:1;pointer-events:auto}
.nav-overlay-top{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 20px;min-height:var(--header-h);
}
.nav-overlay-top .logo img{height:48px;width:auto;display:block}
.nav-overlay-close{
  width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  border:0;background:transparent;color:var(--linen);cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.nav-overlay-list{
  display:flex;flex-direction:column;
  padding:32px 24px;flex:1 1 auto;
}
.nav-overlay-list a{
  display:block;
  font-family:var(--display);font-weight:300;font-size:32px;line-height:1;letter-spacing:-.01em;
  padding:18px 0;color:var(--linen);
  border-bottom:1px solid var(--rule-dark);
  opacity:0;transform:translateY(12px);
  transition:opacity .35s var(--ease),transform .35s var(--ease);
}
.nav-overlay-list a.active{border-bottom-color:var(--copper);color:var(--copper)}
.nav-overlay-list a:focus-visible{outline:2px solid var(--copper);outline-offset:4px}
.nav-overlay.is-open .nav-overlay-list a{opacity:1;transform:translateY(0)}
.nav-overlay.is-open .nav-overlay-list a:nth-child(1){transition-delay:.04s}
.nav-overlay.is-open .nav-overlay-list a:nth-child(2){transition-delay:.08s}
.nav-overlay.is-open .nav-overlay-list a:nth-child(3){transition-delay:.12s}
.nav-overlay.is-open .nav-overlay-list a:nth-child(4){transition-delay:.16s}
.nav-overlay.is-open .nav-overlay-list a:nth-child(5){transition-delay:.20s}
.nav-overlay.is-open .nav-overlay-list a:nth-child(6){transition-delay:.24s}
.nav-overlay-divider{
  height:1px;background:var(--rule-dark);margin:0 24px;
}
.nav-overlay-contacts{
  padding:24px;display:flex;flex-direction:column;gap:20px;
}
.nav-overlay-phone{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--ui);font-size:18px;font-variant-numeric:tabular-nums;
  color:var(--linen);
}
.nav-overlay-phone svg{color:var(--copper);flex-shrink:0}
.nav-overlay-socials{display:flex;gap:20px}
.nav-overlay-socials a{
  display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;
  color:var(--copper);
}
.nav-overlay-socials svg{width:24px;height:24px;fill:currentColor}
.nav-overlay-cta{padding:0 24px max(24px, env(safe-area-inset-bottom))}

@media (min-width: 1280px){
  .nav-overlay{display:none}
}

/* ── HERO ─────────────────────────────────────────────────────── */
.hero{position:relative;min-height:var(--hero-min-h);
  display:flex;align-items:flex-end;overflow:hidden;background:var(--charcoal-forest);
  padding-top:80px;padding-bottom:56px}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(11,31,26,.58) 0%, rgba(11,31,26,.66) 55%, rgba(7,13,12,.78) 100%);
  z-index:2;pointer-events:none}
.hero-bg picture, .hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:25% center;z-index:1;filter:blur(8px);transform:scale(1.06)}
.hero-bg .lqip{
  position:absolute;inset:0;background-size:cover;background-position:center;
  filter:blur(20px);transform:scale(1.05);z-index:0;
  transition:opacity .4s var(--ease);opacity:1;
}
.hero-doctor{position:absolute;z-index:2;pointer-events:none;user-select:none;
  top:64px;left:67%;transform:translateX(-50%);bottom:auto;
  width:auto;height:55vh;max-width:none;
  object-fit:contain;object-position:center top;
  -webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 55%, transparent 95%);
  mask-image:linear-gradient(to bottom, #000 0%, #000 55%, transparent 95%);
  filter:none}
.hero-bg.loaded .lqip{opacity:0}
.hero-content{position:relative;z-index:3;width:100%;max-width:var(--container);
  margin:0 auto;padding:0 var(--pad-x);display:grid;grid-template-columns:1fr;gap:24px;align-items:end}
.hero-text{max-width:780px}
.hero .display{margin-top:24px;font-size:var(--h1-size);line-height:1.05;max-width:18ch}
.hero p.lead{margin-top:20px;max-width:480px;font-size:14px;line-height:1.55;color:rgba(239,233,221,.78)}
.hero-ctas{margin-top:28px;display:flex;flex-direction:column;gap:10px}
.hero-ctas .btn{width:100%}
.hero-meta{display:none}
.hero-scroll{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:3;
  width:14px;height:44px;color:var(--copper);opacity:.85;display:none;
  transition:opacity .25s var(--ease)}
.hero-scroll svg{width:100%;height:100%;display:block;
  animation:scrollArrow 2.4s var(--ease) infinite}
@keyframes scrollArrow{
  0%   {transform:translateY(-6px);opacity:.35}
  50%  {transform:translateY(0);    opacity:1}
  100% {transform:translateY(6px);  opacity:.35}
}

/* ── HERO REVEAL STAGGER (first paint, not on intersection) ───── */
.hero .reveal{opacity:0;transform:translateY(16px);
  transition:opacity .6s var(--ease),transform .6s var(--ease)}
.hero.is-mounted .reveal{opacity:1;transform:translateY(0)}
.hero.is-mounted .eyebrow.reveal{transition-delay:0s}
.hero.is-mounted .display.reveal{transition-delay:.08s}
.hero.is-mounted p.lead.reveal{transition-delay:.16s}
.hero.is-mounted .hero-ctas.reveal{transition-delay:.24s}
.hero.is-mounted .hero-scroll{opacity:.85;transform:none;transition:opacity .6s var(--ease) .32s}
.hero .hero-scroll{opacity:0;transition:opacity .6s var(--ease)}

@media (prefers-reduced-motion: reduce){
  .hero .reveal,.hero .hero-scroll{opacity:1;transform:none;transition:none}
}

@media (min-width: 1024px){
  .hero{padding-top:120px;padding-bottom:80px;align-items:flex-end}
  .hero-content{grid-template-columns:1fr auto;gap:48px}
  .hero-bg picture, .hero-bg img{object-position:center}
  .hero-doctor{top:auto;bottom:0;left:auto;transform:none;
    right:calc(var(--pad-x) + 90px);
    height:90%;max-height:none;
    object-position:right bottom;
    -webkit-mask-image:none;mask-image:none;
    filter:drop-shadow(-8px 18px 50px rgba(0,0,0,.55))}
  .hero .display{margin-top:32px;font-size:var(--display-size);max-width:none}
  .hero p.lead{margin-top:32px;font-size:17px;max-width:480px}
  .hero-ctas{margin-top:36px;flex-direction:row;gap:14px;flex-wrap:wrap}
  .hero-ctas .btn{width:auto}
  .hero-meta{display:flex;flex-direction:column;gap:6px;align-self:end;text-align:right;
    color:rgba(239,233,221,.55);font-family:var(--mono);font-size:11px;letter-spacing:.04em}
  .hero-meta strong{color:var(--copper);font-weight:400}
  .hero-scroll{left:var(--pad-x);bottom:36px;transform:none;display:block}
}

/* ── PLACEHOLDER (brand) ─────────────────────────────────────── */
.ph{position:relative;overflow:hidden;background:var(--onyx);
  background-image:
    repeating-linear-gradient(0deg,
      transparent 0,transparent 5px,
      rgba(239,233,221,.04) 5px,rgba(239,233,221,.04) 6px);
  border:1px solid var(--rule-dark)}
.ph.light{background:var(--paper);
  background-image:
    repeating-linear-gradient(0deg,
      transparent 0,transparent 5px,
      rgba(11,31,26,.05) 5px,rgba(11,31,26,.05) 6px);
  border-color:var(--rule-light)}
.ph .ph-label{position:absolute;inset:auto auto 14px 16px;font-family:var(--mono);
  font-size:10px;letter-spacing:.06em;color:rgba(239,233,221,.45);
  background:rgba(7,13,12,.65);padding:6px 10px;border-radius:2px;line-height:1.3;
  max-width:calc(100% - 32px)}
.ph.light .ph-label{color:rgba(11,31,26,.55);background:rgba(242,237,228,.85)}
.ph .ph-corner{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:10px;
  color:var(--copper);letter-spacing:.1em}
.ph .ph-corner::before{content:"+ ";opacity:.6}
.ph .ph-tick{position:absolute;width:10px;height:10px;border:1px solid var(--copper);opacity:.7}
.ph .ph-tick.t1{top:0;left:0;border-right:none;border-bottom:none}
.ph .ph-tick.t2{top:0;right:0;border-left:none;border-bottom:none}
.ph .ph-tick.t3{bottom:0;left:0;border-right:none;border-top:none}
.ph .ph-tick.t4{bottom:0;right:0;border-left:none;border-top:none}
.ph .ph-silhouette{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:46%;height:auto;color:var(--copper);opacity:.28;pointer-events:none}
.ph .ph-silhouette circle,
.ph .ph-silhouette path{fill:none;stroke:currentColor;stroke-width:.7;
  vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.ph.light .ph-silhouette{color:var(--charcoal-forest);opacity:.22}

/* Photo variant — used by case BA slider when a real before/after JPG is wired in. */
.ph.ph-photo{background-image:none;border-color:var(--rule-dark)}
.ph.ph-photo > img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block;pointer-events:none;user-select:none}

/* hero photo placeholder — warmth-heavy radials so the section never reads cold */
.hero-bg .ph{position:absolute;inset:0;border:0;background-color:#0C2520}
.hero-bg .ph::before{content:"";position:absolute;inset:0;
  background:
    radial-gradient(58% 50% at 78% 28%, rgba(181,122,74,.42), transparent 65%),
    radial-gradient(48% 40% at 18% 88%, rgba(214,190,162,.20), transparent 70%),
    radial-gradient(120% 80% at 50% 110%, rgba(181,122,74,.10), transparent 60%);
  mix-blend-mode:screen}
.hero-bg .ph::after{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 80% 24%, rgba(214,190,162,.06), transparent 50%);
  mix-blend-mode:soft-light}

/* ── SERVICES OVERVIEW (2×2 grid mobile, 4-up desktop) ────────── */
.svc-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:rgba(11,31,26,.12);
  border:1px solid rgba(11,31,26,.12);
}
.svc-card{
  position:relative;display:flex;flex-direction:column;gap:14px;
  background:var(--paper);color:var(--charcoal-forest);
  padding:20px 16px;text-decoration:none;
  transition:background .4s var(--ease),color .4s var(--ease);
  min-height:200px;
}
.svc-card .svc-big{display:none}
.svc-num{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--copper)}
.svc-icon{display:block;width:32px;height:32px;color:var(--copper)}
.svc-icon svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.5;fill:none}
.svc-card h3{font-family:var(--display);font-weight:300;font-size:22px;line-height:1.1;margin:0;color:inherit}
.svc-card .desc{font-family:var(--ui);font-size:12px;line-height:1.45;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.svc-card .link-arrow{display:none}
.svc-card:active{background:var(--charcoal-forest);color:var(--linen)}
.svc-card:active .svc-num,.svc-card:active .svc-icon{color:var(--copper)}
.svc-card:active .desc{color:rgba(239,233,221,.7)}

@media (min-width: 1024px){
  .svc-grid{
    grid-template-columns:repeat(2,1fr);
    gap:1px;background:rgba(11,31,26,.12);border:1px solid rgba(11,31,26,.12);
  }
  .svc-card{padding:56px 48px 48px;min-height:340px;gap:24px}
  .svc-card .svc-big{display:block;font-family:var(--display);font-weight:300;font-size:160px;line-height:1;
    color:rgba(11,31,26,.05);position:absolute;right:32px;bottom:8px;pointer-events:none;letter-spacing:-.04em}
  .svc-card .svc-icon{width:40px;height:40px}
  .svc-card h3{font-size:34px;line-height:1.05;letter-spacing:-.012em}
  .svc-card .desc{font-size:15px;line-height:1.55;-webkit-line-clamp:unset;line-clamp:unset;
    max-width:46ch;color:var(--muted);flex-grow:1;
    -webkit-box-orient:initial;display:block;overflow:visible}
  .svc-card .link-arrow{display:inline-flex;margin-top:auto;align-self:flex-start;position:relative;z-index:1}
  .svc-card .svc-num{font-size:11px;letter-spacing:.18em}
  .svc-card:hover{background:var(--charcoal-forest);color:var(--linen)}
  .svc-card:hover .desc{color:rgba(239,233,221,.78)}
  .svc-card:hover .svc-big{color:rgba(239,233,221,.06)}
}

/* ── TRUST STATS (2×2 mobile, 4-col desktop) ──────────────────── */
.numbers{
  display:grid;grid-template-columns:1fr 1fr;gap:32px 24px;
  padding:48px var(--pad-x);
}
.numbers .num-card{
  display:flex;flex-direction:column;gap:8px;
  padding-top:16px;border-top:1px solid var(--rule-dark);
}
.section.light .numbers .num-card{border-top-color:var(--rule-light)}
.num-card .num{font-family:var(--display);font-weight:300;font-size:clamp(40px,11vw,56px);line-height:1;color:var(--copper)}
.num-card .num-label{font-family:var(--ui);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

@media (min-width: 1024px){
  .numbers{grid-template-columns:repeat(4, 1fr);gap:48px;padding:64px 0;max-width:var(--container);margin:0 auto}
  .num-card .num{font-size:64px}
}

/* ── FEATURED CASE ────────────────────────────────────────────── */
.case-grid{display:grid;grid-template-columns:1fr;gap:32px}
.case-meta{order:1}
.case-meta .h2{font-size:var(--h2-size);font-weight:300;line-height:1.06;margin-top:16px;letter-spacing:-.018em}
.case-facts{display:grid;grid-template-columns:1fr;gap:18px;margin-top:24px}
.case-facts .fact{display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:1px solid var(--rule-dark);padding-bottom:14px}
.case-facts .fact .label{font-family:var(--ui);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.case-facts .fact .val{font-family:var(--display);font-weight:300;font-size:18px;color:var(--copper)}
.case-quote{font-family:var(--display);font-style:italic;font-weight:300;font-size:16px;line-height:1.5;
  margin-top:20px;color:rgba(239,233,221,.85);max-width:34ch}
.case-cta{margin-top:24px}
.case-cta .btn{width:100%}

.ba{order:2;position:relative;overflow:hidden;aspect-ratio:8/5;background:var(--onyx);
  touch-action:pan-y;user-select:none}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-after{clip-path:inset(0 0 0 50%)}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:1.5px;background:var(--copper);
  transform:translateX(-50%);pointer-events:none;z-index:2}
.ba-knob{position:absolute;top:50%;left:50%;width:32px;height:32px;border-radius:50%;
  background:var(--copper);color:var(--onyx);display:flex;align-items:center;justify-content:center;
  transform:translate(-50%, -50%);cursor:ew-resize;z-index:3;
  box-shadow:0 4px 12px rgba(0,0,0,.3)}
.ba-knob svg{width:14px;height:14px}

@media (min-width: 1024px){
  .case-grid{grid-template-columns:40fr 60fr;gap:48px;align-items:center}
  .case-meta{order:0}
  .case-facts{grid-template-columns:1fr 1fr;gap:24px}
  .case-cta .btn{width:auto}
  .ba{order:0;aspect-ratio:8/5;touch-action:none}
}

/* ── MAP / CONTACTS (full-bleed) ─────────────────────────────── */
.map-section{position:relative;overflow:hidden;background:#e9e6df}
.map-frame-bleed{position:relative;inset:auto;height:340px;background:#e9e6df}
.map-frame-bleed iframe{width:100%;height:100%;border:0;display:block}
.map-overlay-container{position:relative;z-index:2;height:auto;display:flex;align-items:flex-start;
  padding:32px 0;pointer-events:none}
.map-overlay-card{pointer-events:auto;width:100%;background:rgba(242,237,228,.97);
  backdrop-filter:blur(10px);padding:32px 24px;border:1px solid rgba(11,31,26,.08);
  box-shadow:0 24px 60px rgba(7,13,12,.18);color:var(--charcoal-forest)}
.map-overlay-card .eyebrow{color:var(--copper)}
.map-meta{margin-top:32px;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rule-light);list-style:none;padding:0}
.map-meta li{padding:14px 0;border-bottom:1px solid var(--rule-light);
  display:grid;grid-template-columns:90px 1fr;gap:16px;align-items:baseline}
.map-meta .key{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(11,31,26,.5)}
.map-meta .val{font-family:var(--display);font-weight:300;font-size:17px;letter-spacing:-.01em;color:var(--charcoal-forest)}
.map-meta .val a{color:inherit;border-bottom:1px solid rgba(11,31,26,.3);transition:border-color .2s}
.map-meta .val a:hover{border-bottom-color:var(--copper)}

@media (min-width:1024px){
  .map-section{min-height:720px}
  .map-frame-bleed{position:absolute;inset:0;height:auto}
  .map-overlay-container{height:720px;padding:0;align-items:center}
  .map-overlay-card{width:380px;padding:40px 36px}
  .map-meta li{grid-template-columns:80px 1fr}
}

/* ── DOCTORS PREVIEW (horizontal snap mobile, grid desktop) ───── */
.doctors-scroller{display:flex;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;
  gap:14px;padding-inline:20px;scroll-padding-inline:20px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.doctors-scroller::-webkit-scrollbar{display:none}
.doc-card{
  flex:0 0 75%;scroll-snap-align:start;
  display:flex;flex-direction:column;gap:14px;text-decoration:none;color:inherit;cursor:pointer;
}
.doc-portrait{aspect-ratio:4/5;background:var(--paper);overflow:hidden;position:relative}
.doc-portrait .ph{position:absolute;inset:0}
.doc-portrait .doc-photo{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center top}
.doc-info{padding:0 4px}
.doc-name{font-family:var(--display);font-weight:300;font-size:22px;line-height:1.1;color:var(--charcoal-forest);margin-top:6px}
.doc-exp{font-family:var(--ui);font-size:13px;color:var(--muted);margin-top:6px}

.doctors-indicator{
  display:flex;gap:6px;padding-inline:20px;margin-top:24px;
}
.doctors-indicator .dot{
  flex:1;height:2px;background:rgba(11,31,26,.15);transition:background .3s var(--ease)
}
.doctors-indicator .dot.active{background:var(--copper)}

.eyebrow.on-light{color:var(--copper)}
.link-arrow.on-light{color:var(--charcoal-forest)}

@media (min-width: 1024px){
  .doctors-scroller{
    display:grid;grid-template-columns:repeat(3, 1fr);
    overflow:visible;gap:40px 32px;
    padding:0;max-width:var(--container);margin:0 auto;
  }
  .doctors-scroller{padding-inline:var(--pad-x)}
  .doc-card{flex:none;scroll-snap-align:none;gap:20px}
  .doc-portrait{aspect-ratio:4/5}
  .doc-name{font-size:30px;margin-top:10px}
  .doc-exp{font-size:14px;margin-top:8px;line-height:1.5}
  .doctors-indicator{display:none}
}

/* ── TECHNOLOGY ─────────────────────────────────────────────── */
.tech{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule-dark);
  border:1px solid var(--rule-dark)}
.tech-item{padding:40px 32px;background:var(--charcoal-forest);display:flex;flex-direction:column;gap:24px;
  min-height:280px}
.tech-icon{width:32px;height:32px;color:var(--copper);stroke:currentColor;stroke-width:1.5;fill:none}
.tech-name{font-family:var(--display);font-weight:300;font-size:22px;line-height:1.15;letter-spacing:-.005em}
.tech-name em{font-style:italic}
.tech-desc{font-size:13px;line-height:1.55;color:rgba(239,233,221,.7);margin-top:auto}
.tech-tag{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--copper);
  text-transform:uppercase}

/* mobile default — single column */
.tech{grid-template-columns:1fr}
@media (min-width:1024px){
  .tech{grid-template-columns:repeat(3,1fr)}
}

/* ── TESTIMONIALS MARQUEE ─────────────────────────────────────── */
.testimonials{padding:var(--section-y) 0;background:var(--charcoal-forest);overflow:hidden}
.testimonials .container{margin-bottom:40px}
.testimonials-rating{text-align:center;padding:24px var(--pad-x) 0;font-family:var(--ui);font-size:14px;color:var(--linen)}
.testimonials-rating .stars{color:var(--copper);font-size:18px;letter-spacing:2px}
.testimonials-rating a{color:var(--copper);text-decoration:underline;text-underline-offset:4px}

.marquee-wrap,
.marquee{position:relative;overflow:hidden;
  mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);
  padding:24px 0;touch-action:pan-y;cursor:grab}
.marquee.is-dragging,.marquee-wrap.is-dragging{cursor:grabbing}
.marquee-wrap > .marquee,
.marquee-track{display:flex;gap:14px;width:max-content;
  will-change:transform}
/* CSS-driven autoplay only on desktop where hover-pause is meaningful;
   on touch devices JS drives the marquee with drag + auto-resume. */
@media (hover: hover) and (pointer: fine){
  .marquee-wrap > .marquee,
  .marquee-track{animation:marquee 35s linear infinite;animation-play-state:running}
  .marquee-wrap:hover > .marquee,
  .marquee:hover .marquee-track{animation-play-state:paused}
}

.t-card{
  flex:0 0 min(320px, 80vw);
  padding:28px;background:rgba(11,31,26,.04);border:1px solid var(--rule-light);
  display:flex;flex-direction:column;gap:14px;color:var(--charcoal-forest);
}
.t-card .t-mark{font-family:var(--display);font-style:italic;font-weight:300;
  font-size:56px;line-height:.6;color:var(--copper);margin-bottom:8px}
.t-card .t-body{font-family:var(--display);font-weight:300;font-size:18px;line-height:1.4;
  color:var(--charcoal-forest)}
.t-card .t-meta{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;
  font-family:var(--ui);font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.t-card .t-meta strong{font-weight:600;color:var(--charcoal-forest);letter-spacing:.04em;text-transform:none;font-size:13px}
.t-card .t-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--copper);display:inline-block}

.testimonial-card{
  flex:0 0 min(280px, 75vw);
  padding:24px;background:rgba(239,233,221,.06);border:1px solid var(--rule-dark);
  display:flex;flex-direction:column;gap:16px;color:var(--linen);
}
.testimonial-card .quote-mark{font-family:var(--display);font-size:36px;line-height:1;color:var(--copper)}
.testimonial-card .text{font-family:var(--ui);font-size:14px;line-height:1.55;color:rgba(239,233,221,.85)}
.testimonial-card .author{font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--linen)}
.testimonial-card .source{font-family:var(--ui);font-size:11px;color:var(--muted)}

@keyframes marquee{
  from{transform:translateX(0)}
  to  {transform:translateX(calc(-50% - 7px))}
}

@media (min-width: 1024px){
  .marquee-wrap > .marquee,
  .marquee-track{animation-duration:60s;gap:32px}
  .testimonial-card,
  .t-card{flex-basis:460px;padding:40px}
  .testimonial-card .text,
  .t-card .t-body{font-size:20px;line-height:1.45}
  .t-card .t-mark{font-size:64px}
}

@media (prefers-reduced-motion: reduce){
  .marquee-wrap > .marquee,
  .marquee-track{
    animation:none;
    overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }
  .testimonial-card,
  .t-card{scroll-snap-align:start}
}

/* ── CTA SECTION (form) ───────────────────────────────────────── */
.cta,
.cta-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:start}
.cta .h2{font-family:var(--display);font-weight:300;font-size:var(--h2-size);line-height:1.06}

.lead-form{display:flex;flex-direction:column;gap:24px;background:var(--linen);color:var(--charcoal-forest);padding:24px;border:1px solid var(--rule-light)}
.lead-form .field{position:relative}
.lead-form .field input,.lead-form .field select,.lead-form .field textarea{
  width:100%;height:56px;padding:18px 0 6px;
  font-family:var(--ui);font-size:16px;color:var(--charcoal-forest);
  background:transparent;border:0;border-bottom:1px solid var(--rule-light);border-radius:0;
  appearance:none;-webkit-appearance:none;
}
.lead-form .field textarea{height:auto;min-height:80px;resize:vertical}
.lead-form .field label{
  position:absolute;left:0;top:50%;transform:translateY(-50%);
  font-family:var(--ui);font-size:14px;color:var(--muted);pointer-events:none;
  transition:top .2s var(--ease),font-size .2s var(--ease),color .2s var(--ease);
}
.lead-form .field input:not(:placeholder-shown) + label,
.lead-form .field input:focus + label,
.lead-form .field select:focus + label,
.lead-form .field.has-value label,
.lead-form .field textarea:focus + label{
  top:8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--copper);
}
.lead-form .row-2{display:grid;grid-template-columns:1fr;gap:24px}
.lead-form .check{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--muted);line-height:1.4}
.lead-form .check input{flex-shrink:0;margin-top:2px}
.lead-form .btn{height:var(--btn-h);width:100%}
.cta-alt{margin-top:24px;text-align:center;font-family:var(--ui);font-size:14px;color:var(--muted)}
.cta-alt a{color:var(--copper);text-decoration:underline;text-underline-offset:4px}

@media (min-width: 1024px){
  .cta,
  .cta-grid{grid-template-columns:1fr 1fr;gap:80px;align-items:start}
  .lead-form{padding:40px}
  .lead-form .row-2{grid-template-columns:1fr 1fr}
}

/* ── FOOTER ───────────────────────────────────────────────────── */
.footer{background:var(--charcoal-forest);color:var(--linen);padding:64px 0 96px}
.footer .container{padding:0 var(--pad-x)}
.footer-grid{display:grid;grid-template-columns:1fr;gap:40px}
.footer-brand .footer-logo img{height:96px;width:auto;display:block}
.footer-brand .brand-blurb{font-family:var(--display);font-style:italic;font-size:18px;color:rgba(239,233,221,.85);margin-top:20px;max-width:24ch}
.footer-brand .socials{display:flex;gap:16px;margin-top:24px}
.footer-brand .socials a{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;color:var(--copper)}
.footer-brand .socials svg{width:24px;height:24px;fill:currentColor}

.footer-col h4{font-family:var(--ui);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--copper);margin-bottom:16px;padding-top:32px;border-top:1px solid var(--rule-dark)}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.footer-col a{color:var(--linen);font-size:14px}
.footer-col a:hover{color:var(--copper)}

.footer-contacts li{display:flex;align-items:flex-start;gap:12px;font-size:14px}
.footer-contacts svg{width:20px;height:20px;flex-shrink:0;color:var(--copper);fill:none;stroke:currentColor;stroke-width:1.4;margin-top:2px}

.footer-bot{
  margin-top:40px;padding-top:24px;border-top:1px solid var(--rule-dark);
  display:flex;flex-direction:column;gap:12px;text-align:center;
  font-family:var(--ui);font-size:12px;color:var(--muted);
}
.footer-bot a{color:inherit;text-decoration:underline;text-underline-offset:4px}
.footer-bot .links{display:flex;flex-direction:column;gap:8px}

@media (min-width: 1024px){
  .footer{padding:120px 0 32px}
  /* desktop has no sticky-cta — restore tight bottom padding */
  .footer-grid{grid-template-columns:2fr 1fr 1fr 1.4fr;gap:64px}
  .footer-col h4{padding-top:0;border-top:0;margin-top:8px}
  .footer-bot{flex-direction:row;justify-content:space-between;text-align:left}
  .footer-bot .links{flex-direction:row;gap:24px}
}

/* ── STICKY MOBILE CTA ─────────────────────────────────────────── */
.sticky-cta{
  position:fixed;left:12px;right:12px;bottom:12px;
  bottom:calc(12px + env(safe-area-inset-bottom));
  z-index:55;
  display:none;
  align-items:center;justify-content:space-between;gap:12px;
  background:var(--charcoal-forest);color:var(--linen);
  border:1px solid var(--rule-dark);border-radius:999px;
  padding:6px 6px 6px 20px;
  box-shadow:0 12px 32px rgba(0,0,0,.4);
  transform:translateY(120%);transition:transform .4s var(--ease);
}
.sticky-cta.visible{display:flex;transform:translateY(0)}
.sticky-cta .phone{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ui);font-size:13px;color:var(--linen);text-decoration:none;
  font-variant-numeric:tabular-nums;
}
.sticky-cta .phone svg{width:16px;height:16px;color:var(--copper);fill:none;stroke:currentColor;stroke-width:1.4}
.sticky-cta .btn{height:44px;padding:0 22px;font-size:11px;background:var(--copper);color:var(--onyx);border-radius:999px}

.sticky-cta.hidden-in-form{transform:translateY(120%) !important}

@media (min-width: 1024px){
  .sticky-cta{display:none !important}
}

/* ── MODALS ───────────────────────────────────────────────────── */
.modal-backdrop{
  position:fixed;inset:0;z-index:100;
  background:rgba(7,13,12,.85);
  display:none;align-items:flex-end;justify-content:center;
  opacity:0;transition:opacity .25s var(--ease);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  overscroll-behavior:contain;
}
.modal-backdrop.open{display:flex}
.modal-backdrop.shown{opacity:1}
/* lead-form modal stacks above doctor modal when both open (e.g. CTA from doctor card) */
#leadModal{z-index:110}

.modal{
  position:relative;width:100%;max-height:100svh;
  background:var(--paper);color:var(--charcoal-forest);
  padding:24px;overflow-y:auto;overscroll-behavior:contain;
  transform:translateY(100%);transition:transform .32s var(--ease);
  -webkit-overflow-scrolling:touch;
}
.modal-backdrop.shown .modal{transform:translateY(0)}
/* ── DOCTOR MODAL ─────────────────────────────────────────────── */
.modal-doctor{
  padding:0;display:flex;flex-direction:column;
}
.doc-modal-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:24px}
.modal-doctor .close{
  position:sticky;top:16px;right:16px;align-self:flex-end;
  margin:16px 16px 0 auto;background:rgba(242,237,228,.9);border-radius:50%;
}
.doc-photo{
  width:100%;aspect-ratio:4/5;background:var(--linen);position:relative;min-width:0;overflow:hidden;
}
.doc-photo .ph{position:absolute;inset:0}
.doc-modal-info{padding:24px}
.doc-modal-info #dm-name{font-family:var(--display);font-weight:300;font-size:28px;line-height:1.1;margin-top:12px}
.doc-modal-info .doc-bio{font-family:var(--ui);font-size:15px;line-height:1.7;color:var(--charcoal-forest);margin-top:20px}
.doc-credits{margin-top:32px}
.doc-credits h4{font-family:var(--ui);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--copper);margin-bottom:12px}
.doc-credits ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.doc-credits li{font-family:var(--ui);font-size:14px;line-height:1.5;padding-left:14px;position:relative}
.doc-credits li::before{content:"·";position:absolute;left:0;color:var(--copper)}

/* грамоты / дипломы врача — галерея миниатюр */
.doc-awards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.doc-award{
  padding:0;border:1px solid rgba(11,31,26,.12);background:var(--linen);
  border-radius:4px;overflow:hidden;cursor:zoom-in;aspect-ratio:4/3;
  transition:border-color .2s ease,transform .2s ease;
}
.doc-award img{width:100%;height:100%;object-fit:cover;display:block}
.doc-award:hover{border-color:var(--copper);transform:translateY(-2px)}

/* lightbox для грамот */
.award-lightbox{
  position:fixed;inset:0;z-index:120;display:none;
  align-items:center;justify-content:center;padding:24px;
  background:rgba(7,13,12,.92);cursor:zoom-out;
}
.award-lightbox.open{display:flex}
.award-lightbox img{
  max-width:min(960px,92vw);max-height:88vh;
  object-fit:contain;border-radius:4px;box-shadow:0 24px 80px rgba(0,0,0,.5);
}
.award-lightbox-close{
  position:absolute;top:20px;right:24px;
  width:44px;height:44px;border:none;border-radius:50%;
  background:rgba(239,233,221,.12);color:var(--linen);
  font-size:18px;cursor:pointer;line-height:1;
  transition:background .2s ease;
}
.award-lightbox-close:hover{background:rgba(239,233,221,.24)}

.doc-modal-cta{
  position:sticky;bottom:0;left:0;right:0;
  padding:16px 24px calc(24px + env(safe-area-inset-bottom));
  background:var(--paper);
  border-top:1px solid var(--rule-light);
}
.doc-modal-cta::before{
  content:"";position:absolute;top:-32px;left:0;right:0;height:32px;
  background:linear-gradient(to top, var(--paper) 0%, rgba(242,237,228,0) 100%);
  pointer-events:none;
}
.doc-modal-cta .btn{width:100%}

@media (min-width: 1024px){
  .modal-doctor{display:block;max-width:960px}
  .doc-modal-content{overflow:visible;padding-bottom:0;display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:48px}
  .doc-photo{aspect-ratio:4/5}
  .doc-modal-info{padding:0}
  .doc-modal-cta{position:static;border-top:0;padding:0 48px 48px;background:transparent}
  .doc-modal-cta::before{display:none}
  .doc-modal-cta .btn{width:auto}
  .modal-doctor .close{position:absolute;top:16px;right:16px;background:transparent;margin:0}
}
.modal .close{
  position:sticky;top:0;align-self:flex-end;
  width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:0;font-size:20px;color:var(--charcoal-forest);cursor:pointer;
  -webkit-tap-highlight-color:transparent;margin-left:auto;
}
.modal .h2{font-family:var(--display);font-weight:300;font-size:28px;line-height:1.06;margin-top:8px}

/* success state */
.modal.success-state .lead-form{display:none}
.modal-success{display:none;text-align:center;padding:32px 0}
.modal.success-state .modal-success{display:block}
.modal-success .check-icon{
  width:64px;height:64px;border:1.5px solid var(--copper);border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;color:var(--copper);margin-bottom:24px;
}

@media (min-width: 1024px){
  .modal-backdrop{align-items:center}
  .modal{
    max-width:640px;max-height:90vh;border-radius:8px;
    transform:translateY(40px) scale(.96);
  }
  .modal-backdrop.shown .modal{transform:translateY(0) scale(1)}
  .modal .close{position:absolute;top:24px;right:24px}
  .modal .h2{font-size:48px}
}


/* ── reveal animation ───────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:translateY(0)}

/* ── HELPERS ────────────────────────────────────────────────── */
.mt-32{margin-top:32px}.mt-48{margin-top:48px}
.divider-thin{height:1px;background:var(--rule-dark);width:100%}
.divider-thin.light{background:var(--rule-light)}

/* ── MOBILE PREVIEW FRAME (when toggled via Tweaks) ─────────── */
body.preview-mobile{background:#1a1a1a}
body.preview-mobile #site,
body.preview-mobile main{max-width:375px;margin:32px auto;border:8px solid #1a1a1a;
  border-radius:36px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.6);background:var(--charcoal-forest);
  position:relative}
body.preview-mobile .header,body.preview-mobile .sticky-cta{position:absolute}
body.preview-mobile .hero{min-height:680px;padding-top:96px}
body.preview-mobile .hero-content{grid-template-columns:1fr}
body.preview-mobile .hero-meta{display:none}
body.preview-mobile .display{font-size:48px}
body.preview-mobile .h1{font-size:36px}
body.preview-mobile .h2{font-size:32px}
body.preview-mobile .container{padding:0 24px}
body.preview-mobile .section,
body.preview-mobile .page-hero,
body.preview-mobile .cat,
body.preview-mobile .manifest{padding:64px 0}
body.preview-mobile .page-hero{padding-top:120px}
body.preview-mobile .page-hero.fullbleed-photo{min-height:520px;padding-top:140px}
body.preview-mobile .doctors,
body.preview-mobile .doctors-page{grid-template-columns:repeat(2,1fr)}
body.preview-mobile .doctors .doc-card:nth-child(n+5){display:none}
body.preview-mobile .tech,
body.preview-mobile .numbers{grid-template-columns:1fr}
body.preview-mobile .case-grid,
body.preview-mobile .contact-grid,
body.preview-mobile .cat-grid,
body.preview-mobile .cat-head{grid-template-columns:1fr;gap:32px}
body.preview-mobile .cta-grid{grid-template-columns:1fr;gap:32px}
body.preview-mobile .section-head{flex-direction:column;align-items:flex-start;margin-bottom:40px}
body.preview-mobile .gallery{grid-template-columns:repeat(2,1fr)}
body.preview-mobile .gallery .g.tall,
body.preview-mobile .gallery .g.wide{grid-column:span 1;grid-row:span 1;aspect-ratio:1/1}
body.preview-mobile .footer-grid,
body.preview-mobile .req-grid{grid-template-columns:1fr}
body.preview-mobile .nav-main,body.preview-mobile .header-phone{display:none}
body.preview-mobile .burger{display:inline-flex}
body.preview-mobile .subnav-inner a{padding:16px 16px}
body.preview-mobile .eq-item{grid-template-columns:1fr;gap:20px}
body.preview-mobile .map-wrap{height:360px}
body.preview-mobile .certs{grid-template-columns:repeat(2,1fr)}
body.preview-mobile .acc summary{grid-template-columns:1fr auto;gap:14px}
body.preview-mobile .acc summary .n,
body.preview-mobile .acc summary .from{display:none}
body.preview-mobile .acc .acc-body{padding-left:0}
body.preview-mobile .acc .price-row{grid-template-columns:1fr;gap:6px;padding:14px 0}
body.preview-mobile .acc .price-row .pr-price{text-align:left}

/* ensure body doesn't scroll-lock under modal */
body.modal-open{overflow:hidden}


/* ===========================================================
   PAGE-LEVEL PATTERNS (subpages)
============================================================ */

/* ── PAGE HERO (compact, shared) ─────────────────────────── */
.page-hero{padding:200px 0 80px;position:relative;overflow:hidden}
.page-hero.dark{background:var(--charcoal-forest);color:var(--linen)}
.page-hero.light{background:var(--paper);color:var(--charcoal-forest)}
.page-hero.onyx{background:var(--onyx);color:var(--linen)}
.page-hero .container{position:relative;z-index:2}
.page-hero .eyebrow{margin-bottom:32px}
.page-hero .h1{max-width:980px}
.page-hero .h1 em{font-style:italic;font-weight:300}
.page-hero p.lead{margin-top:36px;max-width:620px;font-size:18px;line-height:1.6;
  color:rgba(239,233,221,.78)}
.page-hero.light p.lead{color:var(--muted)}
.page-hero .hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:80px;align-items:end}
.page-hero .hero-counter{font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  color:rgba(239,233,221,.5);text-align:left}
.page-hero.light .hero-counter{color:var(--muted)}
.page-hero .hero-counter strong{font-family:var(--display);font-size:80px;font-weight:300;
  display:block;color:var(--copper);letter-spacing:-.02em;line-height:1}
.page-hero.tall{padding:240px 0 120px}
.page-hero.fullbleed-photo{padding:0;min-height:80vh;display:flex;align-items:flex-end}
.page-hero.fullbleed-photo .hero-bg{position:absolute;inset:0;z-index:0}
.page-hero.fullbleed-photo .container{padding-bottom:80px;padding-top:200px;width:100%}

/* mobile default — compact padding, stacked hero grid */
.page-hero{padding:140px 0 60px}
.page-hero .hero-grid{grid-template-columns:1fr;gap:32px}
@media (min-width:1024px){
  .page-hero{padding:200px 0 80px}
  .page-hero .hero-grid{grid-template-columns:1.4fr 1fr;gap:80px}
  .page-hero .hero-counter{text-align:right}
}

/* ── STICKY SUBMENU (/uslugi) ────────────────────────────── */
.subnav{position:sticky;top:0;z-index:50;background:var(--paper);
  border-top:1px solid var(--rule-light);border-bottom:1px solid var(--rule-light)}
.subnav-inner{max-width:var(--container);margin:0 auto;padding:0 var(--pad-x);
  display:flex;gap:0;overflow-x:auto;scrollbar-width:none}
.subnav-inner::-webkit-scrollbar{display:none}
.subnav a{padding:20px 28px;font-size:13px;letter-spacing:.04em;font-weight:500;
  color:var(--charcoal-forest);opacity:.55;position:relative;white-space:nowrap;
  transition:opacity .2s}
.subnav a:hover{opacity:1}
.subnav a.active{opacity:1}
.subnav a.active::after{content:"";position:absolute;left:28px;right:28px;bottom:0;height:1px;
  background:var(--copper)}
.subnav a .n{font-family:var(--mono);font-size:10px;opacity:.7;margin-right:8px}
body.preview-mobile .subnav{position:relative}

/* ── USLUGI CATEGORY SECTION ────────────────────────────── */
.cat{padding:var(--section-y) 0;position:relative}
.cat.dark{background:var(--charcoal-forest);color:var(--linen)}
.cat.light{background:var(--paper);color:var(--charcoal-forest)}
.cat.onyx{background:var(--onyx);color:var(--linen)}
.cat-head{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-bottom:80px}
.cat-head .lead{max-width:560px}
.cat-head .eyebrow{margin-bottom:24px}
.cat-head .h2{font-size:clamp(40px,4.5vw,72px);line-height:1.02;letter-spacing:-.02em}
.cat-head .h2 em{font-style:italic}
.cat-head .num-big{font-family:var(--display);font-weight:300;font-size:clamp(80px,12vw,180px);
  line-height:.85;letter-spacing:-.03em;color:var(--copper);text-align:right;
  font-variant-numeric:tabular-nums}
.cat-head .num-big .of{font-size:.35em;color:inherit;opacity:.55;font-family:var(--ui);
  font-weight:500;letter-spacing:.08em;vertical-align:top;margin-left:8px}
.cat-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:start}
.cat-photo{aspect-ratio:4/5;position:relative}
.cat-photo .ph{position:absolute;inset:0}
.cat-photo > img,
.cat-illustration > img,
.hub-card .hub-photo > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* uslugi.html — per-card object-position so portrait macros (1122x1402) don't lose subjects in landscape slot */
.hub-card[href="implantaciya.html"] .hub-photo > img{object-position:center 22%}
.hub-card[href="estetika.html"]     .hub-photo > img{object-position:center 50%}
.hub-card[href="ortodontiya.html"]  .hub-photo > img{object-position:center 35%}
.hub-card[href="terapiya.html"]     .hub-photo > img{object-position:62% 50%}
@media (max-width:1023px){
  .hub-card[href="implantaciya.html"] .hub-photo > img{object-position:center 18%}
  .hub-card[href="estetika.html"]     .hub-photo > img{object-position:center 45%}
  .hub-card[href="ortodontiya.html"]  .hub-photo > img{object-position:center 30%}
  .hub-card[href="terapiya.html"]     .hub-photo > img{object-position:55% 45%}
}
.cat-list{display:flex;flex-direction:column;gap:0}
.cat-proc{padding:28px 0;border-bottom:1px solid currentColor;display:grid;
  grid-template-columns:1fr auto;gap:32px;align-items:start;
  border-bottom-color:var(--rule-dark)}
.cat.light .cat-proc{border-bottom-color:var(--rule-light)}
.cat-proc:first-child{border-top:1px solid currentColor;border-top-color:var(--rule-dark)}
.cat.light .cat-proc:first-child{border-top-color:var(--rule-light)}
.cat-proc .proc-info{display:flex;flex-direction:column;gap:8px}
.cat-proc .proc-name{font-family:var(--display);font-weight:300;font-size:24px;letter-spacing:-.005em;
  line-height:1.2}
.cat-proc .proc-name em{font-style:italic}
.cat-proc .proc-desc{font-size:13px;line-height:1.55;opacity:.65;max-width:420px}
.cat-proc .proc-meta{display:flex;gap:14px;font-family:var(--mono);font-size:11px;
  letter-spacing:.04em;opacity:.55;margin-top:4px}
.cat-proc .proc-price{font-family:var(--display);font-weight:300;font-size:24px;color:var(--copper);
  letter-spacing:-.005em;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}
.cat-proc .proc-price .from{font-family:var(--ui);font-weight:500;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:inherit;opacity:.7;display:block}
.cat-cta{margin-top:64px;display:flex;justify-content:space-between;align-items:center;
  gap:32px;flex-wrap:wrap;padding-top:32px;border-top:1px solid var(--rule-dark)}
.cat.light .cat-cta{border-top-color:var(--rule-light)}
.cat-cta .note{font-family:var(--display);font-style:italic;font-weight:300;font-size:22px;
  max-width:480px;line-height:1.4;opacity:.8}

/* mobile default — stacked */
.cat-head{grid-template-columns:1fr;gap:24px}
.cat-head .num-big{text-align:left}
.cat-grid{grid-template-columns:1fr;gap:48px}
@media (min-width:1024px){
  .cat-head{grid-template-columns:1fr 1fr;gap:80px}
  .cat-head .num-big{text-align:right}
  .cat-grid{grid-template-columns:1.1fr 1fr;gap:80px}
}

/* ── VRACHI PAGE ────────────────────────────────────────── */
.filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:56px}
.filter-chips button{padding:10px 18px;border-radius:999px;border:1px solid var(--rule-light);
  font-size:12px;font-weight:500;letter-spacing:.06em;background:transparent;color:var(--charcoal-forest);
  cursor:pointer;transition:all .2s}
.filter-chips button:hover{border-color:var(--charcoal-forest)}
.filter-chips button.active{background:var(--charcoal-forest);color:var(--linen);border-color:transparent}
.filter-chips button .count{margin-left:8px;opacity:.55;font-variant-numeric:tabular-nums}

/* mobile default — single column */
.doctors-page{display:grid;grid-template-columns:1fr;gap:32px 24px}
@media (min-width:1024px){
  .doctors-page{grid-template-columns:repeat(3,1fr)}
}

/* ── O-KLINIKE ─────────────────────────────────────────── */
.manifest{padding:var(--section-y) 0;background:var(--paper);color:var(--charcoal-forest)}
.manifest .container{max-width:780px}
.manifest .eyebrow{margin-bottom:32px}
.manifest .manifest-title{font-family:var(--display);font-weight:300;font-size:clamp(36px,4vw,56px);
  line-height:1.06;letter-spacing:-.018em;margin-bottom:48px}
.manifest .manifest-title em{font-style:italic}
.manifest p{font-size:19px;line-height:1.7;margin-bottom:24px;color:var(--ink)}
.manifest p:first-letter{font-family:var(--display);font-style:italic;font-weight:300;
  font-size:1em;color:var(--copper)}
.manifest .signoff{margin-top:48px;font-family:var(--display);font-style:italic;font-size:16px;
  color:var(--muted);display:flex;gap:14px;align-items:center}
.manifest .signoff::before{content:"";width:48px;height:1px;background:var(--copper)}

.numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-light);
  border:1px solid var(--rule-light)}
.num-card{padding:48px 32px;background:var(--paper);display:flex;flex-direction:column;gap:8px}
.num-card .num-val{font-family:var(--display);font-weight:300;font-size:clamp(48px,5vw,72px);
  line-height:1;letter-spacing:-.02em;color:var(--copper);font-variant-numeric:tabular-nums}
.num-card .num-val .small{font-size:.45em;color:var(--charcoal-forest);font-family:var(--ui);
  font-weight:500;letter-spacing:.06em;margin-left:6px}
.num-card .num-key{font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);font-weight:500;margin-top:12px}
.num-card .num-desc{font-size:13px;line-height:1.5;color:var(--muted);margin-top:8px}
/* mobile default — 2 columns, compact cards (large "2 640 пациентов" must fit) */
.numbers{grid-template-columns:repeat(2,1fr)}
.num-card{padding:24px 18px;min-width:0}
.num-card .num-val{font-size:clamp(30px,8vw,40px);overflow-wrap:normal;word-break:keep-all;hyphens:none}
.num-card .num-val .small{display:block;margin-left:0;margin-top:6px;font-size:.36em;letter-spacing:.04em}
.num-card .num-key{margin-top:8px;font-size:10px}
.num-card .num-desc{margin-top:6px;font-size:12px;line-height:1.45}
@media (min-width:1024px){
  .numbers{grid-template-columns:repeat(4,1fr)}
  .num-card{padding:48px 32px}
  .num-card .num-val{font-size:clamp(48px,5vw,72px);display:flex;flex-direction:column;align-items:flex-start;line-height:1}
  .num-card .num-val .small{display:block;margin-left:0;margin-top:10px;font-size:.32em;letter-spacing:.06em;line-height:1.1}
  .num-card .num-key{margin-top:12px;font-size:11px}
  .num-card .num-desc{margin-top:8px;font-size:13px;line-height:1.5}
}

/* numbers on a dark section (o-klinike) — copper figures, hairline cells */
.section.dark .numbers{background:var(--rule-dark);border-color:var(--rule-dark)}
.section.dark .num-card{background:var(--charcoal-forest)}
.section.dark .num-card .num-val .small{color:var(--linen)}
.section.dark .num-card .num-key{color:var(--copper)}
.section.dark .num-card .num-desc{color:rgba(239,233,221,.6)}

/* ── MISSION & VALUES (o-klinike) ─────────────────────────────── */
.mission-intro{max-width:420px;font-family:var(--ui);font-size:var(--body-l-size);
  line-height:1.7;color:rgba(239,233,221,.72)}

.mission-grid{display:grid;grid-template-columns:1fr;gap:1px;
  background:var(--rule-dark);border:1px solid var(--rule-dark)}
.mission-cell{padding:32px;background:var(--charcoal-forest);
  display:flex;flex-direction:column;gap:14px}
.mission-cell .m-num{font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--copper)}
.mission-cell h3{font-family:var(--display);font-weight:300;font-size:24px;
  line-height:1.12;letter-spacing:-.01em;color:var(--linen)}
.mission-cell h3 em{font-style:italic}
.mission-cell p{font-family:var(--ui);font-size:14px;line-height:1.6;
  color:rgba(239,233,221,.7)}

.values-head{margin-top:72px;margin-bottom:24px}
.values-grid{display:grid;grid-template-columns:1fr;gap:1px;
  background:var(--rule-dark);border:1px solid var(--rule-dark)}
.value-cell{padding:36px 32px;background:var(--charcoal-forest);
  display:flex;flex-direction:column;gap:14px;min-height:220px}
.value-cell .v-initial{font-family:var(--display);font-weight:300;font-style:italic;
  font-size:64px;line-height:.8;color:var(--copper)}
.value-cell h3{font-family:var(--display);font-weight:300;font-size:26px;
  line-height:1.05;color:var(--linen)}
.value-cell p{font-family:var(--ui);font-size:14px;line-height:1.6;
  color:rgba(239,233,221,.7);margin-top:auto}
.values-coda{margin-top:24px;font-family:var(--mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

@media (min-width:1024px){
  .mission-grid{grid-template-columns:repeat(2,1fr)}
  .mission-cell{padding:40px}
  .mission-cell h3{font-size:28px}
  .values-grid{grid-template-columns:repeat(3,1fr)}
  .value-cell{padding:48px 40px}
}

.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.gallery .g{position:relative;aspect-ratio:1/1}
.gallery .g.wide{grid-column:span 2;aspect-ratio:2/1}
.gallery .g.tall{grid-row:span 2;aspect-ratio:1/2}
.gallery .g .ph{position:absolute;inset:0}
/* mobile default — 3 columns, simplified spans */
.gallery{grid-template-columns:repeat(3,1fr)}
.gallery .g.tall{grid-row:span 1;aspect-ratio:1/1}
.gallery .g.wide{grid-column:span 2}
@media (min-width:1024px){
  .gallery{grid-template-columns:repeat(6,1fr)}
  .gallery .g.tall{grid-row:span 2;aspect-ratio:1/2}
}

.equipment{display:flex;flex-direction:column;gap:0}
.eq-item{display:grid;grid-template-columns:240px 1fr auto;gap:48px;align-items:start;
  padding:48px 0;border-bottom:1px solid var(--rule-dark)}
.eq-item:first-child{border-top:1px solid var(--rule-dark)}
.eq-photo{aspect-ratio:4/3;position:relative}
.eq-info .eq-tag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--copper);
  text-transform:uppercase;margin-bottom:12px}
.eq-info .eq-name{font-family:var(--display);font-weight:300;font-size:36px;letter-spacing:-.015em;
  line-height:1.05}
.eq-info .eq-name em{font-style:italic}
.eq-info .eq-desc{margin-top:18px;font-size:14px;line-height:1.6;opacity:.75;max-width:520px}
.eq-meta{text-align:right;font-family:var(--mono);font-size:11px;letter-spacing:.04em;
  color:rgba(239,233,221,.55);min-width:140px}
.eq-meta strong{display:block;color:var(--copper);font-weight:400;font-family:var(--display);
  font-size:18px;letter-spacing:-.005em;margin-bottom:6px}
/* mobile default — stacked */
.eq-item{grid-template-columns:1fr;gap:24px}
.eq-meta{text-align:left}
@media (min-width:1024px){
  .eq-item{grid-template-columns:240px 1fr auto;gap:48px}
  .eq-meta{text-align:right}
}

.certs{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.certs .ph{aspect-ratio:3/4}
/* mobile default — 3 columns */
.certs{grid-template-columns:repeat(3,1fr)}
@media (min-width:1024px){
  .certs{grid-template-columns:repeat(5,1fr)}
}

/* ── CENY (accordion) ─────────────────────────────────── */
.price-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;
  flex-wrap:wrap;margin-bottom:64px}
.price-head .price-note{max-width:380px;font-size:14px;line-height:1.6;color:var(--muted)}

.acc{border-top:1px solid var(--rule-light)}
.acc details{border-bottom:1px solid var(--rule-light)}
.acc summary{padding:32px 0;display:grid;grid-template-columns:80px 1fr auto auto;gap:32px;
  align-items:center;cursor:pointer;list-style:none;font-family:inherit}
.acc summary::-webkit-details-marker{display:none}
.acc summary .n{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--copper)}
.acc summary .title{font-family:var(--display);font-weight:300;font-size:clamp(28px,3vw,40px);
  letter-spacing:-.015em;line-height:1.1}
.acc summary .title em{font-style:italic}
.acc summary .from{font-family:var(--ui);font-size:12px;letter-spacing:.06em;color:var(--muted);
  text-transform:uppercase;font-weight:500}
.acc summary .arrow{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--rule-light);border-radius:50%;transition:transform .3s var(--ease);
  color:var(--copper)}
.acc summary .arrow::after{content:"+";font-family:var(--display);font-weight:300;font-size:18px;
  line-height:1}
.acc details[open] summary .arrow{transform:rotate(45deg)}

.acc .acc-body{padding:0 0 40px 80px}
.acc .price-row{display:grid;grid-template-columns:1fr 160px 120px;gap:32px;
  padding:18px 0;border-top:1px dashed var(--rule-light);align-items:baseline}
.acc .price-row:first-child{border-top:0}
.acc .price-row .pr-name{font-size:15px;color:var(--charcoal-forest)}
.acc .price-row .pr-name .sub{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.acc .price-row .pr-time{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.04em}
.acc .price-row .pr-price{font-family:var(--display);font-weight:300;font-size:22px;color:var(--copper);
  letter-spacing:-.005em;text-align:right;font-variant-numeric:tabular-nums}
.acc .price-row .pr-price .from{font-family:var(--ui);font-weight:500;font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;color:inherit;opacity:.7;display:block;text-align:right}
/* mobile default — simplified accordion */
.acc summary{grid-template-columns:1fr auto;gap:14px}
.acc summary .n,.acc summary .from{display:none}
.acc .acc-body{padding-left:0}
.acc .price-row{grid-template-columns:1fr;gap:6px;padding:14px 0}
.acc .price-row .pr-time{order:2}
.acc .price-row .pr-price{text-align:left}
@media (min-width:1024px){
  .acc summary{grid-template-columns:80px 1fr auto auto;gap:32px}
  .acc summary .n{display:block}
  .acc summary .from{display:block}
  .acc .acc-body{padding-left:80px}
  .acc .price-row{grid-template-columns:1fr 160px 120px;gap:32px;padding:18px 0}
  .acc .price-row .pr-time{order:0}
  .acc .price-row .pr-price{text-align:right}
}

/* ── KONTAKTY ─────────────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.contact-block{display:flex;flex-direction:column;gap:32px}
.contact-row{display:flex;flex-direction:column;gap:6px}
.contact-row .key{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted)}
.contact-row .val{font-family:var(--display);font-weight:300;font-size:28px;letter-spacing:-.005em;
  line-height:1.2}
.contact-row .val em{font-style:italic}
.contact-row .val a{transition:color .2s}
.contact-row .val a:hover{color:var(--copper)}
.contact-row.compact .val{font-family:var(--ui);font-size:16px;font-weight:500}

.messengers{display:flex;gap:10px;margin-top:8px}
.messengers a{padding:10px 18px;border-radius:999px;border:1px solid var(--rule-light);
  display:inline-flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.04em;
  transition:all .2s}
.messengers a:hover{border-color:var(--copper);color:var(--copper)}
.messengers a svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none}

.map-wrap{position:relative;height:560px;background:#0a1614;overflow:hidden}
.map-wrap .ph{position:absolute;inset:0;
  background-color:#0a1614;
  background-image:
    repeating-linear-gradient(45deg,transparent 0,transparent 80px,rgba(181,122,74,.06) 80px,rgba(181,122,74,.06) 81px),
    repeating-linear-gradient(-45deg,transparent 0,transparent 120px,rgba(239,233,221,.04) 120px,rgba(239,233,221,.04) 121px)}
.map-pin{position:absolute;top:50%;left:50%;transform:translate(-50%,-100%);
  display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2}
.map-pin .pin{width:18px;height:18px;border-radius:50%;background:var(--copper);
  box-shadow:0 0 0 6px rgba(181,122,74,.2),0 0 0 14px rgba(181,122,74,.1);
  animation:pulse 2.4s var(--ease) infinite}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 6px rgba(181,122,74,.2),0 0 0 14px rgba(181,122,74,.1)}
  50%{box-shadow:0 0 0 10px rgba(181,122,74,.3),0 0 0 22px rgba(181,122,74,.05)}
}
.map-pin .pin-card{background:var(--charcoal-forest);padding:14px 18px;border:1px solid var(--rule-dark);
  font-size:12px;letter-spacing:.04em;color:var(--linen);white-space:nowrap;line-height:1.5;
  text-align:center}
.map-pin .pin-card strong{font-family:var(--display);font-weight:300;font-size:16px;
  font-style:italic;display:block;color:var(--copper)}
.map-controls{position:absolute;top:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:3}
.map-controls button{width:36px;height:36px;background:var(--charcoal-forest);border:1px solid var(--rule-dark);
  color:var(--linen);font-size:16px;cursor:pointer;transition:background-color .2s}
.map-controls button:hover{background:var(--copper)}

.requisites{background:var(--onyx);padding:48px 0;color:rgba(239,233,221,.6);font-size:13px}
.requisites .req-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.requisites .req-grid .key{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--copper);
  text-transform:uppercase;margin-bottom:6px}
.requisites .req-grid .val{font-family:var(--ui);font-size:13px;color:var(--linen);line-height:1.5}
/* mobile default — stacked contact, 2-col requisites */
.contact-grid{grid-template-columns:1fr;gap:48px}
.requisites .req-grid{grid-template-columns:repeat(2,1fr)}
@media (min-width:1024px){
  .contact-grid{grid-template-columns:1fr 1fr;gap:80px}
  .requisites .req-grid{grid-template-columns:repeat(4,1fr)}
}

/* small util */
.section-tight{padding:80px 0}


/* ===========================================================
   USLUGI HUB + CATEGORY DETAIL PATTERNS
============================================================ */

/* ── HUB CARDS (4 large clickable rows) ───────────────── */
.hub{display:flex;flex-direction:column}
.hub-card{position:relative;display:grid;grid-template-columns:1fr 1.1fr;gap:0;
  overflow:hidden;color:inherit;
  transition:background-color .5s var(--ease),color .5s var(--ease)}
.hub .hub-card + .hub-card,
.hub .hub-card.dark + .hub-card,
.hub .hub-card + .hub-card.dark{border-top:0}
.hub-card.dark{background:var(--charcoal-forest);color:var(--linen);border-color:var(--rule-dark)}
.hub-card.light{background:var(--paper);color:var(--charcoal-forest)}
.hub-card .hub-text{padding:80px 64px 64px;display:flex;flex-direction:column;gap:24px;
  justify-content:center;min-height:520px}
.hub-card .hub-num{font-family:var(--mono);font-size:11px;letter-spacing:.16em;
  color:var(--copper);text-transform:uppercase;margin-bottom:8px}
.hub-card .hub-title{font-family:var(--display);font-weight:300;
  font-size:clamp(40px,4.5vw,72px);line-height:1.02;letter-spacing:-.02em}
.hub-card .hub-title em{font-style:italic}
.hub-card .hub-desc{font-size:16px;line-height:1.6;max-width:480px;opacity:.78}
.hub-card .hub-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.hub-card .hub-tags .tag{padding:8px 14px;border:1px solid currentColor;border-color:rgba(11,31,26,.15);
  border-radius:999px;font-size:12px;letter-spacing:.04em;font-weight:500;opacity:.78}
.hub-card.dark .hub-tags .tag{border-color:rgba(239,233,221,.18)}
.hub-card .hub-foot{display:flex;justify-content:space-between;align-items:flex-end;
  gap:24px;margin-top:24px;padding-top:24px;border-top:1px solid currentColor;
  border-top-color:rgba(11,31,26,.1)}
.hub-card.dark .hub-foot{border-top-color:rgba(239,233,221,.15)}
.hub-card .hub-from{display:flex;flex-direction:column;gap:4px}
.hub-card .hub-from .key{font-family:var(--ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:500;opacity:.55}
.hub-card .hub-from .val{font-family:var(--display);font-weight:300;font-size:28px;
  letter-spacing:-.01em;color:var(--copper);line-height:1;font-variant-numeric:tabular-nums}
.hub-card .hub-cta{display:inline-flex;align-items:center;gap:14px;font-family:var(--ui);
  font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--copper);
  transition:gap .25s var(--ease)}
.hub-card:hover .hub-cta{gap:20px}
.hub-card .hub-cta .arr{display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;border:1px solid currentColor;font-weight:300;font-size:18px;
  font-family:var(--display);transition:background-color .3s var(--ease),color .3s var(--ease)}
.hub-card:hover .hub-cta .arr{background:var(--copper);color:var(--onyx);border-color:var(--copper)}
.hub-card .hub-photo{position:relative;min-height:520px}
.hub-card .hub-photo .ph{position:absolute;inset:0;border:0}
.hub-card.right-photo{grid-template-columns:1fr 1.1fr}
.hub-card.left-photo{grid-template-columns:1.1fr 1fr}
.hub-card.left-photo .hub-text{order:2;padding-left:80px;padding-right:64px}
.hub-card.left-photo .hub-photo{order:1}

/* mobile default — stacked hub cards */
.hub-card,.hub-card.left-photo,.hub-card.right-photo{grid-template-columns:1fr}
.hub-card .hub-text,.hub-card.left-photo .hub-text{order:2;padding:48px 24px;min-height:0;min-width:0}
.hub-card .hub-photo,.hub-card.left-photo .hub-photo{order:1;min-height:0;min-width:0;width:100%;aspect-ratio:4/3}
@media (min-width:1024px){
  .hub-card.right-photo{grid-template-columns:1fr 1.1fr}
  .hub-card.left-photo{grid-template-columns:1.1fr 1fr}
  .hub-card .hub-text{order:0;padding:80px 64px 64px;min-height:520px}
  .hub-card.left-photo .hub-text{order:2;padding-left:80px;padding-right:64px;min-height:520px}
  .hub-card .hub-photo,.hub-card.left-photo .hub-photo{order:0;min-height:520px;aspect-ratio:auto}
  .hub-card.left-photo .hub-photo{order:1}
}

/* ── DETAIL PAGE: breadcrumb + sticky CTA strip ──────── */
.breadcrumb{padding:140px 0 32px;background:var(--paper);color:var(--charcoal-forest)}
.breadcrumb .container{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.breadcrumb a{color:inherit;transition:color .2s}
.breadcrumb a:hover{color:var(--copper)}
.breadcrumb .sep{opacity:.5}
.breadcrumb .current{color:var(--charcoal-forest)}

.detail-hero{padding:48px 0 120px;background:var(--paper);color:var(--charcoal-forest);position:relative}
.detail-hero .container{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end}
.detail-hero .num-big{font-family:var(--display);font-weight:300;font-size:clamp(120px,18vw,260px);
  line-height:.85;letter-spacing:-.03em;color:var(--copper);font-variant-numeric:tabular-nums;
  text-align:right}
.detail-hero .num-big .of{font-size:.18em;color:var(--muted);font-family:var(--ui);
  font-weight:500;letter-spacing:.08em;vertical-align:top;margin-left:8px;display:inline-block}
.detail-hero .eyebrow{margin-bottom:24px}
.detail-hero .h1{font-size:clamp(48px,6vw,88px);max-width:680px}
.detail-hero .h1 em{font-style:italic}
.detail-hero p.lead{margin-top:32px;max-width:520px;font-size:18px;line-height:1.6;color:var(--muted)}
/* mobile default — stacked detail hero */
.detail-hero .container{grid-template-columns:1fr;gap:32px}
.detail-hero .num-big{text-align:left;font-size:120px}
@media (min-width:1024px){
  .detail-hero .container{grid-template-columns:1fr 1fr;gap:80px}
  .detail-hero .num-big{text-align:right;font-size:clamp(120px,18vw,260px)}
}

/* ── DETAIL: process / steps strip ──────────────────── */
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-dark);
  border:1px solid var(--rule-dark)}
.process-step{background:var(--charcoal-forest);padding:40px 32px;display:flex;flex-direction:column;
  gap:18px;min-height:240px}
.process-step .step-n{font-family:var(--display);font-weight:300;font-size:48px;letter-spacing:-.02em;
  line-height:1;color:var(--copper);font-variant-numeric:tabular-nums}
.process-step .step-name{font-family:var(--display);font-weight:300;font-size:22px;line-height:1.15;
  letter-spacing:-.005em}
.process-step .step-name em{font-style:italic}
.process-step .step-desc{font-size:13px;line-height:1.55;color:rgba(239,233,221,.7);margin-top:auto}

/* ── DETAIL: key figures strip ─────────────────────── */
.impl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:48px;align-items:start}
.impl-stat-num{font-family:var(--display);font-weight:300;
  font-size:clamp(56px,7.5vw,104px);line-height:.95;letter-spacing:-.025em;
  color:var(--charcoal-forest);font-variant-numeric:tabular-nums;
  display:flex;align-items:baseline;gap:6px}
.impl-stat-num em{font-style:italic;font-weight:300;color:var(--copper)}
.impl-stat-num .impl-stat-unit{font-size:.28em;font-family:var(--ui);font-weight:500;
  letter-spacing:.04em;color:var(--muted);text-transform:none}
.impl-stat-key{margin-top:14px;font-family:var(--mono);font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted);max-width:200px;line-height:1.5}
/* mobile default — 2 columns */
.impl-stats{grid-template-columns:repeat(2,1fr);gap:32px}
@media (min-width:1024px){
  .impl-stats{grid-template-columns:repeat(4,1fr);gap:48px}
}

/* ── DETAIL: full-bleed photo divider ───────────────── */
.impl-divider{position:relative;width:100%;height:clamp(360px,55vh,560px);
  overflow:hidden;background:var(--onyx);display:flex;align-items:center}
.impl-divider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:brightness(.62) saturate(.95);z-index:1}
.impl-divider::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(7,13,12,.65) 0%,rgba(7,13,12,.35) 50%,rgba(7,13,12,.55) 100%)}
.impl-divider .container{position:relative;z-index:2;color:var(--linen);width:100%}
.impl-divider .display-quote{font-family:var(--display);font-weight:300;
  font-size:clamp(36px,5.2vw,80px);line-height:1.04;letter-spacing:-.02em;
  margin-top:24px;max-width:820px}
.impl-divider .display-quote em{font-style:italic;color:var(--copper)}

/* ── DETAIL: tech showcase row ──────────────────────── */
.impl-tech-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--rule-dark);border:1px solid var(--rule-dark);margin-top:80px}
.impl-tech{background:var(--charcoal-forest);padding:40px 32px;
  display:flex;flex-direction:column;gap:14px;min-height:260px}
.impl-tech .tech-icon{color:var(--copper);width:36px;height:36px}
.impl-tech .tech-icon svg{width:100%;height:100%;stroke:currentColor;
  stroke-width:1.5;fill:none}
.impl-tech .tech-tag{font-family:var(--mono);font-size:11px;letter-spacing:.08em;
  color:var(--copper);text-transform:uppercase;margin-top:8px}
.impl-tech .tech-name{font-family:var(--display);font-weight:300;font-size:26px;
  line-height:1.15;margin-top:2px;letter-spacing:-.005em}
.impl-tech .tech-name em{font-style:italic;color:var(--sand)}
.impl-tech .tech-desc{margin-top:auto;font-size:14px;line-height:1.6;
  color:rgba(239,233,221,.72)}
/* mobile default — stacked */
.impl-tech-row{grid-template-columns:1fr;margin-top:48px}
@media (min-width:1024px){
  .impl-tech-row{grid-template-columns:repeat(3,1fr);margin-top:80px}
}

/* ── DETAIL: FAQ accordion ──────────────────────────── */
.impl-faq{display:grid;border-top:1px solid var(--rule-dark);
  border-bottom:1px solid var(--rule-dark)}
.impl-faq details{border-bottom:1px solid var(--rule-dark)}
.impl-faq details:last-child{border-bottom:0}
.impl-faq summary{padding:32px 0;cursor:pointer;list-style:none;
  display:grid;grid-template-columns:80px 1fr 40px;gap:32px;align-items:center;
  font-family:var(--display);font-weight:300;font-size:clamp(22px,2.4vw,34px);
  line-height:1.15;letter-spacing:-.01em;color:var(--linen);
  transition:color .25s var(--ease)}
.impl-faq summary::-webkit-details-marker{display:none}
.impl-faq summary:hover{color:var(--sand)}
.impl-faq summary em{font-style:italic;color:var(--copper)}
.impl-faq summary .faq-num{font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  color:var(--copper);text-transform:uppercase}
.impl-faq summary .faq-arrow{font-family:var(--ui);font-size:28px;font-weight:300;
  color:var(--copper);text-align:right;transition:transform .3s var(--ease);
  line-height:1}
.impl-faq details[open] summary .faq-arrow{transform:rotate(45deg)}
.impl-faq .faq-answer{padding:0 0 36px 112px;font-size:16px;line-height:1.65;
  color:rgba(239,233,221,.78);max-width:840px}
/* mobile default — compact FAQ */
.impl-faq summary{grid-template-columns:60px 1fr 30px;gap:16px;
  font-size:20px;padding:24px 0}
.impl-faq .faq-answer{padding:0 0 28px 76px;font-size:15px}
@media (min-width:1024px){
  .impl-faq summary{grid-template-columns:80px 1fr 40px;gap:32px;
    font-size:clamp(22px,2.4vw,34px);padding:32px 0}
  .impl-faq .faq-answer{padding:0 0 36px 112px;font-size:16px}
}

/* mobile default — single column */
.process{grid-template-columns:1fr}
@media (min-width:1024px){
  .process{grid-template-columns:repeat(4,1fr)}
}

/* ── DETAIL: doctor inline card ──────────────────── */
.doc-inline{display:grid;grid-template-columns:280px 1fr;gap:48px;align-items:center;
  padding:48px;border:1px solid var(--rule-light)}
.doc-inline .doc-photo-mini{aspect-ratio:4/5;position:relative;overflow:hidden;background:var(--paper)}
.doc-inline .doc-photo-mini .ph{position:absolute;inset:0}
.doc-inline .doc-photo-mini > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.doc-inline .doc-info .eyebrow{margin-bottom:14px}
.doc-inline .doc-info .name{font-family:var(--display);font-weight:300;font-size:36px;letter-spacing:-.015em;
  line-height:1.05}
.doc-inline .doc-info .name em{font-style:italic}
.doc-inline .doc-info .quote{margin-top:24px;font-family:var(--display);font-style:italic;font-weight:300;
  font-size:20px;line-height:1.45;color:var(--muted);max-width:560px;padding-left:24px;
  border-left:2px solid var(--copper)}
.doc-inline .doc-info .doc-stats{display:flex;gap:48px;margin-top:24px;flex-wrap:wrap}
.doc-inline .doc-info .doc-stats .stat{display:flex;flex-direction:column;gap:4px}
.doc-inline .doc-info .doc-stats .stat .v{font-family:var(--display);font-weight:300;font-size:28px;
  color:var(--copper);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.doc-inline .doc-info .doc-stats .stat .k{font-family:var(--mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}
/* mobile default — stacked */
.doc-inline{grid-template-columns:1fr;padding:32px;gap:24px}
@media (min-width:1024px){
  .doc-inline{grid-template-columns:280px 1fr;padding:48px;gap:48px}
}

/* ── DETAIL: pagination between directions ───────── */
.dir-pager{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule-light);
  border-top:1px solid var(--rule-light);border-bottom:1px solid var(--rule-light)}
.dir-pager a{background:var(--paper);padding:48px;display:flex;flex-direction:column;gap:14px;
  color:var(--charcoal-forest);transition:background-color .3s,color .3s;min-height:200px;
  justify-content:center}
.dir-pager a:hover{background:var(--charcoal-forest);color:var(--linen)}
.dir-pager a:hover .pager-arr{color:var(--copper)}
.dir-pager a.next{text-align:right;align-items:flex-end}
.dir-pager .pager-key{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);transition:color .3s}
.dir-pager a:hover .pager-key{color:rgba(239,233,221,.55)}
.dir-pager .pager-title{font-family:var(--display);font-weight:300;font-size:36px;letter-spacing:-.015em;
  line-height:1.1}
.dir-pager .pager-title em{font-style:italic}
.dir-pager .pager-arr{font-family:var(--display);font-weight:300;font-size:24px;color:var(--copper);
  transition:color .3s}
/* mobile default — stacked pager */
.dir-pager{grid-template-columns:1fr}
.dir-pager a{padding:32px}
.dir-pager a.next{text-align:left;align-items:flex-start}
@media (min-width:1024px){
  .dir-pager{grid-template-columns:1fr 1fr}
  .dir-pager a{padding:48px}
  .dir-pager a.next{text-align:right;align-items:flex-end}
}

/* mobile-preview overrides for new patterns */
body.preview-mobile .hub-card,
body.preview-mobile .hub-card.left-photo,
body.preview-mobile .hub-card.right-photo{grid-template-columns:1fr}
body.preview-mobile .hub-card .hub-text,
body.preview-mobile .hub-card.left-photo .hub-text{padding:32px 24px;min-height:0;order:2}
body.preview-mobile .hub-card .hub-photo{order:1;min-height:280px;aspect-ratio:16/10}
body.preview-mobile .process{grid-template-columns:1fr}
body.preview-mobile .doc-inline{grid-template-columns:1fr;padding:24px;gap:20px}
body.preview-mobile .dir-pager{grid-template-columns:1fr}
body.preview-mobile .detail-hero .container{grid-template-columns:1fr;gap:24px}
body.preview-mobile .detail-hero .num-big{text-align:left;font-size:96px}
body.preview-mobile .breadcrumb{padding-top:96px}

/* ── REDUCED MOTION ─────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  .hero-bg > div[style*="background:url"]{transform:none !important}
  .reveal{opacity:1;transform:none}
}

/* ── TOUCH HOVER MAPPING (hover-only mapped to :active on touch) ── */
@media (hover: none){
  .btn-primary:hover{background:var(--copper);transform:none}
  .btn-primary:active{background:var(--sand);transform:translateY(0)}
  .btn-ghost:hover{transform:none}
}

/* -- CATEGORY NAV (sticky podmenu na /uslugi) ------------------- */
.cat-nav{
  position:sticky;top:var(--header-stuck-h);z-index:50;
  background:var(--paper);
  border-bottom:1px solid var(--rule-light);
}
.cat-nav-scroller{
  display:flex;gap:8px;overflow-x:auto;
  padding:12px var(--pad-x);scroll-padding-inline:var(--pad-x);
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.cat-nav-scroller::-webkit-scrollbar{display:none}
.cat-nav-scroller a{
  flex:0 0 auto;
  font-family:var(--ui);font-size:13px;font-weight:500;letter-spacing:.04em;color:var(--charcoal-forest);
  padding:8px 4px;position:relative;text-decoration:none;
  white-space:nowrap;opacity:.7;transition:opacity .25s var(--ease);
}
.cat-nav-scroller a.active{opacity:1}
.cat-nav-scroller a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--copper);
}

@media (min-width: 1024px){
  .cat-nav-scroller{justify-content:center;gap:24px;padding:16px var(--pad-x)}
  .cat-nav-scroller a{font-size:14px;padding:10px 0}
}

/* ── DOCTORS PAGE (filter + grid) ─────────────────────────────── */
.doc-filter{
  position:sticky;top:var(--header-stuck-h);z-index:50;
  background:var(--paper);border-bottom:1px solid var(--rule-light);
}
.doc-filter::after{
  content:"";position:absolute;top:0;bottom:0;right:0;width:48px;
  background:linear-gradient(to right, rgba(242,237,228,0), var(--paper) 80%);
  pointer-events:none;
}
.doc-filter-scroller{
  display:flex;gap:8px;overflow-x:auto;padding:12px var(--pad-x);
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.doc-filter-scroller::-webkit-scrollbar{display:none}
.chip{
  flex:0 0 auto;display:inline-flex;align-items:center;
  height:36px;padding:0 16px;border-radius:999px;
  background:transparent;border:1px solid var(--rule-light);
  font-family:var(--ui);font-size:13px;color:var(--charcoal-forest);cursor:pointer;
  white-space:nowrap;-webkit-tap-highlight-color:transparent;
}
.chip.active{background:var(--charcoal-forest);color:var(--linen);border-color:transparent}

.doctors-page-section{padding:0}
.doctors-page{display:grid;grid-template-columns:1fr;gap:32px;margin:32px 0}
.doctor-card{display:flex;flex-direction:column;gap:12px;cursor:pointer}
.doctor-portrait{aspect-ratio:4/5;background:var(--linen);position:relative;overflow:hidden}
.doctor-portrait .ph{position:absolute;inset:0}
.doctor-portrait > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.doctor-name{font-family:var(--display);font-weight:300;font-size:var(--h2-size);line-height:1.1;color:var(--linen)}
.doctor-patronymic{font-family:var(--display);font-style:italic;font-weight:300;font-size:18px;color:rgba(239,233,221,.55);margin-top:2px}
.doctor-spec{font-family:var(--ui);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--copper);margin-top:8px}
.doctor-exp{font-family:var(--ui);font-size:13px;color:rgba(239,233,221,.7);margin-top:4px}

.doctor-card.is-hidden{display:none}

@media (min-width: 1024px){
  .doc-filter::after{display:none}
  .doc-filter-scroller{justify-content:flex-start;gap:12px}
  .doctors-page{grid-template-columns:repeat(3,1fr);gap:48px;margin:48px 0}
  .doctor-name{font-size:32px}
}

/* ── INTERIOR SCROLLER ────────────────────────────────────────── */
.interior-scroller{
  display:flex;overflow-x:auto;max-width:100vw;
  scroll-snap-type:x mandatory;
  gap:8px;padding-inline:20px;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.interior-scroller::-webkit-scrollbar{display:none}
.interior-photo{
  flex:0 0 80%;min-width:0;scroll-snap-align:start;
  background:none;border:0;padding:0;cursor:pointer;
}
.interior-photo .ph{position:relative;width:100%}
.interior-photo > img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}

@media (min-width: 1024px){
  .interior-scroller{display:block;column-count:4;column-gap:16px;padding:0 var(--pad-x);
    max-width:var(--container);margin:0 auto;overflow:visible}
  .interior-photo{display:block;width:100%;flex:none;scroll-snap-align:none;
    break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 16px}
  .interior-photo > img{aspect-ratio:auto;height:auto}
}

/* ── LIGHTBOX ─────────────────────────────────────────────────── */
.lightbox{
  position:fixed;inset:0;z-index:100;
  background:rgba(7,13,12,.95);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  padding:24px;
  opacity:0;pointer-events:none;
  transition:opacity .2s ease-out;
  touch-action:pan-x;
}
.lightbox.is-open{opacity:1;pointer-events:auto}
.lightbox-close{
  position:absolute;top:16px;right:16px;
  width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:0;color:var(--linen);font-size:24px;cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.lightbox-counter{
  position:absolute;top:24px;left:50%;transform:translateX(-50%);
  font-family:var(--ui);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--copper);
}
.lightbox-stage{
  width:100%;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .25s var(--ease)}
.lightbox-caption{font-family:var(--ui);font-size:13px;color:rgba(239,233,221,.78);text-align:center;max-width:48ch}

/* ── PRICES ACCORDION ─────────────────────────────────────────── */
.prices-download{margin-bottom:32px;width:100%}
.accordion{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rule-light)}
.acc-item{border-bottom:1px solid var(--rule-light)}
.acc-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  width:100%;padding:20px 0;background:transparent;border:0;cursor:pointer;
  font-family:var(--display);font-weight:300;font-size:22px;color:var(--charcoal-forest);
  text-align:left;-webkit-tap-highlight-color:transparent;
}
.acc-chevron{transition:transform .3s var(--ease);color:var(--copper)}
.acc-head[aria-expanded="true"] .acc-chevron{transform:rotate(180deg)}
.acc-body{
  max-height:0;overflow:hidden;
  transition:max-height .32s ease-out;
}
.acc-table{width:100%;border-collapse:collapse;padding-bottom:24px}
.acc-table td{padding:14px 0;border-top:1px solid rgba(11,31,26,.08);vertical-align:top}
.acc-table tr:first-child td{border-top:0}
.acc-table .proc-name{font-family:var(--ui);font-weight:500;font-size:14px;line-height:1.4;padding-right:16px}
.acc-table .proc-price{font-family:var(--display);font-weight:300;font-size:16px;color:var(--copper);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.acc-table .proc-price.req{font-family:var(--ui);font-weight:500;font-size:13px;color:var(--muted);white-space:nowrap}
.acc-table tr.proc-group td{padding:28px 0 6px;border-top:0;font-family:var(--ui);font-weight:600;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--copper)}
.acc-table tr.proc-group:first-child td{padding-top:4px}
.acc-table tr.proc-group + tr td{border-top:0}

.prices-note{font-family:var(--ui);font-size:12px;color:var(--muted);margin-top:32px;text-align:center}
.prices-cta{width:100%;margin-top:16px}

@media (min-width: 1024px){
  .prices-download{width:auto;float:right;margin-top:-80px}
  .accordion{border-top:0}
  .acc-head{font-size:32px;padding:32px 0}
  .acc-table .proc-name{font-size:16px}
  .acc-table .proc-price{font-size:18px}
  .prices-cta{width:auto}
}

/* ── PRIVACY PAGE ─────────────────────────────────────────────── */
.privacy-page{
  background:var(--paper);color:var(--charcoal-forest);
  padding-top:calc(var(--header-h) + 32px);padding-bottom:64px;
}
.privacy-page .container{padding:0 var(--pad-x)}
.privacy-head{margin-bottom:48px}
.privacy-head .h1{font-size:var(--h1-size);font-weight:300;font-family:var(--display);line-height:1.04;margin-top:16px}
.privacy-meta{font-family:var(--ui);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:16px}

.privacy-content{font-family:var(--ui);font-size:15px;line-height:1.7;color:var(--charcoal-forest)}
.privacy-content h2{font-family:var(--display);font-weight:300;font-size:24px;line-height:1.15;margin:32px 0 12px}
.privacy-content h2:first-child{margin-top:0}
.privacy-content p{margin-bottom:16px}
.privacy-content ul{list-style:none;padding:0;margin-bottom:16px}
.privacy-content ul li{padding-left:18px;position:relative;margin-bottom:8px}
.privacy-content ul li::before{content:"·";position:absolute;left:4px;color:var(--copper);font-weight:700}
.privacy-content a{color:var(--copper);text-decoration:underline;text-underline-offset:4px}

@media (min-width: 1024px){
  .privacy-page{padding-top:calc(var(--header-h) + 80px);padding-bottom:120px}
  .privacy-page .container{max-width:720px}
  .privacy-head{margin-bottom:64px}
  .privacy-content h2{font-size:28px;margin-top:48px}
}

/* ── CATEGORY SECTION (uslugi inner) ──────────────────────────── */
.cat-section{padding:var(--section-y) 0;scroll-margin-top:calc(var(--header-h) + 48px)}
.cat-section.dark{background:var(--charcoal-forest);color:var(--linen)}
.cat-section.light{background:var(--paper);color:var(--charcoal-forest)}
.cat-section-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:start}
.cat-illustration{aspect-ratio:4/3;background:var(--linen);position:relative;overflow:hidden}
.cat-illustration .ph{position:absolute;inset:0}
.cat-text .eyebrow{margin-bottom:12px}
.cat-text .h2{margin:0 0 16px;font-size:var(--h2-size)}
.cat-text .body-l{font-size:var(--body-l-size);line-height:1.55;margin-bottom:24px;max-width:48ch}

.proc-list{list-style:none;margin:24px 0;padding:0}
.proc-list li{
  display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  padding:14px 0;border-top:1px solid var(--rule-light);
}
.cat-section.dark .proc-list li{border-top-color:var(--rule-dark)}
.proc-info{display:flex;flex-direction:column;gap:4px;flex:1}
.proc-name{font-family:var(--ui);font-weight:500;font-size:15px;line-height:1.3}
.proc-time{font-family:var(--ui);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cat-section.dark .proc-time{color:rgba(239,233,221,.55)}
.proc-price{font-family:var(--display);font-weight:300;font-size:18px;color:var(--copper);font-variant-numeric:tabular-nums;white-space:nowrap}
.cat-text .btn{width:100%;margin-top:24px}

@media (min-width: 1024px){
  .cat-section-grid{grid-template-columns:1fr 1fr;gap:64px;align-items:center}
  .cat-section:nth-child(even) .cat-illustration{order:1}
  .cat-section:nth-child(even) .cat-text{order:0}
  .proc-list{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
  .proc-list li{padding:18px 0}
  .cat-text .btn{width:auto}
  .proc-name{font-size:16px}
  .proc-price{font-size:20px}
}

/* ── EQUIPMENT ────────────────────────────────────────────────── */
.equipment-list{list-style:none;display:flex;flex-direction:column;gap:40px;margin:0;padding:0}
.equipment-item{display:flex;flex-direction:column;gap:16px;padding-top:32px;border-top:1px solid var(--rule-light)}
.equipment-item:first-child{padding-top:0;border-top:0}
.equipment-photo{aspect-ratio:16/10;background:var(--linen);overflow:hidden;position:relative}
.equipment-photo .ph{position:absolute;inset:0}
.equipment-photo > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.equipment-section .tech-name{font-family:var(--display);font-weight:300;font-size:22px;line-height:1.1;color:var(--charcoal-forest)}
.equipment-section .tech-desc{font-family:var(--ui);font-size:14px;line-height:1.55;color:var(--muted)}

@media (min-width: 1024px){
  .equipment-list{display:grid;grid-template-columns:1fr 1fr;gap:48px 32px}
  .equipment-item{padding-top:0;border-top:0}
  .equipment-section .tech-name{font-size:28px}
  .equipment-section .tech-desc{font-size:16px}
}

/* ── CONTACTS PAGE ────────────────────────────────────────────── */
.contacts-grid{display:grid;grid-template-columns:1fr;gap:48px;margin-top:24px}
.contacts-info{display:flex;flex-direction:column;gap:16px}
.contacts-address{font-family:var(--display);font-weight:300;font-size:24px;line-height:1.15;color:var(--charcoal-forest)}
.contacts-hours{font-family:var(--ui);font-size:14px;color:var(--charcoal-forest);font-variant-numeric:tabular-nums}
.contacts-hours td{padding:4px 16px 4px 0}
.contacts-phone{font-family:var(--display);font-weight:300;font-size:22px;color:var(--copper);text-decoration:none}
.contacts-email{font-family:var(--ui);font-size:14px;color:var(--charcoal-forest);text-decoration:underline;text-underline-offset:4px}
.contacts-socials{display:flex;gap:16px;margin-top:8px}
.contacts-socials a{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;color:var(--copper)}
.contacts-socials svg{width:24px;height:24px;fill:currentColor}

.map-lazy{
  width:100%;height:320px;background:var(--linen);position:relative;
  display:flex;align-items:center;justify-content:center;
  margin-top:48px;
}
.map-trigger{
  display:inline-flex;align-items:center;justify-content:center;
  height:48px;padding:0 24px;border-radius:999px;border:1px solid var(--charcoal-forest);
  background:transparent;color:var(--charcoal-forest);
  font-family:var(--ui);font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;
  cursor:pointer;
}
.map-lazy iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

@media (min-width: 1024px){
  .contacts-address{font-size:32px}
  .contacts-phone{font-size:28px}
  .contacts-grid{grid-template-columns:1fr 1fr;gap:64px}
  .map-lazy{height:480px;margin-top:96px}
}