/* PIXAN CUSTOM - Yann / Claude Code : bloc « Pixan — Cartes excursions » (maquette validée _mockups/cartes-excursions.html).
   Tout est scopé sous .pxc (préfixe pxc-) : aucune règle sur les cartes Tourmaster, /nos-excursions/ ou d'autres listes.
   Adaptatif selon la largeur DU BLOC (container queries) : correct dans une colonne GoodLayers étroite comme en pleine largeur.
   Chargé uniquement sur les pages qui contiennent le bloc (includes/pixan-cards.php). */

.pxc{
	container-type:inline-size; container-name:pxc;
	--pxc-navy:#071555; --pxc-terra:#dc834e; --pxc-terra-soft:#f2a777; --pxc-cream:#fff7eb; --pxc-line:#ece4db; --pxc-ink:#1f2750;
	--pxc-muted:#5f6684; --pxc-lagon:#138a93; --pxc-gold:#e8a93a; --pxc-ok:#2f8f5b; --pxc-f-body:"Quicksand", sans-serif;
	--pxc-r:20px; --pxc-gap:28px;
	--pxc-shadow:0 1px 2px rgba(7,21,85,.05), 0 10px 28px -14px rgba(7,21,85,.22);
	--pxc-shadow-h:0 2px 4px rgba(7,21,85,.06), 0 22px 40px -18px rgba(7,21,85,.32);
	display:block; font-family:var(--pxc-f-body); font-size:16px; line-height:1.6; font-weight:500; color:var(--pxc-ink); text-align:left;
}
.pxc *, .pxc *::before, .pxc *::after{ box-sizing:border-box; }
.pxc ul.pxc__list{ list-style:none; margin:0; padding:0; display:grid; gap:var(--pxc-gap); }
.pxc li.pxc__item{ display:flex; min-width:0; margin:0; padding:0; list-style:none; }
.pxc li.pxc__item::before{ content:none; }
.pxc a{ text-decoration:none; box-shadow:none; }
.pxc .pixan-svg-icon{ width:15px; height:15px; flex:none; }

