/* Wintzenheim-Kochersberg V1.8 — reliable map rendering and refined footer */

/* Salle des fêtes */
.hall-page-v18{padding:clamp(2.6rem,6vw,5.2rem) 0 clamp(4rem,8vw,7rem)}
.hall-page-v18>*+*{margin-top:clamp(2rem,5vw,4.2rem)}
.hall-reservation-v18{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:clamp(1.5rem,4vw,3rem);align-items:start;padding:clamp(1.7rem,4vw,2.7rem);background:linear-gradient(135deg,#f7fbf9,#fff);border:1px solid #dcebe5;border-radius:24px;box-shadow:0 18px 55px rgba(3,60,49,.08)}
.hall-reservation-v18 h2,.hall-access-v18 h2,.hall-contact-v18 h2{margin:.15rem 0 1rem;color:#043f35;font-family:var(--serif);font-size:clamp(1.85rem,4vw,3rem);line-height:1.03}
.hall-reservation-v18__content>p:last-child{max-width:58ch;margin-bottom:0;color:#455c55;font-size:1.06rem;line-height:1.75}
.hall-documents-v18{display:grid;gap:.75rem}
.hall-document-v18{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:.9rem;align-items:center;min-height:78px;padding:.85rem 1rem;color:#063f34;text-decoration:none;background:#fff;border:1px solid #d9e8e2;border-radius:16px;box-shadow:0 9px 28px rgba(4,63,53,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.hall-document-v18:hover,.hall-document-v18:focus-visible{transform:translateY(-2px);border-color:#7db6a2;box-shadow:0 15px 34px rgba(4,63,53,.12);outline:3px solid rgba(4,112,90,.13);outline-offset:2px}
.hall-document-v18__icon{display:grid;place-items:center;width:46px;height:46px;color:#fff;font-size:.68rem;font-weight:850;letter-spacing:.06em;background:#0a6b59;border-radius:12px}
.hall-document-v18 strong{display:block;font-size:1rem}.hall-document-v18 small{display:block;margin-top:.2rem;color:#687c75;font-size:.82rem}
.hall-access-v18{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);min-height:430px;background:linear-gradient(135deg,#043d33,#075e4c);border-radius:28px;box-shadow:0 24px 70px rgba(3,48,40,.2)}
.hall-access-v18:before{content:'';position:absolute;left:-80px;bottom:-130px;width:300px;height:300px;border:52px solid rgba(255,255,255,.045);border-radius:50%;pointer-events:none}
.hall-access-v18__details{position:relative;z-index:1;padding:clamp(2rem,5vw,3.2rem);color:#fff}
.hall-access-v18__details .section-kicker{color:#b8dfd1}
.hall-access-v18__details h2{color:#fff;border-bottom:1px solid rgba(255,255,255,.32);padding-bottom:1rem}
.hall-access-v18__details address{display:grid;gap:.3rem;margin:1.5rem 0;font-style:normal;font-size:1.05rem;line-height:1.55}
.hall-access-v18__details address strong{font-size:1.15rem}
.hall-access-v18__details>p{max-width:31ch;color:#dcece6;line-height:1.7}
.hall-access-v18 .button--light{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;color:#063f34;background:#fff;border-color:#fff}
.hall-map-v18{position:relative;min-height:430px;margin:clamp(1rem,2vw,1.35rem);overflow:hidden;background:#e9f1ed;border:5px solid rgba(255,255,255,.9);border-radius:21px;box-shadow:0 14px 40px rgba(0,0,0,.18)}
.hall-map-v18 iframe{display:block;width:100%;height:100%;min-height:420px;border:0;background:#e9f1ed}
.hall-content-v18{max-width:980px;margin-right:auto;margin-left:auto}
.hall-content-v18 .hall-rates-v18,.hall-content-v18 .hall-rates{padding:clamp(1.4rem,3vw,2rem);background:#fff;border:1px solid #dfeae5;border-radius:20px;box-shadow:0 14px 40px rgba(4,56,47,.06)}
.hall-content-v18 h2{margin:0 0 1.3rem;color:#043f35;font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.45rem)}
.hall-content-v18 table{width:100%;margin:1rem 0 1.7rem;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid #dce7e2;border-radius:14px}
.hall-content-v18 th{padding:.9rem 1rem;color:#fff;text-align:left;background:#075846;border-right:1px solid rgba(255,255,255,.28)}
.hall-content-v18 td{padding:.85rem 1rem;background:#fff;border-top:1px solid #e4ece8;border-right:1px solid #e4ece8}
.hall-content-v18 tr:nth-child(even) td{background:#f8fbfa}.hall-content-v18 th:last-child,.hall-content-v18 td:last-child{border-right:0}
.hall-contact-v18{display:flex;justify-content:space-between;gap:2rem;align-items:center;padding:clamp(1.7rem,4vw,2.5rem);background:#eef7f3;border:1px solid #d4e6de;border-radius:22px}
.hall-contact-v18 h2{font-size:clamp(1.7rem,3vw,2.4rem)}.hall-contact-v18 p{max-width:55ch;margin-bottom:0;color:#52665f}
.hall-contact-v18__actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}

/* Footer */
.site-footer--v18{position:relative;margin-top:0;color:#eaf5f0;background:#032f27}
.footer-main-v18{position:relative;overflow:hidden;background:radial-gradient(circle at 10% 5%,rgba(27,133,106,.34),transparent 35%),linear-gradient(135deg,#022d25 0%,#064d3f 58%,#075f4d 100%)}
.footer-main-v18:after{content:'';position:absolute;right:-150px;top:-180px;width:420px;height:420px;border:70px solid rgba(255,255,255,.035);border-radius:50%;pointer-events:none}
.footer-grid-v18{position:relative;z-index:1;display:grid;grid-template-columns:minmax(250px,.95fr) minmax(250px,1.05fr) minmax(290px,1fr);gap:clamp(1.4rem,3vw,2.5rem);align-items:stretch;padding:clamp(3.2rem,7vw,5.3rem) 0}
.footer-identity-v18{display:flex;flex-direction:column;align-items:flex-start}
.footer-logo-v18{display:block;width:min(260px,100%);padding:.75rem;background:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.7);border-radius:18px;box-shadow:0 18px 45px rgba(0,0,0,.14)}
.footer-logo-v18 img{display:block;width:100%;height:auto}
.footer-signature-v18{max-width:31ch;margin:1rem 0 0;color:#c9ddd6;line-height:1.65}
.footer-social-v18{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1.2rem}
.footer-social-v18 a{display:grid;grid-template-columns:34px auto auto;gap:.6rem;align-items:center;min-height:50px;padding:.45rem .7rem;color:#fff;text-decoration:none;font-weight:760;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:13px;transition:transform .18s ease,background .18s ease,border-color .18s ease}
.footer-social-v18 a:hover,.footer-social-v18 a:focus-visible{transform:translateY(-2px);background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3);outline:3px solid rgba(255,255,255,.16);outline-offset:2px}
.footer-social-v18 img{display:block;width:34px;height:34px;object-fit:contain;border-radius:9px}
.footer-card-v18{padding:clamp(1.5rem,3vw,2rem);background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.13);border-radius:22px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 18px 45px rgba(0,0,0,.08);backdrop-filter:blur(5px)}
.footer-card-v18 h2{margin:0 0 1.2rem;color:#fff;font-family:var(--serif);font-size:clamp(1.65rem,2.8vw,2.15rem);line-height:1.05}
.footer-links-v18{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .7rem}
.footer-links-v18 a{display:flex;justify-content:space-between;gap:.6rem;align-items:center;min-height:44px;padding:.65rem .75rem;color:#ecf6f2;text-decoration:none;font-weight:680;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.07);border-radius:11px;transition:transform .16s ease,background .16s ease,border-color .16s ease}
.footer-links-v18 a:hover,.footer-links-v18 a:focus-visible{transform:translateX(3px);background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.2);outline:none}
.footer-links-v18 a span:last-child{color:#9ed2bf}
.footer-mairie-v18 address{display:grid;gap:.62rem;font-style:normal}
.footer-contact-line-v18{display:grid;grid-template-columns:32px minmax(0,1fr);gap:.65rem;align-items:start;color:#edf7f3;text-decoration:none;line-height:1.5}
.footer-contact-icon-v18{display:grid;place-items:center;width:32px;height:32px;color:#d9eee6;font-size:.85rem;font-weight:850;background:rgba(255,255,255,.11);border-radius:9px}
a.footer-contact-line-v18:hover,a.footer-contact-line-v18:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:3px;outline:none}
.footer-hours-v18{display:grid;gap:.38rem;margin-top:1.35rem;padding:1rem 1.05rem;color:#d0e3dc;background:rgba(0,0,0,.12);border-radius:13px;line-height:1.55}
.footer-hours-v18 strong{color:#fff}
.footer-partners-v18{padding:clamp(1.5rem,4vw,2.25rem) 0;background:#f5f8f6;border-bottom:1px solid #dce8e2}
.footer-partners-v18__heading{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}
.footer-partners-v18__heading h2{margin:0;color:#284a40;font-size:.83rem;font-weight:820;letter-spacing:.12em;text-transform:uppercase}
.footer-partners-v18__heading span{height:1px;flex:1;background:#d4e2dc}
.footer-partners-v18__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem;align-items:stretch}
.footer-partners-v18__grid a{display:grid;place-items:center;min-width:0;min-height:88px;padding:.75rem;background:#fff;border:1px solid #dce7e2;border-radius:14px;box-shadow:0 7px 20px rgba(8,47,40,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.footer-partners-v18__grid a:hover,.footer-partners-v18__grid a:focus-visible{transform:translateY(-3px);border-color:#92c2b0;box-shadow:0 13px 28px rgba(8,47,40,.1);outline:3px solid rgba(7,112,90,.12);outline-offset:2px}
.footer-partners-v18__grid img{display:block;max-width:100%;width:auto;max-height:60px;height:auto;object-fit:contain}
.footer-bottom-v18{background:#02241e;border-top:1px solid rgba(255,255,255,.08)}
.footer-bottom-v18__inner{display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:64px;color:#bcd3ca;font-size:.9rem}
.footer-bottom-v18__inner p{margin:0}.footer-bottom-v18__inner nav{display:flex;gap:1.2rem;flex-wrap:wrap}.footer-bottom-v18__inner a{color:#dceae5;text-decoration:none}.footer-bottom-v18__inner a:hover{text-decoration:underline;text-underline-offset:3px}

@media(max-width:74rem){
  .footer-grid-v18{grid-template-columns:1fr 1fr}.footer-identity-v18{grid-column:1/-1;display:grid;grid-template-columns:minmax(230px,270px) minmax(230px,1fr);column-gap:2rem;align-items:start}.footer-signature-v18{margin:.25rem 0 0}.footer-social-v18{grid-column:2;margin-top:-2.3rem}.footer-partners-v18__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:62rem){
  .hall-reservation-v18,.hall-access-v18{grid-template-columns:1fr}.hall-map-v18{min-height:360px}.hall-map-v18 iframe{min-height:350px}.hall-contact-v18{align-items:flex-start;flex-direction:column}.hall-contact-v18__actions{justify-content:flex-start}
}
@media(max-width:50rem){
  .footer-grid-v18{grid-template-columns:1fr}.footer-identity-v18{grid-column:auto;display:block}.footer-signature-v18{margin-top:1rem}.footer-social-v18{margin-top:1.2rem}.footer-links-v18{grid-template-columns:1fr}.footer-partners-v18__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-bottom-v18__inner{align-items:flex-start;flex-direction:column;justify-content:center;padding:1rem 0}.hall-content-v18 table{display:block;overflow-x:auto;white-space:nowrap}
}
@media(max-width:32rem){
  .hall-page-v18{padding-top:1.8rem}.hall-reservation-v18,.hall-access-v18__details{padding:1.25rem}.hall-map-v18{margin:.7rem;min-height:310px}.hall-map-v18 iframe{min-height:300px}.hall-document-v18{grid-template-columns:40px minmax(0,1fr) auto;padding:.7rem}.hall-document-v18__icon{width:40px;height:40px}.footer-social-v18{display:grid;width:100%}.footer-social-v18 a{width:100%}.footer-partners-v18__grid{grid-template-columns:1fr 1fr}.footer-partners-v18__grid a{min-height:78px;padding:.55rem}.footer-partners-v18__grid img{max-height:52px}
}
