/* =========================================================
   GÎTES DE L'ISLE - STYLE PREMIUM
   Toutes les zones principales sont commentées dans index.html
   ========================================================= */

:root{
  --bg:#f4efe3;
  --bg-soft:#f7f2e8;
  --surface:#fffdf8;
  --surface-soft:#f6efe0;
  --text:#24413b;
  --muted:#60716a;
  --line:#ddd0ad;
  --brand:#c8a55d;
  --brand-2:#b68a42;
  --brand-dark:#24413b;
  --accent:#efe0b0;
  --shadow:0 20px 50px rgba(36,65,59,.12);
  --radius:24px;
  --radius-sm:16px;
  --container:1200px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--text);
  background:var(--surface);
  line-height:1.6;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button,input,textarea{font:inherit}

.container{
  width:min(calc(100% - 32px), var(--container));
  margin-inline:auto;
}

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

.topbar{
  background:linear-gradient(90deg, #24413b, #30524a 58%, #b68a42);
  color:#fff;
  font-size:.95rem;
}
.topbar__inner{
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.topbar__inner p{margin:0}
.topbar__cta{
  font-weight:700;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
}

.site-header{
  position:sticky;
  top:0;
  z-index:1200;
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(15,23,42,.06);
}
.header__inner{
  min-height:78px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.logo{
  display:flex;
  align-items:center;
  gap:12px;
}
.logo__image{
  display:block;
  height:118px;
  width:auto;
  max-width:min(488px, 82vw);
  object-fit:contain;
}
.logo__mark{
  width:46px;height:46px;
  display:grid;place-items:center;
  border-radius:14px;
  background:linear-gradient(135deg, var(--brand), var(--brand-2));
  color:#fff;font-weight:800;
  box-shadow:var(--shadow);
}
.logo__text{display:flex;flex-direction:column;line-height:1.2}
.logo__text small{color:var(--muted)}

.main-nav{
  display:flex;
  align-items:center;
  gap:22px;
}
.main-nav a{
  color:var(--muted);
  font-weight:600;
}
.main-nav a:hover{color:var(--text)}
.nav-toggle{
  display:none;
  width:48px;height:48px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:14px;
  padding:0;
}
.nav-toggle span{
  display:block;
  width:18px;height:2px;
  background:var(--text);
  margin:4px auto;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:48px;
  padding:12px 22px;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:800;
  transition:.2s ease;
  cursor:pointer;
}
.btn:hover{transform:translateY(-1px)}
.btn--primary{
  background:linear-gradient(135deg, var(--brand), var(--brand-2));
  color:#fff;
  box-shadow:0 12px 28px rgba(29,78,216,.18);
}
.btn--ghost{
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.08);
  color:#fff;
}
.btn--sm{min-height:42px;padding:10px 16px}
.btn--full{width:100%}

.hero{
  position:relative;
  min-height:calc(100svh - 124px);
  display:flex;
  align-items:center;
  color:#fff;
  background:
    radial-gradient(circle at top left, rgba(200,165,93,.18), transparent 34%),
    radial-gradient(circle at right center, rgba(36,65,59,.28), transparent 28%),
    linear-gradient(135deg, #203630 0%, #24413b 48%, #2e4f48 100%);
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(rgba(255,255,255,.02), rgba(255,255,255,.02)),
    url("../img/hero-gitesdelisle.jpg") center/cover no-repeat;
  opacity:.15;
}
.hero__overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.25));
}
.hero__content{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  align-items:center;
  gap:48px;
  padding:72px 0;
}
.eyebrow{
  display:inline-block;
  margin:0 0 10px;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:inherit;
  font-size:.9rem;
  font-weight:800;
  letter-spacing:.02em;
}
.hero h1{
  margin:0 0 18px;
  font-size:clamp(2.2rem, 5vw, 4.4rem);
  line-height:1.02;
  letter-spacing:-.03em;
}
.lead{
  font-size:1.08rem;
  color:rgba(255,255,255,.88);
  max-width:60ch;
}
.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin:24px 0;
}
.hero__reassurance{
  list-style:none;
  margin:20px 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  color:rgba(255,255,255,.92);
  font-weight:700;
}
.hero__card{
  display:flex;
  justify-content:flex-end;
}
.booking-card{
  width:min(100%, 420px);
  background:rgba(255,255,255,.96);
  color:var(--text);
  border-radius:30px;
  padding:28px;
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.2);
}
.booking-card h2{margin:6px 0 10px;font-size:1.6rem}
.booking-card__eyebrow{margin:0;color:var(--brand);font-weight:800}
.booking-card__note{color:var(--muted);font-size:.92rem;margin-top:12px}

.proof-strip{
  margin-top:-36px;
  position:relative;
  z-index:3;
}
.proof-strip__grid{
  background:#fff;
  border:1px solid rgba(15,23,42,.06);
  border-radius:26px;
  box-shadow:var(--shadow);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  padding:22px;
}
.proof-strip__grid article{
  padding:8px 10px;
}
.proof-strip__grid strong{
  display:block;
  margin-bottom:4px;
}
.proof-strip__grid span{
  color:var(--muted);
  font-size:.95rem;
}

.section{
  padding:90px 0;
}
.section--alt{
  background:var(--surface-soft);
}
.section-heading{
  max-width:760px;
  margin-bottom:34px;
}
.section-heading h2{
  margin:6px 0 12px;
  font-size:clamp(1.8rem, 4vw, 3rem);
  line-height:1.08;
  letter-spacing:-.02em;
}
.section-heading p:last-child{margin:0;color:var(--muted)}

.cards-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:22px;
}
.listing-card{
  overflow:hidden;
  background:#fff;
  border-radius:26px;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:var(--shadow);
}
.listing-card__media{
  aspect-ratio:16/10;
}
.media{
  background:
    linear-gradient(135deg, rgba(15,118,110,.18), rgba(29,78,216,.22)),
    linear-gradient(180deg, #dfe7f6, #f7fbff);
}
.media--01,.media--02,.media--03,.media--04,.media--05,.media--06{
  position:relative;
}
.media--01::after,.media--02::after,.media--03::after,.media--04::after,.media--05::after,.media--06::after{
  content:"Image logement";
  position:absolute;
  inset:auto 18px 18px auto;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.84);
  color:var(--text);
  font-weight:800;
  font-size:.82rem;
}
.listing-card__content{
  padding:22px;
}
.listing-card__content h3{
  margin:0 0 8px;
  font-size:1.25rem;
}
.listing-card__content p{
  margin:0 0 12px;
  color:var(--muted);
}
.listing-card__content ul{
  margin:0 0 16px 18px;
  padding:0;
  color:var(--muted);
}
.text-link{
  color:var(--brand-2);
  font-weight:800;
}

.benefits-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:22px;
}
.benefit-card{
  background:#fff;
  border-radius:24px;
  padding:24px;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:var(--shadow);
}
.benefit-card__icon{
  display:inline-grid;
  place-items:center;
  width:54px;height:54px;
  border-radius:18px;
  background:linear-gradient(135deg, rgba(15,118,110,.12), rgba(29,78,216,.10));
  font-size:1.5rem;
  margin-bottom:14px;
}
.benefit-card h3{margin:0 0 8px}
.benefit-card p{margin:0;color:var(--muted)}

