/* ==========================================================================
   COMPOSANTS DE LISTING ET DE PAGE
   Styles des cartes (cours, moniteurs, articles, sessions, hebergements),
   du selecteur de cours, des blocs de page (FAQ, tableaux, etc.).
   Deplaces ici depuis le snippet Angie 11816 le 11/09/2026 : les gabarits de
   listing JetEngine sont composes de widgets natifs, et leur style ne doit
   pas dependre d'un snippet charge a la demande.
   ========================================================================== */

.ak-offers, .ak-finder, .ak-safety, .ak-compare, .ak-inst, .ak-story, .ak-useful, .ak-reasons, .ak-formwrap, .ak-details, .ak-rental, .ak-why, .ak-collect, .ak-spots, .ak-disc, .ak-weather, .ak-stay, .ak-fit, .ak-planner, .ak-faq2, .jet-listing-grid, .jet-filter {
			--ak-ink:#0b2545; --ak-blue:#0b57a4; --ak-sky:#d7ecf7; --ak-muted:#5c7075;
			--ak-rule:#e2ebf0; --ak-surface:#fff; --ak-low:#b4491b;
		}
		.ak-sec__head { display:flex; flex-direction:column; gap:.5rem; margin-bottom:2rem; }
		.ak-sec__title { margin:0; font-size:clamp(1.6rem,3vw,2.2rem); letter-spacing:-.02em; }
		.ak-sec__intro { margin:0; color:var(--ak-muted); max-width:62ch; }
		.ak-step__label { display:flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); margin:2rem 0 .85rem; }
		.ak-step__num { font-weight:400; opacity:.75; }

		/* etape 1 : activites */
		.ak-activities { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.25rem; }
		.ak-activity { text-align:left; font:inherit; cursor:pointer; display:flex; flex-direction:column; gap:.55rem; padding:1.5rem; border:1px solid var(--ak-rule); border-radius:14px; background:var(--ak-surface); transition:border-color .15s, box-shadow .15s; }
		.ak-activity:hover { border-color:var(--ak-blue); }
		.ak-activity.is-active { border-color:var(--ak-blue); box-shadow:0 0 0 2px var(--ak-blue) inset; }
		.ak-activity__name { font-size:1.5rem; font-weight:700; color:var(--ak-ink); }
		.ak-activity__text { color:var(--ak-muted); font-size:.92rem; }

		/* etape 2 : niveaux */
		.ak-levels { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1rem; }
		.ak-level { text-align:left; font:inherit; cursor:pointer; display:flex; flex-direction:column; gap:.35rem; padding:1.15rem 1.35rem; border:1px solid var(--ak-rule); border-radius:12px; background:var(--ak-surface); transition:border-color .15s, box-shadow .15s; }
		.ak-level:hover { border-color:var(--ak-blue); }
		.ak-level.is-active { border-color:var(--ak-blue); box-shadow:0 0 0 2px var(--ak-blue) inset; }
		.ak-level__name { font-weight:700; letter-spacing:.02em; color:var(--ak-ink); }
		.ak-level__text { color:var(--ak-muted); font-size:.88rem; }

		/* etape 3 : recommandation */
		.ak-recos { display:flex; flex-direction:column; gap:1rem; }
		.ak-reco { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:1.5rem; padding:1.6rem; border:1px solid var(--ak-rule); border-radius:14px; background:var(--ak-surface); }
		.ak-reco[hidden] { display:none; }
		.ak-reco__main { flex:1 1 340px; display:flex; flex-direction:column; gap:.5rem; }
		.ak-reco__title { margin:0; font-size:1.35rem; }
		.ak-reco__text { margin:0; color:var(--ak-muted); font-size:.95rem; }
		.ak-reco__side { display:flex; flex-direction:column; align-items:flex-end; gap:.6rem; text-align:right; }
		.ak-reco__meta { margin:0; font-size:.85rem; color:var(--ak-muted); }
		.ak-reco__price { margin:0; font-size:1.05rem; }
		.ak-reco__actions { display:flex; gap:.6rem; flex-wrap:wrap; }

		/* puces */
		.ak-chip { align-self:flex-start; display:inline-block; font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ak-blue); background:var(--ak-sky); border-radius:999px; padding:.25rem .7rem; }
		.ak-chip--low { color:var(--ak-low); background:rgba(180,73,27,.12); }

		/* carte d'offre */
		/* Portee limitee aux listings qui rendent nos composants : les autres
		   listings (le slider de cours de Kite School, le blog) gardent la mise en
		   page reglee dans JetEngine. */
		/* Les grilles JetEngine gardent le nombre de colonnes réglé dans le widget
		   (le thème ne l'écrase plus) ; seule la gouttière est harmonisée. */
		.ak-offers__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:1.25rem; }
		
		/* Trois colonnes demandees explicitement : deux rangees nettes pour six cours. */
		.ak-offers--3 .ak-offers__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
		.ak-offers--2 .ak-offers__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
		@media (max-width:640px) { .ak-offers--2 .ak-offers__grid { grid-template-columns:1fr; } }
		@media (max-width:1024px) { .ak-offers--3 .ak-offers__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
		@media (max-width:640px) { .ak-offers--3 .ak-offers__grid { grid-template-columns:1fr; } }
		.ak-offer { display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--ak-rule); border-radius:14px; background:var(--ak-surface); height:100%; }
		.ak-offer[hidden] { display:none; }
		.ak-offer__media { aspect-ratio:16/9; overflow:hidden; background:var(--ak-sky); }
		.ak-offer__media img { width:100%; height:100%; object-fit:cover; display:block; }
		.ak-offer__body { display:flex; flex-direction:column; gap:.5rem; padding:1.15rem 1.25rem 1.35rem; flex:1; }
		.ak-offer__chips { display:flex; gap:.4rem; flex-wrap:wrap; margin:0; }
		.ak-offer__title { margin:.15rem 0 0; font-size:1.2rem; letter-spacing:-.01em; }
		.ak-offer__summary { margin:0; font-size:.88rem; color:var(--ak-muted); }

		/* tableau comparatif */
		.ak-spec { margin:.6rem 0 0; padding:0; display:flex; flex-direction:column; }
		.ak-spec__row { display:flex; justify-content:space-between; align-items:baseline; gap:.75rem; padding:.42rem 0; border-top:1px solid var(--ak-rule); }
		.ak-spec__row:first-child { border-top:0; }
		.ak-spec__label { margin:0; font-size:.64rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--ak-blue); flex:0 0 auto; }
		.ak-spec dd { margin:0; text-align:right; }
		.ak-spec__value { font-size:.84rem; color:var(--ak-ink); }
		.ak-spec__value s { color:var(--ak-muted); margin-right:.25rem; }
		.ak-spec__value--price strong { color:var(--ak-blue); }

		/* boutons */
		.ak-offer__actions { margin-top:auto; padding-top:1rem; display:flex; gap:.6rem; flex-wrap:wrap; }
		.ak-btn { display:inline-flex; align-items:center; justify-content:center; font-size:.82rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; text-decoration:none; padding:.7rem 1.15rem; border-radius:999px; transition:background .15s, color .15s, border-color .15s; }
		.ak-btn--solid { background:var(--ak-blue); color:#fff; border:1px solid var(--ak-blue); }
		.ak-btn--solid:hover { background:var(--ak-ink); border-color:var(--ak-ink); color:#fff; }
		.ak-btn--ghost { background:transparent; color:var(--ak-blue); border:1px solid var(--ak-rule); }
		.ak-btn--ghost:hover { border-color:var(--ak-blue); }
		.ak-btn:focus-visible { outline:2px solid var(--ak-blue); outline-offset:2px; }
		.ak-activity:focus-visible, .ak-level:focus-visible { outline:2px solid var(--ak-blue); outline-offset:2px; }

		.ak-empty { margin-top:1rem; color:var(--ak-muted); }
		.ak-note { margin-top:1.25rem; font-size:.78rem; color:var(--ak-muted); }

		/* Safety and certification */
		.ak-safety__cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:1.25rem; margin-bottom:1.5rem; }
		.ak-safety__card { background:var(--ak-surface); border-radius:14px; padding:1.5rem; display:flex; flex-direction:column; gap:.5rem; }
		.ak-safety__num { font-size:.75rem; font-weight:700; color:var(--ak-blue); letter-spacing:.08em; }
		.ak-safety__card h3 { margin:0; font-size:.98rem; text-transform:uppercase; letter-spacing:.03em; color:var(--ak-ink); }
		.ak-safety__card p { margin:0; font-size:.89rem; color:var(--ak-muted); }
		.ak-cert { background:var(--ak-surface); border-radius:16px; padding:1.75rem; display:grid; grid-template-columns:minmax(250px,1.05fr) 1.95fr; gap:1.75rem; align-items:start; }
		.ak-cert__intro h3 { margin:0 0 .55rem; font-size:1.3rem; }
		.ak-cert__intro p { margin:0 0 .5rem; color:var(--ak-muted); font-size:.94rem; }
		.ak-cert__cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(175px,1fr)); gap:1rem; }
		.ak-cert__card { border:1px solid var(--ak-rule); border-radius:12px; padding:1rem 1.1rem; }
		.ak-cert__card h4 { margin:0 0 .4rem; font-size:.88rem; color:var(--ak-ink); }
		.ak-cert__card p { margin:0; font-size:.81rem; color:var(--ak-muted); }
		@media (max-width:860px) { .ak-cert { grid-template-columns:1fr; } }

		/* Private lesson or small group */
		.ak-compare__scroll { overflow-x:auto; }
		.ak-compare__table { width:100%; min-width:640px; border-collapse:collapse; background:var(--ak-surface); border-radius:14px; overflow:hidden; }
		.ak-compare__table thead th { background:var(--ak-sky); color:var(--ak-blue); font-size:.71rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; text-align:left; padding:.9rem 1.1rem; }
		.ak-compare__table tbody th { text-align:left; padding:.85rem 1.1rem; font-size:.71rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--ak-blue); white-space:nowrap; }
		.ak-compare__table td { padding:.85rem 1.1rem; font-size:.92rem; color:var(--ak-ink); }
		.ak-compare__table tbody tr + tr th, .ak-compare__table tbody tr + tr td { border-top:1px solid var(--ak-rule); }

		/* Formulaire : les classes ak-col-* atterrissent sur l'input, pas sur la
		   rangee. On met la rangee en grille pour retrouver les 3 et 4 colonnes. */
		form.jet-form-builder { display:grid; grid-template-columns:repeat(12,1fr); gap:0 1.1rem; align-items:start; }
		form.jet-form-builder > .jet-form-builder-row { grid-column:1 / -1; }
		form.jet-form-builder > .jet-form-builder-row:has(.ak-col-3) { grid-column:span 4; }
		form.jet-form-builder > .jet-form-builder-row:has(.ak-col-4) { grid-column:span 3; }
		@media (max-width:900px) {
			form.jet-form-builder > .jet-form-builder-row:has(.ak-col-3),
			form.jet-form-builder > .jet-form-builder-row:has(.ak-col-4) { grid-column:span 6; }
		}
		@media (max-width:600px) {
			form.jet-form-builder > .jet-form-builder-row:has(.ak-col-3),
			form.jet-form-builder > .jet-form-builder-row:has(.ak-col-4) { grid-column:1 / -1; }
		}

		/* Bouton d'envoi : le theme imposait son turquoise */
		form.jet-form-builder .jet-form-builder__submit,
		form.jet-form-builder button[type='submit'] {
			background:var(--ak-blue) !important; color:#fff !important;
			border:1px solid var(--ak-blue) !important; border-radius:999px !important;
		}
		form.jet-form-builder .jet-form-builder__submit:hover { background:var(--ak-ink) !important; border-color:var(--ak-ink) !important; }

		body .jet-form-builder button.jet-form-builder__submit,
		body button.jet-form-builder__action-button.ak-submit {
			background-color:#0b57a4 !important; background-image:none !important;
			color:#fff !important; border:1px solid #0b57a4 !important;
			border-radius:999px !important; text-transform:uppercase !important;
		}
		body .jet-form-builder button.jet-form-builder__submit:hover {
			background-color:#0b2545 !important; border-color:#0b2545 !important;
		}

		/* Les grilles JetEngine gardent leur layout flex et le nombre de colonnes
		   réglé dans le widget ; le thème ne les redéfinit plus (15/09/2026). */
		.jet-listing-grid__item:has(.ak-offer, .ak-inst, .ak-story) > .e-con,
		.jet-listing-grid__item:has(.ak-offer, .ak-inst, .ak-story) .e-con-inner,
		.jet-listing-grid__item:has(.ak-offer, .ak-inst, .ak-story) .elementor-widget-shortcode,
		.jet-listing-grid__item:has(.ak-offer, .ak-inst, .ak-story) .elementor-widget-shortcode > .elementor-widget-container {
			width:100% !important; max-width:none !important; flex:1 1 100% !important;
			padding-left:0 !important; padding-right:0 !important;
		}
		.jet-listing-grid__item .ak-offer,
		.jet-listing-grid__item .ak-inst,
		.jet-listing-grid__item .ak-story { width:100% !important; }

		/* Rangee de logos partenaires */
		/* Le conteneur parent est reste une grille a 6 colonnes (les 6 anciens titres
		   de marques). Le widget unique doit s'etendre sur toute la ligne. */
		[class*='elementor-element-akpartner'] {
			width:100% !important; max-width:none !important;
			flex:1 1 100% !important; grid-column:1 / -1 !important;
		}
		[class*='elementor-element-akpartner'] > .elementor-widget-container { width:100% !important; }

		/* Variables au niveau racine : sinon var() ne resout pas hors des blocs scopes
		   et les boutons perdent leur fond. */
		:root {
			--ak-ink:#0b2545; --ak-blue:#0b57a4; --ak-sky:#d7ecf7; --ak-muted:#5c7075;
			--ak-rule:#e2ebf0; --ak-surface:#fff; --ak-low:#b4491b;
		}

		/* Rangee de logos : le widget se dimensionnait sur son contenu */
		.elementor-widget:has(.ak-partners),
		.elementor-element:has(> .elementor-widget-container > .ak-partners) {
			width:100% !important; max-width:none !important;
			flex:1 1 100% !important; grid-column:1 / -1 !important;
		}
		.elementor-widget-container:has(> .ak-partners) { width:100% !important; }

		/* Durcissement : le theme stylise tous les boutons et liens.
		   On neutralise sur nos composants, sinon cartes et libelles disparaissent. */
		.ak-finder .ak-activity, .ak-finder .ak-level,
		.ak-stay .ak-stay__toggle, .ak-reasons .ak-reason {
			background:var(--ak-surface) !important; color:var(--ak-ink) !important;
			text-transform:none !important; letter-spacing:normal !important;
			border-radius:14px !important; box-shadow:none !important;
			border:1px solid var(--ak-rule) !important; text-align:left !important;
			font-weight:400 !important; font-size:1rem !important; line-height:1.5 !important;
		}
		.ak-finder .ak-activity.is-active, .ak-finder .ak-level.is-active,
		.ak-reasons .ak-reason.is-active {
			border-color:var(--ak-blue) !important; box-shadow:0 0 0 2px var(--ak-blue) inset !important;
		}
		.ak-finder .ak-activity__name { font-size:1.5rem !important; font-weight:700 !important; text-transform:none !important; color:var(--ak-ink) !important; }
		.ak-finder .ak-activity__text { font-size:.92rem !important; text-transform:none !important; color:var(--ak-muted) !important; }
		.ak-finder .ak-level__name { font-weight:700 !important; text-transform:none !important; color:var(--ak-ink) !important; }
		.ak-finder .ak-level__text { font-size:.88rem !important; text-transform:none !important; color:var(--ak-muted) !important; }
		.ak-finder .ak-chip, .ak-reasons .ak-chip, .ak-stay .ak-chip {
			background:var(--ak-sky) !important; color:var(--ak-blue) !important;
			text-transform:uppercase !important; font-size:.68rem !important; font-weight:700 !important;
		}

		/* Boutons : le libelle prenait la couleur de lien du theme sur fond bleu */
		.ak-btn.ak-btn--solid, a.ak-btn.ak-btn--solid, button.ak-btn.ak-btn--solid {
			background:var(--ak-blue) !important; color:#fff !important;
			border:1px solid var(--ak-blue) !important; text-decoration:none !important;
		}
		.ak-btn.ak-btn--solid:hover, a.ak-btn.ak-btn--solid:hover { background:var(--ak-ink) !important; border-color:var(--ak-ink) !important; color:#fff !important; }
		.ak-btn.ak-btn--ghost, a.ak-btn.ak-btn--ghost, button.ak-btn.ak-btn--ghost {
			background:transparent !important; color:var(--ak-blue) !important;
			border:1px solid var(--ak-rule) !important; text-decoration:none !important;
		}
		.ak-btn.ak-btn--ghost:hover, a.ak-btn.ak-btn--ghost:hover { border-color:var(--ak-blue) !important; }

		/* Rangee de logos : le conteneur parent etait trop etroit */
		.ak-partners { width:100% !important; }
		.elementor-widget-html:has(> .elementor-widget-container > .ak-partners) { width:100% !important; flex:1 1 100% !important; }
		.e-con:has(.ak-partners) { width:100% !important; max-width:none !important; flex-basis:100% !important; }

		/* Inset horizontal homogene */
		@media (max-width:1343px) {
			.e-con-boxed { padding-left:0; padding-right:0; }
			.e-con-boxed > .e-con-inner { padding-left:clamp(16px,3vw,32px); padding-right:clamp(16px,3vw,32px); }
		}

		/* Quel spot pour votre session */
		.ak-fit__cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.5rem; }
		.ak-fit__card { background:var(--ak-surface); border-radius:14px; padding:1.5rem 1.6rem; display:flex; flex-direction:column; gap:.4rem; box-shadow:0 1px 2px rgba(11,37,69,.05), 0 12px 28px -20px rgba(11,37,69,.35); }
		.ak-fit__num { font-size:.7rem; font-weight:700; color:var(--ak-blue); letter-spacing:.08em; }
		.ak-fit__kicker { margin:0; font-size:.64rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-fit__name { margin:.15rem 0 0; font-size:1.15rem; letter-spacing:-.01em; }
		.ak-fit__desc { margin:0; font-size:.87rem; color:var(--ak-muted); }

		/* Planificateur de saison */
		.ak-planner { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:2.5rem; align-items:center; }
		.ak-planner__panel { background:var(--ak-surface); border-radius:16px; padding:1.75rem 1.9rem; box-shadow:0 1px 2px rgba(11,37,69,.05), 0 14px 32px -22px rgba(11,37,69,.4); }
		.ak-planner__label { margin:0 0 1.1rem; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-ink); }
		.ak-planner__row { display:grid; grid-template-columns:auto 1fr 1.3fr; gap:1rem; align-items:baseline; padding:.95rem 0; border-top:1px solid var(--ak-rule); }
		.ak-planner__row:first-of-type { border-top:0; }
		.ak-planner__n { font-size:1.05rem; font-weight:700; color:var(--ak-blue); }
		.ak-planner__k { font-size:.95rem; font-weight:600; color:var(--ak-ink); }
		.ak-planner__v { font-size:.87rem; color:var(--ak-muted); }
		.ak-planner__actions { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.5rem; }

		/* FAQ en accordeon natif */
		.ak-faq2__list { display:flex; flex-direction:column; gap:.85rem; }
		.ak-faq2__item { background:var(--ak-surface); border-radius:12px; box-shadow:0 1px 2px rgba(11,37,69,.05), 0 10px 24px -20px rgba(11,37,69,.35); overflow:hidden; }
		.ak-faq2__item > summary { cursor:pointer; list-style:none; padding:1.05rem 1.4rem; font-size:.98rem; font-weight:600; color:var(--ak-ink); display:flex; justify-content:space-between; align-items:center; gap:1rem; }
		.ak-faq2__item > summary::-webkit-details-marker { display:none; }
		.ak-faq2__item > summary::after { content:'+'; font-size:1.2rem; font-weight:400; color:var(--ak-ink); flex:none; }
		.ak-faq2__item[open] > summary::after { content:'−'; }
		.ak-faq2__item > summary:focus-visible { outline:2px solid var(--ak-blue); outline-offset:-2px; }
		.ak-faq2__answer { margin:0; padding:0 1.4rem 1.25rem; font-size:.9rem; color:var(--ak-muted); max-width:82ch; }

		/* Kite and Stay */
		.ak-stay__cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.75rem; }
		.ak-stay__card { display:flex; flex-direction:column; overflow:hidden; border-radius:16px; background:var(--ak-surface); box-shadow:0 1px 2px rgba(11,37,69,.05), 0 14px 32px -22px rgba(11,37,69,.4); }
		.ak-stay__media { aspect-ratio:16/9; overflow:hidden; background:var(--ak-sky); }
		.ak-stay__media img { width:100%; height:100%; object-fit:cover; display:block; }
		.ak-stay__body { display:flex; flex-direction:column; gap:.5rem; padding:1.35rem 1.5rem 1.6rem; flex:1; }
		.ak-stay__kicker { margin:0; font-size:.66rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-stay__name { margin:0; font-size:1.25rem; letter-spacing:-.01em; }
		.ak-stay__price { margin:0; font-size:.95rem; color:var(--ak-ink); }
		.ak-stay__summary { margin:0; font-size:.89rem; color:var(--ak-muted); }
		.ak-stay__facilities { margin:.3rem 0 0; font-size:.78rem; color:var(--ak-muted); }
		.ak-stay__actions { margin-top:auto; padding-top:1.1rem; margin-bottom:0; }
		.ak-stay__toggle { cursor:pointer; font-family:inherit; width:100%; }
		.ak-stay__card.is-active .ak-stay__toggle { background:var(--ak-ink); border-color:var(--ak-ink); color:#fff; }
		.ak-stay__panel { margin-top:2rem; background:var(--ak-surface); border-radius:18px; padding:2rem 2.25rem 2.25rem; box-shadow:0 1px 2px rgba(11,37,69,.05), 0 18px 40px -26px rgba(11,37,69,.4); }
		.ak-stay__panel[hidden] { display:none; }
		.ak-stay__paneltitle { margin:.5rem 0 .6rem; font-size:1.75rem; letter-spacing:-.02em; }
		.ak-stay__paneltext { margin:0 0 1.5rem; font-size:.95rem; color:var(--ak-muted); max-width:70ch; }
		.ak-stay__panelgrid { display:grid; grid-template-columns:1.4fr 1fr; gap:1.75rem; align-items:start; }
		.ak-stay__gallery { display:grid; grid-template-columns:2fr 1fr; gap:.85rem; }
		.ak-stay__gallery img { width:100%; height:100%; object-fit:cover; border-radius:10px; display:block; }
		.ak-stay__big { aspect-ratio:4/3; }
		.ak-stay__thumbs { display:grid; gap:.85rem; }
		.ak-stay__specs { margin:0; padding:1.1rem 1.25rem; border:1px solid var(--ak-rule); border-radius:12px; }
		.ak-stay__specrow { display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0; border-top:1px solid var(--ak-rule); }
		.ak-stay__specrow:first-child { border-top:0; }
		.ak-stay__specs dt { margin:0; font-size:.64rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-stay__specs dd { margin:0; font-size:.85rem; color:var(--ak-ink); text-align:right; }
		.ak-stay__panelfoot { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:1.25rem; margin-top:1.75rem; padding-top:1.25rem; border-top:1px solid var(--ak-rule); }
		.ak-stay__cancel { margin:.35rem 0 0; font-size:.82rem; color:var(--ak-muted); }
		@media (max-width:860px) { .ak-stay__panelgrid { grid-template-columns:1fr; } }

		/* Station meteo */
		.ak-weather__row { display:flex; flex-wrap:wrap; gap:1.25rem; align-items:flex-start; }
		.ak-weather__tile { background:var(--ak-surface); border-radius:12px; padding:.75rem; box-shadow:0 1px 2px rgba(11,37,69,.05), 0 10px 24px -18px rgba(11,37,69,.35); line-height:0; }
		.ak-weather__tile iframe { border:0; display:block; max-width:100%; }
		.ak-weather__wide { margin-top:1.75rem; }
		.ak-weather__label { margin:0 0 .6rem; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-weather__scroll { overflow-x:auto; background:var(--ak-surface); border-radius:12px; padding:.75rem; box-shadow:0 1px 2px rgba(11,37,69,.05), 0 10px 24px -18px rgba(11,37,69,.35); }
		.ak-weather__scroll iframe { border:0; display:block; }

		/* Resume par discipline (accueil) */
		.ak-disc__cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(380px,1fr)); gap:2rem; }
		.ak-disc__card { display:flex; flex-direction:column; overflow:hidden; border-radius:16px; background:var(--ak-surface); box-shadow:0 1px 2px rgba(11,37,69,.05), 0 16px 36px -24px rgba(11,37,69,.4); }
		.ak-disc__media { aspect-ratio:16/8; overflow:hidden; background:var(--ak-sky); }
		.ak-disc__media img { width:100%; height:100%; object-fit:cover; display:block; }
		.ak-disc__body { display:flex; flex-direction:column; gap:.5rem; padding:1.5rem 1.75rem 1.85rem; flex:1; }
		.ak-disc__eyebrow { margin:0; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-disc__title { margin:0 0 .6rem; font-size:1.45rem; letter-spacing:-.01em; }
		.ak-disc__rows { display:flex; flex-direction:column; }
		.ak-disc__row { display:grid; grid-template-columns:1.1fr 1fr auto; gap:.75rem; align-items:baseline; padding:.75rem 0; border-top:1px solid var(--ak-rule); text-decoration:none; color:inherit; }
		.ak-disc__row:first-child { border-top:0; }
		.ak-disc__row:hover .ak-disc__name { color:var(--ak-blue); }
		.ak-disc__name { font-size:.92rem; color:var(--ak-ink); }
		.ak-disc__mid { font-size:.85rem; color:var(--ak-muted); }
		.ak-disc__price { font-size:.85rem; color:var(--ak-muted); text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
		.ak-disc__actions { margin-top:auto; padding-top:1.4rem; margin-bottom:0; }
		@media (max-width:520px) { .ak-disc__row { grid-template-columns:1fr auto; } .ak-disc__mid { grid-column:1 / -1; } }

		/* Grille des spots */
		.ak-spots__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.75rem; }
		.ak-spot { display:flex; flex-direction:column; overflow:hidden; border-radius:16px; background:var(--ak-surface); box-shadow:0 1px 2px rgba(11,37,69,.05), 0 14px 32px -22px rgba(11,37,69,.4); }
		.ak-spot__media { aspect-ratio:16/9; overflow:hidden; background:var(--ak-sky); }
		.ak-spot__media img { width:100%; height:100%; object-fit:cover; display:block; }
		.ak-spot__body { display:flex; flex-direction:column; gap:.55rem; padding:1.35rem 1.5rem 1.6rem; flex:1; }
		.ak-spot__kicker { margin:0; font-size:.66rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-spot__title { margin:0; font-size:1.4rem; letter-spacing:-.01em; }
		.ak-spot__summary { margin:0; font-size:.9rem; color:var(--ak-muted); }
		.ak-spot__facts { display:grid; grid-template-columns:1.35fr 1fr; gap:1rem; margin-top:auto; padding-top:1.1rem; border-top:1px solid var(--ak-rule); }
		.ak-spot__label { margin:0 0 .35rem; font-size:.62rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-spot__value { margin:0; font-size:.85rem; color:var(--ak-ink); }

		/* Grille des options de location */
		.ak-rental__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:1.5rem; }
		.ak-rentalcard { display:flex; flex-direction:column; overflow:hidden; border-radius:16px; background:var(--ak-surface); box-shadow:0 1px 2px rgba(11,37,69,.05), 0 14px 32px -22px rgba(11,37,69,.4); }
		.ak-rentalcard__media { aspect-ratio:16/10; overflow:hidden; background:var(--ak-sky); }
		.ak-rentalcard__media img { width:100%; height:100%; object-fit:cover; display:block; }
		.ak-rentalcard__body { display:flex; flex-direction:column; gap:.25rem; padding:1.35rem 1.5rem 1.6rem; flex:1; }
		.ak-rentalcard__title { margin:0 0 .35rem; font-size:1.2rem; letter-spacing:-.01em; }
		.ak-rentalcard__summary { margin:0 0 .7rem; font-size:.89rem; color:var(--ak-muted); }
		.ak-rentalcard__label { margin:.5rem 0 .1rem; font-size:.66rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-rentalcard__value { margin:0; font-size:.87rem; color:var(--ak-ink); }
		.ak-rentalcard__actions { margin-top:auto; padding-top:1.2rem; margin-bottom:0; }
		.ak-rentalcard__actions .ak-btn { width:100%; }

		/* Pourquoi louer chez Accrokite */
		.ak-why__cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(235px,1fr)); gap:1.5rem; }
		.ak-why__card { background:var(--ak-surface); border-radius:14px; padding:1.5rem 1.6rem; display:flex; flex-direction:column; gap:.5rem; box-shadow:0 1px 2px rgba(11,37,69,.05), 0 12px 28px -20px rgba(11,37,69,.35); }
		.ak-why__num { font-size:.7rem; font-weight:700; color:var(--ak-blue); letter-spacing:.08em; }
		.ak-why__card h3 { margin:0; padding-bottom:.7rem; border-bottom:1px solid var(--ak-rule); font-size:.98rem; text-transform:uppercase; letter-spacing:.02em; color:var(--ak-ink); }
		.ak-why__card p { margin:0; font-size:.87rem; color:var(--ak-muted); }

		/* Retrait du materiel */
		.ak-collect { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:2.5rem; align-items:center; }
		.ak-collect__media { border-radius:16px; overflow:hidden; }
		.ak-collect__media img { width:100%; height:100%; object-fit:cover; display:block; }
		.ak-collect__body { display:flex; flex-direction:column; gap:.7rem; }
		.ak-collect__list { margin:.5rem 0 0; padding-left:1.1rem; display:flex; flex-direction:column; gap:.35rem; font-size:.9rem; color:var(--ak-muted); }
		.ak-collect__actions { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1rem; }

		/* Contact : cartes de motif + formulaire adaptatif */
		.ak-reasons { display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:1.25rem; }
		.ak-reason { text-align:left; font:inherit; cursor:pointer; display:flex; flex-direction:column; gap:.5rem; padding:1.5rem 1.6rem; border:1px solid transparent; border-radius:14px; background:var(--ak-surface); box-shadow:0 1px 2px rgba(11,37,69,.05), 0 12px 28px -20px rgba(11,37,69,.35); transition:border-color .15s, box-shadow .15s; }
		.ak-reason:hover { border-color:var(--ak-blue); }
		.ak-reason.is-active { border-color:var(--ak-blue); box-shadow:0 0 0 2px var(--ak-blue) inset; }
		.ak-reason:focus-visible { outline:2px solid var(--ak-blue); outline-offset:2px; }
		.ak-reason__num { font-size:.7rem; font-weight:700; color:var(--ak-blue); letter-spacing:.08em; }
		.ak-reason__name { font-size:1.05rem; font-weight:700; text-transform:uppercase; letter-spacing:.02em; color:var(--ak-ink); }
		.ak-reason__desc { font-size:.86rem; color:var(--ak-muted); }

		#contact-form-box { background:var(--ak-surface); border-radius:18px; padding:2rem 2.25rem 2.25rem; box-shadow:0 1px 2px rgba(11,37,69,.05), 0 18px 40px -26px rgba(11,37,69,.4); }
		.ak-selected { margin-bottom:1.5rem; }
		.ak-selected__label { margin:0 0 .4rem; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-selected__value { display:inline-block; padding:.65rem 1.1rem; border:1px solid var(--ak-rule); border-radius:10px; background:#f4fafd; font-size:.95rem; color:var(--ak-ink); }
		.ak-formnote { margin-top:1.1rem; font-size:.78rem; color:var(--ak-muted); }

		.jet-form-builder .jet-form-builder-row:has(.ak-cond) { display:none; }
		.jet-form-builder .jet-form-builder-row.ak-show { display:block; }
		.jet-form-builder .jet-form-builder-row.ak-hide { display:none !important; }
		.jet-form-builder .jet-form-builder__heading { margin:1.6rem 0 .4rem; }
		.jet-form-builder .jet-form-builder__heading .jet-form-builder__label-text { font-size:1.15rem; font-weight:700; color:var(--ak-ink); }
		.jet-form-builder .jet-form-builder__label-text { font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ak-blue); }
		.jet-form-builder .jet-form-builder__field { width:100%; padding:.75rem .95rem; border:1px solid var(--ak-rule); border-radius:10px; background:#f4fafd; font-size:.95rem; color:var(--ak-ink); }
		.jet-form-builder .jet-form-builder__field:focus { outline:2px solid var(--ak-blue); outline-offset:1px; }
		.jet-form-builder textarea.jet-form-builder__field { min-height:130px; resize:vertical; }
		.jet-form-builder .jet-form-builder__submit { background:var(--ak-blue); color:#fff; border:0; border-radius:999px; padding:.85rem 1.6rem; font-size:.82rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; }
		.jet-form-builder .jet-form-builder__submit:hover { background:var(--ak-ink); }
		.jet-form-builder .field-type-checkbox-field .jet-form-builder__label-text { text-transform:none; letter-spacing:0; font-weight:400; font-size:.85rem; color:var(--ak-muted); }

		/* Coordonnees pratiques */
		.ak-details__cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:1.5rem; }
		.ak-details__card { background:var(--ak-surface); border-radius:16px; padding:2rem 2.1rem; display:flex; flex-direction:column; gap:.35rem; justify-content:center; min-height:150px; box-shadow:0 1px 2px rgba(11,37,69,.05), 0 12px 28px -20px rgba(11,37,69,.35); }
		.ak-details__label { margin:0; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-details__value { margin:0; font-size:1.15rem; font-weight:700; color:var(--ak-ink); }
		.ak-details__note { margin:0; font-size:.86rem; color:var(--ak-muted); }

		/* Cartes d'article du blog */
		.ak-story { display:flex; flex-direction:column; overflow:hidden; border-radius:14px; background:var(--ak-surface); box-shadow:0 1px 2px rgba(11,37,69,.05), 0 12px 28px -20px rgba(11,37,69,.35); height:100%; }
		.ak-story__media { display:block; aspect-ratio:16/9; overflow:hidden; background:var(--ak-sky); }
		.ak-story__media img { width:100%; height:100%; object-fit:cover; display:block; }
		.ak-story__body { display:flex; flex-direction:column; gap:.6rem; padding:1.15rem 1.35rem 1.35rem; flex:1; }
		.ak-story__cat { margin:0; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-story__title { margin:0; font-size:1.15rem; line-height:1.25; letter-spacing:-.01em; }
		.ak-story__title a { color:var(--ak-ink); text-decoration:none; }
		.ak-story__title a:hover { color:var(--ak-blue); }
		.ak-story__excerpt { margin:0; font-size:.88rem; color:var(--ak-muted); }
		.ak-story__meta { margin-top:auto; padding-top:.9rem; margin-bottom:0; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }

		/* Section "Useful now" */
		.ak-useful__cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:1.5rem; }
		.ak-useful__card { display:flex; overflow:hidden; border-radius:16px; background:var(--ak-surface); box-shadow:0 1px 2px rgba(11,37,69,.05), 0 12px 28px -20px rgba(11,37,69,.35); }
		.ak-useful__media { flex:0 0 42%; overflow:hidden; background:var(--ak-sky); }
		.ak-useful__media img { width:100%; height:100%; object-fit:cover; display:block; }
		.ak-useful__body { display:flex; flex-direction:column; gap:.6rem; padding:1.6rem 1.75rem; flex:1; }
		.ak-useful__eyebrow { margin:0; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-useful__title { margin:0; font-size:1.45rem; line-height:1.2; letter-spacing:-.01em; }
		.ak-useful__text { margin:0; font-size:.92rem; color:var(--ak-muted); }
		.ak-useful__specs { margin:.4rem 0 0; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); }
		.ak-useful__actions { margin-top:auto; padding-top:1rem; display:flex; }
		@media (max-width:640px) { .ak-useful__card { flex-direction:column; } .ak-useful__media { flex:0 0 190px; } }

		/* Logos partenaires - geometries reprises de la maquette (415:3406) */
		.ak-partners { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:2.5rem 3rem; }
		.ak-partner { position:relative; display:block; overflow:hidden; flex:0 0 auto; }
		.ak-partner img { position:absolute; display:block; max-width:none; }
		.ak-partner--north { width:162px; height:53px; }
		.ak-partner--north img { width:110.49%; height:98.9%; left:-5.56%; top:.55%; }
		.ak-partner--mystic { width:163px; height:42px; }
		.ak-partner--mystic img { width:100%; height:100%; left:0; top:0; }
		.ak-partner--duotone { width:165px; height:53px; }
		.ak-partner--duotone img { width:110.3%; height:100%; left:-5.45%; top:0; }
		.ak-partner--ion { width:163px; height:42px; }
		.ak-partner--ion img { width:100%; height:100%; left:0; top:0; }
		.ak-partner--iwo { width:103px; height:103px; }
		.ak-partner--iwo img { width:100%; height:100%; left:0; top:0; object-fit:cover; }
		.ak-partner--ikopro { width:158px; height:46px; }
		.ak-partner--ikopro img { width:111.01%; height:100%; left:-10.56%; top:0; }
		@media (max-width:640px) { .ak-partners { gap:1.75rem 2rem; } }

		/* Cartes instructeur */
		.ak-inst { display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--ak-rule); border-radius:14px; background:var(--ak-surface); height:100%; }
		.ak-inst__media { aspect-ratio:4/3; overflow:hidden; background:var(--ak-sky); }
		.ak-inst__media img { width:100%; height:100%; object-fit:cover; display:block; }
		.ak-inst__body { padding:1.1rem 1.25rem 1.3rem; display:flex; flex-direction:column; gap:.4rem; flex:1; }
		.ak-inst__name { margin:0; font-size:1.15rem; letter-spacing:-.01em; }
		.ak-inst__meta { margin:0; font-size:.81rem; color:var(--ak-muted); }
		.ak-inst__link { margin-top:auto; padding-top:.7rem; font-size:.85rem; font-weight:600; color:var(--ak-blue); text-decoration:none; }
		.ak-inst__link:hover { text-decoration:underline; }

		/* filtres JetSmartFilters en pastilles */
		.jet-filter { margin-bottom:1.25rem; }
		.jet-filter .jet-filter-label { font-size:.78rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ak-blue); margin-bottom:.6rem; font-weight:600; }
		.jet-filter .jet-checkboxes-list-wrapper { display:flex; flex-wrap:wrap; gap:.5rem; border:0; padding:0; margin:0; }
		.jet-filter .jet-checkboxes-list__row { margin:0 !important; padding:0 !important; }
		.jet-filter .jet-checkboxes-list__item { margin:0 !important; padding:0 !important; cursor:pointer; position:relative; }
		.jet-filter .jet-checkboxes-list__decorator { display:none !important; }
		.jet-filter .jet-checkboxes-list__input { position:absolute; opacity:0; width:1px; height:1px; margin:0; }
		.jet-filter .jet-checkboxes-list__button { display:inline-flex; align-items:center; padding:.6rem 1.3rem; border:1px solid var(--ak-rule); border-radius:999px; background:var(--ak-surface); color:var(--ak-blue); font-size:.8rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; line-height:1.2; transition:background .15s, border-color .15s, color .15s; }
		.jet-filter .jet-checkboxes-list__label { margin:0 !important; padding:0 !important; }
		.jet-filter .jet-checkboxes-list__item:hover .jet-checkboxes-list__button { border-color:var(--ak-blue); }
		.jet-filter .jet-checkboxes-list__input:checked ~ .jet-checkboxes-list__button { background:var(--ak-blue); border-color:var(--ak-blue); color:#fff; }
		.jet-filter .jet-checkboxes-list__input:focus-visible ~ .jet-checkboxes-list__button { outline:2px solid var(--ak-blue); outline-offset:2px; }

		@media (max-width:640px) {
			.ak-reco__side { align-items:flex-start; text-align:left; }
		}
		@media (prefers-reduced-motion:reduce) {
			.ak-btn, .ak-activity, .ak-level, .jet-filter .jet-checkboxes-list__button { transition:none; }
		}


/* --------------------------------------------------------------------------
   ADAPTATION AUX WIDGETS JETENGINE
   Le meme habillage s'applique, que la carte soit rendue par le shortcode
   historique (balises directes) ou par des widgets dynamiques (chaque
   element est enveloppe par .elementor-widget > .elementor-widget-container).
   -------------------------------------------------------------------------- */

.elementor-widget.ak-offer__media,
.elementor-widget.ak-inst__media,
.elementor-widget.ak-story__media { margin: 0; }
.ak-offer__media .elementor-widget-container,
.ak-offer__media .jet-listing-dynamic-image,
.ak-inst__media .elementor-widget-container,
.ak-inst__media .jet-listing-dynamic-image,
.ak-story__media .elementor-widget-container,
.ak-story__media .jet-listing-dynamic-image,
.ak-story__media .jet-listing-dynamic-image__link { display: block; height: 100%; }

.elementor-widget.ak-spec__row { margin: 0; }
.ak-spec__row .jet-listing-dynamic-field__content { display: flex; justify-content: space-between; align-items: baseline; gap: .75rem; }
.ak-spec__row .jet-listing-dynamic-field__content .ak-spec__value { text-align: right; }

.elementor-widget.ak-chip { margin: 0; width: auto; }
.elementor-widget.ak-chip .jet-listing-dynamic-field__content { display: inline; }
.e-con.ak-offer__chips { display: flex; flex-direction: row; flex-wrap: wrap; gap: .4rem; }

.elementor-widget.ak-offer__title, .elementor-widget.ak-inst__name, .elementor-widget.ak-story__title,
.elementor-widget.ak-offer__summary, .elementor-widget.ak-inst__meta, .elementor-widget.ak-story__excerpt,
.elementor-widget.ak-story__cat, .elementor-widget.ak-story__meta { margin: 0; }
.elementor-widget.ak-offer__title .jet-listing-dynamic-field__content { font-size: 1.2rem; letter-spacing: -.01em; font-weight: 700; color: var(--ak-ink); }
.elementor-widget.ak-inst__name .jet-listing-dynamic-field__content { font-size: 1.15rem; letter-spacing: -.01em; font-weight: 700; color: var(--ak-ink); }
.elementor-widget.ak-story__title .jet-listing-dynamic-field__content { font-size: 1.15rem; line-height: 1.25; letter-spacing: -.01em; font-weight: 700; color: var(--ak-ink); }
.elementor-widget.ak-offer__summary .jet-listing-dynamic-field__content, .elementor-widget.ak-story__excerpt .jet-listing-dynamic-field__content { font-size: .88rem; color: var(--ak-muted); }
.elementor-widget.ak-inst__meta .jet-listing-dynamic-field__content { font-size: .81rem; color: var(--ak-muted); }
.elementor-widget.ak-story__cat .jet-listing-dynamic-terms, .elementor-widget.ak-story__cat .jet-listing-dynamic-field__content { font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--ak-blue); }
.elementor-widget.ak-story__cat .jet-listing-dynamic-terms__link { color: inherit; text-decoration: none; }
.elementor-widget.ak-story__meta { margin-top: auto; padding-top: .9rem; }
.elementor-widget.ak-story__meta .jet-listing-dynamic-field__content { font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--ak-blue); }

.e-con.ak-offer__actions, .e-con.ak-inst__actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: .6rem; margin-top: auto; padding-top: 1rem; }
.ak-offer__actions .elementor-widget, .ak-inst__actions .elementor-widget { width: auto; margin: 0; }
.ak-offer__actions .jet-listing-dynamic-link__link, .ak-inst__actions .jet-listing-dynamic-link__link { text-decoration: none; }
.elementor-widget.ak-inst__link { margin-top: auto; padding-top: .7rem; }
.elementor-widget.ak-inst__link .jet-listing-dynamic-link__link { font-size: .85rem; font-weight: 600; color: var(--ak-blue); text-decoration: none; }

/* Les grilles JetEngine : les listings rendus par widgets portent la classe
   sur leur conteneur racine, la grille de la page s'aligne dessus. */
.jet-listing-grid__item:has(.e-con.ak-offer, .e-con.ak-inst, .e-con.ak-story),
.jet-listing-grid__item:has(.e-con.ak-offer, .e-con.ak-inst, .e-con.ak-story) > .elementor { height: 100%; }
.e-con.ak-offer, .e-con.ak-inst, .e-con.ak-story { height: 100%; }

/* Priorite sur les regles JetEngine (.jet-listing-dynamic-image__img.wp-post-image { width:auto }) */
.ak-offer__media .jet-listing-dynamic-image__img.wp-post-image,
.ak-inst__media .jet-listing-dynamic-image__img.wp-post-image,
.ak-story__media .jet-listing-dynamic-image__img.wp-post-image { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Widgets qui doivent prendre la largeur de leur contenu dans un conteneur flex */
.e-con > .elementor-widget.ak-chip,
.e-con > .elementor-widget.ak-btn,
.ak-offer__actions > .elementor-widget,
.ak-inst__actions > .elementor-widget { --container-widget-width: auto; --container-widget-flex-grow: 0; width: auto; flex-grow: 0; }
.e-con > .elementor-widget.ak-chip { display: inline-flex; }

/* Specificite au-dessus de .e-con.e-flex > .elementor-widget d'Elementor */
.e-con.e-flex > .elementor-widget.elementor-element.ak-chip,
.e-con.e-flex > .elementor-widget.elementor-element.ak-btn,
.e-con.e-flex.ak-offer__actions > .elementor-widget.elementor-element,
.e-con.e-flex.ak-inst__actions > .elementor-widget.elementor-element { --container-widget-width: auto; --container-widget-flex-grow: 0; width: auto; flex-grow: 0; flex-shrink: 0; }
.e-con.e-flex > .elementor-widget.elementor-element.ak-chip { display: inline-flex; }
.e-con.e-flex > .elementor-widget.elementor-element.ak-offer__media,
.e-con.e-flex > .elementor-widget.elementor-element.ak-inst__media,
.e-con.e-flex > .elementor-widget.elementor-element.ak-story__media { min-height: 0; height: auto; }

/* Image de carte : le ratio est porte par l'image elle-meme, independamment
   de la boite qui l'enveloppe (widget ou div). */
.ak-offer__media img, .ak-inst__media img, .ak-story__media img { aspect-ratio: 16 / 9; height: auto !important; width: 100% !important; object-fit: cover; display: block; }
.ak-inst__media img { aspect-ratio: 4 / 3; }
.elementor-widget.ak-offer__media, .elementor-widget.ak-inst__media, .elementor-widget.ak-story__media { aspect-ratio: auto; }

/* En-tetes de section en widgets natifs : titre + intro (+ surtitre) */
.elementor-widget.ak-sec__title { margin: 0; }
.elementor-widget.ak-sec__title .elementor-heading-title { font-size: clamp(1.6rem, 3vw, 2.2rem); letter-spacing: -.02em; line-height: 1.15; margin: 0; }
.elementor-widget.ak-sec__intro { margin: 0 0 .5rem; }
.elementor-widget.ak-sec__intro p { margin: 0; color: var(--ak-muted-foreground); }
.elementor-widget.ak-view-kicker { margin: 0; }

/* Lignes de cours compactes (Home) */
.ak-course-rows .jet-listing-grid__items { gap: 0; }
.ak-course-rows .jet-listing-grid__item + .jet-listing-grid__item .ak-course-row { border-top: 1px solid var(--ak-border); }
.e-con.ak-course-row { display: flex; }
.e-con.e-flex.ak-course-row > .elementor-widget.elementor-element { --container-widget-width: auto; --container-widget-flex-grow: 0; width: auto; margin: 0; }
.ak-course-row__title .jet-listing-dynamic-field__content { font-weight: 600; color: var(--ak-foreground); }
.ak-course-row__meta .jet-listing-dynamic-field__content { font-size: var(--ak-size-small); color: var(--ak-muted-foreground); }
.e-con.e-flex.ak-course-row > .ak-course-row__price { margin-left: auto; }
.ak-course-row__price .jet-listing-dynamic-field__content s { color: var(--ak-muted-foreground); margin-right: .3rem; }
.ak-course-row__price .jet-listing-dynamic-field__content strong { color: var(--ak-primary); }

/* --------------------------------------------------------------------------
   COMPOSANTS DE PAGE EN WIDGETS NATIFS
   Le conteneur ou le widget porte la classe du composant (et sa typo) ; le
   titre ou le paragraphe interne herite, au lieu de recevoir la typo du kit.
   -------------------------------------------------------------------------- */
.elementor-widget[class*="ak-"]:not(.ak-sec__title):not(.ak-view-kicker):not(.ak-offer__title):not(.ak-inst__name):not(.ak-story__title) .elementor-heading-title { font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; line-height: inherit; margin: 0; }
.elementor-widget[class*="ak-"] .elementor-widget-container > p, .elementor-widget[class*="ak-"] .elementor-widget-container > .elementor-text-editor > p { margin: 0; }
.e-con.e-flex > .elementor-widget.elementor-element[class*="ak-"] { margin: 0; }
/* Le dernier widget d'une carte à média reprend son margin-top:auto (views.css §16) que la remise à zéro générique ci-dessus écrasait. */
.e-con.e-flex.ak-media-card > .elementor-widget.elementor-element:last-child,
.e-con.e-flex.ak-rent-card > .elementor-widget.elementor-element:last-child { margin-top: auto; }

.e-con.ak-fit__card, .e-con.ak-details__card, .e-con.ak-safety__card, .e-con.ak-cert__card, .e-con.ak-useful__card, .e-con.ak-reason { display: flex; }
.e-con.ak-reason { cursor: pointer; text-align: left; }
.e-con.ak-planner { display: grid; }
.e-con.ak-planner__row { display: flex; }
.e-con.ak-useful__card { padding: 0; overflow: hidden; }
.elementor-widget.ak-useful__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 0; display: block; }
.e-con.e-flex > .elementor-widget.elementor-element.ak-planner__n { --container-widget-width: auto; width: auto; flex-grow: 0; }

/* Cartes spot et hebergement en widgets natifs */
.e-con.ak-spot, .e-con.ak-stay__card { display: flex; }
.ak-spot__media .jet-listing-dynamic-image__img.wp-post-image, .ak-stay__media .jet-listing-dynamic-image__img.wp-post-image { width: 100% !important; aspect-ratio: 16 / 9; height: auto !important; object-fit: cover; display: block; }
.e-con.e-flex > .elementor-widget.elementor-element.ak-spot__media, .e-con.e-flex > .elementor-widget.elementor-element.ak-stay__media { aspect-ratio: auto; min-height: 0; margin: 0; }
.elementor-widget.ak-spot__kicker, .elementor-widget.ak-spot__title, .elementor-widget.ak-spot__summary, .elementor-widget.ak-spot__label, .elementor-widget.ak-spot__value,
.elementor-widget.ak-stay__kicker, .elementor-widget.ak-stay__name, .elementor-widget.ak-stay__price, .elementor-widget.ak-stay__summary, .elementor-widget.ak-stay__facilities { margin: 0; }
.elementor-widget.ak-spot__title .jet-listing-dynamic-field__content, .elementor-widget.ak-stay__name .jet-listing-dynamic-field__content { font-size: 1.2rem; font-weight: 700; letter-spacing: -.01em; color: var(--ak-ink); }
.elementor-widget.ak-spot__kicker .jet-listing-dynamic-field__content, .elementor-widget.ak-stay__kicker .jet-listing-dynamic-field__content, .elementor-widget.ak-spot__label .elementor-heading-title { font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--ak-blue); }
.elementor-widget.ak-spot__summary .jet-listing-dynamic-field__content, .elementor-widget.ak-stay__summary .jet-listing-dynamic-field__content, .elementor-widget.ak-stay__facilities .jet-listing-dynamic-field__content { font-size: .9rem; color: var(--ak-muted); }
.elementor-widget.ak-spot__value .jet-listing-dynamic-field__content { font-size: .88rem; color: var(--ak-ink); white-space: pre-line; }
.elementor-widget.ak-stay__price .jet-listing-dynamic-field__content { font-weight: 700; color: var(--ak-blue); }
.e-con.ak-spot__facts { border-top: 1px solid var(--ak-rule); padding-top: .75rem; margin-top: .25rem; }
.e-con.ak-stay__actions { margin-top: auto; padding-top: .75rem; }
.e-con.e-flex.ak-stay__actions > .elementor-widget.elementor-element { --container-widget-width: auto; width: auto; flex-grow: 0; }

.elementor-widget.ak-view-body .jet-listing-dynamic-field__content, .elementor-widget.ak-view-lead .jet-listing-dynamic-field__content { display: block; }
.elementor-widget.ak-view-body .jet-listing-dynamic-field__content p { margin: 0 0 1.25em; }
.elementor-widget.ak-view-lead { margin: 0; }
.elementor-widget.ak-view-lead .jet-listing-dynamic-field__content { font-size: var(--ak-size-lead, 1.15rem); color: var(--ak-muted-foreground); max-width: 60ch; }
.elementor-widget.ak-view-price .jet-listing-dynamic-field__content { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem; }
.elementor-widget.ak-view-price .jet-listing-dynamic-field__content s { color: var(--ak-muted-foreground); }
.elementor-widget.ak-view-price .jet-listing-dynamic-field__content strong { font-family: var(--ak-font-display); font-size: 1.6rem; color: var(--ak-foreground); }
.elementor-widget.ak-view-price .ak-view-price__unit { color: var(--ak-muted-foreground); font-size: var(--ak-size-small); }
.elementor-widget.ak-view-outcome .jet-listing-dynamic-field__content { display: flex; flex-direction: column; gap: .3rem; padding: 1rem 1.25rem; border-left: 3px solid var(--ak-accent); background: var(--ak-surface-light); border-radius: 0 var(--ak-radius-lg) var(--ak-radius-lg) 0; }
.elementor-widget.ak-view-outcome .jet-listing-dynamic-field__content > span { font-size: var(--ak-size-small); font-weight: var(--ak-weight-semibold); letter-spacing: .06em; text-transform: uppercase; color: var(--ak-primary); }
.e-con.ak-view-kicker .jet-listing-dynamic-field__content { font-size: var(--ak-size-small); font-weight: var(--ak-weight-semibold); letter-spacing: .06em; text-transform: uppercase; color: var(--ak-primary); }
.elementor-widget.ak-view-meta .jet-listing-dynamic-field__content { color: var(--ak-muted-foreground); }

/* --------------------------------------------------------------------------
   CARTE LOCATION (listing JetEngine « Rental product card », produits Woo)
   Même composant .ak-media-card que les cartes construites à la main, mais
   avec les widgets dynamiques JetEngine : l'image, le titre, l'extrait et le
   prix viennent de la fiche produit, le bouton reprend la variante ak-b-link.
   -------------------------------------------------------------------------- */
.ak-media-card .elementor-widget-jet-listing-dynamic-image.ak-media .jet-listing-dynamic-image__img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 0;
	display: block;
}
.ak-media-card .elementor-widget-jet-listing-dynamic-image.ak-media a { display: block; }
.elementor-widget.ak-rent-title .jet-listing-dynamic-field__content,
.elementor-widget.ak-rent-desc .jet-listing-dynamic-field__content,
.elementor-widget.ak-rent-price .jet-listing-dynamic-field__content { margin: 0; }
.elementor-widget.ak-rent-desc .jet-listing-dynamic-field__content {
	font-family: var(--ak-font-body);
	font-size: var(--ak-size-body);
	line-height: var(--ak-lh-body);
	color: var(--ak-muted-foreground);
}
.elementor-widget-jet-listing-dynamic-link.ak-b-link .jet-listing-dynamic-link__link {
	display: inline-block;
	font-family: var(--ak-font-body);
	font-size: var(--ak-size-ui);
	font-weight: var(--ak-weight-semibold);
	color: var(--ak-primary);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	transition: color var(--ak-duration) var(--ak-ease), border-bottom-color var(--ak-duration) var(--ak-ease);
}
.elementor-widget-jet-listing-dynamic-link.ak-b-link .jet-listing-dynamic-link__link:hover,
.elementor-widget-jet-listing-dynamic-link.ak-b-link .jet-listing-dynamic-link__link:focus-visible {
	color: var(--ak-foreground);
	border-bottom-width: 2px;
	border-bottom-color: var(--ak-cta);
}
.elementor-widget-jet-listing-dynamic-link.ak-b-stack .jet-listing-dynamic-link__link { width: auto; }

