/* --- 1. Intro / story --- */
.domaine-intro .grid-2 {align-items: center;}
.domaine-intro .title p:not(.before) {margin-bottom: 2rem}
.domaine-intro__mosaic {display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: clamp(1rem, 2vw, 1.6rem);align-items: start}
.domaine-intro .domaine-intro__mosaic {align-items: center}
.domaine-intro__column {display: grid;gap: clamp(1rem, 2vw, 1.6rem)}
.domaine-intro__column--right {padding-top: clamp(2.4rem, 5vw, 4.2rem)}
.domaine-intro .domaine-intro__column--right {padding-top: 0}
.domaine-intro__tile {margin: 0;overflow: hidden;border-radius: var(--border-radius-sm);background: #f7f4ed;box-shadow: 0 26px 70px rgba(15, 22, 15, .14);line-height: 0;clip-path: inset(0 round var(--border-radius-sm));isolation: isolate}
.domaine-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;clip-path: inherit}
.domaine-gallery__trigger:focus-visible {outline: 3px solid rgba(150, 153, 22, .55);outline-offset: 4px}
.domaine-intro__tile img {width: 100%;height: 100%;display: block;object-fit: cover;border-radius: 0;filter: saturate(1.02) contrast(1.03);transition: filter .25s ease}
.domaine-intro__tile:hover img,
.domaine-intro__tile:focus-within img {filter: saturate(1.1) contrast(0.9) brightness(1.1)}
.domaine-update {position: relative;z-index: 3;margin-bottom: clamp(-4.8rem, -5vw, -3.2rem);padding: 0}
.domaine-update .info-box {margin: 0;box-shadow: 0 24px 60px rgba(15, 22, 15, .12);background: #fff}
.domaine-update .info-box__icon svg {width: 24px;height: 24px}

/* --- 2. Les 2 espaces complementaires --- */
.domaine-spaces {padding-top: clamp(7rem, 8vw, 10rem);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)}
.domaine-spaces .title.center {margin: 0 auto 48px;text-align: center;max-width: 820px}
.domaine-spaces .title.center .before {margin-inline: auto}
.domaine-spaces__grid {gap: clamp(1.6rem, 3vw, 2.4rem)}
.space-card {position: relative;border-radius: var(--border-radius-xl);background: #fff;box-shadow: 0 20px 50px rgba(15, 22, 15, .10);overflow: hidden;transition: transform .35s ease, box-shadow .35s ease}
.space-card:hover {transform: translateY(-4px);box-shadow: 0 28px 70px rgba(15, 22, 15, .16)}
.space-card__link {display: block;color: inherit;text-decoration: none}
.space-card__media {position: relative;aspect-ratio: 4 / 3;overflow: hidden}
.space-card__media img {width: 100%;height: 100%;display: block;object-fit: cover;transition: transform .55s cubic-bezier(.4, 0, .2, 1);filter: saturate(1.02) contrast(1.04)}
.space-card:hover .space-card__media img {transform: scale(1.04)}
.space-card__badge {position: absolute;top: 18px;left: 18px;padding: 6px 14px;border-radius: 999px;background: rgba(255, 255, 255, .92);color: var(--main-color);font-size: .72rem;font-weight: 700;letter-spacing: .12em;text-transform: uppercase;backdrop-filter: blur(6px);-webkit-backdrop-filter: blur(6px)}
.space-card__body {padding: clamp(1.5rem, 2.5vw, 2.5rem)}
.space-card__body h3 {margin: 0 0 10px;color: #172018;font-size: clamp(1.4rem, 1.8vw, 1.7rem);line-height: 1.2}
.space-card__body p {margin: 0 0 16px;color: var(--grey-color);line-height: 1.65}
.space-card__body ul.check {margin: 0 0 22px}
.space-card__body ul.check li {font-size:0.9rem;color:var(--grey-color)}
.space-card__cta {display: inline-flex;align-items: center;gap: 10px;color: var(--main-color);font-weight: 700;font-size: .95rem;transition: gap .25s ease, color .25s ease}
.space-card__cta span {transition: transform .25s ease}
.space-card:hover .space-card__cta {gap: 16px;color: var(--second-color)}
.space-card:hover .space-card__cta span {transform: translateX(4px)}
.domaine-spaces p.txt {text-align: center;margin-top: 40px;}

/* --- 3. Plan du domaine --- */
.domaine-plan {position: relative;padding: clamp(2.6rem, 5vw, 4.5rem) 0;background: linear-gradient(180deg, #f7f4ed 0%, #fff 100%)}
.domaine-plan__box {display: grid;grid-template-columns: auto minmax(0, 1fr) auto;gap: clamp(1.2rem, 2.4vw, 2rem);align-items: center;padding: clamp(1.4rem, 2.8vw, 2.2rem);border: 1px solid rgba(157,174,70,.22);border-radius: var(--border-radius-xl);background: rgba(255,255,255,.92);box-shadow: 0 20px 54px rgba(31,41,30,.09)}
.domaine-plan__icon {display: grid;place-items: center;width: 68px;height: 68px;border-radius: 50%;color: var(--main-color);background: rgba(157,174,70,.1);border: 1px solid rgba(157,174,70,.22)}
.domaine-plan__content .before {margin-bottom: .35rem}
.domaine-plan__content h2 {margin: 0 0 .55rem;color: #172018;font-size: clamp(1.5rem, 2.2vw, 2rem);line-height: 1.15}
.domaine-plan__content p:not(.before) {margin: 0;max-width: 68ch;color: var(--grey-color);line-height: 1.65}
.domaine-plan__actions {display: flex;flex-wrap: wrap;gap: .75rem;justify-content: flex-end}

/* --- 4. Pourquoi choisir le domaine --- */
.domaine-why {background: #fff;text-align: center}
.domaine-why__intro {max-width: 860px;margin: 0 auto 46px;text-align: center}
.domaine-why__intro .before {margin-inline: auto}
.domaine-why__grid {display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 18px;text-align: left}
.why-card {position: relative;min-height: 250px;padding: 28px;border-radius: var(--border-radius-xl);background: rgba(255,255,255,.86);border: 1px solid rgba(157,174,70,.16);box-shadow: 0 18px 50px rgba(31,41,30,.08);overflow: hidden}
.why-card::after {content: "";position: absolute;right: -28px;top: -28px;width: 96px;height: 96px;border-radius: 50%;background: linear-gradient(135deg, rgba(150,153,22,.14), rgba(118,173,161,.18))}
.why-card__icon {display: inline-grid;place-items: center;width: 42px;height: 42px;margin-bottom: 24px;border-radius: 50%;background: linear-gradient(135deg, var(--main-color), var(--second-color));color: #fff;font-weight: 700}
.why-card h3 {margin-bottom: 10px;color: #172018;font-size: 1.35rem}
.why-card p {color: var(--grey-color)}

/* --- 5. Eco-responsabilite --- */
.domaine-eco {background: linear-gradient(135deg, #f1f4e6 0%, #fafaf2 50%, #e8efd8 100%);border-top: 1px solid rgba(33,33,33,.08);border-bottom: 1px solid rgba(33,33,33,.08)}
.domaine-eco__grid {align-items: center;gap: clamp(2rem, 4vw, 4.5rem)}
.domaine-eco__mosaic {width: 100%;align-self: center}
.domaine-eco__mosaic .domaine-intro__column--right {padding-top: clamp(1.8rem, 4vw, 3.4rem)}
.domaine-eco__body {display: grid;align-self: center;gap: clamp(.7rem, 1.4vh, 1.1rem)}
.domaine-eco__body .lead {color: var(--grey-color);max-width: 60ch}
.domaine-eco__list {margin: 8px 0 0;padding: 0;list-style: none;counter-reset: eco;display: grid;gap: 12px}
.domaine-eco__list li {counter-increment: eco;display: flex;align-items: center;gap: 14px;padding: 14px 18px;border-radius: var(--border-radius-xl);background: rgba(255, 255, 255, .82);border: 1px solid rgba(157, 174, 70, .18);color: var(--grey-color);font-size: .95rem;line-height: 1.55}
.domaine-eco__list li::before {content: counter(eco, decimal-leading-zero);flex: 0 0 36px;display: grid;place-items: center;width: 36px;height: 36px;border-radius: 50%;background: linear-gradient(135deg, var(--main-color), var(--second-color));color: #fff;font-size: .82rem;font-weight: 800;letter-spacing: .04em}
.domaine-eco__labels {display: flex;flex-wrap: wrap;gap: 22px;align-items: center;margin-top: 16px;padding-top: 22px;border-top: 1px solid rgba(150, 153, 22, .14)}
.domaine-eco__labels img {height: 76px;width: auto;display: block;filter: saturate(1.02)}

/* --- 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}
.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}

/* --- Responsive global page Domaine --- */
@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}
  .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}
  .domaine-plan__box {grid-template-columns: 1fr;text-align: left}
  .domaine-plan__icon {width: 58px;height: 58px}
  .domaine-plan__actions {grid-column: auto;flex-direction: column;align-items: stretch}
  .domaine-plan__actions .btn {width: 100%;justify-content: center}
}

