/**
 * Lola Lee Locations — habillage WooCommerce.
 *
 * Les templates du catalogue, du panier et de la commande sont ceux fournis par
 * WooCommerce : ils héritent déjà des tokens de theme.json. Ce fichier ne reprend
 * la main que là où WooCommerce impose son propre HTML et ses propres styles —
 * boutons classiques, notices, formulaires du tunnel, page « Mon compte ».
 * Toutes les couleurs référencent les variables générées par theme.json.
 */

/* -------------------------------------------------------------------------- */
/*  Boutons — alignement sur le bouton de marque (pilule rose, Manrope)        */
/* -------------------------------------------------------------------------- */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.wc-block-components-button:not(.is-link) {
    background: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--contrast);
    border: 0;
    border-radius: 999px;
    padding: 0.85rem 1.75rem;
    font-family: var(--wp--preset--font-family--body);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.2;
    text-decoration: none;
    transition:
        background var(--lola-transition),
        color var(--lola-transition),
        transform var(--lola-transition);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.wc-block-components-button:not(.is-link):hover {
    background: var(--wp--preset--color--primary-dark);
    color: var(--wp--preset--color--base);
    transform: translateY(-2px);
}

/* Bouton secondaire (« Continuer mes réservations », « Mettre à jour ») : contour doré. */
.woocommerce .cart .button[name="update_cart"],
.wc-block-components-button.is-link {
    background: transparent;
    color: var(--wp--preset--color--contrast);
    box-shadow: inset 0 0 0 1px var(--wp--preset--color--secondary);
}

.wc-block-components-button__text {
    display: inline-flex;
    align-items: center;
}

/* -------------------------------------------------------------------------- */
/*  Catalogue — cartes d'offres cohérentes avec is-style-lola-card             */
/* -------------------------------------------------------------------------- */

/* Préserve une respiration entre la dernière rangée de produits et le footer. */
body.woocommerce-shop main#wp--skip-link--target {
    padding-bottom: clamp(3rem, 6vw, 5rem);
}

/* La ligne d'information reste utile sans prendre la place d'une barre
   d'outils depuis la suppression du sélecteur de tri. */
body.woocommerce-shop .wc-block-product-results-count {
    color: var(--wp--preset--color--contrast-soft);
    font-size: var(--wp--preset--font-size--small);
}

body.woocommerce-shop .wc-block-product-results-count p {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    margin: 0;
}

body.woocommerce-shop .wc-block-product-results-count p::before {
    content: "";
    width: 0.55rem;
    height: 0.55rem;
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--wp--preset--color--primary);
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--wp--preset--color--primary) 18%, transparent);
}

/* Grille souple : trois cartes sur grand écran, centrage naturel de la
   dernière rangée incomplète, puis deux et une colonne. */
:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product-template__responsive {
    --lola-catalog-gap: clamp(1.25rem, 2.4vw, 2rem);

    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: var(--lola-catalog-gap);
    margin-top: var(--wp--preset--spacing--40);
}

.wc-block-product-template__responsive .wc-block-product,
.wc-block-grid__product,
.woocommerce ul.products li.product {
    background: var(--wp--preset--color--base);
    border: 1px solid var(--wp--preset--color--border);
    border-radius: var(--lola-radius);
    padding: var(--wp--preset--spacing--30);
    box-shadow: var(--wp--preset--shadow--soft);
    transition:
        transform var(--lola-transition),
        box-shadow var(--lola-transition);
}

