/*
Theme Name: Abelao Theme
Template: twentytwentyfive
Text Domain: abelao-theme
Version: 0.1.0
*/

/* Breadcrumb styling */
.abelao-breadcrumb {
	font-family: var(--wp--preset--font-family--league-spartan);
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.8);
}

.abelao-breadcrumb a {
	color: var(--wp--preset--color--snow);
	text-decoration: none;
	transition: color 0.2s ease;
}

.abelao-breadcrumb a:hover {
	color: var(--wp--preset--color--snow);
}

/* Header utility classes */
.abelao-header-top {
    background-color: var(--wp--preset--color--snow);
    padding: var(--wp--preset--spacing--8) 0;
    margin-block-start: 0;
    margin-block-end: 0;
}

.abelao-header-main {
    background-color: var(--wp--preset--color--blue-grey);
    color: var(--wp--preset--color--snow);
    padding: var(--wp--preset--spacing--48) 0;
    margin-block-start: 0;
    transition: padding 0.3s ease;
}

/* Neutraliser le blockGap automatique TT5 sur le bandeau titre
   :where(.wp-site-blocks) > * applique margin-block-start: 1.2rem sur tous
   les enfants directs — on le remet à 0 sur notre bandeau et le header */
:where(.wp-site-blocks) > .abelao-header-wrapper,
:where(.wp-site-blocks) > .has-green-sauge-background-color,
:where(.wp-site-blocks) > .woocommerce {
    margin-block-start: 0;
}

/* Neutraliser le blockGap TT5 sur .ss-course-header :
   :root :where(.is-layout-constrained) > * applique margin-block-start: 1.2rem
   sur tous les enfants directs d'un conteneur contraint, dont le <main> produit */
:root :where(.is-layout-constrained) > .ss-course-header,
:root :where(.is-layout-constrained) > .wp-block-add-to-cart-form {
    margin-block-start: 0;
}


/* ═══════════════════════════════════════════════════════════
   HEADER RESPONSIVE — Navigation 2 menus
   Desktop : nav principale (ref:4) sur fond bleu-gris
             nav secondaire (ref:186) sur barre snow, alignée à droite
   Mobile  : barre snow masquée, menu principal avec burger uniquement
   ═══════════════════════════════════════════════════════════ */

/* --- Mobile (≤782px) --- */
@media (max-width: 782px) {

    /* Masquer la barre secondaire entière */
    .abelao-header-top {
        display: none !important;
    }

    /* Réduire le padding du header principal */
    .abelao-header-main {
        padding: var(--wp--preset--spacing--16) var(--wp--preset--spacing--16);
    }

    /* Taille du logo en mobile */
    .abelao-header-main .wp-block-site-logo img {
        width: auto;
        max-height: 48px;
    }

    /* Bouton burger : couleur et taille garanties */
    .abelao-header-main .wp-block-navigation__responsive-container-open {
        display: flex !important;
        color: var(--wp--preset--color--snow) !important;
        background: transparent !important;
        min-width: 44px;
        min-height: 44px;
        align-items: center;
        justify-content: center;
    }

    /* Icône burger SVG */
    .abelao-header-main .wp-block-navigation__responsive-container-open svg {
        fill: var(--wp--preset--color--snow);
        color: var(--wp--preset--color--snow);
    }

    /* Panneau overlay ouvert */
    .abelao-header-main .wp-block-navigation__responsive-container.is-menu-open {
        background-color: var(--wp--preset--color--night-blue) !important;
        color: var(--wp--preset--color--snow) !important;
    }

    /* Liens dans le panneau */
    .abelao-header-main .wp-block-navigation__responsive-container.is-menu-open a {
        color: var(--wp--preset--color--snow) !important;
    }

    /* Bouton fermeture (×) */
    .abelao-header-main .wp-block-navigation__responsive-container-close {
        color: var(--wp--preset--color--snow) !important;
    }
}