/* ---------- Carte : un seul gabarit pour toutes les présentations ---------- */
.pxc .pxc-card{ position:relative; display:flex; flex-direction:column; width:100%; min-width:0; margin:0; background:#fff; border-radius:var(--pxc-r); overflow:hidden; box-shadow:var(--pxc-shadow); transition:box-shadow .25s, transform .25s; }
.pxc .pxc-card:hover{ box-shadow:var(--pxc-shadow-h); transform:translateY(-3px); }
.pxc .pxc-card__media{ position:relative; aspect-ratio:16/10.5; overflow:hidden; background:#dfe6ef; }
.pxc .pxc-card__img{ display:block; width:100%; height:100%; max-width:none; margin:0; object-fit:cover; transition:transform .6s; }
.pxc .pxc-card:hover .pxc-card__img{ transform:scale(1.04); }
.pxc .pxc-card__media::after{ content:""; position:absolute; inset:auto 0 0 0; height:45%; background:linear-gradient(0deg, rgba(7,21,85,.42), rgba(7,21,85,0)); pointer-events:none; }
.pxc .pxc-kick{ position:absolute; z-index:2; left:14px; bottom:14px; max-width:calc(100% - 28px); display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:99px; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.35); color:#fff; font-size:12.5px; font-weight:600; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.pxc .pxc-kick--private{ background:rgba(5,15,66,.74); border-color:rgba(242,167,119,.5); }
.pxc .pxc-kick--private .pixan-svg-icon{ width:13px; height:13px; color:var(--pxc-terra-soft); }
.pxc .pxc-badge{ position:absolute; z-index:2; top:14px; right:14px; display:inline-flex; align-items:center; gap:6px; height:28px; max-width:calc(100% - 28px); padding:0 11px 0 5px; border-radius:99px; background:#fff; color:var(--pxc-navy); font-size:12px; font-weight:700; letter-spacing:.02em; line-height:1; box-shadow:0 6px 14px -6px rgba(7,21,85,.45); }
.pxc .pxc-badge__tx{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pxc .pxc-badge__ic{ flex:none; width:20px; height:20px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--pxc-terra); }
.pxc .pxc-badge__ic .pixan-svg-icon{ width:12px; height:12px; stroke-width:2.2; }
.pxc .pxc-badge--terra .pxc-badge__ic .pixan-svg-icon--etoile{ fill:#fff; }
.pxc .pxc-badge--lagon .pxc-badge__ic{ background:var(--pxc-lagon); }
.pxc .pxc-badge--jungle .pxc-badge__ic{ background:#3f7f52; }
.pxc .pxc-badge--soleil .pxc-badge__ic{ background:#d99a1e; }
.pxc .pxc-badge--navy .pxc-badge__ic{ background:var(--pxc-navy); }
.pxc .pxc-card__body{ display:flex; flex-direction:column; flex:1; padding:20px 22px; }
.pxc h3.pxc-card__title{ margin:0; padding:0; font-family:var(--pxc-f-body); font-size:19px; font-weight:700; line-height:1.3; letter-spacing:0; text-transform:none; color:var(--pxc-navy); }
.pxc a.pxc-card__link, .pxc a.pxc-card__link:hover{ color:var(--pxc-navy); }
.pxc .pxc-card__link::after{ content:""; position:absolute; inset:0; z-index:3; border-radius:inherit; }
.pxc .pxc-card__link:focus-visible{ outline:none; }
.pxc .pxc-card:has(.pxc-card__link:focus-visible){ outline:2px solid var(--pxc-terra); outline-offset:3px; }
.pxc .pxc-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 7px; margin-top:10px; font-size:13.5px; font-weight:600; line-height:1.4; color:var(--pxc-muted); }
.pxc .pxc-meta > span{ display:inline-flex; align-items:center; gap:5px; }
.pxc .pxc-meta .pixan-svg-icon{ width:14px; height:14px; color:#9aa0bd; }
.pxc .pxc-dot{ color:#c9c4d6; }
.pxc .pxc-rt b{ color:var(--pxc-navy); font-weight:700; }
.pxc .pxc-meta .pxc-rt__ic{ fill:var(--pxc-gold); stroke:var(--pxc-gold); color:var(--pxc-gold); }
.pxc .pxc-fr{ display:inline-flex; align-items:center; gap:4px; align-self:flex-start; margin-top:12px; white-space:nowrap; font-size:12.5px; font-weight:700; line-height:1.2; color:var(--pxc-ok); }
.pxc .pxc-fr__ck{ width:13px; height:13px; flex:none; fill:none; stroke:currentColor; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }
.pxc .pxc-fr__fl{ width:15px; height:10px; margin-left:3px; border-radius:2px; box-shadow:0 0 0 1px rgba(7,21,85,.1); flex:none; }
.pxc .pxc-card__foot{ display:flex; align-items:flex-end; justify-content:space-between; gap:10px; margin-top:auto; padding-top:16px; }
.pxc .pxc-fr + .pxc-card__foot{ margin-top:16px; border-top:1px solid var(--pxc-line); }
.pxc .pxc-private-note{ margin:0; font-size:13px; font-weight:600; line-height:1.35; color:var(--pxc-muted); }
.pxc .pxc-go{ flex:none; margin-left:auto; display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:0 16px; border-radius:99px; background:var(--pxc-cream); color:var(--pxc-navy); font-size:14px; font-weight:700; line-height:1; transition:background .2s, color .2s; }
.pxc .pxc-go .pixan-svg-icon{ width:15px; height:15px; stroke-width:2.3; }
.pxc .pxc-card:hover .pxc-go{ background:var(--pxc-terra); color:#fff; }

/* Bloc prix Tourmaster / Riviera : balisage d'origine conservé (conversion CAD), présentation seulement */
.pxc .pxc-price{ min-width:0; }
.pxc .pxc-price .tourmaster-tour-price-wrap{ float:none !important; margin:0 !important; padding:0 !important; text-align:left !important; line-height:1.25; }
.pxc .pxc-price .tourmaster-tour-price{ display:block; margin:0; }
.pxc .pxc-price .tourmaster-head{ display:block; margin:0 !important; font-size:12px !important; font-weight:600; line-height:1.3; color:var(--pxc-muted) !important; text-transform:none !important; letter-spacing:0 !important; }
.pxc .pxc-price .tourmaster-tail{ display:block; margin:0 !important; font-family:var(--pxc-f-body); font-size:21px !important; font-weight:700 !important; line-height:1.25; color:var(--pxc-navy) !important; white-space:nowrap; }
.pxc .pxc-price .tourmaster-tour-discount-price{ display:block; margin:0; font-size:13px; color:var(--pxc-muted); text-decoration:line-through; }
.pxc .pxc-price .riviera-euro-list-price{ margin-top:2px; font-size:12.5px !important; font-weight:600; line-height:1.25 !important; color:var(--pxc-muted); }

/* ---------- Grille standard (3) ---------- */
.pxc--grid3 ul.pxc__list{ grid-template-columns:repeat(3, minmax(0,1fr)); }
@container pxc (max-width:900px){ .pxc--grid3 ul.pxc__list{ grid-template-columns:repeat(2, minmax(0,1fr)); --pxc-gap:22px; } }
@container pxc (max-width:560px){ .pxc--grid3 ul.pxc__list{ grid-template-columns:minmax(0,1fr); --pxc-gap:18px; } }

/* ---------- Grille 2 colonnes ---------- */
.pxc--grid2 ul.pxc__list{ grid-template-columns:repeat(2, minmax(0,1fr)); --pxc-gap:32px; }
.pxc--grid2 .pxc-card__media{ aspect-ratio:16/9; }
.pxc--grid2 .pxc-card__body{ padding:24px 28px; }
.pxc--grid2 h3.pxc-card__title{ font-size:23px; line-height:1.25; }
.pxc--grid2 .pxc-meta{ font-size:14.5px; }
.pxc--grid2 .pxc-price .tourmaster-tail{ font-size:24px !important; }
.pxc--grid2 .pxc-go{ min-height:48px; padding:0 22px; font-size:15px; }
@container pxc (max-width:640px){
	.pxc--grid2 ul.pxc__list{ grid-template-columns:minmax(0,1fr); --pxc-gap:18px; }
	.pxc--grid2 .pxc-card__body{ padding:20px 22px; }
	.pxc--grid2 h3.pxc-card__title{ font-size:20px; }
	.pxc--grid2 .pxc-price .tourmaster-tail{ font-size:21px !important; }
}

/* ---------- Version compacte (badge, bandeau, jours, guide masqués faute de place) ---------- */
.pxc--compact ul.pxc__list{ grid-template-columns:repeat(3, minmax(0,1fr)); --pxc-gap:18px; }
.pxc--compact .pxc-card{ flex-direction:row; border-radius:16px; }
.pxc--compact .pxc-card__media{ flex:0 0 38%; aspect-ratio:auto; min-height:148px; }
.pxc--compact .pxc-card__media::after, .pxc--compact .pxc-badge, .pxc--compact .pxc-kick:not(.pxc-kick--private), .pxc.pxc--compact .pxc-meta > .pxc-days, .pxc.pxc--compact .pxc-meta > .pxc-dur + .pxc-dot, .pxc--compact .pxc-fr, .pxc--compact .pxc-price .tourmaster-head, .pxc--compact .pxc-private-note{ display:none; }
.pxc--compact .pxc-kick--private{ left:8px; bottom:8px; padding:3px 8px; font-size:11px; }
.pxc--compact .pxc-card__body{ padding:14px 14px 14px 16px; }
.pxc--compact h3.pxc-card__title{ font-size:15.5px; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pxc--compact .pxc-meta{ margin-top:6px; font-size:12.5px; }
.pxc--compact .pxc-rt__n{ display:none; }
.pxc--compact .pxc-card__foot{ padding-top:10px; align-items:center; }
.pxc--compact .pxc-price .tourmaster-tail{ font-size:17px !important; }
.pxc--compact .pxc-price .riviera-euro-list-price{ font-size:11.5px !important; }
.pxc--compact .pxc-go{ min-height:40px; min-width:40px; padding:0; justify-content:center; font-size:0; gap:0; }
.pxc--compact .pxc-go .pixan-svg-icon{ width:16px; height:16px; }
@container pxc (max-width:960px){ .pxc--compact ul.pxc__list{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@container pxc (max-width:600px){ .pxc--compact ul.pxc__list{ grid-template-columns:minmax(0,1fr); --pxc-gap:12px; } .pxc--compact .pxc-card__media{ flex-basis:34%; min-height:128px; } }

/* ---------- Carrousel : défilement natif (scroll-snap) ----------
   La zone de défilement coupe tout ce qui dépasse, y compris verticalement : elle est agrandie de la taille de l'ombre
   (survol : ≈ 44 px en bas, 22 px sur les côtés, 3 px de soulèvement) et compensée par des marges négatives, pour que les
   cartes restent à leur place et que l'ombre soit entière. Côtés : 20 px = marge intérieure des éléments GoodLayers. */
.pxc--carousel ul.pxc__list{
	--pxc-sh-x:20px; --pxc-sh-top:12px; --pxc-sh-bottom:48px;
	display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain;
	padding:var(--pxc-sh-top) var(--pxc-sh-x) var(--pxc-sh-bottom);
	margin:calc(-1 * var(--pxc-sh-top)) calc(-1 * var(--pxc-sh-x)) calc(18px - var(--pxc-sh-bottom));
	scroll-padding-inline:var(--pxc-sh-x);
}
.pxc--carousel ul.pxc__list::-webkit-scrollbar{ display:none; }
.pxc--carousel ul.pxc__list:focus-visible{ outline:2px solid var(--pxc-terra); outline-offset:-4px; border-radius:12px; }
.pxc--carousel li.pxc__item{ flex:0 0 calc((100% - 2 * 24px) / 3.2); scroll-snap-align:start; }
.pxc .pxc__nav{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:8px; }
.pxc .pxc__swipe{ display:none; align-items:center; gap:7px; font-size:13px; font-weight:600; color:var(--pxc-muted); }
.pxc .pxc__swipe .pixan-svg-icon{ width:16px; height:16px; color:var(--pxc-terra); }
.pxc .pxc__arrows{ display:flex; gap:10px; margin-left:auto; }
.pxc button.pxc__arrow{ width:48px; height:48px; min-width:0; margin:0; padding:0; border-radius:50%; border:1.5px solid #d9dcea; background:#fff; color:var(--pxc-navy); display:grid; place-items:center; cursor:pointer; box-shadow:none; line-height:1; transition:background .2s, border-color .2s, color .2s, opacity .2s; }
.pxc button.pxc__arrow:hover:not(:disabled){ background:var(--pxc-terra); border-color:var(--pxc-terra); color:#fff; }
.pxc button.pxc__arrow:disabled{ opacity:.35; cursor:default; }
.pxc button.pxc__arrow .pixan-svg-icon{ width:19px; height:19px; stroke-width:2.2; }
.pxc button.pxc__arrow[data-pxc-prev] .pixan-svg-icon{ transform:scaleX(-1); }
@container pxc (max-width:900px){ .pxc--carousel li.pxc__item{ flex-basis:calc((100% - 20px) / 2.15); } .pxc--carousel ul.pxc__list{ gap:20px; } }
@container pxc (max-width:600px){
	.pxc--carousel ul.pxc__list{ --pxc-sh-x:2px; gap:14px; }
	.pxc--carousel li.pxc__item{ flex-basis:84%; }
	.pxc .pxc__arrows{ display:none; }
	.pxc .pxc__swipe{ display:inline-flex; }
}

@media (prefers-reduced-motion:reduce){
	.pxc .pxc-card, .pxc .pxc-card__img{ transition:none; }
	.pxc .pxc-card:hover, .pxc .pxc-card:hover .pxc-card__img{ transform:none; }
}