.urgency{
  padding-top:0;
}
.urgency-box{
  border-radius:34px;
  padding:40px;
  color:#fff;
  background:
    radial-gradient(circle at 0% 0%, rgba(255,255,255,.08), transparent 28%),
    linear-gradient(135deg, #0f172a, #13233e 55%, #1d4ed8);
  box-shadow:var(--shadow);
}
.urgency-box h2{
  margin:6px 0 12px;
  font-size:clamp(1.8rem, 4vw, 3rem);
  line-height:1.05;
}
.urgency-box p{max-width:60ch;color:rgba(255,255,255,.88)}

.reviews-widget{
  background:#fff;
  border-radius:28px;
  padding:22px;
  box-shadow:var(--shadow);
  border:1px solid rgba(15,23,42,.06);
}

.reservation-section{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:24px;
  align-items:start;
}
.reservation-panel__box{
  background:linear-gradient(180deg, #24413b, #2f524b);
  color:#fff;
  border-radius:28px;
  padding:28px;
  box-shadow:var(--shadow);
}
.reservation-panel__box h3{margin-top:0}
.reservation-panel__box ul{margin:0;padding-left:18px}
.reservation-copy p:last-child{color:var(--muted)}

.faq-list{
  display:grid;
  gap:16px;
}
.faq-list details{
  background:#fff;
  border-radius:20px;
  padding:20px 22px;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:var(--shadow);
}
.faq-list summary{
  cursor:pointer;
  font-weight:800;
}
.faq-list p{
  margin:12px 0 0;
  color:var(--muted);
}

.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
  align-items:start;
}
.contact-list{
  margin:18px 0 0;
  padding-left:18px;
  color:var(--muted);
}
.contact-form{
  background:#fff;
  padding:26px;
  border-radius:26px;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:var(--shadow);
}
.contact-form label{
  display:block;
  margin-bottom:14px;
  font-weight:700;
}
.contact-form input,
.contact-form textarea{
  width:100%;
  margin-top:8px;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 16px;
}
.form-note{color:var(--muted);font-size:.92rem}

.site-footer{
  padding:34px 0 110px;
  background:linear-gradient(180deg, #24413b, #1d322e);
  color:rgba(255,255,255,.88);
}
.footer__inner{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}
.footer__links{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}
.footer__links a{color:#fff}

.sticky-booking{
  position:fixed;
  left:12px;
  right:12px;
  bottom:12px;
  z-index:1100;
  display:none;
  min-height:56px;
  border-radius:18px;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg, var(--brand), var(--brand-2));
  color:#fff;
  font-weight:900;
  box-shadow:0 20px 35px rgba(15,23,42,.24);
}

/* Popup */
.popup-backdrop{
  position:fixed; inset:0;
  background:rgba(2,8,23,.56);
  z-index:1300;
  opacity:0; visibility:hidden;
  transition:.2s ease;
}
.popup{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:1301;
  width:min(100% - 24px, 390px);
  background:#fff;
  border-radius:28px;
  box-shadow:0 24px 60px rgba(2,8,23,.28);
  padding:24px;
  border:1px solid rgba(15,23,42,.08);
  display:none;
}
.popup.is-visible{display:block}
.popup-backdrop.is-visible{opacity:1;visibility:visible}
.popup__close{
  position:absolute;
  top:14px; right:14px;
  width:40px;height:40px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
  font-size:1.4rem;
}
.popup__eyebrow{
  margin:0 0 6px;
  color:var(--brand);
  font-weight:800;
}
.popup h2{
  margin:0 0 8px;
  font-size:1.7rem;
  line-height:1.08;
}
.popup p{margin:0 0 12px}
.popup__timer{
  min-height:24px;
  color:var(--brand-dark);
  font-weight:700;
}
.popup__label{
  display:block;
  font-weight:700;
  margin:8px 0 6px;
}
.popup__input{
  width:100%;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px 16px;
  margin-bottom:12px;
}
.popup__privacy{
  color:var(--muted);
  font-size:.88rem;
  margin-top:10px;
}

.thankyou-body{
  min-height:100svh;
  background:
    radial-gradient(circle at top left, rgba(29,78,216,.18), transparent 32%),
    linear-gradient(180deg, #f8fafc, #eef3fb);
}
.thankyou{
  min-height:100svh;
  display:grid;
  place-items:center;
  padding:24px;
}
.thankyou__card{
  width:min(100%, 760px);
  background:#fff;
  border-radius:32px;
  box-shadow:var(--shadow);
  padding:42px;
  border:1px solid rgba(15,23,42,.06);
}
.thankyou__card h1{
  margin:8px 0 12px;
  font-size:clamp(2rem, 4vw, 3.5rem);
  line-height:1.05;
}

@media (max-width: 1024px){
  .hero__content,
  .reservation-section,
  .contact-grid{
    grid-template-columns:1fr;
  }
  .cards-grid,
  .benefits-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .proof-strip__grid{
    grid-template-columns:repeat(2,1fr);
  }
}

.reservation-panel .btn--ghost{color:#fff}

@media (max-width: 768px){
  .topbar__inner{
    flex-direction:column;
    justify-content:center;
    padding:10px 0;
    text-align:center;
  }
  .nav-toggle{display:block}
  .logo__image{height:80px;max-width:325px}
  .main-nav{
    position:absolute;
    top:78px; left:16px; right:16px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    border-radius:20px;
    padding:16px;
    box-shadow:var(--shadow);
  }
  .main-nav.is-open{display:flex}
  .hero{
    min-height:auto;
  }
  .hero__content{
    padding:48px 0 38px;
    gap:28px;
  }
  .hero h1{
    font-size:clamp(2rem, 8vw, 3rem);
  }
  .btn--ghost{
    color:#fff;
  }
  .cards-grid,
  .benefits-grid,
  .proof-strip__grid{
    grid-template-columns:1fr;
  }
  .section{
    padding:72px 0;
  }
  .sticky-booking{display:flex}
  .site-footer{
    padding-bottom:94px;
  }
  .popup{
    left:12px;
    right:12px;
    bottom:84px;
    width:auto;
  }
  .urgency-box,
  .thankyou__card{
    padding:28px;
  }
}


/* =========================================================
   PAGES INTERNES SEO + LOGEMENTS
   Même langage visuel que la home premium validée
   ========================================================= */
.cards-grid--seo .listing-card__content{min-height:220px}
.listing-card--seo{display:flex;align-items:stretch}

.page-hero{
  position:relative;
  min-height:calc(72svh - 120px);
  display:flex;
  align-items:center;
  color:#fff;
  overflow:hidden;
  background:
    radial-gradient(circle at top left, rgba(200,165,93,.18), transparent 34%),
    radial-gradient(circle at right center, rgba(36,65,59,.28), transparent 28%),
    linear-gradient(135deg, #203630 0%, #24413b 48%, #2e4f48 100%);
}
.page-hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(rgba(255,255,255,.02), rgba(255,255,255,.02)),
    var(--hero-image, url("../img/placeholder-page.jpg")) center/cover no-repeat;
  opacity:.18;
}
.page-hero::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.25));
}
.page-hero__content{
  position:relative;
  z-index:2;
  padding:72px 0 60px;
}
.breadcrumb{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-bottom:14px;
  color:rgba(255,255,255,.86);
  font-size:.94rem;
}
.breadcrumb a{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:2px;
}
.page-hero h1{
  margin:0 0 14px;
  font-size:clamp(2.2rem, 4.8vw, 4.1rem);
  line-height:1.04;
}
.page-hero .lead{
  max-width:72ch;
  color:rgba(255,255,255,.92);
}

.content-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:24px;
  align-items:start;
}
.content-card,
.sidebar-card{
  background:#fff;
  border-radius:28px;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:var(--shadow);
  padding:28px;
}
.content-card h2,
.sidebar-card h3{
  margin-top:0;
}
.content-card p,
.sidebar-card p{
  color:var(--muted);
}
.feature-list{
  margin:0 0 18px 18px;
  padding:0;
  color:var(--muted);
}
.mini-links-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:18px;
}
.mini-link-card{
  display:block;
  background:#fff;
  border-radius:22px;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:var(--shadow);
  padding:18px 20px;
  font-weight:800;
  color:var(--brand-2);
}
.mini-link-card:hover{transform:translateY(-2px)}

