/* ========================================================
   HUB GITES — espace Les Poulardières (gites-spa-piscine-chambord)
   Réutilise les patterns .title, .grid-2 et le ss-hero
   ======================================================== */
.title-actions {display: flex;flex-wrap: wrap;gap: 12px;margin-top: 18px}

/* --- 1. Intro --- */
.hub-gites-intro .grid-2 {align-items: center}
.hub-gites-intro .media {border-radius: var(--border-radius-xl);overflow: hidden;box-shadow: 0 26px 70px rgba(15,22,15,.14);background: #f7f4ed}
.hub-gites-intro .media img {width: 100%;height: 100%;display: block;object-fit: cover;aspect-ratio: 4 / 5;filter: saturate(1.02) contrast(1.03)}
.hub-gites-intro .media.domaine-intro__mosaic {border-radius: 0;overflow: visible;box-shadow: none;background: transparent}
.hub-gites-intro .media.domaine-intro__mosaic img {aspect-ratio: auto}

/* --- 2. Grille des hébergements --- */
.hub-gites-list {background: linear-gradient(180deg, #fff 0%, #f9f7ee 100%)}
.hub-gites-list__intro {max-width: 820px;margin: 0 auto 46px;text-align: center}
.hub-gites-list__intro .before {margin-inline: auto}
.hub-gites-grid {display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: clamp(1.4rem, 2.4vw, 2rem)}

.gite-card {position: relative;border-radius: var(--border-radius-xl);background: #fff;box-shadow: 0 18px 50px rgba(15,22,15,.10);overflow: hidden;transition: transform .35s ease, box-shadow .35s ease}
.gite-card:hover {transform: translateY(-4px);box-shadow: 0 28px 70px rgba(15,22,15,.16)}
.gite-card__link {display: grid;grid-template-rows: auto 1fr;height: 100%;color: inherit;text-decoration: none}
.gite-card__media {position: relative;aspect-ratio: 4 / 3;overflow: hidden}
.gite-card__media picture {display: block;width: 100%;height: 100%}
.gite-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)}
.gite-card:hover .gite-card__media img {transform: scale(1.05)}
.gite-card__badge {position: absolute;top: 16px;left: 16px;padding: 6px 14px;border-radius: 999px;background: rgba(255,255,255,.94);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)}
.gite-card__body {display: grid;align-content: start;gap: 10px;padding: clamp(1.3rem, 2vw, 1.8rem)}
.gite-card__type {margin: 0;color: var(--main-color);font-size: .78rem;font-weight: 700;letter-spacing: .12em;text-transform: uppercase}
.gite-card__name {margin: 0;color: #172018;font-size: clamp(1.35rem, 1.8vw, 1.65rem);line-height: 1.15}
.gite-card__meta {list-style: none;margin: 4px 0 6px;padding: 0;display: flex;flex-wrap: wrap;gap: 8px 0;color: var(--grey-color);font-size: .85rem}
.gite-card__meta li {display: inline-flex;align-items: center;color: var(--second-color);font-size: .85rem}
.gite-card__meta li + li::before {content: "·";color: rgba(157,174,70,.55);font-weight: 700;margin: 0 5px;}
.gite-card__meta strong {color: #172018}
.gite-card__desc {margin: 0;color: var(--grey-color);font-size: .94rem;line-height: 1.6}
.gite-card__beds {margin: 0;color: rgba(75,75,75,.78);font-size: .82rem;line-height: 1.5;padding-top: 10px;border-top: 1px dashed rgba(157,174,70,.25)}
.gite-card__cta {display: inline-flex;align-items: center;gap: 10px;margin-top: 6px;color: var(--main-color);font-weight: 700;font-size: .95rem;transition: gap .25s ease, color .25s ease}
.gite-card__cta span {transition: transform .25s ease}
.gite-card:hover .gite-card__cta {gap: 16px;color: var(--second-color)}
.gite-card:hover .gite-card__cta span {transform: translateX(4px)}

.ap-photo-placeholder {position: relative;display: grid;place-items: center;min-height: 220px;aspect-ratio: 4 / 3;padding: clamp(1.2rem, 2vw, 1.8rem);border: 1px dashed rgba(15, 22, 15, .24);border-radius: var(--border-radius-xl);background: linear-gradient(135deg, #ecece6 0%, #d8d9d1 100%);color: #4c5148;text-align: center;overflow: hidden}
.ap-photo-placeholder::before {content: "";position: absolute;inset: 0;background: linear-gradient(135deg, transparent 0 48%, rgba(255,255,255,.34) 49% 51%, transparent 52% 100%), radial-gradient(circle at 20% 20%, rgba(255,255,255,.45), transparent 26%);pointer-events: none}
.ap-photo-placeholder__inner {position: relative;z-index: 1;display: grid;gap: 8px;justify-items: center}
.ap-photo-placeholder__label {display: inline-flex;align-items: center;padding: 6px 12px;border-radius: 999px;background: rgba(255,255,255,.74);color: var(--main-color);font-size: .72rem;font-weight: 800;letter-spacing: .12em;text-transform: uppercase}
.ap-photo-placeholder__title {margin: 0;color: #172018;font-size: clamp(1rem, 1.2vw, 1.15rem);font-weight: 700;line-height: 1.25}
.ap-photo-placeholder__hint {margin: 0;max-width: 34ch;color: #5c6253;font-size: .86rem;line-height: 1.5}
.gite-card__media .ap-photo-placeholder,
.gite-booking__media .ap-photo-placeholder,
.gite-gallery__item .ap-photo-placeholder {width: 100%;height: 100%;min-height: 0;border: 0;border-radius: 0}

/* --- 3. Services sur place --- */
.hub-gites-services {background: #fff}
.hub-gites-services .title.center {max-width: 820px;margin: 0 auto 46px}
.hub-gites-services .title.center .before {margin-inline: auto}
.hub-gites-services .hub-service-card {display: flex;flex-direction: column}
.event-format-card__pdf {position: relative;z-index: 1;margin-top: auto;display: inline-flex;align-items: center;justify-content: space-between;gap: .8rem;width: 100%;border: 1px solid rgba(142, 153, 45, .24);border-radius: 999px;background: rgba(249, 247, 238, .82);color: var(--main-color);font: inherit;font-size: .86rem;font-weight: 800;line-height: 1.15;text-align: left;padding: .75rem .9rem .75rem 1rem;cursor: pointer;transition: transform .2s ease, border-color .2s ease, background .2s ease, color .2s ease}
.event-format-card__pdf:hover {transform: translateY(-1px);border-color: var(--main-color);background: #fff;color: var(--text-color)}
.event-format-card__pdf:focus-visible {outline: 3px solid rgba(142, 153, 45, .35);outline-offset: 3px}
.event-format-card__pdf small {display: inline-flex;align-items: center;justify-content: center;min-width: 42px;height: 28px;border-radius: 999px;background: var(--main-color);color: #fff;font-size: .68rem;font-weight: 900;letter-spacing: .08em}
.hub-gites-list--process {background: linear-gradient(135deg, #163b34 0%, #214d43 100%);color: #fff;overflow: hidden}
.event-process {display: grid;grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);gap: clamp(2rem, 5vw, 4.8rem);align-items: center}
.event-process__intro {color: inherit}
.event-process__intro .before {color: #d7b37d}
.event-process__intro h2 {color: #fff}
.event-process__intro .lead {color: rgba(255, 255, 255, .82)}
.event-process__panel {position: relative;border: 1px solid rgba(255,255,255,.14);border-radius: var(--border-radius-xl);background: rgba(255,255,255,.08);box-shadow: 0 26px 80px rgba(0,0,0,.18);padding: clamp(1.4rem, 3vw, 2.2rem);backdrop-filter: blur(5px)}
.event-process__steps {list-style: none;margin: 0;padding: 0;display: grid;gap: 1rem}
.event-process__steps li {display: grid;grid-template-columns: auto minmax(0, 1fr);gap: 1rem;padding: 1rem 0;border-bottom: 1px solid rgba(255,255,255,.12)}
.event-process__steps li:first-child {padding-top: 0}
.event-process__steps li:last-child {border-bottom: 0}
.event-process__steps span {display: inline-flex;align-items: center;justify-content: center;width: 44px;height: 44px;border-radius: 50%;background: #fff;color: var(--main-color);font-weight: 900}
.event-process__steps h3 {margin: 0 0 .35rem;color: #fff;font-size: clamp(1.05rem, 1.5vw, 1.25rem)}
.event-process__steps p {margin: 0;color: rgba(255,255,255,.78);line-height: 1.65}
.event-process__cta {display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 1rem;margin-top: 1.4rem;padding-top: 1.4rem;border-top: 1px solid rgba(255,255,255,.12)}
.event-process__cta p {margin: 0;max-width: 520px;color: rgba(255,255,255,.82);line-height: 1.65}
.hub-services-grid {display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 18px;text-align: left}
.hub-service-card {position: relative;min-height: 220px;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}
.hub-service-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))}
.hub-service-card span {display: inline-grid;place-items: center;width: 42px;height: 42px;margin-bottom: 22px;border-radius: 50%;background: linear-gradient(135deg, var(--main-color), var(--second-color));color: #fff;font-weight: 700}
.hub-service-card .event-format-card__pdf span {display: inline;width: auto;height: auto;margin: 0;border-radius: 0;background: none;color: inherit;font-weight: inherit}
.hub-service-card h3 {margin: 0 0 10px;color: #172018;font-size: 1.3rem;line-height: 1.2}
.hub-service-card p {margin: 0;color: var(--grey-color);font-size: .94rem;line-height: 1.6}
.hub-service-card ul.check {margin: 0;padding: 0}
.hub-service-card ul.check li {font-size: .9rem;line-height: 1.55;color: var(--grey-color);margin-bottom: 8px}
.hub-service-card ul.check li:last-child {margin-bottom: 0}
.etang-section-note {max-width: 820px;margin: clamp(1.6rem, 3vw, 2.4rem) auto 0}
.hub-services__cta {display: flex;flex-wrap: wrap;justify-content: center;gap: 14px;margin-top: clamp(2rem, 3.5vw, 3rem)}

@media (max-width: 1024px) {
  .hub-gites-intro .grid-2 {grid-template-columns: 1fr}
  .hub-gites-intro .media {order: -1;max-width: 520px;margin-inline: auto}
  .hub-gites-grid,
  .hub-services-grid {grid-template-columns: repeat(2, minmax(0, 1fr))}
  .event-process {grid-template-columns: 1fr}
  .event-process__intro {max-width: 760px}
}
@media (max-width: 640px) {
  .hub-gites-grid,
  .hub-services-grid {grid-template-columns: 1fr}
  .event-process__panel {padding: 1.15rem;border-radius: var(--border-radius-lg)}
  .event-process__steps li {grid-template-columns: 1fr;gap: .7rem}
  .event-process__steps span {width: 38px;height: 38px}
  .event-process__cta {display: grid}
  .event-process__cta .btn {width: 100%}
  .event-format-card__pdf {font-size: .82rem}
}
/* --- /HUB GITES ------------------------------------------- */

