/* ==========================================================================
   WinInOne 2027 — feuille de style principale
   Palette et structure basées sur la maquette accueil2.png fournie par l'utilisateur.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Playfair+Display:ital@1&display=swap');

:root {
	--w27-navy: #16264a;
	--w27-navy-light: #1f3565;
	--w27-gold: #cf9a4c;
	--w27-gold-light: #e4b876;
	--w27-ink: #1c2333;
	--w27-grey: #667085;
	--w27-bg-soft: #f6f5f2;
	--w27-white: #ffffff;
	--w27-green: #3aa655;
	--w27-pink: #e0459a;
	--w27-purple: #8b5cf6;
	--w27-radius: 14px;
	--w27-radius-lg: 24px;
	--w27-shadow: 0 12px 32px rgba(22, 38, 74, 0.12);
	--w27-font: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--w27-font-accent: 'Playfair Display', Georgia, serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--w27-font);
	color: var(--w27-ink);
	line-height: 1.55;
	background: var(--w27-white);
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3 { margin: 0 0 .5em; line-height: 1.15; font-weight: 700; }

.w27-container {
	width: 100%;
	max-width: 1220px;
	margin: 0 auto;
	padding: 0 24px;
}

.screen-reader-text {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0,0,0,0); white-space: nowrap;
}

/* Buttons ------------------------------------------------------------- */
.w27-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 28px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.92rem;
	letter-spacing: .02em;
	text-transform: uppercase;
	transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
	white-space: nowrap;
}
.w27-btn:hover { transform: translateY(-2px); }
.w27-btn--navy { background: var(--w27-navy); color: var(--w27-white); }
.w27-btn--navy:hover { background: var(--w27-navy-light); }
.w27-btn--gold { background: var(--w27-gold); color: var(--w27-navy); }
.w27-btn--gold:hover { background: var(--w27-gold-light); }
.w27-btn--outline { background: transparent; border: 1.5px solid var(--w27-navy); color: var(--w27-navy); }
.w27-btn--outline:hover { background: var(--w27-navy); color: var(--w27-white); }

.w27-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	font-size: .88rem;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--w27-navy);
}
.w27-link-arrow span { transition: transform .15s ease; }
.w27-link-arrow:hover span { transform: translateX(4px); }

/* Header ---------------------------------------------------------------- */
.w27-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--w27-white);
	box-shadow: 0 1px 0 rgba(22,38,74,.06);
}
.w27-header__inner {
	display: flex;
	align-items: center;
	gap: 32px;
	padding: 18px 24px;
}
.w27-logo__text {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--w27-navy);
}
.w27-logo__text--light { color: var(--w27-white); }
/* Couvre à la fois le vrai logo Site Identity (the_custom_logo(), classe
   .custom-logo) et le repli image .w27-logo__image (voir header.php) — évite
   qu'un logo uploadé en grand format ne fasse déborder l'en-tête. */
.w27-logo img { max-height: 40px; width: auto; display: block; }

/* Logo réel (Identité du site) dans les pieds de page sombres : affiché en
   couleurs d'origine (2026-09-01, demande utilisateur — le filtre blanc
   ci-dessous écrasait le petit texte "www.wininone.golf by 18.events" du
   logo réel en un aplat illisible une fois réduit à 34px, contrairement au
   texte "WinInOne" simple qu'il remplaçait à l'origine). Le fond du logo
   étant transparent, les couleurs d'origine (vert/bleu) ressortent bien sur
   le navy du footer, comme dans l'en-tête (.w27-logo img, même hauteur). */
.w27-footer .custom-logo,
.w27-footer-partenaire .custom-logo,
.w27-footer .w27-logo__image,
.w27-footer-partenaire .w27-logo__image { max-height: 40px; width: auto; }
.w27-logo__accent { color: var(--w27-green); }

.w27-nav { flex: 1; }
.w27-nav__list {
	display: flex;
	gap: 28px;
	justify-content: center;
	flex-wrap: wrap;
}
.w27-nav__list a {
	font-size: .92rem;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: var(--w27-navy);
	white-space: nowrap;
}
.w27-nav__list a:hover { color: var(--w27-gold); }

.w27-nav-toggle {
	display: none;
	flex-direction: column;
	gap: 5px;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 6px;
}
.w27-nav-toggle span {
	width: 24px; height: 2px; background: var(--w27-navy); display: block;
}

/* Hero -------------------------------------------------------------- */
.w27-hero {
	position: relative;
	min-height: 560px;
	display: flex;
	align-items: center;
	background:
		linear-gradient(90deg, rgba(22,38,74,.72) 0%, rgba(22,38,74,.25) 55%, rgba(22,38,74,0) 75%),
		var(--w27-hero-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center/cover no-repeat;
	color: var(--w27-white);
}
.w27-hero__inner { width: 100%; padding-top: 60px; padding-bottom: 60px; }
.w27-hero__content { max-width: 560px; }
.w27-hero__title {
	font-size: clamp(2.2rem, 4.4vw, 3.2rem);
	color: var(--w27-white);
}
.w27-hero__title em {
	font-family: var(--w27-font-accent);
	font-style: italic;
	color: var(--w27-gold-light);
	font-weight: 400;
}
.w27-hero__subtitle {
	font-size: 1.05rem;
	color: rgba(255,255,255,.88);
	margin-bottom: 28px;
	max-width: 440px;
}

/* Hero accueil — fond vidéo (2026-09-01, demande utilisateur) : le
   positionnement/dégradé de la vidéo de fond ".w27-hero__bg-video" est géré
   par le CSS personnalisé existant (plugin Simple CSS, hors thème), pas ici
   — voir template-parts/hero.php. */

/* Patents ------------------------------------------------------------- */
.w27-patents { padding: 40px 0; border-bottom: 1px solid #ece9e2; }
.w27-patents__label {
	text-align: center;
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .78rem;
	color: var(--w27-grey);
	margin-bottom: 20px;
}
.w27-patents__row {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 56px;
	flex-wrap: wrap;
}
.w27-patents__item { text-align: center; max-width: 180px; }
.w27-patents__item img { margin: 0 auto; max-height: 64px; width: auto; }
.w27-patents__item figcaption { font-size: .72rem; color: var(--w27-grey); margin-top: 8px; }

/* Les 3 univers WinInOne/WinInZone/WininShot (page WinInOne, 2026-09-02) - */
.w27-wininone-univers { padding: 8px 0 24px; }
.w27-wininone-univers__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.w27-wininone-univers__card {
	display: flex;
	flex-direction: column;
	background: var(--w27-white);
	border: 1px solid #ece9e2;
	border-radius: var(--w27-radius-lg);
	overflow: hidden;
	box-shadow: var(--w27-shadow);
	text-decoration: none;
	transition: box-shadow .2s ease, transform .2s ease;
}
.w27-wininone-univers__card:hover { box-shadow: 0 16px 32px rgba(10,30,60,.14); transform: translateY(-2px); }
.w27-wininone-univers__media { aspect-ratio: 16/10; overflow: hidden; background: var(--w27-bg-soft); }
.w27-wininone-univers__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.w27-wininone-univers__body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 22px 24px 26px; }
/* 2026-09-03 : boîte de taille fixe (mêmes dimensions pour les 3 cartes) autour
   du logo, avec object-fit:contain sur l'image — les 3 vrais logos WinInOne/
   WininZone/WininShot n'ont pas la même marge blanche interne ni le même ratio
   dans leurs fichiers sources ; sans boîte commune, une hauteur d'image
   identique seule ne suffit pas à les faire paraître "de même taille" (demande
   utilisateur). */
.w27-wininone-univers__logo-boite { display: flex; align-items: center; justify-content: flex-start; height: 40px; width: 100%; max-width: 170px; }
.w27-wininone-univers__logo { height: 100%; width: auto; max-width: 100%; object-fit: contain; object-position: left center; }
/* 2026-09-02 : correctif suite retour utilisateur ("le logo WinInOne est plus
   petit que WininZone et WininShot") — la boîte de taille fixe ci-dessus ne
   suffisait pas : mesure pixel par pixel des 3 fichiers réels (bornes du
   texte non transparent dans le PNG) → Logo_WinInOne.png a une marge
   blanche verticale interne (le texte du logo n'occupe que ~81 % de la
   hauteur du fichier), alors que Logo_WininZone.png et Logo_WininShot.png
   occupent quasiment 100 % de leur hauteur. À hauteur de canevas égale
   (40px), le texte "WinInOne" s'affichait donc ~19 % plus petit que les 2
   autres. Correctif : on réduit légèrement le canevas de WininZone/
   WininShot (plutôt que d'agrandir WinInOne au-delà de la boîte) pour que
   la hauteur RÉELLEMENT VISIBLE du texte des 3 logos soit désormais égale. */
.w27-wininone-univers__logo--wininzone,
.w27-wininone-univers__logo--wininshot { height: 32px; }
.w27-wininone-univers__titre { font-family: var(--w27-font-accent); font-size: 1.15rem; color: var(--w27-navy); }
.w27-wininone-univers__texte { color: var(--w27-grey); font-size: .88rem; margin-bottom: 6px; }
.w27-wininone-univers__card .w27-link-arrow { color: var(--w27-navy); font-size: .82rem; font-weight: 600; }

/* Section titles ------------------------------------------------------ */
.w27-section-title { font-size: clamp(1.5rem, 3vw, 2rem); color: var(--w27-navy); }
.w27-section-title--center { text-align: center; }
.w27-section-subtitle { color: var(--w27-grey); }
.w27-section-subtitle--center { text-align: center; margin: -8px auto 0; max-width: 560px; }

/* How it works ---------------------------------------------------------- */
.w27-hiw { padding: 72px 0 56px; }
.w27-hiw__list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	margin-top: 40px;
	text-align: center;
}
.w27-hiw__number {
	display: block;
	font-family: var(--w27-font-accent);
	font-size: 1.1rem;
	color: var(--w27-gold);
	margin-bottom: 6px;
}
.w27-hiw__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px; height: 64px;
	border-radius: 999px;
	border: 1.5px solid var(--w27-gold);
	color: var(--w27-navy);
	margin: 0 auto 16px;
}
.w27-hiw__icon svg { width: 30px; height: 30px; }
.w27-hiw__title { font-size: 1.1rem; color: var(--w27-navy); margin-bottom: 6px; }
.w27-hiw__desc { color: var(--w27-grey); font-size: .95rem; margin: 0; }

/* Product cards --------------------------------------------------------- */
.w27-products { padding: 24px 0 72px; }
.w27-products__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.w27-product-card {
	--w27-card-color: var(--w27-navy);
	border-radius: var(--w27-radius-lg);
	overflow: hidden;
	box-shadow: var(--w27-shadow);
	background: var(--w27-white);
	display: flex;
	flex-direction: column;
}
.w27-product-card__media { aspect-ratio: 4/3; overflow: hidden; }
.w27-product-card__media img { width: 100%; height: 100%; object-fit: cover; }
.w27-product-card__body { padding: 22px 24px 26px; }
.w27-product-card__title { color: var(--w27-card-color); font-size: 1.2rem; margin-bottom: 8px; }
.w27-product-card__desc { color: var(--w27-grey); font-size: .92rem; margin-bottom: 16px; }
.w27-product-card .w27-link-arrow { color: var(--w27-card-color); }

/* Promo banners ----------------------------------------------------------- */
.w27-banners { display: flex; flex-direction: column; }
.w27-banner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 360px;
}
.w27-banner--left { direction: rtl; }
.w27-banner--left .w27-banner__content { direction: ltr; }
.w27-banner__media { background-size: cover; background-position: center; }
.w27-banner__content {
	background: var(--w27-bg-soft);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 56px 64px;
}
.w27-banner__label {
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .78rem;
	font-weight: 700;
	color: var(--w27-gold);
	margin-bottom: 10px;
}
.w27-banner__title { color: var(--w27-navy); font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.w27-banner__text { color: var(--w27-grey); margin-bottom: 22px; max-width: 420px; }

/* Winners list ----------------------------------------------------------- */
.w27-winners { padding: 72px 0; background: var(--w27-bg-soft); }
.w27-winners__list { margin-top: 36px; display: flex; flex-direction: column; gap: 14px; }
.w27-winners__row {
	display: flex;
	align-items: center;
	gap: 20px;
	background: var(--w27-white);
	border-radius: var(--w27-radius);
	padding: 14px 20px;
	box-shadow: 0 4px 16px rgba(22,38,74,.06);
}
.w27-winners__thumb {
	/* Agrandi x3 (2026-09-01, demande utilisateur) : 96×72 -> 288×216. */
	width: 288px; height: 216px;
	object-fit: cover;
	border-radius: 10px;
	flex-shrink: 0;
}
.w27-winners__info { flex: 1; min-width: 0; }
.w27-winners__name {
	display: flex;
	align-items: baseline;
	gap: 8px;
	font-size: 1.05rem;
	color: var(--w27-navy);
	margin: 0 0 4px;
}
.w27-winners__badge {
	display: inline-block;
	border: 1px solid var(--w27-gold);
	color: var(--w27-gold);
	border-radius: 999px;
	padding: 2px 12px;
	font-size: .72rem;
	font-weight: 600;
	margin-bottom: 4px;
}
.w27-winners__desc { margin: 4px 0 0; color: var(--w27-grey); font-size: .88rem; }
.w27-winners__row .w27-btn { flex-shrink: 0; padding: 10px 20px; font-size: .78rem; }

/* Actualités Instagram (accueil, 2026-08-19) ------------------------------ */
.w27-instagram { padding: 56px 0 72px; }
.w27-instagram__head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}
.w27-instagram__icon {
	width: 40px; height: 40px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--w27-navy);
	color: #fff;
	flex-shrink: 0;
}
.w27-instagram__icon svg { width: 22px; height: 22px; }
.w27-instagram__head .w27-section-title { margin: 0; flex: 1 1 auto; }
.w27-instagram__feed { margin-top: 8px; }
.w27-instagram__fallback {
	background: #fbfaf7;
	border: 1px dashed rgba(0,0,0,.12);
	border-radius: 12px;
	padding: 24px;
	color: var(--w27-grey);
	font-size: .95rem;
}
.w27-instagram__fallback a { color: var(--w27-navy); font-weight: 600; }
.w27-instagram__fallback em { display: block; margin-top: 8px; font-size: .82rem; opacity: .75; }

/* Footer ------------------------------------------------------------------ */
.w27-footer { background: var(--w27-navy); color: rgba(255,255,255,.85); }
.w27-footer__top {
	display: grid;
	/* 2 colonnes (2026-09-01) : la colonne du milieu (menu "Règlement"
	   dupliqué) a été supprimée, voir footer.php. */
	grid-template-columns: 1.6fr 1fr;
	gap: 40px;
	padding: 64px 24px 40px;
}
.w27-footer__brand p { color: rgba(255,255,255,.65); margin-top: 8px; }
.w27-footer__contact { margin-top: 20px; display: flex; flex-direction: column; gap: 10px; }
.w27-footer__contact li { display: flex; align-items: center; gap: 10px; font-size: .88rem; }
.w27-footer__picto { width: 20px; height: 20px; }
.w27-footer__list { display: flex; flex-direction: column; gap: 10px; }
.w27-footer__list a:hover { color: var(--w27-gold-light); }
.w27-footer__newsletter-label { font-weight: 600; margin-bottom: 14px; }
.w27-footer__social { display: flex; gap: 14px; }
.w27-social {
	width: 36px; height: 36px;
	border-radius: 999px;
	background: rgba(255,255,255,.12);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: rgba(255,255,255,.85);
	transition: background .15s, color .15s;
}
/* Bug fix (2026-08-19) : le cercle était vide (aucune icône), rendu invisible
   sur toute page du nouveau thème — voir le commentaire dans footer.php. */
.w27-social svg { width: 18px; height: 18px; }
.w27-social:hover { background: var(--w27-gold); color: var(--w27-navy); }
.w27-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); }
.w27-footer__bottom-inner { padding: 20px 24px; font-size: .8rem; color: rgba(255,255,255,.6); }

/* Page header générique (pages intérieures) -------------------------------- */
.w27-page-header { padding: 56px 0 0; background: linear-gradient(180deg, #fbfaf7, #ffffff); }
.w27-page-header__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: center;
	padding-bottom: 56px;
}
.w27-page-header__label {
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .78rem;
	font-weight: 700;
	color: var(--w27-gold);
	margin-bottom: 10px;
}
.w27-page-header__title { font-size: clamp(2rem, 4vw, 2.8rem); color: var(--w27-navy); }
.w27-page-header__subtitle { font-family: var(--w27-font-accent); font-style: italic; color: var(--w27-gold); font-size: 1.2rem; margin-top: -6px; }
.w27-page-header__text { color: var(--w27-grey); max-width: 420px; }
.w27-page-header__media {
	aspect-ratio: 16/10;
	border-radius: var(--w27-radius-lg);
	background: linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light)) center/cover no-repeat;
}
/* CORRECTIF (2026-09-03) : quand template-parts/page-header.php ne reçoit
   aucune image (pages légales génériques via page.php), le bloc média n'est
   plus dans le DOM du tout (voir ce fichier) — cette classe fait juste
   repasser la grille 2 colonnes en 1 seule colonne pleine largeur pour que le
   titre ne reste pas coincé dans une moitié de page vide. */
.w27-page-header__inner--sans-media { grid-template-columns: 1fr; }

/* Déclarations -------------------------------------------------------------- */
.w27-btn--brand { background: var(--w27-decl-color, var(--w27-navy)); color: var(--w27-white); }
.w27-btn--brand:hover { opacity: .88; }