@media (max-width: 1024px){
  .content-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 768px){
  .mini-links-grid{
    grid-template-columns:1fr;
  }
  .page-hero{
    min-height:auto;
  }
  .page-hero__content{
    padding:52px 0 40px;
  }
}


/* =========================================================
   GALERIES PHOTOS DES PAGES LOGEMENT
   ========================================================= */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:18px;
}
.gallery-card{
  background:#fff;
  border-radius:22px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.06);
  box-shadow:var(--shadow);
}
.gallery-card__image{
  aspect-ratio:4/3;
  background-image:
    linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)),
    var(--gallery-image, url("../img/placeholder-page.jpg"));
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
}
.gallery-card__caption{
  padding:12px 14px;
  color:var(--muted);
  font-size:.94rem;
}
@media (max-width: 1024px){
  .gallery-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}
@media (max-width: 768px){
  .gallery-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   LIGHTBOX GALERIE PHOTO
   ========================================================= */
.gallery-card{
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease;
}
.gallery-card:hover{
  transform:translateY(-4px);
}
.gallery-modal{
  position:fixed;
  inset:0;
  z-index:1500;
  display:none;
}
.gallery-modal.is-open{
  display:block;
}
.gallery-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(8,18,32,.82);
  backdrop-filter:blur(4px);
}
.gallery-modal__dialog{
  position:relative;
  z-index:2;
  width:min(1100px, calc(100% - 24px));
  margin:24px auto;
  background:linear-gradient(180deg, rgba(255,253,248,.98), rgba(255,249,239,.98));
  border-radius:28px;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.15);
}
.gallery-modal__topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 18px;
  background:linear-gradient(90deg, #24413b, #30524a 58%, #b68a42);
  color:#fff;
}
.gallery-modal__title{
  font-weight:800;
}
.gallery-modal__close{
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:1.35rem;
  cursor:pointer;
}
.gallery-modal__content{
  position:relative;
  display:grid;
  grid-template-columns:72px 1fr 72px;
  align-items:center;
  min-height:70svh;
  background:#111;
}
.gallery-modal__nav{
  display:flex;
  align-items:center;
  justify-content:center;
  height:100%;
  background:transparent;
  border:0;
  color:#fff;
  font-size:2rem;
  cursor:pointer;
}
.gallery-modal__image-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  min-height:70svh;
}
.gallery-modal__image{
  max-width:100%;
  max-height:calc(70svh - 36px);
  object-fit:contain;
  border-radius:18px;
  box-shadow:0 16px 40px rgba(0,0,0,.35);
  background:#fff;
}
.gallery-modal__caption{
  padding:14px 18px 20px;
  color:var(--muted);
  text-align:center;
  background:var(--surface);
}
@media (max-width: 768px){
  .gallery-modal__dialog{
    width:calc(100% - 12px);
    margin:6px auto;
    border-radius:20px;
  }
  .gallery-modal__content{
    grid-template-columns:56px 1fr 56px;
    min-height:56svh;
  }
  .gallery-modal__image-wrap{
    min-height:56svh;
    padding:10px;
  }
  .gallery-modal__image{
    max-height:calc(56svh - 20px);
  }
}


/* =========================================================
   FORMULAIRE DE CONTACT PHP
   ========================================================= */
.contact-status{
  display:none;
  margin-bottom:16px;
  padding:14px 16px;
  border-radius:16px;
  font-weight:700;
}
.contact-status.is-visible{
  display:block;
}
.contact-status--success{
  background:rgba(15,118,110,.10);
  border:1px solid rgba(15,118,110,.22);
  color:#0f766e;
}
.contact-status--error{
  background:rgba(220,38,38,.08);
  border:1px solid rgba(220,38,38,.18);
  color:#b91c1c;
}
.form-hidden-field{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}


/* Popup mobile compact */
@media (max-width: 768px){
  .popup{
    left: 10px;
    right: 10px;
    bottom: 90px;
    width: auto;
    max-width: none;
    padding: 16px;
    border-radius: 18px;
  }

  .popup h2{
    font-size: 1.25rem;
    line-height: 1.15;
    margin: 0 0 8px;
  }

  .popup p{
    font-size: 0.92rem;
    margin: 0 0 10px;
  }

  .popup__eyebrow{
    font-size: 0.8rem;
    margin-bottom: 4px;
  }

  .popup__input{
    padding: 12px 14px;
    font-size: 0.95rem;
    margin-bottom: 10px;
  }

  .popup .btn{
    min-height: 44px;
    padding: 10px 16px;
    font-size: 0.95rem;
  }

  .popup__privacy{
    font-size: 0.78rem;
    line-height: 1.35;
  }

  .popup__close{
    width: 34px;
    height: 34px;
    top: 10px;
    right: 10px;
    font-size: 1.1rem;
  }

  .popup__timer{
    min-height: 18px;
    font-size: 0.82rem;
  }
}


/* =========================================================
   POPUP + BANNIÈRE COOKIES PLUS COMPACTS
   ========================================================= */

/* Popup promo */
.popup{
  width: min(360px, calc(100% - 24px));
}

@media (max-width: 768px){
  .popup{
    left: 12px !important;
    right: 12px !important;
    bottom: 92px !important;
    width: auto !important;
    max-width: 340px !important;
    margin: 0 auto !important;
    padding: 14px !important;
    border-radius: 16px !important;
  }

  .popup h2{
    font-size: 1.1rem !important;
    line-height: 1.15 !important;
  }

  .popup p,
  .popup__timer,
  .popup__privacy{
    font-size: 0.8rem !important;
  }

  .popup__input{
    padding: 10px 12px !important;
    font-size: 0.92rem !important;
  }

  .popup .btn{
    min-height: 42px !important;
    font-size: 0.92rem !important;
    padding: 10px 14px !important;
  }

  .popup__close{
    width: 32px !important;
    height: 32px !important;
    font-size: 1rem !important;
  }
}

/* CookieYes */
#cookie-law-info-bar,
.cky-consent-container,
.cky-notice,
.cky-modal{
  max-width: min(420px, calc(100% - 24px)) !important;
}

@media (max-width: 768px){
  #cookie-law-info-bar,
  .cky-consent-container,
  .cky-notice,
  .cky-modal{
    width: calc(100% - 24px) !important;
    max-width: 340px !important;
    left: 12px !important;
    right: 12px !important;
    margin: 0 auto !important;
    border-radius: 16px !important;
  }

  .cky-notice-des,
  .cky-title,
  .cky-btn{
    font-size: 0.85rem !important;
  }

  .cky-btn{
    min-height: 40px !important;
    padding: 8px 12px !important;
  }
}

@media (max-width: 768px){
  .cky-banner-bottom .cky-consent-container{
    bottom: 12px !important;
  }
}


/* Sticky booking plus compact sur mobile */
@media (max-width: 768px){
  .sticky-booking{
    left: 50% !important;
    right: auto !important;
    bottom: 12px !important;
    transform: translateX(-50%) !important;
    width: auto !important;
    min-width: 220px !important;
    max-width: calc(100% - 32px) !important;
    padding: 0 18px !important;
    min-height: 50px !important;
    border-radius: 999px !important;
    font-size: 0.95rem !important;
    white-space: nowrap !important;
  }
}


/* =========================================================
   CORRECTION OVERFLOW MOBILE
   Empêche le scroll horizontal sur smartphone
   ========================================================= */
html, body{
  max-width: 100%;
  overflow-x: hidden;
}

body *{
  box-sizing: border-box;
}

img,
video,
iframe,
svg,
canvas{
  max-width: 100%;
  height: auto;
}