.wc-block-product-template__responsive .wc-block-product:hover,
.wc-block-grid__product:hover,
.woocommerce ul.products li.product:hover {
    transform: translateY(-6px);
    box-shadow: var(--wp--preset--shadow--card);
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product-template__responsive .wc-block-product {
    display: flex;
    box-sizing: border-box;
    flex: 0 1 calc((100% - (2 * var(--lola-catalog-gap))) / 3);
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    border-radius: calc(var(--lola-radius) + 4px);
}

/* Les photos sources n'ont pas toutes le même format : le cadre 4/3 stabilise
   immédiatement la lecture de la grille sans déformer les visuels. */
:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .wp-block-woocommerce-product-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    margin: 0;
    overflow: hidden;
    background: var(--wp--preset--color--cream);
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .wp-block-woocommerce-product-image > a {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .wp-block-woocommerce-product-image img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
    border-radius: 0;
    transition: transform 0.45s ease;
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product:hover .wp-block-woocommerce-product-image img {
    transform: scale(1.035);
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .wp-block-post-title {
    margin: 1.5rem 1.5rem 0;
    color: var(--wp--preset--color--contrast);
    font-family: var(--wp--preset--font-family--heading);
    font-size: clamp(1.05rem, 1.4vw, 1.2rem) !important;
    font-weight: 600;
    line-height: 1.35 !important;
    text-align: left;
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .wp-block-post-title a {
    color: inherit;
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .wp-block-post-title a:hover {
    color: var(--wp--preset--color--primary-dark);
    text-decoration: none;
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .wp-block-woocommerce-product-price {
    margin: 0.5rem 1.5rem 1.25rem !important;
    color: var(--wp--preset--color--contrast);
    text-align: left;
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .woocommerce-Price-amount {
    font-family: var(--wp--preset--font-family--body);
    font-size: 1.05rem;
    font-weight: 600;
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .wp-block-woocommerce-product-button {
    width: auto;
    margin: auto 1.5rem 1.5rem;
    text-align: left;
}

:is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .wp-block-woocommerce-product-button .wp-block-button__link {
    display: inline-flex;
    width: 100%;
    min-height: 3.1rem;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
}

.wc-block-components-product-image img,
.woocommerce ul.products li.product img,
.woocommerce div.product div.images img {
    border-radius: calc(var(--lola-radius) - 6px);
}

/* Le titre de l'offre garde la typo des titres du site. */
.wc-block-components-product-title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--wp--preset--font-family--heading);
    font-weight: 600;
}

/* -------------------------------------------------------------------------- */
/*  Prix — le suffixe « / journée » reste discret                              */
/* -------------------------------------------------------------------------- */

.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--wp--preset--color--primary-dark);
    font-family: var(--wp--preset--font-family--body);
    font-weight: 600;
}

.lola-price-unit {
    color: var(--wp--preset--color--contrast-soft);
    font-family: var(--wp--preset--font-family--body);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 400;
}

/* Dans le récapitulatif du panier, le suffixe n'apporte rien : on l'efface. */
.wc-block-components-order-summary-item .lola-price-unit,
.wc-block-components-totals-item .lola-price-unit {
    display: none;
}

/* -------------------------------------------------------------------------- */
/*  Fiche offre — description et tableau des caractéristiques                  */
/* -------------------------------------------------------------------------- */

.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: none;
}

.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel {
    display: block !important;
    margin-top: 0;
}

/* Tableau « Caractéristiques » : lignes aérées, sans bordures lourdes. */
.woocommerce table.shop_attributes {
    border: 0;
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
    padding: 0.85rem 0;
    border: 0;
    border-bottom: 1px solid var(--wp--preset--color--border);
    background: none;
    font-style: normal;
}

.woocommerce table.shop_attributes th {
    font-family: var(--wp--preset--font-family--body);
    font-weight: 600;
    color: var(--wp--preset--color--contrast);
    width: 40%;
}

.woocommerce table.shop_attributes td p {
    margin: 0;
    padding: 0;
    color: var(--wp--preset--color--contrast-soft);
}

/* -------------------------------------------------------------------------- */
/*  Notices — messages panier / commande aux couleurs de la marque             */
/* -------------------------------------------------------------------------- */

/* Encadré crème discret : c'est l'icône qui porte la couleur, pas un bord dur
   (même parti pris que le style de bloc « Liseré doré » du thème). */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
    border-radius: var(--lola-radius);
    border: 1px solid var(--wp--preset--color--border);
    background: var(--wp--preset--color--cream);
    color: var(--wp--preset--color--contrast);
}

.woocommerce-message::before,
.woocommerce-info::before {
    color: var(--wp--preset--color--secondary);
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error {
    border-color: var(--wp--preset--color--accent);
}

.woocommerce-error::before {
    color: var(--wp--preset--color--primary-dark);
}

/* -------------------------------------------------------------------------- */
/*  Tunnel de commande — champs de formulaire                                  */
/* -------------------------------------------------------------------------- */

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.wc-block-components-text-input input,
.wc-block-components-textarea {
    border: 1px solid var(--wp--preset--color--border);
    border-radius: 12px;
    padding: 0.8rem 1rem;
    background: var(--wp--preset--color--base);
    color: var(--wp--preset--color--contrast);
    font-family: var(--wp--preset--font-family--body);
}

.woocommerce form .form-row input.input-text:focus,
.wc-block-components-text-input input:focus {
    border-color: var(--wp--preset--color--accent);
}

.wc-block-components-checkout-step__heading,
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
.woocommerce-order-details h2,
.cart_totals h2 {
    font-family: var(--wp--preset--font-family--heading);
    font-weight: 600;
}

/* Blocs de synthèse de la commande : encadré crème. */
.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.woocommerce-checkout-review-order,
.woocommerce .cart_totals {
    background: var(--wp--preset--color--cream);
    border-radius: var(--lola-radius);
}

/*
 * Panier : le récapitulatif forme une liste nette plutôt qu'une succession
 * de capsules. Les séparateurs WooCommerce restent visibles pour structurer
 * le code promo et le total sans ajouter de cadres décoratifs.
 */
.wc-block-cart .wc-block-components-sidebar .wc-block-components-totals-wrapper {
    background: transparent;
    border-radius: 0;
}

.wc-block-cart .wc-block-cart__submit-button {
    border-radius: 0;
}

/* Garde-fou si une extension réinjecte un paiement express côté client. */
.wc-block-cart .wc-block-cart__payment-options {
    display: none;
}

/*
 * Commande : un seul encadré net pour tout le résumé, sans capsules autour
 * de chaque ligne. Le paiement express, situé dans la colonne principale,
 * n'est volontairement pas ciblé.
 */
.wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block,
.wc-block-checkout .wc-block-components-totals-wrapper {
    border-radius: 0;
}

.wc-block-checkout .wc-block-components-totals-wrapper {
    background: transparent;
}

.wc-block-checkout .wp-block-woocommerce-checkout-order-summary-subtotal-block {
    border-top: 1px solid var(--wp--preset--color--border);
}

/* -------------------------------------------------------------------------- */
/*  Mon compte                                                                 */
/* -------------------------------------------------------------------------- */

/* La page reste volontairement plus compacte que les pages éditoriales : le
   formulaire doit être visible rapidement sous le bandeau de titre. */
.woocommerce-account .wp-block-post-content {
    padding-top: clamp(3rem, 6vw, 5rem) !important;
    padding-bottom: clamp(3.5rem, 7vw, 6rem) !important;
}

.woocommerce-account .woocommerce {
    color: var(--wp--preset--color--contrast);
}

.woocommerce-account .woocommerce a:not(.button) {
    color: var(--wp--preset--color--primary-dark);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
}

.woocommerce-account .woocommerce a:not(.button):hover {
    color: var(--wp--preset--color--contrast);
}

/* Connexion et inscription : deux cartes équilibrées, sans les bordures
   génériques de WooCommerce. */
.woocommerce-account #customer_login {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(1.5rem, 3vw, 2.5rem);
}

.woocommerce-account #customer_login::before,
.woocommerce-account #customer_login::after {
    content: none;
}

.woocommerce-account #customer_login > .u-column1,
.woocommerce-account #customer_login > .u-column2 {
    position: relative;
    display: flex;
    float: none;
    width: auto;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    background: var(--wp--preset--color--base);
    border: 1px solid var(--wp--preset--color--border);
    border-radius: calc(var(--lola-radius) + 6px);
    box-shadow: var(--wp--preset--shadow--soft);
}