/* --------------------------------------------------------------------------
   GALERIE PHOTO D'UNE FICHE (champ galerie JetEngine rendu par le callback
   « Images gallery grid ») : tuiles uniformes en 4/3, angles arrondis, zoom
   léger au survol, icône lightbox discrète.
   -------------------------------------------------------------------------- */
.elementor-widget.ak-gallery .jet-engine-gallery-grid { gap: var(--ak-space-4); }
.elementor-widget.ak-gallery .jet-engine-gallery-grid__item { margin: 0; }
.elementor-widget.ak-gallery .jet-engine-gallery-grid__item-wrap {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--ak-radius-md);
	background: var(--ak-surface-light);
}
.elementor-widget.ak-gallery .jet-engine-gallery-grid__item-img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
	transition: transform var(--ak-duration) var(--ak-ease);
}
.elementor-widget.ak-gallery .jet-engine-gallery-grid__item-wrap:hover .jet-engine-gallery-grid__item-img { transform: scale(1.03); }
.elementor-widget.ak-gallery .jet-engine-lightbox-icon {
	position: absolute; right: var(--ak-space-3); bottom: var(--ak-space-3);
	color: #fff; font-size: 1.1rem; opacity: 0; transition: opacity var(--ak-duration) var(--ak-ease);
	text-shadow: 0 1px 4px rgba(0,0,0,.4);
}
.elementor-widget.ak-gallery .jet-engine-gallery-grid__item-wrap:hover .jet-engine-lightbox-icon { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
	.elementor-widget.ak-gallery .jet-engine-gallery-grid__item-img { transition: none; }
	.elementor-widget.ak-gallery .jet-engine-gallery-grid__item-wrap:hover .jet-engine-gallery-grid__item-img { transform: none; }
}