.site-header,
.topbar,
.hero,
.page-hero,
.proof-strip,
.section,
.site-footer,
.popup,
.gallery-modal,
.gallery-modal__dialog,
.sticky-booking,
.main-nav,
.container,
.cards-grid,
.benefits-grid,
.proof-strip__grid,
.reservation-section,
.content-grid,
.contact-grid,
.faq-list,
.gallery-grid,
.mini-links-grid,
.seo-links-grid{
  max-width: 100%;
}

@media (max-width: 768px){
  html, body{
    overflow-x: hidden !important;
  }

  .container{
    width: calc(100% - 24px) !important;
    max-width: 100% !important;
  }

  .topbar__inner,
  .header__inner,
  .hero__content,
  .proof-strip__grid,
  .cards-grid,
  .benefits-grid,
  .reservation-section,
  .content-grid,
  .contact-grid,
  .faq-list,
  .gallery-grid,
  .mini-links-grid,
  .seo-links-grid,
  .footer__inner{
    width: 100% !important;
    max-width: 100% !important;
  }

  .main-nav{
    width: auto !important;
    max-width: calc(100vw - 32px) !important;
    overflow-x: hidden !important;
  }

  .hero__actions,
  .footer__links,
  .hero__reassurance{
    max-width: 100%;
    overflow-x: hidden;
  }

  .popup,
  .gallery-modal__dialog,
  .sticky-booking{
    max-width: calc(100vw - 24px) !important;
  }

  .proof-strip{
    overflow-x: hidden;
  }
}


/* =========================================================
   V24 - Hébergements heroes + vignettes
   ========================================================= */

/* Heroes pages hébergements */
.page-hero--azul, .hero--azul, .accommodation-hero--azul{
  background-image: linear-gradient(180deg, rgba(16,54,47,.30), rgba(16,54,47,.55)), url("../img/gite-azul-hero.jpg") !important;
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important;
}
.page-hero--rojo, .hero--rojo, .accommodation-hero--rojo{
  background-image: linear-gradient(180deg, rgba(16,54,47,.30), rgba(16,54,47,.55)), url("../img/gite-rojo-hero.jpg") !important;
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important;
}
.page-hero--bw, .hero--bw, .accommodation-hero--bw{
  background-image: linear-gradient(180deg, rgba(16,54,47,.30), rgba(16,54,47,.55)), url("../img/gite-bw-hero.jpg") !important;
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important;
}
.page-hero--nature, .hero--nature, .accommodation-hero--nature{
  background-image: linear-gradient(180deg, rgba(16,54,47,.30), rgba(16,54,47,.55)), url("../img/gite-nature-hero.jpg") !important;
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important;
}
.page-hero--villa-etampes, .hero--villa-etampes, .accommodation-hero--villa-etampes{
  background-image: linear-gradient(180deg, rgba(16,54,47,.30), rgba(16,54,47,.55)), url("../img/villa-etampes-sur-marne-hero.jpg") !important;
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important;
}
.page-hero--mont-saint-pere, .hero--mont-saint-pere, .accommodation-hero--mont-saint-pere{
  background-image: linear-gradient(180deg, rgba(16,54,47,.30), rgba(16,54,47,.55)), url("../img/appartement-mont-saint-pere-hero.jpg") !important;
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important;
}

/* Vignettes galeries */
.gallery-thumb, .gallery-card__thumb, .gallery-item__thumb, .gallery__thumb{
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important;
}
.gite-azul .thumb--1, .gallery-azul .thumb--1, .azul .thumb--1 { background-image:url("../img/gite-azul-galerie-1.jpg") !important; }
.gite-azul .thumb--2, .gallery-azul .thumb--2, .azul .thumb--2 { background-image:url("../img/gite-azul-galerie-2.jpg") !important; }
.gite-azul .thumb--3, .gallery-azul .thumb--3, .azul .thumb--3 { background-image:url("../img/gite-azul-galerie-3.jpg") !important; }
.gite-azul .thumb--4, .gallery-azul .thumb--4, .azul .thumb--4 { background-image:url("../img/gite-azul-galerie-4.jpg") !important; }
.gite-azul .thumb--5, .gallery-azul .thumb--5, .azul .thumb--5 { background-image:url("../img/gite-azul-galerie-5.jpg") !important; }
.gite-azul .thumb--6, .gallery-azul .thumb--6, .azul .thumb--6 { background-image:url("../img/gite-azul-galerie-6.jpg") !important; }
.gite-azul .thumb--7, .gallery-azul .thumb--7, .azul .thumb--7 { background-image:url("../img/gite-azul-galerie-7.jpg") !important; }
.gite-azul .thumb--8, .gallery-azul .thumb--8, .azul .thumb--8 { background-image:url("../img/gite-azul-galerie-8.jpg") !important; }

.gite-rojo .thumb--1, .gallery-rojo .thumb--1, .rojo .thumb--1 { background-image:url("../img/gite-rojo-galerie-1.jpg") !important; }
.gite-rojo .thumb--2, .gallery-rojo .thumb--2, .rojo .thumb--2 { background-image:url("../img/gite-rojo-galerie-2.jpg") !important; }
.gite-rojo .thumb--3, .gallery-rojo .thumb--3, .rojo .thumb--3 { background-image:url("../img/gite-rojo-galerie-3.jpg") !important; }
.gite-rojo .thumb--4, .gallery-rojo .thumb--4, .rojo .thumb--4 { background-image:url("../img/gite-rojo-galerie-4.jpg") !important; }
.gite-rojo .thumb--5, .gallery-rojo .thumb--5, .rojo .thumb--5 { background-image:url("../img/gite-rojo-galerie-5.jpg") !important; }
.gite-rojo .thumb--6, .gallery-rojo .thumb--6, .rojo .thumb--6 { background-image:url("../img/gite-rojo-galerie-6.jpg") !important; }
.gite-rojo .thumb--7, .gallery-rojo .thumb--7, .rojo .thumb--7 { background-image:url("../img/gite-rojo-galerie-7.jpg") !important; }
.gite-rojo .thumb--8, .gallery-rojo .thumb--8, .rojo .thumb--8 { background-image:url("../img/gite-rojo-galerie-8.jpg") !important; }

.gite-bw .thumb--1, .gallery-bw .thumb--1, .bw .thumb--1 { background-image:url("../img/gite-bw-galerie-1.jpg") !important; }
.gite-bw .thumb--2, .gallery-bw .thumb--2, .bw .thumb--2 { background-image:url("../img/gite-bw-galerie-2.jpg") !important; }
.gite-bw .thumb--3, .gallery-bw .thumb--3, .bw .thumb--3 { background-image:url("../img/gite-bw-galerie-3.jpg") !important; }
.gite-bw .thumb--4, .gallery-bw .thumb--4, .bw .thumb--4 { background-image:url("../img/gite-bw-galerie-4.jpg") !important; }
.gite-bw .thumb--5, .gallery-bw .thumb--5, .bw .thumb--5 { background-image:url("../img/gite-bw-galerie-5.jpg") !important; }
.gite-bw .thumb--6, .gallery-bw .thumb--6, .bw .thumb--6 { background-image:url("../img/gite-bw-galerie-6.jpg") !important; }
.gite-bw .thumb--7, .gallery-bw .thumb--7, .bw .thumb--7 { background-image:url("../img/gite-bw-galerie-7.jpg") !important; }
.gite-bw .thumb--8, .gallery-bw .thumb--8, .bw .thumb--8 { background-image:url("../img/gite-bw-galerie-8.jpg") !important; }


/* =========================================================
   V26 - Vérification globale images
   Home + pages hébergements + galeries + vignettes
   ========================================================= */