.woocommerce-account #customer_login > .u-column1::before,
.woocommerce-account #customer_login > .u-column2::before {
    content: "";
    width: 3.5rem;
    height: 0.3rem;
    margin-bottom: 1.25rem;
    border-radius: 999px;
    background: var(--wp--preset--color--primary);
}

.woocommerce-account #customer_login > .u-column2::before {
    background: var(--wp--preset--color--secondary);
}

.woocommerce-account #customer_login h2 {
    margin: 0 0 1.5rem;
    color: var(--wp--preset--color--contrast);
    font-family: var(--wp--preset--font-family--heading);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 600;
    line-height: 1.2;
}

.woocommerce-account form.login,
.woocommerce-account form.register {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 0.2rem;
    margin: 0;
    padding: 0;
    border: 0;
}

.woocommerce-account form.login .form-row,
.woocommerce-account form.register .form-row {
    float: none;
    width: 100%;
    margin: 0 0 1rem;
    padding: 0;
}

.woocommerce-account form.login label,
.woocommerce-account form.register label,
.woocommerce-account form.lost_reset_password label,
.woocommerce-account form.woocommerce-EditAccountForm label {
    display: inline-block;
    margin-bottom: 0.45rem;
    color: var(--wp--preset--color--contrast);
    font-family: var(--wp--preset--font-family--body);
    font-size: 0.9rem;
    font-weight: 500;
}

