
:root{
  --bg:#fbf8f3;
  --paper:#fffdf9;
  --text:#434544;
  --muted:#5d685f;
  --accent:#7b5f42;
  --accent-2:#365447;
  --line:#c2c0bc;
  --sand:#efe3d1;
  --shadow:0 3px 10px rgba(0,0,0,.3);
  --radius: 13px;
  --container:1180px;
}
*{box-sizing:border-box}

html{scroll-behavior:smooth}
#calendrier,#event-detail{scroll-margin-top:80px}
body{
  margin:0;
  font-family:'Open Sans', Helvetica, sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.65;
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/assets/fonts/OpenSans/OpenSans-Light.woff2') format('woff2'),
       url('/assets/fonts/OpenSans/OpenSans-Light.woff') format('woff');
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/OpenSans/OpenSans-Regular.woff2') format('woff2'),
       url('/assets/fonts/OpenSans/OpenSans-Regular.woff') format('woff');
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/OpenSans/OpenSans-Medium.woff2') format('woff2'),
       url('/assets/fonts/OpenSans/OpenSans-Medium.woff') format('woff');
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/OpenSans/OpenSans-SemiBold.woff2') format('woff2'),
       url('/assets/fonts/OpenSans/OpenSans-SemiBold.woff') format('woff');
}

@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/assets/fonts/OpenSans_Condensed/OpenSans_Condensed-Light.woff2') format('woff2'),
       url('/assets/fonts/OpenSans_Condensed/OpenSans_Condensed-Light.woff') format('woff');
}

@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/OpenSans_Condensed/OpenSans_Condensed-Regular.woff2') format('woff2'),
       url('/assets/fonts/OpenSans_Condensed/OpenSans_Condensed-Regular.woff') format('woff');
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

a.link {color:#56370e;}
a.link:hover {text-decoration:underline;}

.container{width:min(var(--container), calc(100% - 2rem)); margin:0 auto;}
.container-reiki {
  width: min(1100px, 100%);
  margin: 0 auto;
  padding: 0 1rem;
}

.topbar{
  position:sticky; top:0; z-index:50;
  background:rgba(251,248,243,.9);
  backdrop-filter: blur(12px);
  border-bottom:1px solid rgba(54,84,71,.08);
}
.nav{display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:82px}
.brand{display:flex; align-items:center; gap:1rem; font-weight:700}
.brand img{width:190px;height:auto}
.brand small{display:block; color:var(--muted); font-weight:500}
.menu{display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap}
.menu a{padding:.55rem .15rem; position:relative; color:var(--muted)}
.menu a.active, .menu a:hover{color:var(--accent);}
.menu a.active::after,.menu a:hover::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--accent); border-radius:13px;
}
.mobile-toggle{display:none}


/* ================================
   Hero accueil
================================ */
.hero {
  position:relative;
  display:flex;
  align-items:center;
  padding:6rem 0 4rem;
  background:url('../../assets/images/gite-les-sources-taia.jpg') center center / cover no-repeat;
}

.dev-perso {
  position: relative;
  display: flex;
  align-items: center;
  padding: 6rem 0 4rem;
  background: url('../../assets/images/developpement-interieur-et-spirituel-reiki.webp') center center / cover no-repeat;
}

.hero-tarifs {
  position: relative;
  display: flex;
  align-items: center;
  padding: 6rem 0 4rem;
  background: url('../../assets/images/tarifs-location-gite-les-sources-taia.webp') center center / cover no-repeat;
}

.hero-mentions {
  position: relative;
  display: flex;
  align-items: center;
  padding: 6rem 0 4rem;
  background: url('../../assets/images/mentions-legales-conditions-utilisations.webp') center center / cover no-repeat;
}

.hero-activites {
  position: relative;
  display: flex;
  align-items: center;
  padding: 6rem 0 4rem;
  background: url('../../assets/images/activites-plein-air-rendo-sport-equestre-vtt.webp') center center / cover no-repeat;
}

.reiki-perso {
  position: relative;
  display: flex;
  align-items: center;
  padding: 6rem 0 4rem;
  background: url('../../assets/images/formation-reiki-usui.webp') center center / cover no-repeat;
}