/* Footer : Index des cours */
.abelao-index-cours {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.abelao-index-cours__item {
    display: inline-block;
    padding: 8px 16px;
    border: 1px solid var(--wp--preset--color--snow);
    color: var(--wp--preset--color--snow);
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-size: 0.875rem;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.abelao-index-cours__item:hover {
    background-color: var(--wp--preset--color--snow);
    color: var(--wp--preset--color--night-blue);
}


/* ═══════════════════════════════════════════════════════════
   BOUTON PRIMAIRE — Style canonique Abelao
   Appliqué à tous les boutons d'action principaux du site
   ═══════════════════════════════════════════════════════════ */

.abelao-btn-primary,
.course-card-vertical__btn-info,
.course-card-horizontal__btn-info,
.single-product .wc-block-components-product-button__button,
.single-product button.single_add_to_cart_button,
.single-product .wp-block-button__link,
.summer-school-enrollment .single_add_to_cart_button,
.summer-school-enrollment .wc-block-components-product-button__button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button {
    background-color: var(--wp--preset--color--night-blue) !important;
    color: var(--wp--preset--color--snow) !important;
    font-family: var(--wp--preset--font-family--league-spartan) !important;
    font-weight: 700 !important;
    font-size: var(--wp--preset--font-size--base) !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    text-align: center !important;
    padding: 12px var(--wp--preset--spacing--48) !important;
    border-radius: 40px !important;
    border: none !important;
    transition: opacity 0.2s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: fit-content !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
}

.abelao-btn-primary:hover,
.course-card-vertical__btn-info:hover,
.course-card-horizontal__btn-info:hover,
.single-product .wc-block-components-product-button__button:hover,
.single-product button.single_add_to_cart_button:hover,
.single-product .wp-block-button__link:hover,
.summer-school-enrollment .single_add_to_cart_button:hover,
.summer-school-enrollment .wc-block-components-product-button__button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover {
    opacity: 0.9 !important;
    background-color: var(--wp--preset--color--night-blue) !important;
    color: var(--wp--preset--color--snow) !important;
}

/* Exception : les boutons de navigation FSE ne doivent pas hériter
   du style bouton primaire — reset explicite */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container a,
.wp-block-navigation__container a {
    background-color: transparent !important;
    border-radius: 0 !important;
    padding: unset !important;
    text-transform: none !important;
    font-family: inherit !important;
    width: auto !important;
}

/* === Course Card Vertical - Abelao Theme === */

.course-card-vertical {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    min-height: 600px;
    padding: var(--wp--preset--spacing--20);
    background-color: var(--wp--preset--color--green-sauge);
    border: 4px solid var(--wp--preset--color--night-blue);
    border-radius: 24px;
    box-sizing: border-box;
}

/* Alignement des sections */
.course-card-vertical__top {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

/* Image 1:1 de 120px */
.course-card-vertical__image-wrapper {
    width: 120px;
    height: 120px;
    margin: 16px auto;
    overflow: hidden;
    border-radius: 8px;
}

.course-card-vertical__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.course-card-vertical__image-placeholder {
    width: 100%;
    height: 100%;
    background-color: transparent;
}

/* Titre : League Spartan 32px Bold */
.course-card-vertical__title {
    /*font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;*/
    line-height: 1.15;
    color: var(--wp--preset--color--night-blue);
    text-align: center;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.course-card-vertical__level {
    font-weight: 400;
}

/* Labels & Enseignants : Libre Baskerville */
.course-card-vertical__section {
    text-align: center;
    /*margin-top: 10px;*/
}

/*.course-card-vertical__label {
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-weight: 400;
    font-size: 16px;
    color: var(--wp--preset--color--night-blue);
    margin-bottom: 4px;
} */

.course-card-vertical__teacher-name,
.course-card-vertical__teacher-name a {
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-weight: 400;
    /*font-size: var(--wp--preset--font-size--medium);*/
    color: var(--wp--preset--color--night-blue);
    text-decoration: none;
}

.course-card-vertical__teacher-name a:hover {
    text-decoration: underline;
}

/* Badge Statut : League Spartan 24px Bold */
.course-card-vertical__middle {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}

.course-card-vertical__badge {
    display: inline-block;
    color: var(--wp--preset--color--gold-antique);
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--large);
    padding: 8px 20px;
    border-radius: 8px;
    margin-top: 5px;
}

/* Boutons */
.course-card-vertical__bottom {
    display: flex;
    flex-direction: column;
    gap: 12px;
    /*margin-top: auto;*/
    /*padding-top: 20px;*/
}

/* Bouton Informations : Primaire */
.course-card-vertical__btn-info {
    background-color: var(--wp--preset--color--night-blue);
    color: var(--wp--preset--color--snow);
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    font-size: 20px;
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    margin: auto;
    padding: 8px var(--wp--preset--spacing--64);
    border-radius: 40px;
    transition: opacity 0.2s;
    width: fit-content;
}

.course-card-vertical__btn-info:hover {
    opacity: 0.9;
}

/* Bouton Partager : Secondaire */
.summer-school-share__button {
    background: transparent;
    border:none;
    color: var(--wp--preset--color--night-blue);
    display:block;
    margin:auto;
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-weight: 700;
    font-size: 16px;
    padding: 10px;
    cursor: pointer;
    transition: all 0.2s;
}

.summer-school-share__button:hover {
    background: transparent;
    color: var(--wp--preset--color--blue-grey);
    border:none;
}

/* Message de confirmation copie */
[data-ss-copy-message="1"] {
    text-align: center;
    font-size: 14px;
    color: var(--wp--preset--color--night-blue);
    margin-top: 8px;
    font-family: var(--wp--preset--font-family--libre-baskerville);
}

[data-ss-copy-message="1"][hidden] {
    display: none;
}

[data-ss-copy-message="1"]:not([hidden]) {
    display: block;
}


/* === Grille de cours === */
/* ═══════════════════════════════════════════════════════════
   GRILLES DE COURS — Desktop : grid normal
   Tablette/Mobile : scroll horizontal avec snap + dots JS
   ═══════════════════════════════════════════════════════════ */

/* --- Desktop (>1024px) : grilles normales --- */
.abelao-course-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--preset--spacing--24);
    margin: 0 auto;
}

.abelao-course-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--wp--preset--spacing--24);
    margin: 0 auto;
    align-items: stretch;
}

