:root {
  --north: #1b3546;
  --north-deep: #102735;
  --ink: #25333a;
  --muted: #5d6c72;
  --mist: #eef3f3;
  --paper: #faf9f6;
  --sand: #e7dfd2;
  --copper: #c18d60;
  --white: #fff;
  --line: rgba(27, 53, 70, 0.17);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: 82px; }
body { width: 100%; max-width: 100%; margin: 0; overflow-x: clip; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.65; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
img { display: block; max-width: 100%; }
address { font-style: normal; }
.north-container { width: min(1190px, calc(100% - 48px)); margin: 0 auto; }
.skip-link { position: fixed; z-index: 100; top: -100px; left: 24px; padding: 10px 16px; color: var(--white); background: var(--north); }
.skip-link:focus { top: 16px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.north-header { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid transparent; background: rgba(250, 249, 246, .92); backdrop-filter: blur(12px); transition: border-color .2s, box-shadow .2s; }
.north-header.is-scrolled { border-color: var(--line); box-shadow: 0 5px 25px rgba(16, 39, 53, .07); }
.header-inner { display: flex; min-height: 82px; align-items: center; gap: 24px; }
.north-brand { display: inline-flex; flex: 0 0 auto; align-items: center; line-height: 1.15; }
.north-brand strong, .north-brand small { display: block; }
.north-brand strong { color: var(--north); font-size: 16px; font-weight: 800; letter-spacing: .01em; }
.north-brand small { margin-top: 3px; color: #6d787b; font-size: 8px; letter-spacing: .07em; text-transform: uppercase; }
.north-nav { display: flex; flex: 1; justify-content: center; gap: 24px; }
.north-nav a { position: relative; padding: 6px 0; color: #43555e; font-size: 12px; font-weight: 700; }
.north-nav a::after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: var(--copper); content: ""; transform: scaleX(0); transition: transform .2s; }
.north-nav a:hover::after, .north-nav a:focus-visible::after { transform: scaleX(1); }
.header-call { flex: 0 0 auto; text-align: right; line-height: 1.25; }
.header-call span, .header-call strong { display: block; }
.header-call span { color: #718087; font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.header-call strong { color: var(--north); font-size: 15px; }
.menu-button { display: none; }

.north-hero { overflow: hidden; padding: 52px 0 60px; background: linear-gradient(110deg, #faf9f6 0%, #f8f8f5 48%, #e5edee 100%); }
.hero-grid { display: grid; grid-template-columns: .92fr 1.08fr; align-items: center; gap: 68px; min-height: 560px; }
.hero-copy, .hero-photo { min-width: 0; }
.hero-copy { transform: translateY(-28px); }
.overline { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; color: #5a6e75; font-size: 10px; font-weight: 800; letter-spacing: .14em; line-height: 1.2; text-transform: uppercase; }
.overline span { display: inline-block; width: 26px; height: 1px; background: var(--copper); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: .98; letter-spacing: -.035em; }
h1 { max-width: 650px; margin-bottom: 23px; color: var(--north); font-size: clamp(48px, 5vw, 72px); }
h1 em { display: block; margin-top: 8px; color: #526f78; font-size: .61em; font-style: normal; letter-spacing: -.02em; }
h2 { margin-bottom: 22px; color: var(--north); font-size: clamp(38px, 4vw, 59px); }
.hero-lead { max-width: 530px; margin-bottom: 22px; color: #4c5e66; font-size: 16px; }
.hero-benefits { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; max-width: 540px; padding: 0; margin: 0 0 28px; list-style: none; background: rgba(27,53,70,.13); }
.hero-benefits li { min-height: 59px; padding: 9px 13px; border-left: 2px solid var(--copper); background: rgba(250,249,246,.93); }
.hero-benefits strong, .hero-benefits span { display: block; line-height: 1.25; }
.hero-benefits strong { color: var(--north); font-size: 12px; }
.hero-benefits span { margin-top: 3px; color: #63727a; font-size: 9px; }
.hero-visit { display: grid; gap: 3px; max-width: 540px; padding: 11px 13px; margin: -10px 0 19px; border-left: 2px solid var(--copper); background: rgba(255,255,255,.55); }
.hero-visit strong { color: var(--north); font-size: 11px; }
.hero-visit span { color: #5a6b72; font-size: 10px; line-height: 1.45; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 11px; }
.north-button { display: inline-flex; min-height: 53px; align-items: center; justify-content: center; gap: 12px; padding: 13px 20px; border: 1px solid transparent; border-radius: 0; font-size: 12px; font-weight: 800; transition: background .2s, color .2s, transform .2s; }
.north-button:hover { transform: translateY(-2px); }
.north-button--solid { color: var(--white); background: var(--north); }
.north-button--solid:hover { background: var(--north-deep); }
.north-button--outline { color: var(--north); border-color: rgba(27,53,70,.45); }
.north-button--outline:hover { color: var(--white); background: var(--north); }
.north-button--warm { color: var(--north); background: #f2e3d1; }
.north-button--warm:hover { background: var(--white); }
.hero-note { max-width: 520px; margin: 17px 0 0; color: #748087; font-size: 10px; line-height: 1.5; }
.hero-photo { position: relative; display: grid; width: min(100%, 560px); min-height: 560px; margin: 0; place-items: center; justify-self: end; transform: translateY(-24px); }
.hero-photo::before { position: absolute; z-index: 0; top: 20px; right: 2%; bottom: 31px; left: 14%; border: 1px solid rgba(193,141,96,.7); content: ""; }
.hero-photo::after { position: absolute; z-index: 0; top: 40px; right: 7%; bottom: 0; left: 20%; border-radius: 280px 280px 0 0; background: #dce8e9; content: ""; }
.hero-photo img { position: relative; z-index: 1; width: min(92%, 500px); height: 510px; margin: 0 0 13px; object-fit: contain; mix-blend-mode: multiply; filter: drop-shadow(18px 22px 14px rgba(16,39,53,.16)); }
.hero-price-tag { position: absolute; z-index: 2; top: 88px; left: 0; padding: 15px 18px; color: var(--white); background: var(--north); line-height: 1.25; }
.hero-price-tag span, .hero-price-tag strong { display: block; }
.hero-price-tag span { color: #d1e0e2; font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.hero-price-tag strong { margin-top: 4px; font-size: 17px; }
.hero-photo figcaption { position: absolute; z-index: 2; right: 0; bottom: 0; width: 252px; padding: 18px 22px; color: var(--white); background: var(--north); line-height: 1.25; }
.hero-photo figcaption span, .hero-photo figcaption strong { display: block; }
.hero-photo figcaption span { margin-bottom: 4px; color: #c7d4d7; font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.hero-photo figcaption strong { font-family: var(--serif); font-size: 24px; font-weight: 600; }

.facts-strip { color: #dce7e7; background: var(--north); }
.facts-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.facts-grid article { min-height: 115px; display: flex; align-items: center; gap: 13px; padding: 21px 23px; border-right: 1px solid rgba(255,255,255,.14); }
.facts-grid article:first-child { border-left: 1px solid rgba(255,255,255,.14); }
.facts-grid strong, .facts-grid span { display: block; }
.facts-grid strong { flex: 0 0 auto; color: #efc39e; font-family: var(--serif); font-size: 31px; font-weight: 600; line-height: 1; }
.facts-grid small { font-size: .5em; }
.facts-grid span { max-width: 105px; font-size: 10px; line-height: 1.4; }

.north-section { padding: 110px 0; }
.about-section { background: var(--paper); }
.about-grid { display: grid; grid-template-columns: 1.05fr .91fr .78fr; align-items: start; gap: 35px; }
.about-title h2 { max-width: 405px; }
.about-title > p:not(.overline) { max-width: 390px; color: var(--muted); font-size: 14px; }
.text-arrow { display: inline-flex; align-items: center; gap: 12px; margin-top: 10px; color: var(--north); font-size: 12px; font-weight: 800; }
.text-arrow span { color: var(--copper); font-size: 20px; transition: transform .2s; }
.text-arrow:hover span { transform: translateX(4px); }
.about-photo { position: relative; min-height: 390px; padding: 0 0 22px 20px; }
.about-photo::before { position: absolute; top: 22px; right: 20px; bottom: 0; left: 0; background: var(--sand); content: ""; }
.about-photo img { position: relative; z-index: 1; width: 100%; height: 375px; object-fit: cover; filter: saturate(.77); }
.about-details { padding: 10px 0 0; }
.about-details > p { color: var(--muted); font-size: 13px; }
.quiet-card { display: flex; gap: 13px; padding: 18px 0 0; border-top: 1px solid var(--line); }
.quiet-card span { color: var(--copper); font-size: 21px; line-height: 1; }
.quiet-card p { margin: 0; color: var(--north); font-family: var(--serif); font-size: 20px; font-weight: 600; line-height: 1.15; }

.catalog-callout { overflow: hidden; color: var(--white); background: var(--north-deep); }
.catalog-callout-grid { display: grid; grid-template-columns: .93fr 1.07fr; gap: 100px; padding: 92px 0; }
.overline--light { color: #c4d3d5; }
.catalog-callout h2 { color: var(--white); }
.catalog-callout > .north-container > div > p:not(.overline) { max-width: 455px; color: #b9c9cb; font-size: 14px; }
.catalog-preview { border-top: 1px solid rgba(255,255,255,.25); }
.catalog-preview a { display: block; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.25); color: #fff; font-family: var(--serif); font-size: 27px; font-weight: 600; line-height: 1.15; transition: padding .2s, color .2s; }
.catalog-preview a:hover { padding-right: 8px; padding-left: 8px; color: #f1d4b6; }

.prices-section { padding: 78px 0; color: var(--white); background: var(--north); }
.prices-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 94px; align-items: center; }
.prices-intro h2 { color: var(--white); font-size: clamp(40px, 3.5vw, 48px); }
.payment-lead { margin: 0 0 11px; color: #dce7e8; font-size: 14px; font-weight: 700; }
.payment-options { padding: 0; margin: 0; list-style: none; }
.payment-options li { padding: 9px 0 10px; border-top: 1px solid rgba(255,255,255,.18); }
.payment-options strong, .payment-options span { display: block; }
.payment-options strong { color: #f0c9a6; font-family: var(--serif); font-size: 21px; font-weight: 600; line-height: 1.2; }
.payment-options span { margin-top: 3px; color: #c8d8da; font-size: 11px; line-height: 1.45; }
.gift-note { padding: 4px 0 4px 13px; margin: 14px 0 0; border-left: 2px solid var(--copper); color: #f4d8bc; font-size: 12px; font-weight: 700; line-height: 1.45; }
.payment-disclaimer { margin: 13px 0 18px; color: #b9cacc; font-size: 11px; line-height: 1.45; }
.north-button--light { color: var(--north); background: #f2e3d1; }
.north-button--light:hover { color: var(--north-deep); background: var(--white); }
.price-list { position: relative; }
.price-card { position: relative; display: flex; min-height: 95px; align-items: center; justify-content: space-between; padding: 18px 25px; margin-bottom: 10px; background: rgba(255,255,255,.09); }
.price-card div span, .price-card div strong { display: block; }
.price-card div span { color: #c8d8da; font-size: 11px; }
.price-card div strong { color: var(--white); font-size: 15px; }
.price-card b { color: #f0c9a6; font-family: var(--serif); font-size: 27px; font-weight: 600; line-height: 1.1; white-space: nowrap; }
.price-card--featured { border: 1px solid rgba(193,141,96,.8); background: rgba(255,255,255,.13); }
.price-card em { position: absolute; top: -10px; left: 22px; padding: 3px 9px; color: var(--north-deep); background: #f0c9a6; font-size: 9px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.price-note { margin: 18px 0 0; color: #b9cacc; font-size: 11px; line-height: 1.55; }

.offer-section { background: #e3e9e8; }
.offer-content { display: grid; grid-template-columns: minmax(120px, .35fr) minmax(300px, .9fr) minmax(360px, 1.15fr); gap: 52px; align-items: center; padding: 48px 0; }
.offer-sign { display: flex; align-items: baseline; justify-content: center; gap: 2px; color: var(--north); font-family: var(--serif); font-size: 70px; font-weight: 600; line-height: 1; transform: translateY(-5px); }
.offer-sign-minus { font-family: var(--sans); font-size: .5em; font-weight: 700; transform: translateY(-.16em); }
.offer-content h2 { margin: 0; font-size: clamp(28px, 3vw, 42px); }
.offer-copy { display: grid; gap: 10px; }
.offer-copy p { margin: 0; }
.offer-lead { color: var(--north-deep); font-size: 15px; font-weight: 800; line-height: 1.35; }
.offer-details { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 16px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; line-height: 1.45; }
.offer-details span:first-child { color: var(--north); font-weight: 800; white-space: nowrap; }
.offer-copy .text-arrow { min-height: 42px; align-self: start; padding: 9px 14px; margin-top: 2px; border: 1px solid rgba(27,53,70,.34); background: rgba(250,249,246,.62); transition: background .2s, color .2s, border-color .2s; }
.offer-copy .text-arrow:hover, .offer-copy .text-arrow:focus-visible { color: var(--white); border-color: var(--north); background: var(--north); }

.process-section { background: var(--paper); }
.process-heading { margin-bottom: 44px; text-align: center; }
.process-heading .overline { justify-content: center; }
.process-heading h2 { margin-bottom: 0; }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; padding: 0; margin: 0 0 100px; list-style: none; }
.steps li { position: relative; padding-top: 44px; }
.steps li:not(:last-child)::after { position: absolute; top: 18px; right: -13px; left: 42px; border-top: 1px solid rgba(27,53,70,.22); content: ""; }
.steps span { position: absolute; z-index: 1; top: 0; display: grid; width: 37px; height: 37px; place-items: center; color: var(--north); border: 1px solid var(--copper); border-radius: 50%; background: var(--paper); font-size: 11px; font-weight: 800; }
.steps h3 { margin-bottom: 9px; color: var(--north); font-size: 21px; }
.steps p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.services { display: grid; grid-template-columns: 1fr 1fr; background: var(--mist); }
.services-image { display: grid; min-height: 480px; place-items: center; background: #dce7e8; }
.services-image img { width: 100%; height: 100%; object-fit: contain; }
.services-content { align-self: center; padding: 63px 72px; }
.services-content h2 { margin-bottom: 15px; }
.services-title { font-size: clamp(31px, 3vw, 42px); }
.services-content > p:not(.overline) { color: var(--muted); font-size: 14px; }
.contract-warranty { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 22px; padding: 17px 0; margin: 23px 0 18px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.contract-warranty > p { grid-column: 1 / -1; margin: 0; color: var(--north) !important; font-size: 10px !important; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.contract-warranty > div { min-width: 0; padding-left: 14px; border-left: 2px solid var(--copper); }
.contract-warranty strong, .contract-warranty span { display: block; }
.contract-warranty strong { color: var(--north); font-family: var(--serif); font-size: 31px; font-weight: 600; line-height: 1; }
.contract-warranty span { margin-top: 5px; color: var(--muted); font-size: 10px; font-weight: 700; line-height: 1.35; }
.services-guarantee { padding-left: 13px; margin: 15px 0 0; border-left: 2px solid var(--copper); color: var(--north) !important; font-size: 13px !important; font-weight: 800; }
.check-list { padding: 0; margin: 24px 0 29px; list-style: none; }
.check-list li { position: relative; padding: 7px 0 7px 22px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.check-list li::before { position: absolute; left: 0; color: var(--copper); content: "✓"; font-weight: 800; }

.visit-section { padding-bottom: 56px; background: var(--paper); }
.visit-layout { display: grid; grid-template-columns: .9fr .82fr 1.12fr; gap: 53px; align-items: start; }
.visit-intro > p:not(.overline) { max-width: 310px; color: var(--muted); font-size: 14px; }
.schedule-card { padding: 28px 24px; background: #e3e0d9; }
.schedule-card > p { margin-bottom: 9px; color: #697170; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.schedule-card h3 { margin-bottom: 22px; color: var(--north); font-size: 36px; }
.schedule-card div { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; border-top: 1px solid rgba(27,53,70,.2); font-size: 10px; line-height: 1.45; }
.schedule-card div span { color: #536168; }
.schedule-card div strong { color: var(--north); text-align: right; font-size: 10px; }
.schedule-card small { display: block; padding-top: 12px; color: #6d7675; font-size: 9px; line-height: 1.4; }
.visit-rules { padding-top: 8px; }
.visit-rules h3 { margin-bottom: 18px; color: var(--north); font-size: 32px; }
.visit-rules ul { padding: 0; margin: 0 0 17px; list-style: none; }
.visit-rules li { position: relative; padding: 8px 0 8px 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.visit-rules li::before { position: absolute; top: 8px; left: 0; color: var(--copper); content: "•"; font-size: 17px; line-height: 1.35; }
.visit-rules li:last-child { border-bottom: 1px solid var(--line); }
.visit-rules > p { color: var(--north); font-family: var(--serif); font-size: 19px; font-weight: 600; line-height: 1.25; }

.faq-section { padding: 56px 0 103px; }
.faq-grid { display: grid; grid-template-columns: .86fr 1.14fr; gap: 80px; }
.faq-grid > div > p:not(.overline) { max-width: 320px; color: var(--muted); font-size: 13px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0; color: var(--north); cursor: pointer; font-family: var(--serif); font-size: 22px; font-weight: 600; line-height: 1.2; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--copper); font-family: var(--sans); font-size: 24px; font-weight: 400; transition: transform .2s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { max-width: 620px; padding: 0 35px 18px 0; margin: 0; color: var(--muted); font-size: 12px; }

.contacts-section { color: var(--white); background: var(--north-deep); }
.contacts-grid { display: grid; grid-template-columns: 1fr .88fr; gap: 100px; padding: 70px 0; align-items: center; }
.contacts-section h2 { margin-bottom: 15px; color: var(--white); font-size: clamp(37px, 4vw, 55px); }
.contacts-copy > p:not(.overline) { max-width: 455px; margin: 0; color: #c5d3d5; font-size: 15px; }
.contact-card { padding: 0; }
.contact-card > span { display: block; color: #b7cbcd; font-size: 11px; }
.contact-phone { display: inline-block; margin: 2px 0 3px; color: #f4d8bc; font-family: var(--serif); font-size: clamp(29px, 3.1vw, 42px); font-weight: 600; letter-spacing: -.04em; line-height: 1.2; }
.contact-email { display: table; margin: 0 0 25px; color: #d7e4e5; font-size: 13px; font-weight: 700; line-height: 1.5; transition: color .2s; }
.contact-email:hover, .contact-email:focus-visible { color: var(--white); }
.contact-buttons { display: flex; flex-wrap: wrap; gap: 10px; }
.north-button--contact { color: var(--white); border-color: rgba(255,255,255,.5); }
.north-button--contact:hover { color: var(--north); border-color: var(--white); background: var(--white); }
.contact-card small { display: block; margin-top: 17px; color: #b7cbcd; font-size: 10px; line-height: 1.45; }

.callback-widget { position: fixed; z-index: 90; right: 28px; bottom: 28px; display: grid; width: 66px; height: 66px; padding: 0; color: var(--white); border: 3px solid var(--paper); border-radius: 50%; place-items: center; background: var(--north-deep); box-shadow: 0 0 0 5px rgba(193,141,96,.86), 0 13px 30px rgba(7,23,20,.3); cursor: pointer; transition: transform .2s, background .2s, box-shadow .2s; }
.callback-widget::after { position: absolute; right: calc(100% + 14px); width: max-content; padding: 8px 10px; color: var(--north-deep); background: var(--paper); box-shadow: 0 7px 20px rgba(7,23,20,.14); content: "Заказать звонок"; font-size: 11px; font-weight: 800; letter-spacing: .04em; opacity: 0; pointer-events: none; transform: translateX(5px); transition: opacity .2s, transform .2s; }
.callback-widget:hover { background: #285165; box-shadow: 0 0 0 5px var(--copper), 0 16px 34px rgba(7,23,20,.35); transform: translateY(-3px); }
.callback-widget:hover::after, .callback-widget:focus-visible::after { opacity: 1; transform: translateX(0); }
.callback-widget:focus-visible { outline: 2px solid var(--copper); outline-offset: 4px; }
.callback-widget svg { width: 29px; height: 29px; fill: currentColor; }
.contact-choice-dialog { position: fixed; z-index: 100; inset: 0; display: grid; padding: 24px; place-items: center; opacity: 0; pointer-events: none; transition: opacity .2s; }
.contact-choice-dialog.is-open { opacity: 1; pointer-events: auto; }
.contact-choice-backdrop { position: absolute; inset: 0; border: 0; background: rgba(16,39,53,.78); cursor: default; }
.contact-choice-content { position: relative; z-index: 1; width: min(100%, 450px); max-height: calc(100vh - 48px); padding: 42px; overflow-y: auto; background: var(--paper); box-shadow: 0 24px 70px rgba(0,0,0,.25); transform: translateY(10px); transition: transform .2s; }
.contact-choice-dialog.is-open .contact-choice-content { transform: translateY(0); }
.contact-choice-close { position: absolute; top: 12px; right: 15px; width: 36px; height: 36px; padding: 0; color: var(--north); border: 0; background: transparent; cursor: pointer; font-size: 30px; font-weight: 300; line-height: 1; }
.contact-choice-content h2 { margin: 8px 0 10px; font-size: clamp(30px, 4vw, 40px); }
.contact-choice-content > p:not(.overline) { margin: 0 0 20px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.contact-choice-selected strong { color: var(--north); }
.contact-form { display: grid; gap: 12px; }
.contact-form-field { display: grid; gap: 5px; color: var(--north); font-size: 12px; font-weight: 800; }
.contact-form-field input, .contact-form-field select { width: 100%; padding: 11px 12px; color: var(--ink); border: 1px solid rgba(27,53,70,.28); border-radius: 2px; background: var(--white); font: inherit; font-size: 14px; font-weight: 500; line-height: 1.45; }
.contact-form-field input:focus, .contact-form-field select:focus { border-color: var(--north); outline: 2px solid rgba(193,141,96,.45); outline-offset: 1px; }
.contact-form-consent { display: flex; align-items: flex-start; gap: 9px; color: var(--muted); font-size: 11px; font-weight: 500; line-height: 1.45; }
.contact-form-consent input { flex: 0 0 auto; width: 15px; height: 15px; margin: 1px 0 0; accent-color: var(--north); }
.contact-form-consent a { color: var(--north); text-decoration: underline; text-decoration-color: rgba(27,53,70,.48); text-underline-offset: 2px; }
.contact-form-consent a:hover, .contact-form-consent a:focus-visible { color: #8a6945; }
.contact-form-submit { width: 100%; margin-top: 3px; }
.contact-form-submit:disabled { cursor: wait; opacity: .7; transform: none; }
.contact-form-status { min-height: 1.5em; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.contact-form-status.is-success { color: #1c6443; }
.contact-form-status.is-error { color: #9a342d; }
.contact-form-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.contact-choice-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.contact-choice-actions .north-button { min-height: 48px; padding-right: 10px; padding-left: 10px; text-align: center; }
.contact-choice-contact-note { margin-bottom: 0; }
.contact-choice-content small { display: block; margin-top: 18px; color: #63727a; font-size: 10px; line-height: 1.5; }
body.has-contact-choice { overflow: hidden; }
.north-footer { color: #b5c1c3; background: var(--north-deep); }
.footer-inner { display: grid; grid-template-columns: 1fr auto auto; gap: 34px; padding: 30px 0; align-items: center; }
.north-brand--footer strong { color: var(--white); }
.north-brand--footer small { color: #aebec1; }
.footer-inner > p { margin: 0; font-size: 10px; line-height: 1.5; }
.footer-inner > p:last-child { white-space: nowrap; }
.north-footer-policy { color: #d5e0e2; font-size: 10px; line-height: 1.45; text-decoration: underline; text-decoration-color: rgba(213,224,226,.4); text-underline-offset: 2px; }
.north-footer-policy:hover, .north-footer-policy:focus-visible { color: var(--white); }
.north-footer-legal { grid-column: 1 / -1; padding-top: 14px; color: rgba(202,216,219,.72); border-top: 1px solid rgba(255,255,255,.13); font-size: 10px; line-height: 1.55; }
.north-footer-legal summary { display: flex; width: fit-content; align-items: center; gap: 8px; color: #d8e4e5; cursor: pointer; list-style: none; text-decoration: underline; text-decoration-color: rgba(216,228,229,.45); text-underline-offset: 3px; }
.north-footer-legal summary::-webkit-details-marker { display: none; }
.north-footer-legal summary::after { color: var(--copper); content: "+"; font-size: 15px; line-height: 1; text-decoration: none; }
.north-footer-legal[open] summary::after { content: "−"; }
.north-footer-legal > div { display: grid; gap: 3px; max-width: 720px; padding-top: 12px; }
.north-footer-legal p { margin: 0; }

@media (max-width: 1050px) {
  .north-nav { gap: 14px; }
  .hero-grid { gap: 42px; }
  .catalog-callout-grid { gap: 60px; }
  .prices-grid { gap: 60px; }
  .services-content { padding: 48px; }
}

@media (max-width: 850px) {
  .north-container { width: min(650px, calc(100vw - 32px)); }
  .header-inner { min-height: 70px; }
  .menu-button { display: grid; width: 40px; height: 40px; place-content: center; gap: 6px; padding: 0; margin-left: auto; color: var(--north); border: 0; background: transparent; cursor: pointer; }
  .menu-button span:not(.visually-hidden) { display: block; width: 22px; height: 1px; background: currentColor; transition: transform .2s; }
  .menu-button[aria-expanded="true"] span:nth-child(2) { transform: translateY(3.5px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-3.5px) rotate(-45deg); }
  .north-nav { position: absolute; top: 100%; right: 0; left: 0; display: grid; gap: 0; padding: 8px 16px 18px; border-bottom: 1px solid var(--line); background: var(--paper); box-shadow: 0 15px 25px rgba(16,39,53,.08); opacity: 0; pointer-events: none; transform: translateY(-8px); transition: opacity .2s, transform .2s; }
  .north-nav.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
  .north-nav a { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .north-nav a::after { display: none; }
  .header-call { display: none; }
  .hero-grid, .about-grid, .prices-grid, .offer-content, .visit-layout, .faq-grid, .contacts-grid, .services { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .hero-grid > *, .about-grid > *, .prices-grid > *, .offer-content > *, .visit-layout > *, .faq-grid > *, .contacts-grid > *, .services > * { min-width: 0; }
  .north-hero { padding: 44px 0 57px; }
  .hero-grid { min-height: 0; }
  .hero-copy { transform: none; }
  .hero-photo { width: min(100%, 500px); min-height: 460px; justify-self: start; transform: none; }
  .hero-photo img { height: 390px; }
  .facts-grid { grid-template-columns: 1fr 1fr; }
  .facts-grid article:nth-child(3) { border-left: 1px solid rgba(255,255,255,.14); }
  .facts-grid article { min-height: 93px; }
  .north-section { padding: 75px 0; }
  .prices-section { padding: 68px 0; }
  .offer-content { gap: 17px; padding: 46px 0; }
  .offer-sign { justify-content: flex-start; font-size: 60px; transform: none; }
  .offer-details { grid-template-columns: 1fr; gap: 4px; }
  .steps { grid-template-columns: 1fr 1fr; gap: 30px 20px; margin-bottom: 60px; }
  .steps li:not(:last-child)::after { display: none; }
  .services-image { min-height: 310px; }
  .services-content { padding: 40px 24px; }
  .visit-section { padding-bottom: 55px; }
  .faq-section { padding-top: 55px; }
  .catalog-callout-grid { grid-template-columns: 1fr; gap: 38px; padding: 70px 0; }
  .contact-choice-dialog { display: block; padding: 0; }
  .contact-choice-content { width: 100%; height: 100%; max-height: none; padding: 34px 24px 28px; }
  .footer-inner { grid-template-columns: 1fr; gap: 15px; }
}

@media (max-width: 520px) {
  body { font-size: 15px; }
  .north-container { width: calc(100vw - 32px); }
  .header-inner { min-height: 64px; gap: 12px; }
  .north-brand strong { font-size: 14px; }
  .menu-button { flex: 0 0 44px; width: 44px; height: 44px; }
  .north-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px 16px 12px; }
  .north-nav a { min-width: 0; padding: 10px 8px; border-bottom: 1px solid var(--line); text-align: center; }
  .north-nav a:nth-child(odd) { border-right: 1px solid var(--line); }
  .north-nav a:nth-last-child(-n+2) { border-bottom: 0; }
  h1 { font-size: 43px; line-height: 1; }
  h2 { font-size: 35px; }
  .north-hero { padding: 18px 0 34px; }
  .hero-grid { gap: 18px; }
  .hero-lead { margin-bottom: 17px; }
  .hero-visit { margin: -5px 0 17px; }
  .hero-actions .north-button { width: 100%; }
  .hero-benefits { grid-template-columns: 1fr; gap: 0; margin-bottom: 24px; border-left: 2px solid var(--copper); background: rgba(250,249,246,.93); }
  .hero-benefits li { min-height: 0; padding: 10px 14px; border-bottom: 1px solid rgba(27,53,70,.12); border-left: 0; background: transparent; }
  .hero-benefits li:last-child { border-bottom: 0; }
  .hero-note, .catalog-preview a, .payment-disclaimer, .price-note, .contact-email, .footer-inner > p { overflow-wrap: anywhere; }
  .hero-photo { display: block; width: 100%; min-height: 330px; }
  .hero-photo::before { top: 8px; right: 0; bottom: 52px; left: 16px; }
  .hero-photo::after { top: 22px; right: 8px; bottom: 42px; left: 20%; }
  .hero-photo img { width: min(74%, 270px); height: 258px; margin: 8px auto 0; }
  .hero-price-tag { top: 42px; padding: 10px 12px; }
  .hero-photo figcaption { right: 0; bottom: 0; width: min(208px, calc(100% - 18px)); padding: 11px 15px; }
  .hero-photo figcaption strong { font-size: 21px; }
  .facts-grid { border-top: 1px solid rgba(255,255,255,.14); }
  .facts-grid article { min-width: 0; min-height: 88px; padding: 17px 12px; border: 0; gap: 8px; }
  .facts-grid article:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.14); }
  .facts-grid article:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.14); }
  .facts-grid strong { font-size: 26px; }
  .facts-grid span { min-width: 0; font-size: 9px; }
  .north-section { padding: 56px 0; }
  .about-section { padding: 48px 0 36px; }
  .about-grid { gap: 26px; }
  .about-photo { min-height: 314px; }
  .about-photo img { height: 300px; }
  .about-details { padding-top: 0; }
  .quiet-card { gap: 10px; }
  .catalog-callout-grid { gap: 28px; padding: 52px 0; }
  .catalog-preview a { padding: 14px 0; font-size: 23px; }
  .prices-section { padding: 52px 0; }
  .prices-grid { gap: 28px; }
  .price-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; min-height: 82px; gap: 10px; padding: 15px; }
  .price-card div { min-width: 0; }
  .price-card b { max-width: 112px; font-size: 20px; white-space: normal; text-align: right; }
  .price-card div strong { font-size: 13px; }
  .offer-content { gap: 13px; padding: 34px 0; }
  .offer-sign { font-size: 54px; }
  .process-section { padding: 52px 0; }
  .process-heading { margin-bottom: 32px; }
  .steps { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-bottom: 44px; }
  .steps li { min-width: 0; }
  .services { gap: 0; }
  .services-image { min-height: 274px; }
  .services-content { padding: 32px 20px; }
  .visit-section { padding: 54px 0 42px; }
  .faq-section { padding: 44px 0 54px; }
  .visit-rules h3 { font-size: 30px; }
  .faq-list summary { font-size: 20px; }
  .contacts-section { padding: 0; }
  .contacts-grid { gap: 22px; padding: 46px 0 28px; }
  .contacts-section h2 { margin-bottom: 11px; }
  .contact-card { padding: 0; }
  .contact-email { margin-bottom: 19px; }
  .contact-buttons .north-button { flex: 1 1 140px; }
  .contact-choice-actions .north-button { width: 100%; }
  .callback-widget { right: 18px; bottom: 18px; width: 60px; height: 60px; }
  .callback-widget::after { display: none; }
  .callback-widget svg { width: 26px; height: 26px; }
  .north-footer { border-top: 1px solid rgba(255,255,255,.14); }
  .footer-inner { padding: 22px 0 26px; }
  .footer-inner > p:last-child { white-space: normal; }
}