.w27-declarations { padding: 64px 0 24px; }
.w27-declarations__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	margin-top: 36px;
}
.w27-decl-card {
	--w27-decl-color: var(--w27-navy);
	text-align: center;
	background: var(--w27-white);
	border-radius: var(--w27-radius-lg);
	box-shadow: var(--w27-shadow);
	padding: 32px 28px 28px;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.w27-decl-card__badge {
	display: inline-block;
	background: var(--w27-decl-color);
	color: var(--w27-white);
	border-radius: 999px;
	padding: 4px 16px;
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	margin-bottom: 18px;
}
.w27-decl-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 76px; height: 76px;
	border-radius: 999px;
	border: 1.5px solid var(--w27-gold);
	color: var(--w27-decl-color);
	margin-bottom: 16px;
}
.w27-decl-card__icon svg { width: 34px; height: 34px; }
.w27-decl-card__icon--picto { object-fit: contain; padding: 10px; box-sizing: border-box; }
.w27-decl-card__logo { height: 32px; margin-bottom: 16px; }
.w27-decl-card__logo-text { font-size: 1.3rem; font-weight: 700; color: var(--w27-decl-color); margin-bottom: 16px; }
.w27-decl-card__desc { color: var(--w27-grey); font-size: .92rem; margin-bottom: 22px; }
.w27-decl-card .w27-btn { width: 100%; justify-content: center; margin-bottom: 12px; }
.w27-decl-card__url {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: .78rem;
	color: var(--w27-decl-color);
	word-break: break-all;
}

.w27-decl-help { padding: 24px 0 72px; }
.w27-decl-help__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-top: 36px;
}
.w27-decl-help__item {
	display: flex;
	align-items: center;
	gap: 16px;
	border: 1px solid #e7e5df;
	border-radius: var(--w27-radius);
	padding: 20px;
}
.w27-decl-help__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	border-radius: 999px;
	border: 1.5px solid var(--w27-decl-color, var(--w27-navy));
	color: var(--w27-decl-color, var(--w27-navy));
	flex-shrink: 0;
}
.w27-decl-help__icon svg { width: 22px; height: 22px; }
.w27-decl-help__icon--picto { object-fit: contain; padding: 6px; box-sizing: border-box; }
.w27-decl-help__item h3 { font-size: 1rem; color: var(--w27-navy); margin: 0 0 2px; }
.w27-decl-help__item p { font-size: .85rem; color: var(--w27-grey); margin: 0; }
.w27-decl-help__tip {
	display: flex;
	align-items: center;
	gap: 12px;
	justify-content: center;
	background: var(--w27-bg-soft);
	border-radius: var(--w27-radius);
	padding: 18px 24px;
	margin-top: 32px;
	color: var(--w27-navy);
	font-weight: 500;
}
.w27-decl-help__tip span { color: var(--w27-gold); font-size: 1.1rem; }

/* Race to destination (fiches destination premium) ------------------------- */
.w27-race-hero {
	position: relative;
	min-height: 620px;
	display: flex;
	align-items: flex-end;
	background:
		linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.86) 40%, rgba(255,255,255,0) 66%),
		var(--w27-race-hero-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center/cover no-repeat;
}
.w27-race-hero__inner { width: 100%; padding: 110px 0 60px; }
.w27-race-hero__content { max-width: 640px; }
.w27-race-hero__label {
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .78rem;
	font-weight: 700;
	color: var(--w27-gold);
	margin-bottom: 14px;
}
.w27-race-hero__title { font-size: clamp(2.2rem, 4.6vw, 3.4rem); color: var(--w27-navy); }
.w27-race-hero__subtitle {
	font-family: var(--w27-font-accent);
	font-style: italic;
	color: var(--w27-gold);
	font-size: 1.3rem;
	margin: -6px 0 18px;
}
.w27-race-hero__text { color: var(--w27-grey); max-width: 480px; margin-bottom: 30px; }
.w27-race-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }

/* Vidéo de fond des fiches "Race to destination" (2026-09-02, demande
   utilisateur) — mécanisme dédié à ce gabarit (pas le CSS générique
   ".w27-hero__bg-video" du plugin admin Simple CSS, qui applique un
   dégradé SOMBRE pensé pour les heros à texte blanc de l'accueil/WinInOne :
   incompatible avec le dégradé CLAIR + texte marine de ces fiches). Reprend
   exactement le même dégradé que le fond photo ci-dessus (.w27-race-hero,
   propriété "background"), déplacé sur un ::before car il serait sinon
   entièrement masqué par la vidéo (opaque, au-dessus). Voir
   template-parts/race-hero.php. */
.w27-race-hero--video { overflow: hidden; }
.w27-race-hero__bg-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.w27-race-hero--video::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.86) 40%, rgba(255,255,255,0) 66%);
	z-index: 1;
}
.w27-race-hero > *:not(.w27-race-hero__bg-video) { position: relative; z-index: 2; }

.w27-race-stats { background: var(--w27-white); box-shadow: 0 2px 20px rgba(22,38,74,.08); position: relative; z-index: 2; }
.w27-race-stats__row {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 24px;
	padding: 28px 24px;
}
.w27-race-stats__item {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1 1 150px;
}
.w27-race-stats__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	flex-shrink: 0;
	border-radius: 999px;
	border: 1.5px solid var(--w27-gold);
	color: var(--w27-navy);
}
.w27-race-stats__icon svg { width: 22px; height: 22px; }
.w27-race-stats__text { font-size: .88rem; font-weight: 600; color: var(--w27-navy); }

.w27-race-intro { padding: 72px 0; }
.w27-race-intro__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.w27-race-intro__label {
	text-transform: uppercase;
	letter-spacing: .1em;
	font-size: .74rem;
	font-weight: 700;
	color: var(--w27-gold);
	margin-bottom: 8px;
}
.w27-race-intro__checklist { display: flex; flex-direction: column; gap: 10px; margin: 20px 0 24px; }
.w27-race-intro__checklist li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: .92rem;
	color: var(--w27-ink);
}
.w27-race-intro__checklist li span { color: var(--w27-gold); flex-shrink: 0; margin-top: 2px; }
.w27-race-intro__text { color: var(--w27-grey); margin-bottom: 16px; }
.w27-race-intro__photo {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	border-radius: var(--w27-radius-lg);
	margin-top: 8px;
}

.w27-race-gallery { padding: 24px 0 64px; background: var(--w27-bg-soft); }
.w27-race-gallery .w27-section-title { padding-top: 48px; }
.w27-race-gallery__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-top: 36px;
}
.w27-race-gallery__item { aspect-ratio: 4/3; border-radius: var(--w27-radius); overflow: hidden; }
.w27-race-gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.w27-race-gallery__more { text-align: center; margin-top: 32px; }

.w27-race-highlights { padding: 64px 0; }
.w27-race-highlights__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin-top: 36px;
}
.w27-race-highlights__card { text-align: left; }
.w27-race-highlights__media {
	aspect-ratio: 4/3;
	border-radius: var(--w27-radius);
	background-size: cover;
	background-position: center;
	margin-bottom: 14px;
}
.w27-race-highlights__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	border-radius: 999px;
	border: 1.5px solid var(--w27-gold);
	color: var(--w27-navy);
	margin-bottom: 10px;
}
.w27-race-highlights__icon svg { width: 20px; height: 20px; }
.w27-race-highlights__title { font-size: 1rem; color: var(--w27-navy); margin-bottom: 4px; }
.w27-race-highlights__text { font-size: .86rem; color: var(--w27-grey); margin-bottom: 10px; }

.w27-race-cta {
	position: relative;
	background:
		linear-gradient(90deg, rgba(22,38,74,.85), rgba(22,38,74,.6)),
		var(--w27-race-cta-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center/cover no-repeat;
	color: var(--w27-white);
	padding: 80px 0;
}
.w27-race-cta__inner { text-align: center; max-width: 620px; margin: 0 auto; }
.w27-race-cta__title { color: var(--w27-white); font-size: clamp(1.6rem, 3vw, 2.2rem); }
.w27-race-cta__text { color: rgba(255,255,255,.82); margin-bottom: 28px; }

/* Boutons & titres supplémentaires (fiches Partenaire) --------------------- */
.w27-btn--partenaire-brand { background: var(--w27-partenaire-accent, var(--w27-gold)); color: var(--w27-white); }
.w27-btn--partenaire-brand:hover { opacity: .88; }
.w27-btn--outline-light { background: transparent; border: 1.5px solid rgba(255,255,255,.55); color: var(--w27-white); }
.w27-btn--outline-light:hover { background: var(--w27-white); color: var(--w27-navy); }
.w27-section-title--small { font-size: clamp(1.1rem, 2vw, 1.4rem); }

/* Fiches Partenaire (Hyatt, Riad, Michlifen resort, PMD golf) --------------- */
.w27-partenaire-hero {
	position: relative;
	min-height: 560px;
	display: flex;
	align-items: center;
	background:
		linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 42%, rgba(255,255,255,0) 70%),
		var(--w27-partenaire-hero-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center/cover no-repeat;
}
/* Vidéo de fond (2026-09-02, demande utilisateur) — même mécanisme dédié et
   mêmes raisons que ".w27-race-hero--video" ci-dessus (voir ce commentaire),
   dégradé repris de la propriété "background" de .w27-partenaire-hero. Voir
   template-parts/partenaire-hero.php. */
.w27-partenaire-hero--video { overflow: hidden; }
.w27-partenaire-hero__bg-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.w27-partenaire-hero--video::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 42%, rgba(255,255,255,0) 70%);
	z-index: 1;
}
.w27-partenaire-hero > *:not(.w27-partenaire-hero__bg-video) { position: relative; z-index: 2; }
.w27-partenaire-hero__inner { width: 100%; padding: 96px 0 56px; display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.w27-partenaire-hero__content { max-width: 620px; }
.w27-partenaire-hero__label {
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .78rem;
	font-weight: 700;
	color: var(--w27-partenaire-accent, var(--w27-gold));
	margin-bottom: 14px;
}
.w27-partenaire-hero__title { font-size: clamp(2.1rem, 4.4vw, 3.2rem); color: var(--w27-navy); }
.w27-partenaire-hero__subtitle {
	font-family: var(--w27-font-accent);
	font-style: italic;
	color: var(--w27-partenaire-accent, var(--w27-gold));
	font-size: 1.25rem;
	margin: -6px 0 16px;
}
.w27-partenaire-hero__text { color: var(--w27-grey); max-width: 480px; margin-bottom: 28px; }
.w27-partenaire-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }
.w27-partenaire-hero__logo {
	width: 116px; height: 116px;
	object-fit: contain;
	background: var(--w27-white);
	border-radius: var(--w27-radius);
	padding: 16px;
	box-shadow: var(--w27-shadow);
	flex-shrink: 0;
}

.w27-partenaire-highlights { background: var(--w27-white); box-shadow: 0 2px 20px rgba(22,38,74,.08); position: relative; z-index: 2; }
.w27-partenaire-highlights__row { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 24px; padding: 28px 24px; }
.w27-partenaire-highlights__item { display: flex; align-items: center; gap: 12px; flex: 1 1 150px; }
.w27-partenaire-highlights__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	flex-shrink: 0;
	border-radius: 999px;
	border: 1.5px solid var(--w27-partenaire-accent, var(--w27-gold));
	color: var(--w27-navy);
}
.w27-partenaire-highlights__icon svg { width: 22px; height: 22px; }
.w27-partenaire-highlights__text { font-size: .88rem; font-weight: 600; color: var(--w27-navy); }

.w27-partenaire-intro { padding: 72px 0; }
.w27-partenaire-intro__grid { display: grid; grid-template-columns: 1fr; gap: 56px; }
.w27-partenaire-intro__grid--with-box { grid-template-columns: 1.15fr .85fr; align-items: start; }
.w27-partenaire-intro__main { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.w27-partenaire-intro__grid--with-box .w27-partenaire-intro__main { grid-template-columns: 1fr; }
.w27-partenaire-intro__photo {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	border-radius: var(--w27-radius-lg);
}
.w27-partenaire-intro__grid--with-box .w27-partenaire-intro__photo { order: -1; }
.w27-partenaire-intro__logo { display: block; height: 44px; width: auto; max-width: 200px; object-fit: contain; margin-bottom: 14px; }
.w27-partenaire-intro__label {
	text-transform: uppercase;
	letter-spacing: .1em;
	font-size: .74rem;
	font-weight: 700;
	color: var(--w27-partenaire-accent, var(--w27-gold));
	margin-bottom: 8px;
}
.w27-partenaire-intro__paragraph { color: var(--w27-grey); margin-bottom: 14px; }
.w27-partenaire-intro__box { background: var(--w27-bg-soft); border-radius: var(--w27-radius-lg); padding: 32px; }
.w27-partenaire-intro__box h3 { color: var(--w27-navy); font-size: 1.1rem; margin-bottom: 18px; }
.w27-partenaire-intro__box-list { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.w27-partenaire-intro__box-list li { display: flex; align-items: flex-start; gap: 10px; font-size: .92rem; color: var(--w27-ink); }
.w27-partenaire-intro__box-list li span { color: var(--w27-partenaire-accent, var(--w27-gold)); flex-shrink: 0; margin-top: 2px; }

.w27-partenaire-blocs { padding: 24px 0 72px; background: var(--w27-bg-soft); }
.w27-partenaire-blocs__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.w27-partenaire-blocs__item { background: var(--w27-white); border-radius: var(--w27-radius-lg); padding: 32px; box-shadow: var(--w27-shadow); }
/* Nombre de blocs impair (ex. Michlifen : 3) : le dernier occupe toute la largeur plutôt que de laisser une case vide à côté. */
.w27-partenaire-blocs__item:last-child:nth-child(odd) { grid-column: 1 / -1; }
.w27-partenaire-blocs__item:last-child:nth-child(odd) .w27-partenaire-blocs__body { max-width: 640px; }
.w27-partenaire-blocs__item--photo:last-child:nth-child(odd) { display: flex; align-items: stretch; }
.w27-partenaire-blocs__item--photo:last-child:nth-child(odd) .w27-partenaire-blocs__photo { width: 42%; aspect-ratio: auto; object-fit: cover; }
.w27-partenaire-blocs__item--photo:last-child:nth-child(odd) .w27-partenaire-blocs__body { flex: 1; max-width: none; }
.w27-partenaire-blocs__item--photo { padding: 0; overflow: hidden; }
.w27-partenaire-blocs__item--photo .w27-partenaire-blocs__body { padding: 24px 28px 28px; }
.w27-partenaire-blocs__photo { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.w27-partenaire-blocs__label {
	text-transform: uppercase;
	letter-spacing: .1em;
	font-size: .72rem;
	font-weight: 700;
	color: var(--w27-partenaire-accent, var(--w27-gold));
	margin-bottom: 8px;
}
.w27-partenaire-blocs__title { font-size: 1.15rem; color: var(--w27-navy); margin-bottom: 10px; }
.w27-partenaire-blocs__list { display: flex; flex-direction: column; gap: 8px; }
.w27-partenaire-blocs__list li { display: flex; align-items: flex-start; gap: 8px; font-size: .88rem; color: var(--w27-ink); }
.w27-partenaire-blocs__list li span { color: var(--w27-partenaire-accent, var(--w27-gold)); flex-shrink: 0; margin-top: 2px; }
.w27-partenaire-blocs__text { color: var(--w27-grey); font-size: .92rem; }

.w27-partenaire-banniere { background: var(--w27-navy); color: var(--w27-white); padding: 56px 0; }
.w27-partenaire-banniere__inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 32px; }
.w27-partenaire-banniere__brand { max-width: 280px; }
.w27-partenaire-banniere__brand p { color: rgba(255,255,255,.7); margin-top: 8px; font-size: .9rem; }
.w27-partenaire-banniere__items { display: flex; gap: 32px; flex-wrap: wrap; }
.w27-partenaire-banniere__item { display: flex; align-items: center; gap: 10px; font-size: .88rem; font-weight: 600; }
.w27-partenaire-banniere__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px; height: 36px;
	flex-shrink: 0;
	border-radius: 999px;
	border: 1.5px solid rgba(255,255,255,.4);
}
.w27-partenaire-banniere__icon svg { width: 18px; height: 18px; }

.w27-partenaire-temoignage { padding: 72px 0; background: var(--w27-bg-soft); text-align: center; }
.w27-partenaire-temoignage__inner { max-width: 680px; margin: 0 auto; }
.w27-partenaire-temoignage__quote {
	font-family: var(--w27-font-accent);
	font-size: 3rem;
	color: var(--w27-partenaire-accent, var(--w27-gold));
	line-height: 1;
	display: block;
	margin-bottom: 8px;
}
.w27-partenaire-temoignage__text { font-family: var(--w27-font-accent); font-style: italic; font-size: 1.3rem; color: var(--w27-navy); margin-bottom: 18px; }
.w27-partenaire-temoignage__auteur { text-transform: uppercase; letter-spacing: .1em; font-size: .78rem; font-weight: 700; color: var(--w27-grey); }

.w27-partenaire-programme { padding: 72px 0; }
.w27-partenaire-programme__frise {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 20px 8px;
	margin: 36px 0 48px;
	padding-top: 20px;
	position: relative;
}
.w27-partenaire-programme__frise::before {
	content: '';
	position: absolute;
	top: 38px; left: 0; right: 0;
	height: 1px;
	background: #e3e1da;
	z-index: 0;
}
.w27-partenaire-programme__frise li {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 4px;
	flex: 1 1 110px;
	padding: 0 6px;
}
.w27-partenaire-programme__numero {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px; height: 34px;
	border-radius: 999px;
	background: var(--w27-white);
	border: 1.5px solid var(--w27-partenaire-accent, var(--w27-gold));
	color: var(--w27-navy);
	font-family: var(--w27-font-accent);
	font-style: italic;
	font-size: .95rem;
	margin-bottom: 6px;
}
.w27-partenaire-programme__frise strong { display: block; color: var(--w27-navy); font-size: .86rem; }
.w27-partenaire-programme__frise span { color: var(--w27-grey); font-size: .76rem; }
.w27-partenaire-programme__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 40px; }
.w27-partenaire-programme__box { background: var(--w27-bg-soft); border-radius: var(--w27-radius-lg); padding: 28px; }
.w27-partenaire-programme__box h3 { font-size: 1rem; color: var(--w27-navy); margin-bottom: 16px; }
.w27-partenaire-programme__box ul { display: flex; flex-direction: column; gap: 8px; font-size: .88rem; color: var(--w27-grey); }
.w27-partenaire-programme__inclus-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.w27-partenaire-programme__sous-titre { font-weight: 600; color: var(--w27-navy); margin-bottom: 10px; font-size: .86rem; }
.w27-partenaire-programme__check, .w27-partenaire-programme__cross { display: flex; flex-direction: column; gap: 8px; }
.w27-partenaire-programme__check li, .w27-partenaire-programme__cross li { display: flex; align-items: flex-start; gap: 8px; font-size: .86rem; color: var(--w27-ink); }
.w27-partenaire-programme__check li span { color: var(--w27-green); flex-shrink: 0; }
.w27-partenaire-programme__cross li span { color: #c94b4b; flex-shrink: 0; }
.w27-partenaire-programme__contact {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	background: var(--w27-navy);
	color: var(--w27-white);
	border-radius: var(--w27-radius-lg);
	padding: 28px 32px;
}
.w27-partenaire-programme__contact-photo { width: 56px; height: 56px; border-radius: 999px; object-fit: cover; flex-shrink: 0; }
.w27-partenaire-programme__contact-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px; height: 56px;
	border-radius: 999px;
	background: rgba(255,255,255,.12);
	flex-shrink: 0;
}
.w27-partenaire-programme__contact-icon svg { width: 26px; height: 26px; }
.w27-partenaire-programme__contact-label { font-size: .76rem; text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.6); margin-bottom: 4px; }
.w27-partenaire-programme__contact-nom { font-weight: 700; }
.w27-partenaire-programme__contact-nom span { font-weight: 400; color: rgba(255,255,255,.7); margin-left: 6px; }
.w27-partenaire-programme__contact a { margin-left: auto; font-size: .88rem; text-decoration: underline; }