/* Padding latéral sur grands écrans */
@media (max-width: 1320px) {
    .abelao-course-grid,
    .abelao-course-list {
        padding-left: var(--wp--preset--spacing--16);
        padding-right: var(--wp--preset--spacing--16);
    }
}

/* --- Tablette (≤1024px) : scroll horizontal, 2 cartes visibles --- */
@media (max-width: 1024px) {
    .abelao-course-grid,
    .abelao-course-list {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: var(--wp--preset--spacing--24);
        padding-left: var(--wp--preset--spacing--16);
        padding-right: var(--wp--preset--spacing--16);
        padding-bottom: var(--wp--preset--spacing--16);
        /* Masquer la scrollbar native */
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .abelao-course-grid::-webkit-scrollbar,
    .abelao-course-list::-webkit-scrollbar {
        display: none;
    }

    /* Chaque carte occupe ~50% de la largeur visible */
    .abelao-course-grid > *,
    .abelao-course-list > * {
        flex: 0 0 calc(50% - var(--wp--preset--spacing--24) / 2);
        scroll-snap-align: start;
        min-width: 0;
    }
}

/* --- Mobile (≤782px) : scroll horizontal, 1 carte visible --- */
@media (max-width: 782px) {
    .abelao-course-grid > *,
    .abelao-course-list > * {
        flex: 0 0 calc(100% - var(--wp--preset--spacing--16));
    }
}

/* ═══════════════════════════════════════════════════════════
   DOTS DE PAGINATION (générés par carousel-dots.js)
   ═══════════════════════════════════════════════════════════ */

.carousel-dots {
    display: flex;
    justify-content: center;
    gap: var(--wp--preset--spacing--8);
    margin-top: var(--wp--preset--spacing--16);
}

.carousel-dots__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid var(--wp--preset--color--night-blue);
    background: transparent;
    padding: 0;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.carousel-dots__dot.is-active {
    background-color: var(--wp--preset--color--night-blue);
}

.carousel-dots__dot:hover {
    background-color: var(--wp--preset--color--blue-grey);
    border-color: var(--wp--preset--color--blue-grey);
}

/* Masquer les dots en desktop — géré aussi par JS */
@media (min-width: 1025px) {
    .carousel-dots {
        display: none;
    }
}

/* ═══════════════════════════════════════════════════════════
   FORMULAIRE D'INSCRIPTION - AMÉLIORÉ
   ═══════════════════════════════════════════════════════════ */

.summer-school-enrollment {
    background-color: var(--wp--preset--color--green-sauge);
    padding: var(--wp--preset--spacing--32);
    border-radius: 8px;
    /* Zéro scroll horizontal : le fieldset ne doit jamais dépasser son conteneur */
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

/* Tous les éléments de formulaire contraints dans leur conteneur */
.summer-school-enrollment select,
.summer-school-enrollment input,
.summer-school-enrollment textarea,
.summer-school-enrollment label {
    box-sizing: border-box;
    max-width: 100%;
}

/* Select logement et cours alternatif : pleine largeur */
.summer-school-enrollment select {
    width: 100%;
    padding: var(--wp--preset--spacing--8) var(--wp--preset--spacing--16);
    border: 2px solid var(--wp--preset--color--night-blue);
    border-radius: 4px;
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-size: var(--wp--preset--font-size--base);
    color: var(--wp--preset--color--night-blue);
    background-color: var(--wp--preset--color--snow);
}

/* Section logement */
.summer-school-enrollment__housing {
    box-sizing: border-box;
    width: 100%;
    overflow: hidden;
}

.summer-school-enrollment__housing p {
    margin: 0;
    width: 100%;
}

/* Labels radio : contraints et wrap si nécessaire
   On cible uniquement les labels contenant un input radio, pas le label vide du select */
.summer-school-enrollment label:has(input[type="radio"]) {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    width: 100%;
    box-sizing: border-box;
    padding: var(--wp--preset--spacing--8);
    background: var(--wp--preset--color--snow);
}

/* Centrer le bouton S'inscrire */
.summer-school-enrollment .woocommerce-variation-add-to-cart,
.summer-school-enrollment .cart {
    display: flex;
    justify-content: center;
}

.summer-school-enrollment .single_add_to_cart_button,
.summer-school-enrollment .wc-block-components-product-button__button {
    display: block;
    margin: var(--wp--preset--spacing--32) auto 0 auto !important;
    max-width: 400px;
    text-align: center;
}

/* ═══════════════════════════════════════════════════════════
   STATUT PRODUIT - Layout flex avec badges
   ═══════════════════════════════════════════════════════════ */

.summer-school-enrollment__status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--wp--preset--spacing--16);
    width: 100%;
    margin: var(--wp--preset--spacing--24) 0;
}