.hero::before, .dev-perso::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.28);
}

.hero-overlay {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  justify-content: center;   /* centre horizontal */
  align-items: center;       /* centre vertical */
}

.hero-content{
  max-width: 1100px;
  width: 100%;
  background: rgba(255, 255, 255, 0.25);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow: 0 5px 20px rgba(0,0,0,.38);
  padding:2rem;
  transform:translateY(-20px);
  margin:0 auto;
}

.hero-content-tarifs{
  max-width: 1100px;
  width: 100%;
  background: rgba(255, 255, 255, 0.45);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow: 0 5px 20px rgba(0,0,0,.38);
  padding:2rem;
  transform:translateY(-20px);
  margin:0 auto;
}

.hero-reiki{
  background: rgba(0, 0, 0, 0.35);
  border:1px solid rgba(0, 0, 0, 0.7);
  border-radius:var(--radius);
  box-shadow: 0 5px 20px rgba(0,0,0,.38);
  padding:2rem;
}

.hero h1{
  margin-bottom:1rem;
}

.hero .lead{
  margin-bottom:1rem;
}

.hero-cta{
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
  margin-top:1.3rem;
}

@media (max-width:768px){
  .hero{
    min-height:auto;
    padding:5rem 0 3rem;
  }

  .hero-content{
    padding:1.4rem;
    transform:none;
  }
}


.reiki-grid {
  display: flex;
  flex-direction: column; /* empile les blocs */
  gap: 2rem;
  width: 100%;
}

@media (max-width: 900px){
  .reiki-grid{
    grid-template-columns: 1fr;
  }
}

/* ===============================
======= Banniere info Cookie ===*/
.privacy-info-banner {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 9999;
  display: flex;
  justify-content: center;
}

.privacy-info-banner__inner {
  width: 100%;
  max-width: 920px;
  background: rgba(255, 248, 239, 0.98);
  color: rgb(166, 129, 90);
  border: 1px solid rgb(174, 146, 116);
  border-radius: 18px;
  box-shadow: 0 1px 5px rgb(174, 146, 116, 1.0);
  backdrop-filter: blur(6px);
}

.privacy-info-banner__content {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.2rem;
}

.privacy-info-banner__text {
  flex: 1 1 auto;
}

.privacy-info-banner__text strong {
  display: inline-block;
  margin-bottom: 0.35rem;
  font-size: 1.200rem;
  letter-spacing: 0.02em;
}

.privacy-info-banner__text p {
  margin: 0.35rem 0 0;
  font-size: 0.900rem;
  color: rgb(99, 99, 99);
  line-height: 1.55;
}