/* Home : cartes logements */
.listing-card__media,
.media{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.media--01{ background-image:url("../img/gite-azul-hero.jpg") !important; }
.media--02{ background-image:url("../img/gite-rojo-hero.jpg") !important; }
.media--03{ background-image:url("../img/gite-bw-hero.jpg") !important; }
.media--04{ background-image:url("../img/gite-nature-hero.jpg") !important; }
.media--05{ background-image:url("../img/villa-etampes-sur-marne-hero.jpg") !important; }
.media--06{ background-image:url("../img/appartement-mont-saint-pere-hero.jpg") !important; }
.media--01::after,
.media--02::after,
.media--03::after,
.media--04::after,
.media--05::after,
.media--06::after,
.listing-card__media::after{
  display:none !important;
  content:none !important;
}

/* Home : hero */
.hero{
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* Pages hébergements : heroes */
.page-hero,
.page-hero::before{
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.page-hero--azul{ --hero-image:url('../img/gite-azul-hero.jpg') !important; }
.page-hero--rojo{ --hero-image:url('../img/gite-rojo-hero.jpg') !important; }
.page-hero--bw{ --hero-image:url('../img/gite-bw-hero.jpg') !important; }
.page-hero--verde{ --hero-image:url('../img/gite-nature-hero.jpg') !important; }
.page-hero--villa-etampes{ --hero-image:url('../img/villa-etampes-sur-marne-hero.jpg') !important; }
.page-hero--mont-saint-pere{ --hero-image:url('../img/appartement-mont-saint-pere-hero.jpg') !important; }

/* Galeries : cartes + miniatures */
.gallery-grid,
.gallery-card,
.gallery-card__image,
.gallery-thumb,
.gallery-card__thumb,
.gallery-item__thumb,
.gallery__thumb{
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.gallery-card__image{
  min-height: 220px;
}

/* Si la galerie repose sur la figure */
.gite-azul .thumb--1 .gallery-card__image, .gite-azul .thumb--1.gallery-card__image, .gite-azul .thumb--1.gallery-thumb, .gite-azul .thumb--1.gallery-card__thumb, .gite-azul .thumb--1.gallery-item__thumb, .gite-azul .thumb--1.gallery__thumb { background-image:url("../img/gite-azul-galerie-1.jpg") !important; }
.gite-azul .thumb--2 .gallery-card__image, .gite-azul .thumb--2.gallery-card__image, .gite-azul .thumb--2.gallery-thumb, .gite-azul .thumb--2.gallery-card__thumb, .gite-azul .thumb--2.gallery-item__thumb, .gite-azul .thumb--2.gallery__thumb { background-image:url("../img/gite-azul-galerie-2.jpg") !important; }
.gite-azul .thumb--3 .gallery-card__image, .gite-azul .thumb--3.gallery-card__image, .gite-azul .thumb--3.gallery-thumb, .gite-azul .thumb--3.gallery-card__thumb, .gite-azul .thumb--3.gallery-item__thumb, .gite-azul .thumb--3.gallery__thumb { background-image:url("../img/gite-azul-galerie-3.jpg") !important; }
.gite-azul .thumb--4 .gallery-card__image, .gite-azul .thumb--4.gallery-card__image, .gite-azul .thumb--4.gallery-thumb, .gite-azul .thumb--4.gallery-card__thumb, .gite-azul .thumb--4.gallery-item__thumb, .gite-azul .thumb--4.gallery__thumb { background-image:url("../img/gite-azul-galerie-4.jpg") !important; }
.gite-azul .thumb--5 .gallery-card__image, .gite-azul .thumb--5.gallery-card__image, .gite-azul .thumb--5.gallery-thumb, .gite-azul .thumb--5.gallery-card__thumb, .gite-azul .thumb--5.gallery-item__thumb, .gite-azul .thumb--5.gallery__thumb { background-image:url("../img/gite-azul-galerie-5.jpg") !important; }
.gite-azul .thumb--6 .gallery-card__image, .gite-azul .thumb--6.gallery-card__image, .gite-azul .thumb--6.gallery-thumb, .gite-azul .thumb--6.gallery-card__thumb, .gite-azul .thumb--6.gallery-item__thumb, .gite-azul .thumb--6.gallery__thumb { background-image:url("../img/gite-azul-galerie-6.jpg") !important; }
.gite-azul .thumb--7 .gallery-card__image, .gite-azul .thumb--7.gallery-card__image, .gite-azul .thumb--7.gallery-thumb, .gite-azul .thumb--7.gallery-card__thumb, .gite-azul .thumb--7.gallery-item__thumb, .gite-azul .thumb--7.gallery__thumb { background-image:url("../img/gite-azul-galerie-7.jpg") !important; }
.gite-azul .thumb--8 .gallery-card__image, .gite-azul .thumb--8.gallery-card__image, .gite-azul .thumb--8.gallery-thumb, .gite-azul .thumb--8.gallery-card__thumb, .gite-azul .thumb--8.gallery-item__thumb, .gite-azul .thumb--8.gallery__thumb { background-image:url("../img/gite-azul-galerie-8.jpg") !important; }

.gite-rojo .thumb--1 .gallery-card__image, .gite-rojo .thumb--1.gallery-card__image, .gite-rojo .thumb--1.gallery-thumb, .gite-rojo .thumb--1.gallery-card__thumb, .gite-rojo .thumb--1.gallery-item__thumb, .gite-rojo .thumb--1.gallery__thumb { background-image:url("../img/gite-rojo-galerie-1.jpg") !important; }
.gite-rojo .thumb--2 .gallery-card__image, .gite-rojo .thumb--2.gallery-card__image, .gite-rojo .thumb--2.gallery-thumb, .gite-rojo .thumb--2.gallery-card__thumb, .gite-rojo .thumb--2.gallery-item__thumb, .gite-rojo .thumb--2.gallery__thumb { background-image:url("../img/gite-rojo-galerie-2.jpg") !important; }
.gite-rojo .thumb--3 .gallery-card__image, .gite-rojo .thumb--3.gallery-card__image, .gite-rojo .thumb--3.gallery-thumb, .gite-rojo .thumb--3.gallery-card__thumb, .gite-rojo .thumb--3.gallery-item__thumb, .gite-rojo .thumb--3.gallery__thumb { background-image:url("../img/gite-rojo-galerie-3.jpg") !important; }
.gite-rojo .thumb--4 .gallery-card__image, .gite-rojo .thumb--4.gallery-card__image, .gite-rojo .thumb--4.gallery-thumb, .gite-rojo .thumb--4.gallery-card__thumb, .gite-rojo .thumb--4.gallery-item__thumb, .gite-rojo .thumb--4.gallery__thumb { background-image:url("../img/gite-rojo-galerie-4.jpg") !important; }
.gite-rojo .thumb--5 .gallery-card__image, .gite-rojo .thumb--5.gallery-card__image, .gite-rojo .thumb--5.gallery-thumb, .gite-rojo .thumb--5.gallery-card__thumb, .gite-rojo .thumb--5.gallery-item__thumb, .gite-rojo .thumb--5.gallery__thumb { background-image:url("../img/gite-rojo-galerie-5.jpg") !important; }
.gite-rojo .thumb--6 .gallery-card__image, .gite-rojo .thumb--6.gallery-card__image, .gite-rojo .thumb--6.gallery-thumb, .gite-rojo .thumb--6.gallery-card__thumb, .gite-rojo .thumb--6.gallery-item__thumb, .gite-rojo .thumb--6.gallery__thumb { background-image:url("../img/gite-rojo-galerie-6.jpg") !important; }
.gite-rojo .thumb--7 .gallery-card__image, .gite-rojo .thumb--7.gallery-card__image, .gite-rojo .thumb--7.gallery-thumb, .gite-rojo .thumb--7.gallery-card__thumb, .gite-rojo .thumb--7.gallery-item__thumb, .gite-rojo .thumb--7.gallery__thumb { background-image:url("../img/gite-rojo-galerie-7.jpg") !important; }
.gite-rojo .thumb--8 .gallery-card__image, .gite-rojo .thumb--8.gallery-card__image, .gite-rojo .thumb--8.gallery-thumb, .gite-rojo .thumb--8.gallery-card__thumb, .gite-rojo .thumb--8.gallery-item__thumb, .gite-rojo .thumb--8.gallery__thumb { background-image:url("../img/gite-rojo-galerie-8.jpg") !important; }

.gite-bw .thumb--1 .gallery-card__image, .gite-bw .thumb--1.gallery-card__image, .gite-bw .thumb--1.gallery-thumb, .gite-bw .thumb--1.gallery-card__thumb, .gite-bw .thumb--1.gallery-item__thumb, .gite-bw .thumb--1.gallery__thumb { background-image:url("../img/gite-bw-galerie-1.jpg") !important; }
.gite-bw .thumb--2 .gallery-card__image, .gite-bw .thumb--2.gallery-card__image, .gite-bw .thumb--2.gallery-thumb, .gite-bw .thumb--2.gallery-card__thumb, .gite-bw .thumb--2.gallery-item__thumb, .gite-bw .thumb--2.gallery__thumb { background-image:url("../img/gite-bw-galerie-2.jpg") !important; }
.gite-bw .thumb--3 .gallery-card__image, .gite-bw .thumb--3.gallery-card__image, .gite-bw .thumb--3.gallery-thumb, .gite-bw .thumb--3.gallery-card__thumb, .gite-bw .thumb--3.gallery-item__thumb, .gite-bw .thumb--3.gallery__thumb { background-image:url("../img/gite-bw-galerie-3.jpg") !important; }
.gite-bw .thumb--4 .gallery-card__image, .gite-bw .thumb--4.gallery-card__image, .gite-bw .thumb--4.gallery-thumb, .gite-bw .thumb--4.gallery-card__thumb, .gite-bw .thumb--4.gallery-item__thumb, .gite-bw .thumb--4.gallery__thumb { background-image:url("../img/gite-bw-galerie-4.jpg") !important; }
.gite-bw .thumb--5 .gallery-card__image, .gite-bw .thumb--5.gallery-card__image, .gite-bw .thumb--5.gallery-thumb, .gite-bw .thumb--5.gallery-card__thumb, .gite-bw .thumb--5.gallery-item__thumb, .gite-bw .thumb--5.gallery__thumb { background-image:url("../img/gite-bw-galerie-5.jpg") !important; }
.gite-bw .thumb--6 .gallery-card__image, .gite-bw .thumb--6.gallery-card__image, .gite-bw .thumb--6.gallery-thumb, .gite-bw .thumb--6.gallery-card__thumb, .gite-bw .thumb--6.gallery-item__thumb, .gite-bw .thumb--6.gallery__thumb { background-image:url("../img/gite-bw-galerie-6.jpg") !important; }
.gite-bw .thumb--7 .gallery-card__image, .gite-bw .thumb--7.gallery-card__image, .gite-bw .thumb--7.gallery-thumb, .gite-bw .thumb--7.gallery-card__thumb, .gite-bw .thumb--7.gallery-item__thumb, .gite-bw .thumb--7.gallery__thumb { background-image:url("../img/gite-bw-galerie-7.jpg") !important; }
.gite-bw .thumb--8 .gallery-card__image, .gite-bw .thumb--8.gallery-card__image, .gite-bw .thumb--8.gallery-thumb, .gite-bw .thumb--8.gallery-card__thumb, .gite-bw .thumb--8.gallery-item__thumb, .gite-bw .thumb--8.gallery__thumb { background-image:url("../img/gite-bw-galerie-8.jpg") !important; }


/* =========================================================
   V28 - Ajustements contenus pages logements
   ========================================================= */
.proof-link{
  color:inherit;
  text-decoration:none;
}
.proof-link:hover{
  text-decoration:underline;
}

.related-listings-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
@media (max-width: 1024px){
  .related-listings-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width: 768px){
  .related-listings-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   V34 - Enrichissement visuel home
   ========================================================= */
.immersive-band{
  position:relative;
  min-height:420px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  background-attachment:scroll;
}
.immersive-band--city{
  background-image:url("../img/home-section-chateau-thierry.jpg");
}
.immersive-band--destination{
  background-image:url("../img/home-section-vignobles.jpg");
}
.immersive-band__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(11,29,36,.36), rgba(11,29,36,.62));
}
.immersive-band__content{
  position:relative;
  z-index:2;
  max-width:820px;
  text-align:center;
  color:#fff;
  padding:72px 0;
}
.immersive-band__content h2{
  color:#fff;
}
.immersive-band__content p{
  color:rgba(255,255,255,.92);
}
.location-panel{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:28px;
  align-items:stretch;
}
.location-panel__content,
.location-panel__map{
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,243,236,.98));
  border:1px solid rgba(18,52,46,.08);
  border-radius:28px;
  box-shadow:0 20px 50px rgba(15,23,42,.08);
}
.location-panel__content{
  padding:32px;
}
.location-panel__map{
  overflow:hidden;
  min-height:420px;
}
.location-panel__map iframe{
  width:100%;
  height:100%;
  min-height:420px;
  border:0;
  display:block;
}
@media (min-width: 1025px){
  .immersive-band{
    background-attachment:fixed;
  }
}
@media (max-width: 900px){
  .location-panel{
    grid-template-columns:1fr;
  }
}
@media (max-width: 768px){
  .immersive-band{
    min-height:360px;
  }
  .immersive-band__content{
    padding:56px 0;
  }
  .location-panel__content{
    padding:24px;
  }
  .location-panel__map,
  .location-panel__map iframe{
    min-height:300px;
  }
}


/* =========================================================
   V35 - Pré-footer 3 colonnes inspiré du site actuel
   ========================================================= */
.section-location-immersive{
  position:relative;
  overflow:hidden;
}
.section-location-immersive__bg{
  position:absolute;
  inset:0;
  background-image:url("../img/home-section-contact-bg.jpg");
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.section-location-immersive__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(10,28,35,.36), rgba(10,28,35,.62));
}
.location-threecols{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns: .9fr .95fr 1.15fr;
  gap:24px;
  align-items:stretch;
}
.location-logo-card,
.location-info-card,
.location-map-card{
  height:100%;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,243,236,.98));
  border:1px solid rgba(18,52,46,.08);
  border-radius:28px;
  box-shadow:0 20px 50px rgba(15,23,42,.08);
}
.location-logo-card,
.location-info-card{
  padding:28px;
}
.location-logo-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  text-align:left;
}
.location-logo-card__image{
  width:min(100%, 280px);
  height:auto;
  margin-bottom:16px;
}
.location-map-card{
  overflow:hidden;
  min-height:420px;
}
.location-map-card iframe{
  width:100%;
  height:100%;
  min-height:420px;
  border:0;
  display:block;
}
@media (min-width: 1025px){
  .section-location-immersive__bg{
    background-attachment:fixed;
  }
}
@media (max-width: 1100px){
  .location-threecols{
    grid-template-columns:1fr;
  }
  .location-map-card,
  .location-map-card iframe{
    min-height:320px;
  }
}


