:root {
    --green: #287657;
    --green-soft: #eaf6ef;
    --green-line: #c5dfcf;
    --berry: #a34876;
    --berry-soft: #f9eff4;
    --ink: #426b60;
    --muted: #577066;
    --white: #ffffff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--white); color: var(--ink); font-family: Verdana, "Segoe UI", sans-serif; line-height: 1.68; }
a { color: inherit; }
a:focus-visible, summary:focus-visible { outline: 3px solid var(--berry); outline-offset: 4px; }
a:active { transform: translateY(1px); }
.shell { width: min(100% - 74px, 1240px); margin-inline: auto; }
.skip-to-content { position: absolute; left: 16px; top: -100px; z-index: 50; padding: 10px 15px; background: var(--white); color: var(--green); }
.skip-to-content:focus { top: 12px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.16; letter-spacing: -.035em; }
h1 { font-size: 40px; font-weight: 800; margin-bottom: 23px; }
h2 { font-size: 28px; font-weight: 800; margin-bottom: 22px; }
h3 { font-size: 21px; font-weight: 800; margin-bottom: 13px; }
p { font-size: 16px; line-height: 1.71; margin-bottom: 17px; }
p:last-child { margin-bottom: 0; }
p a[href=""] { color: var(--berry); font-weight: inherit; text-decoration: none; }
p a[href=""]:hover, p a[href=""]:focus-visible { background: var(--berry-soft); color: var(--green); }
.micro-label { display: block; font-size: 12px; font-weight: 900; letter-spacing: .13em; line-height: 1.4; text-transform: uppercase; color: var(--berry); margin-bottom: 16px; }

.header-shell { background: var(--white); border-bottom: 1px solid var(--green-line); }
.header-inner { display: flex; justify-content: space-between; align-items: center; gap: 29px; min-height: 94px; }
.identity { display: inline-flex; align-items: center; gap: 12px; font-size: 18px; font-weight: 800; text-decoration: none; color: var(--green); white-space: nowrap; }
.identity strong { color: var(--berry); }
.identity-mark { position: relative; display: flex; align-items: center; justify-content: center; gap: 4px; width: 45px; height: 45px; border: 3px solid var(--green); border-radius: 50%; flex: none; }
.identity-mark i { display: block; width: 6px; height: 6px; background: var(--green); border-radius: 50%; }
.identity-mark i:nth-child(2) { width: 12px; height: 12px; background: var(--berry); }
.header-links { display: flex; align-items: center; gap: clamp(18px, 2.6vw, 38px); }
.header-links a { display: inline-block; padding: 10px 0; color: var(--green); text-decoration: none; font-weight: 800; font-size: 14px; white-space: nowrap; transition: color .15s ease; }
.header-links a:hover, .header-links a[aria-current="page"] { color: var(--berry); }
.header-links .header-report { color: var(--white); padding: 13px 18px; background: var(--berry); border-radius: 28px; }
.header-links .header-report:hover { color: var(--white); background: var(--green); }
.mobile-links { display: none; position: relative; }

.stage { background: #f8fcfa; padding: 62px 0 72px; border-bottom: 1px solid var(--green-line); }
.stage-heading h1 { color: var(--green); }
.stage-layout { display: grid; grid-template-columns: minmax(0, 1.53fr) minmax(320px, .82fr); gap: clamp(42px, 5vw, 76px); align-items: center; }
.stage-copy { min-width: 0; }
.stage-copy p { max-width: 810px; }
.cta-cluster { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.cta { display: inline-flex; justify-content: center; align-items: center; min-height: 51px; padding: 13px 22px; border: 2px solid var(--green); border-radius: 26px; font-size: 15px; font-weight: 800; text-decoration: none; white-space: nowrap; line-height: 1.3; transition: background .15s ease, color .15s ease, border-color .15s ease; }
.cta-phone { background: var(--green); color: var(--white); }
.cta-phone:hover { background: #26684e; border-color: #26684e; }
.cta-online { background: transparent; color: var(--green); }
.cta-online:hover { background: var(--green-soft); }

.selector-panel { background: var(--green-soft); border-radius: 45px 4px 45px 4px; padding: 24px 26px 26px; border: 1px solid #b8d9c6; min-width: 0; }
.selector-head { display: flex; justify-content: space-between; gap: 10px; font-size: 10px; font-weight: 900; letter-spacing: .1em; color: var(--green); }
.selector-visual { position: relative; height: 268px; display: flex; align-items: center; justify-content: center; isolation: isolate; }
.selector-visual::before { content: ""; position: absolute; width: 262px; height: 210px; border-radius: 50%; background: #d4eddf; z-index: -1; transform: rotate(18deg); }
.dial { display: flex; justify-content: center; align-items: center; position: relative; width: 178px; height: 178px; border: 14px solid var(--green); background: #fafffb; border-radius: 50%; box-shadow: 12px 12px 0 rgba(40, 118, 87, .1); }
.dial::before { content: ""; position: absolute; inset: 9px; border-radius: 50%; border: 3px dashed #9ccfb1; }
.dial-center { display: block; width: 88px; height: 88px; border-radius: 50%; background: #d3eedd; border: 5px solid #85bc99; }
.dial-pointer { position: absolute; width: 13px; height: 48px; background: var(--berry); top: 17px; left: calc(50% - 6.5px); border-radius: 8px; transform: rotate(35deg); transform-origin: bottom center; }
.dial-orbit { position: absolute; z-index: -1; display: block; border: 2px solid #a8d5b9; border-radius: 50%; }
.orbit-one { width: 264px; height: 190px; transform: rotate(-25deg); }
.orbit-two { width: 200px; height: 235px; transform: rotate(32deg); }
.dial-node { position: absolute; display: block; border-radius: 50%; background: var(--berry); }
.node-one { top: 22px; right: 34px; width: 16px; height: 16px; }
.node-two { bottom: 28px; left: 33px; width: 10px; height: 10px; }
.selector-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; border-top: 1px solid #b7d7c3; padding-top: 20px; }
.selector-facts > div + div { border-left: 1px solid #b7d7c3; padding-left: 16px; }
.selector-facts small { display: block; font-size: 11px; font-weight: 800; color: var(--muted); }
.selector-facts strong { display: block; font-size: 18px; color: var(--green); line-height: 1.35; }

.vicinity { padding: 43px 0 47px; background: #edf8f1; border-bottom: 1px solid var(--green-line); }
.vicinity h2 { margin-bottom: 17px; }
.vicinity-prose { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.vicinity-prose p { margin: 0; }
.vicinity-prose strong { color: var(--green); }
.appliance-section { padding: 65px 0 71px; }
.appliance-lines { border-top: 1px solid var(--green-line); margin-top: 28px; }
.appliance-lines article { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 23px; padding: 28px 0 29px; border-bottom: 1px solid var(--green-line); }
.appliance-symbol { display: flex; align-items: center; justify-content: center; width: 53px; height: 53px; background: var(--berry-soft); border-radius: 50%; color: var(--berry); font-size: 17px; font-weight: 900; }
.appliance-copy h3 { margin-bottom: 12px; }
.appliance-copy p { max-width: 1090px; }

.inspection { background: #f6fbf8; padding: 64px 0 69px; border-top: 1px solid var(--green-line); border-bottom: 1px solid var(--green-line); }
.inspection > .shell > p { max-width: 1090px; }
.inspection-steps { counter-reset: visit; padding: 0; margin: 28px 0 0; list-style: none; border-top: 1px solid var(--green-line); }
.inspection-steps li { position: relative; padding: 22px 18px 22px 74px; border-bottom: 1px solid var(--green-line); }
.inspection-steps li::before { counter-increment: visit; content: "0" counter(visit); position: absolute; left: 0; top: 21px; display: flex; justify-content: center; align-items: center; width: 47px; height: 47px; border-radius: 50%; background: var(--green); color: var(--white); font-weight: 900; font-size: 15px; }
.inspection-steps h3 { margin-bottom: 6px; }
.inspection-steps p { margin: 0; max-width: 1100px; }
.conditions { background: var(--berry-soft); padding: 62px 0 68px; border-bottom: 1px solid #e6cfdc; }
.conditions-layout { display: grid; grid-template-columns: minmax(0, 1.72fr) minmax(270px, .8fr); align-items: center; gap: 66px; }
.conditions-note { padding: 29px 30px; border-radius: 44px 4px 44px 4px; background: var(--berry); color: var(--white); }
.conditions-note > span { font-size: 13px; font-weight: 800; display: block; }
.conditions-note > strong { display: block; font-size: 46px; line-height: 1.2; margin: 8px 0 13px; }
.conditions-note > strong.conditions-hours { font-size: 32px; }
.conditions-note p { margin: 0; color: #fff5fa; }
.schedule { padding: 61px 0 68px; }
.schedule-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .9fr); align-items: center; gap: 62px; }
.schedule-table { border-top: 4px solid var(--berry); }
.schedule-table > div { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; border-bottom: 1px solid var(--green-line); padding: 14px 0; font-size: 14px; }
.schedule-table strong { font-size: 17px; color: var(--green); white-space: nowrap; }
.contact-section { padding: 45px 0; background: var(--berry); color: var(--white); }
.contact-layout { display: flex; justify-content: space-between; align-items: center; gap: 45px; }
.contact-layout > div:first-child { max-width: 670px; }
.contact-section .micro-label { color: #e8ffef; }
.contact-section h2 { color: var(--white); margin-bottom: 12px; }
.contact-section p { color: #fff3f9; }
.contact-section .cta-cluster { flex: none; margin: 0; }
.contact-section .cta-online { color: var(--white); border-color: #f5e7ef; }
.contact-section .cta-online:hover { background: rgba(255, 255, 255, .14); }
.contact-section .cta-phone { color: var(--berry); background: var(--white); border-color: var(--white); }
.contact-section .cta-phone:hover { background: #ffeaf3; border-color: #ffeaf3; }

.substage { padding: 65px 0 67px; background: var(--green-soft); border-bottom: 1px solid var(--green-line); }
.substage h1 { color: var(--green); }
.substage-prose { max-width: 1030px; margin-inline: auto; }
.substage .cta-cluster { max-width: 1030px; margin: 27px auto 0; }
.repair-focus { padding: 61px 0 64px; }
.repair-focus.focus-tint { background: #f6fbf8; border-top: 1px solid var(--green-line); border-bottom: 1px solid var(--green-line); }
.reading-width { max-width: 1030px; margin-inline: auto; }

.service-intro { background: #f9eff4; padding: 65px 0 69px; border-bottom: 1px solid #e7d1dd; }
.service-intro h1 { color: var(--green); }
.service-intro-prose { max-width: 1050px; margin-inline: auto; }
.service-intro .cta-cluster { max-width: 1050px; margin: 27px auto 0; }
.service-procedure { padding: 65px 0 70px; }
.service-procedure-rows { border-top: 1px solid var(--green-line); margin-top: 27px; }
.service-procedure-rows article { padding: 24px 0 27px; border-bottom: 1px solid var(--green-line); }
.service-procedure-rows h3 { position: relative; padding-left: 20px; }
.service-procedure-rows h3::before { content: ""; position: absolute; left: 0; top: 2px; width: 5px; height: 23px; background: var(--berry); border-radius: 3px; }
.service-procedure-rows p { max-width: 1080px; margin: 0; }
.service-procedure-note { max-width: 1080px; margin: 22px 0 0; }
.service-terms { padding: 61px 0 66px; background: var(--green-soft); border-top: 1px solid var(--green-line); border-bottom: 1px solid var(--green-line); }
.service-terms > .shell > p { max-width: 1060px; }
.terms-strip { display: flex; flex-wrap: wrap; gap: 15px 35px; border-top: 1px solid #a9d1ba; margin-top: 25px; padding-top: 17px; }
.terms-strip span { color: var(--green); font-size: 13px; }
.terms-strip strong { font-size: 15px; }
.service-availability { padding: 61px 0 66px; }
.service-availability p { max-width: 1060px; }

.page-footer { padding: 32px 0 35px; background: #e7f4eb; border-top: 1px solid var(--green-line); }
.footer-inner { display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.footer-identity { display: flex; flex-direction: column; }
.footer-identity strong { color: var(--green); font-size: 18px; line-height: 1.3; }
.footer-identity span { color: var(--muted); font-size: 12px; }
.page-footer nav { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 28px; }
.page-footer nav a { color: var(--green); font-size: 13px; font-weight: 800; text-decoration: none; }
.page-footer nav a:hover { color: var(--berry); }
.page-footer nav .footer-privacy { font-size: 11px; font-weight: 500; color: var(--muted); }

@media (max-width: 1140px) {
    .header-links { display: none; }
    .mobile-links { display: block; }
    .mobile-links summary { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border: 1px solid var(--green-line); list-style: none; cursor: pointer; color: var(--green); font-size: 14px; font-weight: 800; }
    .mobile-links summary::-webkit-details-marker { display: none; }
    .hamburger { display: inline-block; position: relative; width: 18px; height: 14px; border-top: 2px solid var(--berry); border-bottom: 2px solid var(--berry); }
    .hamburger::after { content: ""; position: absolute; top: 5px; left: 0; right: 0; border-top: 2px solid var(--berry); }
    .mobile-links nav { display: flex; flex-direction: column; position: absolute; z-index: 20; top: calc(100% + 8px); right: 0; width: min(325px, calc(100vw - 36px)); border: 1px solid var(--green-line); background: var(--white); box-shadow: 0 14px 28px rgba(40, 118, 87, .17); }
    .mobile-links nav a { padding: 12px 15px; border-bottom: 1px solid var(--green-line); text-decoration: none; font-size: 14px; font-weight: 800; }
    .mobile-links nav a:last-child { border-bottom: 0; }
    .mobile-links nav a:hover, .mobile-links nav a[aria-current="page"] { color: var(--berry); background: var(--berry-soft); }
    .stage-layout { grid-template-columns: minmax(0, 1.28fr) minmax(275px, .83fr); gap: 38px; }
    .contact-layout { align-items: flex-start; flex-direction: column; gap: 17px; }
    .contact-section .cta-cluster { flex: initial; }
}

@media (max-width: 850px) {
    .shell { width: min(100% - 46px, 1240px); }
    .stage { padding: 52px 0 57px; }
    .stage-layout { grid-template-columns: 1fr; gap: 31px; }
    .selector-panel { max-width: 560px; width: 100%; margin-inline: auto; }
    .vicinity-prose { gap: 22px; }
    .appliance-section, .inspection, .substage, .repair-focus, .service-procedure, .service-intro, .service-terms, .service-availability { padding: 52px 0 57px; }
    .conditions, .schedule { padding: 52px 0 57px; }
    .conditions-layout, .schedule-layout { grid-template-columns: 1fr; gap: 24px; }
    .conditions-note { max-width: 555px; }
    .schedule-table { max-width: 640px; }
}

@media (max-width: 640px) {
    .shell { width: min(100% - 32px, 1240px); }
    .header-inner { min-height: 78px; }
    .identity { font-size: 16px; gap: 9px; }
    .identity-mark { width: 40px; height: 40px; }
    h1 { font-size: 40px; overflow-wrap: anywhere; }
    h2 { font-size: 28px; }
    p { font-size: 16px; }
    .stage { padding: 43px 0 49px; }
    .cta-cluster { flex-direction: column; align-items: stretch; gap: 9px; }
    .cta { width: 100%; }
    .selector-panel { padding: 20px 21px; }
    .selector-visual { height: 240px; }
    .selector-visual::before { width: 238px; }
    .orbit-one { width: 240px; }
    .selector-facts strong { font-size: 16px; }
    .vicinity { padding: 35px 0 39px; }
    .vicinity-prose { grid-template-columns: 1fr; gap: 16px; }
    .appliance-section, .inspection, .substage, .repair-focus, .service-procedure, .service-intro, .service-terms, .service-availability { padding: 43px 0 47px; }
    .appliance-lines article { grid-template-columns: 1fr; gap: 11px; padding: 22px 0 26px; }
    .appliance-symbol { width: 43px; height: 43px; font-size: 14px; }
    .inspection-steps li { padding-left: 0; padding-top: 76px; }
    .inspection-steps li::before { top: 19px; }
    .conditions, .schedule { padding: 43px 0 47px; }
    .conditions-note { padding: 25px; }
    .contact-section { padding: 37px 0 42px; }
    .contact-layout .cta-cluster { width: 100%; }
    .footer-inner { flex-direction: column; align-items: flex-start; gap: 21px; }
}

@media (max-width: 360px) {
    .shell { width: min(100% - 26px, 1240px); }
    .identity { font-size: 15px; }
    .mobile-links summary { font-size: 13px; gap: 7px; padding: 9px; }
    .selector-panel { padding: 18px 16px; }
    .selector-visual { height: 232px; }
    .selector-facts { gap: 9px; }
    .selector-facts > div + div { padding-left: 10px; }
    .selector-head { letter-spacing: .04em; }
    .schedule-table > div { gap: 8px; font-size: 13px; }
    .schedule-table strong { font-size: 15px; }
}