/* Boutons de listing : la classe .ak-btn est posée sur l'ENVELOPPE du widget
   (Avancé > Classes CSS), le lien JetEngine à l'intérieur reprenait la couleur
   de lien du thème — bleu sur bleu. Le lien hérite désormais tout du bouton. */
.elementor-widget.ak-btn .jet-listing-dynamic-link { display: block; }
.elementor-widget.ak-btn .jet-listing-dynamic-link__link,
.elementor-widget.ak-btn .jet-listing-dynamic-link__link:hover,
.elementor-widget.ak-btn .jet-listing-dynamic-link__link:focus {
	color: inherit !important;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	gap: .4em;
	background: none;
	border: 0;
	padding: 0;
}

/* Tarifs Viking : prix par leçon + packs 3 / 5 leçons. */
.ak-price__unit { font-weight: 400; color: var(--ak-muted-foreground); font-size: .9em; }
.ak-pack__n { color: var(--ak-muted-foreground); }
.ak-pack__sep { color: var(--ak-muted-foreground); }
.elementor-widget.ak-view-packages .jet-listing-dynamic-field__content { margin: -6px 0 0; font-size: var(--ak-size-ui); color: var(--ak-muted-foreground); }
.elementor-widget.ak-view-packages .jet-listing-dynamic-field__content strong { color: var(--ak-foreground); }