.summer-school-enrollment__status h3 {
    margin: 0;
    flex-shrink: 0;
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    color: var(--wp--preset--color--night-blue);
}

.summer-school-enrollment__badges {
    display: flex;
    gap: var(--wp--preset--spacing--8);
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* Badge statut produit */
.ss-status-badge {
    display: inline-block;
    color: var(--wp--preset--color--gold-antique);
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--large); /* 24px */
    padding: 6px 16px;
    border-radius: 6px;
    white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 782px) {
    .summer-school-enrollment {
        padding: var(--wp--preset--spacing--24);
    }
    
    /* Stack H3 et badges verticalement */
    .summer-school-enrollment__status {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--wp--preset--spacing--12);
    }
    
    .summer-school-enrollment__badges {
        justify-content: flex-start;
        width: 100%;
    }
    
    /* Bouton pleine largeur sur mobile */
    .summer-school-enrollment .single_add_to_cart_button,
    .summer-school-enrollment .wc-block-components-product-button__button {
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .summer-school-enrollment {
        padding: var(--wp--preset--spacing--16);
    }
    
    /* Badges en colonnes sur très petit écran si besoin */
    .summer-school-enrollment__badges {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* === Course Card Horizontal - Version améliorée === */

.course-card-horizontal {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: var(--wp--preset--spacing--24);
    padding: var(--wp--preset--spacing--24);
    background-color: var(--wp--preset--color--green-sauge);
    border: 3px solid var(--wp--preset--color--night-blue);
    border-radius: 24px;
    align-items: stretch; /* était: align-items: start */
    min-height: 200px; /* Hauteur minimale fixe pour homogénéité */
}

/* Image gauche 120x120 */
.course-card-horizontal__image-wrapper {
    width: 120px;
    height: 120px;
    overflow: hidden;
    border-radius: 8px;
    flex-shrink: 0;
}

.course-card-horizontal__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.course-card-horizontal__image-placeholder {
    width: 100%;
    height: 100%;
    background-color: transparent;
}

/* Contenu droite - Distribution verticale avec space-between */
.course-card-horizontal__content {
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Distribue : titre en haut, badge au milieu, bouton en bas */
    height: 100%; /* Correspond à la hauteur de l'image */
}

/* Titre + Niveau - Reste en haut */
.course-card-horizontal__title {
    font-size: var(--wp--preset--font-size--large);
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    line-height: 1.15;
    color: var(--wp--preset--color--night-blue);
    margin: 0;
}

.course-card-horizontal__level {
    font-weight: 400;
}

/* Badge Statut - Simplifié, au centre vertical */
.course-card-horizontal__badge {
    display: inline-block;
    color: var(--wp--preset--color--gold-antique);
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--medium);
    padding: 4px 0; /* Réduit pour badge simplifié */
    width: fit-content;
    margin: 0; /* Enlève les marges pour que space-between fonctionne */
}

.course-card-horizontal__btn-wrapper {
    display: flex;
    justify-content: flex-end;
}

/* Bouton Informations - Reste en bas à droite */
.course-card-horizontal__btn-info {
    background-color: var(--wp--preset--color--night-blue);
    color: var(--wp--preset--color--snow);
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    font-size: 20px;
    line-height: 1.2;
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    padding: 12px var(--wp--preset--spacing--48);
    border-radius: 40px;
    transition: opacity 0.2s;
    width: fit-content;
    display: inline-flex;
    align-items: center; /* Centre le texte verticalement */
    justify-content: center; /* Centre le texte horizontalement */
    margin-left: auto; /* ← Remplace align-self: flex-end pour pousser à droite */
    box-sizing: border-box;
}

.course-card-horizontal__btn-info:hover {
    opacity: 0.9;
}

/* Responsive */
@media (max-width: 782px) {
    /* Passer en colonne unique, masquer l'image */
    .course-card-horizontal {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .course-card-horizontal__image-wrapper {
        display: none;
    }
}

/* Doublon supprimé — .abelao-course-list défini dans la section GRILLES DE COURS */


/* === Bloc Enseignant avec cours === */
.abelao-teacher-block {
    margin-bottom: var(--wp--preset--spacing--40);
}

/* === Spacer fin de page Équipe === */
.abelao-teacher-block:last-child {
    margin-bottom: var(--wp--preset--spacing--80); /* 64px existant + 80px demandé = 144px */
}

.abelao-teacher-block__header {
    display: flex;
    align-items: center;
    gap: var(--wp--preset--spacing--24);
}

.abelao-teacher-block__photo {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.abelao-teacher-block__name {
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    color: var(--wp--preset--color--night-blue);
    margin: 0;
}

.abelao-teacher-block__name a {
    color: var(--wp--preset--color--night-blue);
    text-decoration: none;
    transition: color 0.2s;
}

.abelao-teacher-block__name a:hover {
    color: var(--wp--preset--color--blue-grey);
}

.abelao-teacher-block__no-courses {
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-size: 16px;
    color: var(--wp--preset--color--night-blue);
    font-style: italic;
}


/* ════════════════════════════════════════════════════════════
   BOUTONS PAGE PRODUIT - Style uniforme
   ════════════════════════════════════════════════════════════ */

/* Bouton primaire S'inscrire - Style INFORMATIONS */
.single-product .wc-block-components-product-button__button,
.single-product button.single_add_to_cart_button,
.single-product .wp-block-button__link {
    background-color: var(--wp--preset--color--night-blue) !important;
    color: var(--wp--preset--color--snow) !important;
    font-family: var(--wp--preset--font-family--league-spartan) !important;
    font-weight: 700 !important;
    font-size: 20px !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    text-align: center !important;
    padding: 12px var(--wp--preset--spacing--48) !important;
    border-radius: 40px !important;
    border: none !important;
    transition: opacity 0.2s !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: fit-content !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
}

.single-product .wc-block-components-product-button__button:hover,
.single-product button.single_add_to_cart_button:hover,
.single-product .wp-block-button__link:hover {
    opacity: 0.9 !important;
    background-color: var(--wp--preset--color--night-blue) !important;
}


/* === Wrapper Statut + Alternative (fond blanc) === */
.summer-school-enrollment__status-alternative-wrapper {
    background-color: var(--wp--preset--color--snow);
    padding: var(--wp--preset--spacing--32);
    margin: var(--wp--preset--spacing--40) 0;
}


/* === Page enseignant - Masquer metas post === */
.single-teachers .entry-meta,
.single-teachers .post-navigation {
    display: none;
}


/* === Cours enseignant - Style cartes === */
.ss-teacher-courses ul {
    list-style: none;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
    gap: var(--wp--preset--spacing--24);
    margin: var(--wp--preset--spacing--32) 0;
}

.ss-teacher-courses li a {
    display: block;
    padding: var(--wp--preset--spacing--24);
    background: var(--wp--preset--color--green-sauge);
    border: 2px solid var(--wp--preset--color--night-blue);
    border-radius: 8px;
    color: var(--wp--preset--color--night-blue);
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--medium);
    text-decoration: none;
    transition: all 0.2s;
}

.ss-teacher-courses li a:hover {
    background: var(--wp--preset--color--night-blue);
    color: var(--wp--preset--color--snow);
}

/* We don't need additionnal fields on the checkout */
.woocommerce-additional-fields {
  display: none;
}

#order_review_heading {
    display: none;
}


/* === Espacement cohérent après H2 de sections === */
.wp-block-group h2,
.wp-site-blocks h2 {
    margin-bottom: var(--wp--preset--spacing--24);
}


/* === Espacement entre sections === 
.wp-block-group + .wp-block-group {
    margin-top: var(--wp--preset--spacing--64);
} */


/* ═══════════════════════════════════════════════════════════
   STATUT PRODUIT FORMULAIRE INSCRIPTION - Layout flex avec badges
   ═══════════════════════════════════════════════════════════ */

.summer-school-enrollment__status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--wp--preset--spacing--16);
    width: 100%;
}

