/* ===== CONTACT PAGE ===== */
.contact-page { padding-top: var(--header-height); }

/* ===== HEAD ===== */
.contact-head {
    background: beige;
    padding: 36px 0 28px;
    text-align: center;
    border-bottom: 1px solid var(--border);
}
.contact-head__eyebrow {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.62rem; letter-spacing: 6px;
    text-transform: uppercase; color: var(--terracotta);
    margin-bottom: 16px;
}
.contact-head__title {
    font-family: 'Bebas Neue', cursive;
    font-size: clamp(2.2rem, 5vw, 4rem);
    letter-spacing: 10px; color: var(--ink);
    line-height: 1;
}
.contact-head__line {
    width: 60px; height: 2px;
    background: var(--terracotta);
    margin: 16px auto 0;
}

/* ===== SECTION 1 — APPELER ===== */
.contact-call {
    display: grid;
    grid-template-columns: 42% 58%;
    min-height: 80vh;
    border-bottom: 1px solid var(--border);
}
.contact-call__text {
    background: beige;
    display: flex; align-items: center;
}
.contact-call__text-inner {
    padding: clamp(52px, 7vw, 88px) clamp(32px, 5vw, 72px);
    width: 100%;
}
.contact-call__text-inner .eyebrow { justify-content: flex-start; margin-bottom: 18px; }
.contact-call__visual {
    background: url('../images/contact-appel.webp') center / cover no-repeat;
}

.contact-call__phone {
    font-family: 'Bebas Neue', cursive;
    font-size: clamp(2.6rem, 4vw, 3.8rem);
    letter-spacing: 3px; color: var(--ink);
    display: block; line-height: 1;
    margin: 0 0 12px;
    transition: color .3s ease;
}
.contact-call__phone:hover { color: var(--terracotta); }

.contact-call__sub {
    font-family: 'Montserrat', sans-serif;
    font-size: .85rem; color: var(--ink-muted);
    font-weight: 300; margin: 14px 0 0;
    line-height: 1.7; font-style: italic;
}

.contact-call__hours {
    max-width: 100%; margin: 36px 0 0;
    border-top: 1px solid var(--border);
    text-align: left;
}
.hours-entry {
    display: flex; justify-content: space-between; align-items: center;
    padding: 13px 0;
    border-bottom: 1px solid var(--border-warm);
}
.hours-entry__label {
    font-family: 'Montserrat', sans-serif;
    font-size: .9rem; color: var(--ink-mid); font-weight: 300;
}
.hours-entry__value {
    font-family: 'Bebas Neue', cursive;
    font-size: 1.1rem; letter-spacing: 1px; color: var(--terracotta);
}
.hours-entry--closed .hours-entry__value {
    font-family: 'Montserrat', sans-serif;
    font-size: .85rem; color: var(--ink-muted);
    font-style: italic; letter-spacing: 0;
}
.hours-note {
    font-family: 'Montserrat', sans-serif;
    font-size: .78rem; color: var(--ink-muted);
    font-style: italic; margin-top: 12px;
    text-align: center;
}

/* ===== SECTION 2 — TROUVER ===== */
.contact-find {
    background: beige;
    padding: 80px 0;
    border-bottom: 1px solid var(--border);
}
.contact-find__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px; align-items: center;
}
#map-contact {
    width: 100%; height: 420px;
    border: 1px solid var(--border);
    position: relative;
}
.leaflet-container { font-family: 'Montserrat', sans-serif; }
.map-marker { width:40px; height:40px; display:flex; align-items:center; justify-content:center; position:relative; }
.map-marker__dot { width:14px; height:14px; background:#bd3f27; border:3px solid #fff; border-radius:50%; box-shadow:0 2px 8px rgba(189,63,39,.5); position:relative; z-index:1; }
.map-marker__pulse { position:absolute; width:36px; height:36px; border-radius:50%; background:rgba(189,63,39,.18); animation:markerPulse 2s ease-out infinite; }
@keyframes markerPulse { 0%{transform:scale(.4);opacity:1} 100%{transform:scale(1);opacity:0} }

.contact-find__address {
    font-family: 'Bebas Neue', cursive;
    font-size: clamp(1.8rem, 3vw, 2.6rem);
    font-weight: 700; color: var(--ink);
    line-height: 1.2; margin: 18px 0 32px;
}
.contact-find__address em { font-style: normal; color: var(--terracotta); }

.contact-find__services {
    font-family: 'Montserrat', sans-serif;
    font-size: .88rem; color: var(--ink-muted);
    font-weight: 300; line-height: 2;
    margin-top: 28px; padding-top: 24px;
    border-top: 1px dashed rgba(189,63,39,.22);
    letter-spacing: .5px;
}

/* ===== SECTION 3 — SUIVRE ===== */
.contact-social {
    background: var(--bg);
    padding: 88px 0;
    text-align: center;
}
.contact-social__inner { }
.contact-social .eyebrow { justify-content: center; }
.contact-social__title {
    font-family: 'Bebas Neue', cursive;
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
    font-weight: 700; color: var(--ink);
    margin: 14px 0 18px; line-height: 1.2;
}
.contact-social__title em { font-style: normal; color: var(--terracotta); }
.contact-social__text {
    font-family: 'Montserrat', sans-serif;
    font-size: .92rem; color: var(--ink-muted);
    font-weight: 300; max-width: 440px;
    margin: 0 auto 36px; line-height: 1.8;
}
.contact-social__btns {
    display: flex; gap: 14px;
    justify-content: center; flex-wrap: wrap;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .contact-find__inner { grid-template-columns: 1fr; gap: 36px; }
    #map-contact { height: 280px; }
    .contact-call { grid-template-columns: 1fr; min-height: auto; }
    .contact-call__visual { aspect-ratio: 4/3; }
    .contact-call__text-inner { text-align: center; }
    .contact-call__hours { text-align: left; }
    .contact-call__phone { font-size: clamp(2.8rem, 10vw, 4.5rem); }
}
@media (max-width: 576px) {
    .contact-head__title { margin-bottom: -14px; }
    .contact-call__hours { max-width: 100%; }
}
