/* règles reprises de front-default-home (matchs-teaser) */
.matchs-teaser .card{background-size:100%!important;border-bottom-right-radius:20px;box-shadow:3px 3px 15px 0 rgba(0,0,0,.05)}
.matchs-teaser .card:before{content:"";height:285px;left:0;position:absolute;top:0;width:100%}
.matchs-teaser .card.red:before{background-color:#003d73}
.matchs-teaser .card.red .date{border:1px solid #fff}
.matchs-teaser .card.white:before{background-color:#fff}
.matchs-teaser .card.white .date{border:1px solid #005dab}
.matchs-teaser .card .card-body{z-index:10}
.matchs-teaser .card .day{font-size:15px}
.matchs-teaser .card .date{border-radius:12px 0 12px 12px;font-size:16px}
.matchs-teaser .card .logos img{max-height:125px;max-width:105px}
.matchs-teaser .card .team-name{width:100%}
.matchs-teaser .card .scores,.matchs-teaser .card .team-name{font-size:calc(1.475rem + 2.7vw);line-height:.9}
@media (min-width:1200px){.matchs-teaser .card .scores,.matchs-teaser .card .team-name{font-size:3.5rem}}
.matchs-teaser .no-match-alert{background-size:cover!important;background:url(../build/front/default/images/match-red-card.71efb378.png) no-repeat;border-bottom-right-radius:20px;border-top:3px solid #c9962a}

/* ==== FC Prangins — surcouche de thème (généré par build_fcprangins.py) ==== */
:root { --fcp-blue:#005dab; --fcp-blue-dark:#003d73; --fcp-blue-deep:#00234a; --fcp-blue-light:#2ea3f2; }
#main-navigation-logo.fcp-logo { width:auto; height:88px; max-height:88px; object-fit:contain; transition:height .3s; }
.menu-container.sticky #main-navigation-logo.fcp-logo, .menu-container.is-sticky #main-navigation-logo.fcp-logo { height:56px; }
@media (max-width: 991px) { #main-navigation-logo.fcp-logo { height:56px; } }
#footer { background: linear-gradient(160deg, #00234a 0%, #003d73 60%, #005dab 100%) !important; }
#footer .strip-trait { background: linear-gradient(90deg, #005dab, #2ea3f2) !important; height:6px; }
#footer-navigation-logo { width:auto; height:120px; object-fit:contain; }
.zone-bg-red-marble, .zone-bg-blue { background: radial-gradient(circle at 20% 20%, #005dab 0%, #003d73 55%, #00234a 100%) !important; }
.zone-bg-points { background: #00234a url(fcp/bg-points.png) repeat !important; }
.layout-zone.zone-bg-points .show-more, .layout-zone.zone-bg-points .show-more .link { color:#fff !important; }
.layout-zone.fcp-light { background:#f3f5f9 !important; }
#scroll-top-btn { background:#005dab !important; border-color:#fff !important; }
#footer .text-muted { color:rgba(255,255,255,.65) !important; }
.fcp-join-title { font-size:2.1rem !important; line-height:1 !important; }
#main-navigation-nav-image { background: #00234a url(fcp/nav.jpg) no-repeat center center / cover !important; }
.partners-teaser .partner-item img { max-height:70px; width:auto; max-width:180px; object-fit:contain; }
.partners-teaser .mains-list .partner-item a { background:#fff; display:flex; align-items:center; justify-content:center; width:170px; height:80px; padding:10px 14px; border-radius:4px; }
.partners-teaser .mains-list .partner-item img { max-height:60px; max-width:140px; }
.fcp-sponsors-grid .sponsor { background:#fff; border:1px solid #e6e9ef; height:140px; display:flex; align-items:center; justify-content:center; padding:1.25rem; transition:box-shadow .3s, transform .3s; }
.fcp-sponsors-grid .sponsor:hover { box-shadow:0 10px 30px rgba(0,35,74,.12); transform:translateY(-3px); }
.fcp-sponsors-grid .sponsor img { max-height:100%; max-width:100%; object-fit:contain; }
.members-list .hexagon-wrapper img { object-fit:cover; }
.members-list .member.fcp-team .hexagon-wrapper img { object-fit:contain !important; background:#fff; padding:15% 12% !important; }
.fcp-team .age { text-transform:none !important; }
.fcp-team .reprise { color:#005dab; font-size:.85rem; }
.fcp-doc { background:#fff; border-left:4px solid #005dab; padding:1.25rem 1.5rem; height:100%; display:flex; flex-direction:column; transition:box-shadow .3s; }
.fcp-doc:hover { box-shadow:0 10px 30px rgba(0,35,74,.12); }
.fcp-doc .fcp-doc-title { display:block; font-family:Montserrat, sans-serif; }
.fcp-doc .fcp-doc-title { font-size:1.15rem !important; line-height:1.3 !important; text-transform:uppercase; font-weight:800; color:#00234a; margin-bottom:.75rem; }
.fcp-news-grid .card-default { height:100%; }
.fcp-news-grid .card-header img { width:100%; height:300px; object-fit:cover; }
.card-default .card-header img, .teaser-news-container .card-header img { object-fit:cover; }
.card-large .left img { object-fit:cover; }
.carousel-item > picture img { object-fit:cover; width:100%; }
.fcp-contact-card { background:#fff; padding:2rem; height:100%; border-top:4px solid #005dab; }
.fcp-contact-card a { color:#005dab; font-weight:700; }
.title-header-block .media-content img, .title-header-news .media-content img { object-fit:cover; }
@media (max-width: 767px) {
  .matchs-teaser .splide__slide { padding-left:0 !important; padding-right:0 !important; }
  .matchs-teaser .card { margin-right:0 !important; }
}
.splide.is-draggable .splide__track, .splide--draggable .splide__track { cursor:grab; }
.splide.is-draggable .splide__track:active, .splide--draggable .splide__track:active { cursor:grabbing; }
/* classement : Annecy force le blanc sur les 2 premières lignes (toujours vertes chez eux) */
.ranking .clubs li.club.bg-white .rank, .ranking .clubs li.club.bg-white .name,
.ranking .clubs li.club.bg-white .scores span { color:#1a1a1a !important; }
.fcp-ecusson { object-fit:contain !important; flex:0 0 auto; }
.matchs-teaser .card .logos .fcp-ecusson { width:110px !important; height:110px !important; max-width:none !important; max-height:none !important; }
.matchs-teaser .card .logos { gap:1.25rem !important; }
@media (max-width: 767px) { .matchs-teaser .card .logos .fcp-ecusson { width:96px !important; height:96px !important; } }
.ranking .logo-wrap .fcp-ecusson { width:34px !important; height:34px !important; }
.fcp-calendar .fcp-ecusson { width:32px !important; height:32px !important; }
/* ---- hero : sous-titre visible sur mobile (masqué par le CSS Annecy) ---- */
@media (max-width: 991px) {
  #zone-5 .carousel-caption .caption-title + .introduction { display:-webkit-box !important; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; font-size:.95rem !important; line-height:1.35 !important; font-weight:500; margin:0 0 .25rem !important;
    max-width:34rem; text-shadow:0 1px 8px rgba(0,0,0,.55); }
  #zone-5 .carousel-caption .caption-title { margin-bottom:.6rem !important; }
  /* « À suivre » : 2 cartes à 50 % (Annecy : 2 × 52 % → la 2e sortait de l'écran) */
  #carousel-home-slider .carousel-indicators.text { width:100% !important; }
  #carousel-home-slider .carousel-indicators.text li { flex:1 1 0 !important; min-width:0 !important; max-width:50% !important; }
  #carousel-home-slider .carousel-indicators.text li .card-large { min-width:0; }
  #carousel-home-slider .carousel-indicators.text li .right { min-width:0; padding-left:0 !important; padding-right:.75rem; }
  #carousel-home-slider .carousel-indicators.text li + li .right { padding-left:.75rem !important; }
  #carousel-home-slider .carousel-indicators.text li .title { font-size:14px !important; line-height:1.2 !important;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
  #zone-5 .carousel-caption .links { margin-top:.75rem !important; }
}
/* hero → news : pas de bande vide sous le bouton mobile « Toutes les actus » */
#zone-5 .show-more-news.btn { margin-bottom:0 !important; border-radius:0; }
/* ---- fluidité mobile ---- */
/* le navigateur gère le défilement vertical même doigt posé sur un carrousel ;
   seul le glissement horizontal est confié au carrousel */
.splide__track, #carousel-home-slider { touch-action:pan-y pinch-zoom; }
.splide__list { will-change:transform; backface-visibility:hidden; }
.splide__slide img, .carousel-item img { -webkit-user-drag:none; user-select:none; }
.carousel-item { backface-visibility:hidden; }
html { -webkit-text-size-adjust:100%; }
@media (hover: none) {
  /* pas d'effets de survol coûteux sur écrans tactiles */
  .fcp-news-card:hover .card-default { transform:none; }
  .fcp-news-card:hover .card-header picture img { transform:none; }
  #main-navigation-logo.fcp-logo { transition:none; }
}
/* ---- effectif ---- */
.members-list .member.fcp-player .hexagon-wrapper svg { display:block; width:100%; height:100%; }
.fcp-player .lastname { font-size:1.05rem; overflow-wrap:anywhere; }
.fcp-player .age { text-transform:none !important; font-size:.85rem; }
@media (max-width: 767px) {
  /* Annecy passe la carte en ligne (image | texte) : trop étroit à 2 par ligne */
  .members-list .member.fcp-player { flex-direction:column !important; align-items:center !important; justify-content:flex-start !important; padding:0 .25rem !important; }
  .members-list .member.fcp-player > div:first-child { padding:.75rem 0 .5rem !important; width:100%; }
  .members-list .member.fcp-player .info-container { width:100% !important; flex-direction:column !important; justify-content:center !important;
    padding:0 .5rem .9rem !important; text-align:center !important; }
  .members-list .member.fcp-player .hexagon-wrapper { width:96px !important; height:110px !important; flex:0 0 auto; }
  .fcp-player .lastname { font-size:.82rem; line-height:1.15 !important; }
  .fcp-player .age { font-size:.75rem; margin-top:.35rem !important; }
}
/* ---- calendrier : tableau d'affichage ---- */
.fcp-fixture-head { display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline; gap:.25rem .75rem; margin-bottom:.6rem; text-align:center; }
.fcp-fixture-head small { font-size:.8rem; }
.fcp-fixture-body { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:.75rem; }
.fcp-side { display:flex; align-items:center; gap:.5rem; font-weight:700; text-transform:uppercase; min-width:0; }
.fcp-side-home { justify-content:flex-end; text-align:right; }
.fcp-side-away { justify-content:flex-start; text-align:left; }
.fcp-team-name { line-height:1.15; overflow-wrap:anywhere; }
.fcp-center { display:flex; flex-direction:column; align-items:center; min-width:5.5rem; text-align:center; }
.fcp-score { font:800 1.6rem/1 Montserrat,sans-serif; white-space:nowrap; }
.fcp-result { margin-top:.3rem; display:flex; align-items:center; gap:.35rem; }
.fcp-result .badge { margin:0 !important; }
.fcp-hour { font-size:1.05rem; white-space:nowrap; }
.fcp-na { line-height:1.15; }
@media (max-width: 767px) {
  .fcp-fixture { padding:.85rem .6rem !important; }
  .fcp-fixture-body { gap:.4rem; }
  .fcp-side { font-size:.82rem; gap:.35rem; }
  .fcp-calendar .fcp-ecusson { width:26px !important; height:26px !important; }
  .fcp-center { min-width:4.2rem; }
  .fcp-score { font-size:1.35rem; }
  .ranking .clubs .name { font-size:.78rem; }
}
/* ---- cartes d'actualité ---- */
.fcp-news-slide { padding:0 .75rem; }
.fcp-news-card .card-default { border-radius:10px; overflow:hidden; box-shadow:0 12px 30px rgba(0,20,45,.25); transition:transform .35s, box-shadow .35s; }
.fcp-news-card:hover .card-default { transform:translateY(-4px); box-shadow:0 18px 40px rgba(0,20,45,.35); }
.fcp-news-card .card.card-default .card-header picture img { width:100%; height:auto !important; min-height:0 !important; max-height:none !important;
  aspect-ratio:4 / 3; object-fit:cover; transition:transform .6s; }
.fcp-news-card:hover .card-header picture img { transform:scale(1.05); }
.fcp-news-card .card-body { background:linear-gradient(0deg, rgba(0,20,45,.95) 0%, rgba(0,20,45,.75) 45%, rgba(0,20,45,0) 100%); padding-top:5rem !important; }
.fcp-news-card .card-body .title { font-size:1.25rem !important; line-height:1.2 !important; }
.fcp-news-card .card-body .intro { font-weight:500; font-size:.85rem; line-height:1.35; color:rgba(255,255,255,.85);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.fcp-news-card .badge { top:1rem; left:1rem; z-index:2; border-radius:4px; padding:.45rem .7rem; letter-spacing:.04em; }
@media (max-width: 767px) {
  .fcp-news-slide { padding:0 .25rem; }
  .fcp-news-card .card.card-default .card-header picture img { aspect-ratio:4 / 5; }
  .fcp-news-card .card-body .title { font-size:1.45rem !important; }
  .fcp-news-card .card-body .intro { font-size:.95rem; }
}
.splide__pagination__page.is-active { background:#005dab !important; }
#zone-newscasts-teaser .splide__pagination, .matchs-teaser .splide__pagination { position:relative !important; bottom:auto !important; margin-top:1.25rem; }
#zone-newscasts-teaser .splide__pagination__page { background:rgba(255,255,255,.45); }
#zone-newscasts-teaser .splide__pagination__page.is-active { background:#fff !important; }
.fcp-team-panel.is-hidden { height:0; overflow:hidden; visibility:hidden; }
.matchs-teaser .card { min-height:100%; }
@media (max-width: 991px) {
  #main-navigation-nav { height:100dvh !important; }
  #main-navigation-nav.open .list, #main-navigation-nav .inner .list { max-height:calc(100dvh - 7.5rem) !important; overflow-y:auto !important; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; padding-bottom:3rem; }
  #main-navigation-nav .menu-second-level { max-height:calc(100dvh - 7.5rem); overflow-y:auto; }
}
.fcp-cta-band { background: radial-gradient(circle at 80% 10%, #005dab 0%, #003d73 60%, #00234a 100%); }