.woocommerce-account form .required {
    color: var(--wp--preset--color--primary-dark);
}

.woocommerce-account form.login input.input-text,
.woocommerce-account form.register input.input-text,
.woocommerce-account form.lost_reset_password input.input-text,
.woocommerce-account form.woocommerce-EditAccountForm input.input-text {
    min-height: 3.25rem;
    border-color: var(--wp--preset--color--border);
    background: var(--wp--preset--color--cream);
    transition:
        border-color var(--lola-transition),
        box-shadow var(--lola-transition),
        background var(--lola-transition);
}

.woocommerce-account form.login input.input-text:focus,
.woocommerce-account form.register input.input-text:focus,
.woocommerce-account form.lost_reset_password input.input-text:focus,
.woocommerce-account form.woocommerce-EditAccountForm input.input-text:focus {
    outline: 0;
    border-color: var(--wp--preset--color--secondary);
    background: var(--wp--preset--color--base);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--wp--preset--color--secondary) 16%, transparent);
}

.woocommerce-account .password-input {
    width: 100%;
}

.woocommerce-account .show-password-input {
    top: 0.95rem;
    right: 1rem;
}

.woocommerce-account form.login > .form-row:not(.form-row-wide) {
    display: flex;
    align-items: center;
    gap: 0.85rem 1rem;
    margin-top: 0.25rem;
}

.woocommerce-account .woocommerce-form-login__rememberme {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 !important;
    color: var(--wp--preset--color--contrast-soft);
    font-family: var(--wp--preset--font-family--body) !important;
    font-weight: 400 !important;
}

.woocommerce-account .woocommerce-form-login__rememberme input {
    width: 1.05rem;
    height: 1.05rem;
    accent-color: var(--wp--preset--color--primary-dark);
}

.woocommerce-account .woocommerce-LostPassword {
    margin: 0.15rem 0 0;
    font-size: var(--wp--preset--font-size--small);
}

.woocommerce-account .woocommerce-privacy-policy-text {
    margin: 0.35rem 0 1.25rem;
    padding: 1rem 1.1rem;
    color: var(--wp--preset--color--contrast-soft);
    border-radius: 12px;
    background: var(--wp--preset--color--cream);
    font-size: var(--wp--preset--font-size--small);
    line-height: 1.65;
}

.woocommerce-account .woocommerce-privacy-policy-text p {
    margin: 0;
}

.woocommerce-account form.register .form-row:last-child {
    margin-top: auto;
    margin-bottom: 0;
}

/* Tableau de bord connecté : menu clair et contenu principal traité comme une
   carte. :has() permet de ne pas toucher à la grille de connexion ci-dessus. */
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
    display: grid;
    grid-template-columns: minmax(13.5rem, 0.32fr) minmax(0, 1fr);
    align-items: start;
    gap: clamp(1.5rem, 4vw, 3rem);
}

.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::before,
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::after {
    content: none;
}

