/* Extra pages inherit the existing Afina palette, fonts, components and motion. */
.plans-with-osn{grid-template-columns:repeat(6,minmax(0,1fr))}
.plans-with-osn>.plan{grid-column:span 2}
.plans-with-osn>.plan-osn{grid-column:span 3}
.plans-osn{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1000px){.plans-with-osn,.plans-osn{grid-template-columns:1fr}.plans-with-osn>.plan{grid-column:auto}}
.price-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.price-actions .pill{min-height:54px;padding:14px 24px;font-size:16px;gap:20px}
@media(max-width:600px){.price-actions{flex-direction:column}.price-actions .pill{width:100%;justify-content:space-between}}
@media(max-width:1000px){.nav>.pill-intro{max-width:200px;white-space:normal;line-height:1.15;text-align:left}.nav>.pill-intro .mono{flex:none}}
@media(max-width:400px){.nav>.pill-intro{max-width:180px}}
.hero .mobile-nav-links,.page-head .mobile-nav-links{top:164px}
.hero-aud{max-width:38ch}.hero-side>.link-under{font-size:13px;align-self:flex-start}.hero-side{gap:22px}
.svc h3 a{display:block}.price-footnote{margin-top:28px;font-size:15px;line-height:1.6}.price-footnote .link-under{margin-left:16px;font-size:14px}
.page-head{background:var(--ink);color:#fff;padding:22px clamp(20px,3vw,40px) 60px}.page-heading{padding-top:80px}.page-heading h1{font:500 clamp(42px,5.8vw,88px)/1.04 var(--font);letter-spacing:-.045em;max-width:24ch;margin-top:25px}.page-heading>p{font-size:clamp(17px,1.5vw,21px);line-height:1.45;max-width:66ch;margin-top:28px}.page-heading>.pill{margin-top:28px}.breadcrumbs{font-size:13px;opacity:.65}.inner-page .sheet{position:relative;border-radius:24px 24px 0 0;margin-top:-20px}.page-section{padding-top:80px}.page-section>.h2{max-width:32ch;margin-bottom:32px}.page-section:last-child{padding-bottom:70px}.prose{max-width:85ch;font-size:18px;line-height:1.65;margin-top:24px}.prose p+p{margin-top:18px}.prose h2,.prose h3{font-size:26px;line-height:1.2;margin:32px 0 20px}.prose ul,.prose ol{list-style:disc;padding-left:24px;margin:20px 0}.prose a{text-decoration:underline}.page-list{list-style:none;max-width:85ch;font-size:18px;line-height:1.6;margin-top:25px}.page-list li{border-bottom:1px solid var(--line);padding:16px 0}.page-list li::before{content:'+';color:var(--red);margin-right:15px}.page-section>.link-under{margin:28px 22px 0 0}.catalog-item{display:grid;grid-template-columns:50px minmax(0,1fr) 40px;gap:24px;border-bottom:1px solid var(--line);padding:34px 0}.catalog-item h2{font-size:clamp(24px,2.3vw,34px);font-weight:500;letter-spacing:-.03em;line-height:1.2}.catalog-item p{color:var(--muted);line-height:1.5;margin-top:14px}.catalog-children{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:22px}.catalog-children a{font-size:15px;text-decoration:underline;text-underline-offset:4px}.catalog-compact{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin-top:32px}.catalog-compact a{display:flex;gap:20px;align-items:baseline;padding:19px 0;border-bottom:1px solid var(--line);font-size:19px;line-height:1.3}.catalog-compact span{font:13px var(--mono);color:var(--red)}
.price-filters{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0}.price-filters .pill{cursor:pointer}.price-filters [aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.price-search{max-width:600px}.price-status{font-size:14px;color:var(--muted);margin:20px 0}.price-note{max-width:85ch;font-size:16px;line-height:1.55}.price-group{margin-top:50px}.price-group h2{font-size:30px;line-height:1.2;margin-bottom:20px;font-weight:500;letter-spacing:-.025em;scroll-margin-top:80px}.price-table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.5;background:white}.price-table th,.price-table td{text-align:left;padding:16px 18px;border-bottom:1px dashed #c9c3c2;vertical-align:top}.price-table thead{background:var(--ink);color:white}.price-table tbody th{font-weight:400;min-width:200px}.price-table td:first-child{width:5%;font:13px var(--mono);color:var(--muted)}.price-table td:last-child{width:26%;min-width:170px}.table-scroll{overflow:auto;border-radius:12px}.team-member{display:grid;grid-template-columns:70px minmax(0,1fr);gap:25px;padding:35px 0;border-bottom:1px solid var(--line)}.team-member h2,.contact-office h2{font:500 clamp(25px,2.4vw,34px)/1.15 var(--font);letter-spacing:-.025em}.team-member .prose{margin-top:16px}.contact-office{padding:35px 0;border-bottom:1px solid var(--line)}.contact-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:25px;font-size:20px}.contact-office .link-under{margin-top:24px}.review-archive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.review-archive .rev{margin:0}.form-extra{font-size:12px;margin-top:7px;position:relative}.form-extra summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px;color:var(--muted)}.form-extra textarea{width:100%;min-height:75px;margin-top:10px;border:0;border-radius:10px;background:#f4f2f1;padding:12px;font:14px var(--font);resize:vertical}.cta .form-extra[open]{position:absolute;z-index:4;left:0;right:0;top:0;background:white;padding:12px;border-radius:10px;box-shadow:0 5px 25px #0002}.form-note{font-size:13px;line-height:1.45;max-width:90ch;margin:24px auto 0}.lead-form .submit{white-space:normal}.nav .header-phone{font-size:12px}.mobile-nav-toggle{display:none}.mobile-nav-links{display:none}
@media(max-width:1000px){.page-heading{padding-top:50px}.catalog-compact{grid-template-columns:1fr}.review-archive{grid-template-columns:1fr 1fr}.page-head{padding-bottom:45px}.mobile-nav-toggle{display:inline-flex;position:relative;justify-self:end}.page-head .nav{grid-template-columns:minmax(0,1fr) auto auto;gap:12px}.mobile-nav-links.open{display:flex;flex-wrap:wrap;gap:18px;position:absolute;left:20px;right:20px;top:105px;z-index:55;padding:22px;border-radius:14px;background:#1c191b;color:white}.hero .mobile-nav-toggle{grid-column:2;grid-row:2;justify-self:end}.hero .nav>.pill-intro{grid-column:2;grid-row:1}.hero .nav{row-gap:12px}.hero .mobile-nav-links{top:125px}.page-section{padding-top:60px}.catalog-item{gap:15px;grid-template-columns:35px minmax(0,1fr) 24px}.prose,.page-list{font-size:16px}}
@media(max-width:600px){.review-archive{grid-template-columns:1fr}.price-table{font-size:14px}.price-table th,.price-table td{padding:12px}.price-table td:last-child{min-width:130px}.price-table tbody th{min-width:190px}.page-head .nav{grid-template-columns:minmax(0,1fr) auto}.page-head .nav>.pill-intro{grid-column:2;grid-row:1}.page-head .mobile-nav-toggle{grid-column:2;grid-row:2}.team-member{grid-template-columns:45px minmax(0,1fr);gap:16px}.price-footnote .link-under{margin:12px 0 0}.hero-title{overflow-wrap:normal}.hero-title .line>span{max-width:100%}.hero-foot{font-size:12px}}

@media(max-width:1000px){.hero .mobile-nav-links,.page-head .mobile-nav-links{top:164px}}

.nav{position:relative}.nav-contact{position:absolute;right:0;top:calc(50% + 28px);font-size:12px;line-height:1.3;opacity:.8}@media(max-width:1000px){.nav-contact{top:60px}}

/* Keep the orbit inside the hero on wide screens; bottom alignment cropped its top. */
@media(min-width:1001px){
  .hero-film img,.hero-film video{object-position:100% 0}
  /* Top alignment can crop the baked-in lower fade; keep the existing transition. */
  .hero-film::after{content:"";position:absolute;inset:auto 0 0;height:var(--fade-h);background:linear-gradient(180deg,transparent 0%,rgba(11,10,11,.5) 38%,#1d1a1b 52%,#4a4546 68%,#9c9697 82%,#e4e0df 93%,#fff 100%)}
}
.hero-film video{transition:none}

/* The rating belongs to the office on Gertsena, 20; see content/yandex-maps.json. */
.contact-office-with-map{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,460px);gap:48px;align-items:start}
.contact-details{min-width:0}.contact-details .prose{max-width:60ch}
.contact-map-card{min-width:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#f4f2f1}
.contact-map-rating{display:flex;align-items:center;gap:16px;padding:20px 22px;background:#fff;color:var(--ink)}
.contact-map-score{font:500 44px/1 var(--font);letter-spacing:-.04em}
.contact-map-rating-info{display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.3}
.contact-map-stars{color:#eaa524;font-size:19px;letter-spacing:2px;line-height:1}
.contact-map-arrow{margin-left:auto;font-size:24px;color:var(--red)}
.contact-map-rating:hover .contact-map-arrow{color:var(--ink)}
.contact-map-rating:focus-visible{outline:2px solid var(--red);outline-offset:-4px}
.contact-map-card iframe{display:block;width:100%;height:300px;border:0}
.contact-map-placeholder{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;text-align:center}
.contact-map-placeholder>p:first-child{font-size:20px;font-weight:500}
.map-privacy{max-width:34ch;font-size:12px;color:var(--muted);line-height:1.5}
.map-privacy a,.form-privacy a{text-decoration:underline;text-underline-offset:3px}
.form-privacy{margin-top:12px;font-size:12px;color:var(--muted)}
.legal-copy{max-width:80ch;font-size:17px;line-height:1.7}
.legal-copy h3{scroll-margin-top:105px;font-size:clamp(22px,2.2vw,28px)}
.legal-edition,.legal-source{font-size:14px;color:var(--muted)}
.legal-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin-block:24px;padding-block:20px;border-block:1px solid var(--line);font-size:15px}
@media(max-width:600px){.legal-copy{font-size:16px}.legal-copy a{overflow-wrap:anywhere}}
@media(max-width:1100px){.contact-office-with-map{grid-template-columns:minmax(0,1fr) minmax(300px,390px);gap:28px}.contact-links{font-size:18px}}
@media(max-width:800px){.contact-office-with-map{grid-template-columns:1fr;gap:28px}.contact-map-card{width:100%;max-width:520px}.contact-map-rating{padding:18px}.contact-map-score{font-size:40px}.contact-map-rating-info{font-size:13px}.contact-links{gap:12px 18px;font-size:17px}}

.minibar{gap:40px}
.minibar .pill{padding-left:28px}
@media(max-width:600px){.minibar{gap:24px;max-width:calc(100% - 16px)}.minibar .pill{min-width:0;padding-left:24px;text-align:center;line-height:1.2}}
@media(max-width:360px){.minibar .pill{white-space:normal}}

.services{border-radius:14px}

/* A single compact header stays available across the whole site. */
html{scroll-padding-top:100px}
.site-header{position:fixed;z-index:90;top:max(12px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));max-width:1480px;margin-inline:auto;color:#fff}
.header-shell{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;min-height:72px;padding:8px 16px;border-radius:16px;background:rgba(15,12,15,.48);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:background .2s}
.site-header .logo{width:98px;aspect-ratio:1637/960}
.site-header .nav-links{gap:24px;white-space:nowrap}
.site-header .nav-links a{opacity:1;padding-block:12px}
.header-cta{justify-self:end;padding:5px 16px;min-height:44px;gap:10px}
.consultant-photo-frame{display:block;flex:none;width:34px;height:34px;border-radius:50%;overflow:hidden}
.consultant-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 0;transform:scale(2.4);transform-origin:50% 22%}
.header-space{grid-column:1/-1;height:72px}
.menu-toggle{display:none;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:0 15px;border:1px solid rgba(255,255,255,.35);border-radius:999px;color:inherit;background:transparent;font:500 14px var(--font);cursor:pointer}
.menu-icon{position:relative;width:18px;height:14px}
.menu-icon i{position:absolute;left:0;width:18px;height:1.5px;background:currentColor;transition:transform .18s,top .18s;top:3px}
.menu-icon i+i{top:10px}
.menu-open .menu-icon i{top:6px;transform:rotate(45deg)}
.menu-open .menu-icon i+i{top:6px;transform:rotate(-45deg)}
.header-menu[hidden]{display:none}
.header-menu{margin-top:8px;display:flex;flex-direction:column;padding:14px 20px 18px;border-radius:16px;background:rgba(15,12,15,.87);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);max-height:calc(100svh - 110px);overflow:auto}
.header-menu>a{display:flex;align-items:center;justify-content:space-between;min-height:52px;border-bottom:1px solid rgba(255,255,255,.15);font-size:20px}
.header-menu .menu-consultation{color:#ff8397}
.header-menu .menu-phone{border:0;font-size:16px;min-height:48px;color:#e9e4e6}
.site-header a:focus-visible,.menu-toggle:focus-visible{outline:2px solid #ff8397;outline-offset:4px}
.director-photo-frame{display:block;width:160px;height:200px;border-radius:14px;overflow:hidden}
.director-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 20%;transform:scale(2);transform-origin:50% 5%}
.rev blockquote{padding:0}
.cta-motion{position:absolute;inset:0;z-index:0;pointer-events:none}
/* The film's white panel is 596 × 612 px in its 1920 × 872 frame.
   Keep the live card inside that panel when extra fields or errors expand. */
@media(min-width:1001px){
  .cta:has(.cta-video) .form-card{height:443.5px;padding:20px 28px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .cta:has(.cta-video) .field{margin-bottom:10px}
  .cta:has(.cta-video) .consent{margin-top:10px}
  .cta:has(.cta-video) .submit{margin-top:12px}
  .cta:has(.cta-video) .form-privacy{margin-top:8px}
  .cta:has(.cta-video) .form-extra[open]{position:static;padding:0;box-shadow:none;background:transparent}
}
@media(min-width:1001px){.header-menu{display:none}}
@media(max-width:1000px){
  html{scroll-padding-top:86px}
  .site-header{top:max(8px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right))}
  .header-shell{grid-template-columns:1fr auto;gap:16px;min-height:64px;padding:7px 12px}
  .site-header .logo{width:84px}
  .site-header .nav-links,.site-header .header-cta{display:none}
  .menu-toggle{display:inline-flex}
  .header-space{height:64px}
  .cta{display:flex;flex-direction:column;gap:0;padding:0 0 16px;margin:64px 8px 0;border-radius:16px}
  .cta-copy{position:relative;width:100%;padding:28px 22px 0;order:1}
  .cta-copy h2{font-size:clamp(32px,8.5vw,44px);line-height:1.06;letter-spacing:-.03em;text-wrap:balance;max-width:18ch;margin-top:18px}
  .cta-copy>p:not(.kicker){font-size:16px;line-height:1.5;max-width:48ch;margin-top:18px}
  .cta-phone{font-size:20px;margin-top:22px}
  .cta-motion{position:relative;inset:auto;width:min(100%,480px);aspect-ratio:720/510;margin:12px auto 0;overflow:hidden;flex:none;order:2;mask-image:linear-gradient(transparent,#000 18%,#000 76%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 18%,#000 76%,transparent)}
  .cta-motion .cta-video{display:block;position:absolute;inset:0 auto auto 0;width:100%;height:auto;aspect-ratio:1/2;object-fit:contain}
  .cta .form-card{position:relative;inset:auto;grid-row:auto;align-self:center;width:calc(100% - 32px);max-width:440px;margin:0;transform:none;padding:22px;border-radius:14px;opacity:1;flex:none;order:3}
  .cta.film .form-card{opacity:1}
  .cta:not(:has(.cta-video)) .cta-motion{display:none}
  .cta:not(:has(.cta-video)) .form-card{margin-top:24px}
  .cta .form-extra[open]{position:static;padding:0;box-shadow:none;background:transparent}
  .cta .form-extra summary{padding-block:6px;min-height:32px;color:#625b5b}
  .cta .form-extra textarea{font-size:16px}
  .cta .field input::placeholder{color:#736b6b}
  .cta .field label{font-size:14px}
  .cta .submit{min-height:48px;font-size:16px}
  .cta .consent{color:#625b5b}
  .director .dir-card{grid-template-columns:1fr;gap:22px;padding:26px}
  .director-photo-frame{width:110px;height:140px}
  .dir-card h2{font-size:24px;line-height:1.25;letter-spacing:-.025em;max-width:none}
  .dir-name{font-size:14px;line-height:1.5}
}
@media(prefers-reduced-motion:reduce){.header-shell,.menu-icon i{transition:none}}

/* Burgundy is the media surface; text on the paper sections keeps its ink color. */
:root{--rose-paper:#f5eaf0;--wine-ink:#3c182a;--sheet-inset:12px}
.hero-film{background:var(--motion-surface);isolation:isolate}
/* Remove the near-black #0b0a0b pedestal before blending, so contain has no hard edge. */
.hero-film img,.hero-film video{mix-blend-mode:screen;filter:contrast(1.15) brightness(1.18)}
.hero-film.on:has(video) picture{opacity:0}
.hero-film::after{content:"";position:absolute;inset:auto 0 0;height:var(--fade-h);background:linear-gradient(180deg,transparent 0%,rgba(var(--motion-rgb),.5) 38%,color-mix(in srgb,var(--motion-surface) 90%,#fff) 52%,color-mix(in srgb,var(--motion-surface) 70%,#fff) 68%,color-mix(in srgb,var(--motion-surface) 35%,#fff) 82%,color-mix(in srgb,var(--motion-surface) 8%,#fff) 93%,#fff 100%)}
.cta,.cta-motion{background:var(--motion-surface)}
.cta-motion{isolation:isolate}
.cta-video{mix-blend-mode:screen}
.cta::after{background:linear-gradient(90deg,rgba(var(--motion-rgb),.92),rgba(var(--motion-rgb),.55))}
.page-head{background:var(--motion-surface)}

/* The same full-width header stays constant across pages and scroll positions. */
.site-header{top:0;left:0;right:0;max-width:none;margin:0;padding-top:env(safe-area-inset-top);background:var(--motion-surface);backdrop-filter:none;-webkit-backdrop-filter:none;transition:none}
.header-shell{width:min(var(--max),calc(100% - 2*(var(--gut) + var(--sheet-inset))));margin-inline:auto;padding:8px 0;min-height:76px;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.header-space{height:76px}
.header-menu{position:absolute;top:calc(100% + 8px);left:16px;right:16px;margin:0;background:rgba(var(--motion-rgb),.9)}

/* Keep the headline in its own column beside the moving orbit. */
.hero{--hero-gutter:clamp(24px,5vw,160px);padding-inline:var(--hero-gutter)}
.hero-title{font-size:clamp(40px,3.4vw,92px);line-height:1.06;letter-spacing:-.03em;max-width:100%}
.hero-title .line>span{max-width:100%;overflow-wrap:normal}
@media(min-width:1001px){
  /* Fill the viewport width; keep the 100:91 source ratio without a side gutter. */
  .hero-film img,.hero-film video{height:auto;bottom:auto;aspect-ratio:100/91;object-fit:contain;object-position:100% 0}
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto 1fr auto auto;column-gap:32px;row-gap:24px;max-height:none}
  .header-shell{width:calc(100% - 2*clamp(24px,5vw,160px))}
  .hero-body{grid-column:1;grid-row:2;max-width:none;padding:30px 0 0;align-self:center}
  .hero-side{grid-column:1;grid-row:3;justify-self:start;width:min(100%,clamp(440px,30vw,620px));gap:16px}
  .hero-aud{font-size:clamp(17px,1vw,21px);line-height:1.4;max-width:48ch}
  .hero-foot{grid-column:1/-1;grid-row:4;gap:36px;font-size:12px}
}

/* A burgundy director card uses the portrait from the original home page. */
.dir-card{background:var(--burgundy);color:#fff;grid-template-columns:180px minmax(0,1fr);gap:40px}
.dir-card .kicker{color:#ead5dd}
.dir-card h2{font-size:clamp(24px,2.4vw,36px);line-height:1.24;letter-spacing:-.025em;max-width:37ch}
.dir-name{color:#ead5dd}
.director-photo-frame{width:180px;height:220px}
.director-photo{transform:none;object-position:50% 15%}
.consultant-photo{transform:scale(2.1);transform-origin:50% 23%}

/* The temple assembles once, above the stationary footer links. */
.footer{margin:24px 0 0;padding:36px var(--gut) 24px;border-radius:20px 20px 0 0;background:var(--burgundy);color:#fff}
.foot-signature{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:32px;width:min(1480px,100%);margin:0 auto 40px;pointer-events:none}
.foot-temple{display:block;width:236px;height:auto;overflow:visible;transform-origin:50% 80%;filter:drop-shadow(0 14px 16px #25071455)}
.footer-motion-ready .foot-temple{opacity:0;transform:perspective(700px) translateY(16px) rotateX(12deg) scale(.94);transition:opacity 800ms var(--ease),transform 1100ms var(--ease)}
.footer-visible .foot-temple{opacity:1;transform:none}
.foot-temple-column{transform-box:fill-box;transform-origin:center bottom}
.foot-rule{position:relative;display:block;height:1px;overflow:hidden;background:linear-gradient(90deg,transparent,#d6a4b6)}
.foot-rule-right{background:linear-gradient(90deg,#d6a4b6,transparent)}
.foot-rule::after{content:"";position:absolute;inset:-1px auto -1px 0;width:30%;background:linear-gradient(90deg,transparent,#fff,transparent);opacity:0;transform:translateX(-110%)}
.footer-motion-ready .foot-rule{opacity:0;transform:scaleX(.85);transition:opacity 900ms var(--ease),transform 900ms var(--ease)}
.footer-motion-ready .foot-temple-base,.footer-motion-ready .foot-temple-roof{opacity:0;clip-path:inset(0 100% 0 0);transition:clip-path 900ms var(--ease),opacity 650ms var(--ease)}
.footer-motion-ready .foot-temple-roof{transition-delay:420ms}
.footer-motion-ready .foot-temple-column{opacity:0;transform:translateY(18%);transition:opacity 650ms var(--ease),transform 650ms var(--ease)}
.footer-motion-ready .foot-temple-column:nth-child(1){transition-delay:120ms}
.footer-motion-ready .foot-temple-column:nth-child(2){transition-delay:180ms}
.footer-motion-ready .foot-temple-column:nth-child(3){transition-delay:240ms}
.footer-motion-ready .foot-temple-column:nth-child(4){transition-delay:300ms}
.footer-motion-ready .foot-temple-column:nth-child(5){transition-delay:360ms}
.footer-motion-ready .foot-brand,.footer-motion-ready .foot-cols>div,.footer-motion-ready .foot-bottom{opacity:0;transition:opacity 300ms var(--ease)}
.footer-motion-ready .foot-brand{transition-delay:360ms}
.footer-motion-ready .foot-cols>div:nth-child(1){transition-delay:410ms}
.footer-motion-ready .foot-cols>div:nth-child(2){transition-delay:460ms}
.footer-motion-ready .foot-cols>div:nth-child(3){transition-delay:510ms}
.footer-motion-ready .foot-bottom{transition-delay:560ms}
.footer-visible .foot-rule,.footer-visible .foot-temple-base,.footer-visible .foot-temple-roof,.footer-visible .foot-temple-column{opacity:1;transform:none;clip-path:inset(0)}
.footer-visible .foot-brand,.footer-visible .foot-cols>div,.footer-visible .foot-bottom{opacity:1}
.footer-motion-ready.footer-visible .foot-rule::after{animation:footer-light 1400ms var(--ease) both}
.footer-motion-ready.footer-visible .foot-rule-right::after{animation-delay:120ms}
@keyframes footer-light{0%{opacity:0;transform:translateX(-110%)}20%{opacity:.9}80%{opacity:.9}100%{opacity:0;transform:translateX(340%)}}
.foot-top,.foot-bottom{width:min(1480px,100%);margin-inline:auto}
.foot-top{grid-template-columns:minmax(220px,.85fr) minmax(0,1.4fr);gap:72px;align-items:start}
.foot-brand{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.footer-logo{width:160px;aspect-ratio:1637/960}
.footer-logo img{filter:brightness(0) invert(1)}
.foot-brand>p{max-width:27ch;font-size:17px;line-height:1.45}
.foot-brand .pill{min-height:44px}
.foot-cols{gap:32px;font-size:15px;line-height:1.45}
.foot-cols h3{color:#ead5dd;font-size:12px;margin-bottom:10px}
.foot-cols div{gap:12px}
.foot-cols p{color:#ead5dd;margin-top:4px;font-size:14px;line-height:1.55}
.foot-contact>a{white-space:nowrap}
.foot-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:40px;padding-top:20px;border-top:1px solid #b16b82}
.foot-legal{margin:0;padding:0;border:0;color:#ead5dd;font-size:13px}
.foot-documents{display:flex;flex-wrap:wrap;gap:24px;font-size:13px;color:#ead5dd}
.footer a:focus-visible{outline:2px solid #fff;outline-offset:4px}
.foot-cols .footer-privacy{color:#fff;text-decoration:underline;text-underline-offset:4px}
.foot-documents{font-size:14px;line-height:1.5}
.foot-documents a{padding-block:6px;text-decoration:underline;text-underline-offset:4px}
.footer-motion-ready .foot-bottom{opacity:1;transition:none}
.breadcrumb-trail{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 8px;max-width:100%;font-size:13px;line-height:1.45}
.breadcrumb-trail>[aria-current="page"]{opacity:1}
@media(hover:hover) and (pointer:fine){.footer .foot-cols a:hover,.foot-documents a:hover{color:#ffd2df}}
@media(max-width:1000px){
  .header-shell{min-height:64px;padding:7px 0}
  .header-space{height:64px}
  .hero-title{font-size:clamp(32px,7.4vw,48px);line-height:1.08}
  .hero-body{max-width:580px}
  .hero-side{width:min(100%,440px)}
  .director .dir-card{grid-template-columns:1fr;gap:24px}
  .director-photo-frame{width:130px;height:155px}
  .dir-card h2{font-size:24px}
  .foot-top{grid-template-columns:1fr;gap:36px}
  .foot-brand{gap:16px}
  .foot-brand>p{max-width:40ch}
  .foot-cols{grid-template-columns:1fr 1fr 1.3fr}
}
@media(max-width:700px){:root{--sheet-inset:8px}}
@media(max-width:600px){
  .hero-title{font-size:clamp(30px,7.8vw,42px)}
  .footer{padding-top:32px}
  .foot-signature{gap:18px;margin-bottom:30px}
  .foot-temple{width:178px}
  .footer-logo{width:140px}
  .foot-cols{grid-template-columns:1fr 1fr;gap:28px}
  .foot-contact{grid-column:1/-1}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:16px;margin-top:28px}
  .foot-documents{gap:12px 20px}
}
@media(prefers-reduced-motion:reduce){
  .site-header{transition:none}
  .footer-motion-ready .foot-temple{opacity:1;transform:none;transition:none}
  .footer-motion-ready .foot-rule,.footer-motion-ready .foot-temple-base,.footer-motion-ready .foot-temple-roof,.footer-motion-ready .foot-temple-column,.footer-motion-ready .foot-brand,.footer-motion-ready .foot-cols>div,.footer-motion-ready .foot-bottom{opacity:1;transform:none;clip-path:none;transition:none}
  .footer-motion-ready .foot-rule::after{animation:none;opacity:0}
}

/* Subject-specific 3D scenes and pill navigation for the service catalog. */
.catalog-item{grid-template-columns:40px 220px minmax(0,1fr) 28px;gap:28px;align-items:start;padding-block:32px}
.catalog-item>.svc-n,.catalog-item>.svc-arr{padding-top:8px}
.catalog-art{display:block;aspect-ratio:3/2;border-radius:16px;overflow:hidden;background:var(--motion-surface)}
.catalog-art img{width:100%;height:100%;object-fit:cover;transition:transform 500ms var(--ease)}
.catalog-copy{min-width:0;padding-block:4px}
.catalog-copy>p{max-width:65ch}
.catalog-children{gap:10px;margin-top:20px}
.catalog-children .catalog-button{min-height:42px;padding:10px 17px;background:#f7eef2;color:var(--wine-ink);box-shadow:inset 0 0 0 1px #e7d3dc;text-decoration:none;white-space:normal;text-align:center;font-size:14px;line-height:1.3;gap:10px}
.catalog-button .arr{flex:none}
.service-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:clamp(28px,4vw,64px);align-items:center}
.service-intro .prose{margin-top:0}
.service-art{aspect-ratio:3/2;overflow:hidden;border-radius:20px;background:var(--motion-surface)}
.service-art img{width:100%;height:100%;object-fit:cover}
.service-art-landing{width:min(100%,600px);margin-top:40px}
@media(hover:hover) and (pointer:fine){.catalog-children .catalog-button:hover{background:var(--burgundy);color:#fff;box-shadow:none}.catalog-art:hover img{transform:scale(1.04)}}
@media(max-width:1050px){.catalog-item{grid-template-columns:32px 170px minmax(0,1fr) 24px;gap:20px}}
@media(max-width:850px){.service-intro{grid-template-columns:1fr;gap:28px}.service-intro .service-art{order:-1;max-width:600px}.catalog-item{grid-template-columns:28px 150px minmax(0,1fr) 22px;gap:16px}}
@media(max-width:600px){.catalog-item{grid-template-columns:minmax(0,1fr) 28px;gap:16px;padding-block:28px}.catalog-item>.svc-n{grid-column:1;grid-row:1;padding:0}.catalog-item>.svc-arr{grid-column:2;grid-row:1;padding:0}.catalog-art{grid-column:1/-1;grid-row:2}.catalog-copy{grid-column:1/-1;grid-row:3;padding:0}.catalog-children .catalog-button{min-height:44px;font-size:14px}.service-art{border-radius:16px}}
@media(prefers-reduced-motion:reduce){.catalog-art img{transition:none}}

/* Photographs fill the whole inner-page masthead; copy stays on a quiet burgundy layer. */
.page-head--image{position:relative;isolation:isolate;overflow:hidden;background:var(--motion-surface);padding:0 0 78px}
.page-head--image .page-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
.page-head--image::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(var(--motion-rgb),.949) 0%,rgba(var(--motion-rgb),.91) 22%,rgba(var(--motion-rgb),.678) 45%,rgba(var(--motion-rgb),.2) 70%,rgba(var(--motion-rgb),.051) 100%),linear-gradient(0deg,rgba(var(--motion-rgb),.2),transparent 50%)}
.page-head--image .header-space,.page-head--image .page-heading{position:relative;z-index:1}
.page-head--image .page-heading{padding-top:clamp(72px,7vw,120px)}
.page-head--image .page-heading h1{max-width:min(62%,22ch);font-size:clamp(42px,4.8vw,80px);text-wrap:balance}
.page-head--image .page-heading>p{max-width:min(54%,52ch)}
.page-head--image .breadcrumbs{opacity:1;color:#ead5dd}
.service-copy .prose{margin-top:0}
.service-copy .catalog-children{max-width:900px}
@media(max-width:1000px){.page-head--image{padding-bottom:60px}.page-head--image .page-heading{padding-top:60px}.page-head--image .page-heading h1{max-width:76%;font-size:clamp(38px,6vw,58px)}.page-head--image .page-heading>p{max-width:70%}}
@media(max-width:600px){.page-head--image{padding-bottom:52px}.page-head--image::after{background:linear-gradient(90deg,rgba(var(--motion-rgb),.863),rgba(var(--motion-rgb),.561)),linear-gradient(0deg,rgba(var(--motion-rgb),.78) 0%,rgba(var(--motion-rgb),.502) 55%,transparent 100%)}.page-head--image .page-heading{padding-top:48px}.page-head--image .page-heading h1{max-width:100%;font-size:clamp(34px,9.5vw,48px);line-height:1.08;text-wrap:balance}.page-head--image .page-heading>p{max-width:100%;font-size:17px;line-height:1.45}.page-head--image .page-cover{object-position:62% center}}

/* Calculator: the published price list supplies every amount and allowance. */
.calculator{scroll-margin-top:100px}
.calc-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:32px}
.calc-intro>.h2{font-size:clamp(32px,3.2vw,48px);line-height:1.08;letter-spacing:-.03em;text-wrap:balance}
.calc-intro>p{max-width:34ch;font-size:17px;line-height:1.5;color:var(--muted)}
.calc-shell{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);background:#f7f3f4;border-radius:16px;overflow:hidden}
.calc-fields{min-width:0;padding:36px;display:flex;flex-direction:column;gap:30px}
.calc-mode{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:8px}
.calc-mode label{position:relative;cursor:pointer;flex:1;min-width:150px}
.calc-mode input{position:absolute;opacity:0;width:1px;height:1px}
.calc-mode span{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #d9c9cf;border-radius:40px;padding:10px 16px;font-size:15px;line-height:1.3;text-align:center;transition:background .18s,color .18s,border-color .18s}
.calc-mode input:checked+span{background:var(--burgundy);border-color:var(--burgundy);color:#fff}
.calc-mode input:focus-visible+span{outline:2px solid var(--red);outline-offset:3px}
.calc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}
.calc-wide{grid-column:1/-1}
.calc-fields .field{margin:0;min-width:0}
.calc-fields .field>label{display:block;margin-bottom:10px;font-size:15px;line-height:1.4}
.calc-fields input[type=number],.calc-fields select{width:100%;height:52px;padding:12px 16px;border:1px solid #d9c9cf;border-radius:10px;background:#fff;color:var(--ink);font-size:16px;line-height:1.4;caret-color:var(--red)}
.calc-fields select{appearance:auto;padding-right:32px;text-overflow:ellipsis;white-space:nowrap}
.calc-fields option{white-space:normal}
.calc-fields input[type=number]{max-width:180px;font-variant-numeric:tabular-nums}
.calc-fields input:focus-visible,.calc-fields select:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.calc-fields input[aria-invalid=true]{border-color:var(--red)}
.calc-check{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:17px;line-height:1.4}
.calc-check>input{width:20px;height:20px;flex:none;accent-color:var(--burgundy)}
.calc-hint,.calc-selected,.calc-local{font-size:14px;line-height:1.5;color:#6d525d}
.calc-hint{margin-top:10px;max-width:48ch}.calc-selected{margin-top:14px;overflow-wrap:anywhere}
.calc-local{margin-top:auto;max-width:48ch}.calc-error{font-size:15px;color:#981a35;line-height:1.4}
.calc-summary{min-width:0;padding:36px;background:var(--burgundy);color:#fff;display:flex;flex-direction:column;gap:24px}
.calc-result-label{font-size:15px;color:#f2dbe3}
.calc-price{font-size:clamp(36px,4vw,58px);line-height:1.12;letter-spacing:-.03em;font-weight:500;font-variant-numeric:tabular-nums;margin-top:12px;overflow-wrap:anywhere}
.calc-period{font-size:15px;line-height:1.4;color:#f2dbe3;margin-top:10px}
.calc-breakdown{display:flex;flex-direction:column;gap:0}
.calc-breakdown li{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-block:14px;border-top:1px solid #ac6277;font-size:15px;line-height:1.45}
.calc-breakdown li>span{min-width:0}.calc-breakdown a{text-decoration:underline;text-decoration-color:#c994a4;text-underline-offset:3px}
.calc-breakdown strong{font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
.calc-breakdown small{display:block;font-size:13px;color:#f2dbe3;margin-top:5px}
.calc-conditions,.calc-disclaimer{font-size:14px;line-height:1.5;color:#f2dbe3;max-width:50ch}
.calc-conditions:empty{display:none}.calc-disclaimer{margin-top:auto}
.calc-consult{width:100%;min-height:48px;justify-content:space-between}
.calc-consult[aria-disabled=true]{opacity:.55;cursor:default}
.calc-price-source{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;min-height:32px;text-decoration:underline;text-underline-offset:4px}
.calc-summary a:focus-visible{outline:2px solid #fff;outline-offset:4px}
.calc-fallback{font-size:16px;line-height:1.5}.calc-fallback a{text-decoration:underline;text-underline-offset:4px}
.price-table [id]{scroll-margin-top:100px}
@media(hover:hover){.calc-mode label:hover span{border-color:var(--burgundy)}.calc-price-source:hover,.calc-breakdown a:hover{text-decoration-color:#fff}}
@media(max-width:1000px){.calc-intro{display:block}.calc-intro>p{max-width:55ch;margin-top:18px}.calc-shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.calc-fields,.calc-summary{padding:28px}.calc-grid{grid-template-columns:minmax(0,1fr)}.calc-mode label{flex:auto;min-width:0;width:100%}}
@media(max-width:700px){.calc-shell{grid-template-columns:minmax(0,1fr)}.calc-fields,.calc-summary{padding:24px}.calc-fields{gap:28px}.calc-mode{flex-wrap:nowrap}.calc-mode label{flex:1;width:auto}.calc-mode span{font-size:14px;padding-inline:12px}.calc-price{font-size:44px}.calc-summary{gap:22px}.calc-intro>p{font-size:16px}.calc-grid{gap:22px}.calc-breakdown li{gap:16px}}
@media(prefers-reduced-motion:reduce){.calc-mode span{transition:none}}
/* Situation pages, the review rating link and draft notes for the accountant. */
.situation-links{margin-top:32px}
.situation-review{max-width:760px;margin-top:28px}
.situation-review+.link-under{margin-top:28px}
.review-rating{display:inline-flex;max-width:100%;margin-bottom:28px;border:1px solid var(--line);border-radius:18px}
.reviews>.review-rating{margin:28px 0 0}
.todo-note{max-width:70ch;margin-top:20px;padding:12px 16px;border:1px dashed var(--red);border-radius:10px;background:#fff6f4;font-size:14px;line-height:1.5}
/* Choice about visit statistics: shown until the visitor answers, never blocks the page. */
.analytics-consent{position:fixed;z-index:90;left:16px;right:16px;bottom:16px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;max-width:880px;margin:0 auto;padding:18px 22px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 14px 44px rgba(11,10,11,.2);font-size:14px;line-height:1.45}
.analytics-consent p{flex:1 1 340px;margin:0}
.analytics-consent a{text-decoration:underline;text-underline-offset:3px}
.analytics-consent div{display:flex;gap:10px}
.analytics-consent .pill{min-height:44px;padding:10px 20px;cursor:pointer}
.legal-copy [data-analytics-choice]{margin-top:6px;cursor:pointer}
@media(max-width:600px){.analytics-consent{left:10px;right:10px;bottom:10px;padding:16px}.analytics-consent div{width:100%}.analytics-consent .pill{flex:1;justify-content:center}}
/* Situation pages reuse the home blocks: statement, dark list of work, tariff cards, steps, questions. */
.situation-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start;margin-top:20px}
.situation-intro .prose{margin-top:8px}
.situation-scope{margin-top:clamp(70px,8vw,120px)}
.svc-notes{max-width:70ch;margin-top:32px;color:#ead5dd;font-size:15px;line-height:1.6}
.svc-notes .link-under{margin-top:18px;color:#fff}
.svc-notes .todo-note{color:var(--ink)}
.situation-prices .prose{margin-top:24px}
.situation-prices .todo-note{margin-bottom:8px}
.price-rows{margin-top:36px}
.price-rows-body{padding-bottom:28px}
.price-rows-body .price-group{margin-top:8px}
.situation-more{margin-top:40px;font-size:13px;font-weight:500}
.situation-faq .situation-links{margin-top:14px}
.situation-reviews .situation-review{margin-top:44px}
/* The wide loop keeps its right side, where the object is; the backdrop on the left may be cropped. */
.page-head--image video.page-cover{object-position:right center;background:var(--motion-surface) var(--poster-wide) right center/cover no-repeat}
@media(max-width:700px){.page-head--image video.page-cover{object-position:62% center;background-image:var(--poster-tall);background-position:62% center}}
@media(max-width:850px){.situation-intro{grid-template-columns:1fr}}
.price-rows-body .link-under{margin-top:18px}

/* Menu bar without a backdrop while the page is at the top: the header picture or loop continues under it.
   site.js sets .is-top; without scripts the bar keeps its solid colour. */
.site-header.is-top{background:transparent}
.site-header.is-live{transition:background-color .25s ease}
@media(prefers-reduced-motion:reduce){.site-header.is-live{transition:none}}


/* Larger menu bar (owner's request, 06.10.2026). */
.header-shell{min-height:96px}
.header-space{height:96px}
.site-header .logo{width:132px}
.site-header .nav-links{font-size:17px;gap:34px}
.header-cta{min-height:52px;padding:8px 22px;font-size:16px}
html{scroll-padding-top:120px}
.calculator,.price-table [id]{scroll-margin-top:120px}
.legal-copy h3{scroll-margin-top:125px}
@media(max-width:1000px){
  .header-shell{min-height:76px}
  .header-space{height:76px}
  .site-header .logo{width:104px}
  .menu-toggle{min-height:48px;padding:0 18px;font-size:15px}
  html{scroll-padding-top:98px}
}

/* Reviews tied to Yandex Maps: the checked rating card, and a "Яндекс Карты" mark on every review
   that is published there. The cards themselves stay in the site's style. */
.yandex-reviews{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;margin:28px 0 0}
.yandex-reviews .review-rating{margin:0}
.rev figcaption{flex-wrap:wrap;align-items:center}
.rev-source{display:inline-flex;align-items:center;gap:8px;color:var(--muted);white-space:nowrap;text-decoration:none;transition:color .2s}
.rev-source:hover,.rev-source:focus-visible{color:var(--ink)}
.rev figcaption .rev-stars{color:#eaa524;font-size:13px;letter-spacing:1.5px;line-height:1}
.rev-note{max-width:70ch;margin-top:24px;font-size:15px;line-height:1.5;color:var(--muted)}
.review-archive{margin-top:36px}

/* Price rows on situation pages: a labelled button instead of the bare plus. */
.price-rows summary::after{content:"Смотреть далее ↓";font:500 14px/1 var(--font);letter-spacing:0;color:var(--ink);padding:14px 22px;border:1px solid var(--ink);border-radius:999px;white-space:nowrap;transform:none;transition:background-color .2s,color .2s}
.price-rows details[open] summary::after{content:"Свернуть ↑";transform:none}
@media(hover:hover) and (pointer:fine){.price-rows summary:hover::after{background:var(--ink);color:#fff}}
@media(max-width:600px){.price-rows summary{flex-wrap:wrap;gap:14px}.price-rows summary::after{padding:12px 18px}}

/* Team: a position under the name, when the owner has named one. */
.team-role{margin-top:10px;font-size:17px;line-height:1.4;color:var(--muted)}
