.nicolas-footer {
    --footer-dark: #242720;
    --footer-soft: #c9cec0;
    --footer-warm: #ff9567;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding-block: clamp(3.5rem, 7vw, 6rem) 1.5rem;
    background: var(--footer-dark);
    color: var(--nicolas-white);
}

.nicolas-footer::before { position: absolute; z-index: 0; inset: 0; background-color: var(--footer-soft); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23fff' stroke-width='.8' stroke-linecap='round'%3E%3Cpath d='M3 7.5c3.2 0 5.4 2 5.7 5.2'/%3E%3Cpath d='M19.5 15.5c-2.8.5-4.5 2-5.1 4.8'/%3E%3C/g%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23fff' stroke-width='.8' stroke-linecap='round'%3E%3Cpath d='M3 7.5c3.2 0 5.4 2 5.7 5.2'/%3E%3Cpath d='M19.5 15.5c-2.8.5-4.5 2-5.1 4.8'/%3E%3C/g%3E%3C/svg%3E"); -webkit-mask-size: 24px 24px; mask-size: 24px 24px; opacity: .1; content: ""; pointer-events: none; }
.nicolas-footer__main,
.nicolas-footer__hours,
.nicolas-footer__bottom { position: relative; z-index: 1; }
.nicolas-footer .inner { width: min(90%, var(--nicolas-content-width)); }
.nicolas-footer a { color: inherit; text-underline-offset: .22em; }
.nicolas-footer a:focus-visible { outline: 3px solid var(--footer-warm); outline-offset: 4px; }
.nicolas-footer h2 { margin: 0 0 1.25rem; color: var(--nicolas-white); font-size: clamp(1.2rem, 1rem + .7vw, 1.65rem); font-weight: 700; line-height: 1.25; }

.nicolas-footer__main { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(10rem, .75fr) minmax(15rem, 1fr); gap: clamp(2rem, 6vw, 6rem); padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.nicolas-footer__brand-name { display: inline-flex; align-items: center; gap: .75rem; color: var(--nicolas-white); font-size: clamp(2.5rem, 4.5vw, 3.5rem); font-weight: 850; letter-spacing: -.06em; line-height: .95; text-decoration: none; }
.nicolas-footer__logo { display: block; width: 2.7rem; height: 2.7rem; flex: 0 0 auto; object-fit: contain; }
.nicolas-footer__brand > p { max-width: 19rem; margin-top: 1.25rem; color: var(--footer-soft); font-size: clamp(1rem, 1.3vw, 1.25rem); line-height: 1.55; }
.nicolas-footer__social { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
a.nicolas-footer__social-link { display: grid; width: 3.25rem; aspect-ratio: 1; place-items: center; padding: .75rem; border-radius: var(--nicolas-radius-control); transition: transform .18s ease, box-shadow .18s ease; }
.nicolas-footer__social-link svg { display: block; width: 100%; height: 100%; fill: #fff !important; }
.nicolas-footer__social-link--facebook { background-color: rgb(24, 119, 242); }
.nicolas-footer__social-link--instagram { background-color: #e4405f; }
.nicolas-footer__social-link:hover { transform: translateY(-2px); box-shadow: 0 5px 14px rgb(0 0 0 / .28); }

.nicolas-footer__discover h2,
.nicolas-footer__contact h2 { margin-bottom: 1.25rem; }
.nicolas-footer__discover ul { display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.nicolas-footer__discover a { color: var(--footer-soft); font-size: 1.05rem; text-decoration: none; transition: color .16s ease; }
.nicolas-footer__discover .nicolas-footer__menu-link { color: var(--footer-warm); font-weight: 750; }
.nicolas-footer__discover a:hover,
.nicolas-footer__contact a:hover { color: var(--nicolas-white); }
.nicolas-footer__contact { display: flex; min-width: 0; align-items: start; flex-direction: column; }
.nicolas-footer__contact .nicolas-footer__phone { color: var(--nicolas-white); font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 800; font-variant-numeric: tabular-nums; text-decoration: none; }
.nicolas-footer__contact .nicolas-footer__whatsapp,
.nicolas-footer__contact .nicolas-footer__directions { margin-top: .75rem; color: var(--footer-warm); }
.nicolas-footer__contact address { max-width: 22rem; margin-top: 1.25rem; color: var(--footer-soft); font-size: 1.05rem; font-style: normal; line-height: 1.6; }

.nicolas-footer__hours { padding-block: 1.5rem; border-top: 1px solid rgb(201 206 192 / .28); border-bottom: 1px solid rgb(201 206 192 / .28); }
.nicolas-footer__hours h2 { margin-bottom: .65rem; }
.nicolas-footer__hours dl { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0; color: var(--footer-soft); font-size: 1.05rem; }
.nicolas-footer__hours dl div { display: flex; flex-wrap: wrap; gap: .5rem; }
.nicolas-footer__hours dd { margin: 0; color: var(--nicolas-white); font-variant-numeric: tabular-nums; }
.nicolas-footer__hours > p { margin-top: .65rem; color: var(--footer-soft); font-size: .82rem; line-height: 1.5; }

.nicolas-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-top: 1.25rem; }
.nicolas-footer__bottom-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }
.nicolas-footer__bottom-meta > p { color: var(--footer-soft); }
.nicolas-footer__legal-menu { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0; padding: 0; list-style: none; }
.nicolas-footer__legal-menu a { color: var(--footer-warm); text-underline-offset: .22em; }
.nicolas-footer__anpc { display: inline-flex; align-items: center; justify-content: flex-end; }
.nicolas-footer__anpc img { display: block; width: min(100%, 13rem); height: auto; }

@media (max-width: 58rem) {
    .nicolas-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 2rem; }
    .nicolas-footer__contact { grid-column: 1 / -1; }
}

@media (max-width: 40rem) {
    .nicolas-footer { padding-top: 3rem; }
    .nicolas-footer__main { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
    .nicolas-footer__contact { grid-column: auto; }
    .nicolas-footer__hours dl { flex-direction: column; gap: .65rem; }
    .nicolas-footer__bottom { align-items: start; flex-direction: column; }
    .nicolas-footer__bottom-meta { align-items: start; flex-direction: column; }
    .nicolas-footer__anpc { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    .nicolas-footer__social-link { transition: none; }
}