.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
    position: sticky;
    top: calc(var(--lola-sticky-offset) + 6.5rem);
    float: none;
    width: auto;
    padding: 0.75rem;
    background: var(--wp--preset--color--cream);
    border: 1px solid var(--wp--preset--color--border);
    border-radius: calc(var(--lola-radius) + 2px);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
    margin: 0;
    padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
    display: flex;
    box-sizing: border-box;
    min-height: 2.9rem;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem 0.9rem;
    border-radius: 12px;
    color: var(--wp--preset--color--contrast-soft);
    font-family: var(--wp--preset--font-family--body);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 600;
    text-decoration: none;
    transition:
        background var(--lola-transition),
        color var(--lola-transition),
        transform var(--lola-transition);
}

.woocommerce-account .woocommerce-MyAccount-navigation li a::after {
    content: "›";
    color: var(--wp--preset--color--secondary);
    font-family: var(--wp--preset--font-family--body);
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-navigation li a:hover {
    color: var(--wp--preset--color--contrast);
    background: var(--wp--preset--color--base);
    text-decoration: none;
    transform: translateX(2px);
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    color: var(--wp--preset--color--contrast);
    background: var(--wp--preset--color--accent-light);
    box-shadow: none;
    text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout {
    padding-top: 0.35rem;
    border-top: 1px solid var(--wp--preset--color--border);
}

.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a {
    color: var(--wp--preset--color--primary-dark);
}

.woocommerce-account .woocommerce-MyAccount-content {
    float: none;
    width: auto;
    min-width: 0;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background: var(--wp--preset--color--base);
    border: 1px solid var(--wp--preset--color--border);
    border-radius: calc(var(--lola-radius) + 6px);
    box-shadow: var(--wp--preset--shadow--soft);
}

.woocommerce-account .woocommerce-MyAccount-content > :first-child {
    margin-top: 0;
}

.woocommerce-account .woocommerce-MyAccount-content > :last-child {
    margin-bottom: 0;
}

.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3,
.woocommerce-account .woocommerce-order-details__title,
.woocommerce-account .woocommerce-column__title {
    color: var(--wp--preset--color--contrast);
    font-family: var(--wp--preset--font-family--heading);
    font-weight: 600;
}

.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
    color: var(--wp--preset--color--contrast-soft);
    font-size: 1.05rem;
    line-height: 1.75;
}

/* Commandes et adresses : lignes légères et cartes secondaires. */
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-table--order-details {
    overflow: hidden;
    border: 1px solid var(--wp--preset--color--border);
    border-radius: var(--lola-radius);
    border-collapse: separate;
    border-spacing: 0;
}

.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .woocommerce-table--order-details th {
    padding: 0.9rem 1rem;
    background: var(--wp--preset--color--cream);
    border: 0;
    font-family: var(--wp--preset--font-family--body);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 600;
}

.woocommerce-account .woocommerce-orders-table td,
.woocommerce-account .woocommerce-table--order-details td {
    padding: 1rem;
    border: 0;
    border-top: 1px solid var(--wp--preset--color--border);
}

.woocommerce-account .woocommerce-Addresses {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.5rem;
}

.woocommerce-account .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-Addresses::after {
    content: none;
}

.woocommerce-account .woocommerce-Addresses .woocommerce-Address,
.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Address {
    float: none;
    width: auto;
    padding: 1.25rem;
    background: var(--wp--preset--color--cream);
    border: 1px solid var(--wp--preset--color--border);
    border-radius: var(--lola-radius);
}

.woocommerce-account .woocommerce-Address-title {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3 {
    float: none;
    margin-top: 0;
}

.woocommerce-account .woocommerce-Address-title .edit {
    float: none;
    font-size: var(--wp--preset--font-size--small);
}

.woocommerce-account .woocommerce-Address address {
    color: var(--wp--preset--color--contrast-soft);
    font-style: normal;
    line-height: 1.7;
}

.woocommerce-account form.woocommerce-EditAccountForm fieldset {
    margin: 1.5rem 0;
    padding: 1.25rem;
    border: 1px solid var(--wp--preset--color--border);
    border-radius: var(--lola-radius);
    background: var(--wp--preset--color--cream);
}

.woocommerce-account form.woocommerce-EditAccountForm legend {
    padding: 0 0.5rem;
    color: var(--wp--preset--color--contrast);
    font-family: var(--wp--preset--font-family--body);
    font-weight: 600;
}

/* Mot de passe oublié : une carte unique centrée. */
.woocommerce-account form.lost_reset_password {
    max-width: 42rem;
    margin: 0 auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    background: var(--wp--preset--color--base);
    border: 1px solid var(--wp--preset--color--border);
    border-radius: calc(var(--lola-radius) + 6px);
    box-shadow: var(--wp--preset--shadow--soft);
}

.woocommerce-account form.lost_reset_password > :first-child {
    margin-top: 0;
}

@media (max-width: 780px) {
    .woocommerce-account #customer_login,
    .woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
        grid-template-columns: 1fr;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation {
        position: static;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout {
        padding-top: 0;
        border-top: 0;
    }
}

@media (max-width: 520px) {
    .woocommerce-account .wp-block-post-content {
        padding-top: 2.25rem !important;
        padding-bottom: 3rem !important;
    }

    .woocommerce-account #customer_login > .u-column1,
    .woocommerce-account #customer_login > .u-column2,
    .woocommerce-account .woocommerce-MyAccount-content {
        padding: 1.35rem;
        border-radius: var(--lola-radius);
    }

    .woocommerce-account form.login > .form-row:not(.form-row-wide) {
        align-items: flex-start;
        flex-direction: column;
    }

    .woocommerce-account form.login > .form-row:not(.form-row-wide) .button,
    .woocommerce-account form.register .button,
    .woocommerce-account form.lost_reset_password .button {
        width: 100%;
        justify-content: center;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation ul,
    .woocommerce-account .woocommerce-Addresses {
        grid-template-columns: 1fr;
    }
}

/* -------------------------------------------------------------------------- */
/*  Réservation WooCommerce Bookings                                           */
/* -------------------------------------------------------------------------- */

.woocommerce .lola-booking-formula {
    margin: 1.5rem 0;
    padding: 1.25rem;
    background: color-mix(in srgb, var(--wp--preset--color--accent-light) 34%, white);
    border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 32%, transparent);
    border-radius: var(--lola-radius);
}

.woocommerce .lola-booking-formula h2 {
    margin: 0 0 0.85rem;
    font-family: var(--wp--preset--font-family--body);
    font-size: var(--wp--preset--font-size--medium);
    font-weight: 600;
}

/* Deux ou trois formules selon les tarifs renseignés pour l'espace. */
.woocommerce .lola-booking-formula__options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 0.75rem;
}

.woocommerce .lola-booking-formula__option {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
    padding: 0.85rem 1rem;
    color: var(--wp--preset--color--contrast);
    text-decoration: none;
    background: var(--wp--preset--color--base);
    border: 1px solid var(--wp--preset--color--border);
    border-radius: calc(var(--lola-radius) - 4px);
    transition:
        border-color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease;
}

.woocommerce a.lola-booking-formula__option:hover {
    color: var(--wp--preset--color--contrast);
    border-color: var(--wp--preset--color--accent);
    box-shadow: var(--wp--preset--shadow--soft);
    transform: translateY(-2px);
}

.woocommerce .lola-booking-formula__option.is-active {
    border-color: var(--wp--preset--color--primary);
    box-shadow: inset 0 0 0 1px var(--wp--preset--color--primary);
}

.woocommerce .lola-booking-formula__option.is-active::before {
    content: "Sélectionné";
    justify-self: start;
    padding: 0.15rem 0.5rem;
    color: var(--wp--preset--color--base);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: var(--wp--preset--color--primary);
    border-radius: 999px;
}

.woocommerce .lola-booking-formula__option > span {
    color: var(--wp--preset--color--contrast-soft);
    font-size: var(--wp--preset--font-size--small);
}

.woocommerce .lola-booking-formula__option > small {
    margin-top: 0.25rem;
    color: var(--wp--preset--color--primary-dark);
    font-size: var(--wp--preset--font-size--small);
    font-weight: 600;
}

.woocommerce .wc-bookings-date-picker td.lola-booking-weekend,
.woocommerce .wc-bookings-date-picker td.lola-booking-weekend:hover {
    background: transparent;
    cursor: not-allowed;
    opacity: 0.45;
}

.woocommerce .wc-bookings-date-picker td.lola-booking-weekend > * {
    pointer-events: none;
}

.woocommerce .wc-bookings-booking-form {
    margin: 1.25rem 0 0;
    padding: 1.25rem;
    background: var(--wp--preset--color--base);
    border: 1px solid var(--wp--preset--color--border);
    border-radius: var(--lola-radius);
}

.woocommerce .wc-bookings-booking-form fieldset {
    margin: 0;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker-header {
    background: var(--wp--preset--color--primary);
}

.woocommerce .wc-bookings-date-picker .ui-datepicker td.bookable a {
    color: var(--wp--preset--color--contrast) !important;
    font-weight: 600;
    text-shadow: none !important;
    background: var(--wp--preset--color--accent-light) !important;
}

.woocommerce .wc-bookings-date-picker .ui-datepicker td.bookable a:hover,
.woocommerce .wc-bookings-date-picker .ui-datepicker td.ui-datepicker-current-day a,
.woocommerce .wc-bookings-date-picker .ui-datepicker td.bookable-range a.ui-state-default {
    color: var(--wp--preset--color--base) !important;
    text-shadow: none !important;
    background: var(--wp--preset--color--primary-dark) !important;
}

.woocommerce .wc-bookings-booking-cost {
    margin: 1rem 0 0;
    padding: 0.85rem 1rem;
    color: var(--wp--preset--color--contrast);
    background: color-mix(in srgb, var(--wp--preset--color--accent-light) 35%, white);
    border-left: 4px solid var(--wp--preset--color--accent);
}

.woocommerce .wp-block-woocommerce-add-to-cart-form form.cart > .wc-bookings-booking-form-button {
    margin-top: 1.5rem !important;
}

@media (max-width: 520px) {
    .woocommerce .lola-booking-formula__options {
        grid-template-columns: 1fr;
    }
}

/* -------------------------------------------------------------------------- */
/*  Divers                                                                     */
/* -------------------------------------------------------------------------- */

/* Aucune expédition n'est proposée : on masque les libellés résiduels. */
.woocommerce-shipping-destination,
.wc-block-components-shipping-address {
    display: none;
}

/* Fil d'Ariane discret, aligné sur la typo du site. */
.woocommerce .woocommerce-breadcrumb {
    color: var(--wp--preset--color--contrast-soft);
    font-size: var(--wp--preset--font-size--small);
}

.woocommerce .woocommerce-breadcrumb a {
    color: var(--wp--preset--color--contrast-soft);
}

.woocommerce .woocommerce-breadcrumb a:hover {
    color: var(--wp--preset--color--primary-dark);
}

@media (max-width: 900px) {
    :is(body.woocommerce-shop, .lola-product-grid) .wc-block-product-template__responsive .wc-block-product {
        flex-basis: calc((100% - var(--lola-catalog-gap)) / 2);
    }
}

@media (max-width: 600px) {
    :is(body.woocommerce-shop, .lola-product-grid) .wc-block-product-template__responsive {
        margin-top: var(--wp--preset--spacing--30);
    }

    :is(body.woocommerce-shop, .lola-product-grid) .wc-block-product-template__responsive .wc-block-product {
        flex-basis: 100%;
    }

    :is(body.woocommerce-shop, .lola-product-grid) .wc-block-product .wp-block-post-title {
        margin-top: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wc-block-product-template__responsive .wc-block-product:hover,
    .wc-block-grid__product:hover,
    .woocommerce ul.products li.product:hover,
    .woocommerce a.button:hover,
    .woocommerce button.button:hover,
    .wc-block-components-button:not(.is-link):hover {
        transform: none;
    }

    :is(body.woocommerce-shop, .lola-product-grid) .wc-block-product:hover .wp-block-woocommerce-product-image img {
        transform: none;
    }
}
