/* WINTZENHEIM V1.5 - simplified pages, refined navigation and final footer */

/* Redundant blocks are intentionally removed from the page flow. The display
   rule also protects upgraded sites whose Twig cache still contains an older
   include for a few seconds after deployment. */
.utility-band--home,
.page-utility-strip{display:none!important}

/* Give the final content section enough breathing room before the footer now
   that the former utility blocks no longer create vertical separation. */
.home-feature{padding-bottom:clamp(4rem,8vw,7rem)}
.editorial-layout,.listing-page,.section-index-page,.team-page,.heritage-page,
.agenda-page-v13,.archives-page--v13,.article-layout--v13{padding-bottom:clamp(3.5rem,7vw,6rem)}

/* -------------------------------------------------------------------------
   Slim utility bar
   ------------------------------------------------------------------------- */
.site-utility{background:linear-gradient(90deg,#043d32,#075b49);border-bottom:1px solid rgba(255,255,255,.12)}
.site-utility__inner{min-height:36px}
.site-utility__contact{gap:.65rem}
.site-utility__contact span{opacity:.45}
.site-utility__contact a{font-weight:650;letter-spacing:.01em}
.site-utility__tools{gap:.35rem}
.site-utility__tools button{border-radius:8px;padding:.3rem .48rem;transition:background .18s ease,color .18s ease}
.site-utility__tools button:hover,.site-utility__tools button:focus-visible{background:rgba(255,255,255,.14);outline:none}

/* -------------------------------------------------------------------------
   Desktop header and navigation
   ------------------------------------------------------------------------- */
.site-header--v15{position:sticky;top:0;z-index:1000;background:rgba(250,249,246,.9);border:0;box-shadow:0 1px 0 rgba(8,47,40,.08);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.site-header--v15 .site-header__frame{padding:.62rem 0}
.site-header--v15 .site-header__inner{position:relative;min-height:78px;display:flex;align-items:center;gap:1.35rem;padding:.48rem .62rem .48rem .9rem;background:rgba(255,255,255,.96);border:1px solid rgba(14,77,61,.12);border-radius:20px;box-shadow:0 14px 38px rgba(8,47,40,.08)}
.site-header--v15 .brand--official{flex:0 0 218px;width:218px;min-width:190px}
.site-header--v15 .brand--official img{display:block;width:100%;height:66px;object-fit:contain;object-position:left center}
.site-header--v15.is-scrolled .site-header__frame{padding:.35rem 0}
.site-header--v15.is-scrolled .site-header__inner{min-height:70px;box-shadow:0 16px 42px rgba(8,47,40,.13)}
.site-header--v15.is-scrolled .brand--official img{height:58px}

.main-nav--v15{margin-left:auto;min-width:0}
.main-nav--v15 .main-nav__list{display:flex;align-items:center;gap:.18rem;margin:0;padding:.34rem;list-style:none;background:#f1f6f3;border:1px solid #dfe9e4;border-radius:16px}
.main-nav--v15 .main-nav__item{position:relative;min-width:0}
.main-nav--v15 .main-nav__line{display:flex;align-items:center;border-radius:12px;color:#17261f;transition:background .18s ease,box-shadow .18s ease,color .18s ease,transform .18s ease}
.main-nav--v15 .main-nav__line>a{display:flex;align-items:center;min-height:44px;padding:.64rem .68rem;color:inherit;text-decoration:none;font-size:.84rem;font-weight:820;line-height:1.15;white-space:nowrap;letter-spacing:-.01em}
.main-nav--v15 .main-nav__item:hover>.main-nav__line,
.main-nav--v15 .main-nav__item:focus-within>.main-nav__line{background:#fff;box-shadow:0 7px 20px rgba(8,47,40,.08);color:#075b49}
.main-nav--v15 .main-nav__item.is-active>.main-nav__line{background:linear-gradient(135deg,#075b49,#0b745c);color:#fff;box-shadow:0 8px 22px rgba(7,91,73,.24)}
.main-nav--v15 .main-nav__item.is-active>.main-nav__line>a{color:#fff}

.main-nav--v15 .submenu-toggle{display:grid;place-items:center;width:32px;height:36px;margin-right:.26rem;padding:0;border:0;border-radius:9px;background:transparent;color:inherit;cursor:pointer}
.main-nav--v15 .submenu-toggle:hover,.main-nav--v15 .submenu-toggle:focus-visible{background:rgba(7,91,73,.08);outline:none}
.main-nav--v15 .main-nav__item.is-active .submenu-toggle:hover,
.main-nav--v15 .main-nav__item.is-active .submenu-toggle:focus-visible{background:rgba(255,255,255,.16)}
.submenu-toggle__icon{display:block;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-1px,-1px);transition:transform .18s ease}
.main-nav__item.is-open .submenu-toggle__icon{transform:rotate(225deg) translate(-1px,-1px)}

.main-nav--v15 .submenu{position:absolute;left:0;top:calc(100% + .72rem);z-index:30;display:grid;min-width:310px;max-width:min(390px,85vw);margin:0;padding:.62rem;list-style:none;background:rgba(255,255,255,.985);border:1px solid #d9e6df;border-radius:18px;box-shadow:0 22px 55px rgba(8,47,40,.18);opacity:0;visibility:hidden;transform:translateY(8px) scale(.985);transform-origin:top left;transition:opacity .16s ease,visibility .16s ease,transform .16s ease}
.main-nav--v15 .main-nav__item:nth-last-child(-n+2)>.submenu{left:auto;right:0;transform-origin:top right}
.main-nav--v15 .has-submenu:hover>.submenu,
.main-nav--v15 .has-submenu:focus-within>.submenu,
.main-nav--v15 .has-submenu.is-open>.submenu{opacity:1;visibility:visible;transform:none}
.main-nav--v15 .submenu li+li{margin-top:.12rem}
.main-nav--v15 .submenu a{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px;padding:.68rem .78rem;border-radius:12px;color:#17342b;text-decoration:none;font-size:.88rem;font-weight:720;line-height:1.25;transition:background .16s ease,color .16s ease,transform .16s ease}
.main-nav--v15 .submenu a b{flex:0 0 auto;color:#0b745c;font-size:1rem;transition:transform .16s ease}
.main-nav--v15 .submenu a:hover,.main-nav--v15 .submenu a:focus-visible{background:#eaf4ef;color:#064b3d;outline:none;transform:translateX(2px)}
.main-nav--v15 .submenu a:hover b,.main-nav--v15 .submenu a:focus-visible b{transform:translateX(3px)}
.main-nav--v15 .submenu li.is-active>a{background:#075b49;color:#fff}
.main-nav--v15 .submenu li.is-active>a b{color:#fff}

/* A little extra width for labels that naturally wrap. */
.main-nav__item--demarches-administratives>.submenu,
.main-nav__item--municipalite>.submenu{min-width:350px}

/* -------------------------------------------------------------------------
   Mobile menu
   ------------------------------------------------------------------------- */
.menu-toggle{margin-left:auto;border:1px solid #d7e4dd;background:#f3f7f5;color:#064b3d;border-radius:13px;padding:.68rem .85rem;font-weight:800;box-shadow:none}
.menu-toggle:hover,.menu-toggle:focus-visible{background:#e8f2ed;outline:none}

@media(max-width:82rem){
  .site-header--v15 .site-header__inner{min-height:74px}
  .site-header--v15 .brand--official{flex-basis:205px;width:205px}
  .site-header--v15 .brand--official img{height:62px}
  .menu-toggle{display:flex}
  .main-nav--v15{display:none}
  .main-nav--v15.is-open{display:block;position:absolute;left:0;right:0;top:calc(100% + .55rem);max-height:calc(100vh - 130px);overflow:auto;margin:0;padding:.7rem;background:#fff;border:1px solid #d8e5de;border-radius:18px;box-shadow:0 24px 55px rgba(8,47,40,.2)}
  .main-nav--v15 .main-nav__list{display:grid;gap:.3rem;padding:0;background:transparent;border:0}
  .main-nav--v15 .main-nav__line{justify-content:space-between;background:#f4f7f5;border:1px solid transparent}
  .main-nav--v15 .main-nav__line>a{flex:1;font-size:.94rem;padding:.78rem .85rem}
  .main-nav--v15 .submenu-toggle{width:44px;height:44px;margin-right:.18rem}
  .main-nav--v15 .submenu{position:static;display:none;min-width:0;max-width:none;margin:.25rem .3rem .5rem;padding:.3rem;background:#fbfcfb;border:0;border-left:3px solid #b9d7ca;border-radius:0 12px 12px 0;box-shadow:none;opacity:1;visibility:visible;transform:none}
  .main-nav--v15 .has-submenu.is-open>.submenu{display:grid}
  .main-nav--v15 .has-submenu:hover>.submenu:not([data-force-open]){opacity:1}
  .main-nav--v15 .submenu a{min-height:40px;padding:.6rem .72rem;font-size:.9rem}
}

@media(max-width:48rem){
  .site-utility{display:none}
  .site-header--v15 .site-header__frame{padding:.35rem 0}
  .site-header--v15 .site-header__inner{min-height:68px;padding:.35rem .45rem .35rem .65rem;border-radius:15px}
  .site-header--v15 .brand--official{flex-basis:170px;width:170px;min-width:0}
  .site-header--v15 .brand--official img{height:54px}
  .menu-toggle{padding:.62rem .72rem}
  .main-nav--v15.is-open{left:-.1rem;right:-.1rem;top:calc(100% + .35rem);max-height:calc(100vh - 92px)}
}

/* -------------------------------------------------------------------------
   Final footer: logo + Navigation + Mairie, no duplicated utility cards.
   ------------------------------------------------------------------------- */
.site-footer--v15{margin-top:0;background:linear-gradient(145deg,#032d25,#064b3d 58%,#075b49);color:#eaf4ef}
.footer-grid--v15{display:grid;grid-template-columns:1.15fr .9fr 1.05fr;gap:clamp(2rem,5vw,5rem);align-items:start;padding:clamp(3.4rem,7vw,5.4rem) 0}
.footer-identity--v15 img{display:block;width:min(330px,100%);height:auto;padding:.8rem;background:#fff;border-radius:18px;box-shadow:0 16px 38px rgba(0,0,0,.12)}
.footer-identity--v15 p{max-width:34ch;margin:1rem 0 0;color:#c8ddd5;line-height:1.65}
.footer-column h2{margin:0 0 1.25rem;color:#fff;font-family:var(--serif);font-size:clamp(1.55rem,2.6vw,2rem);line-height:1.1}
.footer-links--v15{display:grid;grid-template-columns:1fr;gap:.12rem}
.footer-links--v15 a{display:flex;align-items:center;min-height:37px;padding:.35rem 0;color:#eaf4ef;text-decoration:none;font-weight:680;border-bottom:1px solid rgba(255,255,255,.09);transition:color .16s ease,transform .16s ease}
.footer-links--v15 a:after{content:'→';margin-left:auto;color:#8fc5b0;opacity:0;transform:translateX(-5px);transition:opacity .16s ease,transform .16s ease}
.footer-links--v15 a:hover,.footer-links--v15 a:focus-visible{color:#fff;transform:translateX(3px);outline:none}
.footer-links--v15 a:hover:after,.footer-links--v15 a:focus-visible:after{opacity:1;transform:none}
.footer-mairie-v15 address{display:grid;gap:.48rem;font-style:normal}
.footer-mairie-v15 address strong{color:#fff;line-height:1.55}
.footer-mairie-v15 a{color:#eaf4ef;text-decoration-thickness:1px;text-underline-offset:3px}
.footer-mairie-v15 p{margin:1.25rem 0 0;color:#c8ddd5;line-height:1.7}
.footer-mairie-v15 p strong{color:#fff}
.site-footer--v15 .footer-bottom{border-top:1px solid rgba(255,255,255,.12)}
.site-footer--v15 .footer-bottom__inner{color:#bdd4cb}
.site-footer--v15 .footer-bottom a{color:#dceae4}

@media(max-width:70rem){
  .footer-grid--v15{grid-template-columns:1fr 1fr}
  .footer-identity--v15{grid-column:1/-1;display:grid;grid-template-columns:minmax(240px,330px) 1fr;align-items:center;gap:2rem}
  .footer-identity--v15 p{margin:0}
}
@media(max-width:46rem){
  .footer-grid--v15{grid-template-columns:1fr;gap:2.2rem}
  .footer-identity--v15{grid-column:auto;display:block}
  .footer-identity--v15 p{margin-top:1rem}
}
