/* Footer components share the header and hero's spacing and icon style. */
.footer-responsive {
    padding: 60px 0 20px;
    border-top: 0;
    background: radial-gradient(ellipse at 0 0, #214c35 0, transparent 60%), #153a2a;
    color: #fff;
}
.footer-responsive .container { width: min(calc(100% - 64px), 1320px); }
.footer-responsive .footer-grid {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, .75fr) minmax(0, .95fr) minmax(0, 1.2fr);
    grid-template-areas: "brand quick services contact";
    gap: clamp(26px, 3.4vw, 48px);
    align-items: start;
}
.footer-responsive .footer-grid.without-services { grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr) minmax(0, 1.2fr); grid-template-areas: "brand quick contact"; }
.footer-company { grid-area: brand; min-width: 0; }
.footer-quicklinks { grid-area: quick; min-width: 0; }
.footer-services { grid-area: services; min-width: 0; }
.footer-contact { grid-area: contact; min-width: 0; }
.footer-brand { display: inline-flex; align-items: center; gap: 13px; max-width: 100%; border-radius: 12px; }
.footer-logo { display: grid; place-items: center; width: 62px; height: 66px; flex: 0 0 62px; padding: 5px; background: #fff; border-radius: 12px; color: #147d4e; }
.footer-logo-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.footer-logo > svg { width: 32px; height: 32px; }
.footer-brand-copy { display: grid; gap: 5px; min-width: 0; }
.footer-brand-name { max-width: 190px; color: #fff; font-size: 18px; font-weight: 750; line-height: 1.25; letter-spacing: -.02em; overflow-wrap: anywhere; }
.footer-brand-area { font-size: 11px; line-height: 1.5; color: #bbd1c1; overflow-wrap: anywhere; }
.footer-responsive .footer-about { max-width: 340px; margin: 20px 0; font-size: 13px; line-height: 1.8; color: #c2d4c7; overflow-wrap: anywhere; }
.footer-responsive .footer-request { min-height: 44px; padding: 11px 16px; border-radius: 10px; gap: 16px; background: #e0f3e7; color: #164b2e; font-size: 13px; font-weight: 700; line-height: 1.4; max-width: 100%; text-align: center; overflow-wrap: anywhere; }
.footer-request svg { width: 17px; height: 17px; flex: 0 0 17px; }
.footer-responsive .footer-request:hover { background: #fff; }
.footer-responsive .footer-title { margin: 3px 0 18px; font-size: 14px; font-weight: 700; line-height: 1.5; color: #f2f8f4; letter-spacing: .01em; overflow-wrap: anywhere; }
.footer-responsive ul { margin: 0; padding: 0; list-style: none; }
.footer-responsive li { margin: 0; padding: 0; list-style: none; }
.footer-menu { display: grid; gap: 2px; }
.footer-responsive .footer-menu a { display: block; padding: 5px 0; width: fit-content; max-width: 100%; font-size: 13px; font-weight: 500; line-height: 1.6; color: #c2d4c7; overflow-wrap: anywhere; text-underline-offset: 4px; }
.footer-responsive .footer-menu a:hover { color: #fff; text-decoration: underline; }
.footer-responsive .footer-menu .sub-menu { display: grid; gap: 2px; padding-left: 12px; margin: 4px 0 8px; border-left: 1px solid #4a7058; }
.footer-contact-list { display: grid; gap: 12px; }
.footer-contact-list a, .footer-contact-row { display: flex; align-items: center; gap: 11px; min-height: 34px; color: #c2d4c7; }
.footer-contact-list a:hover { color: #fff; }
.footer-contact-icon { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border: 1px solid #42614d; border-radius: 10px; background: rgba(255, 255, 255, .04); color: #c9ebd5; }
.footer-contact-icon svg { width: 16px; height: 16px; }
.footer-contact-value { min-width: 0; font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
.footer-responsive :is(a, button):focus-visible { outline: 3px solid #abe0be; outline-offset: 4px; }
.footer-responsive .footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid #3c5b46; margin-top: 40px; padding-top: 18px; color: #b9cebf; }
.footer-copyright { margin: 0; min-width: 0; max-width: 700px; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.footer-responsive .legal-links { gap: 18px; flex-shrink: 0; }
.footer-responsive .legal-links :is(a, button) { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 0; font-size: 12px; line-height: 1.6; color: #c2d4c7; text-underline-offset: 4px; }
.footer-responsive .legal-links :is(a, button):hover { color: #fff; text-decoration: underline; }
.mobile-actions svg { width: 18px; height: 18px; flex: 0 0 18px; }

@media (max-width: 1050px) {
    .footer-responsive { padding-top: 48px; }
    .footer-responsive .footer-grid,
    .footer-responsive .footer-grid.without-services { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "brand contact" "quick services"; gap: 36px 48px; }
    .footer-responsive .footer-grid.without-services { grid-template-areas: "brand contact" "quick quick"; }
    .footer-responsive .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; }
    .footer-responsive .legal-links { flex-wrap: wrap; flex-shrink: 1; }
}
@media (max-width: 640px) {
    .footer-responsive { padding: 36px 0 calc(96px + env(safe-area-inset-bottom)); }
    .footer-responsive .container { width: calc(100% - 40px); }
    .footer-responsive .footer-grid,
    .footer-responsive .footer-grid.without-services { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "brand brand" "quick services" "contact contact"; gap: 28px 24px; }
    .footer-responsive .footer-grid.without-services { grid-template-areas: "brand brand" "quick quick" "contact contact"; }
    .footer-responsive .footer-about { max-width: 460px; margin: 18px 0; }
    .footer-responsive .footer-title { margin: 0 0 10px; }
    .footer-responsive .footer-menu a { min-height: 44px; padding: 10px 0; font-size: 12px; line-height: 1.5; }
    .footer-responsive .footer-menu .sub-menu { padding-left: 10px; }
    .footer-contact-list { gap: 8px; }
    .footer-contact-list a, .footer-contact-row { min-height: 44px; }
    .footer-responsive .footer-bottom { margin-top: 28px; padding-top: 14px; gap: 12px; }
    .footer-responsive .legal-links { order: -1; gap: 0 18px; }
    .footer-responsive .legal-links :is(a, button) { min-height: 44px; }
    .mobile-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4px; padding: 4px; bottom: calc(10px + env(safe-area-inset-bottom)); background: #fff; border: 1px solid #dbe6df; border-radius: 16px; box-shadow: 0 10px 32px rgba(18, 61, 42, .2); }
    .mobile-actions.is-single-action { grid-template-columns: minmax(0, 1fr); }
    .mobile-actions a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px; border-radius: 11px; background: #eef6f0; color: #235439; font-size: 14px; font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
    .mobile-actions a + a { border-left: 0; }
    .mobile-actions a.mobile-request { background: #147d4e; color: #fff; }
    .mobile-actions a:focus-visible { outline: 3px solid #147d4e; outline-offset: 2px; }
    .cookie-banner { bottom: calc(84px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
    .footer-responsive .btn { transition: none; }
    .footer-responsive .btn:hover { transform: none; }
}