/* Mise en page bas de page "PMD Golf" (2026-08-27) ------------------------ */
.w27-pmd-etapes { padding: 64px 0; }
.w27-pmd-etapes__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 36px; }
.w27-pmd-etapes__item { text-align: center; padding: 8px; }
.w27-pmd-etapes__numero {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	border-radius: 999px;
	border: 1.5px solid var(--w27-partenaire-accent, var(--w27-green));
	color: var(--w27-partenaire-accent, var(--w27-green));
	font-weight: 700;
	margin-bottom: 14px;
}
.w27-pmd-etapes__item p { color: var(--w27-navy); font-size: .92rem; margin: 0; }

.w27-pmd-univers { padding: 24px 0 64px; background: var(--w27-bg-soft); }
.w27-pmd-univers__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 36px; }
.w27-pmd-univers__card { background: var(--w27-white); border-radius: var(--w27-radius-lg); padding: 28px; }
.w27-pmd-univers__card h3 { color: var(--w27-partenaire-accent, var(--w27-green)); margin: 0 0 10px; font-size: 1.15rem; }
.w27-pmd-univers__card p { color: var(--w27-grey); margin: 0; font-size: .92rem; }

.w27-pmd-terrain { padding: 64px 0; }
.w27-pmd-terrain__liste { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 32px; list-style: none; padding: 0; }
.w27-pmd-terrain__liste li {
	background: var(--w27-bg-soft);
	border-radius: var(--w27-radius);
	padding: 18px 22px;
	font-weight: 600;
	color: var(--w27-navy);
}

.w27-pmd-tagline { padding: 0 0 64px; text-align: center; }
.w27-pmd-tagline p {
	font-family: var(--w27-font-accent);
	font-style: italic;
	font-size: 1.4rem;
	color: var(--w27-navy);
	max-width: 620px;
	margin: 0 auto;
}

@media (max-width: 860px) {
	.w27-pmd-etapes__grid { grid-template-columns: repeat(2, 1fr); }
	.w27-pmd-univers__grid { grid-template-columns: 1fr; }
	.w27-pmd-terrain__liste { grid-template-columns: 1fr; }
}

.w27-partenaire-galerie { padding: 24px 0 64px; background: var(--w27-bg-soft); }
.w27-partenaire-galerie__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 8px; }
.w27-partenaire-galerie__item { aspect-ratio: 4/3; border-radius: var(--w27-radius); overflow: hidden; }
.w27-partenaire-galerie__item img { width: 100%; height: 100%; object-fit: cover; }

.w27-partenaire-autres { padding: 64px 0; }
.w27-partenaire-autres__grid { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 40px; margin-top: 36px; }
.w27-partenaire-autres__item { display: flex; align-items: center; justify-content: center; height: 60px; opacity: .75; transition: opacity .15s ease; }
.w27-partenaire-autres__item:hover { opacity: 1; }
.w27-partenaire-autres__item img { max-height: 100%; width: auto; filter: grayscale(1); }
.w27-partenaire-autres__item span { font-family: var(--w27-font-accent); font-style: italic; font-size: 1.1rem; color: var(--w27-navy); }

.w27-partenaire-cta {
	position: relative;
	background: linear-gradient(90deg, rgba(22,38,74,.88), rgba(22,38,74,.72)), var(--w27-navy) center/cover no-repeat;
	color: var(--w27-white);
	padding: 64px 0;
}
.w27-partenaire-cta__inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 24px; }
.w27-partenaire-cta__title { color: var(--w27-white); font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin-bottom: 6px; }
.w27-partenaire-cta__text { color: rgba(255,255,255,.8); max-width: 480px; }

/* Pied de page enrichi des fiches Partenaire -------------------------------- */
.w27-footer-partenaire { background: var(--w27-navy); color: rgba(255,255,255,.85); }
.w27-footer-partenaire__top {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
	gap: 32px;
	padding: 64px 24px 40px;
}
.w27-footer-partenaire__brand p { color: rgba(255,255,255,.65); margin-top: 8px; font-size: .88rem; }
.w27-footer-partenaire__col h3 { color: var(--w27-white); font-size: .92rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 16px; }
.w27-footer-partenaire__col ul { display: flex; flex-direction: column; gap: 10px; }
.w27-footer-partenaire__col a:hover { color: var(--w27-gold-light); }
.w27-footer-partenaire__legal-links { display: inline-flex; gap: 16px; margin-left: 16px; flex-wrap: wrap; }
.w27-footer-partenaire__legal-links a:hover { color: var(--w27-gold-light); }

/* Séjours GOLD (catalogue filtrable des destinations existantes) ---------- */
.w27-sejours-hero {
	position: relative;
	min-height: 460px;
	display: flex;
	align-items: center;
	background:
		linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 42%, rgba(255,255,255,0) 70%),
		var(--w27-sejours-hero-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center/cover no-repeat;
}
/* BUG CORRIGÉ (2026-09-02, demande utilisateur : texte illisible sur la
   photo). Deux causes cumulées :
   1) "padding: 96px 0 88px" (raccourci) annulait le padding horizontal
      hérité de .w27-container (0 24px), donc plus aucune marge de sécurité
      à gauche/droite.
   2) "max-width: 640px" + le "margin: 0 auto" hérité centrait ce bloc au
      milieu de TOUTE la largeur de la section hero (pleine largeur, pas
      limitée par le container 1220px) au lieu de rester aligné à gauche
      comme le container standard — d'où un texte qui semblait décalé de
      façon incohérente selon la largeur d'écran.
   Corrigé en retirant le max-width propre (le bloc redevient un vrai
   .w27-container : 1220px max, centré, comme le bandeau "4 étapes" juste
   en dessous) et en fixant un padding-left qui aligne le texte sur la
   colonne du "1" de "1 Gagnez un séjour GOLD" (template-parts/
   sejours-etapes.php) : 32px (padding interne de .w27-sejours-etapes__row)
   + 34px (icône) + 14px (écart icône/texte) = 80px, contre 24px hérités
   par défaut. */
.w27-sejours-hero__inner { padding: 96px 24px 88px 80px; }
.w27-sejours-hero__title { font-size: clamp(2rem, 4.2vw, 3rem); color: var(--w27-navy); }
.w27-sejours-hero__title-accent { color: var(--w27-gold); }
.w27-sejours-hero__subtitle { font-size: 1.15rem; color: var(--w27-navy); font-weight: 600; margin: -6px 0 14px; }
.w27-sejours-hero__text { color: var(--w27-grey); max-width: 480px; margin-bottom: 26px; }
.w27-sejours-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }
.w27-sejours-hero__btn-icon { display: inline-flex; width: 16px; height: 16px; }
.w27-sejours-hero__btn-icon svg { width: 100%; height: 100%; }

.w27-sejours-etapes { position: relative; z-index: 2; margin-top: -46px; }
.w27-sejours-etapes__row {
	background: var(--w27-white);
	border-radius: var(--w27-radius-lg);
	box-shadow: var(--w27-shadow);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	padding: 28px 32px;
}
.w27-sejours-etapes__item { display: flex; gap: 14px; align-items: flex-start; }
.w27-sejours-etapes__icon { width: 34px; height: 34px; color: var(--w27-gold); flex-shrink: 0; }
.w27-sejours-etapes__icon svg { width: 100%; height: 100%; }
.w27-sejours-etapes__number { color: var(--w27-gold); font-weight: 700; margin-right: 4px; }
.w27-sejours-etapes__title { font-size: .9rem; font-weight: 700; color: var(--w27-navy); margin: 0 0 4px; }
.w27-sejours-etapes__text { font-size: .78rem; color: var(--w27-grey); margin: 0; }

.w27-sejours-catalogue { padding: 72px 0; }
.w27-sejours-filtres { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.w27-sejours-filtres__tabs { display: flex; gap: 10px; flex-wrap: wrap; }
.w27-sejours-filtres__tab {
	padding: 10px 20px;
	border-radius: 999px;
	border: 1px solid #e3e1da;
	background: var(--w27-white);
	color: var(--w27-navy);
	font-size: .8rem;
	font-weight: 600;
	font-family: var(--w27-font);
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
}
.w27-sejours-filtres__tab:hover { border-color: var(--w27-navy); }
.w27-sejours-filtres__tab.is-active { background: var(--w27-navy); color: var(--w27-white); border-color: var(--w27-navy); }
.w27-sejours-filtres__select {
	padding: 10px 16px;
	border-radius: 999px;
	border: 1px solid #e3e1da;
	background: var(--w27-white);
	color: var(--w27-navy);
	font-size: .8rem;
	font-family: var(--w27-font);
}

.w27-sejours-catalogue__grid { display: grid; grid-template-columns: 2fr 1fr; gap: 32px; align-items: start; margin-top: 28px; }
/* 2026-09-02 : séjours sur 4 colonnes au format desktop (demande utilisateur) ;
   repassent à 2 colonnes en dessous de 960px (voir media query plus bas). */
.w27-sejours-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.w27-sejours-grid__empty, .w27-sejours-grid__no-match { grid-column: 1 / -1; text-align: center; color: var(--w27-grey); padding: 32px 0; }

.w27-sejour-card { background: var(--w27-white); border: 1px solid #ece9e2; border-radius: var(--w27-radius-lg); overflow: hidden; display: flex; flex-direction: column; }
.w27-sejour-card[hidden] { display: none; }
.w27-sejour-card__media { position: relative; aspect-ratio: 16/10; background: var(--w27-bg-soft); }
.w27-sejour-card__media img { width: 100%; height: 100%; object-fit: cover; }
.w27-sejour-card__media-fallback { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--w27-grey); }
.w27-sejour-card__media-fallback svg { width: 36px; height: 36px; }
.w27-sejour-card__badge {
	position: absolute;
	top: 12px; right: 12px;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.w27-sejour-card__badge--gold { background: var(--w27-gold); color: var(--w27-navy); }
.w27-sejour-card__badge--green { background: var(--w27-green); color: var(--w27-white); }
.w27-sejour-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.w27-sejour-card__title { display: flex; align-items: center; gap: 8px; font-size: 1.05rem; color: var(--w27-navy); margin: 0; }
/* 2026-09-02 : petite carte de France (champ "carte") à côté du nom du golf/séjour (demande utilisateur). */
.w27-sejour-card__carte { width: 22px; height: 22px; object-fit: contain; flex-shrink: 0; }
.w27-sejour-card__duree { font-size: .82rem; color: var(--w27-grey); font-weight: 600; margin: 0; }
.w27-sejour-card__duree--tagline { color: var(--w27-gold); font-style: italic; font-weight: 500; }
.w27-sejour-card__resume { font-size: .85rem; color: var(--w27-grey); margin: 2px 0 0; }
.w27-sejour-card__inclus { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; margin: 6px 0 4px; }
.w27-sejour-card__inclus li { display: flex; gap: 6px; align-items: flex-start; font-size: .76rem; color: var(--w27-ink); }
.w27-sejour-card__inclus li span { color: var(--w27-gold); flex-shrink: 0; }
.w27-sejour-card__btn { margin-top: auto; justify-content: center; padding: 12px; font-size: .78rem; }

.w27-sejours-sidebar {
	background: var(--w27-navy);
	color: var(--w27-white);
	border-radius: var(--w27-radius-lg);
	padding: 32px 28px;
}
.w27-sejours-sidebar__title { color: var(--w27-white); font-size: 1.3rem; margin-bottom: 24px; }
.w27-sejours-sidebar__etapes { display: flex; flex-direction: column; gap: 22px; position: relative; }
.w27-sejours-sidebar__etape { display: flex; gap: 16px; position: relative; }
.w27-sejours-sidebar__etape:not(:last-child)::after {
	content: '';
	position: absolute;
	left: 19px; top: 42px; bottom: -22px;
	border-left: 1px dashed rgba(255,255,255,.35);
}
.w27-sejours-sidebar__etape-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	flex-shrink: 0;
	border-radius: 999px;
	border: 1.5px solid rgba(255,255,255,.5);
	color: var(--w27-white);
}
.w27-sejours-sidebar__etape-icon svg { width: 20px; height: 20px; }
.w27-sejours-sidebar__etape-number {
	position: absolute;
	bottom: -4px; right: -4px;
	width: 18px; height: 18px;
	border-radius: 999px;
	background: var(--w27-green);
	color: var(--w27-white);
	font-size: .66rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}
.w27-sejours-sidebar__etape-body { display: flex; flex-direction: column; gap: 4px; padding-top: 4px; }
.w27-sejours-sidebar__etape-body strong { color: var(--w27-white); font-size: .92rem; }
.w27-sejours-sidebar__etape-body span { color: rgba(255,255,255,.72); font-size: .8rem; }
.w27-sejours-sidebar__photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--w27-radius); margin: 26px 0; }
.w27-sejours-sidebar__bon-a-savoir { background: rgba(255,255,255,.08); border-radius: var(--w27-radius); padding: 20px; }
.w27-sejours-sidebar__bas-titre { display: flex; align-items: center; gap: 8px; color: var(--w27-gold-light); font-weight: 700; font-size: .92rem; margin: 0 0 10px; }
.w27-sejours-sidebar__bas-titre span { display: inline-flex; width: 16px; height: 16px; }
.w27-sejours-sidebar__bas-titre svg { width: 100%; height: 100%; }
.w27-sejours-sidebar__bon-a-savoir p { color: rgba(255,255,255,.75); font-size: .82rem; margin: 0 0 8px; }
.w27-sejours-sidebar__bon-a-savoir p:last-child { margin-bottom: 0; }

.w27-sejours-cta {
	background: linear-gradient(90deg, var(--w27-navy), var(--w27-navy-light) 55%, var(--w27-green));
	color: var(--w27-white);
	padding: 40px 0;
}
.w27-sejours-cta__inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 24px; }
.w27-sejours-cta__lead { display: flex; align-items: center; gap: 18px; }
.w27-sejours-cta__icon { width: 40px; height: 40px; flex-shrink: 0; color: var(--w27-white); }
.w27-sejours-cta__icon svg { width: 100%; height: 100%; }
.w27-sejours-cta__title { color: var(--w27-white); font-size: 1.3rem; margin: 0; }
.w27-sejours-cta__text { color: rgba(255,255,255,.8); margin: 2px 0 0; font-size: .88rem; }
.w27-sejours-cta__actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* Page "Contact" (contact.png) --------------------------------------------- */
.w27-contact-hero {
	position: relative;
	min-height: 460px;
	display: flex;
	align-items: center;
	background:
		linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.86) 40%, rgba(255,255,255,0) 68%),
		var(--w27-contact-hero-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center/cover no-repeat;
}
.w27-contact-hero__inner { width: 100%; padding: 100px 0 76px; }
.w27-contact-hero__content { max-width: 620px; }
.w27-contact-hero__title { font-size: clamp(2.2rem, 4.6vw, 3.2rem); color: var(--w27-navy); }
.w27-contact-hero__subtitle { font-size: 1.15rem; color: var(--w27-navy); font-weight: 600; margin: -6px 0 14px; }
.w27-contact-hero__text { color: var(--w27-grey); max-width: 480px; margin-bottom: 26px; }
.w27-contact-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }
.w27-btn__icon { display: inline-flex; width: 16px; height: 16px; }
.w27-btn__icon svg { width: 100%; height: 100%; }

.w27-contact-infos { position: relative; z-index: 2; margin-top: -56px; }
.w27-contact-infos__row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.w27-contact-infos__card {
	background: var(--w27-white);
	border-radius: var(--w27-radius-lg);
	box-shadow: var(--w27-shadow);
	padding: 26px 22px;
}
.w27-contact-infos__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px; height: 46px;
	border-radius: 50%;
	background: #fbeee0;
	color: var(--w27-gold);
	margin-bottom: 14px;
}
.w27-contact-infos__icon svg { width: 22px; height: 22px; }
.w27-contact-infos__title { color: var(--w27-navy); font-size: 1rem; margin: 0 0 10px; }
.w27-contact-infos__body { color: var(--w27-grey); font-size: .86rem; line-height: 1.5; }
.w27-contact-infos__body p { margin: 0 0 4px; }
.w27-contact-infos__body p:last-child { margin-bottom: 0; }
.w27-contact-infos__body strong,
.w27-contact-infos__body h4,
.w27-contact-infos__body h5 {
	display: block;
	color: var(--w27-navy);
	font-size: .86rem;
	font-weight: 700;
	margin: 10px 0 2px;
}
.w27-contact-infos__body > *:first-child strong,
.w27-contact-infos__body h4:first-child,
.w27-contact-infos__body h5:first-child { margin-top: 0; }
.w27-contact-infos__body a { color: var(--w27-grey); }
.w27-contact-infos__body a:hover { color: var(--w27-navy); }