.summer-school-enrollment__status h3 {
    margin: 0;
    flex-shrink: 0;
}

.summer-school-enrollment__badges {
    display: flex;
    gap: var(--wp--preset--spacing--8);
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* Badge statut produit - Inspiration du badge carte mais adapté */
.ss-status-badge {
    display: inline-block;
    color: var(--wp--preset--color--gold-antique);
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--large); /* 24px au lieu de 28px */
    padding: 6px 16px; /* Plus compact */
    border-radius: 6px;
    white-space: nowrap; /* Empêche retour ligne dans le badge */
}

/* Responsive */
@media (max-width: 782px) {
    .summer-school-enrollment__status {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--wp--preset--spacing--12);
    }
    
    .summer-school-enrollment__badges {
        justify-content: flex-start;
    }
}


/* ═══════════════════════════════════════════════════════════
   CONTACT FORM 7 - STYLE ABELAO
   ═══════════════════════════════════════════════════════════ */

/* Container formulaire */
.wpcf7 {
    background-color: var(--wp--preset--color--green-sauge);
    padding: var(--wp--preset--spacing--32);
    border-radius: 8px;
}

/* Formulaire */
.wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: var(--wp--preset--spacing--24);
}

/* Paragraphes wrapper (CF7 les génère automatiquement) */
.wpcf7-form p {
    margin: 0;
    width: 100%;
}

