/* ==========================================================================
   St-Élie Aventures : pages intérieures (fiches, excursions, location, FAQ…)
   ========================================================================== */

.ariane { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.ariane a, .ariane span { color: inherit; opacity: .78; }
.ariane a:hover { opacity: 1; color: var(--jaune); }
.ariane [aria-current] { opacity: 1; }

/* ---------- Tête de page (pages simples) ---------- */
.tete-page { position: relative; overflow: hidden; padding: 90px 0 80px; background: var(--menthe); }
.tete-page::before { content: ""; position: absolute; inset: 0; background: url(../img/courbes.webp) center / cover no-repeat; opacity: .06; pointer-events: none; }
.tete-page__in { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 40px; }
.tete-page .ariane { color: var(--bleu); }
.tete-page h1 { margin: 0 0 18px; font-size: clamp(38px, 5vw, 62px); font-weight: 800; line-height: 1.05; letter-spacing: -.01em; }
.tete-page__intro { max-width: 640px; margin: 0; font-size: 18px; line-height: 1.6; color: var(--texte); }
.tete-page__cle { display: flex; gap: 14px; }
.hexa-cle {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	width: 132px; height: 148px; padding: 10px; text-align: center;
	background: var(--jaune); color: var(--bleu);
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}
.hexa-cle:nth-child(2) { background: var(--bleu); color: #fff; transform: translateY(40px); }
.hexa-cle strong { font-size: 34px; line-height: 1; font-weight: 800; }
.hexa-cle > span { margin-top: 6px; font-size: 13px; font-weight: 600; line-height: 1.2; text-transform: uppercase; letter-spacing: .04em; }

.bloc { padding: 100px 0; }
.bloc--menthe { background: var(--menthe); }
.bloc--bleu { background: var(--bleu); color: rgba(255, 255, 255, .86); }
.bloc--bleu h2, .bloc--bleu h3 { color: #fff; }
.bloc .tt { margin-bottom: 40px; }
.bloc .tt__titre, .autres .tt__titre, .appel h2, .tete-page h1 { text-transform: none; }

/* ---------- Fiche raid / location ---------- */
.fiche-tete {
	position: relative; padding: 70px 0 150px; color: #fff;
	background: #1a1a3d var(--fond) center / cover no-repeat;
}
.fiche-tete::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(17, 27, 25, .88) 0%, rgba(17, 27, 25, .62) 45%, rgba(17, 27, 25, .15) 100%); }
.fiche-tete__in { position: relative; }
.fiche-tete .tt__sur { color: var(--jaune); font-size: 28px; }
.fiche-tete__titre { max-width: 760px; margin: 0; color: #fff; font-size: clamp(40px, 6vw, 68px); font-weight: 800; line-height: 1.02; letter-spacing: -.015em; }
.fiche-tete__sous { margin: 14px 0 0; font-size: 22px; color: rgba(255, 255, 255, .88); }
.trace { position: relative; display: flex; flex-wrap: wrap; gap: 0; margin-top: 46px; max-width: 760px; }
.trace li { position: relative; flex: 1 1 0; min-width: 140px; padding: 26px 20px 0 0; }
.trace li::before { content: ""; position: absolute; top: 0; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--jaune); box-shadow: 0 0 0 5px rgba(249, 191, 0, .25); }
.trace li::after { content: ""; position: absolute; top: 6px; left: 22px; right: 8px; height: 2px; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .55) 0 8px, transparent 8px 14px); }
.trace li:last-child::after { display: none; }
.trace li > span { display: block; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.trace strong { display: block; margin-top: 4px; font-size: 22px; font-weight: 700; color: #fff; }
.trace .woocommerce-Price-amount { color: var(--jaune); }

.fiche-corps { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 70px; align-items: start; }
.fiche-contenu { padding: 70px 0 110px; min-width: 0; }
.fiche-accroche { margin: 0 0 34px; max-width: 720px; color: var(--encre); font-size: 24px; font-weight: 500; line-height: 1.5; }
.fiche-repere { display: grid; grid-template-columns: auto 1fr; gap: 14px 40px; margin: 0 0 50px; }
.fiche-repere div { display: contents; }
.fiche-repere dt { font: 400 22px/1.4 var(--f-main); color: var(--bleu); }
.fiche-repere dd { margin: 0; padding-top: 4px; color: var(--encre); font-weight: 500; }
.fiche-h2 { margin: 0 0 34px; font-size: 34px; font-weight: 700; }

.mosaique { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 170px; gap: 10px; margin-bottom: 70px; }
.mosaique__item { overflow: hidden; border-radius: 14px; }
.mosaique__item:first-child { grid-row: span 2; }
.mosaique__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.mosaique__item:hover img { transform: scale(1.05); }
.mosaique--2 { grid-template-columns: 1fr 1fr; grid-auto-rows: 300px; }
.mosaique--2 .mosaique__item:first-child { grid-row: auto; }
.mosaique--3 { grid-template-columns: 2fr 1fr; }
.mosaique--4 .mosaique__item:last-child { grid-column: span 2; }

.parcours { margin-bottom: 70px; }
.etapes { position: relative; counter-reset: etape; }
.etapes::before {
	content: ""; position: absolute; top: 30px; bottom: 30px; left: 25px; width: 3px;
	background: radial-gradient(circle, var(--jaune) 1.5px, transparent 2px) center top / 3px 10px repeat-y;
}
.etape { position: relative; display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 26px; padding-bottom: 34px; }
.etape:last-child { padding-bottom: 0; }
.etape__num {
	display: flex; align-items: center; justify-content: center; width: 54px; height: 60px;
	background: var(--bleu); color: #fff; font-size: 20px; font-weight: 800;
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}
.etape:first-child .etape__num, .etape:last-child .etape__num { background: var(--jaune); color: var(--bleu); }
.etape__jour { margin: 4px 0 2px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--bleu); }
.etape__titre { margin: 0 0 8px; font-size: 22px; }
.etape__texte { margin: 0; max-width: 680px; }
.parcours__note { margin: 30px 0 0 80px; font-size: 15px; font-style: italic; color: var(--gris); }

.compris { margin-bottom: 60px; padding: 46px 50px; border-radius: 18px; background: var(--menthe); }
.compris .fiche-h2 { margin-bottom: 26px; }
.compris__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 60px; }
.compris__sous { display: flex; align-items: center; gap: 14px; margin: 0 0 10px; color: var(--bleu); font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.compris__sous::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: .25; }
.liste-oui { counter-reset: ligne; }
.liste-oui li, .liste-non li { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr); padding: 11px 0; line-height: 1.5; }
.liste-oui li { color: var(--encre); font-weight: 500; }
.liste-oui li::before { counter-increment: ligne; content: counter(ligne, decimal-leading-zero); padding-top: 2px; color: var(--bleu); font-size: 13px; font-weight: 800; letter-spacing: .08em; }
.liste-non li { color: var(--gris); }
.liste-non li::before { content: "–"; color: #b9c2cc; }
.compris__savoir { margin: 26px 0 0; color: var(--encre); }
.compris__sous--decale { margin-top: 118px; }

.fiche-video {
	position: relative; display: flex; align-items: center; gap: 22px; width: 100%; min-height: 260px; padding: 0 40px;
	border: 0; border-radius: 18px; color: #fff; text-align: left;
	background: linear-gradient(90deg, rgba(17, 27, 25, .75), rgba(17, 27, 25, .1)), var(--fond) center / cover;
}
.fiche-video .lecture { flex: none; }
.fiche-video__txt { font-size: 24px; font-weight: 700; }

/* Panneau de réservation */
.resa { position: sticky; top: 110px; margin-top: -90px; padding-bottom: 40px; }
.resa__form { padding: 34px 32px 30px; border-radius: 18px; background: var(--bleu); color: rgba(255, 255, 255, .88); box-shadow: 0 30px 60px rgba(17, 27, 25, .25); }
.resa__titre { margin: 0 0 6px; color: #fff; font-size: 24px; }
.resa__prix { margin: 0 0 24px; }
.resa__prix .woocommerce-Price-amount { color: var(--jaune); font-size: 34px; font-weight: 800; line-height: 1.1; }
.resa__prix > span { display: block; font-size: 14px; color: rgba(255, 255, 255, .7); }
.resa__bloc { margin: 0 0 22px; padding: 0; border: 0; min-width: 0; }
.resa__bloc legend, .resa__label { display: block; margin-bottom: 10px; padding: 0; color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.tickets { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-height: 232px; overflow-y: auto; padding-right: 4px; scrollbar-width: thin; }
.ticket { position: relative; cursor: pointer; }
.ticket input { position: absolute; opacity: 0; pointer-events: none; }
.ticket span {
	display: block; padding: 10px 12px; background: rgba(255, 255, 255, .09); color: #fff; font-size: 14px; line-height: 1.3; text-align: center;
	-webkit-mask: radial-gradient(circle 6px at 0 50%, #0000 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle 6px at 100% 50%, #0000 97%, #000) right / 51% 100% no-repeat;
	mask: radial-gradient(circle 6px at 0 50%, #0000 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle 6px at 100% 50%, #0000 97%, #000) right / 51% 100% no-repeat;
	transition: background-color .2s, color .2s;
}
.ticket span b { font-weight: 700; }
.ticket:hover span { background: rgba(255, 255, 255, .16); }
.ticket input:checked + span { background: var(--jaune); color: var(--bleu); }
.ticket input:focus-visible + span { outline: 2px solid #fff; outline-offset: 2px; }
.resa__champ { width: 100%; height: 50px; padding: 0 14px; border: 0; border-radius: 10px; background: #fff; color: var(--encre); font: inherit; }
.resa__retour { margin: 10px 0 0; font-size: 14px; color: rgba(255, 255, 255, .8); }
.compteur-champ { display: flex; align-items: center; gap: 10px; }
.compteur-champ button { width: 42px; height: 42px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 22px; line-height: 1; }
.compteur-champ button:hover { background: var(--jaune); color: var(--bleu); }
.compteur-champ input { width: 64px; height: 42px; border: 0; border-radius: 10px; background: rgba(255, 255, 255, .09); color: #fff; font: 700 20px/1 var(--f-texte); text-align: center; -moz-appearance: textfield; }
.compteur-champ input::-webkit-outer-spin-button, .compteur-champ input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.option { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 8px; cursor: pointer; font-size: 15px; line-height: 1.4; }
.option input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--jaune); }
.option em { font-style: normal; color: var(--jaune); white-space: nowrap; }
.resa__total { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 2px 10px; margin: 26px 0 18px; padding-top: 20px; background: radial-gradient(circle, rgba(255, 255, 255, .35) 1px, transparent 1.5px) 0 0 / 8px 2px repeat-x; }
.resa__total > span { font-size: 15px; font-weight: 600; color: #fff; }
.resa__total strong, .resa__total strong .woocommerce-Price-amount { color: #fff; font-size: 28px; font-weight: 800; }
.resa__total small { grid-column: 1 / -1; min-height: 20px; color: rgba(255, 255, 255, .7); font-size: 14px; }
.resa__acompte { grid-column: 1 / -1; margin: 6px 0 0; font-size: 14px; line-height: 1.45; color: #fff; }
.resa__bouton { width: 100%; padding: 17px 20px; border: 0; border-radius: 12px; background: var(--jaune); color: var(--bleu); font: 800 17px/1 var(--f-texte); transition: background-color .25s, transform .25s; }
.resa__bouton:hover:not(:disabled) { background: #fff; transform: translateY(-2px); }
.resa__bouton:disabled { opacity: .55; cursor: not-allowed; }
.resa__note { margin: 14px 0 0; font-size: 13px; line-height: 1.5; color: rgba(255, 255, 255, .65); text-align: center; }
.resa__vide { margin: 0 0 20px; color: #fff; }
.resa__aide { margin: 20px 0 0; font-size: 15px; line-height: 1.6; text-align: center; }
.resa__aide a { font-weight: 700; }

.barre-resa { display: none; }

.autres { padding: 100px 0 110px; background: var(--menthe); }
.autres .tt { margin-bottom: 40px; }

.avis-boutique:empty { display: none; }
.avis-boutique .woocommerce-error, .avis-boutique .woocommerce-message, .avis-boutique .woocommerce-info {
	margin: 0 0 30px; padding: 16px 20px; border-radius: 12px; list-style: none; background: #fff4d6; color: var(--encre);
}
.avis-boutique .woocommerce-error { background: #fde8e7; }
.avis-boutique .button { margin-left: 10px; font-weight: 700; }

.visionneuse__cadre--photo { aspect-ratio: auto; width: auto; max-width: min(1200px, 100%); background: transparent; }
.visionneuse__cadre--photo img { display: block; max-height: 86vh; width: auto; border-radius: 10px; }

/* ---------- Excursions : profil des raids ---------- */
.profil { display: grid; gap: 14px; }
.profil__ligne {
	display: grid; grid-template-columns: 170px minmax(0, 1fr) 150px 150px; align-items: center; gap: 24px;
	padding: 22px 26px; border-radius: 14px; background: #fff; color: var(--texte); box-shadow: var(--ombre);
	transition: transform .25s, box-shadow .25s;
}
.profil__ligne:hover { transform: translateY(-3px); box-shadow: 0 14px 40px rgba(43, 89, 255, .12); }
.profil__nom { color: var(--encre); font-size: 20px; font-weight: 800; line-height: 1.2; }
.profil__nom small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--bleu); }
.profil__piste { position: relative; height: 10px; border-radius: 10px; background: #e6edf3; }
.profil__piste i { position: absolute; inset: 0 auto 0 0; width: var(--km); border-radius: 10px; background: linear-gradient(90deg, var(--bleu), var(--jaune)); }
.profil__piste b { position: absolute; top: -28px; left: var(--km); transform: translateX(-100%); white-space: nowrap; color: var(--encre); font-size: 14px; }
.profil__forts { grid-column: 2; margin-top: -6px; font-size: 14px; line-height: 1.45; color: var(--gris); }
.profil__niveau { justify-self: start; color: var(--bleu); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.profil__prix { text-align: right; color: var(--encre); font-size: 22px; font-weight: 800; line-height: 1.2; }
.profil__prix small { display: block; font-size: 13px; font-weight: 500; color: var(--gris); }

.trio { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 40px 34px; }
.trio__item .hexa-mini { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 52px; background: var(--jaune); color: var(--bleu); font-weight: 800; clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); }
.trio__item h3 { margin: 18px 0 10px; font-size: 22px; }
.trio__item p { margin: 0; }

.appel { position: relative; overflow: hidden; padding: 90px 0; background: var(--jaune); }
.appel::before { content: ""; position: absolute; inset: 0; background: url(../img/courbes-chiffres.webp) center / cover no-repeat; opacity: .55; pointer-events: none; }
.appel__in { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 30px; }
.appel h2 { max-width: 640px; margin: 0; color: #000; font-size: clamp(30px, 4vw, 44px); }
.appel__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.bt--grand { padding: 18px 30px; border-radius: 12px; font-size: 17px; }
.bt--blanc { background: #fff; color: var(--bleu); padding: 18px 30px; }
.bt--blanc:hover { background: var(--bleu); color: #fff; }

/* ---------- Location : formules ---------- */
.formules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-radius: 20px; overflow: hidden; box-shadow: var(--ombre); }
.formule { position: relative; display: flex; flex-direction: column; padding: 46px 40px 40px; background: #fff; }
.formule:nth-child(2) { background: var(--bleu); color: rgba(255, 255, 255, .85); }
.formule:nth-child(2) h3, .formule:nth-child(2) .formule__prix { color: #fff; }
.formule__duree { font: 400 26px/1.2 var(--f-main); color: var(--bleu); }
.formule:nth-child(2) .formule__duree { color: var(--jaune); }
.formule h3 { margin: 8px 0 4px; font-size: 30px; font-weight: 800; }
.formule__horaire { margin: 0 0 30px; font-size: 15px; }
.formule__prix { margin: auto 0 24px; color: var(--encre); font-size: 44px; font-weight: 800; line-height: 1; }
.formule__prix small { display: block; margin-top: 6px; font-size: 14px; font-weight: 500; opacity: .7; }
.formule .bt { align-self: flex-start; padding: 14px 26px; border-radius: 10px; }
.formule:nth-child(2) .bt--bleu { background: var(--jaune); color: var(--bleu); }

.conditions { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
.conditions .liste-oui li { padding-top: 9px; padding-bottom: 9px; }

/* ---------- FAQ ---------- */
.faq { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 70px; align-items: start; }
.faq__index { position: sticky; top: 110px; }
.faq__index p { margin: 0 0 14px; font: 400 24px/1.2 var(--f-main); color: var(--bleu); }
.faq__index a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; color: var(--encre); font-weight: 600; }
.faq__index a span { color: var(--gris); font-size: 13px; font-weight: 500; }
.faq__index a:hover { color: var(--bleu); }
.faq__chercher { width: 100%; height: 48px; margin-bottom: 20px; padding: 0 16px; border: 0; border-radius: 10px; background: var(--menthe); font: inherit; color: var(--encre); }
.faq__theme { scroll-margin-top: 100px; margin-bottom: 56px; }
.faq__theme h2 { margin: 0 0 18px; font-size: 30px; }
.question { border-radius: 14px; background: #fff; transition: background-color .25s, box-shadow .25s; }
.question + .question { margin-top: 8px; }
.question[open] { background: var(--menthe); }
.question summary { position: relative; display: block; padding: 20px 64px 20px 24px; cursor: pointer; list-style: none; color: var(--encre); font-size: 18px; font-weight: 700; line-height: 1.4; }
.question summary::-webkit-details-marker { display: none; }
.question summary::after {
	content: ""; position: absolute; top: 50%; right: 20px; width: 30px; height: 34px; margin-top: -17px;
	background: var(--jaune) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 5v10M5 10h10' stroke='%232f4159' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / 16px no-repeat;
	clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); transition: transform .3s;
}
.question[open] summary::after { transform: rotate(45deg); }
.question:not([open]):hover { background: #f7fbfb; }
.question__rep { padding: 0 24px 22px; }
.question__rep > :last-child { margin-bottom: 0; }
.question__rep p { margin: 0 0 1em; }
.faq__vide { padding: 30px; border-radius: 14px; background: var(--menthe); }

/* ---------- Contact ---------- */
.contact { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: 0; border-radius: 22px; overflow: hidden; box-shadow: 0 30px 70px rgba(17, 27, 25, .12); background: #fff; }
.contact__infos { position: relative; overflow: hidden; padding: 56px 46px; background: var(--bleu); color: rgba(255, 255, 255, .85); }
.contact__infos::after { content: ""; position: absolute; right: -60px; bottom: -70px; width: 220px; height: 250px; background: var(--jaune); opacity: .16; clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); }
.contact__infos h2 { margin: 0 0 30px; color: #fff; font-size: 28px; }
.coord { position: relative; z-index: 1; display: grid; gap: 26px; }
.coord__item { display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: start; }
.coord__ic { display: flex; align-items: center; justify-content: center; width: 44px; height: 50px; background: var(--jaune); color: var(--bleu); font-size: 20px; clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); }
.coord__item div > span { display: block; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.coord__item a, .coord__item p { margin: 2px 0 0; color: #fff; font-weight: 600; line-height: 1.5; }
.coord__item a:hover { color: var(--jaune); }
.contact__form { padding: 56px 56px 50px; }
.contact__form h2 { margin: 0 0 8px; font-size: 32px; }
.contact__form > p { margin: 0 0 28px; }
.form-stelie .wpcf7-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.form-stelie .wpcf7-form > p { margin: 0; }
.form-stelie .plein, .form-stelie .wpcf7-form > p:has(textarea), .form-stelie .wpcf7-form > p:has([type=submit]), .form-stelie .wpcf7-response-output, .form-stelie .cf-turnstile { grid-column: 1 / -1; }
.form-stelie label { display: block; margin-bottom: 6px; color: var(--encre); font-size: 14px; font-weight: 700; }
.form-stelie input:not([type=submit]):not([type=checkbox]):not([type=radio]), .form-stelie select, .form-stelie textarea {
	width: 100%; min-height: 50px; padding: 12px 16px; border: 0; border-radius: 10px; background: var(--menthe); color: var(--encre); font: inherit;
	transition: box-shadow .2s, background-color .2s;
}
.form-stelie textarea { min-height: 150px; resize: vertical; }
.form-stelie input:focus, .form-stelie select:focus, .form-stelie textarea:focus { outline: none; background: #fff; box-shadow: 0 0 0 2px var(--bleu); }
.form-stelie [type=submit] { padding: 16px 34px; border: 0; border-radius: 12px; background: var(--jaune); color: var(--bleu); font: 800 16px/1 var(--f-texte); cursor: pointer; transition: background-color .25s; }
.form-stelie [type=submit]:hover { background: var(--bleu); color: #fff; }
.form-stelie .wpcf7-response-output { margin: 8px 0 0 !important; padding: 14px 16px !important; border: 0 !important; border-radius: 10px; background: var(--menthe); }
.form-stelie .wpcf7-not-valid-tip { margin-top: 4px; font-size: 13px; }
.carte-acces { position: relative; display: block; overflow: hidden; height: 380px; margin-top: 70px; border-radius: 22px; background: #dfe9ef; }
.carte-acces iframe { width: 100%; height: 100%; border: 0; }
.carte-acces__btn { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; border: 0; background: linear-gradient(rgba(47, 65, 89, .55), rgba(47, 65, 89, .55)), url(../img/carte-monde.webp) center / cover; color: #fff; font: 700 20px/1.3 var(--f-texte); cursor: pointer; }
.carte-acces__btn small { font-weight: 500; font-size: 14px; opacity: .85; }

/* ---------- Galerie ---------- */
.galerie-grille { columns: 3 320px; column-gap: 14px; }
.galerie-grille a { display: block; margin-bottom: 14px; overflow: hidden; border-radius: 14px; break-inside: avoid; }
.galerie-grille img { display: block; width: 100%; height: auto; transition: transform .6s; }
.galerie-grille a:hover img { transform: scale(1.04); }
.videos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.videos video { display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 16px; background: #000; object-fit: cover; }
.videos__yt { margin-top: 30px; text-align: center; }

/* ---------- Page simple ---------- */
.page-simple { padding: 80px 0 110px; }
.page-simple__titre { margin: 0 0 30px; font-size: clamp(34px, 5vw, 52px); }
.redaction { max-width: 780px; font-size: 17px; }
.redaction h2 { margin: 1.6em 0 .6em; font-size: 28px; }
.redaction h3 { margin: 1.4em 0 .5em; font-size: 22px; }
.redaction p, .redaction ul, .redaction ol { margin: 0 0 1.2em; }
.redaction ul { list-style: disc; padding-left: 1.3em; }
.redaction ol { list-style: decimal; padding-left: 1.3em; }
.redaction a { text-decoration: underline; text-underline-offset: 3px; }

.erreur-404 { padding: 120px 0 140px; text-align: center; }
.erreur-404 .hexa-cle { margin: 0 auto 30px; width: 170px; height: 190px; }
.erreur-404 .hexa-cle strong { font-size: 54px; }
.erreur-404 h1 { margin: 0 0 16px; font-size: 44px; }
.erreur-404 p { max-width: 560px; margin: 0 auto 30px; }
.erreur-404__liens { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* ==========================================================================
   Tablette / mobile
   ========================================================================== */
@media (max-width: 1100px) {
	.fiche-corps { grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; }
	.profil__ligne { grid-template-columns: 140px minmax(0, 1fr) 130px; }
	.profil__prix { grid-column: 3; }
	.profil__niveau { grid-column: 3; grid-row: 1; justify-self: end; }
	.profil__prix { grid-row: 2; }
	.profil__forts { grid-column: 1 / 3; }
}

@media (max-width: 900px) {
	.tete-page__in { grid-template-columns: 1fr; }
	.tete-page__cle { display: none; }
	.fiche-corps { grid-template-columns: 1fr; gap: 0; }
	.fiche-contenu { padding: 40px 0 30px; }
	.resa { position: static; margin: 0 0 70px; }
	.barre-resa {
		position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 95;
		display: flex; align-items: center; justify-content: space-between; gap: 10px;
		padding: 12px 12px 12px 20px; border-radius: 14px; background: var(--bleu); color: #fff;
		box-shadow: 0 14px 40px rgba(0, 0, 0, .25);
	}
	.barre-resa strong, .barre-resa .woocommerce-Price-amount { color: var(--jaune); font-weight: 800; }
	.barre-resa b { padding: 11px 18px; border-radius: 10px; background: var(--jaune); color: var(--bleu); }
	.fiche--raid ~ .haut-de-page, body:has(.barre-resa) .haut-de-page { bottom: 86px; }
	.faq { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.faq__index { position: static; min-width: 0; }
	.faq__index nav { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; }
	.faq__index a { flex: none; padding: 10px 14px; border-radius: 30px; background: var(--menthe); }
	.contact { grid-template-columns: 1fr; }
	.formules { grid-template-columns: 1fr; }
	.conditions { grid-template-columns: 1fr; gap: 30px; }
	.compris__sous--decale { margin-top: 0; }
	.trio { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
	.tete-page { padding: 60px 0 50px; }
	.bloc { padding: 70px 0; }
	.fiche-tete { padding: 40px 0 60px; }
	.trace li { flex-basis: 50%; min-width: 0; padding-bottom: 20px; }
	.trace li:nth-child(2n)::after { display: none; }
	.fiche-accroche { font-size: 20px; }
	.fiche-repere { grid-template-columns: 1fr; gap: 0 0; }
	.fiche-repere dd { margin-bottom: 14px; }
	.mosaique { grid-template-columns: 1fr 1fr; grid-auto-rows: 130px; }
	.mosaique__item:first-child { grid-column: span 2; grid-row: span 2; }
	.etape { grid-template-columns: 44px minmax(0, 1fr); gap: 16px; }
	.etape__num { width: 44px; height: 50px; font-size: 17px; }
	.etapes::before { left: 20px; }
	.parcours__note { margin-left: 0; }
	.compris { padding: 30px 22px; }
	.compris__cols { grid-template-columns: 1fr; }
	.resa__form { padding: 28px 20px; }
	.tickets { max-height: none; }
	.profil__ligne { grid-template-columns: 1fr auto; gap: 14px; padding: 20px; }
	.profil__piste { grid-column: 1 / -1; grid-row: 3; margin-top: 26px; }
	.profil__forts { grid-column: 1 / -1; grid-row: 4; margin: 0; }
	.profil__niveau { grid-column: 2; grid-row: 1; }
	.profil__prix { grid-column: 1 / -1; grid-row: 2; text-align: left; }
	.contact__infos, .contact__form { padding: 36px 22px; }
	.form-stelie .wpcf7-form { grid-template-columns: 1fr; }
	.videos { grid-template-columns: 1fr; }
	.formule { padding: 34px 26px; }
}