.w27-contact-corps { padding: 72px 0; }
.w27-contact-corps__grid { display: grid; grid-template-columns: 2fr 1fr; gap: 32px; align-items: start; }

.w27-contact-formulaire {
	background: var(--w27-white);
	border: 1px solid #eceae3;
	border-radius: var(--w27-radius-lg);
	box-shadow: var(--w27-shadow);
	padding: 36px;
}
.w27-contact-formulaire__intro { margin-bottom: 20px; }
.w27-contact-formulaire__intro h1,
.w27-contact-formulaire__intro h2,
.w27-contact-formulaire__intro h3,
.w27-contact-formulaire__intro h4 { color: var(--w27-navy); font-size: 1.4rem; display: block; margin: 0 0 8px; }
/* CORRECTIF (2026-09-03) : "strong:first-child" ciblait AUSSI un <strong>
   imbriqué au milieu d'un titre déjà stylé (ex. <h3>...<strong> à bientôt
   </strong>&nbsp;!</h3>) car :first-child ignore les nœuds texte voisins.
   Le display:block imbriqué dans le h3 cassait le retour à la ligne et
   isolait le "!" final tout seul. Restreint désormais au cas réellement visé
   (un <strong> utilisé SEUL, en enfant direct, à la place d'un titre h1-h4). */
.w27-contact-formulaire__intro > strong:first-child { color: var(--w27-navy); font-size: 1.4rem; display: block; margin: 0 0 8px; }
.w27-contact-formulaire__intro p { color: var(--w27-grey); margin: 0; font-size: .92rem; }

/* Styles best-effort pour le formulaire Ninja Forms existant (id 1) intégré via
   shortcode : ciblage par élément HTML plutôt que par classes Ninja Forms
   (susceptibles de varier selon la version/le template NF) pour rester robuste.
   Classe optionnelle ".w27-contact-formulaire__row" : à ajouter en "Classe CSS
   personnalisée" sur un groupe de champs Ninja Forms (ex. Prénom + Nom) pour les
   afficher sur 2 colonnes comme la maquette, avec repli automatique sur 1
   colonne en mobile — sinon les champs Ninja Forms s'empilent simplement. */
.w27-contact-formulaire__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.w27-contact-formulaire__embed label { font-weight: 600; color: var(--w27-navy); font-size: .84rem; margin-bottom: 6px; display: inline-block; }
.w27-contact-formulaire__embed input[type="text"],
.w27-contact-formulaire__embed input[type="email"],
.w27-contact-formulaire__embed input[type="tel"],
.w27-contact-formulaire__embed input[type="number"],
.w27-contact-formulaire__embed select,
.w27-contact-formulaire__embed textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid #e3e1da;
	border-radius: 10px;
	font-family: var(--w27-font);
	font-size: .92rem;
	color: var(--w27-ink);
	background: var(--w27-white);
	margin-bottom: 18px;
}
.w27-contact-formulaire__embed textarea { min-height: 130px; resize: vertical; }
.w27-contact-formulaire__embed input:focus,
.w27-contact-formulaire__embed select:focus,
.w27-contact-formulaire__embed textarea:focus { outline: none; border-color: var(--w27-navy); }
.w27-contact-formulaire__embed button,
.w27-contact-formulaire__embed input[type="submit"] {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 30px;
	border-radius: 999px;
	border: none;
	background: var(--w27-navy);
	color: var(--w27-white);
	font-weight: 600;
	font-size: .9rem;
	letter-spacing: .02em;
	text-transform: uppercase;
	cursor: pointer;
}
.w27-contact-formulaire__embed button:hover,
.w27-contact-formulaire__embed input[type="submit"]:hover { background: var(--w27-navy-light); }
.w27-contact-formulaire__consent { color: var(--w27-grey); font-size: .78rem; line-height: 1.5; margin: 18px 0 0; }
.w27-contact-formulaire__consent a { color: var(--w27-navy); text-decoration: underline; }

.w27-contact-sidebar { display: flex; flex-direction: column; gap: 24px; }
.w27-contact-sidebar__card {
	background: var(--w27-white);
	border: 1px solid #eceae3;
	border-radius: var(--w27-radius-lg);
	box-shadow: var(--w27-shadow);
	padding: 26px;
}
.w27-contact-sidebar__title { color: var(--w27-navy); font-size: 1.05rem; margin: 0 0 18px; }
.w27-contact-sidebar__raisons { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.w27-contact-sidebar__raisons li { display: flex; align-items: center; gap: 12px; color: var(--w27-navy); font-size: .88rem; font-weight: 600; }
.w27-contact-sidebar__raisons li a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.w27-contact-sidebar__raisons li a:hover { color: var(--w27-gold); }
.w27-contact-sidebar__raison-icon { display: inline-flex; width: 20px; height: 20px; color: var(--w27-green); flex-shrink: 0; }
.w27-contact-sidebar__raison-icon svg { width: 100%; height: 100%; }
.w27-contact-sidebar__map {
	width: 100%;
	aspect-ratio: 16/10;
	object-fit: cover;
	border-radius: var(--w27-radius);
	margin-bottom: 16px;
}
.w27-contact-sidebar__map--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--w27-bg-soft);
	color: var(--w27-navy);
}
.w27-contact-sidebar__map--placeholder svg { width: 34px; height: 34px; }
.w27-contact-sidebar__map-adresse { color: var(--w27-grey); font-size: .86rem; line-height: 1.5; margin: 0 0 12px; }
.w27-contact-sidebar__map-adresse strong { color: var(--w27-navy); }
.w27-contact-sidebar__map-lien { color: var(--w27-navy); font-weight: 600; font-size: .86rem; }
.w27-contact-sidebar__map-lien:hover { color: var(--w27-gold); }

/* Pagination (helper générique) ------------------------------------------- */
.w27-pagination ul { display: flex; gap: 8px; justify-content: center; margin-top: 32px; }
.w27-pagination a, .w27-pagination span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 36px; height: 36px; border-radius: 8px;
	border: 1px solid #e3e1da; color: var(--w27-navy);
}
.w27-pagination .current { background: var(--w27-navy); color: var(--w27-white); border-color: var(--w27-navy); }

/* Classements (maquette Classements.png) ----------------------------------- */
.w27-btn--green-fill { background: var(--w27-green); color: var(--w27-white); }
.w27-btn--green-fill:hover { background: #2f8c47; }

/* Bouton rose plein, ajouté pour la page "WinInZone" (2026-08-19). */
.w27-btn--pink-fill { background: var(--w27-pink); color: var(--w27-white); }
.w27-btn--pink-fill:hover { background: #c23682; }

.w27-classements-hero {
	position: relative;
	min-height: 460px;
	display: flex;
	align-items: center;
	background:
		linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.9) 42%, rgba(255,255,255,.15) 70%),
		/* 2026-09-14 : calque sombre en transparence sur la photo (demande utilisateur) pour garder le texte lisible même quand la photo est claire. */
		linear-gradient(rgba(8, 18, 38, .45), rgba(8, 18, 38, .45)),
		var(--w27-classements-hero-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center 18%/cover no-repeat;
}
.w27-classements-hero__inner { width: 100%; padding: 100px 0 56px; }
.w27-classements-hero__content { max-width: 560px; }
.w27-classements-hero__title { font-size: clamp(2.4rem, 5vw, 3.6rem); color: var(--w27-navy); margin-bottom: 4px; }
.w27-classements-hero__subtitle {
	font-weight: 700;
	color: var(--w27-green);
	font-size: clamp(1.2rem, 2.2vw, 1.5rem);
	line-height: 1.3;
	margin: 0 0 16px;
}
.w27-classements-hero__text { color: var(--w27-grey); max-width: 440px; margin-bottom: 28px; }

.w27-classements-stats { margin-top: -46px; position: relative; z-index: 2; }
.w27-classements-stats__row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.w27-classements-stats__tuile {
	display: flex;
	align-items: center;
	gap: 14px;
	background: var(--w27-white);
	border: 1px solid #ece9e2;
	border-radius: var(--w27-radius);
	box-shadow: var(--w27-shadow);
	padding: 20px 22px;
}
.w27-classements-stats__icone { width: 30px; height: 30px; flex-shrink: 0; color: var(--w27-green); }
.w27-classements-stats__icone svg { width: 100%; height: 100%; }
.w27-classements-stats__valeur { display: block; font-size: 1.5rem; color: var(--w27-navy); line-height: 1.2; }
.w27-classements-stats__libelle { display: block; color: var(--w27-grey); font-size: .82rem; }

.w27-classements-tableau { padding: 72px 0 88px; }
.w27-classements-tableau__titre {
	text-align: center;
	font-size: clamp(1.4rem, 2.6vw, 1.8rem);
	color: var(--w27-navy);
	letter-spacing: .04em;
	position: relative;
	padding-bottom: 16px;
	margin-bottom: 32px;
}
.w27-classements-tableau__titre::after {
	content: "";
	position: absolute;
	bottom: 0; left: 50%;
	transform: translateX(-50%);
	width: 56px; height: 3px;
	background: var(--w27-green);
	border-radius: 2px;
}

.w27-classements-tabs {
	display: flex;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 32px;
}
.w27-classements-tabs__btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 999px;
	border: 1.5px solid #e3e1da;
	background: var(--w27-white);
	color: var(--w27-navy);
	font-weight: 600;
	font-size: .85rem;
	font-family: var(--w27-font);
	text-transform: uppercase;
	letter-spacing: .02em;
	cursor: pointer;
}
.w27-classements-tabs__btn svg { width: 18px; height: 18px; }
.w27-classements-tabs__btn.is-active { background: var(--w27-green); border-color: var(--w27-green); color: var(--w27-white); }

.w27-classements-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 28px;
	align-items: start;
}

.w27-classements-panels {
	background: var(--w27-white);
	border: 1px solid #ece9e2;
	border-radius: var(--w27-radius-lg);
	box-shadow: var(--w27-shadow);
	overflow: hidden;
}
.w27-classements-panel[hidden], .w27-classements-subpanel[hidden] { display: none; }

.w27-classements-subtabs {
	display: flex;
	gap: 28px;
	padding: 20px 24px 0;
	border-bottom: 1px solid #ece9e2;
}
.w27-classements-subtabs__btn {
	appearance: none;
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	padding: 0 0 14px;
	color: var(--w27-grey);
	font-weight: 600;
	font-size: .88rem;
	font-family: var(--w27-font);
	cursor: pointer;
}
.w27-classements-subtabs__btn.is-active { color: var(--w27-navy); border-bottom-color: var(--w27-green); }

