@font-face {
  font-family: Inter;
  src: url('/media/inter-cyr.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: Inter;
  src: url('/media/inter-lat.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root {
  color-scheme: light;
  --paper: #f8f6f0;
  --white: #fffdf8;
  --ink: #233a34;
  --deep: #182c27;
  --muted: #4c5a50;
  --line: #d9d8ca;
  --sand: #eee8db;
  --green: #e6ece2;
  --accent: #f1ae87;
  --accent-ink: #8c4025;
  --focus: #963f20;
  --error: #a1211b;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
  font-synthesis: none;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); }
h1, h2, h3, h4, p, figure { margin: 0; }
h1, h2, h3 { text-wrap: balance; }
a { color: inherit; }
button, select, textarea, input { font: inherit; }
button, summary { cursor: pointer; }
button:disabled { cursor: default; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip { position: fixed; z-index: 10; inset: 12px auto auto 12px; transform: translateY(-180%); background: var(--white); padding: 10px 16px; border-radius: 8px; }
.skip:focus { transform: translateY(0); }
.wrap { width: min(100% - 88px, 1264px); margin-inline: auto; }
.site-header { position: relative; z-index: 1; border-bottom: 1px solid var(--line); }
.header-inner { min-height: 74px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 22px; }
.brand { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; width: fit-content; font-size: 1.08rem; font-weight: 790; letter-spacing: -.045em; text-decoration: none; white-space: nowrap; }
.monogram { display: inline-grid; grid-auto-flow: column; justify-content: center; align-content: center; width: 35px; height: 35px; border-radius: 9px; background: var(--ink); color: var(--white); font-size: 1.28rem; line-height: 1; letter-spacing: -.11em; padding: 0 2px 3px 0; }
.monogram span { color: var(--accent); }
.desktop-nav { display: flex; align-items: center; gap: clamp(22px, 3.3vw, 50px); }
.desktop-nav a, .breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; font-size: .92rem; font-weight: 630; }
.desktop-nav a:hover, .breadcrumbs a:hover { text-decoration: underline; text-underline-offset: .24em; }
.city { display: inline-flex; align-items: center; gap: 8px; justify-self: end; color: var(--ink); font-size: .89rem; font-weight: 650; }
.city > span { width: 8px; height: 8px; background: var(--accent-ink); border-radius: 50%; }
.mobile-menu { display: none; }
.hero { border-bottom: 1px solid var(--line); }
.hero-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); grid-template-areas: "copy photo" "catalog catalog"; gap: 32px clamp(30px, 4.3vw, 68px); align-items: center; padding-block: clamp(32px, 4vw, 62px) 34px; }
.hero-copy { grid-area: copy; }
.hero h1 { max-width: 12em; font-size: clamp(3rem, 5.45vw, 5.25rem); line-height: .99; font-weight: 770; letter-spacing: -.073em; }
.no-break { white-space: nowrap; }
.lead { color: var(--muted); margin-top: 24px; max-width: 37ch; font-size: clamp(1.03rem, 1.5vw, 1.2rem); line-height: 1.62; }
.button { display: inline-flex; justify-content: space-between; align-items: center; gap: 17px; min-height: 55px; padding: 13px 18px; border: 1px solid transparent; border-radius: 9px; line-height: 1.3; font-weight: 690; text-align: left; text-decoration: none; }
.primary { background: var(--ink); color: var(--white); }
.primary:hover { background: var(--deep); }
.primary .arrow { color: var(--accent); }
.arrow { display: inline-flex; align-items: center; flex: 0 0 auto; font-size: 1.23em; line-height: 1; font-weight: 500; }
.hero .button { margin-top: 26px; }
.call-number { display: block; margin-top: 4px; color: #f2d5c1; font-size: .88rem; font-variant-numeric: tabular-nums; }
.hero-photo { grid-area: photo; position: relative; min-width: 0; aspect-ratio: 1.22; border-radius: 15px; background: #d9cbbc; overflow: hidden; }
.hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.quick-links { grid-area: catalog; }
.quick-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0 18px; margin-bottom: 5px; }
.quick-heading h2 { font-size: 1.12rem; font-weight: 735; letter-spacing: -.025em; text-wrap: wrap; }
.quick-heading a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: .94rem; font-weight: 670; text-underline-offset: .22em; }
.quick-heading a .arrow { color: var(--accent-ink); }
.catalog-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 10px; background: var(--white); }
.catalog-links a { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 68px; padding: 12px clamp(13px, 1.6vw, 24px); text-decoration: none; font-size: clamp(.94rem, 1.3vw, 1.1rem); font-weight: 680; line-height: 1.3; }
.catalog-links a + a { border-left: 1px solid var(--line); }
.catalog-links a:hover { background: var(--green); }
.catalog-links a:first-child { border-start-start-radius: 9px; border-end-start-radius: 9px; }
.catalog-links a:last-child { border-start-end-radius: 9px; border-end-end-radius: 9px; }
.catalog-links a .arrow { color: var(--accent-ink); }
.catalog { padding-block: clamp(48px, 5.7vw, 76px); }
#services, #services-title { scroll-margin-top: 26px; }
.catalog .section-copy { max-width: 66ch; }
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin-top: 24px; align-items: start; }
.catalog-group { min-width: 0; background: var(--white); border: 1px solid var(--line); border-radius: 10px; }
.catalog-group summary { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 54px; padding: 10px 14px; list-style: none; }
.catalog-group summary::-webkit-details-marker { display: none; }
.catalog-group summary:hover { background: #f4f5ed; border-radius: 9px; }
.catalog-group summary strong { display: block; font-size: 1rem; line-height: 1.3; letter-spacing: -.018em; }
.group-sign { display: grid; place-items: center; flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; background: var(--green); font-size: 1rem; }
.group-sign::before { content: "+"; }
.catalog-group[open] .group-sign::before { content: "−"; }
.group-preview { display: block; margin-top: 4px; color: var(--muted); font-size: .82rem; line-height: 1.45; }
.catalog-group[open] .group-preview { display: none; }
.catalog-group ul { list-style: none; margin: 0; padding: 0 14px 6px; }
.catalog-group li { border-top: 1px solid var(--line); }
.catalog-group li a { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 10px; padding-block: 5px; font-size: .92rem; text-decoration: none; }
.catalog-group li a:hover { text-decoration: underline; text-underline-offset: .2em; }
.catalog-group li .arrow { color: var(--accent-ink); }
.process { background: var(--white); padding-block: clamp(55px, 6.5vw, 96px); }
h2 { font-size: clamp(2.08rem, 3.8vw, 3.62rem); font-weight: 740; letter-spacing: -.065em; line-height: 1.06; }
.process h2 { margin-bottom: 29px; text-wrap: wrap; }
.process-steps { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 4vw, 58px); padding: 0; margin: 0; }
.process-steps li { padding-top: 16px; border-top: 2px solid #c5d0bd; }
.process-steps h3 { font-size: clamp(1.05rem, 1.7vw, 1.28rem); font-weight: 725; text-wrap: wrap; letter-spacing: -.033em; }
.process-steps p { margin-top: 6px; color: var(--muted); }
.breadcrumbs { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: var(--muted); padding-top: 12px; font-size: .88rem; }
.breadcrumbs a { font-size: inherit; }
.breadcrumbs [aria-current] { font-weight: 660; }
.service-hero .hero-layout { padding-block: 18px clamp(34px, 4vw, 62px); grid-template-areas: "copy photo"; }
.service-hero h1 { font-size: clamp(2.8rem, 4.3vw, 4.18rem); max-width: 13em; }
.service-hero .hero-photo { aspect-ratio: 1.5; }
.service-text-hero .hero-layout { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); align-items: end; }
.service-aside { grid-area: photo; border-top: 2px solid #b99376; padding: 17px 0 3px; max-width: 32ch; }
.service-aside h2 { font-size: 1.15rem; letter-spacing: -.02em; }
.service-aside p { margin-top: 7px; color: var(--muted); }
.service-conditions { max-width: 52ch; margin-top: 14px; border-left: 2px solid #c19172; padding-left: 12px; font-size: .93rem; color: var(--muted); }
.symptoms { padding-block: clamp(52px, 6.4vw, 92px); background: var(--white); }
.symptom-layout, .request-layout { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: clamp(32px, 6vw, 92px); align-items: start; }
.section-copy { margin-top: 14px; max-width: 44ch; color: var(--muted); }
.tip { color: var(--muted); font-size: .95rem; margin-top: 20px; padding-left: 14px; border-left: 2px solid #c19172; max-width: 36ch; }
.symptom-list { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid var(--line); }
.symptom-list li { display: flex; border-bottom: 1px solid var(--line); }
.symptom-list li:nth-child(even) { border-left: 1px solid var(--line); }
.symptom { display: flex; gap: 12px; align-items: center; justify-content: space-between; width: 100%; min-height: 100px; padding: 13px 15px; border: 0; background: transparent; color: var(--ink); text-align: left; }
.symptom strong { display: block; font-size: 1rem; line-height: 1.27; letter-spacing: -.017em; }
.symptom small { display: block; color: var(--muted); font-size: .86rem; line-height: 1.39; margin-top: 6px; }
.symptom .arrow { color: var(--accent-ink); }
button.symptom:hover:not(:disabled) { background: var(--green); }
.symptom:focus-visible { outline-offset: -3px; }
.request { background: var(--green); border-block: 1px solid #d5dfd2; padding-block: clamp(53px, 6.4vw, 92px); }
#request-title, #callback, #problem, #area, #phone, #service { scroll-margin-top: 22px; }
.costs { margin: 24px 0 0; }
.costs > div { padding-block: 13px; border-top: 1px solid #c8d4c6; }
.costs > div:last-child { border-bottom: 1px solid #c8d4c6; }
.costs dt { font-size: 1.04rem; font-weight: 730; letter-spacing: -.024em; }
.costs dd { margin: 4px 0 0; color: var(--muted); font-size: .95rem; }
.form-card { padding: clamp(19px, 3.2vw, 38px); min-width: 0; background: var(--white); border: 1px solid #d6ded0; border-radius: 16px; box-shadow: 0 16px 40px #22372f0b; }
.form-card h3 { font-size: clamp(1.42rem, 2.8vw, 2.05rem); font-weight: 755; letter-spacing: -.05em; line-height: 1.15; text-wrap: wrap; }
.phone-card .button { margin-top: 17px; }
.demo-note { padding: 11px 13px; margin: 15px 0 18px; border-radius: 7px; background: #f4eadc; color: #614a39; font-size: .86rem; }
fieldset { padding: 0; border: 0; margin: 0; min-width: 0; }
fieldset:disabled { opacity: .7; }
.field + .field, .field-row { margin-top: 14px; }
.field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.field-row .field + .field { margin-top: 0; }
.field label { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 7px; font-size: .94rem; font-weight: 690; margin-bottom: 6px; }
.field label span { color: var(--muted); font-size: .76rem; font-weight: 470; }
.field input, .field textarea, .field select { display: block; width: 100%; min-height: 47px; min-width: 0; border: 1px solid #88948a; border-radius: 7px; background: #fff; color: var(--ink); padding: 9px 11px; }
.field input::placeholder, .field textarea::placeholder { color: #617067; opacity: 1; }
.field select:invalid { color: #58665d; }
.field select option { color: var(--ink); }
.field textarea { resize: vertical; }
.field [aria-invalid="true"] { border-color: var(--error); }
.error, .field-hint { margin-top: 5px; font-size: .79rem; }
.field-conditions { margin-top: 8px; color: var(--muted); font-size: .83rem; }
.field-hint { color: var(--muted); }
.error { color: var(--error); font-weight: 640; }
.cost-link { color: var(--muted); font-size: .85rem; margin-top: 12px; }
.cost-link a { display: inline-flex; min-height: 44px; align-items: center; text-underline-offset: .18em; }
.submit { width: 100%; margin-top: 6px; }
.confirmation { border-top: 1px solid var(--line); padding-top: 20px; }
.confirmation h4 { font-size: 1.32rem; font-weight: 750; letter-spacing: -.03em; }
.confirmation p { margin: 7px 0 16px; color: var(--muted); }
.secondary { color: var(--ink); background: var(--white); border-color: #8a9b8d; }
.secondary:hover { background: var(--green); }
.site-footer { background: var(--ink); color: var(--white); padding-block: 27px; }
.site-footer :focus-visible { outline-color: var(--accent); }
.footer-layout { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 45px; align-items: center; }
.footer-layout .monogram { background: #3c5349; }
.footer-layout nav { display: grid; grid-template-columns: repeat(2, auto); gap: 0 24px; }
.footer-layout nav a { display: inline-flex; gap: 7px; min-height: 44px; align-items: center; font-size: .9rem; text-decoration: none; }
.footer-layout nav a:hover { text-decoration: underline; text-underline-offset: .2em; }
.footer-layout nav .arrow { color: var(--accent); }

@media (max-width: 1000px) {
  .wrap { width: calc(100% - 56px); }
  .hero h1 { font-size: clamp(2.63rem, 5.65vw, 4.1rem); }
  .service-hero h1 { font-size: clamp(2.55rem, 4.85vw, 3.5rem); }
  .field-row { grid-template-columns: minmax(0, 1fr); }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .wrap { width: calc(100% - 40px); }
  .header-inner { min-height: 64px; grid-template-columns: 1fr auto auto; gap: 13px; }
  .brand { font-size: 1rem; gap: 7px; }
  .monogram { width: 31px; height: 31px; }
  .city { gap: 5px; font-size: .8rem; }
  .city > span { width: 6px; height: 6px; }
  .desktop-nav { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu summary { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 6px; font-size: .84rem; font-weight: 690; list-style: none; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .menu-icon { position: relative; width: 13px; height: 8px; border-block: 1.5px solid currentColor; }
  .mobile-menu[open] .menu-icon { height: 0; border-bottom: 0; transform: rotate(45deg); }
  .mobile-menu[open] .menu-icon::after { content: ""; position: absolute; width: 13px; border-top: 1.5px solid currentColor; transform: translateY(-1.5px) rotate(90deg); }
  .mobile-menu nav { position: absolute; top: calc(100% + 1px); right: 0; left: 0; background: var(--white); padding: 5px 20px 14px; border-bottom: 1px solid var(--line); box-shadow: 0 15px 25px #182c2720; }
  .mobile-menu nav a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 46px; border-bottom: 1px solid var(--line); font-weight: 660; text-decoration: none; }
  .mobile-menu nav a[aria-current] { color: var(--accent-ink); }
  .hero-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "copy" "catalog" "photo"; gap: 24px; padding-block: 29px 26px; }
  .hero h1 { max-width: 13em; font-size: clamp(2.58rem, 8.8vw, 3.95rem); letter-spacing: -.068em; }
  .service-hero .hero-layout { grid-template-areas: "copy" "photo"; padding-block: 12px 25px; }
  .service-text-hero .hero-layout { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .service-hero h1 { font-size: clamp(2.25rem, 7.55vw, 3.3rem); }
  .hero-photo { aspect-ratio: 1.53; }
  .lead { margin-top: 14px; }
  .hero .button { margin-top: 17px; }
  .quick-heading h2 { font-size: 1rem; }
  .quick-heading a { font-size: .88rem; }
  .catalog-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-links a { min-height: 54px; padding: 8px 11px; font-size: .91rem; }
  .catalog-links a:nth-child(odd) { border-left: 0; }
  .catalog-links a:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .catalog-links a:first-child { border-end-start-radius: 0; }
  .catalog-links a:last-child { border-start-end-radius: 0; }
  .catalog-grid { grid-template-columns: minmax(0, 1fr); gap: 9px; margin-top: 18px; }
  .process, .symptoms, .request { padding-block: 44px; }
  .process h2 { margin-bottom: 17px; }
  .process-steps, .symptom-layout, .request-layout { grid-template-columns: minmax(0, 1fr); gap: 17px; }
  .request-layout { gap: 24px; }
  .wide-only { display: none; }
  .tip { margin-top: 13px; }
  .footer-layout { grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .footer-layout nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; }
  .footer-layout nav a { font-size: .81rem; }
}
@media (max-width: 420px) {
  .wrap { width: calc(100% - 32px); }
  .header-inner { gap: 7px; }
  .symptom-list { grid-template-columns: minmax(0, 1fr); }
  .symptom-list li:nth-child(even) { border-left: 0; }
  .symptom { min-height: 71px; padding-inline: 3px; }
  .symptom small { margin-top: 3px; }
}

.catalog-links a > span:first-child, .footer-layout nav a > span:first-child {
  min-width: 0;
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  .hero:not(.service-hero) h1 .no-break:last-child { display: block; }
}
@media (max-width: 360px) {
  .hero h1 { font-size: 2.17rem; }
  .service-hero h1 { font-size: 2rem; }
  .catalog-links a { font-size: .8rem; padding-inline: 8px; gap: 5px; }
  .footer-layout nav a { font-size: .75rem; }
}
