/* Approved footer mockup: mockups/footer-20261028. Scope every rule to the footer. */
.bruno-footer {
    --footer-bg: #1c1c1c;
    --footer-text: #f8f7f1;
    --footer-muted: #c8c7bd;
    --footer-line: #41413b;
    color-scheme: dark;
    color: var(--footer-text);
    background: var(--footer-bg);
    border-top: 1px solid var(--accent-color);
    line-height: 1.5;
    text-align: left;
}
.bruno-footer ::selection { color: #1c1c1c; background: var(--accent-color); }
.bruno-footer :focus-visible { outline: 3px solid var(--accent-color); outline-offset: 5px; border-radius: 2px; }
.bruno-footer a { text-decoration: none; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.bruno-footer address { font-style: normal; }
.bruno-footer section { padding: 0; }
.bruno-footer .footer-container { width: min(100% - 80px, 1200px); margin-inline: auto; }
.bruno-footer .footer-main { display: grid; grid-template-columns: 1.25fr 1fr 1.1fr; column-gap: 72px; padding-block: 48px 40px; }
.bruno-footer .footer-brand { margin: 0; color: var(--accent-color); font-size: 28px; font-weight: 900; line-height: 1.06; letter-spacing: -.025em; text-transform: uppercase; }
.bruno-footer .footer-brand span { display: block; }
.bruno-footer .brand-description { color: var(--footer-muted); font-size: 16px; margin-top: 12px; }
.bruno-footer .contact-details { margin-top: 18px; display: flex; flex-direction: column; align-items: flex-start; }
.bruno-footer .contact-details a { display: inline-flex; align-items: center; min-height: 44px; }
.bruno-footer .contact-phone { font-size: 26px; font-weight: 750; letter-spacing: .015em; font-variant-numeric: tabular-nums; }
.bruno-footer .contact-email { font-size: 16px; color: var(--footer-muted); }
.bruno-footer .contact-details a:hover { color: var(--accent-color); text-decoration: underline; }
.bruno-footer .footer-quote { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 48px; margin-top: 16px; padding: 12px 18px; border-radius: 3px; background: var(--accent-color); color: #1c1c1c; font-size: 16px; font-weight: 750; line-height: 24px; }
.bruno-footer .footer-quote svg, .bruno-footer .navigation-list svg { flex-shrink: 0; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.bruno-footer .footer-quote:hover { background: #ffda3e; }
.bruno-footer .footer-heading { font-size: 18px; font-weight: 700; line-height: 26px; letter-spacing: -.01em; margin: 0 0 18px; text-transform: none; }
.bruno-footer .footer-navigation, .bruno-footer .footer-practical { padding-top: 3px; }
.bruno-footer .navigation-list a { display: flex; align-items: center; gap: 12px; width: fit-content; min-height: 44px; color: var(--footer-muted); font-size: 16px; }
.bruno-footer .navigation-list li:first-child a { color: var(--footer-text); font-weight: 600; }
.bruno-footer .navigation-list a:hover, .bruno-footer .region-list a:hover, .bruno-footer .legal-links a:hover, .bruno-footer .legal-links button:hover { color: var(--accent-color); text-decoration: underline; }
.bruno-footer .visit-details { font-size: 16px; }
.bruno-footer .visit-details strong { font-weight: 650; }
.bruno-footer .visit-details strong span { font-weight: 400; }
.bruno-footer .visit-details p { margin-top: 5px; color: var(--footer-muted); font-size: 15px; }
.bruno-footer .delivery-details { margin-top: 25px; }
.bruno-footer .delivery-details h3 { font-size: 16px; font-weight: 650; line-height: 24px; margin: 0 0 4px; text-transform: none; }
.bruno-footer .region-list { display: grid; grid-template-columns: max-content max-content; column-gap: 25px; }
.bruno-footer .region-list a { display: inline-flex; align-items: center; min-height: 44px; color: var(--footer-muted); font-size: 15px; }
.bruno-footer .footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 81px; border-top: 1px solid var(--footer-line); padding-block: 18px; color: var(--footer-muted); font-size: 14px; }
.bruno-footer .legal-links { display: flex; gap: 28px; align-items: center; }
.bruno-footer .legal-links a, .bruno-footer .legal-links button { display: inline-flex; align-items: center; min-height: 44px; }
.bruno-footer .legal-links button { appearance: none; color: inherit; border: 0; padding: 0; background: transparent; font: inherit; cursor: pointer; }

/* The preceding content already provides its quote action. These semantic
   sections also cover the dynamic selection action, without adding JavaScript.
   Home, Services and Contact omit the redundant link server-side as before. */
#main-content:has(
    .catalog-seo-actions a:is([href="/contact#devis"], [href^="/contact?"][href$="#devis"]),
    .catalog-advice-action a:is([href="/contact#devis"], [href^="/contact?"][href$="#devis"]),
    .seo-purchase a:is([href="/contact#devis"], [href^="/contact?"][href$="#devis"]),
    .guide-section:last-child a:is([href="/contact#devis"], [href^="/contact?"][href$="#devis"]),
    .opera-next a:is([href="/contact#devis"], [href^="/contact?"][href$="#devis"]),
    #selection-quote:not([hidden])
) + .bruno-footer .footer-quote { display: none; }

@media (max-width: 1100px) and (min-width: 701px) {
    .bruno-footer .footer-container { width: calc(100% - 64px); }
    .bruno-footer .footer-main { grid-template-columns: 1.1fr 1fr; column-gap: 48px; row-gap: 32px; padding-block: 40px 32px; }
    .bruno-footer .footer-contact { grid-row: span 2; }
    .bruno-footer .footer-practical { grid-column: 2; }
}
@media (max-width: 700px) {
    .bruno-footer .footer-container { width: calc(100% - 48px); }
    .bruno-footer .footer-main { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-block: 28px 22px; }
    .bruno-footer .footer-brand { font-size: 23px; line-height: 28px; letter-spacing: -.025em; }
    .bruno-footer .footer-brand span { display: inline; }
    .bruno-footer .brand-description { margin-top: 5px; font-size: 15px; line-height: 24px; }
    .bruno-footer .contact-details { margin-top: 12px; }
    .bruno-footer .contact-phone { font-size: 27px; line-height: 36px; }
    .bruno-footer .contact-email { font-size: 16px; }
    .bruno-footer .footer-quote { width: 100%; margin-top: 12px; }
    .bruno-footer .footer-navigation, .bruno-footer .footer-practical { padding-top: 0; }
    .bruno-footer .footer-heading { font-size: 17px; line-height: 24px; margin-bottom: 8px; }
    .bruno-footer .navigation-list a { width: 100%; }
    .bruno-footer .navigation-list li:first-child a { justify-content: space-between; }
    .bruno-footer .visit-details p { margin-top: 2px; }
    .bruno-footer .delivery-details { margin-top: 14px; }
    .bruno-footer .delivery-details h3 { margin-bottom: 0; }
    .bruno-footer .region-list { grid-template-columns: 1fr 1.2fr; column-gap: 20px; }
    .bruno-footer .region-list a { font-size: 14px; }
    .bruno-footer .footer-bottom { align-items: flex-start; flex-direction: column-reverse; gap: 0; padding-block: 8px 22px; font-size: 13px; }
    .bruno-footer .legal-links { gap: 24px; }
    .bruno-footer .copyright { line-height: 24px; margin-top: 4px; }
}
@media (prefers-reduced-motion: no-preference) {
    .bruno-footer a, .bruno-footer .legal-links button { transition: color 150ms ease-out, background-color 150ms ease-out; }
}
