/* Direction artistique commune des hauts de pages publics. */
:root{--soc-page-ink:#25272D;--soc-page-red:#9E0B12;--soc-page-accent:#e33d46;--soc-page-cream:#f4f0ea;--soc-page-pad:max(28px,calc((100vw - 1240px)/2))}

/* Un seul cadre de navigation sur toutes les pages intérieures. */
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) #masthead,
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) .site-header,
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) .ast-primary-header-bar,
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) .main-header-bar,
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) #ast-desktop-header,
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) #ast-mobile-header{background:var(--soc-page-ink)!important;background-color:var(--soc-page-ink)!important;border-bottom:1px solid var(--soc-page-red)!important}
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) .ast-builder-grid-row-container,
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) .site-primary-header-wrap,
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) .ast-main-header-wrap{background:var(--soc-page-ink)!important;background-color:var(--soc-page-ink)!important}
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) .main-header-menu>.menu-item>.menu-link,
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) .ast-builder-menu-1>.menu-item>.menu-link,
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) .site-header .ast-site-header-cart a,
body:not(:has(.soc-home-hero)):not(:has(.soc-club-hero)) .site-header .ast-icon{color:#fff!important}

/* Même rythme, même typographie et même hauteur de scène. */
.soc-club-hero,.soc-teams-hero,.soc-partners-hero,.soc-contact-hero{min-height:610px!important}
.soc-club-hero,.soc-partners-hero,.soc-contact-hero{padding-top:82px!important;padding-bottom:82px!important}
.soc-teams-hero-copy{padding-top:82px!important;padding-bottom:82px!important}
.soc-club-hero h1,.soc-teams-hero h1,.soc-partners-hero h1,.soc-contact-hero h1{font-size:clamp(62px,7.4vw,104px)!important;line-height:.82!important;letter-spacing:-.06em!important;margin-top:19px!important;margin-bottom:25px!important}
.soc-club-hero-copy>span,.soc-teams-hero-copy>span,.soc-partners-hero>div>span,.soc-contact-hero>div>span{display:block;color:var(--soc-page-accent)!important;font-size:10px!important;font-weight:900!important;letter-spacing:.18em!important;text-transform:uppercase}
.soc-club-hero p,.soc-teams-hero-copy p,.soc-partners-hero p,.soc-contact-hero>div>p{font-size:16px!important;line-height:1.68!important}
.soc-club-hero-copy a,.soc-partners-hero a{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0 19px!important}

/* Agenda : même scène anthracite, le calendrier reste blanc et lisible. */
body:has(.soc-calendar) .soc-calendar{padding-top:82px!important;padding-bottom:82px!important;background:var(--soc-page-cream)!important;color:var(--soc-page-ink);gap:64px}
body:has(.soc-calendar) .soc-calendar-intro{align-self:start;padding-top:18px!important}
body:has(.soc-calendar) .soc-calendar-intro>span{color:var(--soc-page-accent)!important}
body:has(.soc-calendar) .soc-calendar-intro h1{max-width:520px;color:var(--soc-page-ink)!important;font-size:clamp(62px,7.4vw,104px)!important;line-height:.82!important;letter-spacing:-.06em!important}
body:has(.soc-calendar) .soc-calendar-intro h1 em{color:var(--soc-page-accent)!important}
body:has(.soc-calendar) .soc-calendar-intro>p{color:#74747a!important;font-size:16px!important;line-height:1.68!important}
body:has(.soc-calendar) .soc-calendar-intro .soc-filter{color:var(--soc-page-ink)}
body:has(.soc-calendar) .soc-calendar-app{box-shadow:0 24px 60px rgba(0,0,0,.24)!important}

/* Boutique WooCommerce : transforme le titre isolé en bandeau de page. */
body.woocommerce-shop .site-main>.woocommerce-products-header,
body.post-type-archive-product .site-main>.woocommerce-products-header,
body.woocommerce-shop .woocommerce-products-header,
body.post-type-archive-product .woocommerce-products-header{position:relative;margin:0!important;padding:72px var(--soc-page-pad) 58px!important;background:var(--soc-page-ink);color:#fff;text-align:left!important;border-bottom:1px solid var(--soc-page-red)}
body.woocommerce-shop .woocommerce-products-header:before,
body.post-type-archive-product .woocommerce-products-header:before{content:'PORTER NOS COULEURS';display:block;margin-bottom:15px;color:var(--soc-page-accent);font-size:10px;font-weight:900;letter-spacing:.18em}
body.woocommerce-shop .woocommerce-products-header__title,
body.post-type-archive-product .woocommerce-products-header__title{margin:0!important;color:#fff!important;font-size:clamp(56px,6.5vw,88px)!important;line-height:.9!important;letter-spacing:-.055em!important;text-align:left!important}
body.woocommerce-shop .woocommerce-products-header__title:after,
body.post-type-archive-product .woocommerce-products-header__title:after{content:'Équipements, textile et accessoires aux couleurs du club.';display:block;max-width:580px;margin-top:22px;color:#c8c9cd;font-family:Inter,Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.6;letter-spacing:0}

/* Footer sombre : contraste identique sur toutes les pages. */
.site-footer,.site-footer .site-footer-section,.site-footer .ast-builder-grid-row-container,.site-footer .site-primary-footer-wrap,.site-footer .site-below-footer-wrap,footer.site-footer{color:#fff!important}
.site-footer h1,.site-footer h2,.site-footer h3,.site-footer h4,.site-footer h5,.site-footer h6,.site-footer p,.site-footer li,.site-footer span,.site-footer strong,.site-footer small,.site-footer a,.site-footer .widget-title,.site-footer .menu-link,.ast-small-footer,.ast-small-footer a{color:#fff!important}
.site-footer .ast-builder-social-element,.site-footer .ast-builder-social-element a,.site-footer .ast-builder-social-element svg,.site-footer .ast-builder-social-element path,.site-footer .wp-social-link,.site-footer .wp-social-link a,.site-footer .wp-social-link svg{color:#fff!important;fill:#fff!important;stroke:#fff!important}
.site-footer a:hover,.ast-small-footer a:hover,.site-footer .ast-builder-social-element:hover,.site-footer .ast-builder-social-element:hover svg,.site-footer .ast-builder-social-element:hover path,.site-footer .wp-social-link:hover svg{color:var(--soc-page-accent)!important;fill:var(--soc-page-accent)!important;stroke:var(--soc-page-accent)!important}

@media(max-width:900px){
  .soc-club-hero,.soc-teams-hero,.soc-partners-hero,.soc-contact-hero{min-height:auto!important}
  .soc-club-hero,.soc-partners-hero,.soc-contact-hero{padding-top:68px!important;padding-bottom:68px!important}
  .soc-teams-hero-copy{padding-top:68px!important;padding-bottom:62px!important}
  body:has(.soc-calendar) .soc-calendar{padding-top:68px!important;padding-bottom:68px!important;gap:42px}
}
@media(max-width:600px){
  .soc-club-hero,.soc-partners-hero,.soc-contact-hero{padding-top:58px!important;padding-bottom:58px!important}
  .soc-teams-hero-copy{padding-top:58px!important;padding-bottom:52px!important}
  .soc-club-hero h1,.soc-teams-hero h1,.soc-partners-hero h1,.soc-contact-hero h1,body:has(.soc-calendar) .soc-calendar-intro h1{font-size:54px!important;line-height:.86!important}
  body:has(.soc-calendar) .soc-calendar{padding:56px 20px!important}
  body.woocommerce-shop .site-main>.woocommerce-products-header,body.post-type-archive-product .site-main>.woocommerce-products-header,body.woocommerce-shop .woocommerce-products-header,body.post-type-archive-product .woocommerce-products-header{padding:54px 22px 42px!important}
}

/* Navigation mobile Astra : bouton blanc et panneau sombre lisible.
   Astra peut rendre le menu en tiroir ou en liste deroulante selon la page. */
@media(max-width:921px){
  #ast-mobile-header .menu-toggle,
  #ast-mobile-header .main-header-menu-toggle,
  #ast-mobile-header .mobile-menu-toggle-icon,
  #ast-mobile-header .ast-mobile-menu-trigger-minimal{color:#fff!important;background:transparent!important;border-color:#ffffff80!important}
  #ast-mobile-header .menu-toggle svg,
  #ast-mobile-header .main-header-menu-toggle svg,
  #ast-mobile-header .mobile-menu-toggle-icon svg,
  #ast-mobile-header .menu-toggle svg path,
  #ast-mobile-header .main-header-menu-toggle svg path{color:#fff!important;fill:#fff!important;stroke:#fff!important}

  .ast-header-break-point .ast-mobile-header-content,
  .ast-header-break-point .ast-mobile-header-content .ast-builder-menu-mobile,
  .ast-header-break-point .ast-mobile-header-content .main-header-menu,
  #ast-mobile-popup .ast-mobile-popup-inner,
  #ast-mobile-popup .ast-mobile-popup-content,
  #ast-mobile-popup .ast-builder-menu-mobile,
  #ast-mobile-popup .main-header-menu{background:#25272D!important;background-color:#25272D!important;color:#fff!important}

  .ast-header-break-point .ast-mobile-header-content{position:absolute!important;z-index:99999!important;left:0!important;right:0!important;width:100%!important;margin:0!important;padding:18px 22px 26px!important;border-top:1px solid #9E0B12!important;box-shadow:0 22px 44px rgba(0,0,0,.34)!important}
  .ast-header-break-point .ast-mobile-header-content .main-header-menu{display:block!important;width:100%!important;margin:0!important;padding:0!important}
  .ast-header-break-point .ast-mobile-header-content .menu-item{display:block!important;width:100%!important;border-bottom:1px solid #ffffff1f!important}
  .ast-header-break-point .ast-mobile-header-content .menu-link,
  #ast-mobile-popup .menu-link{display:flex!important;align-items:center!important;min-height:54px!important;padding:12px 4px!important;color:#fff!important;background:transparent!important;font-weight:800!important;letter-spacing:.06em!important;text-transform:uppercase!important;opacity:1!important;visibility:visible!important}
  .ast-header-break-point .ast-mobile-header-content .menu-link:hover,
  .ast-header-break-point .ast-mobile-header-content .current-menu-item>.menu-link,
  #ast-mobile-popup .menu-link:hover,
  #ast-mobile-popup .current-menu-item>.menu-link{color:#e33d46!important;background:transparent!important}
  .ast-header-break-point .ast-mobile-header-content .ast-menu-toggle,
  #ast-mobile-popup .ast-menu-toggle{color:#fff!important;background:transparent!important}

  #ast-mobile-popup,.ast-mobile-popup-drawer{z-index:999999!important}
  #ast-mobile-popup .ast-mobile-popup-overlay{background:rgba(15,16,20,.78)!important}
  #ast-mobile-popup .ast-mobile-popup-inner{width:min(88vw,390px)!important;max-width:390px!important;min-height:100dvh!important;margin-left:auto!important;box-shadow:-24px 0 50px rgba(0,0,0,.35)!important}
  #ast-mobile-popup .ast-mobile-popup-content{min-height:100dvh!important;padding:92px 28px 40px!important}
  #ast-mobile-popup .ast-mobile-popup-header{position:absolute!important;z-index:2!important;top:20px!important;right:22px!important}
  #ast-mobile-popup #menu-toggle-close,
  #ast-mobile-popup .ast-mobile-popup-close{color:#fff!important;background:#9E0B12!important;border-radius:50%!important}
  #ast-mobile-popup #menu-toggle-close svg,
  #ast-mobile-popup .ast-mobile-popup-close svg,
  #ast-mobile-popup #menu-toggle-close svg path{fill:#fff!important;stroke:#fff!important;color:#fff!important}
}
/* Accueil : évite que la signature du hero passe derrière le logo
   lorsque la fenêtre est moins large. */
@media (min-width: 922px) and (max-width: 1400px) {
  body:has(.soc-home-hero) .soc-home-hero-content {
    transform: translateY(42px);
  }
}

/* Hauts de page Club, Equipes et Partenaires : une seule composition. */
body:has(.soc-club-hero) #masthead,
body:has(.soc-club-hero) .site-header,
body:has(.soc-club-hero) .ast-primary-header-bar,
body:has(.soc-club-hero) .main-header-bar,
body:has(.soc-club-hero) #ast-desktop-header,
body:has(.soc-club-hero) #ast-mobile-header,
body:has(.soc-club-hero) .ast-builder-grid-row-container,
body:has(.soc-club-hero) .site-primary-header-wrap,
body:has(.soc-club-hero) .ast-main-header-wrap{background:var(--soc-page-ink)!important;background-color:var(--soc-page-ink)!important}
body:has(.soc-club-hero) #masthead,
body:has(.soc-club-hero) .site-header,
body:has(.soc-club-hero) .ast-primary-header-bar{border-bottom:1px solid var(--soc-page-red)!important}

/* Le Club utilise désormais le même header séparé que Partenaires et Équipes. */
body:has(.soc-club-hero) #masthead,
body:has(.soc-club-hero) .site-header{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
}

.soc-club-hero,.soc-teams-hero,.soc-partners-hero{box-sizing:border-box;min-height:610px!important;padding:82px var(--soc-page-pad)!important;display:grid!important;grid-template-columns:minmax(0,1fr) 300px!important;align-items:center!important;gap:80px!important;overflow:hidden;color:#fff;background-color:var(--soc-page-ink)!important;border-bottom:1px solid var(--soc-page-red)}
.soc-club-hero{background-image:none!important;background:var(--soc-page-ink)!important}
.soc-club-hero-shade,.soc-club-jerseys{display:none!important}
.soc-club-hero-copy,.soc-teams-hero-copy{position:relative;z-index:2;width:100%;max-width:760px;padding:0!important}
.soc-club-hero-copy,.soc-teams-hero-copy,.soc-partners-hero>div{align-self:start;margin-top:36px}
.soc-teams-hero-copy{margin-top:82px!important}
.soc-club-hero-copy>div,.soc-partners-hero>div>div{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.soc-club-hero-copy a:first-child{border-color:var(--soc-page-red)!important;background:var(--soc-page-red)!important}
.soc-club-hero-copy a:last-child{border-color:#ffffff66!important;background:transparent!important}
.soc-teams-hero-copy>a{min-height:48px;padding:0 19px!important;margin-top:26px;display:inline-flex;align-items:center;align-self:flex-start;border:0!important;background:var(--soc-page-red);color:#fff!important}

/* Le compteur circulaire devient la signature commune des trois pages. */
.soc-club-hero>aside,.soc-partners-hero>aside,.soc-teams-hero-visual{position:relative!important;inset:auto!important;z-index:2;width:300px;height:300px;min-width:300px;min-height:300px;aspect-ratio:1;box-sizing:border-box;border:1px solid #ffffff2b;border-radius:50%;background:transparent!important;display:grid!important;place-content:center;text-align:center;overflow:hidden}
.soc-club-hero>aside:after,.soc-partners-hero>aside:after,.soc-teams-hero-visual:after{content:'';position:absolute;inset:24px;border:1px solid #ffffff18;border-radius:50%}
.soc-club-hero>aside{gap:0}
.soc-club-hero>aside strong,.soc-partners-hero>aside strong,.soc-teams-number strong{font-size:96px!important;line-height:.9!important;letter-spacing:-.07em}
.soc-club-hero>aside span,.soc-partners-hero>aside span,.soc-teams-number span{margin-top:13px;font-size:10px!important;font-weight:900;letter-spacing:.17em;line-height:1.5}
.soc-teams-number{position:relative!important;inset:auto!important;transform:none!important;width:auto!important;display:grid;justify-items:center;gap:0}
.soc-teams-hero-visual:before,.soc-teams-hero-visual .soc-court-lines{display:none!important}

@media(max-width:900px){
  .soc-club-hero,.soc-teams-hero,.soc-partners-hero{min-height:auto!important;padding:68px max(28px,calc((100vw - 760px)/2))!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important}
  .soc-club-hero>aside,.soc-partners-hero>aside,.soc-teams-hero-visual{display:none!important}
  .soc-club-hero-copy,.soc-partners-hero>div{margin-top:0}
  .soc-teams-hero-copy{margin-top:24px!important}
}
@media(max-width:600px){
  .soc-club-hero,.soc-teams-hero,.soc-partners-hero{padding:58px 24px!important}
  .soc-club-hero-copy>div,.soc-partners-hero>div>div{align-items:flex-start;flex-direction:column}
  .soc-teams-hero-copy{margin-top:16px!important}
}

/* Le Club reprend aussi exactement le rythme mobile des autres pages. */
@media(max-width:650px){
  body:has(.soc-club-hero) .soc-club-hero{min-height:auto!important;padding:58px 24px!important;align-items:center!important}
  body:has(.soc-club-hero) .soc-club-hero-copy{margin-top:0!important}
  body:has(.soc-club-hero) .soc-club-hero h1{margin-top:18px!important;font-size:54px!important;line-height:.86!important}
}