/* =========================================================
   V36 - Bas de page 3 colonnes : carte / formulaire / logo
   ========================================================= */
.location-threecols--contact{
  grid-template-columns: 1.05fr .95fr .9fr;
}
.location-form-card{
  height:100%;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,243,236,.98));
  border:1px solid rgba(18,52,46,.08);
  border-radius:28px;
  box-shadow:0 20px 50px rgba(15,23,42,.08);
  padding:28px;
}
.contact-form--panel{
  margin-top:18px;
}
.contact-form--panel .btn--full{
  width:100%;
}
.location-logo-card h3{
  margin-top:0;
}
@media (max-width: 1100px){
  .location-threecols--contact{
    grid-template-columns:1fr;
  }
}


/* Fallbacks galeries - Gîte Nature / Villa Étampes / Mont-Saint-Père */
.gite-nature .thumb--1 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/gite-nature-galerie-1.jpg") !important; }
.gite-nature .thumb--2 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/gite-nature-galerie-2.jpg") !important; }
.gite-nature .thumb--3 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/gite-nature-galerie-3.jpg") !important; }
.gite-nature .thumb--4 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/gite-nature-galerie-4.jpg") !important; }
.gite-nature .thumb--5 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/gite-nature-galerie-5.jpg") !important; }
.gite-nature .thumb--6 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/gite-nature-galerie-6.jpg") !important; }
.gite-nature .thumb--7 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/gite-nature-galerie-7.jpg") !important; }
.gite-nature .thumb--8 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/gite-nature-galerie-8.jpg") !important; }

