:root {
  --ink: #121212;
  --ink-soft: #23211f;
  --paper: #f6f1e9;
  --paper-2: #fffdf9;
  --wine: #7f1425;
  --wine-2: #9e2237;
  --wine-dark: #4f0b16;
  --olive: #59633b;
  --gold: #b08b51;
  --muted: #77716a;
  --line: rgba(18, 18, 18, 0.13);
  --white-line: rgba(255, 255, 255, 0.16);
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.16);
  --radius: 18px;
  --container: 1320px;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body.nav-open, body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
img { display: block; width: 100%; }
svg.icon {
  width: 1.35rem;
  height: 1.35rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}

.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

.skip-link {
  position: fixed;
  z-index: 1000;
  left: 1rem;
  top: 1rem;
  transform: translateY(-160%);
  padding: .8rem 1rem;
  background: white;
  color: black;
  border-radius: 8px;
}
.skip-link:focus { transform: translateY(0); }

.container { width: min(var(--container), calc(100% - 64px)); margin-inline: auto; }
.eyebrow {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 0 0 1rem;
  font-size: .77rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 32px; height: 2px; background: var(--wine); }

.alert-strip {
  min-height: 40px;
  background: #0c0c0d;
  color: #fff;
  font-size: .78rem;
  display: flex;
  align-items: center;
}
.alert-strip__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.alert-strip__message, .alert-strip__meta { display: flex; align-items: center; gap: .7rem; }
.alert-strip__message strong { color: #ff3e52; letter-spacing: .05em; text-transform: uppercase; }
.alert-strip__message a { color: #d8b5ba; text-decoration: underline; text-underline-offset: 3px; }
.alert-strip__meta { gap: 1.25rem; white-space: nowrap; }
.alert-strip__meta a { display: inline-flex; gap: .45rem; align-items: center; }
.alert-strip .icon { width: 1rem; height: 1rem; }

.hero {
  position: relative;
  isolation: isolate;
  min-height: 760px;
  color: white;
  background: #1c2520 url('../images/gigondas-panorama.webp') center 44% / cover no-repeat;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(180deg, rgba(9,11,12,.76) 0, rgba(9,11,12,.2) 28%, rgba(8,8,7,.38) 62%, rgba(8,8,7,.78) 100%);
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(0,0,0,.48), transparent 55%);
}

.site-header {
  position: relative;
  z-index: 20;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.site-header.is-sticky {
  position: fixed;
  top: 0;
  width: 100%;
  background: rgba(15, 15, 16, .91);
  backdrop-filter: blur(15px);
  box-shadow: 0 8px 30px rgba(0,0,0,.18);
}
.site-header__inner {
  min-height: 94px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.5rem;
}
.brand { display: inline-flex; align-items: center; gap: .85rem; min-width: 225px; }
.brand__mark {
  width: 44px;
  height: 52px;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 4px 4px 17px 17px;
  display: grid;
  place-items: center;
  font: 700 1.65rem/1 var(--serif);
  position: relative;
}
.brand__mark::before, .brand__mark::after { content:""; position:absolute; top:-8px; width:12px; height:8px; border:1px solid currentColor; border-bottom:0; }
.brand__mark::before { left:5px; } .brand__mark::after { right:5px; }
.brand__text small { display:block; font-size:.68rem; letter-spacing:.17em; text-transform:uppercase; opacity:.8; }
.brand__text strong { display:block; font: 400 1.75rem/1.05 var(--serif); letter-spacing:.02em; }
.brand__text em { display:block; font-style:normal; font-size:.66rem; opacity:.7; margin-top:.25rem; }

.main-nav { display: flex; align-items: center; gap: 1.8rem; margin-left: auto; }
.main-nav a {
  font-size: .78rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  opacity: .9;
  transition: opacity .2s ease, color .2s ease;
}
.main-nav a:hover, .main-nav a:focus-visible { opacity: 1; color: #fff; }
.header-actions { display:flex; align-items:center; gap:.8rem; }
.icon-button {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.3);
  background: rgba(255,255,255,.05);
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:.2s ease;
}
.icon-button:hover { background: var(--wine); border-color: var(--wine); transform: translateY(-1px); }
.menu-button { display:none; }

.hero__content {
  padding-top: 126px;
  padding-bottom: 175px;
}
.hero__content-inner { max-width: 760px; }
.hero h1 {
  margin: 0;
  max-width: 750px;
  font: 400 clamp(3.8rem, 7vw, 7rem)/.9 var(--serif);
  letter-spacing: -.045em;
  text-wrap: balance;
}
.hero h1 span { display: block; font-size: .64em; letter-spacing: -.03em; margin-top: .22em; }
.hero__lead { max-width: 470px; margin: 1.7rem 0 1.8rem; font-size: 1.13rem; color: rgba(255,255,255,.85); }
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  min-height:48px;
  padding:.9rem 1.15rem;
  border:1px solid transparent;
  border-radius:4px;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, border-color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button--wine { background:var(--wine); color:#fff; }
.button--wine:hover { background:var(--wine-2); }
.button--outline { border-color: rgba(255,255,255,.55); color:#fff; background:rgba(0,0,0,.12); }
.button--outline:hover { background:rgba(255,255,255,.12); }
.button--dark { background:#161616; color:white; }

.hero-services {
  position: absolute;
  left: 50%;
  bottom: -58px;
  transform: translateX(-50%);
  width: min(var(--container), calc(100% - 64px));
  z-index: 3;
  background: rgba(13,13,14,.94);
  backdrop-filter: blur(16px);
  border: 1px solid var(--white-line);
  border-radius: 16px;
  box-shadow: var(--shadow);
  display:grid;
  grid-template-columns: repeat(5, 1fr);
}
.hero-service {
  min-height: 116px;
  padding: 1.3rem 1.4rem;
  display:flex;
  align-items:center;
  gap:1rem;
  border-right:1px solid var(--white-line);
  transition:background .2s ease;
}
.hero-service:last-child { border-right: 0; }
.hero-service:hover { background:rgba(255,255,255,.055); }
.hero-service .icon { width: 2rem; height: 2rem; color:#f4e9dc; }
.hero-service strong { display:block; font-weight:650; font-size:.93rem; }
.hero-service span { display:block; margin-top:.18rem; color:rgba(255,255,255,.58); font-size:.72rem; line-height:1.35; }

.dark-section {
  background: linear-gradient(145deg,#171717,#0e0e0f);
  color:white;
  padding: 132px 0 60px;
}
.news-events-grid { display:grid; grid-template-columns: 1.55fr .95fr; gap: 48px; }
.section-heading-row { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.section-heading-row h2 { margin:0; font-size:.9rem; text-transform:uppercase; letter-spacing:.18em; }
.section-heading-row a { color:#c9b4b6; font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; }
.feature-grid { display:grid; grid-template-columns: 1.5fr 1fr; gap:18px; }
.feature-card {
  position:relative;
  min-height:420px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  overflow:hidden;
  isolation:isolate;
}
.feature-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.feature-card::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.9)); }
.feature-card__content { position:absolute; left:24px; right:24px; bottom:22px; }
.tag { display:inline-flex; background:var(--wine); padding:.35rem .55rem; font-size:.64rem; font-weight:800; letter-spacing:.08em; }
.feature-card time { margin-left:.65rem; font-size:.7rem; opacity:.76; }
.feature-card h3 { margin:.75rem 0 .55rem; font:400 2rem/1.05 var(--serif); }
.feature-card p { margin:0 0 .85rem; color:rgba(255,255,255,.72); font-size:.82rem; max-width:90%; }
.text-link { display:inline-flex; align-items:center; gap:.55rem; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.text-link .icon { width:1rem; height:1rem; }

.news-list { display:grid; gap:14px; }
.news-list-item { display:grid; grid-template-columns:108px 1fr; gap:16px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.1); }
.news-list-item img { height:88px; object-fit:cover; border-radius:5px; }
.news-list-item .category { color:#ce5669; font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; }
.news-list-item h3 { margin:.3rem 0 .4rem; font-size:1rem; line-height:1.3; font-weight:650; }
.news-list-item time { color:rgba(255,255,255,.5); font-size:.7rem; }

.events-panel { border-left:1px solid rgba(255,255,255,.12); padding-left:32px; }
.event-list { display:grid; }
.event-card { display:grid; grid-template-columns:64px 1fr 92px; gap:16px; align-items:center; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.event-date { background:var(--wine); border-radius:5px; text-align:center; padding:.6rem .25rem; }
.event-date strong { display:block; font:400 1.45rem/1 var(--serif); }
.event-date span { font-size:.63rem; text-transform:uppercase; }
.event-card h3 { margin:0 0 .25rem; font-size:.98rem; }
.event-card p { margin:0; color:rgba(255,255,255,.6); font-size:.73rem; }
.event-card img { height:70px; object-fit:cover; border-radius:5px; }

.quick-section { padding: 44px 0 46px; background:var(--paper-2); }
.quick-grid { display:grid; grid-template-columns:repeat(6,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.quick-card { min-height:126px; padding:1.4rem 1rem; text-align:center; border-right:1px solid var(--line); display:flex; flex-direction:column; align-items:center; justify-content:center; transition:.2s ease; }
.quick-card:last-child{border-right:0}.quick-card:hover{background:#f0e8dc}.quick-card .icon{width:2rem;height:2rem;color:var(--wine);margin-bottom:.65rem}.quick-card strong{font-size:.85rem}.quick-card span{color:var(--muted);font-size:.68rem;margin-top:.2rem}

.discover-section { padding: 18px 0 54px; background:var(--paper-2); }
.discover-grid { display:grid; grid-template-columns:1.1fr repeat(4,1fr); gap:8px; }
.discover-intro { padding:1rem 2rem 1rem 0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.discover-intro h2 { font-size:.95rem; text-transform:uppercase; letter-spacing:.14em; margin:.3rem 0 1rem; }
.discover-intro p { color:#56514b; font-size:.8rem; margin:0 0 1.2rem; }
.discover-card { position:relative; min-height:220px; overflow:hidden; border-radius:4px; }
.discover-card img { height:100%; object-fit:cover; transition:transform .5s ease; }
.discover-card:hover img { transform:scale(1.04); }
.discover-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.78)); }
.discover-card strong { position:absolute; z-index:1; left:18px; bottom:16px; color:white; font:400 1.35rem/1 var(--serif); }

.admin-promo { background:#130f10; color:white; padding:42px 0 48px; }
.admin-promo__inner { display:grid; grid-template-columns: .72fr 1.8fr; gap:52px; align-items:center; }
.admin-promo__copy h2 { margin:0 0 .9rem; font-size:.92rem; text-transform:uppercase; letter-spacing:.15em; }
.admin-promo__copy p { max-width:290px; color:rgba(255,255,255,.68); }
.admin-promo__cards { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.admin-mini-card { min-height:150px; padding:1.2rem; border-radius:7px; background:linear-gradient(145deg,#741627,#4f0b16); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; transition:.2s ease; }
.admin-mini-card:hover{transform:translateY(-3px);background:linear-gradient(145deg,#8c1d32,#5a0d1a)}.admin-mini-card .icon{width:2.1rem;height:2.1rem;margin-bottom:.75rem}.admin-mini-card strong{font-size:.9rem}.admin-mini-card span{font-size:.67rem;color:rgba(255,255,255,.64);margin-top:.2rem}
.admin-promo__footer { grid-column:2; display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:-20px; color:rgba(255,255,255,.62); font-size:.72rem; }
.admin-promo__footer nav { display:flex; gap:1.25rem; flex-wrap:wrap; }
.admin-promo__footer a { display:inline-flex; align-items:center; gap:.35rem; }
.admin-promo__footer .logout{color:#e77989}

.site-footer { background:#0b0b0c;color:#fff;padding:48px 0 20px; }
.footer-grid { display:grid; grid-template-columns:1.15fr .8fr .8fr 1.05fr; gap:48px; }
.footer-brand .brand { margin-bottom:1.2rem; }
.footer-brand p, .footer-col p, .footer-col a { color:rgba(255,255,255,.62); font-size:.76rem; }
.footer-col h3 { margin:0 0 1rem; font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; }
.footer-col { display:flex; flex-direction:column; align-items:flex-start; gap:.55rem; }
.footer-bottom { margin-top:34px; padding-top:18px; border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; gap:1rem; color:rgba(255,255,255,.45); font-size:.67rem; }

.search-panel {
  position:fixed;
  z-index:100;
  inset:0;
  display:none;
  background:rgba(8,8,9,.88);
  backdrop-filter:blur(12px);
  color:white;
  padding:7vh 1.5rem;
}
.search-panel.is-open{display:block}.search-panel__box{max-width:760px;margin:auto}.search-panel__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem}.search-panel h2{font:400 2.7rem/1 var(--serif);margin:0}.search-panel input{width:100%;padding:1.2rem 1.25rem;border:0;border-bottom:2px solid rgba(255,255,255,.35);background:transparent;color:white;font-size:1.7rem;outline:0}.search-results{margin-top:1.5rem;display:grid;gap:.65rem}.search-result{padding:1rem;border:1px solid rgba(255,255,255,.14);border-radius:7px}.search-result strong{display:block}.search-result span{font-size:.75rem;color:rgba(255,255,255,.6)}

.mobile-nav {
  display:none;
  position:fixed;
  z-index:90;
  inset:0;
  background:#111;
  color:#fff;
  padding:1.25rem;
}
.mobile-nav.is-open{display:block}.mobile-nav__top{display:flex;justify-content:space-between;align-items:center}.mobile-nav nav{display:grid;gap:0;margin-top:3rem}.mobile-nav nav a{font:400 2rem/1.15 var(--serif);padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.12)}.mobile-nav__contacts{margin-top:2rem;color:rgba(255,255,255,.65);font-size:.8rem;display:grid;gap:.8rem}

.toast { position:fixed; z-index:200; right:24px; bottom:24px; background:#111; color:#fff; padding:.9rem 1.1rem; border-left:4px solid var(--wine-2); border-radius:5px; box-shadow:var(--shadow); opacity:0; transform:translateY(20px); pointer-events:none; transition:.25s ease; }
.toast.is-visible { opacity:1; transform:translateY(0); }

@media (max-width: 1100px) {
  .main-nav { display:none; }
  .menu-button { display:grid; }
  .hero-services { grid-template-columns:repeat(5,1fr); }
  .hero-service { padding:1rem; gap:.65rem; }
  .hero-service span { display:none; }
  .news-events-grid { grid-template-columns:1fr; }
  .events-panel { border-left:0; border-top:1px solid rgba(255,255,255,.12); padding:30px 0 0; }
  .quick-grid { grid-template-columns:repeat(3,1fr); }
  .quick-card:nth-child(3){border-right:0}.quick-card:nth-child(-n+3){border-bottom:1px solid var(--line)}
  .discover-grid { grid-template-columns:1fr 1fr; }
  .discover-intro { grid-column:1/-1; padding-right:0; max-width:620px; }
  .admin-promo__inner{grid-template-columns:1fr}.admin-promo__cards{grid-template-columns:repeat(4,1fr)}.admin-promo__footer{grid-column:1;margin-top:0}
  .footer-grid{grid-template-columns:1.2fr 1fr 1fr}.footer-col:last-child{grid-column:1/-1}
}

@media (max-width: 760px) {
  .container { width:min(100% - 32px, var(--container)); }
  .alert-strip__inner { min-height:44px; }
  .alert-strip__meta { display:none; }
  .alert-strip__message { font-size:.7rem; overflow:hidden; white-space:nowrap; }
  .site-header__inner { min-height:76px; }
  .brand { min-width:0; }
  .brand__mark { width:36px;height:43px;font-size:1.3rem; }
  .brand__text strong { font-size:1.32rem; }
  .brand__text em { display:none; }
  .hero { min-height:760px; background-position: 58% center; }
  .hero__content { padding-top:108px; padding-bottom:230px; }
  .hero h1 { font-size:clamp(3.25rem,17vw,5rem); }
  .hero__lead { font-size:.98rem; max-width:85%; }
  .hero-services { bottom:-168px; width:calc(100% - 32px); grid-template-columns:1fr 1fr; }
  .hero-service { min-height:88px; border-bottom:1px solid var(--white-line); }
  .hero-service:nth-child(2n){border-right:0}.hero-service:last-child{grid-column:1/-1;border-bottom:0}
  .dark-section { padding-top:230px; }
  .feature-grid { grid-template-columns:1fr; }
  .feature-card { min-height:400px; }
  .news-list-item { grid-template-columns:86px 1fr; }
  .event-card { grid-template-columns:58px 1fr; }
  .event-card img { display:none; }
  .quick-grid { grid-template-columns:1fr 1fr; }
  .quick-card:nth-child(3){border-right:1px solid var(--line)}.quick-card:nth-child(2n){border-right:0}.quick-card:nth-child(-n+4){border-bottom:1px solid var(--line)}
  .discover-grid { grid-template-columns:1fr; }
  .discover-card { min-height:260px; }
  .admin-promo__cards { grid-template-columns:1fr 1fr; }
  .admin-promo__footer { align-items:flex-start; flex-direction:column; }
  .footer-grid { grid-template-columns:1fr; gap:30px; }
  .footer-col:last-child{grid-column:auto}.footer-bottom{flex-direction:column}
}

@media (max-width: 430px) {
  .hero h1 { font-size:3.35rem; }
  .hero__lead { max-width:100%; }
  .button { width:100%; }
  .hero-services { bottom:-190px; }
  .dark-section { padding-top:250px; }
  .feature-card h3 { font-size:1.7rem; }
  .admin-promo__cards { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* --------------------------------------------------------------------------
   Identité officielle + version municipale lumineuse
   -------------------------------------------------------------------------- */
:root {
  --paper: #f5efe6;
  --paper-2: #fffdf9;
  --ink: #201c19;
  --ink-soft: #4c433d;
  --line: rgba(68, 52, 43, .15);
  --shadow: 0 18px 55px rgba(70, 48, 35, .15);
}

.brand__logo {
  width: 58px;
  height: 76px;
  object-fit: contain;
  flex: 0 0 auto;
  filter: drop-shadow(0 5px 10px rgba(48, 32, 20, .12));
}

.alert-strip {
  background: var(--wine-dark);
  color: #fff8f0;
}
.alert-strip__message strong { color: #ffd4da; }
.alert-strip__message a { color: #ffe5e8; }

.hero {
  min-height: 780px;
  background-color: #71816a;
}
.hero::before {
  background: linear-gradient(180deg, rgba(23, 28, 24, .18) 0, rgba(23, 28, 24, .05) 30%, rgba(23, 28, 24, .12) 66%, rgba(23, 28, 24, .34) 100%);
}
.hero::after {
  background: linear-gradient(90deg, rgba(26, 28, 22, .62) 0%, rgba(26, 28, 22, .32) 40%, rgba(26, 28, 22, .04) 75%);
}

.site-header {
  color: var(--ink);
  background: rgba(255, 252, 247, .96);
  border-bottom: 1px solid rgba(82, 62, 49, .13);
  box-shadow: 0 8px 25px rgba(51, 36, 26, .08);
  backdrop-filter: blur(14px);
}
.site-header.is-sticky {
  background: rgba(255, 252, 247, .97);
  color: var(--ink);
  border-bottom-color: rgba(82, 62, 49, .13);
  box-shadow: 0 10px 34px rgba(51, 36, 26, .13);
}
.site-header__inner { min-height: 116px; }
.brand { gap: 1rem; min-width: 275px; }
.brand__text small { color: #5e554e; opacity: 1; }
.brand__text strong { color: #241e1a; }
.brand__text em { color: #6d625a; opacity: 1; }
.main-nav a { color: #29231f; opacity: .86; font-weight: 650; }
.main-nav a:hover,
.main-nav a:focus-visible { color: var(--wine); }
.icon-button {
  color: #231e1a;
  border-color: rgba(49, 39, 32, .22);
  background: rgba(255,255,255,.68);
}
.icon-button:hover { color: #fff; }

.hero__content { padding-top: 115px; }
.hero__content-inner {
  padding: 28px 34px 32px 0;
  text-shadow: 0 2px 22px rgba(0,0,0,.28);
}
.hero__lead { color: rgba(255,255,255,.94); }

.hero-services {
  color: var(--ink);
  background: rgba(255, 252, 247, .97);
  border-color: rgba(83, 62, 48, .14);
  box-shadow: 0 22px 70px rgba(76, 51, 34, .2);
  backdrop-filter: blur(18px);
}
.hero-service { border-right-color: rgba(83, 62, 48, .13); }
.hero-service:hover { background: #f5ede3; }
.hero-service .icon { color: var(--wine); }
.hero-service span { color: #756960; }
.hero-service strong { color: #241e1a; }

.dark-section {
  background: linear-gradient(180deg, #f7f1e8 0%, #fffdf9 100%);
  color: var(--ink);
}
.section-heading-row h2 { color: #29231f; }
.section-heading-row a { color: var(--wine); font-weight: 700; }
.news-list-item { border-bottom-color: var(--line); }
.news-list-item .category { color: var(--wine-2); }
.news-list-item h3 { color: #29231f; }
.news-list-item time { color: #7b7068; }
.events-panel { border-left-color: var(--line); }
.event-card { border-bottom-color: var(--line); }
.event-card h3 { color: #29231f; }
.event-card p { color: #746a62; }
.feature-card {
  border-color: rgba(89, 63, 47, .15);
  box-shadow: 0 18px 45px rgba(55, 38, 26, .16);
}

.quick-section,
.discover-section { background: #fffdf9; }
.quick-card:hover { background: #f4ece1; }

.admin-promo {
  color: var(--ink);
  background: linear-gradient(135deg, #eee1d3, #f8f1e9);
  border-top: 1px solid rgba(77, 56, 43, .1);
  border-bottom: 1px solid rgba(77, 56, 43, .1);
}
.admin-promo__copy p { color: #675c54; }
.admin-mini-card {
  color: var(--ink);
  background: rgba(255, 253, 249, .93);
  border: 1px solid rgba(91, 61, 45, .13);
  box-shadow: 0 12px 32px rgba(83, 53, 35, .1);
}
.admin-mini-card:hover {
  background: #fff;
  border-color: rgba(127, 20, 37, .32);
  box-shadow: 0 16px 42px rgba(83, 53, 35, .16);
}
.admin-mini-card .icon { color: var(--wine); }
.admin-mini-card span { color: #71655d; }
.admin-promo__footer { color: #685c54; }
.admin-promo__footer .logout { color: var(--wine); }

.site-footer {
  background: linear-gradient(145deg, #55101f, #35101a);
  color: #fffaf4;
}
.site-footer .brand__text small,
.site-footer .brand__text strong,
.site-footer .brand__text em { color: #fffaf4; }
.footer-brand p,
.footer-col p,
.footer-col a { color: rgba(255,250,244,.76); }
.footer-bottom { color: rgba(255,250,244,.58); }
.footer-brand .brand__logo { width: 48px; height: 66px; }

.mobile-nav {
  background: #f8f1e8;
  color: var(--ink);
}
.mobile-nav .brand__text small,
.mobile-nav .brand__text strong { color: var(--ink); }
.mobile-nav nav a { border-bottom-color: var(--line); }
.mobile-nav__contacts { color: #6d625a; }
.mobile-nav .icon-button { border-color: var(--line); }

@media (max-width: 1100px) {
  .events-panel { border-top-color: var(--line); }
}

@media (max-width: 760px) {
  .site-header__inner { min-height: 86px; }
  .brand__logo { width: 43px; height: 59px; }
  .brand__text strong { font-size: 1.35rem; }
  .hero__content { padding-top: 92px; }
  .hero-services { border-color: var(--line); }
  .hero-service { border-bottom-color: var(--line); }
  .dark-section { background: linear-gradient(180deg, #f7f1e8 0%, #fffdf9 100%); }
}

/* --------------------------------------------------------------------------
   V3 — Header compact, blason maîtrisé et palette municipale lumineuse
   -------------------------------------------------------------------------- */
:root {
  --paper: #f7f2eb;
  --paper-2: #fffdf9;
  --ink: #24211e;
  --ink-soft: #554d46;
  --wine: #8b1e32;
  --wine-2: #a42c43;
  --wine-dark: #6f1728;
  --line: rgba(70, 55, 44, .13);
  --shadow: 0 16px 45px rgba(83, 58, 40, .13);
  --container: 1280px;
}

/* Bandeau d'information clair : plus aucun aplat noir au-dessus du site. */
.alert-strip {
  min-height: 36px;
  background: #f4e8e5;
  color: #5d2731;
  border-bottom: 1px solid rgba(139, 30, 50, .12);
}
.alert-strip__message strong { color: var(--wine); }
.alert-strip__message a { color: var(--wine); }
.alert-strip__meta a { color: #5b514a; }

/* En-tête nettement plus fin et blason dimensionné de façon institutionnelle. */
.site-header,
.site-header.is-sticky {
  color: var(--ink);
  background: rgba(255, 253, 249, .97);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 8px 24px rgba(71, 50, 36, .08);
  backdrop-filter: blur(14px);
}
.site-header__inner { min-height: 76px; gap: 1.5rem; }
.brand { gap: .7rem; min-width: 226px; }
.brand__logo {
  width: 38px;
  height: 52px;
  max-width: 38px;
  max-height: 52px;
  object-fit: contain;
  flex: 0 0 38px;
  filter: drop-shadow(0 3px 6px rgba(48, 32, 20, .12));
}
.brand__text small { font-size: .58rem; letter-spacing: .15em; color: #6b6159; }
.brand__text strong { font-size: 1.48rem; line-height: 1; color: #28221e; }
.brand__text em { font-size: .59rem; margin-top: .2rem; color: #746a62; }
.main-nav { gap: 1.35rem; }
.main-nav a { font-size: .71rem; letter-spacing: .045em; font-weight: 700; color: #312b27; }
.icon-button { width: 40px; height: 40px; background: #fff; border-color: rgba(67, 51, 41, .18); }

/* Hero conservé immersif, mais sans voile noir massif. */
.hero {
  min-height: 690px;
  background-color: #a5ad91;
  background-position: center 46%;
}
.hero::before {
  background: linear-gradient(90deg,
    rgba(48, 43, 32, .48) 0%,
    rgba(48, 43, 32, .27) 34%,
    rgba(48, 43, 32, .06) 68%,
    rgba(255, 250, 242, .04) 100%);
}
.hero::after {
  background: linear-gradient(180deg,
    rgba(255,255,255,.06) 0%,
    rgba(255,255,255,0) 48%,
    rgba(66,50,36,.20) 100%);
}
.hero__content { padding-top: 92px; padding-bottom: 148px; }
.hero__content-inner { max-width: 690px; padding: 0; text-shadow: 0 2px 18px rgba(0,0,0,.24); }
.hero h1 { font-size: clamp(3.55rem, 6.1vw, 5.9rem); line-height: .92; }
.hero__lead { font-size: 1.05rem; }

/* Le panneau de services reste clair et plus compact. */
.hero-services {
  bottom: -48px;
  background: rgba(255, 253, 249, .98);
  border: 1px solid rgba(82, 61, 47, .13);
  border-radius: 14px;
  box-shadow: 0 18px 50px rgba(72, 48, 32, .16);
}
.hero-service { min-height: 96px; padding: 1rem 1.15rem; }
.hero-service .icon { width: 1.7rem; height: 1.7rem; }
.hero-service strong { font-size: .86rem; }
.hero-service span { font-size: .68rem; color: #776d65; }

/* Toutes les grandes sections passent en tons pierre et ivoire. */
.dark-section {
  padding-top: 108px;
  background: linear-gradient(180deg, #f7f2eb 0%, #fffdf9 100%);
  color: var(--ink);
}
.quick-section { background: #fffdf9; }
.discover-section { background: #f3ece3; }
.admin-promo { background: linear-gradient(135deg, #eaded1 0%, #f9f4ee 100%); }

/* Pied de page clair, plus adapté à une mairie qu'un bloc noir. */
.site-footer {
  background: #e9dfd4;
  color: #342d28;
  border-top: 1px solid rgba(81, 59, 45, .12);
}
.site-footer .brand__text small,
.site-footer .brand__text strong,
.site-footer .brand__text em { color: #342d28; }
.footer-brand p,
.footer-col p,
.footer-col a { color: #675c54; }
.footer-col h3 { color: var(--wine); }
.footer-bottom {
  color: #776b62;
  border-top-color: rgba(81, 59, 45, .13);
}
.footer-brand .brand__logo {
  width: 32px;
  height: 44px;
  max-width: 32px;
  max-height: 44px;
  flex-basis: 32px;
}

@media (max-width: 1100px) {
  .site-header__inner { min-height: 72px; }
  .brand { min-width: 205px; }
  .brand__logo { width: 35px; height: 48px; max-width: 35px; max-height: 48px; flex-basis: 35px; }
  .main-nav { gap: 1rem; }
  .main-nav a { font-size: .66rem; }
}

@media (max-width: 760px) {
  .alert-strip { min-height: 40px; }
  .site-header__inner { min-height: 68px; }
  .brand { min-width: 0; gap: .58rem; }
  .brand__logo { width: 32px; height: 43px; max-width: 32px; max-height: 43px; flex-basis: 32px; }
  .brand__text small { font-size: .52rem; }
  .brand__text strong { font-size: 1.2rem; }
  .hero { min-height: 720px; background-position: 58% center; }
  .hero__content { padding-top: 78px; }
  .hero-services { bottom: -160px; }
  .dark-section { padding-top: 220px; }
}

@media (max-width: 430px) {
  .hero-services { bottom: -182px; }
  .dark-section { padding-top: 242px; }
}

/* Les libellés des accès restent lisibles sur tablette et mobile. */
@media (max-width: 1100px) {
  .hero-service > span { display: block; }
  .hero-service > span > span { display: none; }
  .hero-service { justify-content: center; }
}

@media (max-width: 760px) {
  .hero-service { justify-content: flex-start; gap: .8rem; padding-inline: 1rem; }
  .hero-service strong { font-size: .8rem; }
}