/* Labels */
.wpcf7-form label {
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-weight: 400;
    font-size: var(--wp--preset--font-size--base);
    color: var(--wp--preset--color--night-blue);
    margin-bottom: var(--wp--preset--spacing--8);
    display: block;
}

/* Wrapper des champs - Fix width issues */
.wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

/* Tous les champs input, textarea, select */
.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-email,
.wpcf7-form-control.wpcf7-tel,
.wpcf7-form-control.wpcf7-number,
.wpcf7-form-control.wpcf7-date,
.wpcf7-form-control.wpcf7-textarea,
.wpcf7-form-control.wpcf7-select {
    width: 100%;
    max-width: 100%;
    padding: 12px 16px;
    border: 2px solid var(--wp--preset--color--night-blue);
    border-radius: 4px;
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-size: var(--wp--preset--font-size--base);
    color: var(--wp--preset--color--night-blue);
    background-color: var(--wp--preset--color--snow);
    transition: border-color 0.2s ease;
    box-sizing: border-box; /* CRITIQUE : Inclut padding + border dans width */
}

/* Focus states */
.wpcf7-form-control.wpcf7-text:focus,
.wpcf7-form-control.wpcf7-email:focus,
.wpcf7-form-control.wpcf7-tel:focus,
.wpcf7-form-control.wpcf7-number:focus,
.wpcf7-form-control.wpcf7-date:focus,
.wpcf7-form-control.wpcf7-textarea:focus,
.wpcf7-form-control.wpcf7-select:focus {
    outline: none;
    border-color: var(--wp--preset--color--blue-grey);
    box-shadow: 0 0 0 3px rgba(90, 118, 148, 0.1);
}