.villa-etampes-sur-marne .thumb--1 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/villa-etampes-sur-marne-galerie-1.jpg") !important; }
.villa-etampes-sur-marne .thumb--2 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/villa-etampes-sur-marne-galerie-2.jpg") !important; }
.villa-etampes-sur-marne .thumb--3 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/villa-etampes-sur-marne-galerie-3.jpg") !important; }
.villa-etampes-sur-marne .thumb--4 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/villa-etampes-sur-marne-galerie-4.jpg") !important; }
.villa-etampes-sur-marne .thumb--5 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/villa-etampes-sur-marne-galerie-5.jpg") !important; }
.villa-etampes-sur-marne .thumb--6 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/villa-etampes-sur-marne-galerie-6.jpg") !important; }
.villa-etampes-sur-marne .thumb--7 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/villa-etampes-sur-marne-galerie-7.jpg") !important; }
.villa-etampes-sur-marne .thumb--8 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/villa-etampes-sur-marne-galerie-8.jpg") !important; }

.appartement-mont-saint-pere .thumb--1 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/appartement-mont-saint-pere-galerie-1.jpg") !important; }
.appartement-mont-saint-pere .thumb--2 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/appartement-mont-saint-pere-galerie-2.jpg") !important; }
.appartement-mont-saint-pere .thumb--3 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/appartement-mont-saint-pere-galerie-3.jpg") !important; }
.appartement-mont-saint-pere .thumb--4 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/appartement-mont-saint-pere-galerie-4.jpg") !important; }
.appartement-mont-saint-pere .thumb--5 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/appartement-mont-saint-pere-galerie-5.jpg") !important; }
.appartement-mont-saint-pere .thumb--6 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/appartement-mont-saint-pere-galerie-6.jpg") !important; }
.appartement-mont-saint-pere .thumb--7 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/appartement-mont-saint-pere-galerie-7.jpg") !important; }
.appartement-mont-saint-pere .thumb--8 .gallery-card__image { background-image:linear-gradient(rgba(15,118,110,.14), rgba(29,78,216,.10)), url("../img/appartement-mont-saint-pere-galerie-8.jpg") !important; }


/* =========================================================
   CORRECTION AFFICHAGE GALERIES PAGES LOGEMENT
   Force l'affichage des vignettes même en local
   ========================================================= */
.gallery-card__media,
.property-gallery__item,
.gallery-grid .gallery-card__media,
.gallery-grid .property-gallery__item {
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  min-height: 220px;
  display: block;
}

/* Gîte Nature */
.gite-nature-galerie-1 { background-image: url("../img/gite-nature-galerie-1.jpg") !important; }
.gite-nature-galerie-2 { background-image: url("../img/gite-nature-galerie-2.jpg") !important; }
.gite-nature-galerie-3 { background-image: url("../img/gite-nature-galerie-3.jpg") !important; }
.gite-nature-galerie-4 { background-image: url("../img/gite-nature-galerie-4.jpg") !important; }
.gite-nature-galerie-5 { background-image: url("../img/gite-nature-galerie-5.jpg") !important; }
.gite-nature-galerie-6 { background-image: url("../img/gite-nature-galerie-6.jpg") !important; }
.gite-nature-galerie-7 { background-image: url("../img/gite-nature-galerie-7.jpg") !important; }
.gite-nature-galerie-8 { background-image: url("../img/gite-nature-galerie-8.jpg") !important; }

/* Villa Étampes-sur-Marne */
.villa-etampes-sur-marne-galerie-1 { background-image: url("../img/villa-etampes-sur-marne-galerie-1.jpg") !important; }
.villa-etampes-sur-marne-galerie-2 { background-image: url("../img/villa-etampes-sur-marne-galerie-2.jpg") !important; }
.villa-etampes-sur-marne-galerie-3 { background-image: url("../img/villa-etampes-sur-marne-galerie-3.jpg") !important; }
.villa-etampes-sur-marne-galerie-4 { background-image: url("../img/villa-etampes-sur-marne-galerie-4.jpg") !important; }
.villa-etampes-sur-marne-galerie-5 { background-image: url("../img/villa-etampes-sur-marne-galerie-5.jpg") !important; }
.villa-etampes-sur-marne-galerie-6 { background-image: url("../img/villa-etampes-sur-marne-galerie-6.jpg") !important; }
.villa-etampes-sur-marne-galerie-7 { background-image: url("../img/villa-etampes-sur-marne-galerie-7.jpg") !important; }
.villa-etampes-sur-marne-galerie-8 { background-image: url("../img/villa-etampes-sur-marne-galerie-8.jpg") !important; }

/* Appartement Mont-Saint-Père */
.appartement-mont-saint-pere-galerie-1 { background-image: url("../img/appartement-mont-saint-pere-galerie-1.jpg") !important; }
.appartement-mont-saint-pere-galerie-2 { background-image: url("../img/appartement-mont-saint-pere-galerie-2.jpg") !important; }
.appartement-mont-saint-pere-galerie-3 { background-image: url("../img/appartement-mont-saint-pere-galerie-3.jpg") !important; }
.appartement-mont-saint-pere-galerie-4 { background-image: url("../img/appartement-mont-saint-pere-galerie-4.jpg") !important; }
.appartement-mont-saint-pere-galerie-5 { background-image: url("../img/appartement-mont-saint-pere-galerie-5.jpg") !important; }
.appartement-mont-saint-pere-galerie-6 { background-image: url("../img/appartement-mont-saint-pere-galerie-6.jpg") !important; }
.appartement-mont-saint-pere-galerie-7 { background-image: url("../img/appartement-mont-saint-pere-galerie-7.jpg") !important; }
.appartement-mont-saint-pere-galerie-8 { background-image: url("../img/appartement-mont-saint-pere-galerie-8.jpg") !important; }


/* =========================================================
   V39 - correction finale galeries villa / mont-saint-pere / gite nature
   ========================================================= */
.gallery-card__image{
  background-image: var(--gallery-image) !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}
.appartement-mont-saint-pere .thumb--1 .gallery-card__image { background-image:url("../img/appartement-mont-saint-pere-galerie-1.jpg") !important; }
.appartement-mont-saint-pere .thumb--2 .gallery-card__image { background-image:url("../img/appartement-mont-saint-pere-galerie-2.jpg") !important; }
.appartement-mont-saint-pere .thumb--3 .gallery-card__image { background-image:url("../img/appartement-mont-saint-pere-galerie-3.jpg") !important; }
.appartement-mont-saint-pere .thumb--4 .gallery-card__image { background-image:url("../img/appartement-mont-saint-pere-galerie-4.jpg") !important; }
.appartement-mont-saint-pere .thumb--5 .gallery-card__image { background-image:url("../img/appartement-mont-saint-pere-galerie-5.jpg") !important; }
.appartement-mont-saint-pere .thumb--6 .gallery-card__image { background-image:url("../img/appartement-mont-saint-pere-galerie-6.jpg") !important; }
.appartement-mont-saint-pere .thumb--7 .gallery-card__image { background-image:url("../img/appartement-mont-saint-pere-galerie-7.jpg") !important; }
.appartement-mont-saint-pere .thumb--8 .gallery-card__image { background-image:url("../img/appartement-mont-saint-pere-galerie-8.jpg") !important; }