.w27-classements-table { width: 100%; border-collapse: collapse; }
.w27-classements-table th {
	text-align: left;
	font-size: .72rem;
	letter-spacing: .06em;
	color: var(--w27-grey);
	padding: 16px 24px 10px;
	font-weight: 600;
}
.w27-classements-table__rang, .w27-classements-table__stat, .w27-classements-table__chevron { text-align: center; }
.w27-classements-table td { padding: 14px 24px; border-top: 1px solid #f1efe9; vertical-align: middle; }
.w27-classements-table__rang { font-weight: 700; color: var(--w27-navy); width: 56px; }
.w27-classements-table__stat { font-weight: 700; color: var(--w27-navy); }
.w27-classements-table__chevron { color: var(--w27-grey); width: 32px; }

.w27-classements-medaille {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px; height: 30px;
	border-radius: 999px;
	color: var(--w27-white);
	font-size: .82rem;
}
.w27-classements-medaille--or { background: linear-gradient(135deg, #e9c25c, #cf9a4c); }
.w27-classements-medaille--argent { background: linear-gradient(135deg, #d7dbe2, #9aa2af); }
.w27-classements-medaille--bronze { background: linear-gradient(135deg, #c98a54, #9c5f34); }

.w27-classements-joueur { display: flex; align-items: center; gap: 12px; }
.w27-classements-joueur__avatar { width: 40px; height: 40px; border-radius: 999px; object-fit: cover; background: var(--w27-bg-soft); }
.w27-classements-joueur__nom { display: block; color: var(--w27-navy); font-weight: 600; font-size: .92rem; }
.w27-classements-joueur__badge { display: block; font-size: .76rem; color: var(--w27-grey); }
.w27-classements-joueur__badge--premium { color: var(--w27-green); font-weight: 600; }

.w27-classements-golf-nom { color: var(--w27-navy); font-weight: 600; }
.w27-classements-golf-nom:hover { color: var(--w27-green); }

.w27-classements-vide { padding: 40px 24px; color: var(--w27-grey); text-align: center; }

.w27-classements-sidebar { display: flex; flex-direction: column; gap: 20px; }

.w27-classements-exploit {
	background: var(--w27-navy);
	color: var(--w27-white);
	border-radius: var(--w27-radius-lg);
	padding: 22px;
}
.w27-classements-exploit__label { text-transform: uppercase; letter-spacing: .06em; font-size: .74rem; color: rgba(255,255,255,.7); margin-bottom: 16px; }
.w27-classements-exploit__row { display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px; }
.w27-classements-exploit__photo {
	width: 100%; height: 170px; border-radius: 12px; flex-shrink: 0;
	background: var(--w27-exploit-photo, linear-gradient(135deg, var(--w27-navy-light), var(--w27-green))) center/contain no-repeat;
	background-color: rgba(0,0,0,.25);
}
.w27-classements-exploit__intro { font-size: .78rem; color: rgba(255,255,255,.7); margin: 0; }
.w27-classements-exploit__nom { font-size: 1.05rem; font-weight: 700; margin: 2px 0 4px; }
.w27-classements-exploit__detail { font-size: .8rem; color: rgba(255,255,255,.75); margin: 0; }
.w27-classements-exploit__cta { width: 100%; justify-content: center; }
.w27-classements-exploit__cta svg { width: 16px; height: 16px; }

.w27-classements-mon-rang {
	background: var(--w27-bg-soft);
	border-radius: var(--w27-radius-lg);
	padding: 22px;
}
.w27-classements-mon-rang__label { text-transform: uppercase; letter-spacing: .06em; font-size: .74rem; color: var(--w27-grey); margin-bottom: 14px; }
.w27-classements-mon-rang__row { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.w27-classements-mon-rang__icone { width: 44px; height: 44px; flex-shrink: 0; border-radius: 999px; border: 2px solid var(--w27-green); color: var(--w27-green); display: flex; align-items: center; justify-content: center; padding: 8px; }
.w27-classements-mon-rang__rang { display: block; font-size: 1.5rem; color: var(--w27-green); line-height: 1; }
.w27-classements-mon-rang__nom { display: block; color: var(--w27-navy); font-weight: 600; }
.w27-classements-mon-rang__stat { color: var(--w27-grey); font-size: .84rem; margin: 0 0 4px; }
.w27-classements-mon-rang__cta { width: 100%; justify-content: center; margin-top: 12px; }
.w27-classements-mon-rang--connexion .w27-classements-mon-rang__stat { margin-bottom: 14px; }

.w27-classements-reglement { background: var(--w27-white); border: 1px solid #ece9e2; border-radius: var(--w27-radius-lg); padding: 22px; }
.w27-classements-reglement__titre { text-transform: uppercase; letter-spacing: .06em; font-size: .74rem; color: var(--w27-navy); font-weight: 700; margin-bottom: 16px; }
.w27-classements-reglement__liste { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.w27-classements-reglement__liste li { display: flex; align-items: flex-start; gap: 10px; color: var(--w27-grey); font-size: .86rem; line-height: 1.4; }
.w27-classements-reglement__liste li span { width: 18px; height: 18px; flex-shrink: 0; color: var(--w27-green); margin-top: 1px; }
.w27-classements-reglement__liste li span svg { width: 100%; height: 100%; }
.w27-classements-reglement__cta { width: 100%; justify-content: center; }
.w27-classements-toutes-videos__cta { width: 100%; justify-content: center; }

.w27-classements-cta-wrap { padding-bottom: 72px; }
.w27-classements-cta {
	background: linear-gradient(120deg, var(--w27-navy) 0%, var(--w27-navy-light) 45%, var(--w27-green) 100%);
	border-radius: var(--w27-radius-lg);
	color: var(--w27-white);
}
.w27-classements-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding: 36px 40px;
}
.w27-classements-cta__lead { display: flex; align-items: center; gap: 18px; }
.w27-classements-cta__icon { width: 52px; height: 52px; flex-shrink: 0; border-radius: 999px; background: rgba(255,255,255,.15); display: flex; align-items: center; justify-content: center; padding: 12px; }
.w27-classements-cta__title { color: var(--w27-white); font-size: 1.3rem; margin: 0 0 4px; }
.w27-classements-cta__text { color: rgba(255,255,255,.85); margin: 0; max-width: 420px; }

/* Onglet "Par golf" (page-templates/template-classements.php) : selecteur de golf + tableaux Trous en 1 / WinInZone compacts cote a cote. */
.w27-par-golf-select-wrap { margin-bottom: 24px; }
.w27-par-golf-select-label { display: block; text-transform: uppercase; letter-spacing: .06em; font-size: .74rem; color: var(--w27-grey); margin-bottom: 8px; }
.w27-par-golf-select { width: 100%; max-width: 420px; padding: 12px 16px; border-radius: var(--w27-radius-lg); border: 1px solid #ece9e2; background: var(--w27-white); color: var(--w27-navy); font-family: inherit; font-size: .92rem; font-weight: 600; cursor: pointer; }
.w27-par-golf-bloc[hidden] { display: none; }
.w27-par-golf-bloc { background: var(--w27-white); border: 1px solid #ece9e2; border-radius: var(--w27-radius-lg); padding: 22px; }
.w27-par-golf-titre { display: block; color: var(--w27-navy); font-size: 1.1rem; margin: 0 0 18px; }
a.w27-par-golf-titre:hover { color: var(--w27-green); }
.w27-par-golf-tables { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.w27-par-golf-table + .w27-par-golf-table { border-left: 1px solid #ece9e2; padding-left: 24px; }
.w27-par-golf-table__titre { text-transform: uppercase; letter-spacing: .06em; font-size: .74rem; color: var(--w27-navy); font-weight: 700; margin: 0 0 12px; }

/* Page "Abonnement Premium" (Abonnement Premium.png) ----------------------- */
.w27-abonnement-hero {
	position: relative;
	min-height: 480px;
	display: flex;
	align-items: center;
	overflow: hidden;
	background:
		linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.88) 42%, rgba(255,255,255,.15) 72%),
		/* 2026-09-14 : calque sombre en transparence sur la photo (demande utilisateur) pour garder le texte lisible même quand la photo est claire. */
		linear-gradient(rgba(8, 18, 38, .45), rgba(8, 18, 38, .45)),
		var(--w27-abonnement-hero-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center/cover no-repeat;
}
.w27-abonnement-hero__inner { width: 100%; padding: 96px 0 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; position: relative; }
.w27-abonnement-hero__content { max-width: 560px; }
.w27-abonnement-hero__title { font-size: clamp(2.2rem, 4.6vw, 3.4rem); color: var(--w27-navy); margin-bottom: 4px; }
.w27-abonnement-hero__subtitle { font-size: 1.15rem; color: var(--w27-gold); font-weight: 600; margin: 0 0 14px; }
.w27-abonnement-hero__text p { color: var(--w27-grey); margin: 0 0 6px; }
.w27-abonnement-hero__text { margin-bottom: 26px; }
.w27-abonnement-hero__cartes { position: relative; width: 320px; height: 220px; flex-shrink: 0; display: none; }
.w27-abonnement-hero__carte { position: absolute; width: 240px; border-radius: 16px; box-shadow: 0 16px 36px rgba(22,38,74,.28); }
.w27-abonnement-hero__carte--gold { top: 0; right: 0; z-index: 1; }
.w27-abonnement-hero__carte--premium { bottom: 0; left: 0; z-index: 2; }
@media (min-width: 961px) {
	.w27-abonnement-hero__cartes { display: block; }
}

.w27-abonnement-avantages { background: var(--w27-white); box-shadow: 0 2px 20px rgba(22,38,74,.08); position: relative; z-index: 2; }
.w27-abonnement-avantages__grid { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 24px; padding: 28px 24px; }
.w27-abonnement-avantages__item { display: flex; align-items: flex-start; gap: 12px; flex: 1 1 200px; }
.w27-abonnement-avantages__icon {
	width: 40px; height: 40px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: #fbeee0;
	color: var(--w27-gold);
}
.w27-abonnement-avantages__icon svg { width: 20px; height: 20px; }
.w27-abonnement-avantages__title { font-size: .92rem; font-weight: 700; color: var(--w27-navy); margin: 0 0 2px; }
.w27-abonnement-avantages__text { font-size: .8rem; color: var(--w27-grey); margin: 0; }

.w27-abonnement-formules { padding: 56px 0; }
.w27-abonnement-formules__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; }
.w27-abonnement-carte {
	background: var(--w27-white);
	border-radius: var(--w27-radius-lg);
	box-shadow: var(--w27-shadow);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.w27-abonnement-carte__bandeau { padding: 14px 28px; color: var(--w27-white); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: .85rem; }
.w27-abonnement-carte--premium .w27-abonnement-carte__bandeau { background: var(--w27-navy); }
.w27-abonnement-carte--gold .w27-abonnement-carte__bandeau { background: var(--w27-gold); }
.w27-abonnement-carte__body { padding: 26px 28px; flex: 1; }
.w27-abonnement-carte__title { font-size: 1.35rem; color: var(--w27-navy); margin: 0 0 12px; }
.w27-abonnement-carte__text { color: var(--w27-grey); margin: 0 0 18px; }
.w27-abonnement-carte__text a { color: var(--w27-gold); font-weight: 600; }
.w27-abonnement-carte__label { text-transform: uppercase; letter-spacing: .06em; font-size: .74rem; color: var(--w27-navy); font-weight: 700; margin: 0 0 12px; }
.w27-abonnement-carte__note { font-size: .84rem; color: var(--w27-grey); margin: 14px 0 0; }
.w27-abonnement-carte__encart {
	display: flex; align-items: center; gap: 12px;
	margin: 0 28px 26px;
	padding: 14px 18px;
	border-radius: var(--w27-radius);
	background: var(--w27-navy);
	color: var(--w27-white);
	font-size: .86rem;
	font-weight: 600;
}
.w27-abonnement-carte__encart--gold { background: #fbf3e6; color: var(--w27-navy); }
.w27-abonnement-carte__encart-icon { width: 22px; height: 22px; flex-shrink: 0; }
.w27-abonnement-carte__encart-icon svg { width: 100%; height: 100%; }
.w27-abonnement-carte--premium .w27-abonnement-carte__encart-icon { color: var(--w27-white); }
.w27-abonnement-carte--gold .w27-abonnement-carte__encart-icon { color: var(--w27-gold); }

.w27-abonnement-destinations { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.w27-abonnement-destinations__item { display: flex; align-items: center; gap: 12px; }
.w27-abonnement-destinations__photo { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
.w27-abonnement-destinations__photo--placeholder { display: flex; align-items: center; justify-content: center; background: #f1eee6; color: var(--w27-gold); padding: 8px; }
.w27-abonnement-destinations__photo--placeholder svg { width: 100%; height: 100%; }
.w27-abonnement-destinations__texte { display: flex; flex-direction: column; font-size: .86rem; }
.w27-abonnement-destinations__texte a { color: var(--w27-navy); text-decoration: none; }
.w27-abonnement-destinations__texte a:hover { text-decoration: underline; }
.w27-abonnement-destinations__accroche { color: var(--w27-grey); font-size: .78rem; }

.w27-abonnement-checklist { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.w27-abonnement-checklist li { display: flex; align-items: flex-start; gap: 10px; color: var(--w27-navy); font-size: .9rem; line-height: 1.4; }
.w27-abonnement-checklist__icon { width: 18px; height: 18px; flex-shrink: 0; color: var(--w27-green); margin-top: 1px; }
.w27-abonnement-checklist__icon svg { width: 100%; height: 100%; }

.w27-abonnement-petit-plus { padding: 8px 0 56px; }
.w27-abonnement-petit-plus__inner {
	display: flex;
	align-items: center;
	gap: 22px;
	background: #faf3e7;
	border: 1px solid #ecd9b3;
	border-radius: var(--w27-radius-lg);
	padding: 26px 30px;
}
.w27-abonnement-petit-plus__icon { width: 30px; height: 30px; flex-shrink: 0; color: var(--w27-gold); }
.w27-abonnement-petit-plus__icon svg { width: 100%; height: 100%; }
.w27-abonnement-petit-plus__body { flex: 1; }
.w27-abonnement-petit-plus__title { font-size: 1.05rem; color: var(--w27-navy); margin: 0 0 6px; }
.w27-abonnement-petit-plus__text { color: var(--w27-grey); margin: 0; font-size: .9rem; }
.w27-abonnement-petit-plus__photo { width: 140px; height: 90px; border-radius: var(--w27-radius); object-fit: cover; flex-shrink: 0; }

.w27-abonnement-inscription { background: var(--w27-white); padding: 56px 0; }
.w27-abonnement-inscription__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	background: #faf9f6;
	border: 1px solid #ece9e2;
	border-radius: var(--w27-radius-lg);
	padding: 36px;
}
.w27-abonnement-inscription__titre { font-size: 1.3rem; color: var(--w27-navy); margin: 0 0 6px; }
.w27-abonnement-inscription__prix { font-size: 2.2rem; font-weight: 700; color: var(--w27-green); margin: 0; line-height: 1; }
.w27-abonnement-inscription__periode { color: var(--w27-grey); font-size: .86rem; margin: 2px 0 20px; }
.w27-abonnement-inscription__comprend-label { font-weight: 700; color: var(--w27-navy); font-size: .9rem; margin: 0 0 12px; }
.w27-abonnement-inscription__intro { color: var(--w27-grey); margin: 0 0 16px; }
.w27-abonnement-inscription__embed :is(input, select, textarea) {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid #dcd8cf;
	border-radius: 8px;
	font-family: inherit;
	font-size: .92rem;
}
.w27-abonnement-inscription__embed button[type="submit"],
.w27-abonnement-inscription__embed .wpforms-submit {
	background: var(--w27-green);
	color: var(--w27-white);
	border: none;
	border-radius: 999px;
	padding: 13px 28px;
	font-weight: 700;
	cursor: pointer;
}
.w27-abonnement-inscription__consent { font-size: .76rem; color: var(--w27-grey); margin-top: 14px; }
.w27-abonnement-inscription__consent a { color: var(--w27-navy); }

/* Page "Nos Golfs" (maquette nosgolfs.png) ---------------------------------- */
.w27-golfs-hero__content { max-width: 640px; }
.w27-golfs-hero__subtitle { font-size: 1.1rem; color: var(--w27-white); font-weight: 600; margin: 2px 0 10px; }
.w27-golfs-hero__boutons { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px; }
.w27-golfs-hero__boutons .w27-btn svg { width: 18px; height: 18px; vertical-align: -3px; margin-left: 4px; }

.w27-golfs-carte { padding: 56px 0 64px; }
.w27-golfs-carte__toolbar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 24px;
}
.w27-golfs-carte__recherche {
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--w27-white);
	border: 1px solid #ddd8ca;
	border-radius: 999px;
	padding: 10px 18px;
	flex: 1 1 240px;
	max-width: 320px;
}
.w27-golfs-carte__recherche-icone { width: 18px; height: 18px; color: var(--w27-grey); flex-shrink: 0; }
.w27-golfs-carte__recherche-icone svg { width: 100%; height: 100%; }
.w27-golfs-carte__recherche input {
	border: none; outline: none; font: inherit; width: 100%; background: transparent; color: var(--w27-ink);
}
.w27-golfs-carte__pills { display: flex; gap: 8px; flex-wrap: wrap; }
.w27-golfs-pill {
	border: 1px solid #ddd8ca;
	background: var(--w27-white);
	color: var(--w27-navy);
	border-radius: 999px;
	padding: 8px 18px;
	font-size: .84rem;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.w27-golfs-pill:hover { border-color: var(--w27-navy); }
.w27-golfs-pill.is-active { background: var(--w27-navy); border-color: var(--w27-navy); color: var(--w27-white); }
.w27-golfs-carte__legende { display: flex; gap: 12px; flex-wrap: wrap; margin-left: auto; }

.w27-golfs-badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
	white-space: nowrap;
}
.w27-golfs-badge--wininone { background: #e4f3e8; color: #2f8c47; }
.w27-golfs-badge--wininzone { background: #e4edf9; color: #2b5ea3; }
.w27-golfs-badge--wininshot { background: #f3e9fb; color: #7a3fb0; }
.w27-golfs-badge--gold { background: var(--w27-gold); color: var(--w27-navy); }
.w27-golfs-badge--premium { background: var(--w27-navy); color: var(--w27-white); }

.w27-golfs-badge--filtre { cursor: pointer; border: none; appearance: none; box-shadow: 0 0 0 2px transparent; transition: box-shadow .15s ease, opacity .15s ease; }
.w27-golfs-badge--filtre:hover { opacity: .85; }
.w27-golfs-badge--filtre.is-active { box-shadow: 0 0 0 2px var(--w27-navy); }

.w27-golfs-carte__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 24px;
	align-items: start;
}
.w27-golfs-carte__map-wrap { position: relative; }
.w27-golfs-carte__map {
	width: 100%;
	height: 460px;
	border-radius: var(--w27-radius-lg);
	overflow: hidden;
	background: var(--w27-bg-soft);
	box-shadow: var(--w27-shadow);
}
.w27-golfs-carte__compteur {
	position: absolute;
	left: 16px; bottom: 16px;
	background: var(--w27-white);
	border-radius: var(--w27-radius);
	box-shadow: var(--w27-shadow);
	padding: 14px 18px;
	font-size: .82rem;
	z-index: 400; /* Au-dessus des tuiles Leaflet. */
}
.w27-golfs-carte__compteur-ligne { display: flex; align-items: center; gap: 8px; padding: 2px 0; }
.w27-golfs-carte__compteur-icone { width: 14px; height: 14px; color: var(--w27-green); flex-shrink: 0; }
.w27-golfs-carte__compteur-icone svg { width: 100%; height: 100%; }
.w27-golfs-carte__compteur-label { color: var(--w27-grey); flex: 1; }
.w27-golfs-carte__compteur-total { color: var(--w27-navy); min-width: 20px; text-align: right; }
.w27-golfs-carte__compteur-ligne--total {
	border-top: 1px solid #ece9e2;
	margin-top: 4px; padding-top: 6px;
	font-weight: 700;
}

.w27-golfs-carte__liste {
	max-height: 460px;
	overflow-y: auto;
	border: 1px solid #ece9e2;
	border-radius: var(--w27-radius-lg);
	background: var(--w27-white);
}
.w27-golfs-carte__item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	border-bottom: 1px solid #f0ede4;
	text-decoration: none;
	color: inherit;
}
.w27-golfs-carte__item:last-child { border-bottom: none; }
.w27-golfs-carte__item:hover { background: var(--w27-bg-soft); }
.w27-golfs-carte__item[hidden] { display: none; }
.w27-golfs-carte__logo {
	width: 48px; height: 48px; flex-shrink: 0;
	border-radius: 10px;
	overflow: hidden;
	background: var(--w27-bg-soft);
	display: flex; align-items: center; justify-content: center;
}
.w27-golfs-carte__logo img { width: 100%; height: 100%; object-fit: contain; }
.w27-golfs-carte__logo--vide { color: var(--w27-grey); }
.w27-golfs-carte__logo--vide svg { width: 22px; height: 22px; }
.w27-golfs-carte__infos { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.w27-golfs-carte__nom { font-weight: 700; color: var(--w27-navy); }
.w27-golfs-carte__adresse { font-size: .78rem; color: var(--w27-grey); }
.w27-golfs-carte__badges { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 2px; }
.w27-golfs-carte__chevron { color: var(--w27-gold); flex-shrink: 0; font-size: 1.1rem; }
.w27-golfs-carte__vide { padding: 32px 18px; text-align: center; color: var(--w27-grey); }

.w27-golfs-stats { padding: 36px 0; background: var(--w27-white); border-top: 1px solid #ece9e2; border-bottom: 1px solid #ece9e2; }
.w27-golfs-stats__row {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 20px;
}
.w27-golfs-stats__tuile { display: flex; align-items: center; gap: 12px; }
.w27-golfs-stats__icone { width: 28px; height: 28px; flex-shrink: 0; color: var(--w27-green); }
.w27-golfs-stats__icone svg { width: 100%; height: 100%; }
.w27-golfs-stats__valeur { display: block; font-size: 1rem; color: var(--w27-navy); font-weight: 700; line-height: 1.25; }
.w27-golfs-stats__libelle { display: block; color: var(--w27-grey); font-size: .78rem; }

/* WinInZone (maquette wininzone.png) ---------------------------------------- */
.w27-wininzone-hero__boutons { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 4px; }

.w27-wininzone-reperes { padding: 28px 0; background: var(--w27-white); border-bottom: 1px solid #ece9e2; }
.w27-wininzone-reperes__row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.w27-wininzone-reperes__item { display: flex; align-items: flex-start; gap: 10px; }
.w27-wininzone-reperes__icone { width: 22px; height: 22px; flex-shrink: 0; color: var(--w27-pink); }
.w27-wininzone-reperes__icone svg { width: 100%; height: 100%; }
.w27-wininzone-reperes__item p { margin: 0; font-size: .82rem; color: var(--w27-ink); }

.w27-wininzone-etapes { padding: 72px 0; }
.w27-wininzone-etapes__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }
.w27-wininzone-etapes__item {
	background: var(--w27-bg-soft);
	border-radius: var(--w27-radius-lg);
	padding: 28px 24px;
	text-align: center;
	position: relative;
}
.w27-wininzone-etapes__numero {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--w27-pink);
	color: var(--w27-white);
	font-weight: 700;
	font-size: .85rem;
	margin: 0 auto 10px;
}
.w27-wininzone-etapes__titre { font-size: 1rem; color: var(--w27-navy); margin: 0 0 12px; }
.w27-wininzone-etapes__illustration { display: block; width: 240px; height: 240px; max-width: 100%; margin: 0 auto 14px; color: var(--w27-pink); }
.w27-wininzone-etapes__illustration img { width: 100%; height: 100%; object-fit: contain; border-radius: 12px; }
.w27-wininzone-etapes__illustration--icone svg { width: 100%; height: 100%; }
.w27-wininzone-etapes__texte { font-size: .84rem; color: var(--w27-grey); margin: 0; }
.w27-wininzone-etapes__texte strong { color: var(--w27-navy); font-weight: 700; }
.w27-wininzone-etapes__accroche { font-size: 1.05rem; font-weight: 800; text-transform: uppercase; color: var(--w27-pink); line-height: 1.25; margin: 0 0 14px; letter-spacing: .01em; }
.w27-wininzone-etapes__item--alerte {
	background: #fdeef1;
	border: 1.5px dashed var(--w27-pink);
}
.w27-wininzone-etapes__item--alerte .w27-wininzone-etapes__titre { color: var(--w27-pink); }
.w27-wininzone-etapes__item--alerte .w27-wininzone-etapes__illustration { color: var(--w27-pink); }

.w27-wininzone-concept { padding: 56px 0 72px; background: var(--w27-bg-soft); }
.w27-wininzone-concept__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.w27-wininzone-concept__texte p { color: var(--w27-grey); }
.w27-wininzone-concept__liste { display: flex; flex-direction: column; gap: 10px; margin: 18px 0; }
.w27-wininzone-concept__liste li { display: flex; align-items: flex-start; gap: 10px; font-size: .88rem; color: var(--w27-ink); }
.w27-wininzone-concept__liste li span { width: 20px; height: 20px; flex-shrink: 0; color: var(--w27-pink); }
.w27-wininzone-concept__liste li span svg { width: 100%; height: 100%; }
.w27-wininzone-concept__participants {
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid #e3e1da;
	font-size: .8rem;
	color: var(--w27-grey);
}
.w27-wininzone-concept__participants p:first-child { margin-top: 0; }
.w27-wininzone-concept__image { display: flex; flex-direction: column; gap: 20px; }
.w27-wininzone-concept__image img { display: block; width: 100%; border-radius: var(--w27-radius-lg); }

.w27-sejours-cta.w27-wininzone-cta { background: linear-gradient(90deg, var(--w27-navy), var(--w27-navy-light) 55%, var(--w27-pink)); }

/* WininCup (maquette WininCup.png) ------------------------------------------ */
.w27-winincup-hero__subtitle { font-size: 1.15rem; color: var(--w27-white); font-weight: 600; margin: 0 0 10px; }
.w27-winincup-hero__boutons { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 22px; }

.w27-winincup-reperes { padding: 28px 0; background: var(--w27-white); border-bottom: 1px solid #ece9e2; }
.w27-winincup-reperes__row { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.w27-winincup-reperes__item { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; }
.w27-winincup-reperes__icone { width: 26px; height: 26px; color: var(--w27-green); }
.w27-winincup-reperes__icone svg { width: 100%; height: 100%; }
.w27-winincup-reperes__item p { margin: 0; font-size: .76rem; color: var(--w27-ink); }

.w27-winincup-calendrier { padding: 72px 0; }

.w27-winincup-filtres { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 28px; }
.w27-winincup-filtres__tabs { display: flex; gap: 10px; flex-wrap: wrap; }
.w27-winincup-filtres__tab {
	padding: 10px 20px;
	border-radius: 999px;
	border: 1px solid #e3e1da;
	background: var(--w27-white);
	color: var(--w27-navy);
	font-size: .8rem;
	font-weight: 600;
	font-family: var(--w27-font);
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
}
.w27-winincup-filtres__tab:hover { border-color: var(--w27-green); }
.w27-winincup-filtres__tab.is-active { background: var(--w27-green); color: var(--w27-white); border-color: var(--w27-green); }
.w27-winincup-filtres__select {
	padding: 10px 16px;
	border-radius: 999px;
	border: 1px solid #e3e1da;
	background: var(--w27-white);
	color: var(--w27-navy);
	font-size: .8rem;
	font-family: var(--w27-font);
}

.w27-winincup-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 24px; }
.w27-winincup-grid__empty, .w27-winincup-grid__no-match { grid-column: 1 / -1; text-align: center; color: var(--w27-grey); padding: 32px 0; }
.w27-winincup-grid__plus { text-align: center; margin-top: 32px; }

.w27-winincup-card { background: var(--w27-white); border: 1px solid #ece9e2; border-radius: var(--w27-radius-lg); overflow: hidden; display: flex; flex-direction: column; }
.w27-winincup-card[hidden] { display: none; }
.w27-winincup-card__media { position: relative; aspect-ratio: 4/3; background: var(--w27-bg-soft); }
.w27-winincup-card__media img { width: 100%; height: 100%; object-fit: cover; }
.w27-winincup-card__media-fallback { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--w27-grey); }
.w27-winincup-card__media-fallback svg { width: 36px; height: 36px; }
.w27-winincup-card__date {
	position: absolute;
	top: 12px;
	left: 12px;
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1.1;
	background: var(--w27-white);
	color: var(--w27-navy);
	border-radius: 10px;
	padding: 6px 10px;
	box-shadow: var(--w27-shadow);
}
.w27-winincup-card__date strong { font-size: 1.1rem; }
.w27-winincup-card__date span { font-size: .68rem; text-transform: uppercase; color: var(--w27-grey); }
.w27-winincup-card__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.w27-winincup-card__title { font-size: 1rem; color: var(--w27-navy); margin: 0; }
.w27-winincup-card__meta { display: flex; align-items: center; gap: 6px; font-size: .78rem; color: var(--w27-grey); margin: 0; }
.w27-winincup-card__meta span { width: 14px; height: 14px; flex-shrink: 0; color: var(--w27-green); }
.w27-winincup-card__meta span svg { width: 100%; height: 100%; }
.w27-winincup-card__meta a { text-decoration: underline; }
.w27-winincup-card__texte { font-size: .82rem; color: var(--w27-ink); margin-top: 4px; }
.w27-winincup-card__texte p { margin: 0 0 6px; }
.w27-winincup-card__texte ul { list-style: disc; padding-left: 18px; margin: 6px 0; }
.w27-winincup-card__texte li { margin-bottom: 2px; }
.w27-winincup-card__infos { margin: 0; padding: 10px 20px; background: var(--w27-bg-soft); font-size: .76rem; color: var(--w27-grey); border-top: 1px solid #ece9e2; }

.w27-winincup-partenaires { padding: 56px 0 72px; }
/* CORRECTIF (2026-09-03, demande utilisateur — "enlève ces logos et mets
 * tous les autres à la même taille. Grossi encore un peu celui de la
 * première ligne, le PARK HYATT MARRAKECH") : 3 logos retirés du repeater
 * ACF réel en admin (agence pmd, La Plonplonière, Salomé ZABIO). Les logos
 * restants sont désormais placés dans une boîte de hauteur fixe identique
 * avec "object-fit: contain" (au lieu d'un simple "max-height" sur l'<img>)
 * pour neutraliser les marges/ratios internes très différents d'un fichier
 * à l'autre (ex. le logo "agence pmd" avait un gros cadre blanc autour du
 * texte) et obtenir un rendu réellement à la même taille visuelle. Passage
 * en "flex-wrap: nowrap" pour tenir "tous sur une seule ligne" (demande liée
 * du même utilisateur, voir ajout du logo "PMD GOLF" ci-dessous) — un
 * défilement horizontal (overflow-x) sert de filet de sécurité si la fenêtre
 * est trop étroite plutôt que de repasser à la ligne.
 */
.w27-winincup-partenaires__row { display: flex; justify-content: center; align-items: center; gap: 32px; flex-wrap: nowrap; overflow-x: auto; margin-top: 24px; padding-bottom: 4px; }
.w27-winincup-partenaires__logo { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; height: 52px; }
.w27-winincup-partenaires__logo img { display: block; height: 100%; width: auto; max-width: 130px; object-fit: contain; }
.w27-winincup-partenaires__vedette { display: flex; justify-content: center; margin-top: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--w27-border, #e5e5e5); }
/* BUG CORRIGÉ (2026-09-03, demande utilisateur — "grossir X4 la taille du
 * logo Park Hyatt Marrakech en bas") : le précédent "max-height: 124px" sur
 * l'<img> n'avait, en pratique, jamais eu d'effet visible — le conteneur
 * ".w27-winincup-partenaires__logo--vedette" reste soumis à la règle de base
 * ".w27-winincup-partenaires__logo { height: 52px }" (les 2 classes sont
 * combinées sur le même élément), et la règle générale juste au-dessus,
 * ".w27-winincup-partenaires__logo img { height: 100% }", calculait donc
 * 100% de ces 52px, une valeur toujours bien inférieure au max-height fixé
 * — le logo restait coincé à 52px de haut. Corrigé en fixant explicitement
 * une hauteur propre au conteneur vedette (4 x 52px = 208px) et un
 * max-width proportionnellement plus grand (le logo Park Hyatt Marrakech
 * est un texte large et bas, pas un pictogramme carré comme les autres). */
.w27-winincup-partenaires__logo--vedette { height: 208px; }
.w27-winincup-partenaires__logo--vedette img { height: 100%; max-height: 208px; width: auto; max-width: 520px; }

/* WininShot (maquette wininShot.png) ----------------------------------------- */
.w27-wininshot-hero { position: relative; overflow: hidden; }
/* BUG CORRIGÉ (2026-09-03, signalé par l'utilisateur — "il manque la vidéo"
   sur la page WininShot) : même cause déjà rencontrée et corrigée le
   2026-09-02 pour le diaporama WininCup/Golfs (voir le commentaire détaillé
   plus bas sur ".w27-hero.w27-hero--slider > .w27-hero__slider-bg") — la
   règle CSS générique ajoutée via le plugin admin "Simple CSS" (PAS dans ce
   thème), ".w27-hero > :not(.w27-hero__bg-video) { position: relative;
   z-index: 2; }", cible TOUT enfant direct de ".w27-hero" qui n'a pas
   exactement la classe "w27-hero__bg-video" — donc aussi notre vidéo
   ".w27-wininshot-hero__video" (nom différent). Avec une spécificité de 2
   classes contre 1 seule ici, elle l'emportait et repassait la vidéo en
   "position: relative", la faisant rétrécir dans le flex du hero au lieu de
   couvrir tout le fond — visuellement, une simple image fixe (poster) à
   gauche et les contrôles vidéo perdus à droite, sans vidéo visible. Corrigé
   ici en montant la spécificité à 3 classes (même technique déjà utilisée et
   documentée pour le diaporama), plutôt qu'en touchant le CSS Simple CSS
   existant qui gère aussi le hero vidéo de l'accueil/WinInOne/WinInZone. */
.w27-hero.w27-wininshot-hero > .w27-wininshot-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.w27-wininshot-hero--video .w27-hero__inner { position: relative; z-index: 1; }

/* "Spider" — diaporama de fond en header (2026-09-02), plusieurs photos en
   fondu automatique (pages WininCup et Nos Golfs), voir main.js. */
.w27-hero--slider { background: linear-gradient(90deg, rgba(22,38,74,.72) 0%, rgba(22,38,74,.25) 55%, rgba(22,38,74,0) 75%); }
.w27-hero--slider .w27-hero__inner { position: relative; z-index: 1; }
.w27-hero__slider-bg { position: absolute; inset: 0; overflow: hidden; }
.w27-hero__slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.4s ease; }
.w27-hero__slide.is-active { opacity: 1; }
/* BUG CORRIGÉ (2026-09-02) : le diaporama WininCup/Golfs restait invisible
   (fond dégradé uni uniquement) malgré des photos réelles bien présentes en
   médiathèque et un balisage PHP correct. Cause réelle trouvée en inspectant
   les styles calculés en direct : une règle CSS ajoutée le 2026-09-01 via le
   plugin admin "Simple CSS" (PAS dans ce thème), ".w27-hero > :not(.w27-hero__bg-video)
   { position: relative }" — ajoutée à l'époque pour le hero vidéo de
   l'accueil/WinInOne/WinInZone (template-parts/hero.php, wininone-hero.php,
   wininzone-hero.php) — a une spécificité (2 classes) supérieure à la règle
   ci-dessus ".w27-hero__slider-bg { position: absolute }" (1 classe) et
   l'emportait sur TOUTES les pages ".w27-hero", y compris celles au
   diaporama photo créées le lendemain. Résultat : ".w27-hero__slider-bg"
   redevenait "position: relative" sans dimensions (ses enfants, tous en
   "position: absolute", ne contribuent plus à sa taille), donc invisible.
   Corrigé ici (spécificité 3 classes, l'emporte sur les 2 classes de la
   règle Simple CSS quel que soit l'ordre de chargement) plutôt qu'en modifiant
   le CSS Simple CSS existant, pour ne pas risquer de casser le hero vidéo
   qu'il gère par ailleurs. */
.w27-hero.w27-hero--slider > .w27-hero__slider-bg { position: absolute; inset: 0; }
/* BUG CORRIGÉ (2026-09-03, signalé par l'utilisateur — "écris le 'Visez,
   touchez, gagnez.' comme le mot WininShot juste au dessus") : le sous-titre
   utilisait la police accent italique (comme les citations/accroches du
   reste du site), très différente du titre "WininShot" juste au-dessus
   (police standard "--w27-font", grasse, blanche — voir ".w27-hero__title").
   Sous-titre repassé sur la même police/graisse/couleur que le titre, en
   plus petit, à la demande de l'utilisateur. */
.w27-wininshot-hero__soustitre { font-family: var(--w27-font); font-weight: 700; font-style: normal; font-size: clamp(1.3rem, 2.6vw, 1.8rem); color: var(--w27-white); margin: 0 0 14px; }
.w27-wininshot-hero__boutons { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 6px; }
/* BUG CORRIGÉ (2026-09-03, signalé par l'utilisateur) : toute la barre de
   contrôles manuelle du hero vidéo WininShot (lecture/pause, temps, barre de
   progression, son, plein écran) a été retirée du gabarit
   (template-parts/wininshot-hero.php) — la vidéo est en autoplay/boucle
   automatique, comme les autres headers vidéo du site, qui n'ont eux non
   plus aucun contrôle visible. Règles ".w27-wininshot-hero__controls/__btn/
   __time/__seek" supprimées avec elle, les éléments n'existant plus dans le
   HTML. */

/* Déclarations hero (plein écran, 2026-08-27) ------------------------ */
.w27-declarations-hero { position: relative; overflow: hidden; }
.w27-declarations-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.w27-declarations-hero--video .w27-hero__inner { position: relative; z-index: 1; }
.w27-declarations-hero__controls {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: 1100px;
	margin: 0 auto;
	padding: 10px 18px;
	background: rgba(10, 16, 32, .55);
	color: var(--w27-white);
}
.w27-declarations-hero__btn { background: none; border: 0; color: var(--w27-white); cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 4px; }
.w27-declarations-hero__btn svg { width: 22px; height: 22px; }
.w27-declarations-hero__time { font-size: .78rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.w27-declarations-hero__seek { flex: 1; accent-color: var(--w27-gold); }

.w27-wininshot-etapes { padding: 56px 0; }
/* BUG CORRIGÉ (2026-09-03, signalé par l'utilisateur) : règle retirée avec
   la classe correspondante (voir template-parts/wininshot-etapes.php) — le
   titre "Comment ça marche ?" de cette page utilise désormais exactement le
   même style que les autres pages du site (classes "w27-section-title
   w27-section-title--center" seules), la page WinInOne servant de référence. */
.w27-wininshot-etapes__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 28px; }
.w27-wininshot-etapes__item { display: flex; align-items: flex-start; gap: 16px; }
.w27-wininshot-etapes__icone {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--w27-pink);
	border-radius: 50%;
	color: var(--w27-pink);
	padding: 12px;
}
.w27-wininshot-etapes__numero { display: block; color: var(--w27-pink); font-family: var(--w27-font-accent); font-weight: 700; font-size: 1.3rem; margin-bottom: 2px; }
.w27-wininshot-etapes__item-titre { font-size: 1rem; color: var(--w27-navy); margin: 0 0 4px; }
.w27-wininshot-etapes__item-texte { font-size: .84rem; color: var(--w27-grey); margin: 0; }

.w27-wininshot-concept { padding: 56px 0 72px; background: var(--w27-bg-soft); }
.w27-wininshot-concept__eyebrow { display: block; color: var(--w27-pink); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-weight: 700; margin-bottom: 6px; }
.w27-wininshot-concept__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.w27-wininshot-concept__texte p { color: var(--w27-grey); }
.w27-wininshot-concept__liste { display: flex; flex-direction: column; gap: 14px; margin: 18px 0; }
.w27-wininshot-concept__liste li { display: flex; align-items: flex-start; gap: 10px; font-size: .88rem; color: var(--w27-ink); }
.w27-wininshot-concept__liste li span { width: 20px; height: 20px; flex-shrink: 0; color: var(--w27-pink); }
.w27-wininshot-concept__liste li span svg { width: 100%; height: 100%; }
.w27-wininshot-concept__image img { width: 100%; border-radius: var(--w27-radius-lg); }
.w27-wininshot-concept__image video { width: 100%; border-radius: var(--w27-radius-lg); display: block; }

.w27-wininshot-specs { padding: 0 0 56px; }
.w27-wininshot-specs__grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	border: 1px solid #e3e1da;
	border-radius: var(--w27-radius);
	overflow: hidden;
}
.w27-wininshot-specs__item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 18px 14px;
	border-right: 1px solid #e3e1da;
}
.w27-wininshot-specs__item:last-child { border-right: 0; }
.w27-wininshot-specs__icone { width: 26px; height: 26px; flex-shrink: 0; color: var(--w27-navy); }
.w27-wininshot-specs__icone svg { width: 100%; height: 100%; }
.w27-wininshot-specs__texte { display: flex; flex-direction: column; font-size: .76rem; color: var(--w27-grey); line-height: 1.3; }
.w27-wininshot-specs__texte strong { color: var(--w27-navy); font-size: .84rem; }

.w27-wininshot-atouts { padding: 56px 0 72px; }
/* BUG CORRIGÉ (2026-09-03, signalé par l'utilisateur — "mettre les 5 blocs
   sur la même ligne en Desktop") : "repeat(auto-fit, minmax(220px, 1fr))"
   ne garantissait pas 5 colonnes sur desktop — les 5 tuiles à 220px mini +
   les 4 espaces de 20px (1180px) approchaient trop la largeur utile du
   conteneur (1220px de large, moins son padding), le navigateur repassant
   parfois à 4 colonnes (la 5e tuile seule sur une 2e ligne) selon la largeur
   exacte de l'écran. Colonnes fixées explicitement à 5 sur desktop : les
   repères "tablette" (2 colonnes, ≤960px) et "mobile" (1 colonne, ≤560px)
   plus bas dans ce fichier restent inchangés pour les petits écrans. */
.w27-wininshot-atouts__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; margin-top: 28px; }
.w27-wininshot-logo-section { display: flex; justify-content: center; align-items: center; padding: 36px 20px; }
.w27-wininshot-logo-section img { max-width: 260px; width: 100%; height: auto; }
.w27-wininshot-atouts__item { border: 1px solid #e3e1da; border-radius: var(--w27-radius-lg); padding: 26px 22px; }
.w27-wininshot-atouts__icone { display: block; width: 30px; height: 30px; color: var(--w27-navy); margin-bottom: 14px; }
.w27-wininshot-atouts__icone svg { width: 100%; height: 100%; }
.w27-wininshot-atouts__titre { font-size: .95rem; color: var(--w27-navy); margin: 0 0 8px; }
.w27-wininshot-atouts__texte { font-size: .82rem; color: var(--w27-grey); margin: 0; }

.w27-sejours-cta.w27-wininshot-cta { background: linear-gradient(90deg, var(--w27-navy), var(--w27-navy-light) 60%, var(--w27-pink)); }

/* WinInOne (maquette Wininone.png) -------------------------------------------- */
.w27-wininone-hero__content { max-width: 620px; }
.w27-wininone-hero .w27-hero__title { font-family: var(--w27-font-accent); }

.w27-wininone-etapes { padding: 56px 0; }
.w27-wininone-etapes__titre-section { color: var(--w27-gold); text-transform: uppercase; letter-spacing: .08em; font-size: 1rem; }
.w27-wininone-etapes__grid { display: grid; grid-template-columns: repeat(3, auto); gap: 20px; margin-top: 28px; align-items: center; justify-content: center; }
.w27-wininone-etapes__item { display: flex; align-items: center; gap: 14px; }
.w27-wininone-etapes__numero { font-family: var(--w27-font-accent); font-weight: 700; font-size: 1.3rem; color: var(--w27-gold); }
.w27-wininone-etapes__icone {
	width: 48px;
	height: 48px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--w27-gold);
	border-radius: 50%;
	color: var(--w27-navy);
	padding: 11px;
}
.w27-wininone-etapes__item-titre { font-size: .95rem; color: var(--w27-navy); margin: 0 0 4px; }
.w27-wininone-etapes__item-texte { font-size: .8rem; color: var(--w27-grey); margin: 0; max-width: 220px; }
.w27-wininone-etapes__sep { width: 1px; height: 48px; background: #e3e1da; justify-self: center; }

.w27-wininone-concept { padding: 56px 0 72px; }
.w27-wininone-concept__eyebrow { display: block; color: var(--w27-gold); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-weight: 700; margin-bottom: 6px; }
.w27-wininone-concept__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.w27-wininone-concept__texte p { color: var(--w27-grey); }
.w27-wininone-concept__liste { display: flex; flex-direction: column; gap: 16px; margin: 20px 0 26px; }
.w27-wininone-concept__liste li { display: flex; align-items: flex-start; gap: 12px; }
.w27-wininone-concept__liste-icone {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--w27-gold);
	border-radius: 50%;
	color: var(--w27-navy);
	padding: 8px;
}
.w27-wininone-concept__liste strong { display: block; font-size: .9rem; color: var(--w27-navy); }
.w27-wininone-concept__liste-texte { display: block; font-size: .8rem; color: var(--w27-grey); }
.w27-wininone-concept__image img { width: 100%; border-radius: var(--w27-radius-lg); }

.w27-wininone-gagnants { padding: 0 0 56px; }
/* 2026-09-02, demande utilisateur : le texte "Nos gagnants" doit occuper
   toute la largeur (justifié), comme la ligne des 3 premières photos de la
   galerie juste en dessous — remplace l'ancienne grille 2 colonnes
   photo/texte (la photo "image_3" est de toute façon quasi toujours vide
   sur cette page, elle s'affiche donc désormais en pleine largeur au-dessus
   du texte si jamais elle est renseignée, au lieu de réserver une colonne
   inutilisée qui rétrécissait le texte). */
.w27-wininone-gagnants__grid { display: block; }
.w27-wininone-gagnants__photo { margin-bottom: 32px; }
.w27-wininone-gagnants__photo img { width: 100%; border-radius: var(--w27-radius-lg); }
.w27-wininone-gagnants__texte p { color: var(--w27-grey); text-align: justify; }
/* Photos agrandies et recadrage moins serré (2026-09-01, demande utilisateur) :
   90px -> 260px de hauteur, et la taille source ACF passe de "w27-thumb"
   (160x160, carré très serré) à "w27-card" (640x480, 4:3) dans
   template-parts/wininone-gagnants.php, pour qu'on voie davantage la photo
   plutôt qu'un recadrage carré serré au centre. */
/* 2026-09-02, demande utilisateur : passage à 2 lignes de 3 photos (repeat(5)
   datait de l'époque où la galerie n'avait que 5 photos ; avec la 6e ajoutée
   le même jour, ça laissait une 6e photo seule, isolée sur une 2e ligne). */
.w27-wininone-gagnants__galerie { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 28px; }
.w27-wininone-gagnants__galerie a { display: block; border-radius: 10px; overflow: hidden; }
.w27-wininone-gagnants__galerie img { width: 100%; height: 260px; object-fit: cover; border-radius: 10px; display: block; transition: transform .3s ease; }
.w27-wininone-gagnants__galerie a:hover img { transform: scale(1.04); }
.w27-wininone-gold-cta { display: flex; justify-content: center; padding: 0 0 56px; margin-top: -16px; }

.w27-wininone-stats { padding: 0 0 56px; }
.w27-wininone-stats__row {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	background: var(--w27-bg-soft);
	border-radius: var(--w27-radius);
	overflow: hidden;
}
.w27-wininone-stats__item { display: flex; align-items: center; gap: 12px; padding: 22px 20px; border-right: 1px solid #e3e1da; }
.w27-wininone-stats__item:last-child { border-right: 0; }
.w27-wininone-stats__icone { width: 26px; height: 26px; flex-shrink: 0; color: var(--w27-gold); }
.w27-wininone-stats__icone svg { width: 100%; height: 100%; }
.w27-wininone-stats__valeur { display: block; font-size: 1.2rem; color: var(--w27-navy); }
.w27-wininone-stats__texte { display: block; font-size: .78rem; color: var(--w27-grey); }

.w27-wininone-premium { padding: 0 0 72px; }
/* Cartes navy/gold retirées et fond photo pleine largeur ajouté le 2026-09-01,
   à la demande de l'utilisateur (voir template-parts/wininone-premium.php) :
   dégradé sombre superposé à la photo pour garder le texte lisible, même
   mécanisme que ".w27-abonnement-hero". */
.w27-wininone-premium__inner {
	position: relative;
	background:
		linear-gradient(100deg, rgba(22,38,74,.92) 0%, rgba(22,38,74,.72) 45%, rgba(22,38,74,.35) 100%),
		var(--w27-wininone-premium-bg, var(--w27-bg-soft)) center/cover no-repeat;
	border-radius: var(--w27-radius-lg);
	padding: 56px 48px;
	overflow: hidden;
}
.w27-wininone-premium__texte { max-width: 600px; }
.w27-wininone-premium__eyebrow { display: block; color: var(--w27-gold-light); text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-weight: 700; margin-bottom: 8px; }
.w27-wininone-premium__texte .w27-section-title { color: var(--w27-white); }
.w27-wininone-premium__texte p { color: rgba(255,255,255,.88); }

.w27-wininone-rgpd { padding: 32px 0 64px; }
.w27-wininone-rgpd__inner {
	background: var(--w27-bg-soft);
	border-radius: var(--w27-radius);
	padding: 24px 28px;
	font-size: .78rem;
	color: var(--w27-grey);
}
.w27-wininone-rgpd__inner h2, .w27-wininone-rgpd__inner h3 { color: var(--w27-navy); font-size: .95rem; margin: 0 0 10px; }
.w27-wininone-rgpd__inner ul { list-style: disc; margin: 8px 0; padding-left: 18px; }
.w27-wininone-rgpd__inner li { margin-bottom: 4px; }
.w27-wininone-rgpd__inner p:first-child { margin-top: 0; }

/* Responsive --------------------------------------------------------------- */
@media (max-width: 960px) {
	.w27-nav { display: none; }
	.w27-nav--open {
		display: block;
		position: absolute;
		top: 100%; left: 0; right: 0;
		background: var(--w27-white);
		box-shadow: var(--w27-shadow);
		padding: 20px 24px;
	}
	.w27-nav--open .w27-nav__list { flex-direction: column; align-items: flex-start; gap: 16px; }
	.w27-header__inner { position: relative; }
	.w27-nav-toggle { display: flex; }
	.w27-hiw__list { grid-template-columns: repeat(2, 1fr); }
	.w27-products__grid { grid-template-columns: 1fr; }
	.w27-wininone-univers__grid { grid-template-columns: 1fr; }
	.w27-page-header__inner { grid-template-columns: 1fr; }
	.w27-declarations__grid, .w27-decl-help__grid { grid-template-columns: 1fr; }
	.w27-banner, .w27-banner--left { grid-template-columns: 1fr; direction: ltr; }
	.w27-banner__media { min-height: 260px; }
	.w27-banner__content { padding: 40px 28px; }
	.w27-footer__top { grid-template-columns: 1fr; }
	.w27-winners__row { flex-wrap: wrap; }
	.w27-winners__row .w27-btn { margin-left: auto; }
	.w27-race-intro__grid { grid-template-columns: 1fr; gap: 40px; }
	.w27-race-gallery__grid { grid-template-columns: repeat(2, 1fr); }
	.w27-race-highlights__grid { grid-template-columns: repeat(2, 1fr); }
	.w27-race-stats__row { justify-content: flex-start; }
	.w27-partenaire-hero__inner { flex-direction: column; align-items: flex-start; }
	.w27-partenaire-hero__logo { order: -1; }
	.w27-partenaire-highlights__row { justify-content: flex-start; }
	.w27-partenaire-intro__grid--with-box { grid-template-columns: 1fr; }
	.w27-partenaire-intro__main { grid-template-columns: 1fr; }
	.w27-partenaire-blocs__grid { grid-template-columns: repeat(2, 1fr); }
	.w27-partenaire-programme__cols { grid-template-columns: 1fr; }
	.w27-partenaire-programme__inclus-grid { grid-template-columns: 1fr; }
	.w27-partenaire-galerie__grid { grid-template-columns: repeat(2, 1fr); }
	.w27-footer-partenaire__top { grid-template-columns: 1fr 1fr; }
	.w27-sejours-etapes__row { grid-template-columns: 1fr 1fr; }
	.w27-sejours-catalogue__grid { grid-template-columns: 1fr; }
	.w27-sejours-grid { grid-template-columns: repeat(2, 1fr); }
	.w27-contact-infos__row { grid-template-columns: 1fr 1fr; }
	.w27-contact-corps__grid { grid-template-columns: 1fr; }
	.w27-classements-stats__row { grid-template-columns: 1fr 1fr; }
	.w27-classements-grid { grid-template-columns: 1fr; }
	.w27-classements-table th, .w27-classements-table td { padding-left: 16px; padding-right: 16px; }
	.w27-abonnement-formules__grid { grid-template-columns: 1fr; }
	.w27-abonnement-inscription__grid { grid-template-columns: 1fr; gap: 28px; padding: 28px; }
	.w27-golfs-carte__layout { grid-template-columns: 1fr; }
	.w27-golfs-carte__map { height: 360px; }
	.w27-golfs-carte__liste { max-height: 420px; }
	.w27-golfs-stats__row { grid-template-columns: repeat(2, 1fr); }
	.w27-wininzone-reperes__row { grid-template-columns: repeat(2, 1fr); }
	.w27-wininzone-etapes__grid { grid-template-columns: repeat(2, 1fr); }
	.w27-wininzone-etapes__illustration { width: 180px; height: 180px; }
	.w27-wininzone-concept__grid { grid-template-columns: 1fr; gap: 32px; }
	.w27-wininzone-concept__image { order: -1; }
	.w27-winincup-reperes__row { grid-template-columns: repeat(3, 1fr); gap: 20px 14px; }
	.w27-winincup-grid { grid-template-columns: repeat(2, 1fr); }

	.w27-wininshot-etapes__grid { grid-template-columns: 1fr; gap: 24px; }
	.w27-wininshot-specs__grid { grid-template-columns: repeat(3, 1fr); }
	.w27-wininshot-specs__item { border-bottom: 1px solid #e3e1da; }
	.w27-wininshot-atouts__grid { grid-template-columns: repeat(2, 1fr); }
	.w27-wininshot-concept__grid { grid-template-columns: 1fr; gap: 32px; }
	.w27-wininshot-concept__image { order: -1; }

	.w27-wininone-etapes__grid { grid-template-columns: 1fr; justify-items: center; }
	.w27-wininone-etapes__sep { display: none; }
	.w27-wininone-concept__grid { grid-template-columns: 1fr; gap: 32px; }
	.w27-wininone-concept__image { order: -1; }
	.w27-wininone-gagnants__galerie { grid-template-columns: repeat(3, 1fr); }
	.w27-wininone-gagnants__galerie img { height: 200px; }
	.w27-wininone-stats__row { grid-template-columns: repeat(2, 1fr); }
	.w27-wininone-premium__inner { padding: 32px; }
}

/* Règlement (WinInOne / WinInZone / WininShot) --------------------------- */
.w27-reglement { padding: 8px 0 72px; }
.w27-reglement__inner { max-width: 860px; }

/* Accordéon natif <details>/<summary> — fonctionne sans JavaScript. */
.w27-accordion { display: flex; flex-direction: column; gap: 12px; }
.w27-accordion__item {
	background: var(--w27-white);
	border: 1px solid #e3e1da;
	border-radius: var(--w27-radius);
	overflow: hidden;
}
.w27-accordion__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 22px;
	cursor: pointer;
	list-style: none;
	font-weight: 600;
	color: var(--w27-navy);
}
.w27-accordion__head::-webkit-details-marker { display: none; }
.w27-accordion__titre { flex: 1 1 auto; }
.w27-accordion__chevron {
	flex: none;
	width: 12px;
	height: 12px;
	border-right: 2px solid var(--w27-gold);
	border-bottom: 2px solid var(--w27-gold);
	transform: rotate(45deg);
	transition: transform .2s ease;
}
.w27-accordion__item[open] > .w27-accordion__head .w27-accordion__chevron { transform: rotate(-135deg); }
.w27-accordion__body {
	padding: 0 22px 22px;
	color: var(--w27-grey);
}
.w27-accordion__body p { margin: 0 0 1em; }
.w27-accordion__body ul, .w27-accordion__body ol { list-style: disc; padding-left: 1.2em; margin: 0 0 1em; }
.w27-accordion__body ol { list-style: decimal; }
.w27-accordion__body li { margin-bottom: .4em; }
.w27-accordion__body h3, .w27-accordion__body h4 { color: var(--w27-navy); margin-top: 1em; }
.w27-accordion__body a { text-decoration: underline; color: var(--w27-navy); }

/* Repli post_content classique (ex. Règlement WininShot). */
.w27-reglement__prose { color: var(--w27-grey); }
.w27-reglement__prose h2 {
	color: var(--w27-navy);
	font-size: clamp(1.15rem, 2vw, 1.4rem);
	margin-top: 1.8em;
}
.w27-reglement__prose h2:first-child { margin-top: 0; }
.w27-reglement__prose p { margin: 0 0 1em; }
.w27-reglement__prose ul, .w27-reglement__prose ol { list-style: disc; padding-left: 1.2em; margin: 0 0 1em; }
.w27-reglement__prose ol { list-style: decimal; }
.w27-reglement__prose li { margin-bottom: .4em; }
.w27-reglement__prose a { text-decoration: underline; color: var(--w27-navy); }
.w27-reglement__prose strong { color: var(--w27-ink); }

@media (max-width: 560px) {
	.w27-header__cta { display: none; }
	.w27-hero { min-height: 480px; }
	.w27-winners__row { flex-direction: column; align-items: stretch; text-align: left; }
	/* Agrandi x3 aussi en mobile (2026-09-01) : 160px -> 480px de hauteur. */
	.w27-winners__thumb { width: 100%; height: 480px; }
	.w27-winners__name { flex-wrap: wrap; }
	.w27-winners__row .w27-btn { margin-left: 0; align-self: flex-start; }
	.w27-race-hero { min-height: 520px; }
	.w27-race-hero__inner { padding: 80px 0 40px; }
	.w27-race-hero__actions { flex-direction: column; align-items: stretch; }
	.w27-race-hero__actions .w27-btn { justify-content: center; }
	.w27-race-stats__row { flex-direction: column; }
	.w27-race-gallery__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
	.w27-race-highlights__grid { grid-template-columns: 1fr; }
	.w27-partenaire-hero { min-height: 520px; }
	.w27-partenaire-hero__inner { padding: 80px 0 40px; }
	.w27-partenaire-hero__actions { flex-direction: column; align-items: stretch; }
	.w27-partenaire-hero__actions .w27-btn { justify-content: center; }
	.w27-partenaire-highlights__row { flex-direction: column; align-items: flex-start; }
	.w27-partenaire-blocs__grid { grid-template-columns: 1fr; }
	.w27-partenaire-blocs__item--photo:last-child:nth-child(odd) { display: block; }
	.w27-partenaire-blocs__item--photo:last-child:nth-child(odd) .w27-partenaire-blocs__photo { width: 100%; aspect-ratio: 16/10; }
	.w27-partenaire-banniere__inner { flex-direction: column; align-items: flex-start; }
	.w27-partenaire-banniere__items { gap: 18px; }
	.w27-partenaire-galerie__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
	.w27-partenaire-autres__grid { gap: 24px; }
	.w27-partenaire-cta__inner { flex-direction: column; align-items: flex-start; }
	.w27-footer-partenaire__top { grid-template-columns: 1fr; }
	.w27-sejours-hero { min-height: 420px; }
	/* 2026-09-15 : calque blanc supplementaire en transparence sur mobile (demande utilisateur) pour que le texte reste lisible sur toute la largeur de la photo, le degrade horizontal pense pour desktop ne suffit plus une fois le bloc en pleine largeur. */
	.w27-sejours-hero {
		background:
			linear-gradient(rgba(255,255,255,.78), rgba(255,255,255,.78)),
			linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 42%, rgba(255,255,255,0) 70%),
			var(--w27-sejours-hero-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center/cover no-repeat;
	}
	.w27-sejours-hero__inner { padding: 76px 0 72px; }
	.w27-sejours-hero__actions { flex-direction: column; align-items: stretch; }
	.w27-sejours-hero__actions .w27-btn { justify-content: center; }
	.w27-sejours-etapes { margin-top: -30px; }
	.w27-sejours-etapes__row { grid-template-columns: 1fr; padding: 24px; }
	.w27-sejours-filtres { align-items: stretch; }
	.w27-sejours-filtres__select { width: 100%; }
	.w27-sejours-grid { grid-template-columns: 1fr; }
	.w27-sejour-card__inclus { grid-template-columns: 1fr; }
	.w27-sejours-cta__inner { flex-direction: column; align-items: flex-start; }
	.w27-sejours-cta__actions { width: 100%; }
	.w27-sejours-cta__actions .w27-btn { flex: 1; justify-content: center; }
	.w27-contact-hero { min-height: 420px; }
	.w27-contact-hero__inner { padding: 76px 0 60px; }
	.w27-contact-hero__actions { flex-direction: column; align-items: stretch; }
	.w27-contact-hero__actions .w27-btn { justify-content: center; }
	.w27-contact-infos { margin-top: -30px; }
	.w27-contact-infos__row { grid-template-columns: 1fr; }
	.w27-contact-corps { padding: 48px 0; }
	.w27-contact-formulaire { padding: 24px; }
	.w27-contact-formulaire__row { grid-template-columns: 1fr; }
	.w27-classements-hero { min-height: 420px; }
	/* 2026-09-14 : calque fonce dedie mobile (demande utilisateur) -- sur cette largeur, le bloc de texte occupe toute la largeur de la photo (le degrade clair gauche->droite pense pour le desktop ne suffit plus a garantir le contraste), donc un calque uni plus sombre + texte blanc remplacent le degrade pour cette page en dessous de 560px. */
	.w27-classements-hero {
		background:
			linear-gradient(rgba(8, 18, 38, .62), rgba(8, 18, 38, .62)),
			var(--w27-classements-hero-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center 18%/cover no-repeat;
	}
	.w27-classements-hero__title,
	.w27-classements-hero__text { color: var(--w27-white); }
	.w27-classements-hero__inner { padding: 76px 0 60px; }
	.w27-classements-stats__row { grid-template-columns: 1fr; }
	.w27-classements-tabs { justify-content: flex-start; }
	.w27-classements-subtabs { gap: 18px; padding: 16px 16px 0; overflow-x: auto; }
	.w27-classements-table { font-size: .82rem; }
	.w27-classements-table th, .w27-classements-table td { padding: 10px 12px; }
	.w27-classements-joueur__avatar { width: 32px; height: 32px; }
	.w27-classements-cta__inner { flex-direction: column; align-items: flex-start; padding: 28px 24px; }
.w27-par-golf-tables { grid-template-columns: 1fr; }
.w27-par-golf-table + .w27-par-golf-table { border-left: 0; padding-left: 0; border-top: 1px solid #ece9e2; padding-top: 18px; margin-top: 18px; }
	.w27-classements-cta .w27-btn { width: 100%; justify-content: center; }
	/* 2026-09-14 : sur mobile, les boutons "Déclarer..." des hero vidéo
	   WinInOne/WininZone/WininShot sont décalés un peu plus bas (demande
	   utilisateur) pour ne pas cacher les personnages de la vidéo de fond
	   (recadrée sur le bas de l'image, voir CSS additionnel du thème
	   ".w27-hero__bg-video { object-position: center bottom }"). */
	.w27-wininone-hero .w27-btn { margin-top: 80px; }
	.w27-wininzone-hero__boutons,
	.w27-wininshot-hero__boutons { margin-top: 80px; }
	.w27-abonnement-hero { min-height: 440px; }
	/* 2026-09-15 : calque blanc supplementaire en transparence sur mobile (demande utilisateur), en complement du calque sombre existant, pour que le texte reste lisible sur toute la largeur de la photo une fois le bloc en pleine largeur. */
	.w27-abonnement-hero {
		background:
			linear-gradient(rgba(255,255,255,.7), rgba(255,255,255,.7)),
			linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.88) 42%, rgba(255,255,255,.15) 72%),
			linear-gradient(rgba(8, 18, 38, .45), rgba(8, 18, 38, .45)),
			var(--w27-abonnement-hero-bg, linear-gradient(135deg, var(--w27-navy), var(--w27-navy-light))) center/cover no-repeat;
	}
	.w27-abonnement-hero__inner { padding: 76px 0 60px; }
	.w27-abonnement-avantages__grid { flex-direction: column; align-items: flex-start; }
	.w27-abonnement-petit-plus__inner { flex-direction: column; align-items: flex-start; }
	.w27-abonnement-petit-plus__photo { width: 100%; height: 140px; }
	.w27-abonnement-inscription__grid { padding: 20px; }
	.w27-abonnement-inscription__prix { font-size: 1.8rem; }
	.w27-sejours-cta.w27-abonnement-cta .w27-sejours-cta__inner { flex-direction: column; align-items: flex-start; }
	.w27-sejours-cta.w27-abonnement-cta .w27-sejours-cta__actions { width: 100%; }
	.w27-sejours-cta.w27-abonnement-cta .w27-sejours-cta__actions .w27-btn { flex: 1; justify-content: center; }
	.w27-golfs-hero__boutons { flex-direction: column; align-items: stretch; }
	.w27-golfs-hero__boutons .w27-btn { justify-content: center; }
	.w27-golfs-carte__toolbar { flex-direction: column; align-items: stretch; }
	/* flex-basis: 240px (règle de base) s'applique à la HAUTEUR une fois l'axe
	   principal du parent passé en colonne ci-dessus — sans ce reset, la
	   pastille de recherche héritait une hauteur de 240px (cercle géant). */
	.w27-golfs-carte__recherche { max-width: none; flex: 0 0 auto; }
	.w27-golfs-carte__legende { margin-left: 0; }
	.w27-golfs-carte__compteur { position: static; margin-top: 12px; }
	.w27-golfs-stats__row { grid-template-columns: 1fr 1fr; }
	.w27-sejours-cta.w27-golfs-cta .w27-sejours-cta__inner { flex-direction: column; align-items: flex-start; }
	.w27-sejours-cta.w27-golfs-cta .w27-sejours-cta__actions { width: 100%; }
	.w27-sejours-cta.w27-golfs-cta .w27-sejours-cta__actions .w27-btn { flex: 1; justify-content: center; }

	.w27-wininzone-hero__boutons { flex-direction: column; align-items: stretch; }
	.w27-wininzone-hero__boutons .w27-btn { justify-content: center; }
	.w27-wininzone-reperes__row { grid-template-columns: 1fr; gap: 14px; }
	.w27-wininzone-etapes { padding: 48px 0; }
	.w27-wininzone-etapes__grid { grid-template-columns: 1fr; }
	.w27-wininzone-etapes__illustration { width: 220px; height: 220px; }
	.w27-wininzone-concept { padding: 40px 0 48px; }

	.w27-winincup-hero__boutons { flex-direction: column; align-items: stretch; }
	.w27-winincup-hero__boutons .w27-btn { justify-content: center; }
	.w27-winincup-reperes__row { grid-template-columns: 1fr 1fr; }
	.w27-winincup-calendrier { padding: 48px 0; }
	.w27-winincup-filtres { align-items: stretch; }
	.w27-winincup-filtres__select { width: 100%; }
	.w27-winincup-grid { grid-template-columns: 1fr; }
	.w27-winincup-partenaires__row { gap: 28px; }

	.w27-wininshot-hero__boutons { flex-direction: column; align-items: stretch; }
	.w27-wininshot-hero__boutons .w27-btn { justify-content: center; }
	.w27-declarations-hero__controls { flex-wrap: wrap; }
	.w27-declarations-hero__seek { order: 1; flex-basis: 100%; }
	.w27-wininshot-specs__grid { grid-template-columns: 1fr 1fr; }
	.w27-wininshot-atouts__grid { grid-template-columns: 1fr; }
	.w27-wininshot-etapes { padding: 40px 0; }
	.w27-wininshot-concept { padding: 40px 0 48px; }

	.w27-wininone-stats__row { grid-template-columns: 1fr; }
	.w27-wininone-stats__item { border-right: 0; border-bottom: 1px solid #e3e1da; }
	.w27-wininone-stats__item:last-child { border-bottom: 0; }
	.w27-wininone-gagnants__galerie { grid-template-columns: repeat(2, 1fr); }
	.w27-wininone-gagnants__galerie img { height: 220px; }
	.w27-wininone-premium__inner { padding: 24px; }

	.w27-accordion__head { padding: 14px 16px; }
	.w27-accordion__body { padding: 0 16px 18px; }
}

/* BUG CORRIGÉ (2026-09-03) : les pages "Déclaration WinInOne/WinInZone" et
   "Déclarer mon WininShot" (repli générique index.php, voir ce fichier pour
   le détail) affichaient un texte JS résiduel au lieu du vrai formulaire
   Ninja Forms — voir index.php pour la logique. Réutilise volontairement les
   styles de champ déjà en place pour le formulaire de contact
   (.w27-contact-formulaire / .w27-contact-formulaire__embed, voir plus haut
   dans ce fichier) pour un rendu cohérent avec le reste du site, dans une
   colonne centrée plus étroite adaptée à un formulaire seul (sans la barre
   latérale "Pourquoi nous contacter ?" de la page Contact). */
.w27-fallback-article--formulaire { max-width: 720px; margin: 0 auto; padding: 3rem 0; }
.w27-fallback-article__carte { margin-top: 24px; }

/* Page "Golfy" (/golfy/, page-templates/template-golfy.php) --------------
   2026-09-03, demande utilisateur : "Reprendre tous les blocs qui
   mentionnent les golfs Wininone du réseau Golfy" — cette page utilisait le
   contenu brut hérité de l'ancien thème (jamais habillé). Styles ci-dessous
   pour l'ensemble des blocs réels (voir template-parts/golfy-*.php),
   cohérents avec le reste du site (mêmes variables --w27-*, mêmes classes
   .w27-container/.w27-btn/.w27-section-title). ------------------------- */

.w27-golfy-block { padding: 48px 0; }
.w27-golfy-block--premium,
.w27-golfy-block--pays { background: var(--w27-navy); color: var(--w27-white); }
.w27-golfy-block--premium p,
.w27-golfy-block--pays p { margin: 0; }
.w27-golfy-block--pays { text-align: center; }

/* Contenu WYSIWYG réel (texte/texte_3/texte_4/texte_5) : styles génériques
   pour un rendu cohérent sans devoir réécrire le contenu réel en blocs
   structurés. */
.w27-golfy-richtext { max-width: 760px; margin: 0 auto; }
.w27-golfy-richtext--center { text-align: center; }
.w27-golfy-richtext h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--w27-navy); margin-bottom: .6em; }
.w27-golfy-block--pays .w27-golfy-richtext h2,
.w27-golfy-block--premium .w27-golfy-richtext h2 { color: var(--w27-white); }
.w27-golfy-richtext p { margin: 0 0 1em; color: var(--w27-grey); }
.w27-golfy-richtext img { border-radius: var(--w27-radius-lg); margin: 0 auto 1.2em; }
.w27-golfy-richtext strong { color: var(--w27-ink); }
.w27-golfy-richtext .w27-btn { margin-top: 8px; }
.w27-golfy-richtext--center .w27-btn { margin-top: 8px; }
/* Sur fond bleu marine (bandeaux "premium"/"pays"), le texte réel doit
   rester lisible en blanc plutôt qu'en gris (règle générique ci-dessus). */
.w27-golfy-block--pays .w27-golfy-richtext p,
.w27-golfy-block--premium .w27-golfy-richtext p,
.w27-golfy-block--pays p,
.w27-golfy-block--premium p { color: var(--w27-white); }
.w27-golfy-block--pays .w27-golfy-richtext strong,
.w27-golfy-block--premium .w27-golfy-richtext strong { color: var(--w27-white); }

/* Hero : logo Golfy/GolfExperience + bandeau titre_header ---------------- */
.w27-golfy-hero { padding: 40px 0 8px; }
.w27-golfy-hero__inner { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.w27-golfy-hero__logo { flex: 0 0 auto; max-width: 220px; }
.w27-golfy-hero__logo img { width: 100%; height: auto; }
.w27-golfy-hero__banner { flex: 1 1 320px; background: var(--w27-navy); color: var(--w27-white); border-radius: var(--w27-radius-lg); padding: 20px 28px; text-align: center; font-weight: 700; text-transform: uppercase; letter-spacing: .01em; }
.w27-golfy-hero__banner span { color: var(--w27-gold); }

/* Bandeau photo + logo Michlifen ------------------------------------------ */
.w27-golfy-michlifen { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: center; }
.w27-golfy-michlifen__media { aspect-ratio: 4/3; background-size: cover; background-position: center; border-radius: var(--w27-radius-lg); }
.w27-golfy-michlifen__logo { max-width: 260px; margin-bottom: 16px; }
.w27-golfy-michlifen__content .w27-golfy-richtext { max-width: none; margin: 0; }
.w27-golfy-michlifen__content .w27-golfy-richtext h2 { text-align: left; }

/* Grille "Golfs du réseau Golfy" — la partie reconstruite -------------- */
.w27-golfy-block--grid .w27-section-title { text-align: center; margin-bottom: 32px; }
.w27-golfy-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.w27-golfy-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--w27-white);
	border: 1px solid #ece9e2;
	border-radius: var(--w27-radius-lg);
	overflow: hidden;
	transition: box-shadow .15s ease, transform .15s ease;
}
.w27-golfy-card:hover { box-shadow: var(--w27-shadow); transform: translateY(-3px); }
.w27-golfy-card__media { display: block; aspect-ratio: 16/10; background: var(--w27-bg-soft); }
.w27-golfy-card__media img { width: 100%; height: 100%; object-fit: cover; }
.w27-golfy-card__media--logo { display: flex; align-items: center; justify-content: center; padding: 18px; }
.w27-golfy-card__media--logo img { width: auto; height: 100%; object-fit: contain; }
.w27-golfy-card__media--vide { display: flex; align-items: center; justify-content: center; color: var(--w27-grey); }
.w27-golfy-card__media--vide svg { width: 32px; height: 32px; }
.w27-golfy-card__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 40px 20px 18px; flex: 1 1 auto; }
.w27-golfy-card__nom { font-weight: 700; color: var(--w27-navy); font-size: 1.02rem; }
.w27-golfy-card__ville { display: flex; align-items: center; gap: 6px; font-size: .84rem; color: var(--w27-green); }
.w27-golfy-card__ville svg { width: 14px; height: 14px; flex: 0 0 auto; }
.w27-golfy-card__fleche { position: absolute; right: 16px; bottom: 16px; color: var(--w27-green); font-weight: 700; transition: transform .15s ease; }
.w27-golfy-card:hover .w27-golfy-card__fleche { transform: translateX(4px); }

@media (max-width: 900px) {
	.w27-golfy-michlifen { grid-template-columns: 1fr; }
	.w27-golfy-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.w27-golfy-hero__inner { flex-direction: column; align-items: stretch; }
	.w27-golfy-grid { grid-template-columns: 1fr; }
}


/* 2026-09-17 — demande utilisateur : n'afficher sur l'accueil que les avis Google 4-5 etoiles (le plugin Reviews Feed est en version gratuite, le filtre par note est PRO ; ceci reproduit le meme resultat en CSS pur, sans rien masquer sur Google lui-meme). */
.w27-reviews .sb-post-item-wrap:has(.sb-item-rating-ctn > span > span:nth-child(4).sb-item-rating-icon-dimmed) {
	display: none !important;
}

/* ===== Page Equiper mon golf — correctifs mobile (2026-09-19) =====
   Le contenu de la page est du HTML saisi dans l'editeur avec des grilles en dur (style inline) :
   on les repasse en 1 colonne sur mobile et on supprime la double marge laterale. */
@media (max-width: 767px) {
  .w27-reglement__inner { padding-left: 0; padding-right: 0; }

  .w27-reglement__prose [style*="grid-template-columns"],
  .w27-reglement__prose .w27-hiw__list {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .w27-reglement__prose section[style*="--w27-navy"] [style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  .w27-reglement__prose .w27-banner { grid-template-columns: minmax(0, 1fr) !important; }
  .w27-reglement__prose .w27-wininone-stats__row {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    max-width: 100% !important;
    gap: 10px !important;
  }
  .w27-reglement__prose .w27-wininone-stats__item { overflow-wrap: anywhere; }

  .w27-reglement__prose .w27-hero h1,
  .w27-reglement__prose .w27-hero h2 { font-size: 1.9rem; line-height: 1.1; }
  .w27-reglement__prose .w27-section-subtitle { font-size: 1.05rem !important; }
}

/* ===== Bandeaux (accueil) — mobile : évite le débordement horizontal ===== */
@media (max-width: 767px) {
  .w27-banner { grid-template-columns: minmax(0, 1fr) !important; }
  .w27-banner .w27-wininone-stats__row { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; max-width: 100% !important; }
}

/* ===== Menu principal trop long pour une seule ligne (14 onglets + FR/EN) =====
   Sous 1500px : menu burger (comme sur mobile) + sélecteur FR/EN dans l'en-tête.
   À partir de 1500px : menu complet, en-tête pleine largeur, bouton « Devenir membre Premium » masqué
   (doublon de l'onglet « Abonnement premium »). */
@media (max-width: 1499px) {
  .w27-nav { display: none; }
  .w27-nav--open { display: block; position: absolute; top: 100%; left: 0; right: 0; background: var(--w27-white); box-shadow: var(--w27-shadow); padding: 20px 24px; max-height: calc(100vh - 90px); overflow-y: auto; }
  .w27-nav--open .w27-nav__list { flex-direction: column; align-items: flex-start; gap: 16px; }
  .w27-header__inner { position: relative; }
  .w27-nav-toggle { display: flex; }
  .w27-header__inner .w27-lang--header { display: flex; align-items: center; gap: 8px; margin: 0 10px 0 auto; }
  li.w27-lang { display: none !important; }
}
@media (min-width: 1500px) {
  .w27-header__inner { max-width: none; }
  .w27-nav__list { gap: 14px; }
  .w27-header__cta { display: none; }
}

/* ===== Gagnants : vignette limitée pendant le chargement différé (Smush imposait la largeur réelle de l’image, d’où un débordement horizontal) ===== */
.w27-winners__list .w27-winners__row img.w27-winners__thumb { width: 288px !important; max-width: 100% !important; height: 216px !important; }
@media (max-width: 560px) { .w27-winners__list .w27-winners__row img.w27-winners__thumb { width: 100% !important; height: 480px !important; } }