/* Textarea spécifique */
.wpcf7-form-control.wpcf7-textarea {
    min-height: 150px;
    resize: vertical;
}

/* Bouton submit - Style cohérent avec boutons site */
.wpcf7-form-control.wpcf7-submit {
    background-color: var(--wp--preset--color--night-blue);
    color: var(--wp--preset--color--snow);
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    font-size: 20px;
    text-transform: uppercase;
    padding: 12px var(--wp--preset--spacing--48);
    border: none;
    border-radius: 40px;
    cursor: pointer;
    transition: opacity 0.2s ease;
    display: block;
    margin: var(--wp--preset--spacing--24) auto 0 auto;
    max-width: 400px;
    width: 100%;
}

.wpcf7-form-control.wpcf7-submit:hover {
    opacity: 0.9;
}

.wpcf7-form-control.wpcf7-submit:active {
    transform: translateY(1px);
}

/* Messages de validation */
.wpcf7-not-valid-tip {
    color: #d63638;
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-size: 0.875rem;
    margin-top: var(--wp--preset--spacing--8);
    display: block;
}

/* Champ invalide */
.wpcf7-form-control.wpcf7-not-valid {
    border-color: #d63638;
}

/* Messages de réponse (succès/erreur) */
.wpcf7-response-output {
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-size: var(--wp--preset--font-size--base);
    padding: var(--wp--preset--spacing--16);
    border-radius: 4px;
    margin-top: var(--wp--preset--spacing--24);
    border: 2px solid;
}

/* Message succès */
.wpcf7-mail-sent-ok {
    background-color: #d4edda;
    border-color: #28a745;
    color: #155724;
}

/* Message erreur */
.wpcf7-validation-errors,
.wpcf7-mail-sent-ng {
    background-color: #f8d7da;
    border-color: #d63638;
    color: #721c24;
}

/* Spinner de chargement */
.wpcf7-spinner {
    margin-left: var(--wp--preset--spacing--16);
}

/* Checkbox et radio */
.wpcf7-list-item {
    margin: var(--wp--preset--spacing--8) 0;
}

.wpcf7-list-item-label {
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-size: var(--wp--preset--font-size--base);
    color: var(--wp--preset--color--night-blue);
    margin-left: var(--wp--preset--spacing--8);
}