.villa-etampes-sur-marne .thumb--1 .gallery-card__image { background-image:url("../img/villa-etampes-sur-marne-galerie-1.jpg") !important; }
.villa-etampes-sur-marne .thumb--2 .gallery-card__image { background-image:url("../img/villa-etampes-sur-marne-galerie-2.jpg") !important; }
.villa-etampes-sur-marne .thumb--3 .gallery-card__image { background-image:url("../img/villa-etampes-sur-marne-galerie-3.jpg") !important; }
.villa-etampes-sur-marne .thumb--4 .gallery-card__image { background-image:url("../img/villa-etampes-sur-marne-galerie-4.jpg") !important; }
.villa-etampes-sur-marne .thumb--5 .gallery-card__image { background-image:url("../img/villa-etampes-sur-marne-galerie-5.jpg") !important; }
.villa-etampes-sur-marne .thumb--6 .gallery-card__image { background-image:url("../img/villa-etampes-sur-marne-galerie-6.jpg") !important; }
.villa-etampes-sur-marne .thumb--7 .gallery-card__image { background-image:url("../img/villa-etampes-sur-marne-galerie-7.jpg") !important; }
.villa-etampes-sur-marne .thumb--8 .gallery-card__image { background-image:url("../img/villa-etampes-sur-marne-galerie-8.jpg") !important; }

.gite-nature .thumb--1 .gallery-card__image { background-image:url("../img/gite-nature-galerie-1.jpg") !important; }
.gite-nature .thumb--2 .gallery-card__image { background-image:url("../img/gite-nature-galerie-2.jpg") !important; }
.gite-nature .thumb--3 .gallery-card__image { background-image:url("../img/gite-nature-galerie-3.jpg") !important; }
.gite-nature .thumb--4 .gallery-card__image { background-image:url("../img/gite-nature-galerie-4.jpg") !important; }
.gite-nature .thumb--5 .gallery-card__image { background-image:url("../img/gite-nature-galerie-5.jpg") !important; }
.gite-nature .thumb--6 .gallery-card__image { background-image:url("../img/gite-nature-galerie-6.jpg") !important; }
.gite-nature .thumb--7 .gallery-card__image { background-image:url("../img/gite-nature-galerie-7.jpg") !important; }
.gite-nature .thumb--8 .gallery-card__image { background-image:url("../img/gite-nature-galerie-8.jpg") !important; }

/* =========================================================
   FIX GALERIES AZUL / ROJO / BW
   L'image était posée sur la <figure> entière (.thumb--N),
   ce qui faisait déborder le background dans la <figcaption>.
   On remet background-image:none sur la figure et on garde
   l'image uniquement sur .gallery-card__image (div interne).
   ========================================================= */
.gite-azul [class*="thumb--"],
.gite-rojo [class*="thumb--"],
.gite-bw   [class*="thumb--"] {
  background-image: none !important;
}

.gite-azul .thumb--1 .gallery-card__image { background-image:url("../img/gite-azul-galerie-1.jpg") !important; }
.gite-azul .thumb--2 .gallery-card__image { background-image:url("../img/gite-azul-galerie-2.jpg") !important; }
.gite-azul .thumb--3 .gallery-card__image { background-image:url("../img/gite-azul-galerie-3.jpg") !important; }
.gite-azul .thumb--4 .gallery-card__image { background-image:url("../img/gite-azul-galerie-4.jpg") !important; }
.gite-azul .thumb--5 .gallery-card__image { background-image:url("../img/gite-azul-galerie-5.jpg") !important; }
.gite-azul .thumb--6 .gallery-card__image { background-image:url("../img/gite-azul-galerie-6.jpg") !important; }
.gite-azul .thumb--7 .gallery-card__image { background-image:url("../img/gite-azul-galerie-7.jpg") !important; }
.gite-azul .thumb--8 .gallery-card__image { background-image:url("../img/gite-azul-galerie-8.jpg") !important; }

.gite-rojo .thumb--1 .gallery-card__image { background-image:url("../img/gite-rojo-galerie-1.jpg") !important; }
.gite-rojo .thumb--2 .gallery-card__image { background-image:url("../img/gite-rojo-galerie-2.jpg") !important; }
.gite-rojo .thumb--3 .gallery-card__image { background-image:url("../img/gite-rojo-galerie-3.jpg") !important; }
.gite-rojo .thumb--4 .gallery-card__image { background-image:url("../img/gite-rojo-galerie-4.jpg") !important; }
.gite-rojo .thumb--5 .gallery-card__image { background-image:url("../img/gite-rojo-galerie-5.jpg") !important; }
.gite-rojo .thumb--6 .gallery-card__image { background-image:url("../img/gite-rojo-galerie-6.jpg") !important; }
.gite-rojo .thumb--7 .gallery-card__image { background-image:url("../img/gite-rojo-galerie-7.jpg") !important; }
.gite-rojo .thumb--8 .gallery-card__image { background-image:url("../img/gite-rojo-galerie-8.jpg") !important; }

.gite-bw .thumb--1 .gallery-card__image { background-image:url("../img/gite-bw-galerie-1.jpg") !important; }
.gite-bw .thumb--2 .gallery-card__image { background-image:url("../img/gite-bw-galerie-2.jpg") !important; }
.gite-bw .thumb--3 .gallery-card__image { background-image:url("../img/gite-bw-galerie-3.jpg") !important; }
.gite-bw .thumb--4 .gallery-card__image { background-image:url("../img/gite-bw-galerie-4.jpg") !important; }
.gite-bw .thumb--5 .gallery-card__image { background-image:url("../img/gite-bw-galerie-5.jpg") !important; }
.gite-bw .thumb--6 .gallery-card__image { background-image:url("../img/gite-bw-galerie-6.jpg") !important; }
.gite-bw .thumb--7 .gallery-card__image { background-image:url("../img/gite-bw-galerie-7.jpg") !important; }
.gite-bw .thumb--8 .gallery-card__image { background-image:url("../img/gite-bw-galerie-8.jpg") !important; }

/* =========================================================
   POPUP CONFIRMATION FORMULAIRE CONTACT
   ========================================================= */
.contact-confirm-backdrop{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.55);
  z-index:1100;
}
.contact-confirm-backdrop.is-visible{ display:block; }

.contact-confirm{
  display:none;
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  z-index:1101;
  background:#fff;
  border-radius:24px;
  padding:40px 36px;
  max-width:440px;
  width:calc(100% - 32px);
  text-align:center;
  box-shadow:0 24px 64px rgba(15,23,42,.18);
}
.contact-confirm.is-visible{ display:block; }

.contact-confirm__icon{
  font-size:3rem;
  line-height:1;
  margin-bottom:16px;
}
.contact-confirm__title{
  font-size:1.5rem;
  font-weight:700;
  color:var(--dark);
  margin:0 0 12px;
}
.contact-confirm__text{
  color:var(--muted);
  font-size:1rem;
  line-height:1.6;
  margin:0 0 24px;
}
@media(max-width:768px){
  .contact-confirm{ padding:28px 20px; }
  .contact-confirm__title{ font-size:1.25rem; }
}
