@font-face { font-family: "HelveticaNeueCyr"; src: url("/fonts/helveticaneuecyr-ultralight.woff") format("woff"); font-weight: 200; font-style: normal; font-display: swap; }
@font-face { font-family: "HelveticaNeueCyr"; src: url("/fonts/helveticaneuecyr-light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "HelveticaNeueCyr"; src: url("/fonts/helveticaneuecyr-roman.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "HelveticaNeueCyr"; src: url("/fonts/helveticaneuecyr-bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "HelveticaNeueCyrCondensed"; src: url("/fonts/helveticaneuecyr-bold-condensed.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

:root { --accent: #fc0; --accent-soft: #ffe680; --black: #050505; --page-scale: 1; --page-height: 3887px; --canvas-height: 3887px; --ease-out: cubic-bezier(.22, 1, .36, 1); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html.is-inertial-scrolling { scroll-behavior: auto; }
body { margin: 0; overflow-x: hidden; background: #fff; color: #000; font-family: "HelveticaNeueCyr", Arial, sans-serif; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
mark { color: var(--accent); background: transparent; }
.site-scale { width: 100vw; height: var(--page-height); overflow: hidden; background: #fff; }
.page-canvas { position: relative; width: 1728px; height: var(--canvas-height); min-height: var(--canvas-height); transform: scale(var(--page-scale)); transform-origin: left top; background: #fff; overflow: hidden; }

.hero { position: absolute; left: 0; top: 0; width: 1728px; color: #fff; background: #030303; overflow: hidden; }
.hero-home { height: 806px; }
.hero-sub { height: 598px; }
.hero-photo { position: absolute; left: 330px; top: -16px; width: 1398px; height: 822px; background: url("/assets/hero.webp") center / cover no-repeat; opacity: .62; }
.hero-sub .hero-photo { height: 614px; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, #020202 0%, rgba(2,2,2,.96) 24%, rgba(2,2,2,.84) 54%, rgba(2,2,2,.30) 78%, rgba(2,2,2,.18) 100%); }
.top-nav { position: absolute; left: 320px; top: 70px; z-index: 3; display: grid; grid-template-columns: 143px 186px 186px 186px 186px 200px; width: 1087px; height: 46px; border: 1px solid rgba(255,255,255,.75); border-radius: 7px; overflow: hidden; }
.top-nav a { display: grid; place-items: center; border-right: 1px solid rgba(255,255,255,.22); color: #fff; text-decoration: none; text-transform: uppercase; font-size: 13px; font-weight: 700; }
.top-nav a:last-child { border-right: 0; }
.top-nav a.active { color: #000; background: var(--accent); }
.brand-lockup { position: absolute; left: 144px; top: 217px; z-index: 2; display: flex; align-items: center; gap: 36px; text-decoration: none; }
.brand-lockup img { width: 232px; height: auto; image-rendering: auto; }
.brand-lockup span { display: grid; color: #fff; font-size: 16px; line-height: 1.1; }
.brand-lockup b { color: var(--accent); font-weight: 700; }
.hero-title { position: absolute; left: 144px; top: 393px; z-index: 2; }
.hero-title h1 { margin: 0; width: 940px; font-family: "HelveticaNeueCyrCondensed", "HelveticaNeueCyr", Arial, sans-serif; font-size: 57px; line-height: .98; text-transform: uppercase; letter-spacing: 0; }
.hero-title p { width: 690px; margin: 19px 0 0; color: rgba(255,255,255,.55); font-size: 18px; line-height: 1.1; }
.hero-actions { position: absolute; left: 1229px; top: 285px; z-index: 3; display: grid; gap: 18px; width: 355px; }
.contact-chip { display: flex; align-items: center; justify-content: center; gap: 16px; width: 355px; height: 60px; border: 0; border-radius: 8px; background: rgba(61,61,61,.75); color: #fff; text-decoration: none; font-size: 18px; font-weight: 700; }
.contact-chip span { color: var(--accent); font-size: 28px; line-height: 1; }
.contact-chip.yellow { background: var(--accent); color: #000; text-transform: uppercase; }
.down-dot { position: absolute; left: 834px; top: 729px; z-index: 5; width: 58px; height: 58px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 10px 22px rgba(0,0,0,.18); }
.down-dot::before { content: ""; position: absolute; left: 20px; top: 18px; width: 16px; height: 16px; border-right: 4px solid #a8a8a8; border-bottom: 4px solid #a8a8a8; transform: rotate(45deg); }
.white-curve { position: absolute; left: -80px; bottom: -77px; width: 1900px; height: 155px; border-radius: 50% 50% 0 0 / 62% 62% 0 0; background: #fff; }
.white-curve.bottom { bottom: -124px; }

.facts { position: absolute; left: 144px; top: 884px; display: grid; grid-template-columns: repeat(4, 344px); gap: 21px; }
.yellow-card { position: relative; width: 344px; min-height: 339px; overflow: hidden; border-radius: 28px; padding: 28px 23px; background: var(--accent); }
.yellow-card::after, .service-pill::after { content: ">>>"; position: absolute; right: 18px; top: 0; height: 100%; color: var(--accent-soft); font-family: Arial, sans-serif; font-size: 132px; font-weight: 900; letter-spacing: -27px; opacity: .7; display: flex; align-items: center; }
.yellow-card h2 { position: relative; z-index: 1; margin: 0; font-size: 48px; line-height: .95; font-weight: 700; }
.yellow-card p { position: absolute; left: 23px; right: 18px; bottom: 25px; z-index: 1; margin: 0; font-size: 22px; line-height: .95; }
.phone-cta { position: absolute; left: 509px; top: 1290px; z-index: 4; width: 709px; height: 92px; border: 4px solid var(--accent); border-radius: 15px; background: #fff; color: #000; font-size: 28px; font-weight: 700; text-transform: uppercase; }
.phone-cta.mini { position: static; width: 355px; height: 62px; border-width: 0; background: var(--accent); }

.service-band { position: absolute; left: 0; top: 1422px; width: 1728px; height: 727px; overflow: hidden; color: #fff; background: #050505; text-align: center; }
.service-photo { position: absolute; inset: 0; background: url("/assets/service-bg.webp") center / cover no-repeat; opacity: .42; }
.service-shade { position: absolute; inset: 0; background: rgba(0,0,0,.70); }
.service-band h2 { position: relative; margin: 101px 0 12px; font-family: "HelveticaNeueCyrCondensed", "HelveticaNeueCyr", Arial, sans-serif; font-size: 54px; line-height: 1; text-transform: uppercase; }
.service-band p { position: relative; margin: 0 auto; width: 1290px; color: rgba(255,255,255,.52); font-size: 16px; line-height: 1.1; }
.service-grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 458px); gap: 27px 33px; margin: 57px 0 0 144px; }
.service-pill { position: relative; display: grid; place-items: center; width: 458px; height: 88px; overflow: hidden; border-radius: 20px; background: var(--accent); color: #000; text-decoration: none; font-size: 18px; font-weight: 700; line-height: .95; padding: 0 52px 0 46px; }
.service-pill::after { font-size: 73px; right: 10px; letter-spacing: -16px; }
.all-services { position: absolute; left: 813px; top: 638px; z-index: 3; color: #fff; font-size: 19px; }
.quality { position: absolute; left: 0; top: 2149px; width: 1728px; height: 356px; background: #fff; }
.wrench { position: absolute; left: 10px; top: -5px; width: 672px; height: auto; }
.quality h2 { position: absolute; left: 594px; top: 118px; width: 1092px; margin: 0; font-family: "HelveticaNeueCyrCondensed", "HelveticaNeueCyr", Arial, sans-serif; font-size: 52px; line-height: .98; text-transform: uppercase; }
.about-strip { position: absolute; left: 0; top: 2505px; width: 1728px; height: 273px; background: var(--accent); overflow: hidden; }
.chevron-bg { position: absolute; inset: 0; background: repeating-linear-gradient(60deg, rgba(255,255,255,.25) 0 34px, transparent 34px 78px); opacity: .75; }
.strip-copy { position: absolute; left: 594px; top: 54px; width: 934px; }
.strip-copy h2 { margin: 0 0 12px; font-size: 31px; line-height: 1; text-transform: uppercase; }
.strip-copy p { margin: 0 0 14px; font-size: 15px; line-height: 1.2; }
.strip-copy a { color: #000; font-weight: 700; }
.map-section { position: absolute; left: 0; width: 1728px; height: 780px; text-align: center; overflow: hidden; background: #fff; }
.home-map { top: 2784px; }
.map-bg { position: absolute; left: 0; top: 0; width: 1728px; height: 430px; background: linear-gradient(rgba(255,255,255,.82), rgba(255,255,255,.82)), url("/assets/map-bg-wide.webp") center / cover no-repeat; }
.home-page .home-map .map-bg { background-image: linear-gradient(rgba(255,255,255,.82), rgba(255,255,255,.82)), url("/assets/home-bottom.webp"); }
.map-section h2 { position: relative; width: 1070px; margin: 120px auto 18px; font-family: "HelveticaNeueCyrCondensed", "HelveticaNeueCyr", Arial, sans-serif; font-size: 51px; line-height: .95; text-transform: uppercase; }
.map-section p { position: relative; margin: 0 auto; font-size: 16px; }
.real-map { position: absolute; left: 145px; top: 383px; width: 1439px; height: 417px; border: 0; background: #e8eddc; }
.footer { position: absolute; left: 144px; display: grid; grid-template-columns: 300px 520px 1fr; align-items: start; gap: 90px; width: 1440px; height: 86px; }
.footer span { display: block; margin-bottom: 10px; color: #8b8b8b; font-size: 12px; }
.footer a { color: #000; text-decoration: none; font-size: 18px; font-weight: 700; }
.socials { display: flex; justify-content: flex-end; gap: 26px; }
.socials a, .contact-socials a { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #000; font-size: 24px; text-decoration: none; }
.home-footer { top: 3699px; }

.sub-page .hero-actions { top: 285px; }
.text-block { position: absolute; left: 144px; width: 1440px; }
.text-block h1, .text-block h2, .adv-section h2, .estimate-form h2, .contacts-block h1 { margin: 0 0 22px; font-family: "HelveticaNeueCyrCondensed", "HelveticaNeueCyr", Arial, sans-serif; font-size: 55px; line-height: .98; text-transform: uppercase; }
.text-block p { margin: 0; font-size: 21px; line-height: 1.18; color: #151515; }
.about-intro, .services-title, .gallery-title, .faq-title { top: 664px; }
.mission { top: 869px; }
.adv-section { position: absolute; left: 144px; top: 1094px; width: 1440px; }
.adv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; margin-top: 42px; }
.adv-grid article { min-height: 300px; border-radius: 28px; padding: 36px; background: var(--accent); }
.adv-grid b { display: block; margin-bottom: 22px; font-size: 34px; line-height: .95; text-transform: uppercase; }
.adv-grid span { font-size: 22px; line-height: 1.1; }
.trust { top: 1823px; }
.wide-services { top: 2028px; }
.dark-cta { position: absolute; left: 0; top: 2298px; width: 1728px; height: 470px; overflow: hidden; color: #fff; background: #000; }
.dark-cta h2 { position: absolute; left: 144px; top: 160px; width: 1000px; margin: 0; font-family: "HelveticaNeueCyrCondensed", "HelveticaNeueCyr", Arial, sans-serif; font-size: 54px; line-height: .98; text-transform: uppercase; }
.dark-cta .phone-cta { position: absolute; left: 144px; top: 305px; }
.sub-map h2 { margin-top: 120px; }
.about-map { top: 2968px; }
.about-map .real-map { top: 383px; }
.about-footer { top: 3883px; }

.services-list { position: absolute; left: 144px; top: 905px; display: grid; grid-template-columns: repeat(3, 344px); gap: 34px 147px; }
.services-list .yellow-card { min-height: 276px; }
.services-list .yellow-card h2 { font-size: 38px; }
.services-list .yellow-card p { font-size: 19px; }
.estimate-form { position: absolute; left: 269px; top: 2250px; width: 1190px; min-height: 680px; border: 4px solid var(--accent); border-radius: 18px; padding: 56px; background: #fff; }
.inline-booking { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.inline-booking label, .booking-dialog label { display: grid; gap: 8px; font-size: 13px; font-weight: 700; text-transform: uppercase; }
.inline-booking input, .inline-booking select, .inline-booking textarea, .booking-dialog input, .booking-dialog select, .booking-dialog textarea { width: 100%; border: 1px solid #d9d9d9; border-radius: 8px; padding: 14px; resize: vertical; }
.inline-booking .full { grid-column: 1 / -1; }
.inline-message { display: flex; align-items: center; font-weight: 700; }
.services-map { top: 3336px; }
.services-footer { top: 4251px; }

.gallery-strip { position: absolute; left: 0; top: 943px; width: 1728px; height: 615px; overflow: hidden; }
.gallery-strip img { position: absolute; object-fit: cover; border-radius: 0; box-shadow: 0 24px 60px rgba(0,0,0,.18); }
.gallery-strip .g1 { left: -50px; top: 66px; width: 317px; height: 423px; }
.gallery-strip .g2 { left: 267px; top: 34px; width: 389px; height: 487px; }
.gallery-strip .g3 { left: 656px; top: 0; width: 416px; height: 555px; }
.gallery-strip .g4 { left: 1072px; top: 34px; width: 365px; height: 487px; }
.gallery-strip .g5 { left: 1437px; top: 66px; width: 318px; height: 423px; }
.gallery-arrow { position: absolute; top: 590px; width: 58px; height: 58px; border: 0; border-radius: 50%; background: var(--accent); font-size: 42px; line-height: 1; }
.gallery-arrow.left { left: 791px; }
.gallery-arrow.right { left: 936px; }
.gallery-map { top: 1583px; }
.gallery-footer { top: 2498px; }

.faq-list { position: absolute; left: 156px; top: 944px; width: 1416px; display: grid; gap: 38px; }
.faq-list article { display: grid; grid-template-columns: 817px 1fr; gap: 36px; align-items: start; }
.faq-list button { min-height: 61px; border: 0; border-radius: 6px; background: var(--accent); padding: 0 26px; text-align: left; font-size: 20px; font-weight: 700; }
.faq-list p { margin: 0; min-height: 140px; border-radius: 8px; padding: 24px 28px; background: #f2f2f2; font-size: 20px; line-height: 1.18; }
.faq-map { top: 1953px; }
.faq-footer { top: 2868px; }

.contacts-block { position: absolute; left: 144px; top: 664px; width: 1440px; }
.contacts-block h1 { width: 1180px; }
.contacts-block dl { margin: 46px 0 0; display: grid; gap: 26px; width: 620px; }
.contacts-block dt { color: #777; font-size: 16px; }
.contacts-block dd { margin: -18px 0 0; font-size: 24px; font-weight: 700; }
.contacts-block dd a { text-decoration: none; }
.contact-socials { position: absolute; left: 980px; top: 185px; display: flex; gap: 70px; }
.contact-socials a { width: 54px; height: 54px; font-size: 40px; }
.contacts-map .real-map { left: 145px; top: 1121px; }
.contacts-footer { top: 1653px; }

.booking-modal { position: fixed; inset: 0; z-index: 100; display: none; align-items: center; justify-content: center; }
.booking-modal.is-open { display: flex; }
.booking-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.72); backdrop-filter: blur(5px); }
.booking-dialog { position: relative; width: min(720px, calc(100vw - 32px)); max-height: calc(100vh - 60px); overflow: auto; border-radius: 18px; padding: 34px; background: #fff; box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.booking-dialog > p { margin: 0 0 8px; color: #7a6100; font-size: 14px; font-weight: 700; text-transform: uppercase; }
.booking-dialog h2 { margin: 0 0 24px; font-family: "HelveticaNeueCyrCondensed", "HelveticaNeueCyr", Arial, sans-serif; font-size: 50px; line-height: .95; text-transform: uppercase; }
.modal-close { position: absolute; right: 18px; top: 18px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: #efefef; font-size: 30px; line-height: 1; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.booking-dialog .full { grid-column: 1 / -1; }
.file-label { padding: 12px; border: 1px dashed #d9ad00; border-radius: 8px; background: #fff8d6; }
.submit-booking { width: 100%; height: 56px; margin-top: 18px; border: 0; border-radius: 10px; background: var(--accent); color: #000; font-weight: 700; text-transform: uppercase; }
#bookingMessage { display: block; min-height: 22px; margin-top: 12px; font-size: 15px; font-weight: 700; }
@media (max-width: 680px) { .booking-dialog { padding: 24px; } .booking-dialog h2 { font-size: 36px; } .form-grid, .inline-booking { grid-template-columns: 1fr; } .booking-dialog .full, .inline-booking .full { grid-column: auto; } }

/* Stability and motion polish */
html.booting body .page-canvas { opacity: 0; }
body.is-ready .page-canvas { opacity: 1; transition: opacity .42s ease; }
body.modal-open { overflow: hidden; }
.page-canvas { backface-visibility: hidden; will-change: transform; }
.hero-photo, .service-photo, .map-bg { transform: translateZ(0); }
body.is-ready .top-nav,
body.is-ready .brand-lockup,
body.is-ready .hero-title,
body.is-ready .hero-actions,
body.is-ready .facts,
body.is-ready .phone-cta,
body.is-ready .service-band h2,
body.is-ready .service-band p,
body.is-ready .service-grid,
body.is-ready .text-block,
body.is-ready .services-list,
body.is-ready .gallery-strip,
body.is-ready .faq-list,
body.is-ready .contacts-block {
  animation: softRise .72s var(--ease-out) both;
}
body.is-ready .brand-lockup { animation-delay: .04s; }
body.is-ready .hero-title { animation-delay: .08s; }
body.is-ready .hero-actions { animation-delay: .12s; }
body.is-ready .facts, body.is-ready .text-block { animation-delay: .14s; }
body.is-ready .service-grid, body.is-ready .services-list, body.is-ready .gallery-strip, body.is-ready .faq-list { animation-delay: .18s; }
@keyframes softRise { from { opacity: 0; transform: translate3d(0, 18px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
.top-nav a, .contact-chip, .phone-cta, .yellow-card, .service-pill, .submit-booking, .modal-close, .gallery-arrow, .socials a, .contact-socials a {
  transition: transform .28s var(--ease-out), background-color .28s ease, color .28s ease, box-shadow .28s ease, border-color .28s ease, opacity .28s ease;
}
.top-nav a:hover { background: rgba(255, 204, 0, .18); color: #fff; }
.top-nav a.active:hover { background: var(--accent); color: #000; }
.contact-chip:hover, .phone-cta:hover, .service-pill:hover, .yellow-card:hover { transform: translate3d(0, -3px, 0); box-shadow: 0 18px 40px rgba(0, 0, 0, .18); }
.contact-booking:hover, .submit-booking:hover { background: #ffd633; }
.down-dot { transition: transform .35s var(--ease-out), box-shadow .35s ease; }
.down-dot:hover { transform: translateY(5px); box-shadow: 0 14px 28px rgba(0,0,0,.22); }

.hero-actions { gap: 18px; }
.contact-chip { justify-content: flex-start; padding: 0 22px; gap: 17px; border-radius: 8px; background: rgba(58, 58, 58, .76); color: #fff; text-align: left; backdrop-filter: blur(2px); }
.contact-chip .chip-text { color: inherit; font-size: 18px; line-height: 1; font-weight: 400; white-space: nowrap; }
.contact-chip .chip-icon { position: relative; flex: 0 0 34px; width: 34px; height: 34px; color: var(--accent); font-size: 0; }
.contact-chip .chip-icon.pin::before { content: ""; position: absolute; left: 8px; top: 3px; width: 18px; height: 18px; border-radius: 50% 50% 50% 0; background: currentColor; transform: rotate(-45deg); }
.contact-chip .chip-icon.pin::after { content: ""; position: absolute; left: 14px; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: #3a3a3a; }
.contact-chip .chip-icon.phone::before { content: ""; position: absolute; left: 8px; top: 6px; width: 18px; height: 22px; border: 5px solid currentColor; border-top-color: transparent; border-right-color: transparent; border-radius: 5px 0 0 14px; transform: rotate(-35deg); }
.contact-chip .chip-icon.phone::after { content: ""; position: absolute; left: 20px; top: 19px; width: 9px; height: 5px; border-radius: 4px; background: currentColor; transform: rotate(-35deg); }
.contact-booking { justify-content: center; padding: 0; font-size: 18px; font-weight: 700; text-transform: uppercase; text-align: center; }
.contact-chip.yellow { color: #000; background: var(--accent); }

.booking-modal { display: flex; opacity: 0; pointer-events: none; transition: opacity .28s ease; }
.booking-modal.is-open { opacity: 1; pointer-events: auto; }
.booking-backdrop { opacity: 0; transition: opacity .28s ease; }
.booking-modal.is-open .booking-backdrop { opacity: 1; }
.booking-dialog { transform: translate3d(0, 24px, 0) scale(.985); opacity: 0; transition: transform .36s var(--ease-out), opacity .28s ease; }
.booking-modal.is-open .booking-dialog { transform: translate3d(0, 0, 0) scale(1); opacity: 1; }
.booking-dialog input:focus, .booking-dialog select:focus, .booking-dialog textarea:focus, .inline-booking input:focus, .inline-booking select:focus, .inline-booking textarea:focus { outline: 3px solid rgba(255, 204, 0, .55); border-color: #cc9900; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }
}








/* Figma contacts exact pass */
.contacts-page .brand-lockup { left: 156px; gap: 18px; }
.contacts-page .brand-lockup img { width: 219px; }
.contacts-page .brand-lockup span { width: 204px; }
.contacts-block { position: absolute; left: 144px; top: 664px; width: 1440px; height: 444px; }
.contacts-block h1 { position: absolute; left: 0; top: 0; width: 1400px; height: 50px; margin: 0; font-size: 55px; line-height: .92; }
.contacts-block dl { position: absolute; left: 0; top: 0; width: 700px; height: 444px; margin: 0; display: block; }
.contacts-block dt, .contacts-block dd { position: absolute; left: 0; margin: 0; color: #000; }
.contacts-block dt { height: 20px; font-size: 20px; line-height: 1; font-weight: 700; }
.contacts-block dd { height: 30px; font-size: 30px; line-height: 1; font-weight: 700; }
.contacts-block dt:nth-of-type(1) { top: 100px; }
.contacts-block dd:nth-of-type(1) { top: 133px; }
.contacts-block dt:nth-of-type(2) { top: 198px; }
.contacts-block dd:nth-of-type(2) { top: 231px; width: 558px; }
.contacts-block dt:nth-of-type(3) { top: 296px; }
.contacts-block dd:nth-of-type(3) { top: 329px; width: 558px; }
.contacts-block dt:nth-of-type(4) { top: 424px; width: 161px; }
.contact-socials { left: 982px; top: 198px; gap: 60px; align-items: center; }
.contact-socials a { width: 70px; height: 70px; font-size: 50px; line-height: 1; }
.contact-socials a:nth-child(2), .contact-socials a:nth-child(3) { width: 63px; height: 63px; font-size: 46px; }
.contact-socials a:nth-child(4) { width: 85px; height: 85px; font-size: 58px; }
.contacts-map .real-map { left: 145px; top: 1121px; width: 1439px; height: 417px; }

.socials a, .contact-socials a { width: auto; height: auto; border-radius: 0; }
.socials img, .contact-socials img { display: block; object-fit: contain; }
.socials a:nth-child(1) img { width: 37px; height: 36px; }
.socials a:nth-child(2) img { width: 33px; height: 33px; }
.socials a:nth-child(3) img { width: 32px; height: 33px; }
.socials a:nth-child(4) img { width: 44px; height: 44px; }
.contact-socials a:nth-child(1) img { width: 70px; height: 70px; }
.contact-socials a:nth-child(2) img { width: 63px; height: 63px; }
.contact-socials a:nth-child(3) img { width: 62px; height: 63px; }
.contact-socials a:nth-child(4) img { width: 85px; height: 85px; }

/* Figma FAQ exact pass */
.faq-title h1 { width: 1400px; font-size: 50px; line-height: 1; margin: 0 0 17px; }
.faq-title p { width: 1440px; height: 80px; font-size: 20px; line-height: 1; color: #000; }
.faq-list { position: absolute; left: 0; top: 0; width: 1728px; height: 1953px; display: block; }
.faq-list article { position: static; display: block; }
.faq-list button { position: absolute; height: 61px; border: 0; border-radius: 0; background: #e2e2e2; color: #000; padding: 0 26px; text-align: left; font-size: 20px; font-weight: 400; line-height: 1; }
.faq-list article:nth-child(1) button { left: 156px; top: 944px; width: 817px; }
.faq-list article:nth-child(2) button { left: 156px; top: 1253px; width: 409px; }
.faq-list article:nth-child(3) button { left: 156px; top: 1600px; width: 660px; }
.faq-list button::before { content: ""; position: absolute; left: -12px; top: 43px; width: 24px; height: 22px; background: #e2e2e2; clip-path: polygon(0 0, 100% 50%, 0 100%); }
.faq-list p { position: absolute; left: 779px; width: 766px; margin: 0; border-radius: 0; background: var(--accent); color: #000; padding: 20px 0 0; font-size: 20px; line-height: 1; font-weight: 400; }
.faq-list article:nth-child(1) p { top: 1037px; min-height: 175px; }
.faq-list article:nth-child(2) p { top: 1346px; min-height: 222px; }
.faq-list article:nth-child(3) p { top: 1693px; min-height: 192px; padding-top: 29px; }
.faq-list p::after { content: ""; position: absolute; right: -39px; bottom: -14px; width: 24px; height: 22px; background: var(--accent); clip-path: polygon(100% 0, 0 50%, 100% 100%); }
.faq-map { top: 1953px; }
.faq-map h2 { width: 1091px; margin-top: 134px; font-size: 50px; line-height: 1; }
.faq-map p { width: 990px; margin-top: 11px; font-size: 20px; line-height: 1; }
.faq-footer { top: 2868px; }



/* Figma services exact pass */
.services-page .services-title { left: 144px; top: 664px; width: 1440px; }
.services-page .services-title h1 { width: 1400px; margin: 0 0 17px; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 50px; line-height: 1; font-weight: 700; text-transform: none; }
.services-page .services-title p { width: 1440px; margin: 0; color: #000; font-size: 20px; line-height: 1; }
.service-catalog { position: absolute; left: 0; top: 0; width: 1728px; height: 2659px; }
.price-card { position: absolute; left: var(--x); top: var(--y); width: 333px; height: 413px; overflow: hidden; border-radius: 20px; background: var(--accent); color: #000; }
.price-card::before { content: ">>>"; position: absolute; right: 23px; top: 0; height: 100%; display: flex; align-items: center; color: rgba(255,255,255,.28); font-family: Arial, sans-serif; font-size: 138px; font-weight: 900; letter-spacing: -28px; }
.price-card h2 { position: absolute; left: 18px; top: 26px; z-index: 1; width: 297px; height: 60px; margin: 0; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 30px; line-height: 1; font-weight: 700; text-transform: none; }
.price-card b { position: absolute; left: 18px; top: 153px; z-index: 1; width: 297px; height: 48px; font-size: 50px; line-height: .95; font-weight: 700; }
.price-card p { position: absolute; left: 18px; top: 274px; z-index: 1; width: 296px; min-height: 40px; margin: 0; color: #000; font-size: 20px; line-height: 1; }
.price-card.long-description p { top: 234px; }
.price-card .price-more { position: absolute; left: 18px; bottom: 20px; z-index: 2; width: 298px; height: 62px; border: 0; border-radius: 11px; background: #fff; color: #000; font-size: 20px; line-height: 1; font-weight: 400; text-transform: uppercase; text-align: center; }
.price-card.no-price .price-more { bottom: 20px; }
.price-card.no-price h2 { top: 27px; }
.services-cta { position: absolute; left: 0; top: 2641px; width: 1728px; height: 727px; overflow: hidden; color: #fff; background: #030303; text-align: center; }
.services-cta .service-photo { opacity: .48; }
.services-cta .service-shade { background: rgba(0,0,0,.76); }
.services-cta::after { content: ""; position: absolute; left: 0; bottom: 0; width: 1728px; height: 150px; background: var(--accent); }
.services-cta h2 { position: absolute; left: 144px; top: 121px; z-index: 1; width: 1440px; height: 89px; margin: 0; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 50px; line-height: .99; font-weight: 700; text-transform: none; }
.services-cta p { position: absolute; left: 144px; top: 271px; z-index: 1; width: 1440px; height: 42px; margin: 0; color: #fff; font-size: 20px; line-height: 1; }
.services-booking-form { position: absolute; left: 144px; top: 363px; z-index: 2; display: block; width: 1440px; height: 290px; }
.services-booking-form label { position: absolute; top: 0; display: block; width: 699px; height: 97px; color: #fff; font-size: 20px; line-height: 1; font-weight: 400; text-transform: none; text-align: left; }
.services-booking-form label:nth-child(1) { left: 0; }
.services-booking-form label:nth-child(2) { left: 741px; }
.services-booking-form label span { display: block; height: 20px; margin-bottom: 5px; }
.services-booking-form input { width: 699px; height: 77px; border: 0; border-radius: 0; background: #fff; padding: 0 24px; color: #000; font-size: 24px; }
.services-booking-form button { position: absolute; left: 370px; top: 94px; width: 699px; height: 77px; border: 0; border-radius: 0; background: var(--accent); color: #000; font-size: 30px; line-height: 1; font-weight: 400; text-transform: uppercase; }
.services-booking-form .privacy-check { position: absolute; left: 388px; top: 215px; width: 26px; height: 26px; border: 2px solid #fff; background: transparent; }
.services-booking-form small { position: absolute; left: 423px; top: 210px; width: 712px; color: #fff; font-size: 20px; line-height: 1.25; text-align: left; }
.services-booking-form small a { color: #fff; }
.services-booking-form .inline-message { position: absolute; left: 514px; top: 174px; width: 699px; min-height: 24px; color: #fff; justify-content: center; }
.services-map { top: 3393px; height: 780px; }
.services-map .map-bg { top: 0; height: 430px; }
.services-map h2 { width: 1091px; margin-top: 77px; margin-bottom: 11px; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 50px; line-height: 1; font-weight: 700; text-transform: uppercase; }
.services-map p { width: 990px; font-size: 20px; line-height: 1; color: #000; }
.services-map .real-map { left: 145px; top: 326px; width: 1439px; height: 417px; }
.services-footer { left: 144px; top: 4252px; }
body.is-ready .service-catalog,
body.is-ready .services-cta,
body.is-ready .services-booking-form { animation: softRise .72s var(--ease-out) both; }
.price-more,
.services-booking-form button { transition: transform .28s var(--ease-out), background-color .28s ease, box-shadow .28s ease; }
.price-more:hover,
.services-booking-form button:hover { transform: translate3d(0, -2px, 0); background: #ffd633; box-shadow: 0 18px 40px rgba(0,0,0,.16); }

/* Services CTA correction from Figma node fills */
.services-cta .service-photo { opacity: .95; }
.services-cta .service-shade { background: rgba(0,0,0,.42); }
.services-cta::after { background: #050505; }
.services-booking-form input { border: 1px solid var(--accent); border-radius: 15px; background: rgba(217,217,217,.10); color: #fff; }
.services-booking-form button { top: 119px; border-radius: 15px; }
.services-booking-form .privacy-check { top: 240px; }
.services-booking-form small { top: 245px; }
.services-booking-form .inline-message { top: 199px; }

/* Services CTA exact background asset */
.services-cta .service-photo { background-image: url("/assets/services-cta-bg.webp"); background-size: 1728px 727px; background-position: left top; opacity: 1; }
.services-cta .service-shade { background: rgba(0,0,0,.36); }

/* Services CTA gradient and bottom wave */
.services-cta .service-shade { background: linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.54) 34%, rgba(0,0,0,.38) 53%, rgba(0,0,0,.36) 100%); }
.services-cta::after { top: 577px; bottom: auto; height: 110px; background: #050505; z-index: 0; }
.services-cta::before { content: ""; position: absolute; left: -80px; top: 687px; z-index: 3; width: 1900px; height: 92px; border-radius: 50% 50% 0 0 / 58% 58% 0 0; background: #fff; }

/* Figma about exact pass */
.about-page .text-block { left: 144px; width: 1440px; }
.about-page .text-block h1,
.about-page .text-block h2 { width: 1400px; margin: 0 0 17px; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 50px; line-height: 1; font-weight: 700; text-transform: none; }
.about-page .text-block p { width: 1440px; margin: 0; color: #000; font-size: 20px; line-height: 1; text-align: justify; }
.about-page .about-intro { top: 664px; }
.about-page .mission { top: 869px; }
.about-page .trust { top: 1823px; }
.about-page .wide-services { top: 2028px; }
.about-page .wide-services p { height: 140px; }
.about-page .adv-section { left: 144px; top: 1094px; width: 1440px; height: 646px; }
.about-page .adv-section h2 { width: 1400px; margin: 0; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 50px; line-height: 1; font-weight: 700; text-transform: none; }
.about-page .adv-grid { position: absolute; left: 3px; top: 97px; display: grid; grid-template-columns: 452px 453px 452px; gap: 40px; margin: 0; }
.about-page .adv-grid article { position: relative; width: 100%; height: 549px; min-height: 0; overflow: hidden; border-radius: 20px; padding: 0; background: var(--accent); color: #000; }
.about-page .adv-grid article::before { content: ">>>"; position: absolute; right: 26px; top: 0; height: 100%; display: flex; align-items: center; color: rgba(255,255,255,.28); font-family: Arial, sans-serif; font-size: 168px; font-weight: 900; letter-spacing: -34px; }
.about-page .adv-grid b { position: absolute; left: 22px; top: 29px; z-index: 1; display: block; width: 404px; margin: 0; font-size: 46px; line-height: 1; font-weight: 700; text-transform: none; }
.about-page .adv-grid span { position: absolute; left: 22px; z-index: 1; display: block; width: 404px; margin: 0; color: #000; font-size: 25px; line-height: .99; }
.about-page .adv-grid article:nth-child(1) span { top: 421px; width: 396px; font-size: 24px; }
.about-page .adv-grid article:nth-child(2) span { top: 342px; }
.about-page .adv-grid article:nth-child(3) span { top: 392px; width: 391px; }
.about-cta { position: absolute; left: 0; top: 2298px; width: 1728px; height: 727px; overflow: hidden; color: #fff; background: #030303; text-align: center; }
.about-cta .service-photo { background-image: url("/assets/about-cta-bg.webp"); background-size: 1728px 727px; background-position: left top; opacity: 1; }
.about-cta .service-shade { background: linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.54) 34%, rgba(0,0,0,.38) 53%, rgba(0,0,0,.36) 100%); }
.about-cta::after { content: ""; position: absolute; left: 0; top: 577px; z-index: 0; width: 1728px; height: 92px; background: #050505; }
.about-cta::before { content: ""; position: absolute; left: -80px; top: 669px; z-index: 3; width: 1900px; height: 92px; border-radius: 50% 50% 0 0 / 58% 58% 0 0; background: #fff; }
.about-cta h2 { position: absolute; left: 144px; top: 173px; z-index: 1; width: 1440px; height: 99px; margin: 0; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 50px; line-height: .99; font-weight: 700; text-transform: none; }
.about-cta button { position: absolute; left: 568px; top: 388px; z-index: 2; width: 591px; height: 141px; border: 0; border-radius: 15px; background: var(--accent); color: #000; font-size: 60px; line-height: 1; font-weight: 400; text-transform: uppercase; }
.about-map { top: 3025px; height: 780px; }
.about-map .map-bg { top: 0; height: 430px; }
.about-map h2 { width: 1091px; margin-top: 77px; margin-bottom: 11px; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 50px; line-height: 1; font-weight: 700; text-transform: uppercase; }
.about-map p { width: 990px; font-size: 20px; line-height: 1; color: #000; }
.about-map .real-map { left: 145px; top: 326px; width: 1439px; height: 417px; }
.about-footer { left: 144px; top: 3887px; }
body.is-ready .adv-section,
body.is-ready .about-cta { animation: softRise .72s var(--ease-out) both; }
.about-cta button { transition: transform .28s var(--ease-out), background-color .28s ease, box-shadow .28s ease; }
.about-cta button:hover { transform: translate3d(0, -3px, 0); background: #ffd633; box-shadow: 0 18px 40px rgba(0,0,0,.18); }

/* Figma-like online booking modal */
.booking-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 32px; opacity: 0; pointer-events: none; transition: opacity .34s ease; }
.booking-modal.is-open { opacity: 1; pointer-events: auto; }
.booking-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.78); backdrop-filter: blur(4px); opacity: 0; transition: opacity .34s ease; }
.booking-modal.is-open .booking-backdrop { opacity: 1; }
.booking-dialog { position: relative; width: min(1440px, calc(100vw - 64px)); max-height: calc(100vh - 64px); overflow: auto; border-radius: 0; padding: 92px 75px 58px; background: #fff; color: #000; box-shadow: 0 34px 90px rgba(0,0,0,.45); transform: translate3d(0, 36px, 0); opacity: 0; transition: transform .45s var(--ease-out), opacity .32s ease; scrollbar-width: thin; scrollbar-color: #d9ad00 #f1f1f1; }
.booking-modal.is-open .booking-dialog { transform: translate3d(0,0,0); opacity: 1; }
.booking-dialog h2 { width: 100%; margin: 0 0 31px; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 40px; line-height: 1; font-weight: 700; text-align: center; text-transform: lowercase; }
.booking-dialog > p { display: none; }
.modal-close { position: absolute; right: 36px; top: 32px; width: 46px; height: 46px; border: 0; border-radius: 0; background: transparent; font-size: 0; }
.modal-close::before,
.modal-close::after { content: ""; position: absolute; left: 7px; top: 22px; width: 32px; height: 2px; background: #000; transform: rotate(45deg); }
.modal-close::after { transform: rotate(-45deg); }
.booking-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 42px; }
.booking-field,
.booking-file { display: block; min-width: 0; color: #a1a1a1; font-size: 20px; line-height: 1; font-weight: 400; text-transform: none; }
.booking-field input,
.booking-field select,
.booking-field textarea,
.booking-file input { display: block; width: 100%; height: 77px; margin-top: 10px; border: 1px solid var(--accent); border-radius: 15px; background: rgba(217,217,217,.10); color: #000; padding: 0 24px; font-size: 24px; line-height: 1; outline: 0; resize: none; transition: border-color .25s ease, box-shadow .25s ease, background-color .25s ease; }
.booking-field textarea { height: 124px; padding-top: 22px; line-height: 1.18; }
.booking-field input::placeholder { color: #b6b6b6; }
.booking-field input:focus,
.booking-field select:focus,
.booking-field textarea:focus,
.booking-file input:focus { border-color: #cc9900; box-shadow: 0 0 0 4px rgba(255,204,0,.35); background: #fff; }
.booking-field-wide { grid-column: 1 / -1; }
.booking-file { min-height: 118px; border: 1px dashed var(--accent); border-radius: 15px; padding: 20px 24px; background: rgba(255,204,0,.12); }
.booking-file input { height: auto; margin-top: 16px; border: 0; border-radius: 0; background: transparent; padding: 0; font-size: 18px; }
.submit-booking { display: block; width: 633px; height: 77px; margin: 34px auto 0; border: 0; border-radius: 15px; background: var(--accent); color: #000; font-size: 20px; line-height: 1; font-weight: 400; text-transform: uppercase; transition: transform .28s var(--ease-out), background-color .28s ease, box-shadow .28s ease; }
.submit-booking:hover { transform: translate3d(0,-2px,0); background: #ffd633; box-shadow: 0 18px 40px rgba(0,0,0,.16); }
#bookingMessage { display: block; min-height: 24px; margin-top: 18px; color: #000; font-size: 18px; line-height: 1.25; font-weight: 700; text-align: center; }
@media (max-width: 900px) {
  .booking-modal { padding: 16px; align-items: flex-start; }
  .booking-dialog { width: calc(100vw - 32px); max-height: calc(100vh - 32px); padding: 72px 22px 34px; }
  .booking-dialog h2 { font-size: 34px; margin-bottom: 28px; }
  .booking-form-grid { grid-template-columns: 1fr; gap: 18px; }
  .booking-field, .booking-file { font-size: 17px; }
  .booking-field input, .booking-field select, .booking-field textarea { height: 62px; font-size: 20px; }
  .booking-field textarea { height: 104px; }
  .submit-booking { width: 100%; height: 68px; }
}

/* Booking modal Figma geometry pass */
.booking-dialog { height: min(1325px, calc(100vh - 64px)); padding: 187px 75px 58px; }
.booking-dialog h2 { width: calc(100% + 150px); margin-left: -75px; margin-right: -75px; margin-bottom: 31px; }
.booking-form-grid { gap: 24px 42px; }
.submit-booking { width: 633px; height: 60px; margin: 34px 0 0 auto; border-radius: 15px; font-size: 20px; }
@media (max-width: 900px) {
  .booking-dialog { height: calc(100vh - 32px); padding: 76px 22px 34px; }
  .booking-dialog h2 { width: 100%; margin-left: 0; margin-right: 0; }
  .submit-booking { width: 100%; height: 60px; }
}

/* Global Figma typography alignment pass */
.top-nav a { font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 15px; font-weight: 400; }
.brand-lockup { gap: 30px; }
.brand-lockup img { width: 219px; }
.brand-lockup span { font-size: 20px; line-height: 1; }
.hero-title { left: 144px; top: 395px; }
.hero-title h1 { width: 729px; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 50px; line-height: 1; font-weight: 700; }
.hero-title p { width: 729px; margin-top: 9px; font-size: 20px; line-height: 1; color: rgba(255,255,255,.55); }
.contact-chip .chip-text { font-size: 20px; font-weight: 400; }
.contact-booking { font-size: 20px; font-weight: 400; }
.yellow-card { border-radius: 20px; }
.phone-cta { border-radius: 11px; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 30px; font-weight: 700; }
.service-band h2,
.quality h2,
.map-section h2,
.text-block h1,
.text-block h2,
.adv-section h2,
.estimate-form h2,
.contacts-block h1,
.booking-dialog h2 { font-family: "HelveticaNeueCyr", Arial, sans-serif; }

/* Home services Figma background pass */
.home-page .service-band .service-photo { background-image: url("/assets/home-service-bg.webp"); background-size: 1728px 727px; background-position: left top; opacity: 1; }
.home-page .service-band .service-shade { background: rgba(0,0,0,.46); }

/* Screenshot fixes: exact icons, hero chips, down control, service buttons */
.down-dot { left: 835px; top: 726px; width: 57px; height: 57px; border-radius: 50%; background: #fff; box-shadow: none; }
.down-dot::before { content: ""; position: absolute; left: 15px; top: 25px; width: 28px; height: 8px; border: 0; transform: none; background: url("/assets/figma-down-arrow.svg") center / contain no-repeat; }
.down-dot:hover { transform: translateY(3px); box-shadow: none; }

.hero-actions { left: 1229px; top: 285px; width: 355px; gap: 18px; }
.contact-chip { width: 355px; height: 60px; border-radius: 15px; background: rgba(217,217,217,.10); padding: 0; gap: 0; justify-content: flex-start; backdrop-filter: none; box-shadow: none; }
.contact-chip:hover { transform: none; box-shadow: none; }
.contact-chip .chip-text { display: block; width: 244px; margin-left: 76px; color: inherit; font-size: 20px; line-height: 1; font-weight: 400; text-transform: none; }
.contact-chip.yellow { justify-content: center; background: var(--accent); }
.contact-chip.yellow .chip-text { width: auto; margin-left: 0; text-transform: uppercase; }
.contact-booking { justify-content: center; font-size: 20px; font-weight: 400; border-radius: 15px; }
.contact-chip .chip-icon { position: absolute; left: 22px; top: 50%; width: 34px; height: 34px; margin-top: -17px; flex: 0 0 auto; background-position: center; background-repeat: no-repeat; background-size: contain; color: transparent; }
.contact-chip .chip-icon.pin { width: 26px; height: 35px; left: 23px; margin-top: -17px; background-image: url("/assets/figma-pin.svg"); }
.contact-chip .chip-icon.phone { width: 36px; height: 36px; left: 22px; margin-top: -18px; background-image: url("/assets/icon-phone.svg"); }
.contact-chip .chip-icon.pin::before,
.contact-chip .chip-icon.pin::after,
.contact-chip .chip-icon.phone::before,
.contact-chip .chip-icon.phone::after { content: none; }

.booking-dialog { height: auto; max-height: calc(100vh - 64px); padding: 76px 75px 44px; scrollbar-color: auto; }
.booking-dialog h2 { width: 100%; margin: 0 0 34px; font-size: 40px; line-height: 1; text-transform: lowercase; }
.booking-dialog .booking-field,
.booking-dialog .booking-file { display: block; color: #a1a1a1; font-size: 20px; line-height: 1; font-weight: 400; text-transform: none; }
.booking-dialog .booking-field input,
.booking-dialog .booking-field select,
.booking-dialog .booking-field textarea,
.booking-dialog .booking-file input { font-weight: 400; }
.booking-form-grid { gap: 20px 42px; }
.booking-field input,
.booking-field select,
.booking-field textarea { height: 64px; margin-top: 10px; font-size: 22px; }
.booking-field textarea { height: 112px; }
.booking-file { min-height: 94px; padding: 17px 24px; }
.booking-file input { font-size: 18px; }
.submit-booking { height: 60px; margin-top: 28px; }

.home-page .service-grid { grid-template-columns: repeat(3, 457.59px); gap: 27px 33.41px; margin-left: 144px; }
.home-page .service-pill { width: 457.59px; height: 88.31px; border-radius: 20px; padding: 0 84px 0 113px; display: flex; align-items: center; justify-content: center; text-align: center; font-family: "HelveticaNeueCyr", Arial, sans-serif; font-size: 18px; line-height: 1; font-weight: 700; }
.home-page .service-pill:hover { transform: none; box-shadow: none; }
.home-page .service-pill::before { content: ""; position: absolute; left: 24px; top: 50%; width: 60px; height: 60px; transform: translateY(-50%); background-position: center; background-repeat: no-repeat; background-size: contain; z-index: 1; }
.home-page .service-pill::after { content: ""; right: 22px; top: 0; width: 64px; height: 88px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 88'%3E%3Cpath d='M8 0 L40 44 L8 88 H25 L57 44 L25 0 Z' fill='%23ffe680'/%3E%3C/svg%3E") center / contain no-repeat; opacity: .72; }
.home-page .service-pill:nth-child(1)::before { width: 63px; height: 63px; background-image: url("/assets/service-icon-oil.svg"); }
.home-page .service-pill:nth-child(2)::before { background-image: url("/assets/service-icon-brake.svg"); }
.home-page .service-pill:nth-child(3)::before { width: 57px; height: 57px; background-image: url("/assets/service-icon-suspension.svg"); }
.home-page .service-pill:nth-child(4)::before { background-image: url("/assets/service-icon-belt.svg"); }
.home-page .service-pill:nth-child(5)::before { background-image: url("/assets/service-icon-tire.svg"); }
.home-page .service-pill:nth-child(6)::before { background-image: url("/assets/service-icon-diagnostic.svg"); }
.home-page .service-pill:nth-child(7)::before { width: 52px; height: 52px; background-image: url("/assets/service-icon-exhaust.svg"); }
.home-page .service-pill:nth-child(8)::before { width: 59px; height: 59px; background-image: url("/assets/service-icon-clutch.svg"); }
@media (max-width: 900px) {
  .booking-dialog { padding: 62px 22px 30px; }
  .booking-form-grid { gap: 16px; }
  .booking-dialog .booking-field,
  .booking-dialog .booking-file { font-size: 16px; }
  .booking-field input,
  .booking-field select,
  .booking-field textarea { height: 58px; font-size: 18px; }
}

.price-guide{min-height:24px;color:#111;font-size:17px;font-weight:700}


/* Official Figma Bridge: phone popover and booking dialog */
.hero-actions{overflow:visible}.contact-phone{position:relative;cursor:pointer}.contact-phone::after{content:"";position:absolute;right:24px;width:12px;height:12px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg) translateY(-3px);transition:transform .28s var(--ease-out)}.contact-phone.is-open::after{transform:rotate(225deg) translate(-2px,-2px)}
.phone-menu{position:absolute;z-index:8;left:0;top:234px;width:355px;height:0;overflow:hidden;border-radius:15px;background:rgba(217,217,217,.10);-webkit-backdrop-filter:blur(6.05px);backdrop-filter:blur(6.05px);opacity:0;transform:translateY(-8px);transform-origin:top;transition:height .36s var(--ease-out),opacity .22s ease,transform .36s var(--ease-out)}.phone-menu.is-open{height:146px;opacity:1;transform:translateY(0)}.phone-menu a{display:flex;align-items:center;justify-content:space-between;height:39px;padding:0 25px;color:#fff;text-decoration:none;font-size:15px;transition:background .2s ease}.phone-menu a:first-child{margin-top:14px}.phone-menu a:hover{background:rgba(255,204,0,.12)}.phone-menu small{color:#fff;font-size:15px}.contact-phone.is-open{border-radius:15px}
.booking-modal{background:transparent}.booking-backdrop{background:rgba(0,0,0,.52);backdrop-filter:blur(10px)}.booking-dialog{width:min(1440px,calc(100vw - 72px));max-height:calc(100vh - 72px);padding:46px 70px 50px;border-radius:48px;background:#fff;overflow:auto}.booking-dialog h2{margin:0 0 22px;text-align:center;font-size:40px;line-height:1;text-transform:uppercase}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:82px}.booking-calendar>p{margin:0 0 22px;color:#8b8b8b;font-size:16px}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;text-transform:capitalize}.calendar-head strong{font-size:17px}.calendar-head button{width:40px;height:36px;border:0;background:transparent;font-size:24px;cursor:pointer}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;text-align:center}.calendar-week{margin-bottom:7px;color:#a0a0a0;font-size:12px}.calendar-days{min-height:235px;padding-bottom:18px;border-bottom:1px solid #ddd}.calendar-days button,.calendar-days span{height:38px;border:0;border-radius:8px;background:transparent;color:#222;font:inherit}.calendar-days button{cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s var(--ease-out)}.calendar-days button:hover:not(:disabled){background:#f2f2f2;transform:translateY(-1px)}.calendar-days button.selected{background:#142118;color:#fff}.calendar-days button:disabled{color:#d2d2d2}.time-picker{margin-top:20px}.time-picker b{display:block;margin-bottom:14px;font-size:15px}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;min-height:48px}.time-grid button{height:42px;border:0;border-radius:8px;background:#f1f1f1;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s var(--ease-out)}.time-grid button:hover,.time-grid button.selected{background:#142118;color:#fff;transform:translateY(-1px)}.booking-details{display:flex;flex-direction:column}.booking-details label{display:block;color:#a1a1a1;font-size:16px}.booking-details label>input:not([type=file]){display:block;width:100%;height:44px;border:0;border-bottom:1px solid #bdbdbd;border-radius:0;background:transparent;color:#111;padding:0;font-size:18px;outline:0;transition:border-color .2s ease}.booking-details label>input:focus{border-color:#111}.booking-details .booking-file{position:relative;display:grid;place-items:center;height:190px;margin-top:18px;border:1px solid #bdbdbd;color:#a0a0a0;cursor:pointer}.booking-details .booking-file input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.booking-details .submit-booking{width:100%;height:64px;margin:32px 0 0;border-radius:14px;font-size:20px}.booking-details #bookingMessage{display:block;min-height:22px;margin-top:10px;text-align:center;color:#555}.booking-details .price-guide{min-height:0;margin:6px 0 0;color:#777;font-size:13px}.modal-close{right:38px;top:30px}
@media(max-width:900px){.phone-menu{top:222px}.booking-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:54px 22px 26px;border-radius:28px}.booking-dialog h2{font-size:30px}.booking-layout{grid-template-columns:1fr;gap:28px}.calendar-days{min-height:205px}.time-grid{grid-template-columns:repeat(3,1fr)}.booking-details .booking-file{height:120px}.booking-details .submit-booking{height:58px;margin-top:22px}}


/* Mobile product layout */
@media (max-width: 700px) {
  .site-scale { width: 100%; height: auto !important; overflow: visible; }
  .page-canvas.home-page { width: 100%; height: auto !important; min-height: 0 !important; transform: none !important; overflow: visible; }
  .home-page .hero { position: relative; width: 100%; height: 760px; }
  .home-page .hero-photo { left: 0; top: 0; width: 100%; height: 760px; background-position: 64% center; opacity: .58; }
  .home-page .hero-shade { background: linear-gradient(180deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.52) 58%, #050505 100%); }
  .home-page .top-nav { left: 16px; top: 22px; display: flex; width: calc(100% - 32px); height: 44px; overflow-x: auto; overflow-y: hidden; border-radius: 12px; scrollbar-width: none; }
  .home-page .top-nav::-webkit-scrollbar { display: none; }
  .home-page .top-nav a { flex: 0 0 auto; min-width: 112px; padding: 0 16px; font-size: 12px; }
  .home-page .brand-lockup { left: 20px; top: 96px; gap: 14px; }
  .home-page .brand-lockup img { width: 148px; }
  .home-page .brand-lockup span { font-size: 13px; }
  .home-page .hero-title { left: 20px; right: 20px; top: 210px; }
  .home-page .hero-title h1 { width: auto; font-size: clamp(34px, 9.4vw, 42px); line-height: .98; }
  .home-page .hero-title p { width: auto; margin-top: 16px; font-size: 16px; line-height: 1.22; }
  .home-page .hero-actions { left: 20px; top: 455px; width: calc(100% - 40px); }
  .home-page .contact-chip { width: 100%; }
  .home-page .contact-chip .chip-text { width: auto; margin-left: 72px; font-size: 17px; }
  .home-page .contact-booking { justify-content: center; }
  .home-page .phone-menu { width: 100%; }
  .home-page .down-dot { left: calc(50% - 28px); top: auto; bottom: -26px; }
  .home-page .white-curve { display: none; }
  .home-page .facts { position: relative; left: 0; top: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 62px 16px 22px; }
  .home-page .yellow-card { width: auto; min-height: 196px; border-radius: 18px; padding: 20px 16px; }
  .home-page .yellow-card::after { right: 8px; font-size: 78px; letter-spacing: -18px; }
  .home-page .yellow-card h2 { font-size: 30px; }
  .home-page .yellow-card p { left: 16px; right: 12px; bottom: 16px; font-size: 15px; line-height: 1.02; }
  .home-page .phone-cta { position: relative; left: auto; top: auto; display: block; width: calc(100% - 32px); height: 64px; margin: 4px 16px 34px; border-width: 2px; font-size: 18px; }
  .home-page .service-band { position: relative; top: auto; width: 100%; height: auto; min-height: 0; padding: 58px 16px 72px; }
  .home-page .service-band h2 { margin: 0 0 14px; font-size: 34px; line-height: 1; }
  .home-page .service-band p { width: auto; font-size: 14px; line-height: 1.3; }
  .home-page .service-grid { grid-template-columns: 1fr; gap: 12px; margin: 32px 0 24px; }
  .home-page .service-pill { width: 100%; height: 72px; border-radius: 16px; padding: 0 64px 0 82px; font-size: 15px; }
  .home-page .service-pill::before { left: 16px; width: 48px !important; height: 48px !important; }
  .home-page .service-pill::after { right: 12px; width: 48px; height: 72px; }
  .home-page .all-services { position: relative; left: auto; top: auto; display: inline-block; font-size: 16px; }
  .home-page .quality { position: relative; top: auto; width: 100%; height: 292px; overflow: hidden; }
  .home-page .wrench { left: -74px; top: 20px; width: 300px; }
  .home-page .quality h2 { left: 148px; right: 18px; top: 78px; width: auto; font-size: 28px; line-height: .98; }
  .home-page .about-strip { position: relative; top: auto; width: 100%; height: auto; min-height: 310px; padding: 46px 20px; }
  .home-page .strip-copy { position: relative; left: auto; top: auto; width: auto; }
  .home-page .strip-copy h2 { font-size: 29px; }
  .home-page .strip-copy p { font-size: 16px; line-height: 1.3; }
  .home-page .map-section { position: relative; top: auto; width: 100%; height: 720px; }
  .home-page .map-bg { width: 100%; height: 360px; }
  .home-page .map-section h2 { width: auto; margin: 72px 18px 16px; font-size: 31px; line-height: .96; }
  .home-page .map-section p { padding: 0 20px; font-size: 15px; line-height: 1.25; }
  .home-page .real-map { left: 16px; top: 310px; width: calc(100% - 32px); height: 360px; background: #e8eddc url('/assets/map.webp') center / cover no-repeat; }
  .home-page .footer { position: relative; left: auto; top: auto; grid-template-columns: 1fr; gap: 22px; width: 100%; height: auto; padding: 28px 20px 44px; }
  .home-page .footer a { font-size: 17px; }
  .home-page .socials { justify-content: flex-start; }
}


/* Mobile product refinements */
@media (max-width:700px){.home-page .contact-address{display:flex!important;background:rgba(24,24,24,.72)}.home-page .quality h2{left:132px;right:14px;top:72px;font-size:24px}.home-page .quality{height:270px}.home-page .wrench{left:-82px;width:285px}}


/* Mobile layouts for inner pages */
@media (max-width:700px) {
  .page-canvas.sub-page { width:100%; height:auto!important; min-height:0!important; transform:none!important; overflow:visible; }
  .sub-page .hero { position:relative; width:100%; height:560px; }
  .sub-page .hero-photo { left:0; top:0; width:100%; height:560px; background-position:64% center; opacity:.58; }
  .sub-page .hero-shade { background:linear-gradient(180deg,rgba(0,0,0,.88),rgba(0,0,0,.54) 62%,#050505); }
  .sub-page .top-nav { left:16px; top:22px; display:flex; width:calc(100% - 32px); height:44px; overflow-x:auto; overflow-y:hidden; border-radius:12px; scrollbar-width:none; }
  .sub-page .top-nav::-webkit-scrollbar { display:none; }
  .sub-page .top-nav a { flex:0 0 auto; min-width:112px; padding:0 16px; font-size:12px; }
  .sub-page .brand-lockup { left:20px; top:98px; gap:14px; }
  .sub-page .brand-lockup img { width:148px; }
  .sub-page .brand-lockup span { font-size:13px; }
  .sub-page .hero-actions { left:20px; top:270px; width:calc(100% - 40px); }
  .sub-page .contact-chip { width:100%; }
  .sub-page .contact-chip .chip-text { width:auto; margin-left:72px; font-size:17px; }
  .sub-page .contact-address { display:flex!important; background:rgba(24,24,24,.72); }
  .sub-page .contact-booking { justify-content:center; }
  .sub-page .phone-menu { width:100%; }

  .sub-page .text-block { position:relative; left:auto; top:auto; width:auto; height:auto; padding:44px 20px 0; }
  .sub-page .text-block h1,.sub-page .text-block h2 { width:auto; margin:0 0 16px; font-size:32px; line-height:1; }
  .sub-page .text-block p { width:auto; height:auto; font-size:16px; line-height:1.35; text-align:left; }
  .sub-page .map-section { position:relative; left:auto; top:auto; width:100%; height:700px; }
  .sub-page .map-bg { width:100%; height:360px; }
  .sub-page .map-section h2 { width:auto; margin:68px 18px 16px; font-size:31px; line-height:.98; }
  .sub-page .map-section p { width:auto; padding:0 20px; font-size:15px; line-height:1.25; }
  .sub-page .map-section .real-map { left:16px; top:300px; width:calc(100% - 32px); height:350px; background:#e8eddc url('/assets/map.webp') center/cover no-repeat; }
  .sub-page .footer { position:relative; left:auto; top:auto; grid-template-columns:1fr; gap:22px; width:100%; height:auto; padding:30px 20px 46px; }
  .sub-page .footer a { font-size:17px; }
  .sub-page .socials { justify-content:flex-start; }

  .about-page .about-intro { padding-top:52px; }
  .about-page .adv-section { position:relative; left:auto; top:auto; width:100%; height:auto; padding:50px 16px 6px; }
  .about-page .adv-section h2 { width:auto; font-size:34px; }
  .about-page .adv-grid { position:relative; left:auto; top:auto; grid-template-columns:1fr; gap:12px; margin:26px 0 0; }
  .about-page .adv-grid article { width:100%; height:auto; min-height:280px; padding:26px 20px; border-radius:18px; }
  .about-page .adv-grid article::before { right:10px; font-size:108px; letter-spacing:-24px; }
  .about-page .adv-grid b,.about-page .adv-grid span,.about-page .adv-grid article:nth-child(n) span { position:relative; left:auto; top:auto; width:auto; }
  .about-page .adv-grid b { font-size:34px; }
  .about-page .adv-grid span,.about-page .adv-grid article:nth-child(n) span { display:block; margin-top:100px; font-size:18px; line-height:1.15; }
  .about-page .trust,.about-page .wide-services { padding-top:48px; }
  .about-page .about-cta { position:relative; left:auto; top:auto; width:100%; height:520px; margin-top:52px; }
  .about-page .about-cta::after,.about-page .about-cta::before { display:none; }
  .about-page .about-cta h2 { left:20px; top:88px; width:calc(100% - 40px); height:auto; font-size:34px; }
  .about-page .about-cta button { left:20px; top:285px; width:calc(100% - 40px); height:82px; font-size:30px; }

  .services-page .services-title { padding-top:52px; }
  .services-page .service-catalog { position:relative; left:auto; top:auto; display:grid; grid-template-columns:1fr; gap:12px; width:100%; height:auto; padding:34px 16px 52px; }
  .services-page .price-card { position:relative; left:auto; top:auto; width:100%; height:330px; border-radius:18px; }
  .services-page .price-card h2 { left:18px; top:24px; width:calc(100% - 36px); height:auto; font-size:28px; }
  .services-page .price-card b { top:120px; font-size:44px; }
  .services-page .price-card p { top:190px; width:calc(100% - 36px); font-size:17px; }
  .services-page .price-card .price-more { left:18px; bottom:18px; width:calc(100% - 36px); height:56px; font-size:17px; }
  .services-page .services-cta { position:relative; left:auto; top:auto; width:100%; height:720px; padding:0 18px; }
  .services-page .services-cta::before,.services-page .services-cta::after { display:none; }
  .services-page .services-cta h2 { left:18px; top:70px; width:calc(100% - 36px); height:auto; font-size:34px; }
  .services-page .services-cta p { left:18px; top:200px; width:calc(100% - 36px); height:auto; font-size:16px; line-height:1.25; }
  .services-page .services-booking-form { left:18px; top:340px; display:grid; gap:14px; width:calc(100% - 36px); height:auto; }
  .services-page .services-booking-form label,.services-page .services-booking-form label:nth-child(n) { position:relative; left:auto; top:auto; width:100%; height:auto; }
  .services-page .services-booking-form input { width:100%; height:60px; font-size:18px; }
  .services-page .services-booking-form button { position:relative; left:auto; top:auto; width:100%; height:60px; font-size:20px; }
  .services-page .services-booking-form .privacy-check { left:0; top:230px; }
  .services-page .services-booking-form small { left:38px; top:224px; width:calc(100% - 38px); font-size:13px; }
  .services-page .services-booking-form .inline-message { left:0; top:292px; width:100%; }

  .gallery-page .gallery-title { padding-top:52px; }
  .gallery-page .gallery-strip { position:relative; left:auto; top:auto; display:grid; grid-template-columns:1fr 1fr; gap:10px; width:100%; height:auto; padding:34px 16px 52px; }
  .gallery-page .gallery-strip img { position:relative; left:auto; top:auto; width:100%; height:220px; border-radius:14px; object-fit:cover; }
  .gallery-page .gallery-strip .g3 { grid-column:1/-1; height:300px; }
  .gallery-page .gallery-arrow { display:none; }

  .faq-page .faq-title { padding-top:52px; }
  .faq-page .faq-list { position:relative; left:auto; top:auto; width:100%; gap:14px; padding:34px 16px 52px; }
  .faq-page .faq-list article { grid-template-columns:1fr; gap:8px; }
  .faq-page .faq-list button { min-height:72px; border-radius:14px; padding:16px 18px; font-size:18px; }
  .faq-page .faq-list p { min-height:0; border-radius:14px; padding:20px 18px; font-size:16px; line-height:1.35; }

  .contacts-page .contacts-block { position:relative; left:auto; top:auto; width:100%; padding:52px 20px 36px; }
  .contacts-page .contacts-block h1 { position:relative; left:auto; top:auto; width:auto; height:auto; font-size:34px; line-height:1; }
  .contacts-page .contacts-block dl { position:relative; left:auto; top:auto; width:auto; height:auto; margin:36px 0 0; display:grid; gap:8px; }
  .contacts-page .contacts-block dt,.contacts-page .contacts-block dd,.contacts-page .contacts-block dt:nth-of-type(n),.contacts-page .contacts-block dd:nth-of-type(n) { position:relative; left:auto; top:auto; width:auto; height:auto; }
  .contacts-page .contacts-block dt { margin-top:18px; font-size:14px; }
  .contacts-page .contacts-block dd { font-size:22px; overflow-wrap:anywhere; }
  .contacts-page .contact-socials { position:relative; left:auto; top:auto; gap:18px; margin-top:34px; }
  .contacts-page .contact-socials a { width:54px; height:54px; }
  .contacts-page .contacts-map { position:relative; width:100%; height:420px; padding:0 16px; }
  .contacts-page .contacts-map .real-map { position:relative; left:auto; top:auto; width:100%; height:390px; background:#e8eddc url('/assets/map.webp') center/cover no-repeat; }
}


/* Mobile FAQ accordion correction */
@media(max-width:700px){.faq-page .faq-list{display:grid!important;height:auto!important}.faq-page .faq-list article{position:relative!important;display:grid!important;grid-template-columns:1fr!important;gap:8px!important}.faq-page .faq-list button,.faq-page .faq-list article:nth-child(n) button{position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important}.faq-page .faq-list button::before,.faq-page .faq-list p::after{display:none}.faq-page .faq-list p,.faq-page .faq-list article:nth-child(n) p{position:relative!important;left:auto!important;top:auto!important;display:none;width:100%!important;min-height:0!important;padding:20px 18px!important}.faq-page .faq-list article.is-open p{display:block}.faq-page .faq-list button::after{content:"+";float:right;margin-left:12px;font-size:24px;line-height:.8}.faq-page .faq-list article.is-open button::after{content:"?"}}


/* Figma parity: deterministic map artwork and interaction polish */
.real-map {
  display: block;
  background-color: #e8eddc;
  background-image: url("/assets/map.webp");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  text-decoration: none;
  overflow: hidden;
  transition: filter .32s ease, box-shadow .32s ease, background-size .55s var(--ease-out);
}
.real-map:hover {
  filter: saturate(1.04) contrast(1.02);
  box-shadow: 0 18px 42px rgba(22, 31, 23, .13);
  background-size: 103% auto;
}
.real-map:focus-visible {
  outline: 4px solid var(--accent);
  outline-offset: 5px;
}
.gallery-strip img {
  transition: opacity .25s ease, transform .48s var(--ease-out), filter .35s ease;
}
.gallery-strip.is-shuffling img {
  opacity: .35;
  transform: scale(.975);
  filter: blur(2px);
}
.gallery-strip img:hover {
  z-index: 2;
  transform: translateY(-7px) scale(1.012);
  filter: saturate(1.06);
}
.price-card,
.adv-grid article {
  transition: transform .32s var(--ease-out), box-shadow .32s ease;
}
.price-card:hover,
.adv-grid article:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 55px rgba(0,0,0,.14);
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}


/* Final typography and layered artwork alignment from Figma frames */
.home-page .wrench { z-index: 4; }
.gallery-page .gallery-title h1,
.faq-page .faq-title h1,
.contacts-page .contacts-block h1 {
  font-family: "HelveticaNeueCyr", Arial, sans-serif;
  font-size: 50px;
  line-height: 1;
  font-weight: 700;
  text-transform: none;
}
.gallery-page .gallery-title p,
.faq-page .faq-title p {
  font-size: 20px;
  line-height: 1;
}
@media (min-width: 701px) {
  .contacts-page::before {
    content: "";
    position: absolute;
    left: 0;
    top: 598px;
    z-index: 0;
    width: 1728px;
    height: 523px;
    background:
      linear-gradient(180deg, #fff 0%, rgba(255,255,255,.94) 20%, rgba(255,255,255,.67) 62%, rgba(255,255,255,.40) 100%),
      url("/assets/map-bg-wide.webp") center / cover no-repeat;
    pointer-events: none;
  }
  .contacts-page .contacts-block { z-index: 1; }
  .contacts-page .contacts-map .real-map { z-index: 2; }
}


/* Figma v2 exact crop, modal geometry, showcase and chat motion */
@media (min-width: 701px) {
  .hero-photo {
    background-size: 1398px 971px;
    background-position: left top;
    background-repeat: no-repeat;
    opacity: 1;
  }
  .hero-shade {
    background:
      linear-gradient(180deg, #000 0%, #000 21.635%, rgba(0,0,0,0) 100%),
      linear-gradient(90deg, #000 0%, #000 25%, rgba(0,0,0,0) 100%);
  }
}
.real-map {
  border: 0;
  background: #e8eddc url("/assets/map.webp") center / cover no-repeat;
}
.gallery-strip img {
  transition:
    left .62s var(--ease-out),
    top .62s var(--ease-out),
    width .62s var(--ease-out),
    height .62s var(--ease-out),
    opacity .36s ease,
    filter .36s ease,
    transform .62s var(--ease-out);
  will-change: left, top, width, height, opacity, transform;
}
.gallery-strip.is-sliding img {
  filter: saturate(1.04);
}
.gallery-strip::before,
.gallery-strip::after {
  content: "";
  position: absolute;
  top: 0;
  z-index: 3;
  width: 165px;
  height: 555px;
  pointer-events: none;
}
.gallery-strip::before {
  left: 0;
  background: linear-gradient(90deg,#fff 5%,rgba(255,255,255,0));
}
.gallery-strip::after {
  right: 0;
  background: linear-gradient(270deg,#fff 5%,rgba(255,255,255,0));
}
.gallery-arrow {
  z-index: 5;
  transition: transform .25s var(--ease-out), background-color .25s ease;
}
.gallery-arrow:hover { transform: scale(1.08); background: #ffd633; }
.faq-list.chat-playing article button,
.faq-list.chat-playing article p {
  animation: chatMessageIn .58s var(--ease-out) both;
}
.faq-list.chat-playing article:nth-child(1) button { animation-delay: 0s; }
.faq-list.chat-playing article:nth-child(1) p { animation-delay: .28s; }
.faq-list.chat-playing article:nth-child(2) button { animation-delay: .58s; }
.faq-list.chat-playing article:nth-child(2) p { animation-delay: .86s; }
.faq-list.chat-playing article:nth-child(3) button { animation-delay: 1.16s; }
.faq-list.chat-playing article:nth-child(3) p { animation-delay: 1.44s; }
@keyframes chatMessageIn {
  from { opacity: 0; transform: translate3d(0,18px,0) scale(.985); }
  to { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}
@media (min-width: 901px) {
  .booking-modal { align-items: flex-start; padding: 0; }
  .booking-backdrop { background: rgba(0,0,0,.2); backdrop-filter: blur(10px); }
  .booking-dialog {
    top: 175px;
    width: 1440px;
    height: 689px;
    max-height: 689px;
    padding: 0;
    border-radius: 50px;
    overflow: hidden;
  }
  .booking-dialog h2 {
    position: absolute;
    left: 0;
    top: 44px;
    width: 1440px;
    margin: 0;
    font-size: 40px;
    line-height: 1;
    text-align: center;
  }
  .booking-layout { display: block; }
  .booking-calendar {
    position: absolute;
    left: 46px;
    top: 110px;
    width: 595px;
    height: 523px;
    padding: 0 29px;
    overflow-y: auto;
    scrollbar-width: thin;
  }
  .booking-calendar > p { margin: 0 0 18px; font-size: 20px; text-transform: none; }
  .booking-details {
    position: absolute;
    left: 742px;
    top: 110px;
    width: 633px;
    height: 521px;
    display: block;
  }
  .booking-details > label:not(.booking-file) {
    position: relative;
    display: block;
    height: 48px;
    color: #a1a1a1;
    font-size: 20px;
    font-weight: 400;
    text-transform: none;
  }
  .booking-details label > input:not([type=file]) {
    position: absolute;
    inset: 0;
    height: 48px;
    padding: 17px 0 0;
    font-size: 18px;
  }
  .booking-details .booking-file {
    height: 181px;
    margin: 0;
    border: 1px solid #a1a1a1;
    font-size: 20px;
  }
  .booking-details .submit-booking {
    width: 633px;
    height: 60px;
    margin: 40px 0 0;
    border-radius: 15px;
    font-size: 20px;
  }
  .booking-details #bookingMessage {
    position: absolute;
    left: 0;
    top: 531px;
    width: 633px;
  }
  .booking-details .price-guide { display: none; }
  .modal-close { right: 24px; top: 27px; width: 46px; height: 46px; }
}
@media (max-width: 700px) {
  .hero-photo { background-size: cover; }
  .gallery-strip::before,
  .gallery-strip::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-strip img,
  .gallery-arrow,
  .faq-list.chat-playing article button,
  .faq-list.chat-playing article p {
    animation: none !important;
    transition: none !important;
  }
}


/* Interaction repair pass: phone drawer, booking usability, FAQ chat and section seams */
.home-page .about-strip { height: 279px; }

.modal-close {
  z-index: 20;
  cursor: pointer;
  pointer-events: auto;
  background: transparent;
  isolation: isolate;
}
.modal-close:hover { background: #f3f3f3; transform: rotate(4deg) scale(1.04); }
.booking-dialog h2 { pointer-events: none; }

.phone-menu {
  height: 146px;
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  clip-path: inset(0 0 100% 0 round 15px);
  transform: translate3d(0, -7px, 0);
  transition:
    clip-path .42s cubic-bezier(.22, 1, .36, 1),
    opacity .16s ease,
    transform .42s cubic-bezier(.22, 1, .36, 1),
    visibility 0s linear .42s;
}
.phone-menu.is-open {
  height: 146px;
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
  clip-path: inset(0 0 0 0 round 15px);
  transform: translate3d(0, 0, 0);
  transition-delay: 0s;
}
.phone-menu a {
  opacity: 0;
  transform: translate3d(0, -8px, 0);
  transition: opacity .22s ease, transform .36s cubic-bezier(.22, 1, .36, 1), background-color .2s ease;
}
.phone-menu.is-open a { opacity: 1; transform: translate3d(0, 0, 0); }
.phone-menu.is-open a:nth-child(1) { transition-delay: .08s; }
.phone-menu.is-open a:nth-child(2) { transition-delay: .13s; }
.phone-menu.is-open a:nth-child(3) { transition-delay: .18s; }
.contact-phone::after {
  top: 50%;
  transform: translateY(-65%) rotate(45deg);
  transform-origin: center;
}
.contact-phone.is-open::after { transform: translateY(-35%) rotate(225deg); }

.vehicle-details {
  margin-top: 5px;
  border: 1px solid #d7d7d7;
  border-radius: 12px;
  background: #fafafa;
}
.vehicle-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  padding: 0 16px;
  color: #333;
  font-size: 15px;
  cursor: pointer;
  list-style: none;
}
.vehicle-details summary::-webkit-details-marker { display: none; }
.vehicle-details summary::after {
  content: "+";
  margin-left: auto;
  padding-left: 18px;
  font-size: 24px;
  line-height: 1;
}
.vehicle-details[open] summary::after { content: "в€’"; }
.vehicle-details summary small { margin-left: 10px; color: #999; font-size: 12px; }
.vehicle-details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; padding: 4px 14px 12px; }
.vehicle-details-grid .booking-file { grid-column: 1 / -1; }

@media (min-width: 901px) {
  .booking-details {
    display: flex;
    flex-direction: column;
  }
  .booking-details > .booking-field {
    flex: 0 0 48px;
    height: 48px;
  }
  .booking-details > .booking-comment {
    flex-basis: 72px;
    height: 72px;
  }
  .booking-details .booking-field span {
    position: absolute;
    left: 0;
    top: 4px;
    z-index: 1;
    color: #8d8d8d;
    font-size: 14px;
    pointer-events: none;
  }
  .booking-details .booking-field input,
  .booking-details .booking-field textarea {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 20px 0 4px;
    border: 0;
    border-bottom: 1px solid #c6c6c6;
    border-radius: 0;
    background: transparent;
    color: #111;
    font: inherit;
    resize: none;
    outline: 0;
  }
  .booking-details .booking-field input:focus,
  .booking-details .booking-field textarea:focus { border-color: #111; }
  .booking-details .vehicle-details { flex: 0 0 auto; }
  .booking-details .vehicle-details-grid .booking-field { position: relative; height: 48px; }
  .booking-details .vehicle-details-grid .booking-file {
    position: relative;
    display: grid;
    place-items: center;
    height: 58px;
    margin: 0;
    border: 1px dashed #bdbdbd;
    border-radius: 9px;
    background: #fff8dc;
    font-size: 14px;
  }
  .booking-details .submit-booking {
    flex: 0 0 60px;
    height: 60px;
    margin: 16px 0 0;
  }
  .booking-details #bookingMessage {
    position: static;
    width: auto;
    min-height: 18px;
    margin-top: 5px;
    font-size: 13px;
  }
}

@media (max-width: 900px) {
  .booking-details > .booking-field { position: relative; display: block; min-height: 64px; }
  .booking-details .booking-field span { display: block; margin-bottom: 5px; color: #777; }
  .booking-details .booking-field input,
  .booking-details .booking-field textarea {
    width: 100%;
    min-height: 44px;
    border: 0;
    border-bottom: 1px solid #bbb;
    border-radius: 0;
    background: transparent;
    resize: vertical;
  }
  .vehicle-details-grid { grid-template-columns: 1fr; }
  .vehicle-details-grid .booking-file { grid-column: auto; }
}

@media (min-width: 701px) {
  .faq-list.chat-armed article button,
  .faq-list.chat-armed article p {
    opacity: 0;
    will-change: opacity, transform;
    transition:
      opacity .34s ease,
      transform .62s cubic-bezier(.22, 1, .36, 1),
      color .18s ease;
  }
  .faq-list.chat-armed article button { transform: translate3d(-62px, 0, 0) scale(.985); }
  .faq-list.chat-armed article p { transform: translate3d(62px, 0, 0) scale(.985); }
  .faq-list.chat-armed article.show-question button,
  .faq-list.chat-armed article.show-answer p,
  .faq-list.chat-armed article.typing p {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
  .faq-list.chat-armed article.typing p {
    color: transparent;
    min-height: 84px;
  }
  .faq-list.chat-armed article.typing p::before {
    content: "вЂўвЂўвЂў";
    position: absolute;
    left: 30px;
    top: 24px;
    color: #111;
    font-size: 24px;
    letter-spacing: 8px;
    animation: chatTyping .72s ease-in-out infinite alternate;
  }
  .faq-list.chat-armed article.show-answer p::before { content: none; }
}
@keyframes chatTyping {
  from { opacity: .35; transform: translateY(2px); }
  to { opacity: 1; transform: translateY(-2px); }
}

@media (prefers-reduced-motion: reduce) {
  .phone-menu,
  .phone-menu a,
  .faq-list.chat-armed article button,
  .faq-list.chat-armed article p {
    animation: none !important;
    transition: none !important;
  }
}

@media (max-width: 900px) {
  .booking-dialog h2 { padding-right: 54px; font-size: 26px; text-align: left; }
  .modal-close { top: 12px; right: 12px; }
}

/* Figma parity and navigation motion */
@media (min-width: 701px) {
  .home-page .hero > .white-curve,
  .home-page .service-band > .white-curve,
  .home-page .quality { overflow: visible; z-index: 3; }
  .home-page .about-strip { height: 273px; z-index: 2; }
  .home-page .about-strip::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
    height: 58px;
    background: url("/assets/section-curve-hero.png") center bottom / 1728px 58px no-repeat;
    pointer-events: none;
  }
  .home-page .chevron-bg {
    display: block;
    inset: 0 auto auto -25px;
    width: 1864px;
    height: 273px;
    background: url("/assets/about-strip-chevron.svg") center / 1728px 273px no-repeat;
    opacity: 1;
  }
  .home-page .wrench { left: 6.46px; top: -5px; width: 671.729px; }
  .home-page .quality h2 { left: 594px; top: 121px; width: 1091px; font-size: 50px; line-height: normal; }
  .home-page .strip-copy { left: 594px; top: 55px; width: 990px; height: 218px; }
  .home-page .strip-copy h2 { margin: 0; font-size: 30px; line-height: normal; }
  .home-page .strip-copy p { position: absolute; left: 0; top: 40px; width: 990px; margin: 0; color: #6d6d6d; font-size: 20px; line-height: normal; }
  .home-page .strip-copy a { position: absolute; left: 0; top: 140px; font-size: 20px; font-weight: 400; }
  .home-page .service-pill { display: grid; place-items: center; padding: 0 38px; }
  .home-page .service-pill::before { content: none; }
  .home-page .service-pill::after {
    content: ""; position: absolute; inset: -40% auto -40% -45%; width: 32%; height: auto;
    background: linear-gradient(105deg, transparent, rgba(255,255,255,.46), transparent);
    opacity: 0; transform: skewX(-18deg) translateX(-180%);
    transition: transform .7s var(--ease-out), opacity .25s ease;
  }
  .home-page .service-pill:hover { transform: translate3d(0,-4px,0) scale(1.008); box-shadow: 0 18px 36px rgba(0,0,0,.2); }
  .home-page .service-pill:hover::after { opacity: 1; transform: skewX(-18deg) translateX(520%); }
}

@view-transition { navigation: auto; }
.top-nav a.active { view-transition-name: active-navigation-item; }
.brand-lockup { view-transition-name: site-brand; }
::view-transition-old(root) { animation: pageLeave .24s ease both; }
::view-transition-new(root) { animation: pageEnter .56s var(--ease-out) both; }
::view-transition-group(active-navigation-item),
::view-transition-group(site-brand) { animation-duration: .52s; animation-timing-function: var(--ease-out); }
@keyframes pageLeave { to { opacity: 0; filter: blur(2px); transform: scale(.995); } }
@keyframes pageEnter {
  from { opacity: 0; filter: blur(5px); transform: translate3d(0,14px,0) scale(.995); }
  to { opacity: 1; filter: blur(0); transform: translate3d(0,0,0) scale(1); }
}
html.is-navigating body { opacity: 0; transform: translate3d(0,8px,0); transition: opacity .2s ease, transform .25s var(--ease-out); }

.motion-reveal,
.motion-stagger > * {
  opacity: 0; transform: translate3d(0,30px,0) scale(.985); animation: none !important;
  will-change: opacity, transform;
}
.motion-reveal.is-in-view {
  opacity: 1; transform: translate3d(0,0,0) scale(1);
  transition: opacity .58s ease, transform .82s var(--ease-out);
}
.motion-stagger.is-in-view > * {
  animation: staggerReveal .72s var(--ease-out) both !important;
  animation-delay: calc(var(--motion-index, 0) * 70ms) !important;
}
@keyframes staggerReveal {
  from { opacity: 0; transform: translate3d(0,34px,0) scale(.975); }
  to { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}
body.is-ready .hero-photo { animation: heroSettle 1.15s var(--ease-out) both; }
body.is-ready .down-dot { animation: downFloat 2.8s ease-in-out 1.1s infinite; }
@keyframes heroSettle {
  from { transform: translate3d(0,0,0) scale(1.025); filter: saturate(.88); }
  to { transform: translate3d(0,0,0) scale(1); filter: saturate(1); }
}
@keyframes downFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(5px); } }
.top-nav a { position: relative; isolation: isolate; }
.top-nav a:not(.active)::after {
  content: ""; position: absolute; left: 50%; right: 50%; bottom: 0; height: 2px; background: var(--accent);
  transition: left .32s var(--ease-out), right .32s var(--ease-out);
}
.top-nav a:not(.active):hover::after { left: 18%; right: 18%; }
.top-nav a:active,
.contact-booking:active,
.phone-cta:active { transform: scale(.975); }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  .motion-reveal, .motion-stagger > *, .motion-reveal.is-in-view {
    opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important;
  }
  body.is-ready .hero-photo, body.is-ready .down-dot { animation: none !important; }
}

@media (min-width: 701px) {
  .home-page .hero > .white-curve {
    display: block; left: 0; bottom: -26px; width: 1728px; height: 80px; border-radius: 0;
    clip-path: path("M 0 0 Q 864 110 1728 0 L 1728 80 L 0 80 Z");
    background: #fff;
  }
  .contact-address .chip-icon.pin { display: block !important; opacity: 1 !important; visibility: visible !important; }
}

/* Address icon positioning from user reference */
.contact-chip { position: relative; }

/* Booking form geometry from Figma node 1:271 */
@media (min-width: 901px) {
  .booking-details { display: block; }
  .booking-details > .booking-field,
  .booking-details > .booking-comment { position: relative; display: block; width: 633px; height: 48px; min-height: 48px; }
  .booking-details > .booking-field span { position: absolute; left: 0; top: 4px; z-index: 1; color: #a1a1a1; font-size: 20px; line-height: 1; pointer-events: none; }
  .booking-details > .booking-field input,
  .booking-details > .booking-field textarea { position: absolute; inset: 0; width: 633px; height: 48px; padding: 17px 0 0; border: 0; border-bottom: 1px solid #a1a1a1; border-radius: 0; background: transparent; color: #111; font-size: 18px; line-height: 1; outline: 0; }
  .booking-details > .booking-file { position: relative; display: grid; place-items: center; width: 633px; height: 181px; min-height: 181px; margin: 0; padding: 0; border: 1px solid #a1a1a1; border-radius: 0; background: transparent; color: #a1a1a1; font-size: 20px; }
  .booking-details > .booking-file input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
  .booking-details > .submit-booking { width: 633px; height: 60px; margin: 40px 0 0; }
}

/* Booking focus parity from Figma node 1:271 */
@media (min-width: 901px) {
  .booking-details > .booking-field input:focus,
  .booking-details > .booking-field textarea:focus {
    border-color: #111;
    background: transparent;
    box-shadow: none;
    outline: 0;
  }
}

/* Booking input baseline parity from Figma node 1:271 */
@media (min-width: 901px) {
  .booking-details > .booking-field input,
  .booking-details > .booking-field textarea { margin: 0; }
}

/* FAQ layout repair: readable cards instead of fixed chat bubbles */
@media (min-width: 701px) {
  .faq-page .faq-title { width: 1320px; }
  .faq-page .faq-title h1 { width: auto; margin-bottom: 22px; }
  .faq-page .faq-title p {
    width: 1240px;
    height: auto;
    color: #333;
    font-size: 19px;
    line-height: 1.32;
  }
  .faq-page .faq-list {
    position: absolute;
    left: 144px;
    top: 930px;
    width: 1440px;
    height: auto;
    display: grid;
    gap: 22px;
  }
  .faq-page .faq-list article {
    position: relative;
    display: grid;
    grid-template-columns: 455px minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid #e4e4e4;
    border-radius: 20px;
    background: #f5f5f3;
    box-shadow: 0 12px 34px rgba(0, 0, 0, .06);
  }
  .faq-page .faq-list button,
  .faq-page .faq-list article:nth-child(n) button {
    position: relative;
    left: auto;
    top: auto;
    width: auto;
    height: auto;
    min-height: 150px;
    border: 0;
    border-radius: 0;
    padding: 30px 58px 30px 34px;
    background: var(--accent);
    color: #090909;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.22;
  }
  .faq-page .faq-list button::before {
    left: auto;
    right: 25px;
    top: 50%;
    width: 18px;
    height: 18px;
    border-right: 3px solid #111;
    border-bottom: 3px solid #111;
    background: transparent;
    clip-path: none;
    transform: translateY(-65%) rotate(45deg);
    opacity: .7;
  }
  .faq-page .faq-list p,
  .faq-page .faq-list article:nth-child(n) p {
    position: relative;
    left: auto;
    top: auto;
    width: auto;
    min-height: 150px;
    margin: 0;
    padding: 30px 36px;
    border-radius: 0;
    background: transparent;
    color: #222;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.38;
  }
  .faq-page .faq-list p::after { display: none; }
  .faq-page .faq-map { top: 1670px; }
  .faq-page .faq-footer { top: 2585px; }
}
/* Seamless, draggable gallery rail */
.gallery-page .gallery-strip {
  height: 640px;
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
  background: #050505;
}
.gallery-page .gallery-strip.is-dragging { cursor: grabbing; }
.gallery-page .gallery-track {
  display: flex;
  width: max-content;
  height: 100%;
  will-change: transform;
}
.gallery-page .gallery-track img,
.gallery-page .gallery-track img:hover {
  position: relative;
  left: auto;
  top: auto;
  flex: 0 0 416px;
  width: 416px;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  box-shadow: none;
  transform: none;
  filter: none;
  transition: none;
  pointer-events: none;
}
.gallery-page .gallery-strip::before,
.gallery-page .gallery-strip::after,
.gallery-page .gallery-arrow { display: none; }

@media (max-width: 700px) {
  .gallery-page .gallery-strip {
    display: block;
    width: 100%;
    height: 320px;
    margin-top: 34px;
    padding: 0;
  }
  .gallery-page .gallery-track img,
  .gallery-page .gallery-track img:hover {
    flex-basis: 82vw;
    width: 82vw;
    height: 320px;
    border-radius: 0;
  }
}
/* Official interactive Yandex map. The wrapper keeps the exact Figma geometry. */
.real-map.live-map { overflow: hidden; background: #e8eddc url("/assets/map.webp") center / cover no-repeat; }
.yandex-map-frame { display: block; width: 100%; height: 100%; border: 0; background: transparent; }
@media (min-width: 701px) {
  .faq-page .faq-list.chat-armed article button,
  .faq-page .faq-list.chat-armed article p,
  .faq-page .faq-list.chat-armed article.typing p {
    opacity: 1 !important;
    transform: none !important;
    color: #222 !important;
    transition: none !important;
  }
  .faq-page .faq-list.chat-armed article button { color: #090909 !important; }
  .faq-page .faq-list.chat-armed article.typing p::before { display: none !important; }
}
/* Online support chat */
.support-chat{position:fixed;right:28px;bottom:24px;z-index:10000;font-family:"HelveticaNeueCyr",Arial,sans-serif;color:#111}.support-launcher{display:flex;align-items:center;gap:10px;height:54px;padding:0 22px;border:0;border-radius:27px;background:#111;color:#fff;box-shadow:0 12px 35px rgba(0,0,0,.25);font:700 15px/1 inherit;cursor:pointer}.support-launcher-dot{width:10px;height:10px;border-radius:50%;background:#888}.support-launcher-dot.online{background:#c9ff3d;box-shadow:0 0 0 5px rgba(201,255,61,.15)}.support-panel{position:absolute;right:0;bottom:66px;display:flex;flex-direction:column;width:min(390px,calc(100vw - 24px));height:min(600px,calc(100vh - 110px));overflow:hidden;border:1px solid rgba(0,0,0,.12);border-radius:24px;background:#f7f7f3;box-shadow:0 24px 70px rgba(0,0,0,.25);opacity:0;pointer-events:none;transform:translateY(12px) scale(.98);transform-origin:bottom right;transition:.2s ease}.support-chat.is-open .support-panel{opacity:1;pointer-events:auto;transform:none}.support-panel header{display:flex;align-items:center;justify-content:space-between;padding:19px 20px;background:#111;color:#fff}.support-panel header div{display:grid;gap:4px}.support-panel header strong{font-size:17px}.support-panel header small{color:#aaa;font-size:12px}.support-panel header small.online{color:#c9ff3d}.support-close{width:34px;height:34px;border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}.support-messages{flex:1;display:flex;flex-direction:column;gap:10px;overflow:auto;padding:18px}.support-welcome{max-width:85%;padding:12px 14px;border-radius:15px 15px 15px 4px;background:#fff;color:#555;font-size:14px;line-height:1.4}.support-message{display:grid;gap:4px;max-width:82%;padding:11px 13px;border-radius:15px;background:#fff;font-size:14px;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere}.support-message.visitor{align-self:flex-end;border-bottom-right-radius:4px;background:#f4f75f}.support-message.admin{align-self:flex-start;border-bottom-left-radius:4px}.support-message small{color:#777;font-size:10px;text-align:right}.support-start{display:grid;gap:9px;padding:0 18px 12px}.support-start input,.support-start textarea,.support-reply textarea{box-sizing:border-box;width:100%;border:1px solid #ddd;border-radius:12px;background:#fff;padding:11px 12px;color:#111;font:14px/1.3 inherit;outline:none}.support-start textarea{min-height:88px;resize:none}.support-start button,.support-reply button{border:0;border-radius:12px;background:#111;color:#fff;font-weight:700;cursor:pointer}.support-start button{height:43px}.support-reply{display:grid;grid-template-columns:1fr 44px;gap:8px;padding:12px 14px 8px;border-top:1px solid #e5e5e0}.support-reply textarea{height:44px;min-height:44px;max-height:100px;resize:none}.support-reply button{font-size:20px}.support-panel button:disabled,.support-panel input:disabled,.support-panel textarea:disabled{cursor:not-allowed;opacity:.55}.support-note{margin:0;padding:0 18px 14px;color:#777;font-size:11px;text-align:center}@media(max-width:700px){.support-chat{right:12px;bottom:12px}.support-launcher{height:50px;padding:0 17px}.support-panel{position:fixed;right:8px;bottom:70px;left:8px;width:auto;height:min(620px,calc(100dvh - 86px));border-radius:20px}}
.cms-public-section{padding:72px 5vw;background:#f4f4ef}.cms-public-head span{color:#7c7e16;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.14em}.cms-public-head h2{max-width:760px;margin:8px 0 28px;font-family:HelveticaNeueCyrCondensed,Arial,sans-serif;font-size:clamp(38px,5vw,68px);line-height:.95;text-transform:uppercase}.cms-public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cms-public-card{min-height:220px;border:1px solid #dedfd7;border-radius:14px;padding:24px;background:#fff}.cms-public-card span{color:#7b7d73;font-size:11px;text-transform:uppercase}.cms-public-card h3{margin:28px 0 10px;font-size:24px}.cms-public-card p{color:#71736b;line-height:1.5}@media(max-width:760px){.cms-public-grid{grid-template-columns:1fr}.cms-public-section{padding:46px 20px}}


/* FAQ desktop parity with Figma frame 1:779 */
@media (min-width: 701px) {
  .faq-page .faq-title { left: 144px; top: 664px; width: 1440px; }
  .faq-page .faq-title h1 { width: 1400px; margin: 0 0 17px; font-size: 50px; line-height: 1; }
  .faq-page .faq-title p { width: 1440px; height: 80px; color: #000; font-size: 20px; line-height: 1; text-align: justify; }
  .faq-page .faq-list { position: absolute; left: 0; top: 0; width: 1728px; height: 1953px; display: block; }
  .faq-page .faq-list article { position: static; display: block; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .faq-page .faq-list button,
  .faq-page .faq-list article:nth-child(n) button { position: absolute; height: 61px; min-height: 61px; border: 0; border-radius: 15px; padding: 0 26px; background: #e2e2e2; color: #000 !important; text-align: left; font-size: 20px; font-weight: 400; line-height: 1; }
  .faq-page .faq-list article:nth-child(1) button { left: 156px; top: 944px; width: 817px; }
  .faq-page .faq-list article:nth-child(2) button { left: 156px; top: 1253px; width: 409px; }
  .faq-page .faq-list article:nth-child(3) button { left: 156px; top: 1600px; width: 660px; }
  .faq-page .faq-list button::before { display: block; left: -12px; right: auto; top: 43px; width: 24px; height: 22px; border: 0; background: #e2e2e2; clip-path: polygon(0 0, 100% 50%, 0 100%); transform: none; opacity: 1; }
  .faq-page .faq-list p,
  .faq-page .faq-list article:nth-child(n) p { position: absolute; left: 751px; width: 821px; margin: 0; border-radius: 15px; padding: 20px 27px 0 28px; background: var(--accent); color: #000 !important; text-align: justify; font-size: 20px; font-weight: 400; line-height: 1; }
  .faq-page .faq-list article:nth-child(1) p { top: 1037px; height: 175px; min-height: 175px; }
  .faq-page .faq-list article:nth-child(2) p { top: 1346px; height: 222px; min-height: 222px; }
  .faq-page .faq-list article:nth-child(3) p { top: 1693px; height: 192px; min-height: 192px; padding-top: 29px; }
  .faq-page .faq-list p::after { display: block; right: -12px; bottom: -4px; width: 24px; height: 22px; background: var(--accent); clip-path: polygon(100% 0, 0 50%, 100% 100%); }
  .faq-page .faq-map { top: 1953px; }
  .faq-page .faq-footer { top: 2868px; }
}
/* Figma 1:779 hero seam and always-visible map content */
@media (min-width: 701px) {
  .faq-page .hero > .white-curve {
    display: block;
    left: 0;
    top: 540px;
    bottom: auto;
    width: 1728px;
    height: 58px;
    border-radius: 0;
    clip-path: path("M 0 0 Q 864 116 1728 0 L 1728 58 L 0 58 Z");
    background: #fff;
  }
  .faq-page .down-dot { left: 835px; top: 518px; }
  .faq-page .faq-map h2.motion-reveal,
  .faq-page .faq-map > p.motion-reveal,
  .faq-page .faq-map .real-map.motion-reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
/* Availability keeps occupied time visible */
.time-picker .time-hint{margin:-8px 0 12px;color:#999;font-size:12px}.time-grid button{height:48px;line-height:1.05}.time-grid button small{display:block;margin-top:4px;font-size:9px;opacity:.65}.time-grid button:disabled{cursor:not-allowed;background:#f3f3f3;color:#b5b5b5;text-decoration:line-through;transform:none}.time-grid button:disabled:hover{background:#f3f3f3;color:#b5b5b5;transform:none}

/* Support chat desktop sizing */
@media (min-width: 701px) {
  .support-panel {
    width: min(480px, calc(100vw - 56px));
    height: min(680px, calc(100dvh - 110px));
  }
}
/* Redesigned Figma screens: final visual parity overrides */
.services-cta h2 { text-transform: uppercase; }
.services-cta > button {
  position: absolute;
  left: 568px;
  top: 388px;
  z-index: 2;
  width: 591px;
  height: 141px;
  border: 0;
  border-radius: 15px;
  background: var(--accent);
  color: #000;
  font: 700 60px/1 "HelveticaNeueCyrCondensed", "Arial Narrow", Arial, sans-serif;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .28s var(--ease-out), background-color .28s ease, box-shadow .28s ease;
}
.services-cta > button:hover { background: #ffd633; transform: translateY(-3px); box-shadow: 0 18px 40px rgba(0,0,0,.18); }
.booking-policy {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start;
  gap: 12px;
  margin-top: 18px;
  color: #000 !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}
.booking-policy input { flex: 0 0 26px; width: 26px !important; height: 26px !important; margin: 0 !important; accent-color: var(--accent); }
.booking-policy span { padding-top: 4px; }
@media (min-width: 701px) {
  .gallery-page .gallery-strip { height: 640px; cursor: default; touch-action: auto; user-select: auto; background: #fff; }
  .gallery-page .gallery-track { display: contents; width: auto; height: auto; }
  .gallery-page .gallery-track img,
  .gallery-page .gallery-track img:hover { position: absolute; flex: none; border-radius: 0; object-fit: cover; box-shadow: 0 24px 60px rgba(0,0,0,.18); pointer-events: auto; transition: left .62s var(--ease-out), top .62s var(--ease-out), width .62s var(--ease-out), height .62s var(--ease-out), filter .36s ease, transform .62s var(--ease-out); }
  .gallery-page .gallery-track img.g1 { left: -50px; top: 66px; width: 317px; height: 423px; }
  .gallery-page .gallery-track img.g2 { left: 267px; top: 34px; width: 389px; height: 487px; }
  .gallery-page .gallery-track img.g3 { left: 656px; top: 0; width: 416px; height: 555px; }
  .gallery-page .gallery-track img.g4 { left: 1072px; top: 34px; width: 365px; height: 487px; }
  .gallery-page .gallery-track img.g5 { left: 1437px; top: 66px; width: 318px; height: 423px; }
  .gallery-page .gallery-strip::before,
  .gallery-page .gallery-strip::after { display: block; }
  .gallery-page .gallery-arrow { display: block; }
}
@media (max-width: 700px) {
  .services-cta > button { left: 18px; top: 300px; width: calc(100% - 36px); height: 72px; border-radius: 12px; font-size: 30px; }
  .gallery-page .gallery-track { display: contents; }
}
/* 2026-07 design exports and paged gallery */
.home-page .hero > .white-curve { background: url("/assets/section-curve-hero.png") center / 1728px 58px no-repeat; clip-path: none; border-radius: 0; }
.home-page .service-band > .white-curve { background: url("/assets/section-curve-service.png") center / 1728px 58px no-repeat; clip-path: none; border-radius: 0; }
.faq-page .hero > .white-curve { background: url("/assets/section-curve-subpage.png") center / 1728px 58px no-repeat !important; clip-path: none !important; border-radius: 0 !important; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.home-page .yellow-card.design-export { overflow: hidden; padding: 0; background: transparent; }
.home-page .yellow-card.design-export::after { content: none !important; }
.home-page .yellow-card.design-export img { display: block; width: 100%; height: 100%; object-fit: contain; }
.home-page .service-pill.design-export { overflow: hidden; padding: 0; background: transparent; }
.home-page .service-pill.design-export img { display: block; width: 100%; height: 100%; object-fit: fill; }
.about-page .adv-grid article.design-export { overflow: hidden; padding: 0; border: 0; background: transparent; }
.about-page .adv-grid article.design-export::before { content: none; }
.about-page .adv-grid article.design-export img { display: block; width: 100%; height: 100%; object-fit: fill; }

.gallery-page .gallery-strip { --gallery-control: 56px; z-index: 5; overflow: visible; outline: none; background: #fff; touch-action: pan-y; user-select: none; isolation: isolate; }
.gallery-page .gallery-map .map-bg { pointer-events: none; }
.gallery-page .gallery-viewport { position: absolute; left: 144px; top: 0; width: 1440px; height: 555px; overflow: hidden; border-radius: 20px; background: #090909; box-shadow: 0 28px 70px rgba(0,0,0,.2); }
.gallery-page .gallery-track { display: flex !important; width: 100% !important; height: 100% !important; transform: translate3d(0,0,0); transition: transform .72s cubic-bezier(.22,1,.36,1); will-change: transform; }
.gallery-page .gallery-slide { position: relative; flex: 0 0 100%; width: 100%; height: 100%; margin: 0; overflow: hidden; }
.gallery-page .gallery-slide img,
.gallery-page .gallery-slide img:hover { position: static !important; display: block; width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 0; box-shadow: none; filter: none; transform: none; pointer-events: none; transition: none; }
.gallery-page .gallery-slide figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 68px 40px 30px; background: linear-gradient(transparent,rgba(0,0,0,.78)); color: #fff; font-size: 23px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.gallery-page .gallery-strip::before,
.gallery-page .gallery-strip::after { display: none !important; }
.gallery-page .gallery-arrow { top: 574px; z-index: 4; display: grid !important; place-items: center; width: var(--gallery-control); height: var(--gallery-control); padding: 0; border: 0; border-radius: 50%; background: transparent; box-shadow: 0 12px 28px rgba(0,0,0,.13); }
.gallery-page .gallery-arrow.left { left: 786px; }
.gallery-page .gallery-arrow.right { left: 886px; }
.gallery-page .gallery-arrow img { display: block; width: 56px; height: 56px; }
.gallery-page .gallery-arrow.right img { transform: rotate(180deg); }
.gallery-page .gallery-arrow:hover { transform: translateY(-2px) scale(1.06); background: transparent; }
.gallery-page .gallery-pagination { position: absolute; left: 144px; top: 593px; display: flex; gap: 10px; align-items: center; }
.gallery-page .gallery-pagination button { width: 34px; height: 6px; padding: 0; border: 0; border-radius: 999px; background: #d7d7d7; cursor: pointer; transition: width .3s ease, background-color .3s ease; }
.gallery-page .gallery-pagination button.active { width: 64px; background: #ffcc00; }
.gallery-page .gallery-counter { position: absolute; right: 144px; top: 575px; display: flex; gap: 8px; align-items: baseline; margin: 0; color: #9b9b9b; font-size: 18px; font-variant-numeric: tabular-nums; }
.gallery-page .gallery-counter b { color: #111; font-size: 30px; }
.gallery-page .gallery-counter span { color: #ffcc00; }
/* Pointer-driven layered panels, inspired by the Apple TV card interaction. */
@media (hover: hover) and (pointer: fine) {
  .tilt-panel {
    --tilt-rx: 0deg;
    --tilt-ry: 0deg;
    --tilt-scale: 1;
    --glare-x: 50%;
    --glare-y: 50%;
    isolation: isolate;
    transform: perspective(720px) rotateX(var(--tilt-rx)) rotateY(var(--tilt-ry)) scale3d(var(--tilt-scale), var(--tilt-scale), 1);
    transform-style: preserve-3d;
    transform-origin: center center;
    will-change: transform;
    transition: transform .72s cubic-bezier(.2,.8,.2,1), box-shadow .72s cubic-bezier(.2,.8,.2,1);
  }
  .tilt-panel.is-tilting {
    --tilt-scale: 1.045;
    z-index: 8;
    box-shadow: 0 40px 78px rgba(0,0,0,.30), 0 12px 24px rgba(0,0,0,.16);
    transition-duration: .12s;
    transition-timing-function: ease-out;
  }
  .tilt-panel.is-pressed { --tilt-scale: .975; }
  .tilt-panel > :not(.tilt-glare) {
    transform: translateZ(30px);
    transform-style: preserve-3d;
  }
  .tilt-panel > img:not(.tilt-glare) { transform: translateZ(22px) scale(1.025); }
  .tilt-panel .tilt-glare {
    position: absolute;
    inset: -1px;
    z-index: 20;
    display: block;
    border-radius: inherit;
    background:
      radial-gradient(circle at var(--glare-x) var(--glare-y), rgba(255,255,255,.68) 0, rgba(255,255,255,.25) 16%, transparent 46%),
      linear-gradient(115deg, rgba(255,255,255,.22), transparent 45%);
    opacity: 0;
    pointer-events: none;
    transform: translateZ(42px);
    transition: opacity .38s ease;
  }
  .tilt-panel.is-tilting .tilt-glare { opacity: .88; }

  .yellow-card.tilt-panel:hover,
  .service-pill.tilt-panel:hover,
  .price-card.tilt-panel:hover,
  .adv-grid article.tilt-panel:hover {
    transform: perspective(720px) rotateX(var(--tilt-rx)) rotateY(var(--tilt-ry)) scale3d(var(--tilt-scale), var(--tilt-scale), 1);
  }
}
/* Figma node parity: exact section seams, FAQ artwork and gallery geometry */
html { scrollbar-width: thin; scrollbar-color: #ffcc00 #111; }
body::-webkit-scrollbar { width: 11px; }
body::-webkit-scrollbar-track { background: #111; }
body::-webkit-scrollbar-thumb { background: #ffcc00; border: 3px solid #111; border-radius: 999px; }

@media (min-width: 701px) {
  .page-canvas .hero > .white-curve,
  .home-page .service-band > .white-curve {
    position: absolute;
    display: block;
    left: 0;
    bottom: auto;
    width: 1728px;
    height: 58px;
    border-radius: 0;
    clip-path: none !important;
    background: url("/assets/section-curve-exact.svg") center / 1728px 58px no-repeat !important;
    pointer-events: none;
    z-index: 8;
  }
  .page-canvas .hero-sub > .white-curve { top: 540px; }
  .home-page .hero-home > .white-curve { top: 748px; }
  .home-page .service-band > .white-curve { top: 669px; }
  .home-page .about-strip::after {
    top: 215px;
    bottom: auto;
    width: 1728px;
    height: 58px;
    background: url("/assets/section-curve-exact.svg") center / 1728px 58px no-repeat;
  }

  .gallery-page .gallery-strip {
    position: absolute;
    left: 0;
    top: 943px;
    width: 1728px;
    height: 640px;
    overflow: visible;
    background: #fff;
    isolation: isolate;
    touch-action: pan-y;
    user-select: none;
  }
  .gallery-page .gallery-item,
  .gallery-page .gallery-item:hover {
    position: absolute !important;
    display: block;
    max-width: none;
    border-radius: 0;
    object-fit: cover;
    box-shadow: none;
    filter: none;
    transform: none;
    transition: left .64s cubic-bezier(.22,1,.36,1), top .64s cubic-bezier(.22,1,.36,1), width .64s cubic-bezier(.22,1,.36,1), height .64s cubic-bezier(.22,1,.36,1);
  }
  .gallery-page .gallery-item.g1 { left: -50px !important; top: 66px !important; width: 317px !important; height: 423px !important; z-index: 1; }
  .gallery-page .gallery-item.g2 { left: 267px !important; top: 34px !important; width: 389px !important; height: 487px !important; z-index: 2; }
  .gallery-page .gallery-item.g3 { left: 656px !important; top: 0 !important; width: 416px !important; height: 555px !important; z-index: 3; }
  .gallery-page .gallery-item.g4 { left: 1072px !important; top: 34px !important; width: 365px !important; height: 487px !important; z-index: 2; }
  .gallery-page .gallery-item.g5 { left: 1437px !important; top: 66px !important; width: 318px !important; height: 423px !important; z-index: 1; }
  .gallery-page .gallery-strip::before,
  .gallery-page .gallery-strip::after {
    content: "";
    position: absolute;
    display: block !important;
    top: -12px;
    width: 291px;
    height: 597px;
    pointer-events: none;
    z-index: 5;
  }
  .gallery-page .gallery-strip::before { left: 0; background: linear-gradient(90deg,#fff 0%,rgba(255,255,255,0) 100%); }
  .gallery-page .gallery-strip::after { right: 0; background: linear-gradient(270deg,#fff 0%,rgba(255,255,255,0) 100%); }
  .gallery-page .gallery-arrow {
    top: 590px;
    z-index: 7;
    display: grid !important;
    place-items: center;
    width: 56px;
    height: 56px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    box-shadow: none;
  }
  .gallery-page .gallery-arrow.left { left: 735px; }
  .gallery-page .gallery-arrow.right { left: 936px; }
  .gallery-page .gallery-arrow img { position: static !important; display: block; width: 56px !important; height: 56px !important; }
  .gallery-page .gallery-arrow.right img { transform: rotate(180deg); }

  .faq-page .faq-bubble-bg { position: absolute; display: block; max-width: none; pointer-events: none; z-index: 1; }
  .faq-page .faq-list article:nth-child(1) .faq-question-bg { left: 144px; top: 944px; width: 829px; height: 65px; }
  .faq-page .faq-list article:nth-child(2) .faq-question-bg { left: 144px; top: 1253px; width: 421px; height: 65px; }
  .faq-page .faq-list article:nth-child(3) .faq-question-bg { left: 144px; top: 1600px; width: 672px; height: 65px; }
  .faq-page .faq-list article:nth-child(1) .faq-answer-bg { left: 751px; top: 1037px; width: 833px; height: 179px; }
  .faq-page .faq-list article:nth-child(2) .faq-answer-bg { left: 751px; top: 1346px; width: 833px; height: 226px; }
  .faq-page .faq-list article:nth-child(3) .faq-answer-bg { left: 751px; top: 1693px; width: 833px; height: 196px; }
  .faq-page .faq-list button,
  .faq-page .faq-list article:nth-child(n) button {
    z-index: 2;
    display: flex;
    align-items: center;
    height: 61px;
    padding: 0 26px;
    border: 0;
    border-radius: 15px;
    background: transparent;
    font-size: 20px;
    line-height: 1;
  }
  .faq-page .faq-list button::before { display: none; }
  .faq-page .faq-list p,
  .faq-page .faq-list article:nth-child(n) p {
    z-index: 2;
    left: 779px;
    width: 766px;
    margin: 0;
    padding: 20px 0 0;
    border-radius: 0;
    background: transparent;
    font-size: 18px;
    line-height: 1.08;
  }
  .faq-page .faq-list article:nth-child(1) p { top: 1037px; height: 175px; min-height: 175px; }
  .faq-page .faq-list article:nth-child(2) p { top: 1346px; height: 222px; min-height: 222px; }
  .faq-page .faq-list article:nth-child(3) p { top: 1693px; height: 192px; min-height: 192px; padding-top: 29px; }
  .faq-page .faq-list p::after { display: none; }
}
/* Final artwork and interaction repair: supplied 4x composite, seamless curves and FAQ chat */
.quality-composite { display: none; }

@media (min-width: 701px) {
  .page-canvas .hero {
    z-index: 40;
    overflow: visible;
  }
  .page-canvas .hero-home { height: 808px; }
  .page-canvas .hero-sub { height: 600px; }
  .page-canvas .hero-actions { z-index: 90; }
  .page-canvas .phone-menu { z-index: 100; }

  .home-page .service-band {
    z-index: 6;
    height: 729px;
    overflow: visible;
  }
  .page-canvas .hero > .white-curve,
  .home-page .service-band > .white-curve {
    height: 62px;
    background:
      linear-gradient(#fff, #fff) center bottom / 100% 4px no-repeat,
      url("/assets/section-curve-exact.svg") center top / 1728px 58px no-repeat !important;
  }

  .home-page .quality-composite {
    position: absolute;
    left: 0;
    top: 2144px;
    z-index: 4;
    display: block;
    width: 1728px;
    height: auto;
    pointer-events: none;
    user-select: none;
  }
  .home-page .quality,
  .home-page .about-strip {
    z-index: 5;
    background: transparent;
  }
  .home-page .quality h2,
  .home-page .strip-copy { z-index: 2; }
  .home-page .wrench,
  .home-page .chevron-bg { display: none; }
  .home-page .about-strip::after { display: none; }

  .faq-page .faq-list.chat-ready article .faq-question-bg,
  .faq-page .faq-list.chat-ready article button,
  .faq-page .faq-list.chat-ready article .faq-answer-bg,
  .faq-page .faq-list.chat-ready article p {
    opacity: 0;
    transform: translate3d(0, 24px, 0) scale(.985);
    transform-origin: center;
    will-change: opacity, transform;
  }
  .faq-page .faq-list.chat-ready.chat-playing article .faq-question-bg,
  .faq-page .faq-list.chat-ready.chat-playing article button,
  .faq-page .faq-list.chat-ready.chat-playing article .faq-answer-bg,
  .faq-page .faq-list.chat-ready.chat-playing article p {
    animation: faqChatMessageIn .62s cubic-bezier(.22, 1, .36, 1) both;
  }
  .faq-page .faq-list.chat-playing article:nth-child(1) .faq-question-bg,
  .faq-page .faq-list.chat-playing article:nth-child(1) button { animation-delay: 0s; }
  .faq-page .faq-list.chat-playing article:nth-child(1) .faq-answer-bg,
  .faq-page .faq-list.chat-playing article:nth-child(1) p { animation-delay: .42s; }
  .faq-page .faq-list.chat-playing article:nth-child(2) .faq-question-bg,
  .faq-page .faq-list.chat-playing article:nth-child(2) button { animation-delay: .9s; }
  .faq-page .faq-list.chat-playing article:nth-child(2) .faq-answer-bg,
  .faq-page .faq-list.chat-playing article:nth-child(2) p { animation-delay: 1.32s; }
  .faq-page .faq-list.chat-playing article:nth-child(3) .faq-question-bg,
  .faq-page .faq-list.chat-playing article:nth-child(3) button { animation-delay: 1.8s; }
  .faq-page .faq-list.chat-playing article:nth-child(3) .faq-answer-bg,
  .faq-page .faq-list.chat-playing article:nth-child(3) p { animation-delay: 2.22s; }
}

@keyframes faqChatMessageIn {
  from { opacity: 0; transform: translate3d(0, 24px, 0) scale(.985); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .faq-page .faq-list.chat-ready article .faq-question-bg,
  .faq-page .faq-list.chat-ready article button,
  .faq-page .faq-list.chat-ready article .faq-answer-bg,
  .faq-page .faq-list.chat-ready article p {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
/* 2026-07-16 interaction and layout repair */
@media (min-width: 701px) {
  .page-canvas .hero > .white-curve,
  .home-page .service-band > .white-curve {
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 60px;
    background: url("/assets/section-curve-exact.svg") center / 100% 100% no-repeat !important;
    box-shadow: 0 3px 0 #fff;
  }

  .map-section { overflow: visible; }
  .map-section .real-map { z-index: 4; }

  .about-page .adv-grid article {
    display: flex;
    flex-direction: column;
    height: 549px;
    padding: 29px 24px 28px;
    border-radius: 24px;
    background: #ffcc00;
  }
  .about-page .adv-grid article::before { right: 24px; opacity: .78; }
  .about-page .adv-grid b {
    position: relative;
    left: auto;
    top: auto;
    width: 405px;
    margin: 0;
    font-size: 43px;
    line-height: .98;
    overflow-wrap: normal;
  }
  .about-page .adv-grid span,
  .about-page .adv-grid article:nth-child(n) span {
    position: relative;
    left: auto;
    top: auto;
    width: 398px;
    margin: auto 0 0;
    font-size: 22px;
    line-height: 1.14;
  }

  .about-cta { background: #fff; }
  .about-cta .service-photo {
    background-image: url("/assets/about-cta-group-40.jpg");
    background-size: 100% 100%;
    background-position: center;
    opacity: 1;
  }
  .about-cta .service-shade,
  .about-cta::before,
  .about-cta::after { display: none; }

  .gallery-page .gallery-strip {
    top: 943px;
    height: 650px;
    overflow: visible;
    cursor: grab;
  }
  .gallery-page .gallery-strip.is-dragging { cursor: grabbing; }
  .gallery-page .gallery-viewport {
    left: 144px;
    top: 0;
    width: 1440px;
    height: 555px;
    overflow: hidden;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
  }
  .gallery-page .gallery-track {
    display: flex !important;
    align-items: center;
    gap: 18px;
    width: max-content !important;
    min-width: 100%;
    height: 555px !important;
    padding: 66px 0;
    transform: translate3d(0,0,0);
    transition: transform .64s cubic-bezier(.22,1,.36,1);
    will-change: transform;
  }
  .gallery-page .gallery-slide {
    position: relative;
    flex: 0 0 auto;
    width: auto;
    height: 423px;
    aspect-ratio: var(--gallery-ratio);
    margin: 0;
    overflow: hidden;
    background: #ececea;
  }
  .gallery-page .gallery-slide img,
  .gallery-page .gallery-slide img:hover {
    position: static !important;
    display: block;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    border-radius: 0;
    box-shadow: none;
    transform: none;
    filter: none;
    transition: transform .45s ease;
  }
  .gallery-page .gallery-slide:hover img { transform: scale(1.025); }
  .gallery-page .gallery-arrow:disabled { opacity: .32; cursor: default; transform: none; }
  .gallery-page .gallery-pagination { max-width: 620px; flex-wrap: nowrap; }

  .faq-page .faq-bubble-bg { display: none !important; }
  .faq-page .faq-list {
    position: absolute;
    left: 144px;
    top: 920px;
    display: grid;
    width: 1440px;
    height: auto;
    gap: 14px;
  }
  .faq-page .faq-list article {
    position: relative;
    display: block;
    overflow: hidden;
    border: 1px solid #e6e6e2;
    border-radius: 22px;
    background: #f7f7f4;
    box-shadow: 0 8px 28px rgba(0,0,0,.045);
    transition: border-color .25s ease, box-shadow .25s ease;
  }
  .faq-page .faq-list article.is-open {
    border-color: #ffcc00;
    box-shadow: 0 16px 42px rgba(0,0,0,.075);
  }
  .faq-page .faq-list button,
  .faq-page .faq-list article:nth-child(n) button {
    position: relative;
    left: auto;
    top: auto;
    z-index: 1;
    display: grid;
    grid-template-columns: 62px minmax(0,1fr);
    align-items: center;
    width: 100%;
    height: auto;
    min-height: 98px;
    padding: 24px 92px 24px 28px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #111;
    text-align: left;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.12;
  }
  .faq-page .faq-list button::before { display: none; }
  .faq-page .faq-list button::after {
    content: "+";
    position: absolute;
    right: 28px;
    top: 50%;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #ffcc00;
    font-size: 30px;
    font-weight: 400;
    line-height: 1;
    transform: translateY(-50%);
    transition: transform .25s ease;
  }
  .faq-page .faq-list article.is-open button::after { content: "−"; transform: translateY(-50%) rotate(180deg); }
  .faq-page .faq-number { color: #b3b3ac; font-size: 16px; letter-spacing: .08em; }
  .faq-page .faq-list p,
  .faq-page .faq-list article:nth-child(n) p {
    position: relative;
    left: auto;
    top: auto;
    z-index: 1;
    display: none;
    width: auto;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 0 92px 30px 90px;
    border-radius: 0;
    background: transparent;
    color: #333;
    font-size: 19px;
    line-height: 1.48;
  }
  .faq-page .faq-list article.is-open p { display: block; }
  .faq-page .faq-list p::after { display: none; }
}

@media (max-width: 700px) {
  .page-canvas .hero > .white-curve,
  .home-page .service-band > .white-curve {
    bottom: -1px;
    height: 34px;
    box-shadow: 0 3px 0 #fff;
  }
  .map-section { overflow: visible !important; }

  .about-page .adv-grid article {
    display: flex !important;
    flex-direction: column;
    min-height: 390px !important;
    padding: 24px 22px !important;
    border-radius: 20px;
  }
  .about-page .adv-grid b {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: auto !important;
    font-size: clamp(31px,9vw,42px) !important;
    line-height: .98 !important;
  }
  .about-page .adv-grid span,
  .about-page .adv-grid article:nth-child(n) span {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: auto !important;
    margin: auto 0 0 !important;
    font-size: 18px !important;
    line-height: 1.25 !important;
  }
  .about-cta { background: #fff !important; }
  .about-cta .service-photo { background-image: url("/assets/about-cta-group-40.jpg") !important; background-size: 100% 100% !important; opacity: 1 !important; }
  .about-cta .service-shade,
  .about-cta::before,
  .about-cta::after { display: none !important; }

  .gallery-page .gallery-strip { height: 430px !important; overflow: hidden !important; }
  .gallery-page .gallery-viewport {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    height: 330px !important;
    overflow: hidden !important;
    background: #fff;
  }
  .gallery-page .gallery-track {
    display: flex !important;
    align-items: stretch;
    gap: 12px;
    width: max-content !important;
    height: 330px !important;
    padding: 0 16px;
    transition: transform .5s cubic-bezier(.22,1,.36,1);
  }
  .gallery-page .gallery-slide {
    position: relative !important;
    display: block !important;
    flex: 0 0 calc(100vw - 32px) !important;
    width: calc(100vw - 32px) !important;
    height: 330px !important;
    aspect-ratio: auto;
    margin: 0;
    overflow: hidden;
    border-radius: 16px;
  }
  .gallery-page .gallery-slide img,
  .gallery-page .gallery-slide img:hover { width: 100% !important; height: 330px !important; object-fit: cover !important; transform: none !important; }
  .gallery-page .gallery-arrow { top: 346px !important; }
  .gallery-page .gallery-arrow:disabled { opacity: .3; }
  .gallery-page .gallery-pagination { left: 16px !important; top: 416px !important; max-width: calc(100% - 120px); overflow: hidden; }
  .gallery-page .gallery-pagination button { width: 12px !important; }
  .gallery-page .gallery-pagination button.active { width: 26px !important; }
  .gallery-page .gallery-counter { right: 16px !important; top: 400px !important; }

  .faq-page .faq-list { display: grid !important; gap: 10px !important; padding: 28px 14px 48px !important; }
  .faq-page .faq-list article { overflow: hidden; border: 1px solid #e5e5df; border-radius: 17px; background: #f7f7f4; }
  .faq-page .faq-list button,
  .faq-page .faq-list article:nth-child(n) button {
    display: grid !important;
    grid-template-columns: 38px minmax(0,1fr);
    align-items: center;
    min-height: 82px !important;
    padding: 18px 58px 18px 18px !important;
    border-radius: 0 !important;
    background: transparent !important;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.18;
  }
  .faq-page .faq-number { color: #aaa; font-size: 12px; }
  .faq-page .faq-list button::after { right: 16px; width: 34px; height: 34px; border-radius: 50%; background: #ffcc00; }
  .faq-page .faq-list p,
  .faq-page .faq-list article:nth-child(n) p {
    display: none;
    padding: 0 18px 22px 56px !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #333;
    font-size: 15px;
    line-height: 1.45;
  }
  .faq-page .faq-list article.is-open p { display: block; }
}
/* Preserve the supplied About card artwork exactly. */
.about-page .adv-grid article.design-export {
  display: block;
  height: 549px;
  padding: 0;
  border: 0;
  border-radius: 20px;
  background: transparent;
}
.about-page .adv-grid article.design-export::before { content: none; }
.about-page .adv-grid article.design-export img { display: block; width: 100%; height: 100%; object-fit: fill; }
@media (max-width: 700px) {
  .about-page .adv-grid article.design-export { display: block !important; height: auto !important; min-height: 0 !important; padding: 0 !important; aspect-ratio: 452 / 549; }
  .about-page .adv-grid article.design-export img { width: 100% !important; height: 100% !important; }
}
@media (max-width: 700px) {
  .sub-page .down-dot {
    left: calc(50% - 29px) !important;
    top: auto !important;
    bottom: -28px;
  }
}

.support-chat [hidden]{display:none!important}

@media (max-width: 700px) {
  .gallery-page .gallery-arrow.left,
  .gallery-page .gallery-arrow.right { width: 44px !important; height: 44px !important; }
}

html { overflow-x: clip; }

/* Cache-busted FAQ/menu/gradient correction */
.sub-page .hero { z-index: 200 !important; overflow: visible !important; }
.sub-page .hero-actions { z-index: 220 !important; }
.sub-page .phone-menu,
.sub-page .phone-menu.is-open {
  z-index: 240 !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  background: rgba(12,12,12,.97) !important;
  box-shadow: 0 22px 58px rgba(0,0,0,.48) !important;
}
.sub-page .phone-menu a,
.sub-page .phone-menu small { color: #fff !important; }

.home-page .home-map .map-bg {
  top: -2px !important;
  height: 432px !important;
  background-image:
    linear-gradient(180deg, #fff 0%, #fff 25%, rgba(255,255,255,.99) 38%, rgba(255,255,255,.86) 58%, rgba(255,255,255,.36) 80%, rgba(255,255,255,0) 100%),
    url("/assets/map-bg-wide.webp") !important;
}