.privacy-info-banner__text a {
  color: #7a5c49;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.privacy-info-banner__text a:hover,
.privacy-info-banner__text a:focus {
  color: #5e4435;
}

.privacy-info-banner__actions {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
}

.privacy-info-banner__form {
  margin: 0;
}

.privacy-info-banner__btn,
.privacy-info-banner__close {
  appearance: none;
  border: 0;
  cursor: pointer;
  font: inherit;
}

.privacy-info-banner__btn {
  background: #4a6b34;
  color: #fff;
  padding: 0.65rem 1rem;
  border-radius: 999px;
  line-height: 1;
  white-space: nowrap;
}

.privacy-info-banner__btn:hover,
.privacy-info-banner__btn:focus {
  background: #557a3b;
}

.privacy-info-banner__close {
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  background: transparent;
  color: #7a5c49;
  border: 1px solid rgba(117, 134, 77, 1.0);
  font-size: 1.2rem;
  line-height: 1;
}

.privacy-info-banner__close:hover,
.privacy-info-banner__close:focus {
  background: rgba(117, 134, 77, 1.0);
  color: #fff;
}

@media (max-width: 720px) {
  .privacy-info-banner {
    left: 0.6rem;
    right: 0.6rem;
    bottom: 0.6rem;
  }

  .privacy-info-banner__content {
    flex-direction: column;
    align-items: stretch;
    padding: 0.95rem 1rem;
  }

  .privacy-info-banner__actions {
    justify-content: space-between;
    align-items: center;
  }

  .privacy-info-banner__btn {
    width: 100%;
  }
}

/* ===== CORRECTION CONTACT ===== */
.hero-contact {
  position: relative;
  display: flex;
  align-items: center;
  padding: 6rem 0 4rem;
  background: url('../../assets/images/contact-gite-les-sources-taia.webp') center center / cover no-repeat;
}

.hero-contact .hero-overlay {
  display: block !important;
  width: 100% !important;
}

.container.contact-layout {
  width: min(1240px, calc(100% - 2rem)) !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: minmax(320px, 0.95fr) minmax(420px, 1.05fr) !important;
  gap: 40px !important;
  align-items: start !important;
}

.contact-left,
.contact-right {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.contact-box {
  background: rgba(255,255,255,.45);
  border: 1px solid rgba(160, 140, 110, 0.18);
  border-radius: 13px;
  padding: 25px 25px;
  box-shadow: 0 12px 35px rgba(60, 45, 25, 0.08);
}

.contact-card {
  background: rgba(255,255,255,.95);
  border-radius: 24px;
  box-shadow: 0 12px 35px rgba(60, 45, 25, 0.08);
}

.contact-info h1 {
  font-size:2.5rem;
  color: rgb(56, 87, 74);
}

.contact-info .lead {
  color: #5a4b3c;
  max-width: 100%;
}

.contact-card h3,
.contact-card p,
.contact-card a {
  color: #2f2418;
}

.form-card {
  background: #fff;
  padding: 36px 30px;
  border-radius: 24px;
}


@media (max-width: 980px) {
  .container.contact-layout {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  .hero-contact {
    padding: 4rem 0 2.5rem;
  }

  .contact-info h1 {
    font-size: 1.8rem;
  }

  .form-card {
    padding: 24px 18px;
  }

  .map-box {
    padding: 18px;
  }
}

@media (max-width: 480px) {
  .hero-contact {
    padding: 3rem 0 2rem;
  }

  .contact-box {
    padding: 18px 14px;
  }

  .contact-info h1 {
    font-size: 1.5rem;
  }

  .map-frame {
    height: 180px;
    border-radius: 12px;
  }
}

/* ===================
== Map Google map ==*/

/* ESPACE ENTRE FORMULAIRE ET CARTE */

/* Pleine largeur dans la grille 2 colonnes */
.contact-map-full {
  grid-column: 1 / -1;
}

/* On garde un contenu centré à l'intérieur */
.contact-map-full .map-box {
  width: min(1240px, 100%);
  margin: 0 auto;
}

/* CARTE */
.map-box {
  padding: 28px;
}

/* HEADER */
.map-header {
  margin-bottom: 18px;
  text-align: center;
}

.map-header h3 {
  margin: 0 0 8px;
  font-size: 1.5rem;
  color: #2f2418;
}

.map-header p {
  margin: 0;
  color: #5b4d3f;
}

/* MAP */
.map-frame {
  width: 100%;
  height: 200px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid #e6ddd1;
  background: #f4efe7;
}

.map-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* BOUTON */
.map-actions {
  margin-top: 20px;
  text-align: center;
}

/* =================== */

.eyebrow{display:inline-flex; align-items:center; gap:.55rem; padding:.45rem 1.0rem; border-radius:999px; background:var(--sand); color:var(--accent-2); font-size:.95rem; margin-bottom:1rem}

.eyebrow::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--accent)}

h1,h2,h3{font-family:'Open Sans', Helvetica, sans-serif; line-height:1.15;margin:0 0 .75rem}
h1{font-size:clamp(1.8rem, 4.0vw, 3.0rem)}
.bg-h1 {background-color: rgba(56, 87, 74, 0.7);color: #fff;font-weight: 400;border-radius: 13px;padding: 0.5rem 1rem;}
h2{font-size: clamp(1.9rem, 3vw, 2.5rem);color:rgb(56, 87, 74);}
h3{font-size:1.5rem;color:rgb(56, 87, 74);}
.h2-white {color:#fff;}
.lead{font-size:1.1rem; color: #fff;}
.lead-reiki {max-width:100%;color:#fff;}
.hero-card, .card, .panel{
  background:var(--paper);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.form-panel {
  background-color:#fff;
  border-radius:var(--radius);}

.color-lead {color:var(--text);}

.reiki {color: #fff;}
.reiki {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0rem 1rem;
  padding-left: 1.2rem;
}

.hero-card img{width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius)}
.hero-cta{display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1.3rem}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.22rem 1.2rem; border-radius:8px; border:1px solid transparent; font-weight:650;
  transition:.2s ease; cursor:pointer
}
.btn-primary{background:var(--accent-2); color:#fff}
.btn-primary:hover{filter:brightness(1.24)}
.btn-secondary{background:transparent; border-color:var(--line); color:var(--accent-2)}
.btn-secondary:hover{border-color:var(--accent-2)}
.btn-top {background-color: rgba(255, 255, 255, 0.5);}
.section{padding:2.6rem 0}
.section-alt{background:linear-gradient(180deg, rgba(239,227,209,.35), rgba(239,227,209,0));}
.section-nat {background: rgb(95, 136, 107);}
.section-marge {padding-top: 7rem;}
.section-beige {background-color: #fffdfa;}
.section.section-geo {padding-top:0;}
.mt-marge {margin-top:0.2rem;}
.grid-2,.grid-3,.grid-4{display:grid; gap:1.3rem}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card img.cover,.panel img.cover{width:100%; height:100%; object-fit:cover}
.panel.media-card img {box-shadow:0 1px 3px rgba(0, 0, 0, 0.3);}
.card .content, .panel .content{padding:1.2rem 1.25rem}
.stats{display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin-top:1.4rem}
.stat{padding:1rem; background:#fff; border:1px solid var(--line); border-radius:18px; text-align:center}
.stat strong{display:block; font-size:1.3rem; color:var(--accent-2)}
.checklist{padding-left:1.2rem}
.checklist li{margin-bottom:.55rem}
.feature-split{display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; align-items:stretch}
.media-card{overflow:hidden}
.media-card img{width:100%; height:100%; object-fit:cover;border-radius: 13px 13px 0 0;}
.banner{
  padding:1.4rem; border-radius:var(--radius);
  background:transparent; border:3px solid rgb(95, 136, 107);
  color:#fff;
}
.banner p{color: rgb(56, 87, 74);}
.quote{padding:1rem 1.2rem; border-left:4px solid rgb(56, 87, 74); background:rgba(239,227,209,.72); border-radius:16px}
.price-box{padding:1.2rem; border-radius:20px; background:#fff; border:1px solid var(--line)}
.price{font-size:2.15rem; font-weight:800; color:var(--accent-2)}
.badge{display:inline-block; padding:.3rem .65rem; border-radius:999px; background:var(--sand); color:var(--accent-2); font-size:.9rem}
.room-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:2.2rem}
.room{overflow:hidden}
.room img{width:100%; aspect-ratio:4/3; object-fit:cover}
.room .content{padding:1rem}
.form-wrap{display:grid; grid-template-columns:.9fr 1.1fr; gap:1.5rem}
.form-card{background:#fcfcfc;padding:1.25rem}
.contactMe .form-row{margin-bottom:1rem}
.contactMe .title{font-weight:600; color:var(--accent-2); margin-bottom:.35rem}
.contactMe .field, .contactMe select, .contactMe textarea{
  width:100%; padding:.95rem 1rem; border-radius:7px; border:1px solid rgba(56, 87, 74, 0.5);background:#fff; font:inherit; color:var(--text)
}
.contactMe textarea{min-height:180px; resize:vertical}
.checkbox-radio label{display:inline-block}
.checkbox-radio input{margin-right:.55rem}
.footer{margin-top:3rem; padding:2.5rem 0 3rem; border-top:1px solid var(--line); background:#f5f0e8}
.footer-grid{display:grid; grid-template-columns:1.15fr .85fr .85fr; gap:1.5rem}
.footer ul{padding:0; margin:0; list-style:none}
.footer ul li{margin:.45rem 0; color:var(--muted);margin:0;padding:0;}
.small{font-size:.95rem; color:var(--muted)}
.center{text-align:center}
.marge {margin-top: 0.230rem;}
.mt-0{margin-top:0}.mt-1{margin-top:1rem}.mt-2{margin-top:1.6rem}.mt-3{margin-top:2.2rem}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:1.6rem}
@media (max-width: 980px){
  .hero-grid,.feature-split,.form-wrap,.footer-grid,.grid-2,.grid-3,.grid-4,.room-grid,.stats{grid-template-columns:1fr}
  .menu{display:none}
  .menu.open{display:flex; position:absolute; left:1rem; right:1rem; top:76px; padding:1rem; border:1px solid var(--line); background:var(--paper); border-radius:18px; box-shadow:var(--shadow); flex-direction:column; align-items:flex-start}
  .mobile-toggle{display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border:1px solid var(--line); border-radius:14px; background:#fff}
  .brand img{width:132px}
}


/* ======================
== Calendrier évènements ==
=========================*/

.hero-events{
  background:linear-gradient(rgba(54,84,71,.05), rgba(54,84,71,.05)), url('/assets/images/calendrier-marche-foire-salon-formation-stage.webp') center center / cover no-repeat;
}

.section{padding:4rem 0}
.section-events{padding-top:2.5rem}

.admin-card,
.event-empty,
.event-detail-panel{
  background:#d2d2d2;
  border:1px solid #afa598;
  border-radius:13px;
}

.event-chip{
  display: inline-flex;
  align-items: center;
  padding: .5rem .85rem;
  border-radius: 5px;
  background: var(--sand);
  color: var(--accent-2);
  font-size: .82rem;
  font-weight: 600;
  margin-bottom: .8rem;
  height: 30px;
  border: 1px solid #afa598;
}

.event-detail-panel{
  margin-top:2rem;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  overflow:hidden;
  position:relative;
}

.event-detail-panel-hero{
  background:#f6edf1;
}

.event-detail-hero-media{
  position:relative;
  height:clamp(260px, 40vw, 360px);
  background:#ead9e2;
}

.event-detail-hero-media img{
  display:block;
  width:100%;
  height:100%;
  min-height:420px;
  max-height:620px;
  object-fit:cover;
  object-position:center;
}

.event-detail-overlay{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background-color: #e3ddd5;
  padding:1.25rem;
  gap:1rem;
}

.event-detail-panel.has-media .event-detail-overlay{
  position:absolute;
  inset:0;
}

.event-detail-panel.no-media .event-detail-hero-media{
  display:none;
}

.event-detail-panel.no-media{
  background:#f6edf1;
}

.event-detail-topbar{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  width:100%;
}

.calendar-toolbar{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:1.5rem;
}

.bloc-center {
  background: rgba(255, 255, 255, 0.7);
  padding:1rem;
  border-radius:7px;
  }

.calendar-view-switch,
.calendar-nav{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}

.calendar-view-switch a,
.calendar-nav a,
.btn-cal{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:26px;
  padding:.5rem 1rem;
  border-radius:5px;
  border:1px solid #c2c0bc;
  background:var(--paper);
  transition:.2s ease;
}

.calendar-view-switch a {font-size:0.900rem;}

.calendar-view-switch a.active,
.btn-primary{
  background:#4b8069;
  color:#fff;
  border-color:#4b8069;
}

.btn-secondary:hover,
.calendar-view-switch a:hover,
.calendar-nav a:hover{
  box-shadow:var(--shadow);
}

.calendar-grid-head,
.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:.8rem;
}

.calendar-grid-head{
  margin-bottom:.8rem;
  color:var(--muted);
  font-weight:600;
}

.calendar-day{
  min-height:150px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:10px;
  padding:.9rem;
  box-shadow:var(--shadow);
}

.calendar-day.has-events{
  background: #d8d7d4;
  border-color: #ada497;
}

.calendar-day.is-muted{opacity:.55}

.calendar-day-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:.65rem;
  font-weight:700;
}

.calendar-day-body{
  display:flex;
  flex-direction:column;
  gap:.45rem;
}

.calendar-event-link{
  display:block;
  padding:.45rem .55rem;
  border-radius:10px;
  background: rgb(255, 253, 245);
  color:#ab281b;
  font-size:.800rem;
  font-weight:600;
  text-decoration:none;
  border: 1px solid rgb(175, 165, 152);
}

.calendar-event-link:hover{
  background:#fff;
  text-decoration:none;
}

.calendar-more{
  display:block;
  padding:.35rem .1rem 0;
  font-size:.85rem;
  color:#8f2f62;
}

.week-grid{
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:1rem;
}

.week-day-column{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:18px;
  padding:0.700rem;
  box-shadow:var(--shadow);
}

.week-day-column.has-events{
  background: #d8d7d4;
  border-color: #ada497;
}

.week-day-column h2{
  font-size:1.100rem;
}

.week-event-link{
  background-color: rgb(255, 255, 255);
  margin-top:.65rem;
}

.events-listing-simple{
  margin-top:1rem;
}

.event-day-group-simple + .event-day-group-simple{
  margin-top:1.6rem;
}

.event-day-group-simple h2 {font-size:1.7rem;}

.day-links-list{
  display:flex;
  flex-direction:column;
  gap:.6rem;
  margin-top:.8rem;
}

.event-detail-panel{
  margin-top:2rem;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  overflow:hidden;
  position:relative;
}

.event-detail-head h2 {
  margin: 0 0 .7rem 0;
  font-size: 1.5rem;
  color: #ab281b;
}



.event-meta.margin-event {margin-top: 0.1rem;}

.event-detail-content {
  margin:0;
}

.event-detail-content p{margin-top:0.5rem;}

.event-meta {margin:0;}

.event-meta,
.muted{color:#111;}

.event-chip-market{
  background: #fff;
  color: #6a4516;
  font-size: 1.2rem;
}
.event-chip-atelier{background:#eaf4ea;color:#2d6a4f}
.event-chip-formation{background:#e8f0fb;color:#1d4e89}
.event-chip-stage{background:#fbe9ef;color:#9d174d}
.event-chip-foire{background:#fff;color:#9a5714}
.event-chip-salon{background:#f3ecfb;color:#6b21a8}
.event-chip-retreat{background:#eef7f1;color:#166534}
.event-chip-other{background:#f1f5f9;color:#334155}

.admin-events-body {
  min-height: 100vh;
  background: linear-gradient(180deg, #f0ede7 0%, #f0efec 100%);
  padding-top: 100px;
}

.admin-shell{
  width:min(1000px, calc(100% - 2rem));
  margin:0 auto;
  padding:5rem 4rem;
  background-color:#c1dbe5;
  border-radius:13px;
}

.admin-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.5rem;
}

.admin-panel-head h1{
  font-size:2.2rem;
  background-color:#fff;
  padding:.5rem 1.5rem;
  border-radius:13px;
  color:#116686;
}

.admin-card h2{
  font-size:1.55rem;
  color:#c73636;
}

.admin-grid{
  display:grid;
  gap:1.5rem;
}

.admin-grid-stacked{
  grid-template-columns:1fr;
}

.admin-grid-stacked > .admin-card{
  width:100%;
}

.admin-card{padding:1.35rem}


.admin-image-preview{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
  padding:.8rem 1rem;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f5f5f5;
}

.admin-image-preview img{
  display:block;
  width:180px;
  max-width:100%;
  height:auto;
  border-radius:10px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

.admin-remove-image{
  display:flex;
  align-items:center;
  gap:.55rem;
  font-weight:600;
}

.admin-remove-image input[type="checkbox"]{
  width:auto;
  margin:0;
}


.admin-form{display:flex;flex-direction:column;gap:1rem}
.form-row{display:grid;gap:1rem}
.form-row-2{grid-template-columns:repeat(2, minmax(0, 1fr))}
.form-row-3{grid-template-columns:repeat(3, minmax(0, 1fr))}
.form-row-4{grid-template-columns:repeat(4, minmax(0, 1fr))}
.form-row label{display:flex;flex-direction:column;gap:.45rem;font-weight:600}
.form-row input,
.form-row select,
.form-row textarea{
  width:100%;
  padding:.35rem .9rem;
  border:1px solid #c2aeae;
  border-radius:5px;
  background:#fff;
  color:var(--text);
  font:inherit;
}

.form-checks{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.65rem;
}

.admin-actions{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
}

.admin-flash{
  margin-bottom:1rem;
  padding:.95rem 1rem;
  border-radius:14px;
  border:1px solid var(--line);
  background:#c0e9a9;
}

.admin-flash.success{border-color:#a6c3a5}
.admin-flash.error{border-color:#d0a0a0}

.admin-table-wrap{overflow:auto}

.admin-table{
  width:100%;
  border-collapse:collapse;
}

.admin-table th,
.admin-table td{
  padding:.85rem;
  border-bottom:1px solid #a0a0a0;
  text-align:left;
  vertical-align:top;
}

.admin-table-actions{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
}

.status-badge{
  display:inline-flex;
  padding:.25rem .55rem;
  border-radius:999px;
  font-size:.82rem;
  font-weight:600;
  background:var(--sand);
}

.status-published{color:#2e5f49}
.status-draft{color:#6f5a29}
.status-cancelled{color:#8c3f3f}

.btn-danger{
  background:#c53535;
  color:#fff;
  border:0;
  font-weight:400;
  line-height:1;
}

.btn-danger:hover{background:#da3838}

.admin-actions .btn-create{background-color:#276d88;color:#fff;border:0}
.admin-actions .btn-create:hover{background-color:#338daf;color:#fff;border:0}
.admin-panel-head .btn-deco{background-color:#d64e4e;color:#fff;border:0}
.admin-panel-head .btn-deco:hover{background-color:#b84c4c;border:0}

.admin-table-actions .btn-edit{
  background-color:#206d9c;
  color:#fff;
  font-weight:400;
  height:26px;
  padding:.2rem 1rem;
  border:0;
  margin:0;
}

.admin-table-actions .btn-edit:hover{background-color:#2984bc}

.event-detail-topbar{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  width:100%;
}

.event-detail-head-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.7rem;
  width:100%;
}

.event-detail-head-top .event-chip{
  margin-bottom:0;
}

.event-detail-close{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:26px;
  padding:.2rem 1rem;
  border-radius:5px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(0,0,0,.08);
  color:#8f2f62;
  text-decoration:none;
  font-weight:700;
  box-shadow:var(--shadow);
  backdrop-filter:blur(4px);
  white-space:nowrap;
}



.form-checks{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.75rem;
  align-self:end;
  min-height:100%;
}

.form-checks label{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:.55rem;
  font-weight:600;
  margin:0;
}

.form-checks input[type="checkbox"]{
  width:auto;
  margin:0;
  flex:0 0 auto;
}


.event-detail-close:hover{
  box-shadow:var(--shadow);
  text-decoration:none;
}

.event-detail-layout{
  display:grid;
  grid-template-columns:minmax(0, 1.35fr) minmax(340px, 1fr);
  gap:2rem;
  align-items:stretch;
}

.event-detail-main{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
}

.event-detail-media{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:100%;
}

.event-detail-media img{
  display:block;
  width:100%;
  max-width:480px;
  height:250px;
  border-radius:13px;
  object-fit:cover;
  object-position:center;
  box-shadow:var(--shadow);
  border:1px solid var(--line);
}

@media (max-width: 1100px){
  .week-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .calendar-grid,
  .calendar-grid-head{
    grid-template-columns:repeat(7, minmax(0, 1fr));
  }

  .admin-grid{
    grid-template-columns:1fr;
  }

  .form-row-4{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .form-row-3{grid-template-columns:1fr}

  .calendar-toolbar{
    flex-direction:column;
    align-items:stretch;
    gap:.75rem;
  }

  .calendar-view-switch,
  .calendar-nav{
    justify-content:center;
  }
}


@media (max-width: 900px){
  .event-detail-layout{
    grid-template-columns:1fr;
  }

  .event-detail-main{
    order:2;
  }

  .event-detail-media{
    order:1;
  }

  .event-detail-panel.has-media .event-detail-hero-media{
    height:auto;
    max-height:60vh;
  }

  .event-detail-panel.has-media .event-detail-hero-media img{
    min-height:0;
    max-height:60vh;
  }

  .event-detail-panel.has-media .event-detail-overlay,
  .event-detail-panel.no-media .event-detail-overlay{
    position:static;
    inset:auto;
    margin-top:0;
    min-height:0;
    padding:1rem;
    background:transparent;
    justify-content:flex-start;
  }

  .event-detail-main-overlay{
    width:100%;
  }
}

@media (max-width: 760px){
  .week-grid,
  .form-row-2,
  .form-row-4{
    grid-template-columns:1fr;
  }

  /* ===== Mini-calendrier mois compact ===== */
  .calendar-grid,
  .calendar-grid-head{
    grid-template-columns:repeat(7, minmax(0, 1fr));
    gap:.3rem;
  }

  .calendar-grid-head{
    display:grid;
    font-size:.7rem;
    margin-bottom:.4rem;
    text-align:center;
  }

  .calendar-day{
    min-height:auto;
    padding:.35rem .25rem;
    border-radius:6px;
    box-shadow:none;
    text-align:center;
  }

  .calendar-day-top{
    justify-content:center;
    margin-bottom:.2rem;
    font-size:.8rem;
  }

  .calendar-day-top span{
    font-size:.8rem;
  }

  /* Masquer les titres d'événements, montrer un point coloré */
  .calendar-day-body .calendar-event-link{
    font-size:0;
    padding:0;
    width:8px;
    height:8px;
    border-radius:50%;
    background:#ab281b;
    border:none;
    display:inline-block;
    margin:1px;
  }

  .calendar-day-body{
    flex-direction:row;
    justify-content:center;
    gap:2px;
    flex-wrap:wrap;
  }

  .calendar-more{
    font-size:0;
    padding:0;
    display:inline-block;
    width:8px;
    height:8px;
    border-radius:50%;
    background:#8f2f62;
  }

  /* ===== Semaine compact ===== */
  .week-day-column{
    border-radius:12px;
    padding:.6rem;
  }

  .week-day-column h2{
    font-size:1rem;
  }

  .bloc-center{
    padding:.7rem;
  }
}

@media (max-width: 640px){
  .event-detail-panel.has-media .event-detail-hero-media{
    height:auto;
    max-height:50vh;
  }

  .event-detail-overlay{
    margin-top:0;
    min-height:0;
    padding:.85rem;
  }

  .event-detail-main-overlay{
    padding:1rem;
  }

  .event-detail-head h2{
    font-size:1.5rem;
  }
}

/* ===== Modal fiche événement ===== */
.event-modal[hidden]{display:none}
.event-modal{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem 1rem;
}
.event-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(20,15,18,.35);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.event-modal-dialog{
  position:relative;
  width:min(720px, 100%);
  max-height:90vh;
  overflow:auto;
  border-radius:18px;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
  background:#f6edf1;
  isolation:isolate;
}
.event-modal.has-image .event-modal-dialog::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--event-modal-bg-image);
  background-size:cover;
  background-position:center;
  filter:blur(18px) saturate(1.1);
  transform:scale(1.1);
  z-index:-2;
}
.event-modal.has-image .event-modal-dialog::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(246,237,241,.72);
  z-index:-1;
}
.event-modal.has-color .event-modal-dialog{
  background:var(--event-modal-bg-color);
}
.event-modal-close{
  position:absolute;
  top:.6rem;
  right:.8rem;
  z-index:3;
  width:36px;
  height:36px;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.9);
  color:#2b2b2b;
  font-size:1.4rem;
  line-height:1;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.15);
}
.event-modal-close:hover{background:#fff}
.event-modal-content .event-detail-panel{
  margin-top:0;
  box-shadow:none;
  border:none;
  background:transparent;
}
.event-modal-content .event-detail-close{display:none}
body.event-modal-open{overflow:hidden}
@media (max-width:640px){
  .event-modal{padding:0}
  .event-modal-dialog{
    width:100%;
    max-height:100vh;
    height:100vh;
    border-radius:0;
  }
}