/* Acceptance (RGPD, etc.) */
.wpcf7-acceptance {
    margin: var(--wp--preset--spacing--16) 0;
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 782px) {
    .wpcf7 {
        padding: var(--wp--preset--spacing--24);
    }
    
    .wpcf7-form {
        gap: var(--wp--preset--spacing--16);
    }
    
    /* Bouton pleine largeur sur mobile */
    .wpcf7-form-control.wpcf7-submit {
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .wpcf7 {
        padding: var(--wp--preset--spacing--16);
    }
    
    .wpcf7-form-control.wpcf7-text,
    .wpcf7-form-control.wpcf7-email,
    .wpcf7-form-control.wpcf7-tel,
    .wpcf7-form-control.wpcf7-textarea {
        font-size: 16px; /* Évite le zoom sur iOS */
    }
}


/* ═══════════════════════════════════════════════════════════
   PAGE PRODUIT - HEADER : Image + Titre + Niveau
   ═══════════════════════════════════════════════════════════ */

.ss-course-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--wp--preset--spacing--32);
    background-color: var(--wp--preset--color--green-sauge);
    /* Full-bleed depuis le <main> contraint avec has-global-padding :
       on supprime le padding horizontal du <main> via padding-inline overrides
       et on étend le bandeau avec des marges négatives compensant le contentSize */
    margin-top: 0;
    margin-inline: calc(50% - 50vw);
    padding-top: var(--wp--preset--spacing--48);
    padding-bottom: var(--wp--preset--spacing--48);
    padding-inline: max(var(--wp--preset--spacing--24), calc(50vw - 580px));
}

.ss-course-header__image-wrapper {
    flex-shrink: 0;
    width: 120px;
    height: 120px;
    overflow: hidden;
    border-radius: 8px;
}

.ss-course-header__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ss-course-header__meta {
    display: flex;
    flex-direction: column;
    gap: var(--wp--preset--spacing--8);
    width: 100%;
}

.ss-course-header__title {
    font-family: var(--wp--preset--font-family--league-spartan);
    font-weight: 700;
    font-size: var(--wp--preset--font-size--xxx-large);
    color: var(--wp--preset--color--night-blue);
    margin: 0;
    line-height: 1.1;
}

.ss-course-meta__badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--wp--preset--spacing--8);
    margin: 0;
}

.ss-badge--level,
.ss-badge--language {
    font-family: var(--wp--preset--font-family--libre-baskerville);
    font-weight: 400;
    font-size: var(--wp--preset--font-size--base);
    color: var(--wp--preset--color--night-blue);
}

@media (max-width: 782px) {
    .ss-course-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--wp--preset--spacing--24);
    }

    .ss-course-header__title {
        font-size: var(--wp--preset--font-size--xx-large);
    }

    /* Badges niveau et langue : alignement gauche en mobile */
    .ss-course-meta__badges {
        justify-content: flex-start;
    }
}

/* ═══════════════════════════════════════════════════════════
   PAGES WOOCOMMERCE — Bandeau titre green-sauge
   Cible les pages cart, checkout, my-account via classes body WC
   Le titre H1 est injecté par WooCommerce dans le contenu de la page
   ═══════════════════════════════════════════════════════════ */

/* Neutraliser le margin-block-start TT5 sur le wrapper woocommerce
   pour ces pages également */
body.woocommerce-cart :where(.wp-site-blocks) > .woocommerce,
body.woocommerce-checkout :where(.wp-site-blocks) > .woocommerce,
body.woocommerce-account :where(.wp-site-blocks) > .woocommerce {
    margin-block-start: 0;
}

/* Bandeau green-sauge sur le titre H1 des pages WC via page.html
   Le wp:post-title est dans le groupe .has-green-sauge-background-color
   — déjà couvert par la règle existante, aucune action supplémentaire.
   Ces pages utilisent page.html et bénéficient donc du bandeau titre. */

/* ═══════════════════════════════════════════════════════════
   HEADER STICKY
   ═══════════════════════════════════════════════════════════ */

/* Sticky sur le wrapper entier (top + main) */
.abelao-header-wrapper {
    position: sticky;
    top: 0;
    z-index: 100;
}

/* Transitions */
.abelao-header-main {
    transition: padding 0.3s ease;
}

.abelao-header-main .wp-block-site-logo img {
    transition: width 0.3s ease, height 0.3s ease;
}

/* État sticky : header-main réduit à ~2× la hauteur du top-bar (~32px) */
.abelao-header-main.is-sticky {
    padding-top: var(--wp--preset--spacing--16) !important;
    padding-bottom: var(--wp--preset--spacing--16) !important;
}

/* Logo réduit plus intensément */
.abelao-header-main.is-sticky .wp-block-site-logo img {
    width: 35% !important;
    height: auto !important;
}