/* Ligne « Packages » des cartes : un pack par ligne, alignés à droite, sans le point médian. */
.ak-spec__packs .ak-spec__value { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.ak-spec__packs .ak-pack__sep { display: none; }
.ak-spec__packs .ak-pack { white-space: nowrap; }

/* --------------------------------------------------------------------------
   CARTES DE FORMAT (accueil) : Private / Group / Hydrofoil / Strapless.
   Trois lignes label → prix par carte, bouton collé en bas.
   -------------------------------------------------------------------------- */
.e-con.e-flex > .elementor-widget.elementor-element.ak-badge { --container-widget-width: auto; --container-widget-flex-grow: 0; width: auto; flex-grow: 0; }
.e-con.ak-fmt { height: 100%; }
.e-con.ak-fmt > .elementor-widget.ak-fmt__cta { margin-top: auto; padding-top: var(--ak-space-3); }
.e-con.ak-fmt__row { border-top: 1px solid var(--ak-rule); }
.e-con.ak-fmt__rows > .e-con.ak-fmt__row:first-child { border-top: 0; }
.e-con.e-flex > .elementor-widget.elementor-element.ak-fmt__label,
.e-con.e-flex > .elementor-widget.elementor-element.ak-fmt__price { --container-widget-width: auto; --container-widget-flex-grow: 0; width: auto; flex-grow: 0; }
.e-con.e-flex > .elementor-widget.elementor-element.ak-fmt__label { flex: 1 1 auto; min-width: 0; }
.elementor-widget.ak-fmt__label .elementor-heading-title { font-family: var(--ak-font-body); font-size: var(--ak-size-ui); line-height: var(--ak-lh-ui); font-weight: 400; color: var(--ak-muted-foreground); margin: 0; }
.elementor-widget.ak-fmt__price .elementor-heading-title { font-family: var(--ak-font-display); font-size: var(--ak-size-card); line-height: var(--ak-lh-card); font-weight: var(--ak-weight-display); color: var(--ak-foreground); margin: 0; white-space: nowrap; }
.elementor-widget.ak-fmt__best p { margin: 0; font-size: var(--ak-size-ui); color: var(--ak-muted-foreground); }
.elementor-widget.ak-fmt__best strong { color: var(--ak-primary); font-weight: var(--ak-weight-semibold); text-transform: uppercase; font-size: var(--ak-size-small); letter-spacing: var(--ak-tracking-eyebrow); margin-right: .35em; }
@media (max-width: 1200px) { .e-con.ak-fmt { padding: 22px !important; } }
/* --------------------------------------------------------------------------
   ACCUEIL — MAQUETTE DU 16/09/2026 (Claude Design « Accrokite Home »)
   Composants réutilisables posés sur des widgets natifs / listings JetEngine :
   pastilles (.ak-tag / .ak-pill), ligne de cours (.ak-crow), carte moniteur
   photo (.ak-tcard), onglets en pilule (.home-tabs) et sélecteur de spot
   (.spot-tabs). Les couleurs, bordures et espacements « de boîte » sont
   réglés dans les widgets ; ici ne reste que ce qu'Elementor ne sait pas faire.
   -------------------------------------------------------------------------- */

/* Pastilles inline (rendues par un callback : langues) */
.ak-tag {display: inline-block; font-size: 12px; line-height: 1.3; font-weight: 600; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--ak-border); background: var(--ak-surface-light); color: var(--ak-muted-foreground); margin: 0 6px 6px 0;}
.ak-tag--glass {color: #fff; background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.3);}

/* Pastilles en widget dynamique (niveau, durée, riders) */
.e-con.e-flex > .elementor-widget.elementor-element.ak-pill {--container-widget-width: auto; --container-widget-flex-grow: 0; width: auto; flex-grow: 0; margin: 0;}
.elementor-widget.ak-pill .jet-listing-dynamic-field__content {display: inline-block; font-size: 12px; line-height: 1.3; font-weight: 600; padding: 3px 8px; border-radius: 999px; border: 1px solid var(--ak-border); background: var(--ak-surface-light); color: var(--ak-muted-foreground);}
.elementor-widget.ak-pill--blue .jet-listing-dynamic-field__content {color: var(--ak-primary);}

/* Ligne de cours (listing « Home course row ») */
.e-con.e-flex.ak-crow > .elementor-widget.elementor-element.ak-crow__icon {--container-widget-width: auto; --container-widget-flex-grow: 0; width: auto; flex: 0 0 44px; margin: 0;}
.ak-crow__icon .jet-listing-dynamic-field__content {display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #E3F7F7; color: var(--ak-background-strong);}
.ak-crow__icon svg {display: block;}
.e-con.e-flex.ak-crow > .e-con.ak-crow__main {flex: 1 1 0; min-width: 0;}
.e-con.e-flex.ak-crow > .e-con.ak-crow__side {flex: 0 0 auto; width: auto; margin-left: auto;}
.ak-crow__title .jet-listing-dynamic-field__content {font-weight: 700; font-size: 16px; line-height: 1.2; color: var(--ak-background-strong);}
.ak-crow__price .jet-listing-dynamic-field__content {font-weight: 800; font-size: 18px; line-height: 1; white-space: nowrap; color: var(--ak-background-strong);}
.ak-crow__price .ak-price__unit {font-size: 12px; font-weight: 500; color: var(--ak-muted-foreground); margin-left: 4px;}
.e-con.ak-crow .elementor-widget-jet-listing-dynamic-link.ak-crow__book .jet-listing-dynamic-link__link {display: inline-block; font-size: 13px; font-weight: 600; color: #fff; background: var(--ak-background-strong); padding: 7px 14px; border-radius: 999px; text-decoration: none; transition: background-color var(--ak-duration) var(--ak-ease);}
.e-con.ak-crow .elementor-widget-jet-listing-dynamic-link.ak-crow__book .jet-listing-dynamic-link__link:hover {background: var(--ak-primary); color: #fff;}
.e-con.e-flex.ak-crow > .elementor-widget.elementor-element.ak-crow__book {width: auto; margin: 0;}
.e-con.ak-crow:hover {border-color: var(--ak-primary) !important;}
@media (max-width: 640px) {
	.e-con.e-flex.ak-crow {flex-wrap: wrap;}
	.e-con.e-flex.ak-crow > .e-con.ak-crow__side {flex-basis: 100%; flex-direction: row !important; align-items: center !important; justify-content: space-between; margin-left: 0;}
}

/* Carte moniteur photo (listing « Instructor photo card ») */
.e-con.ak-tcard {position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 20px; background: var(--ak-background-strong); color: #fff;}
.e-con.ak-tcard::after {content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,36,56,0) 45%, rgba(13,36,56,.92) 100%); z-index: 0; pointer-events: none;}
.e-con.e-flex.ak-tcard > .elementor-widget.elementor-element.ak-tcard__media {position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; min-height: 0;}
.ak-tcard__media .elementor-widget-container, .ak-tcard__media .jet-listing-dynamic-image, .ak-tcard__media a {display: block; height: 100%;}
.ak-tcard__media img {width: 100% !important; height: 100% !important; object-fit: cover; object-position: center top; display: block; transition: transform .6s var(--ak-ease);}
.e-con.ak-tcard:hover .ak-tcard__media img {transform: scale(1.04);}
.e-con.e-flex.ak-tcard > .e-con.ak-tcard__body {position: relative; z-index: 1; margin-top: auto;}
.ak-tcard__name .jet-listing-dynamic-field__content {font-size: 26px; font-weight: 800; line-height: 1.1; color: #fff;}
.ak-tcard__since .jet-listing-dynamic-field__content {font-size: 13px; color: var(--ak-accent);}
.ak-tcard__langs .jet-listing-dynamic-field__content {display: flex; flex-wrap: wrap; gap: 0;}
.ak-tcard .elementor-widget-jet-listing-dynamic-link.ak-tcard__link .jet-listing-dynamic-link__link {font-size: 13px; font-weight: 600; color: #fff; text-decoration: none;}
.e-con.ak-tcard .jet-engine-listing-overlay-link {z-index: 2;}

/* Pastille "verre" du hero et variante turquoise */
.ak-badge.ak-badge--glass {background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3); color: #fff; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); text-transform: none; letter-spacing: 0; font-size: 13px; line-height: 1.25; padding: 7px 14px;}
.ak-badge.ak-badge--glass::before {content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ak-cta); flex: none;}
.ak-badge.ak-badge--teal {background: var(--ak-cta); color: var(--ak-background-strong);}
.ak-hero__accent {color: var(--ak-accent);}

/* Onglets en pilule (Nested Tabs Elementor). Classe SANS préfixe ak- : la
   règle générique [class*="ak-"] .elementor-heading-title écraserait la typo
   des titres contenus dans les onglets. */
.home-tabs .e-n-tabs-heading {background: var(--ak-surface-light); border: 1px solid var(--ak-border); border-radius: 999px; padding: 4px; width: max-content; max-width: 100%; margin-inline-start: auto;}
.home-tabs .e-n-tabs-content {margin-top: 0;}
@media (max-width: 767px) {.home-tabs .e-n-tabs-heading {width: 100%; border-radius: 24px;}}

/* Sélecteur de spot (Nested Tabs, onglets à gauche). Le titre de chaque onglet
   porte trois lignes : <small>saison</small>, nom, <span>description</span> ;
   la description ne s'affiche que sur l'onglet actif, comme sur la maquette. */
.spot-tabs .e-n-tab-title {text-align: start; align-items: flex-start;}
/* Le titre actif contient la description du spot : avec flex-basis: content
   (Elementor) il prenait la largeur de cette description sur une seule ligne
   (1 300 px sur mobile) et faisait déborder toute la page — visible en hébreu,
   où Chrome dézoome la page entière. Borné à la largeur de l'en-tête des
   onglets, le texte revient à la ligne. */
.spot-tabs .e-n-tab-title {max-width: 100%; min-width: 0;}
.spot-tabs .e-n-tab-title-text {min-width: 0;}
@media (max-width: 767px) {.spot-tabs .e-n-tab-title {flex: 1 1 100%; width: 100%;}}
.spot-tabs .e-n-tab-title-text {white-space: normal; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%;}
.spot-tabs .e-n-tab-title-text small {font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.4; color: var(--ak-primary);}
.spot-tabs .e-n-tab-title.e-active .e-n-tab-title-text small, .spot-tabs .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text small {color: var(--ak-accent);}
.spot-tabs .e-n-tab-title-text span {display: none; font-size: 14px; font-weight: 400; line-height: 1.5; margin-top: 4px; opacity: .92;}
.spot-tabs .e-n-tab-title.e-active .e-n-tab-title-text span, .spot-tabs .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text span {display: block;}
.spot-tabs .e-n-tabs-content > .e-con {height: 100%;}
.spot-tabs .e-n-tabs-content .elementor-widget-image, .spot-tabs .e-n-tabs-content .elementor-widget-image .elementor-widget-container {height: 100%;}
.spot-tabs .e-n-tabs-content .elementor-widget-image img {width: 100%; height: 100%; min-height: 320px; object-fit: cover; aspect-ratio: auto;}

/* Ratios d'images de l'accueil */
.elementor-widget-image.ak-media.ak-media--square img {aspect-ratio: 1 / 1; height: 100%;}
.elementor-widget-image.ak-media.ak-media--wide img {aspect-ratio: 21 / 9;}
/* Image qui remplit la hauteur de sa colonne (mosaïque Kite & Stay) */
.e-con.e-flex > .elementor-widget.elementor-element.ak-media--fill {flex-grow: 1; display: flex; min-height: 0;}
.elementor-widget-image.ak-media--fill .elementor-widget-container {height: 100%; width: 100%; display: flex;}
.elementor-widget-image.ak-media--fill .elementor-widget-container img {height: 100%; width: 100%; object-fit: cover; aspect-ratio: auto; min-height: 320px;}

/* Fiche produit IKO : bloc « How to book — two steps » */
.ak-iko-steps .jet-listing-dynamic-link {display: inline-block;}
.ak-iko-steps .jet-listing-dynamic-link__link {display: inline-flex; width: auto;}
.ak-iko-steps__fee .jet-listing-dynamic-field__content, .ak-iko-dates .jet-listing-dynamic-field__content {font-size: 14px;}

/* Bloc « IKO Certification Standards » : lettre de compétence (classe sans préfixe ak-, cf. règle générique) */
.e-con.e-flex > .elementor-widget.elementor-element.lvl-letter {--container-widget-width: auto; --container-widget-flex-grow: 0; width: auto; flex: 0 0 34px; margin: 0;}
.elementor-widget.lvl-letter .elementor-heading-title {width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--ak-background-strong); color: #fff; font-family: var(--ak-font-body); font-size: 14px; font-weight: 700; line-height: 1; margin: 0;}

/* Accueil — section radio : la première ligne (accroche) ressort en blanc, un cran plus grande. */
.elementor-element-akh_radio_p p:first-child strong {color: #fff; font-size: 1.15em; font-weight: 600;}

/* Cartes hébergement et spot : la carte remplit la cellule de la grille, pour que
   les boutons « View details » restent alignés d'une carte à l'autre (ex. Summer Luxury,
   dont le titre et le kicker tiennent sur deux lignes). */
.jet-listing-grid__item:has(> .ak-stay__card), .jet-listing-grid__item:has(> .ak-spot),
.jet-listing-grid__item > .elementor:has(> .ak-stay__card), .jet-listing-grid__item > .elementor:has(> .ak-spot) { height: 100%; }
.jet-listing-grid__item > div:has(> .elementor > .ak-stay__card), .jet-listing-grid__item > div:has(> .elementor > .ak-spot) { height: 100%; }
.jet-listing-grid__item .e-con.ak-stay__card, .jet-listing-grid__item .e-con.ak-spot { height: 100%; min-height: 100%; }
.e-con.e-flex.ak-stay__card > .e-con.ak-stay__body, .e-con.e-flex.ak-spot > .e-con.ak-spot__body { flex: 1 1 auto; }
.e-con.e-flex.ak-stay__body > .e-con.ak-stay__actions, .e-con.e-flex.ak-spot__body > .e-con.ak-spot__actions { margin-top: auto !important; }

/* Photo en tête des cartes « Premier choix » (template 12065) : pleine largeur, à fleur des bords. */
.e-con.ak-fmt > .elementor-widget.ak-fmt__media { margin: -22px -22px 4px !important; width: calc(100% + 44px); max-width: none; }
.e-con.ak-fmt > .elementor-widget.ak-fmt__media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 19px 19px 0 0; }

/* CTA des cartes « Premier choix » : 4 colonnes à 1280 px, le libellé passait sur deux lignes. */
.e-con.ak-fmt > .elementor-widget.ak-fmt__cta .elementor-button { padding-inline: 14px; font-size: 13px; white-space: nowrap; width: 100%; justify-content: center; }

/* Mobile : le cadre du formulaire de contact perdait 52 px de chaque côté (36 + 16) → champs de 235 px. */
@media (max-width: 640px) { #contact-form-box { padding: 24px 4px 28px; } }

/* Packs dans les cartes cours : sur mobile (et libellés longs DE/RU), on autorise le retour à la ligne entre les deux packs. */
.ak-spec__packs .jet-listing-dynamic-field__content:has(.ak-pack) { flex-wrap: wrap; row-gap: 2px; }
@media (max-width: 640px) { .ak-spec__packs .ak-pack { white-space: normal; } }

/* Cible tactile des pastilles de carrousel : 24 x 24 px (WCAG 2.5.8).
   Le point reste visuellement à 12 px grâce à background-clip. */
.jet-engine-swiper-pagination-wrapper .swiper-pagination-bullet,
.elementor-widget-container .swiper-pagination-bullet {
	width: 24px;
	height: 24px;
	padding: 6px;
	background-clip: content-box !important;
	box-sizing: border-box;
}
.jet-engine-swiper-pagination-wrapper .swiper-pagination-bullets,
.elementor-widget-container .swiper-pagination-bullets {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 4px;
}
