/* ========================================================
   FICHE GITE — booking + plan
   ======================================================== */
.gite-booking {background: linear-gradient(180deg, #fff 0%, var(--bg-color) 100%)}
.gite-booking__grid {display: grid;grid-template-columns: 2fr 1fr;gap: clamp(1.4rem, 2.2vw, 2rem);align-items: start}
.gite-booking__media {position: sticky;top: clamp(90px, 10vh, 120px);margin: 0;border-radius: var(--border-radius-xl);overflow: hidden;box-shadow: 0 28px 70px rgba(15,22,15,.18);aspect-ratio: 16 / 10;width: 100%}
.gite-booking__media img {width: 100%;height: 100%;object-fit: cover;display: block;transition: transform 1s ease}
.gite-booking__tag {position: absolute;left: 20px;bottom: 20px;display: inline-flex;align-items: center;gap: 8px;padding: 8px 14px;background: rgba(255,255,255,.94);color: var(--main-color);font-size: .82rem;font-weight: 600;letter-spacing: .03em;border-radius: 999px;backdrop-filter: blur(6px);box-shadow: 0 8px 20px rgba(15,22,15,.18)}

.gite-booking__card {display: flex;flex-direction: column;gap: 18px;padding: clamp(1.6rem, 2.2vw, 2.2rem);background: #fff;border: 1px solid rgba(157,174,70,.18);border-radius: var(--border-radius-xl);box-shadow: 0 28px 70px rgba(15,22,15,.10)}
.gite-booking__head {display: flex;flex-direction: column;gap: 8px;padding-bottom: 16px;border-bottom: 1px solid rgba(15,22,15,.08)}
.gite-booking__eyebrow {margin: 0;color: var(--main-color);font-size: .82rem;font-weight: 700;letter-spacing: .12em;text-transform: uppercase}
.gite-booking__title {margin: 0;color: #172018;font-size: clamp(1.2rem, 1.6vw, 1.45rem);font-weight: 700;line-height: 1.25;letter-spacing: -.005em}
.gite-booking__lead {margin: 0;color: #43463a;font-size: .94rem;line-height: 1.55}

.gite-booking__features {list-style: none;margin: 20px 0;padding: 0;display: flex;flex-direction: column;gap: 10px;}
.gite-booking__features li {display: flex;justify-content: space-between;gap: 12px;font-size: .88rem;color: #2b2f24;padding-bottom: 9px;border-bottom: 1px dashed rgba(15,22,15,.2)}
.gite-booking__features li:last-child {border-bottom: 0;padding-bottom: 0}
.gite-booking__features li strong {color: var(--main-color);font-weight: 600;letter-spacing: .02em}
.gite-booking__features li span {text-align: right;color: #43463a}

.gite-booking__price {display: flex;flex-direction: column;gap: 4px;padding: 14px 16px;background: rgba(157,174,70,.10);border: 1px solid rgba(157,174,70,.25);border-radius: var(--border-radius-sm);margin-bottom: 20px}
.gite-booking__price .from {color: var(--main-color);font-size: .78rem;font-weight: 600;letter-spacing: .08em;text-transform: uppercase}
.gite-booking__price strong {color: #172018;font-size: clamp(1.5rem, 2vw, 1.8rem);font-weight: 800;line-height: 1.05;letter-spacing: -.01em}
.gite-booking__price strong small {color: #5c6253;font-size: .55em;font-weight: 600;letter-spacing: .01em}
.gite-booking__price .note {color: #5c6253;font-size: .78rem}

.gite-booking__widget {display: flex;flex-direction: column;gap: 8px}
.gite-booking__widget .booking-widget {min-height: 56px}
.gite-booking__widget .booking-widget:empty::before,
.gite-booking__widget .booking-widget:not(:has(*))::before {content: "Chargement du moteur de réservation…";display: block;padding: 14px;color: var(--grey-color);font-size: .88rem;text-align: center;background: rgba(157,174,70,.08);border: 1px dashed rgba(157,174,70,.3);border-radius: var(--border-radius-lg)}
.booking-widget__fallback {margin: 0;padding: 14px;font-size: .88rem;color: #43463a;background: rgba(157,174,70,.08);border-radius: var(--border-radius-sm);text-align: center}
.booking-widget__fallback a {color: var(--main-color);font-weight: 600}
.gite-booking__cta {width: 100%;justify-content: center;text-align: center}

@media (max-width: 1024px) {
  .gite-booking__grid {grid-template-columns: 1fr}
  .gite-booking__media {position: static;aspect-ratio: 16 / 10}
}
@media (max-width: 640px) {
  .gite-booking__media {aspect-ratio: 4 / 3}
  .gite-booking__tag {left: 12px;bottom: 12px;font-size: .76rem;padding: 6px 10px}
}

/* --- GALERIE GITE (grid 4 col) --- */
.gite-gallery {background: linear-gradient(90deg, #f7f4ed 0%, #fff 60%, #eef2df 100%);border-top: 1px solid rgba(33,33,33,.08);border-bottom: 1px solid rgba(33,33,33,.08)}
.gite-gallery__grid {display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));gap: clamp(.8rem, 1.4vw, 1.1rem);margin-top: 40px;}
.gite-gallery__grid--three {grid-template-columns: repeat(3, minmax(0, 1fr));max-width: 980px;margin-inline: auto}
.gite-gallery__grid--two {grid-template-columns: repeat(2, minmax(0, 1fr));max-width: 720px;margin-inline: auto}
.gite-gallery__item {position: relative;margin: 0;border-radius: var(--border-radius-sm);overflow: hidden;box-shadow: 0 12px 32px rgba(15,22,15,.10);transition: transform .35s ease, box-shadow .35s ease}
.gite-gallery__item:hover {transform: translateY(-3px);box-shadow: 0 22px 50px rgba(15,22,15,.16);transition: transform .35s ease, box-shadow .35s ease}
.gite-gallery__trigger {appearance: none;display: block;width: 100%;height: 100%;margin: 0;padding: 0;border: 0;border-radius: inherit;background: transparent;cursor: zoom-in;overflow: hidden;line-height: 0}
.gite-gallery__trigger:focus-visible {outline: 3px solid rgba(150, 153, 22, .55);outline-offset: 4px}
.gite-gallery__item img {width: 100%;height: 100%;object-fit: cover;display: block;transition: transform .35s ease, filter .25s ease}
.gite-gallery__item:hover img,
.gite-gallery__item:focus-within img {transform: scale(1.05);filter: saturate(1.06) brightness(1.03)}
.gite-gallery__item::after {content: "";position: absolute;right: 10px;bottom: 10px;width: 34px;height: 34px;border-radius: 50%;background: rgba(255,255,255,.94) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='M21 21l-4.3-4.3'/><path d='M11 8v6M8 11h6'/></svg>") center/16px 16px no-repeat;opacity: 0;transform: translateY(6px);box-shadow: 0 6px 16px rgba(15,22,15,.18);transition: opacity .25s ease, transform .25s ease;pointer-events: none}
.gite-gallery__item:hover::after,
.gite-gallery__item:focus-within::after {opacity: 1;transform: translateY(0)}

@media (max-width: 1024px) {
  .gite-gallery__grid {grid-template-columns: repeat(3, minmax(0, 1fr))}
  .gite-gallery__grid--three {grid-template-columns: repeat(3, minmax(0, 1fr))}
  .gite-gallery__grid--two {grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (max-width: 720px) {
  .gite-gallery__grid {grid-template-columns: repeat(2, minmax(0, 1fr))}
  .gite-gallery__grid--three {grid-template-columns: repeat(2, minmax(0, 1fr))}
  .gite-gallery__grid--two {grid-template-columns: repeat(1, minmax(0, 1fr))}
}

/* --- PLAN DU GITE --- */
.gite-floorplan {background: #fff}
.gite-floorplan__grid {display: grid;grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);gap: clamp(1.4rem, 2.4vw, 2.4rem);align-items: center}
.gite-floorplan__media {position: relative;margin: 0;border-radius: var(--border-radius-xl);overflow: hidden;background: #fff;box-shadow: 0 22px 60px rgba(15,22,15,.10);padding: clamp(1rem, 1.6vw, 1.4rem);transition: transform .35s ease, box-shadow .35s ease}
.gite-floorplan__media:hover {transform: translateY(-3px);box-shadow: 0 28px 70px rgba(15,22,15,.16)}
.gite-floorplan__trigger {appearance: none;display: block;width: 100%;margin: 0;padding: 0;border: 0;border-radius: inherit;background: transparent;cursor: zoom-in;overflow: hidden;line-height: 0}
.gite-floorplan__trigger:focus-visible {outline: 3px solid rgba(150, 153, 22, .55);outline-offset: 4px}
.gite-floorplan__media img {display: block;width: 100%;height: auto;object-fit: contain}
.gite-floorplan__media::after {content: "";position: absolute;right: 16px;bottom: 16px;width: 36px;height: 36px;border-radius: 50%;background: rgba(255,255,255,.96) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23222' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='M21 21l-4.3-4.3'/><path d='M11 8v6M8 11h6'/></svg>") center/18px 18px no-repeat;opacity: 0;transform: translateY(6px);box-shadow: 0 6px 16px rgba(15,22,15,.18);transition: opacity .25s ease, transform .25s ease;pointer-events: none}
.gite-floorplan__media:hover::after,
.gite-floorplan__media:focus-within::after {opacity: 1;transform: translateY(0)}
.gite-floorplan .title p.lead {margin-bottom: 20px;}
@media (max-width: 1024px) {
  .gite-floorplan__grid {grid-template-columns: 1fr}
}

/* --- PLAN D'ACCES --- */
.gite-map {background: linear-gradient(90deg, #f7f4ed 0%, #fff 60%, #eef2df 100%);border-top: 1px solid rgba(33,33,33,.08);border-bottom: 1px solid rgba(33,33,33,.08)}
.gite-map__grid {display: grid;grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);gap: clamp(1.4rem, 2.4vw, 2.4rem);align-items: stretch}
.gite-map__media {margin: 0;border-radius: var(--border-radius-xl);overflow: hidden;box-shadow: 0 22px 60px rgba(15,22,15,.12);background: var(--bg-color)}
.gite-map__media img {display: block;width: 100%;height: 100%;object-fit: cover}

@media (max-width: 1024px) {
  .gite-map__grid {grid-template-columns: 1fr}
}

/* ========================================================
   FICHE GITE — équipements et infos pratiques
   ======================================================== */
.gite-fiche-amenities {background: linear-gradient(90deg, #f7f4ed 0%, #fff 60%, #eef2df 100%);border-top: 1px solid rgba(33,33,33,.08);border-bottom: 1px solid rgba(33,33,33,.08)}
.gite-fiche-amenities .title.center {max-width: 820px;margin: 0 auto 46px}
.gite-fiche-amenities .title.center .before {margin-inline: auto}
.amenities-grid {display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));gap: clamp(1.4rem, 2.4vw, 2rem)}
.amenity-group {padding: clamp(1.4rem, 2vw, 1.8rem);border-radius: var(--border-radius-xl);background: rgba(255,255,255,.92);border: 1px solid rgba(157,174,70,.18);box-shadow: 0 18px 50px rgba(31,41,30,.06);transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease}
.amenity-group:hover {transform: translateY(-3px);box-shadow: 0 26px 70px rgba(31,41,30,.12);border-color: rgba(157,174,70,.4)}
.amenity-group h3 {margin: 0 0 16px;padding-bottom: 12px;color: var(--main-color);font-size: 1rem;font-weight: 700;letter-spacing: .04em;text-transform: uppercase;border-bottom: 1px solid rgba(157,174,70,.25)}
.amenity-group ul.check {margin: 0}
.amenity-group ul.check li {margin-bottom: 8px;font-size: .92rem;color: #2a3024;line-height: 1.55}
.amenity-group ul.check li:last-child {margin-bottom: 0}
.brahma-shared {margin-top: 32px;color: var(--grey-color);font-size: .92rem}
.brahma-rooms-title {margin: 18px 0 8px;color: #172018;font-size: 1.05rem;font-weight: 700;letter-spacing: .02em}

@media (max-width: 1200px) {
  .amenities-grid {grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (max-width: 640px) {
  .amenities-grid {grid-template-columns: 1fr}
}
/* --- /FICHE GITE ------------------------------------------ */
/* ======================================================== */

/* ======================================================== */
/* --- LABEL TOURISME & HANDICAP (gîte PMR) ---------------- */

.gite-pmr-label {display: block;margin: 0 0 20px;padding: 12px 14px;background: #fff;border: 1px solid rgba(157, 174, 70, .25);border-left: 4px solid var(--main-color);border-radius: var(--border-radius-sm);box-shadow: 0 8px 22px rgba(15, 22, 15, .05)}
.gite-pmr-label img {width: 150px;height: auto;display: block;margin-bottom: 10px;}
.gite-pmr-label__body {display: flex;flex-direction: column;gap: 2px;min-width: 0}
.gite-pmr-label__body strong {color: #172018;font-size: .9rem;letter-spacing: -.005em;line-height: 1.25}
.gite-pmr-label__body span {color: var(--grey-color);font-size: .78rem;line-height: 1.45}

.gite-pmr-credential {display: flex;align-items: center;gap: 14px;margin: 18px 0 0;padding: 12px 14px;background: rgba(157, 174, 70, .08);border: 1px dashed rgba(157, 174, 70, .35);border-radius: var(--border-radius-sm)}
.gite-pmr-credential img {flex: 0 0 auto;width: 140px;height: auto;display: block}
.gite-pmr-credential span {color: #2b2f24;font-size: .86rem;line-height: 1.5}
.gite-pmr-credential strong {color: var(--main-color)}

@media (max-width: 640px) {
  .gite-pmr-label {flex-direction: column;align-items: flex-start;gap: 10px}
  .gite-pmr-label img {width: 140px}
  .gite-pmr-credential {flex-direction: column;align-items: flex-start;gap: 10px}
  .gite-pmr-credential img {width: 140px}
  .gite-card__pmr-stamp {width: 110px}
}

/* --- /LABEL TOURISME & HANDICAP -------------------------- */
/* ======================================================== */

.home-location {position: relative;background: linear-gradient(135deg, #f7f4ed 0%, #fff 52%, #eef2df 100%);border-bottom: 1px solid rgba(33,33,33,.08);overflow: hidden}
.home-location::before {content: "";position: absolute;right: -10vw;top: -18vw;width: 42vw;height: 42vw;border-radius: 50%;background: radial-gradient(circle, rgba(118,173,161,.18), transparent 68%);pointer-events: none}
.home-location .grid-2 {align-items: center;gap: clamp(2rem, 5vw, 5rem)}
.home-location .title {position: relative;z-index: 1}
.home-location .title p:not(.before):not(.lead) {color: var(--grey-color)}
.home-location__panel {position: relative;z-index: 1;display: grid;gap: 18px}
.home-location__panel img {border-radius: var(--border-radius-xl)}
.home-location__legend {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 12px;margin: 0;padding: 0;list-style: none;counter-reset: none}
.home-location__legend li {display: flex;align-items: flex-start;gap: 11px;padding: 15px 16px;border-radius: var(--border-radius-xl);background: rgba(255,255,255,.84);border: 1px solid rgba(157,174,70,.18);box-shadow: 0 14px 34px rgba(31,41,30,.06)}
.home-location__legend li:first-child {background: #172018;border-color: rgba(23,32,24,.16);color: #fff}
.home-location__legend-number {display: grid;place-items: center;flex: 0 0 28px;width: 28px;height: 28px;border-radius: 50%;background: linear-gradient(135deg, var(--main-color), var(--second-color));color: #fff;font-size: .76rem;font-weight: 800;line-height: 1}
.home-location__legend strong {display: block;margin-bottom: 3px;color: #172018;line-height: 1.2}
.home-location__legend small {display: block;color: var(--grey-color);font-size: .82rem;line-height: 1.45}
.home-location__legend li:first-child strong,.home-location__legend li:first-child small {color: #fff}
@media (max-width: 1024px) {
  .home-location .grid-2 {grid-template-columns: 1fr}
  .home-location__panel img {width: 100%;height: auto;}
}
@media (max-width: 768px) {
  .home-location__legend {grid-template-columns: 1fr}
}
/* --- 6. Acces & localisation --- */
.domaine-access {border-bottom: 1px solid rgba(33,33,33,.08)}
.domaine-access__grid {align-items: stretch;gap: clamp(2rem, 4vw, 4.5rem)}
.domaine-access__body {display: grid;gap: clamp(.6rem, 1.4vh, 1.1rem)}
.domaine-access__body .lead {color: var(--grey-color);max-width: 60ch}
.domaine-access__list {margin: 8px 0 0;padding: 0;list-style: none;display: grid;gap: 8px}
.domaine-access__list li {display: flex;align-items: baseline;justify-content: space-between;gap: 14px;padding: 14px 18px;border-radius: var(--border-radius-xl);background: #fff;border: 1px solid rgba(157, 174, 70, .14);box-shadow: 0 10px 28px rgba(31, 41, 30, .04)}
.domaine-access__list li strong {color: #172018;font-size: 1rem}
.domaine-access__list li span {color: var(--main-color);font-weight: 700;font-size: .92rem;letter-spacing: .02em}
.domaine-access__body .small {color: var(--grey-color);margin-top: 4px}
.domaine-access__media {min-height: 100%;display: flex}
.brahma-practical .domaine-access__grid {grid-template-columns: minmax(360px, .86fr) minmax(520px, 1.14fr);align-items: center;gap: clamp(2.4rem, 5vw, 6rem)}
.brahma-practical .domaine-access__media {width: 100%;max-width: none;margin-inline: 0;border-radius: var(--border-radius-xl);background: #fff;box-shadow: 0 22px 60px rgba(15, 22, 15, .14);overflow: hidden}
.brahma-practical .domaine-access__media picture {display: block;width: 100%;height: 100%}
.brahma-practical .domaine-access__media img {display: block;width: 100%;height: 100%;min-height: 420px;max-height: 560px;object-fit: contain;background: #fff}
.domaine-access__map {width: 100%;height: 100%;min-height: 520px;border-radius: var(--border-radius-xl);overflow: hidden;background: #e8efd8;box-shadow: 0 22px 60px rgba(15, 22, 15, .14);isolation: isolate}
.domaine-access__map .leaflet-tile {filter: grayscale(14%) saturate(.88) contrast(1.03)}
.domaine-access__map .leaflet-control-attribution {font-size: .68rem}
.domaine-access__map .leaflet-popup-content-wrapper {border-radius: 16px;box-shadow: 0 14px 34px rgba(15, 22, 15, .18)}
.domaine-access__map .leaflet-popup-content {font-family: inherit;color: #172018;line-height: 1.45}

@media (max-width: 1024px) {
  .domaine-intro .grid-2,
  .domaine-eco__grid,
  .domaine-access__grid {grid-template-columns: 1fr}
  .domaine-intro__mosaic,
  .domaine-eco__media {order: -1;max-width: 520px;margin-inline: auto}
  .domaine-eco__labels img {height: 64px}
  .domaine-access__media,
  .domaine-access__map {min-height: 420px}
  .brahma-practical .domaine-access__grid {grid-template-columns: 1fr}
  .brahma-practical .domaine-access__media {max-width: 560px}
  .brahma-practical .domaine-access__media img {min-height: 360px;max-height: none}
  .domaine-why__grid {grid-template-columns: 1fr 1fr}
  .domaine-plan__box {grid-template-columns: auto minmax(0, 1fr)}
  .domaine-plan__actions {grid-column: 2;justify-content: flex-start}
}
@media (max-width: 768px) {
  .domaine-intro__mosaic {grid-template-columns: 1fr;max-width: 520px}
  .domaine-intro__column,
  .domaine-intro__column--right {padding-top: 0}
  .domaine-update {margin-bottom: -2rem}
  .domaine-spaces {padding-top: clamp(5.5rem, 14vw, 7rem)}
  .domaine-why__grid {grid-template-columns: 1fr}
  .domaine-eco__list li {padding: 12px 14px;font-size: .9rem}
  .domaine-eco__labels {gap: 16px}
  .domaine-eco__labels img {height: 56px}
  .domaine-access__media,
  .domaine-access__map {min-height: 340px}
  .brahma-practical .domaine-access__media img {min-height: 300px}
