/*
 * Ajustements des pages au gabarit de la maquette, chargés après les feuilles du thème.
 */

/* ===== Boutique : fiche produit, panier et commande ===== */
/* Fiche produit : présentation de la maquette autour du formulaire d'achat natif */
.cj-product {
  padding-block: 1.25rem clamp(3rem, 6vw, 5rem);
}
.cj-product .cj-crumbs {
  margin-block-end: 1.5rem;
}
.cj-product__top {
  gap: clamp(1.5rem, 4vw, 3.5rem);
  margin-block-end: clamp(2rem, 5vw, 3.5rem);
}
.cj-product__media .woocommerce-product-gallery__image img {
  border-radius: 4px;
}
.cj-product__labels {
  gap: 0.4rem;
  margin: 0 0 0.9rem;
}
.cj-product__labels .wp-block-post-terms {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0;
}
.cj-product__labels .wp-block-post-terms a {
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
}
.cj-product__universe a {
  background: var(--wp--preset--color--water-light);
  color: #0a6675;
}
.cj-product__universe a[href*="/thermes/"] {
  background: #e7eff1;
  color: var(--wp--preset--color--ink);
}
.cj-product__universe a[href*="/residence/"] {
  background: #f5ebda;
  color: #7d5a27;
}
.cj-product__category a {
  background: var(--wp--preset--color--paper-alt);
  color: var(--wp--preset--color--ink-soft);
}
.cj-product__title {
  margin: 0 0 0.4rem;
  font-size: clamp(2rem, 4vw, 2.75rem);
  line-height: 1.1;
}
.cj-product__lede {
  margin: 0 0 1.25rem;
}
.cj-product__lede p {
  margin: 0;
  font-size: 1.12rem;
  line-height: 1.55;
  color: var(--wp--preset--color--ink-soft);
}
.cj-product__price {
  padding-block: 0.9rem;
  border-block: 1px solid var(--wp--preset--color--line);
  margin-block-end: 1.5rem;
  font-family: var(--wp--preset--font-family--serif);
  font-size: 1.75rem;
  color: var(--wp--preset--color--ink);
}

/* Formulaire d'achat : champs et bouton au style du site */
.cj-product__form label {
  font-weight: 600;
  color: var(--wp--preset--color--ink);
}
.cj-product__form input[type="text"],
.cj-product__form input[type="email"],
.cj-product__form input[type="number"],
.cj-product__form input[type="date"],
.cj-product__form textarea,
.cj-product__form select {
  box-sizing: border-box;
  width: 100%;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 4px;
  background: var(--wp--preset--color--white);
  font: inherit;
  color: var(--wp--preset--color--ink);
}
.cj-product__form input:focus-visible,
.cj-product__form textarea:focus-visible,
.cj-product__form select:focus-visible {
  outline: 2px solid var(--wp--preset--color--water-dark);
  outline-offset: 1px;
  border-color: var(--wp--preset--color--water-dark);
}
.cj-product__form .quantity input.qty {
  width: 4.5rem;
  text-align: center;
}
.cj-product .cj-product__form .single_add_to_cart_button {
  padding: 1rem 1.75rem;
  border-radius: 4px;
  background: var(--wp--preset--color--terra-button);
  color: var(--wp--preset--color--white);
  font-size: 1rem;
  font-weight: 700;
}
.cj-product .cj-product__form .single_add_to_cart_button:hover {
  background: var(--wp--preset--color--terra-ink);
}
.cj-recipient-note {
  font-size: 0.88rem;
  color: var(--wp--preset--color--ink-mute);
}

/* Visuel du bon sous les champs du bénéficiaire : une vignette sert d'aperçu du bon cadeau, comme sur l'ancienne boutique (retours CTS du 03/11/2026) */
.cts-add-form .voucher-image-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1rem 0 0.25rem;
}
.cts-add-form .voucher-image-option img {
  display: block;
  width: 150px;
  height: auto;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 3px;
  background: #fff;
}

.cj-product__cart-link {
  margin-block-start: 1rem;
}
.cj-product__cart-link .wp-block-button__link {
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 4px;
  background: var(--wp--preset--color--white);
  color: var(--wp--preset--color--ink);
}
.cj-product__cart-link .wp-block-button__link:hover {
  border-color: var(--wp--preset--color--ink);
  background: var(--wp--preset--color--white);
  color: var(--wp--preset--color--ink);
}

/* Description et « Vous aimerez aussi » */
.cj-product__details {
  max-width: 820px;
}
.cj-product__related {
  margin-block-start: clamp(2.5rem, 6vw, 4rem);
}
.cj-product h2.cj-product__related-title {
  margin: 0 0 1.5rem;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
}
.cj-product__related .wc-block-product {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 4px;
  background: var(--wp--preset--color--white);
}
.cj-product__related .wc-block-components-product-image {
  margin: 0;
}
.cj-product__related .wc-block-components-product-image .wc-block-components-notices:not(:has(*)) {
  display: none;
}
.cj-product__related .wc-block-components-product-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.cj-product__related .wp-block-post-title {
  margin: 1rem 1.1rem 0.4rem;
  font-size: 1.2rem;
  line-height: 1.25;
}
.cj-product__related .wp-block-post-title a {
  color: var(--wp--preset--color--ink);
  text-decoration: none;
}
.cj-product__related .wc-block-components-product-price {
  margin: 0 1.1rem 1rem;
  font-weight: 600;
  color: var(--wp--preset--color--ink);
}
.cj-product__related .wc-block-product > :last-child {
  margin: auto 1.1rem 1.1rem;
  justify-content: flex-start;
}

/* Panier et commande : en-tête de page de la maquette, carte pour le panier vide */
.cj-cart-page,
.cj-checkout-page {
  padding-block: 1.25rem clamp(3rem, 6vw, 5rem);
}
.cj-cart-page .cj-crumbs.woocommerce,
.cj-checkout-page .cj-crumbs.woocommerce {
  max-width: var(--wp--style--global--wide-size);
  margin-inline: auto;
  margin-block-end: 1rem;
}
.cj-checkout-page .cj-checkout-page__content > .woocommerce {
  max-width: none;
}
.cj-page-lede {
  margin-block-end: 1.5rem;
}
.cj-page-lede__eyebrow {
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--terra-ink);
}
.cj-page-lede__title {
  margin: 0 0 0.5rem;
}
.cj-page-lede__lead {
  max-width: 60ch;
  margin: 0;
  font-size: 1.12rem;
  color: var(--wp--preset--color--ink-soft);
}
.cj-cart-page .woocommerce:has(> .wc-empty-cart-message) {
  max-width: 640px;
  padding: clamp(2rem, 5vw, 3rem) clamp(1.25rem, 4vw, 2.5rem);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 12px;
  background: var(--wp--preset--color--white);
  text-align: center;
}

.cj-cart-page .return-to-shop {
  margin: 1.5rem 0 0;
}

/* Actualités : pagination en pastilles, comme les filtres de rubrique */
.cts-journal-query .wp-block-query-pagination {
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.cts-journal-query .wp-block-query-pagination-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.cts-journal-query .wp-block-query-pagination .page-numbers,
.cts-journal-query .wp-block-query-pagination-next,
.cts-journal-query .wp-block-query-pagination-previous {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  box-sizing: border-box;
  padding: 0 1rem;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 4px;
  background: var(--wp--preset--color--white);
  color: var(--wp--preset--color--ink);
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
}
.cts-journal-query .wp-block-query-pagination a:hover {
  border-color: var(--wp--preset--color--water-dark);
  color: var(--wp--preset--color--water-dark);
}
.cts-journal-query .wp-block-query-pagination .page-numbers.current {
  border-color: var(--wp--preset--color--water-dark);
  background: var(--wp--preset--color--water-dark);
  color: var(--wp--preset--color--white);
}
.cts-journal-query .wp-block-query-pagination .page-numbers.dots {
  border-color: transparent;
  background: none;
}

/* Galerie : filtres au même dessin que ceux des actualités, filtre choisi en couleur pleine */
.cts-gallery-filters .wp-block-button.wp-block-button .wp-block-button__link {
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 999px;
  background: var(--wp--preset--color--white);
  color: var(--wp--preset--color--ink);
}
.cts-gallery-filters .wp-block-button.wp-block-button .wp-block-button__link:hover {
  border-color: var(--wp--preset--color--water-dark);
  color: var(--wp--preset--color--water-dark);
}
.cts-gallery-filters .wp-block-button.wp-block-button .wp-block-button__link[aria-pressed="true"] {
  border-color: var(--u, var(--wp--preset--color--water-dark));
  background: var(--u, var(--wp--preset--color--water-dark));
  color: var(--wp--preset--color--white);
}

/* Pages Résidence et séjours : boutons rectangulaires à petit rayon, comme le reste du site */
.cts-landing .wp-block-button__link {
  border-radius: 4px;
}

/* Accueil, chiffres de la Résidence : « Illimité » tient dans un écran de 320 px */
@media (max-width: 359px) {
  .cj-stats .cj-stat--accent .cj-stat__num {
    font-size: 1.5rem;
  }
}

/* « Vous aimerez aussi » sur mobile : le libellé du bouton passe à la ligne au lieu d'être coupé */
.cj-product__related .wc-block-product .wp-element-button,
.cj-product__related .wc-block-product .button {
  white-space: normal;
  max-width: 100%;
  line-height: 1.25;
  text-align: center;
}

/* Mini-panier fermé : sa couche ne doit pas élargir la page sur les petits écrans */
.wc-block-components-drawer__screen-overlay--is-hidden {
  max-width: 100vw;
  overflow: hidden;
}

/* ===== En-tête, pied de page, accueil, espace client, 404 et recherche ===== */
/* En-tête : largeur de contenu de la maquette (wrap 1180 px, gouttières 28 px) */
.site-topbar > .site-topbar__row,
.site-masthead > .site-masthead__row {
  max-width: 1124px;
}

/* Téléphone de la barre bleue : pictogramme au trait de la maquette */
.site-topbar__info a:first-child::before {
  content: '';
  display: inline-block;
  width: 15px;
  height: 15px;
  margin-right: 0.4rem;
  vertical-align: -3px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Cpath d='M5 3h3l2 5-2.5 1.5a12 12 0 0 0 6 6L15 13l5 2v3a2 2 0 0 1-2.2 2A17 17 0 0 1 3 5.2 2 2 0 0 1 5 3z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Cpath d='M5 3h3l2 5-2.5 1.5a12 12 0 0 0 6 6L15 13l5 2v3a2 2 0 0 1-2.2 2A17 17 0 0 1 3 5.2 2 2 0 0 1 5 3z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Menu principal ordinateur : 0,86 rem en capitales (#753, précision du 19/10), espacements et chevrons de la maquette */
@media (min-width: 1081px) {
  .site-masthead__row > .site-masthead__nav,
  .site-masthead__nav .wp-block-navigation__container {
    font-size: 0.86rem;
  }
  .site-masthead__nav .wp-block-navigation__container > li > .wp-block-navigation-item__content {
    padding: 0.65rem;
  }
  .site-masthead__nav .wp-block-navigation__container > .has-child > .wp-block-navigation-item__content {
    padding-right: 0.3rem;
  }
  .site-masthead__nav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-icon {
    width: 9px;
    height: 9px;
    margin: 0 0.65rem 0 0;
    opacity: 0.5;
  }
  .site-masthead__nav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container {
    top: calc(100% + 10px);
  }
  .site-masthead__nav .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: -13px;
    height: 13px;
  }
}

/* Accueil, grand écran : boutons au format btn-lg et repère « Découvrir » de la maquette */
.cj-home-hero__actions .wp-block-button__link {
  min-height: 50px;
  padding: 0.9rem 1.6rem;
  font-size: 0.95rem;
}
@media (min-width: 769px) {
  .cj-home-hero::before {
    content: 'Découvrir';
    position: absolute;
    right: calc(5vw - 0.36rem);
    bottom: calc(2.4rem + 52px + 0.7rem);
    z-index: 3;
    font-size: 0.58rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    writing-mode: vertical-rl;
    pointer-events: none;
  }
  .cj-home-hero::after {
    content: '';
    position: absolute;
    right: 5vw;
    bottom: 2.4rem;
    z-index: 3;
    width: 1px;
    height: 52px;
    background: linear-gradient(#fff, #fff) 0 -52px / 1px 52px no-repeat, rgba(255, 255, 255, 0.3);
    animation: cj-scroll-drop 2.2s ease-in-out infinite;
    pointer-events: none;
  }
}
@keyframes cj-scroll-drop {
  0% {
    background-position: 0 -52px, 0 0;
  }
  60%,
  100% {
    background-position: 0 62px, 0 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cj-home-hero::after {
    animation: none;
  }
}

/* Pages utilitaires (espace client, 404, recherche) : blocs natifs dans l'en-tête de la maquette */
.cts-maquette-content .utility-hero.is-layout-flow > .wrap,
.cts-maquette-content .utility-hero .wrap > *,
.cts-maquette-content .utility-hero .wrap > * > * {
  margin-block-start: 0;
}
.cts-maquette-content .utility-hero h1 {
  margin-top: 0;
}
.cts-maquette-content .utility-hero p:not(.eyebrow) {
  margin-bottom: 0;
}
.cts-maquette-content .utility-hero-card p:first-child {
  margin: 0;
}
.cts-maquette-content .utility-hero-card p + p {
  margin: 0.35rem 0 0;
}

/* Espace client connecté : navigation latérale et panneau (account-layout de la maquette) */
.woocommerce-account .cts-maquette-content .woocommerce {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 2.25rem;
  align-items: start;
  max-width: none;
}
body:not(.logged-in).woocommerce-account .cts-maquette-content .woocommerce {
  display: block;
}
.woocommerce-account .cts-maquette-content .woocommerce::before,
.woocommerce-account .cts-maquette-content .woocommerce::after {
  display: none;
}
.woocommerce-account .cts-maquette-content .woocommerce > .woocommerce-notices-wrapper {
  grid-column: 1 / -1;
}
.woocommerce-account .cts-maquette-content .woocommerce > .woocommerce-notices-wrapper:empty {
  display: none;
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-navigation,
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content {
  float: none;
  width: auto;
  margin: 0;
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-navigation ul {
  position: sticky;
  top: calc(var(--cj-sticky-h, 79px) + 1rem);
  margin: 0;
  padding: 0;
  overflow: hidden;
  list-style: none;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-navigation li {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--line-soft);
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-navigation li:last-child {
  border-bottom: 0;
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-navigation a {
  display: flex;
  align-items: center;
  padding: 0.85rem 1.1rem;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink-soft);
  text-decoration: none;
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-navigation a:hover {
  background: var(--paper);
  color: var(--u-dark);
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-navigation li.is-active a {
  text-decoration: none;
  background: var(--u-light);
  color: var(--u-dark);
  box-shadow: inset 3px 0 0 var(--u);
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content {
  padding: clamp(1.35rem, 3vw, 2rem);
  background: #fff;
  border: 1px solid var(--line);
  border-top: 3px solid var(--u-mid);
  border-radius: 6px;
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content > :first-child {
  margin-top: 0;
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content > :last-child {
  margin-bottom: 0;
}
@media (max-width: 880px) {
  .woocommerce-account .cts-maquette-content .woocommerce {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }
  .woocommerce-account .cts-maquette-content .woocommerce-MyAccount-navigation ul {
    position: static;
  }
}

/* Espace client visiteur : connexion et inscription en deux panneaux (grid-2, 960 px), comme compte/connexion.html */
.woocommerce-account .cts-maquette-content #customer_login {
  max-width: 960px;
  margin-inline: auto;
  align-items: start;
}
.woocommerce-account .cts-maquette-content #customer_login.cts-login--single {
  grid-template-columns: minmax(0, 1fr);
  max-width: 480px;
}
.woocommerce-account .cts-maquette-content #customer_login .panel {
  border-top: 3px solid var(--u-mid);
}
.woocommerce-account .cts-maquette-content #customer_login h2 {
  margin: 0 0 1rem;
  font-size: 1.45rem;
}
.woocommerce-account .cts-maquette-content #customer_login .btn-row {
  margin-top: 1rem;
}
.woocommerce-account .cts-maquette-content #customer_login .cts-login__lost {
  margin-top: 1rem;
}
.woocommerce-account .cts-maquette-content #customer_login .cts-login__note {
  font-size: 0.85rem;
}
.woocommerce-account .cts-maquette-content #customer_login .note-info .btn-row {
  margin-top: 0.8rem;
}

/* Formulaires WooCommerce de l'espace client : champs et boutons de la maquette (.field, .btn) */
.woocommerce-account .cts-maquette-content form .form-row {
  margin: 0 0 1.15rem;
  padding: 0;
}
.woocommerce-account .cts-maquette-content form .form-row label:not(.woocommerce-form__label-for-checkbox):not(.checkbox) {
  display: block;
  margin-bottom: 0.38rem;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--ink);
}
.woocommerce-account .cts-maquette-content form .form-row .required {
  color: var(--err);
}
.woocommerce-account .cts-maquette-content .woocommerce-form-login__rememberme,
.woocommerce-account .cts-maquette-content .woocommerce-form__label-for-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.9rem;
  font-weight: 400;
  color: var(--ink-soft);
}
.woocommerce-account .cts-maquette-content form.login .form-row:has(.woocommerce-form-login__submit) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}
.woocommerce-account .cts-maquette-content .woocommerce-Button:not(.wc-forward),
.woocommerce-account .cts-maquette-content .woocommerce-form-login__submit,
.woocommerce-account .cts-maquette-content .woocommerce-form-register__submit,
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content .button:not(.wc-forward) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 0;
  padding: 0.78rem 1.35rem;
  border: 1px solid var(--terra-btn);
  border-radius: 4px;
  background: var(--terra-btn);
  color: #fff;
  font-family: var(--sans);
  font-size: 0.91rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}
.woocommerce-account .cts-maquette-content .woocommerce-Button:not(.wc-forward):hover,
.woocommerce-account .cts-maquette-content .woocommerce-form-login__submit:hover,
.woocommerce-account .cts-maquette-content .woocommerce-form-register__submit:hover,
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content .button:not(.wc-forward):hover {
  border-color: var(--terra-ink);
  background: var(--terra-ink);
  color: #fff;
}
.woocommerce-account .cts-maquette-content .woocommerce-form-login__submit,
.woocommerce-account .cts-maquette-content .woocommerce-form-register__submit {
  width: 100%;
}
.woocommerce-account .cts-maquette-content form.register .woocommerce-form-register__submit.button {
  border-color: var(--ink);
  background: var(--ink);
}
.woocommerce-account .cts-maquette-content form.register .woocommerce-form-register__submit.button:hover {
  border-color: var(--u-dark);
  background: var(--u-dark);
}
.woocommerce-account .cts-maquette-content .woocommerce-LostPassword {
  margin: 1rem 0 0;
  font-size: 0.88rem;
}
.woocommerce-account .cts-maquette-content .woocommerce-LostPassword a,
.woocommerce-account .cts-maquette-content .woocommerce-privacy-policy-text a {
  color: var(--u-dark);
}
.woocommerce-account .cts-maquette-content .woocommerce-privacy-policy-text p,
.woocommerce-account .cts-maquette-content form.register > p:not(.form-row) {
  font-size: 0.85rem;
  color: var(--ink-mute);
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content h2,
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content h3,
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content legend {
  font-size: 1.25rem;
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content fieldset {
  margin: 1.5rem 0;
  padding: 0;
  border: 0;
}
.woocommerce-account .cts-maquette-content .woocommerce-Addresses {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
}
.woocommerce-account .cts-maquette-content .woocommerce-Addresses::before,
.woocommerce-account .cts-maquette-content .woocommerce-Addresses::after {
  display: none;
}
.woocommerce-account .cts-maquette-content .woocommerce-Addresses > .woocommerce-Address {
  float: none;
  width: auto;
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content th,
.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content td {
  padding: 0.75rem 0.6rem;
  border-bottom: 1px solid var(--line-soft);
  text-align: left;
}
.woocommerce-account .cts-maquette-content .woocommerce-info,
.woocommerce-account .cts-maquette-content .woocommerce-message,
.woocommerce-account .cts-maquette-content .woocommerce-error {
  margin: 0 0 1.25rem;
  padding: 1rem 1.2rem;
  border: 1px solid var(--u-mid);
  border-left: 3px solid var(--u);
  border-radius: 4px;
  background: var(--u-light);
  color: var(--ink-soft);
  font-size: 0.93rem;
  list-style: none;
}
.woocommerce-account .cts-maquette-content .woocommerce-info::before,
.woocommerce-account .cts-maquette-content .woocommerce-message::before,
.woocommerce-account .cts-maquette-content .woocommerce-error::before {
  display: none;
}
.woocommerce-account .cts-maquette-content .woocommerce-error {
  border-color: #e7c3c1;
  border-left-color: var(--err);
  background: var(--err-bg);
}

/* 404 et recherche */
.cj-utility .cj-search-form {
  margin-top: 1.5rem;
  max-width: 560px;
}
.cj-utility .cj-search-form .wp-block-search__inside-wrapper {
  gap: 0.5rem;
}
.cj-utility .cj-search-form .wp-block-search__input {
  min-height: 46px;
  border-radius: var(--r-sm);
}
.cj-utility .cj-search-form .wp-block-search__button {
  min-height: 46px;
  margin: 0;
  padding: 0.7rem 1.3rem;
  border: 1px solid var(--terra-btn);
  border-radius: 4px;
  background: var(--terra-btn);
  color: #fff;
  font-family: var(--sans);
  font-size: 0.91rem;
  font-weight: 700;
}
.cj-utility .cj-search-form .wp-block-search__button:hover {
  border-color: var(--terra-ink);
  background: var(--terra-ink);
}
.cj-utility .utility-hero .wp-block-query-title {
  margin: 0 0 0.35rem;
}
.cj-utility .cj-utility-links .wp-block-buttons {
  gap: 0.75rem;
}
.cj-utility .cj-search-list {
  display: grid;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cj-utility .cj-search-list > li {
  margin: 0;
}
.cj-utility .cj-search-item {
  padding: 1.25rem 1.4rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.cj-utility .cj-search-item .wp-block-post-title {
  margin: 0 0 0.4rem;
  font-size: 1.3rem;
}
.cj-utility .cj-search-item .wp-block-post-title a {
  color: var(--ink);
  text-decoration: none;
}
.cj-utility .cj-search-item .wp-block-post-title a:hover {
  color: var(--u-dark);
  text-decoration: underline;
}
.cj-utility .cj-search-item .wp-block-post-excerpt,
.cj-utility .cj-search-item .wp-block-post-excerpt__excerpt {
  margin: 0;
  font-size: 0.93rem;
  color: var(--ink-soft);
}
.cj-utility .wp-block-query-pagination {
  margin-top: 2rem;
  gap: 0.5rem;
  font-size: 0.92rem;
}
.cj-utility .wp-block-query-pagination a,
.cj-utility .wp-block-query-pagination .current {
  padding: 0.4rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
}
.cj-utility .wp-block-query-pagination .current {
  border-color: var(--u-dark);
  background: var(--u-dark);
  color: #fff;
}
.cj-utility .cj-search-results .note {
  margin: 0;
}

.woocommerce-account .cts-maquette-content .woocommerce-MyAccount-content a:not(.button):not(.woocommerce-Button) {
  color: var(--u-dark);
}
.woocommerce-account .cts-maquette-content form .form-row .input-text,
.woocommerce-account .cts-maquette-content form .form-row select {
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  padding: 0.72rem 0.9rem;
  background: #fff;
  font-size: 0.95rem;
}
.woocommerce-account .cts-maquette-content form .form-row .input-text:focus {
  border-color: var(--u);
  box-shadow: 0 0 0 3px var(--u-light);
  outline: none;
}
.woocommerce-account .cts-maquette-content form .form-row em {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.8rem;
  font-style: normal;
  color: var(--ink-mute);
}

/* Bandeaux d'information WooCommerce : note-info de la maquette */
.woocommerce-account .cts-maquette-content .wc-block-components-notice-banner {
  margin: 0 0 1rem;
  padding: 1rem 1.2rem;
  border: 1px solid var(--u-mid);
  border-left: 3px solid var(--u);
  border-radius: 4px;
  background: var(--u-light);
  color: var(--ink-soft);
  font-size: 0.93rem;
}
.woocommerce-account .cts-maquette-content .wc-block-components-notice-banner > svg {
  background: var(--u);
}
/* La bannière reçoit le focus pour être lue par les lecteurs d'écran : pas de contour, la couleur dit l'erreur ou le succès. */
.woocommerce-account .cts-maquette-content .wc-block-components-notice-banner[tabindex="-1"]:focus {
  outline: none;
}
.woocommerce-account .cts-maquette-content .wc-block-components-notice-banner.is-error {
  border-color: #e7c3c1;
  border-left-color: var(--err);
  background: var(--err-bg);
}
.woocommerce-account .cts-maquette-content .wc-block-components-notice-banner.is-error > svg {
  background: var(--err);
}
.woocommerce-account .cts-maquette-content .wc-block-components-notice-banner.is-success {
  border-color: #bcd9cc;
  border-left-color: var(--ok);
  background: var(--ok-bg);
}
.woocommerce-account .cts-maquette-content .wc-block-components-notice-banner.is-success > svg {
  background: var(--ok);
}
.woocommerce-account .cts-maquette-content .wc-block-components-notice-banner .wc-forward {
  color: var(--u-dark) !important;
  font-weight: 600;
  text-decoration: underline !important;
  opacity: 1 !important;
}
.cts-maquette-content .utility-hero-card a[href^='tel:'] {
  white-space: nowrap;
}
.cj-utility .cj-utility-links .wp-block-button__link {
  border-radius: 4px;
}

/* ===== Pages des Thermes ===== */
/* Demande de cure : encarts de la colonne de droite au format des panneaux de la maquette (thermes/reservation.html) */
.cts-maquette-content .cts-cure-sidebar aside.panel .data-list dt { flex-shrink: 0; }
.cts-maquette-content .cts-cure-sidebar aside.panel .data-list div:nth-child(2) dd { font-size: 0.82rem; overflow-wrap: anywhere; }
.cts-maquette-content .cts-cure-sidebar aside.panel h3 { font-size: 1rem; }
.cts-maquette-content .cts-cure-help.panel { background: #fff; color: inherit; border-radius: 6px; padding: clamp(1.35rem, 3vw, 2rem); }
.cts-maquette-content .cts-cure-help.panel h2 { font-size: 1.2rem; margin-top: 0; }
.cts-maquette-content .cts-cure-help.panel .wp-block-details { border-bottom-color: var(--line-soft); }
.cts-maquette-content .cts-cure-help.panel .cts-cure-booking-terms { border-top-color: var(--line-soft); }
.cts-maquette-content .cts-cure-help.panel summary { font-size: 0.92rem; }
.cts-maquette-content .cts-cure-help.panel > p { font-size: 0.92rem; }
.cts-maquette-content .cts-cure-help.panel .cts-cure-booking-terms { padding-left: 0; padding-right: 0; margin-left: 0; margin-right: 0; font-size: 0.8rem; color: var(--ink-mute); }
.cts-maquette-content .cts-cure-help.panel .cts-cure-booking-terms > * { margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; }
.cts-maquette-content .cts-cure-help.panel .cts-cure-booking-terms h3 { font-size: 0.95rem; }
.cts-maquette-content .cts-cure-main .cts-reservation-steps { border-radius: 6px; border-color: var(--line); border-top: 3px solid var(--u-mid); background: #fff; }
/* Pages Thermes : sous 360 px, les grilles auto-fit (330/320/276 px minimum) débordaient de 16 à 26 px et rognaient le texte (défaut hérité de la maquette) */
.cts-maquette-content[data-univers="thermes"] .split { grid-template-columns: repeat(auto-fit, minmax(min(330px, 100%), 1fr)); }
.cts-maquette-content[data-univers="thermes"] .grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); }
.cts-maquette-content[data-univers="thermes"] .grid-3 { grid-template-columns: repeat(auto-fit, minmax(min(276px, 100%), 1fr)); }
.cts-maquette-content[data-univers="thermes"] table.tbl-stack td::before { flex-shrink: 0; }

/* ===== Résidence, Casteljaloux, actualités, galerie et pages d’information ===== */
/* Lot residence : écarts de rendu avec la maquette sur les pages Résidence, Casteljaloux, journal, galerie et pages d'information. */

/* Les sections natives (groupes) ne prennent pas l'espacement automatique entre blocs : la maquette enchaîne héros, fil d'Ariane et sections sans marge. */
.cts-maquette-content.is-layout-flow > * { margin-block: 0; }

/* Carte produit : le lien média doit être un bloc pour garder le format 4/3 de la maquette. */
.cts-maquette-content .product-card a.card-media { display: block; }

/* En-tête des pages d'information (classe maquette page-lede posée sur un groupe natif). */
.cts-maquette-content .page-lede { max-width: 780px; margin-bottom: clamp(1.5rem, 3vw, 2.4rem); }
.cts-maquette-content .page-lede h1 { margin-bottom: 0.35em; }
.cts-maquette-content .page-lede .lead { margin-bottom: 0; }
.cts-maquette-content .page-lede:has(.eyebrow) ~ .cts-legal-body > h2:not(:first-child) { margin-top: 2.5rem; }
.cts-maquette-content .cts-legal-body > * + * { margin-block-start: 0; }

/* Journal : section des articles serrée sous le fil d'Ariane (padding-top 1rem dans la maquette). */
.cts-maquette-content section.section:has(> .wrap > .cts-journal-filters),
.cts-maquette-content section.section:has(> .wrap > .cts-gallery-filters) { padding-top: 1rem; }
.cts-journal-query .wp-block-post-template > li { margin-block: 0; }
.cts-journal-card .wp-block-post-featured-image { aspect-ratio: 3 / 2; }
.cts-journal-card .wp-block-post-terms__separator { display: none; }
.cts-journal-single .hero-inner .wp-block-post-terms.eyebrow { gap: 0; }
.cts-journal-single .hero-inner .wp-block-post-terms.eyebrow::before { margin-right: 0.6rem; }

/* Galerie : colonnes au format naturel des photos comme la maquette (galerie.css), sans arrondis (#764). */
.cts-maquette-content .cts-gallery-grid { display: block; columns: 4 260px; column-gap: 1rem; }
.cts-maquette-content .cts-gallery-grid .wp-block-image { break-inside: avoid; display: block; margin: 0 0 1rem !important; overflow: hidden; background: var(--paper-alt); cursor: zoom-in; }
.cts-maquette-content .cts-gallery-grid .wp-block-image img,
.cts-maquette-content .cts-gallery-grid.wp-block-gallery.is-cropped .wp-block-image img { aspect-ratio: auto; height: auto !important; width: 100%; display: block; border-radius: 0; transition: transform 0.5s ease; }
.cts-maquette-content .cts-gallery-grid .wp-block-image:hover img { transform: scale(1.04); }

/* Galerie des logements (#757) : même traitement que la galerie photos. */
.cts-maquette-content .wp-block-gallery.cts-residence-gallery { display: block; columns: 3 260px; column-gap: 1rem; }
.cts-maquette-content .wp-block-gallery.cts-residence-gallery .wp-block-image { break-inside: avoid; width: 100% !important; margin: 0 0 1rem !important; overflow: hidden; cursor: zoom-in; }
.cts-maquette-content .wp-block-gallery.cts-residence-gallery .wp-block-image img { height: auto !important; aspect-ratio: auto; object-fit: initial; border-radius: 0; transition: transform 0.5s ease; }
.cts-maquette-content .wp-block-gallery.cts-residence-gallery .wp-block-image:hover img { transform: scale(1.04); }
.cts-maquette-content .btn-row.center { justify-content: center; }
/* Sections de contenu serrées sous le fil d'Ariane (style padding-top: 1rem de la maquette, hors liste blanche). */
.cts-maquette-content section.section:has(> .wrap > .page-lede),
.cts-journal-single section.cts-journal-body { padding-top: 1rem; }
/* Les règles natives de la galerie (sélecteurs :not(#individual-image)) imposent flex et hauteur 100 % : neutralisées pour le format naturel. */
.cts-maquette-content .cts-gallery-grid figure.wp-block-image,
.cts-maquette-content .wp-block-gallery.cts-residence-gallery figure.wp-block-image { display: block !important; width: 100% !important; }
.cts-maquette-content .cts-gallery-grid figure.wp-block-image img,
.cts-maquette-content .wp-block-gallery.cts-residence-gallery figure.wp-block-image img { flex: none !important; height: auto !important; width: 100% !important; aspect-ratio: auto 3 / 2 !important; object-fit: initial !important; contain: none !important; contain-intrinsic-size: none !important; }
/* Notes centrées de la maquette (max-width 820px ; margin-inline n'est pas conservé par le filtre de styles). */
.cts-maquette-content .note[style*="max-width: 820px"] { margin-inline: auto; }
/* Article : respiration sous les images du contenu. */
.cts-journal-single .cts-journal-body .wp-block-image { margin-bottom: 1.5rem; }

/* ===== Formulaires et page Documentation ===== */
.cts-form-page .cts-choice-cards .ff-el-form-check-label > span:not(.cts-choice-desc) { font-weight: 700; }
.cts-form-page .cts-choice-cards .ff-el-form-check-label .cts-choice-desc { font-weight: 400; }
.cts-form-page .fluentform form > fieldset > .cts-form-notice,
.cts-form-page .fluentform form > fieldset > p { grid-column: 1 / -1; margin: 0; }
.cts-maquette-content .cts-form-page .fluentform { border-radius: 6px; }
.cj-panel { display: flex; flex-direction: column; }
.cj-panel .cts-form-page { display: contents; }
.cj-panel .cts-form-privacy--short { order: 1; margin-top: .8rem; }
.cts-doc-recap:empty { display: none; }
#pdf .grid-4 .card-media { aspect-ratio: 3 / 4; display: flex; align-items: center; justify-content: center; overflow: hidden; }
#pdf .grid-4 .card-media img { width: 100%; height: 100%; object-fit: cover; }
#pdf .grid-4 .card-media > span { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 2.2rem; }
#pdf .grid-4 .card:nth-child(3) .card-media { background: #e6f1f3; color: #235e6e; }
#pdf .grid-4 .card:nth-child(4) .card-media { background: #f7efe2; color: #7d5a27; }
#pdf .grid-4 .card-title { font-size: 1.02rem; }

/* ===== Pages des Bains et boutique ===== */
/* Institut : extrait de quatre Escales sur une ligne, sans titre de rubrique (le lien « Voir toutes les Escales » suit) */
.cj-catalog--extrait .cj-section__head,
.cj-catalog--extrait .cj-section__desc,
.cj-catalog--onglets .cj-section__head,
.cj-catalog--onglets .cj-section__desc {
  display: none;
}
.cj-catalog--extrait .cj-section {
  padding-block: 0;
  border: 0;
}
.cj-catalog--extrait .cj-grid > :nth-child(n + 5) {
  display: none;
}
@media (min-width: 1024px) {
  .cj-catalog--extrait .cj-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Catalogue inséré dans une page : pas de marges propres à la page boutique, visuels au format 4/3 des cartes de la maquette */
.cj-catalog--extrait .cj-catalog__wrap,
.cj-catalog--onglets .cj-catalog__wrap {
  padding: 0;
}
.cj-catalog--extrait .cj-card__media,
.cj-catalog--onglets .cj-card__media {
  aspect-ratio: 4 / 3;
  max-height: none;
}

/* Chèques cadeaux : la carte du chèque centrée sur 760 px */
.cj-catalog--cheque .cj-grid {
  grid-template-columns: minmax(0, 1fr);
  max-width: 760px;
  margin-inline: auto;
}

/* Institut, soins à l'unité : les pastilles basculent entre soins du corps et soins du visage */
.cj-catalog--onglets .cj-section {
  padding-block: 0;
  border: 0;
}
.cj-catalog--onglets .cj-section + .cj-section,
.cj-catalog--onglets:has(.cj-section:target) .cj-section {
  display: none;
}
.cj-catalog--onglets .cj-section:target {
  display: block;
  scroll-margin-top: 12rem;
}
.cts-maquette-content .pill-tabs .btn {
  padding: 0.5rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink-soft);
  font-size: 0.88rem;
  font-weight: 600;
}
.cts-maquette-content .pill-tabs .btn:hover {
  border-color: var(--u);
  color: var(--u-dark);
}
.cts-maquette-content .wrap:has(.cj-catalog--onglets):not(:has(.cj-section:target)) .pill-tabs .btn:first-child,
.cts-maquette-content .wrap:has(#cat-les-soins-du-corps:target) .pill-tabs .btn[href="#cat-les-soins-du-corps"],
.cts-maquette-content .wrap:has(#cat-les-soins-du-visage:target) .pill-tabs .btn[href="#cat-les-soins-du-visage"] {
  border-color: var(--u);
  background: var(--u);
  color: #fff;
}

/* Fiche produit, panier, commande : fil d'Ariane sur un bandeau blanc pleine largeur, comme les autres pages */
main.cj-product,
main.cj-cart-page,
main.cj-checkout-page {
  margin-block-start: 0;
  padding-block-start: 0;
}
.cj-product .cj-crumbs,
.cj-cart-page .cj-crumbs.woocommerce,
.cj-checkout-page .cj-crumbs.woocommerce {
  margin-block: 0 1.5rem;
  padding-block: 1rem;
  background: #fff;
  box-shadow: 0 0 0 100vmax #fff, 0 1px 0 100vmax var(--wp--preset--color--line);
  clip-path: inset(0 -100vmax -1px);
}

/* Sur-titre des pages panier et commande : celui de la maquette (trait, bleu de la boutique) */
.cj-page-lede .cj-page-lede__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 0.8rem;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  color: #235e6e;
}
.cj-page-lede .cj-page-lede__eyebrow::before {
  content: "";
  flex: none;
  width: 26px;
  height: 2px;
  background: #3d8fa3;
}

/* Fiche produit : « Ajouter au panier » et « Voir mon panier » côte à côte */
.cj-product__summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 0.75rem;
  align-content: start;
}
.wp-site-blocks > .woocommerce.product:has(> main.cj-product) {
  margin-block-start: 0;
}
.cj-product__summary > *,
.cj-product__summary form.cart > *,
.cj-product__summary .single_variation_wrap > *,
.cj-product__summary .woocommerce-variation-add-to-cart > * {
  grid-column: 1 / -1;
}
.cj-product__summary .cj-product__form,
.cj-product__summary form.cart,
.cj-product__summary .single_variation_wrap,
.cj-product__summary .woocommerce-variation-add-to-cart {
  display: contents;
}
.cj-product .cj-product__summary .wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button {
  grid-column: 1;
  justify-self: start;
  order: 1;
}
.cj-product__summary > .cts-maquette-content {
  order: 2;
}
.cj-product__summary > .cj-product__cart-link {
  grid-column: 2;
  order: 1;
  align-self: center;
  margin: 0;
}
.cj-product__summary > .cj-product__cart-link .wp-block-button__link {
  padding: 1rem 1.5rem;
  border-color: #235e6e;
  color: #235e6e;
  font-weight: 700;
}
.cj-product__details {
  max-width: 820px;
  margin-block-start: clamp(2rem, 5vw, 3rem);
  background: transparent;
}

/* Panier rempli : lignes à gauche, récapitulatif à droite (370 px), comme la maquette */
.cj-cart-page__content:has(.woocommerce-cart-form) > .woocommerce {
  display: contents;
}

.cj-cart-page .woocommerce-cart-form,
.cj-cart-page .cart_totals {
  box-sizing: border-box;
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 1px solid var(--wp--preset--color--line);
  border-top: 3px solid #b8dce5;
  border-radius: 6px;
  background: #fff;
}

.cj-cart-page .cart-collaterals .cart_totals.cart_totals {
  width: auto;
  float: none;
}
.cj-cart-page .cart_totals h2 {
  margin: 0 0 1rem;
  font-size: 1.2rem;
}

.cj-cart-page .wc-proceed-to-checkout {
  padding: 0;
}
.cj-cart-page .wc-proceed-to-checkout .checkout-button {
  display: block;
  margin: 0;
  padding: 0.95rem 1.25rem;
  font-size: 1rem;
  text-align: center;
}

@media (min-width: 961px) {
  .cj-cart-page__content:has(.woocommerce-cart-form) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 370px;
    column-gap: 2.25rem;
    align-items: start;
  }
  .cj-cart-page__content:has(.woocommerce-cart-form) > * {
    margin-block-start: 0;
  }
  .cj-cart-page__content:has(.woocommerce-cart-form) .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
  }
  .cj-cart-page .woocommerce-cart-form {
    grid-column: 1;
    grid-row: 2 / span 2;
  }
  .cj-cart-page .cart-collaterals {
    grid-column: 2;
    grid-row: 2;
  }

}
@media (max-width: 560px) {

  .cj-cart-page .cart-collaterals {
    margin-top: 1.5rem;
  }
}

/* Commande : étapes de la maquette */
.cj-steps {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 2.25rem;
  padding: 0;
  list-style: none;
  counter-reset: cj-step;
}
.cj-steps li {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--wp--preset--color--ink-mute);
  counter-increment: cj-step;
}
.cj-steps li::before {
  content: counter(cj-step);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 27px;
  height: 27px;
  border: 1.5px solid var(--wp--preset--color--line);
  border-radius: 999px;
  background: #fff;
  font-size: 0.8rem;
}
.cj-steps li:not(:last-child)::after {
  content: "";
  width: 34px;
  height: 1px;
  margin-left: 0.35rem;
  background: var(--wp--preset--color--line);
}
.cj-steps li.is-current,
.woocommerce-order-received .cj-steps li:last-child {
  color: var(--wp--preset--color--ink);
}
.cj-steps li.is-current::before,
.woocommerce-order-received .cj-steps li:last-child::before {
  border-color: #3d8fa3;
  background: #3d8fa3;
  color: #fff;
}
.woocommerce-order-received .cj-steps li:not(:last-child) {
  color: #2c7a5b;
}
.woocommerce-order-received .cj-steps li:not(:last-child)::before {
  content: "✓";
  border-color: #2c7a5b;
  background: #e6f2ec;
  color: #2c7a5b;
}

/* Commande : coordonnées à gauche, récapitulatif à droite (370 px) */
.cj-checkout-page .woocommerce-billing-fields > h3,
.cj-checkout-page .woocommerce-additional-fields > h3,
.cj-checkout-page #order_review_heading {
  margin: 0 0 1rem;
  font-size: 1.25rem;
}

.cj-checkout-page #order_review_heading {
  box-sizing: border-box;
  margin: 0;
  padding: clamp(1.35rem, 3vw, 2rem) clamp(1.35rem, 3vw, 2rem) 0.75rem;
  border: 1px solid var(--wp--preset--color--line);
  border-top: 3px solid #b8dce5;
  border-bottom: 0;
  border-radius: 6px 6px 0 0;
  background: #fff;
  font-size: 1.2rem;
}
.cj-checkout-page #order_review {
  box-sizing: border-box;
  padding: 0 clamp(1.35rem, 3vw, 2rem) clamp(1.35rem, 3vw, 2rem);
  border: 1px solid var(--wp--preset--color--line);
  border-top: 0;
  border-radius: 0 0 6px 6px;
  background: #fff;
}

.cj-checkout-page #payment {
  border-radius: 6px;
  background: var(--wp--preset--color--paper-alt, #ede0ce);
}
.cj-checkout-page #payment #place_order {
  float: none;
  width: 100%;
  margin-top: 1rem;
  padding: 0.95rem 1.25rem;
  font-size: 1rem;
}
@media (min-width: 961px) {
  .cj-checkout-page form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 370px;
    grid-template-rows: auto auto 1fr;
    column-gap: 2.25rem;
    align-items: start;
  }
  .cj-checkout-page form.checkout > * {
    grid-column: 1 / -1;
  }

}
@media (max-width: 960px) {
  .cj-checkout-page #order_review_heading {
    margin-top: 2rem;
  }
}

/* Commande : code postal et ville, téléphone et e-mail sur une même ligne, comme le formulaire de la maquette */
@media (min-width: 640px) {
  .cj-checkout-page .woocommerce-billing-fields__field-wrapper {
    display: flex;
    flex-wrap: wrap;
    column-gap: 1rem;
  }
  .cj-checkout-page .woocommerce-billing-fields__field-wrapper > .form-row {
    float: none;
    box-sizing: border-box;
    width: 100%;
  }
  .cj-checkout-page .woocommerce-billing-fields__field-wrapper > #billing_first_name_field,
  .cj-checkout-page .woocommerce-billing-fields__field-wrapper > #billing_last_name_field,
  .cj-checkout-page .woocommerce-billing-fields__field-wrapper > #billing_postcode_field,
  .cj-checkout-page .woocommerce-billing-fields__field-wrapper > #billing_city_field,
  .cj-checkout-page .woocommerce-billing-fields__field-wrapper > #billing_phone_field,
  .cj-checkout-page .woocommerce-billing-fields__field-wrapper > #billing_email_field {
    width: calc(50% - 0.5rem);
  }
}

/* Commande reçue : bandeau d'état vert, articles et suite à gauche, récapitulatif à droite */
.cj-confirmation-page {
  padding-block-end: clamp(3rem, 6vw, 5rem);
}
main.cj-confirmation-page {
  margin-block-start: 0;
}
.cj-confirmation-page .cj-crumbs {
  margin-block: 0 1.5rem;
  padding-block: 1rem;
  background: #fff;
  box-shadow: 0 0 0 100vmax #fff, 0 1px 0 100vmax var(--wp--preset--color--line);
  clip-path: inset(0 -100vmax -1px);
}
.cj-confirmation__status {
  box-sizing: border-box;
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 1px solid #2c7a5b;
  border-radius: 6px;
  background: #e6f2ec;
  text-align: center;
}
.cj-confirmation__status::before {
  content: "✓";
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin: 0 auto 1rem;
  border-radius: 999px;
  background: #2c7a5b;
  color: #fff;
  font-size: 1.7rem;
}
.cj-confirmation__status h1,
.cj-confirmation__status h2 {
  margin: 0 0 0.35rem;
  font-size: 1.9rem;
}
.cj-confirmation__status p {
  margin: 0.35rem auto 0;
  max-width: 60ch;
}
.cj-confirmation__status form {
  max-width: 420px;
  margin: 1rem auto 0;
  text-align: left;
}
.cj-confirmation__cols {
  gap: 2.25rem;
  margin-block-start: 2rem;
}
.cj-confirmation__panel,
.cj-confirmation__main > .wc-block-order-confirmation-additional-information:not(:empty) {
  box-sizing: border-box;
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 1px solid var(--wp--preset--color--line);
  border-top: 3px solid #b8dce5;
  border-radius: 6px;
  background: #fff;
}
.cj-confirmation__main > * + * {
  margin-block-start: 1.5rem;
}
.cj-confirmation-page h2.cj-confirmation__title {
  margin: 0 0 1rem;
  font-size: 1.25rem;
}
.cj-confirmation-page .wc-block-order-confirmation-totals table {
  width: 100%;
  border: 0;
  border-collapse: collapse;
  font-size: 0.92rem;
}
.cj-confirmation-page .wc-block-order-confirmation-totals th,
.cj-confirmation-page .wc-block-order-confirmation-totals td {
  padding: 0.6rem 0;
  border: 0;
  border-bottom: 1px solid #eae0ce;
  background: none;
  text-align: left;
}
.cj-confirmation-page .wc-block-order-confirmation-totals thead {
  display: none;
}
.cj-confirmation-page .wc-block-order-confirmation-totals td:last-child,
.cj-confirmation-page .wc-block-order-confirmation-totals th:last-child {
  text-align: right;
  font-weight: 700;
  color: var(--wp--preset--color--ink);
  white-space: nowrap;
}
.cj-confirmation-page .wc-block-order-confirmation-totals .wc-item-meta {
  margin: 0.25rem 0 0;
  padding: 0;
  list-style: none;
  font-size: 0.82rem;
  color: var(--wp--preset--color--ink-mute);
}
.cj-confirmation-page .wc-block-order-confirmation-totals .wc-item-meta p {
  display: inline;
  margin: 0;
}
.cj-confirmation__recap {
  position: sticky;
  top: 96px;
}
.cj-confirmation-page .wc-block-order-confirmation-summary {
  margin: 0 0 1.25rem;
}
.cj-confirmation-page .wc-block-order-confirmation-summary-list {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.95rem;
}
.cj-confirmation-page .wc-block-order-confirmation-summary-list-item {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.25rem 1rem;
  margin: 0;
  padding: 0.6rem 0;
  border-bottom: 1px solid #eae0ce;
}
.cj-confirmation-page .wc-block-order-confirmation-summary-list-item__value {
  font-weight: 700;
  color: var(--wp--preset--color--ink);
  text-align: right;
  overflow-wrap: anywhere;
}
.cj-confirmation__actions {
  gap: 0.75rem;
}
.cj-confirmation__actions .wp-block-button__link {
  border-radius: 4px;
  text-align: center;
}
.cj-confirmation__main .cts-maquette-content {
  background: transparent;
}
@media (max-width: 781px) {
  .cj-confirmation__recap {
    position: static;
  }
}
.cj-confirmation-page .cj-crumbs.woocommerce {
  max-width: var(--wp--style--global--wide-size);
  margin-inline: auto;
}
.cj-confirmation__main > .cts-maquette-content {
  margin-block-start: 1.5rem;
}
/* Panier sur mobile : WooCommerce aligne à droite chaque cellule avec !important, la carte de ligne reste alignée à gauche */

/* === formulaires : début === */
/* La carte du formulaire est le conteneur .cts-form-page (cts-forms.css) : le cadre que le gabarit posait sur Fluent Forms est retiré. */
.cts-maquette-content .cts-form-page .fluentform { padding: 0; border: 0; border-radius: 0; background: none; }
/* Dans une page au gabarit, la carte suit la grille de la maquette (cart-layout, wrap) : pas de marge propre */
.cts-maquette-content .cts-form-page { margin: 0; }
.cts-maquette-content .cts-form-page .cts-form-privacy h2 { font: 600 1.2rem/1.4 var(--serif); }
/* Demande rapide de l'accueil : titre aligné à gauche comme le form-title de la maquette */
.cj-panel > .wp-block-heading { text-align: left; }
.cj-panel.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: none; margin-left: 0 !important; margin-right: 0 !important; }
/* Newsletter du pied de page (#779) : champ et cases au dessin des champs de la maquette sur fond sombre (formulaire de l'accueil) */
.site-footer .cts-newsletter > label:not(.cts-newsletter__consent) { display: block; margin-bottom: 0.45rem; font-size: 0.78rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: #d4bfa0; }
.site-footer .cts-newsletter__row { margin: 0 0 1.15rem; }
.site-footer .cts-newsletter__row input { height: auto; min-height: 48px; padding: 0.78rem 0.95rem; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 2px; background: rgba(255, 255, 255, 0.08); font-size: 0.9rem; font-weight: 300; color: #fff; }
.site-footer .cts-newsletter__row input:focus { outline: none; border-color: #d4845a; background: rgba(255, 255, 255, 0.12); }
.site-footer .cts-newsletter__row button { border-radius: 4px; font-size: 0.95rem; font-weight: 700; }
.site-footer .cts-newsletter__consent { gap: 0.65rem; font-size: 0.82rem; color: rgba(255, 255, 255, 0.78); cursor: pointer; }
.site-footer .cts-newsletter__consent + .cts-newsletter__consent { margin-top: 0.5rem; }
.site-footer .cts-newsletter__consent input { -webkit-appearance: none; appearance: none; display: grid; place-content: center; width: 17px; height: 17px; margin: 0.2rem 0 0; border: 1px solid rgba(255, 255, 255, 0.35); border-radius: 2px; background: rgba(255, 255, 255, 0.08); cursor: pointer; }
.site-footer .cts-newsletter__consent input::before { content: ''; width: 9px; height: 5px; margin-top: -2px; border: solid #fff; border-width: 0 0 2px 2px; transform: rotate(-45deg) scale(0); transition: transform 0.12s ease; }
.site-footer .cts-newsletter__consent input:checked { border-color: #d4845a; background: #d4845a; }
.site-footer .cts-newsletter__consent input:checked::before { transform: rotate(-45deg) scale(1); }
.site-footer .cts-newsletter__consent input:focus-visible { outline: 2px solid #d4845a; outline-offset: 2px; }
/* Case obligatoire marquée comme les champs de la maquette ; bloc sur toute la largeur du pied ; mention et lien au même ton */
.site-footer .cts-newsletter__consent:has(input[required]) > span::after { content: '\00a0*'; color: #d4845a; }
.site-footer .cts-newsletter { max-width: none; }
.site-footer .site-footer__newsletter-privacy { color: rgba(255, 255, 255, 0.6); }
.site-footer .site-footer__newsletter-privacy a { color: #b8dce5; text-decoration: underline; text-underline-offset: 0.2em; }
/* === formulaires : fin === */

/* === global : début === */
/* Coupures de lignes de la maquette : WordPress impose text-wrap: pretty aux titres et paragraphes, la maquette garde le retour à la ligne normal */
blockquote, caption, figcaption, h1, h2, h3, h4, h5, h6, p { text-wrap: wrap; }
/* Rubrique en cours du menu principal : filet de 2 px à la couleur de l'univers, comme la maquette */
.site-masthead__nav .wp-block-navigation__container > .is-current-section { --u: #235e6e; --u-dark: #183f4b; }
.site-masthead__nav .wp-block-navigation__container > .is-current-section[data-univers="bains"],
.site-masthead__nav .wp-block-navigation__container > .is-current-section[data-univers="boutique"] { --u: #3d8fa3; --u-dark: #235e6e; }
.site-masthead__nav .wp-block-navigation__container > .is-current-section[data-univers="residence"] { --u: #a3762c; --u-dark: #7d5a27; }
.site-masthead__nav .wp-block-navigation__container > .is-current-section > .wp-block-navigation-item__content { color: var(--u-dark); }
@media (min-width: 1081px) {
  .site-masthead__nav .wp-block-navigation__container > .is-current-section::after {
    content: '';
    position: absolute;
    left: 0.65rem;
    right: 0.65rem;
    bottom: 0;
    height: 2px;
    background: var(--u);
    pointer-events: none;
  }
}

/* Pastille du panier : couleur de l'univers de la page (.cart-count de la maquette, var(--u)), bleu de la station par défaut */
.site-masthead__actions .wc-block-mini-cart__badge { background: #235e6e; color: #fff; border: 2px solid #fff; font-size: 0.64rem; font-weight: 700; }
body:has(.cts-maquette-content[data-univers="bains"]) .site-masthead__actions .wc-block-mini-cart__badge,
body:has(.cts-maquette-content[data-univers="boutique"]) .site-masthead__actions .wc-block-mini-cart__badge,
body.woocommerce-page .site-masthead__actions .wc-block-mini-cart__badge { background: #3d8fa3; }
body:has(.cts-maquette-content[data-univers="residence"]) .site-masthead__actions .wc-block-mini-cart__badge { background: #a3762c; }

/* Sous-menus ordinateur : éléments alignés sur leurs intertitres, chevron qui ne se retourne pas à l'ouverture (maquette) */
@media (min-width: 1081px) {
  .site-masthead__nav.wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { padding-inline: 0.68rem; }
  .site-masthead__nav .wp-block-navigation__submenu-icon svg,
  .site-masthead__nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg { transform: none; }
}
/* Mobile : bouton menu à trois barres (icône de la maquette) */
.site-masthead__nav .wp-block-navigation__responsive-container-open svg { display: none; }
.site-masthead__nav .wp-block-navigation__responsive-container-open::before {
  content: '';
  width: 20px;
  height: 20px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* Menu mobile ouvert : rubriques et liens aux mesures de la maquette, chevron de rubrique, focus discret à l'ouverture */
@media (max-width: 1080px) {
  .site-masthead__nav .is-menu-open .wp-block-navigation__container > li > a.wp-block-navigation-item__content { padding: 0.65rem 0.55rem; }
  .site-masthead__nav .is-menu-open .wp-block-navigation__container > li.has-child > a.wp-block-navigation-item__content { display: flex; align-items: center; justify-content: space-between; }
  .site-masthead__nav .is-menu-open .wp-block-navigation__container > li.has-child > a.wp-block-navigation-item__content::after {
    content: '';
    width: 9px;
    height: 9px;
    opacity: 0.5;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  }
  .site-masthead__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container > li { margin: 0; }
  .site-masthead__nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding-left: 0.6rem; font-size: 0.893em; }
  .site-masthead__nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .site-masthead__nav-heading .wp-block-navigation-item__content { padding-left: 0.75rem; font-size: 0.68rem; }
  .site-masthead__nav .is-menu-open .wp-block-navigation__container > li:hover > a,
  .site-masthead__nav .is-menu-open .wp-block-navigation__container > li:focus-within > a { background: transparent; }
  .site-masthead__nav .is-menu-open .wp-block-navigation-item__content:focus { outline: 0; }
  .site-masthead__nav .is-menu-open .wp-block-navigation-item__content:focus-visible { outline: 2px solid #3d8fa3; outline-offset: -2px; }
}

/* Pied de page : intitulés des trois accès rapides en gras (strong de la maquette), interligne de 22 px sur deux lignes */
.site-footer__quick .site-footer__quick-title { font-weight: 700; line-height: 1.27; }

/* Encart « Offrez un moment de bien-être » (wp-campaign-overlay) aux couleurs de la maquette (.popup-box) */
.wp-campaign-overlay {
  --campaign-accent: #235e6e;
  --campaign-ink: #183f4b;
  --campaign-muted: #7a6550;
  --campaign-line: #dccdb6;
  --campaign-media: #ede0ce;
  --campaign-button: #a0521f;
  font-family: var(--wp--preset--font-family--sans, 'Jost', sans-serif);
}
.wp-campaign-overlay__eyebrow { display: flex; align-items: center; gap: 0.75rem; letter-spacing: 0.18em; }
.wp-campaign-overlay__eyebrow::before { content: ''; width: 34px; height: 1px; background: currentColor; }
.wp-campaign-overlay .wp-campaign-overlay__title { font-family: inherit; font-weight: 500; letter-spacing: 0; }
@media (max-width: 560px) { .wp-campaign-overlay__eyebrow { display: none; } }
.wp-campaign-overlay__cta:hover { background: #8c4415; border-color: #8c4415; color: #fff; }
.wp-campaign-overlay__later:hover { background: #ede0ce; }

/* Accueil, chiffres de la Résidence : colonnes aux proportions de la maquette (.hstats) ; le bloc Colonnes impose flex-basis 100 % !important sous 782 px */
.wp-block-columns.cj-stats:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 0 !important; min-width: 0; }
.cj-stats > .wp-block-column:nth-child(1) { flex-grow: 0.85; }
.cj-stats > .wp-block-column:nth-child(3) { flex-grow: 1.45; }
/* Accueil : boutons des scènes en graisse 700 comme les .btn de la maquette ; textes du carrousel posés en bas, au-dessus des boutons ; italique du titre en 400 (mêmes coupures que la maquette) */
.cj-scene .wp-block-button__link { font-weight: 700; }
.cj-home-hero__texts > .cj-home-hero__text { align-self: end; }
.cj-home-hero__title em { font-weight: 400; }
/* Accueil, bouton pause du carrousel : pictogramme de la maquette (deux barres de 2 px sur 8 px) */
.cj-home-hero:not(.is-paused) .cj-home-hero__pause::before { width: 5px; height: 8px; background: linear-gradient(90deg, #fff 0 40%, transparent 40% 60%, #fff 60%); }
/* Accueil, « Voir toute la boutique » : calé sur le bas de l'en-tête des offres, sous la ligne du titre comme la maquette (.offers-hd) */
@media (min-width: 769px) { .cj-offers-head > .cj-more-link { transform: translateY(19px); } }
/* Accueil sur mobile : boutons des scènes côte à côte quand ils tiennent (.btn-row) */
@media (max-width: 560px) {
  .cj-scene__inner .wp-block-buttons { gap: 0.75rem; }
  .cj-scene__inner .wp-block-button__link { padding: 0.78rem 1.35rem; font-size: 0.91rem; }
  .cj-stats { column-gap: 0.65rem; }
  .cj-stats > .wp-block-column:nth-child(1) { flex-grow: 0.72; }
  .cj-stats > .wp-block-column:nth-child(2) { flex-grow: 0.92; }
  .cj-stats > .wp-block-column:nth-child(3) { flex-grow: 1.35; }
  .cj-stats .wp-block-column + .wp-block-column { padding-left: 0.65rem; }
  .cj-stats .cj-stat__num { font-size: 2.55rem; }
  .cj-stats .cj-stat--accent .cj-stat__num { font-size: 2.3rem; }
  .cj-stats .cj-stat__label { font-size: 0.6rem; letter-spacing: 0.09em; }
}
@media (max-width: 359px) {
  .cj-stats .cj-stat__num { font-size: 2rem; }
  .cj-stats .cj-stat--accent .cj-stat__num { font-size: 1.5rem; }
}

/* Cartes d'articles (liste des actualités et « À lire aussi ») aux mesures de la carte de la maquette : image 3:2, pastille non soulignée, titre 1,12 rem, extrait 14 px brun */
.cts-journal-card .wp-block-post-featured-image { aspect-ratio: 3 / 2; }
.cts-journal-card > .cts-journal-card-body,
.cts-journal-card > .card-body { margin: 0; padding: 1.35rem; }
.cts-journal-card .wp-block-post-terms { margin: 0 0 0.6rem; }
.cts-journal-card .wp-block-post-terms a { display: inline-block; padding: 0.3rem 0.7rem; border-radius: 999px; background: var(--u-light, #e9f1f2); color: var(--u-dark, #183f4b); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; line-height: 1.6; text-decoration: none; text-transform: uppercase; }
.cts-journal-card .wp-block-post-title { margin: 0 0 0.45rem; font-size: 1.12rem; font-weight: 500; line-height: 1.15; }
.cts-journal-card .wp-block-post-excerpt { margin: 0; font-size: 0.875rem; line-height: 1.62; color: #7a6550; }
.cts-journal-card .wp-block-post-excerpt__excerpt { margin: 0 0 0.96rem; }
.cts-journal-card .wp-block-post-excerpt__more-text { margin: 0; }
.cts-journal-card .wp-block-post-excerpt__more-link { color: #183f4b; font-size: 0.875rem; text-decoration: underline; }
/* Articles : cartes « À lire aussi » et liste des actualités à hauteur égale par rangée */
.cts-journal-query .wp-block-post-template > .wp-block-post { display: flex; }
.cts-journal-query .wp-block-post-template > .wp-block-post > .cts-journal-card { flex: 1; height: auto; }
.cts-journal-single .cts-journal-help { margin-top: 0; }
/* Article : surtitre du bandeau au corps de la maquette (17,6 px) et premier paragraphe en introduction (.lead) */
.cts-journal-single .hero-inner .wp-block-post-terms.eyebrow { gap: 0.65rem; font-size: 1.1rem; letter-spacing: 0.16em; }
.cts-journal-single .cts-journal-body .wp-block-post-content > p:first-of-type { font-size: 1.08rem; line-height: 1.7; }

/* Galerie photo : mosaïque en colonnes de la maquette (.gal, columns: 4 260px), proportions d'origine, angles droits (#764) */
.cts-gallery-grid { display: block; columns: 4 260px; column-gap: 1rem; }
.cts-gallery-grid .wp-block-image { display: block; break-inside: avoid; margin: 0 0 1rem !important; overflow: hidden; background: var(--paper-alt, #ede0ce); }
.cts-gallery-grid .wp-block-image img { aspect-ratio: auto; height: auto; transition: transform 0.5s ease; }
.cts-gallery-grid .wp-block-image:hover img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) { .cts-gallery-grid .wp-block-image img { transition: none; } }
/* Les photos du site sont toutes au format 3:2 : une sur trois en portrait et une sur cinq au carré redonnent le rythme de la mosaïque de la maquette */
.cts-gallery-grid .wp-block-image { position: relative; }
.cts-gallery-grid .wp-block-image:nth-child(3n+2) img { aspect-ratio: 4 / 5; object-fit: cover; }
.cts-gallery-grid .wp-block-image:nth-child(5n) img { aspect-ratio: 1; object-fit: cover; }
/* Légende au survol et au focus (.gal figcaption de la maquette) */
.cts-gallery-grid .wp-block-image figcaption.wp-element-caption {
  position: absolute;
  inset: auto 0 0 0;
  margin: 0;
  padding: 2rem 0.9rem 0.8rem;
  color: #fff;
  font-size: 0.82rem;
  text-align: left;
  background: linear-gradient(180deg, transparent, rgba(8, 22, 38, 0.85));
  opacity: 0;
  transition: opacity 0.25s;
  pointer-events: none;
}
.cts-gallery-grid .wp-block-image:hover figcaption.wp-element-caption,
.cts-gallery-grid .wp-block-image:focus-within figcaption.wp-element-caption { opacity: 1; }
/* Visionneuse : fond marine et bouton de fermeture rond de la maquette (.lightbox) */
.wp-lightbox-overlay .scrim { background-color: rgba(8, 22, 38, 0.94) !important; opacity: 1 !important; }
.wp-lightbox-overlay .wp-lightbox-close-button { top: 1.25rem; right: 1.25rem; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border-radius: 999px; background: rgba(255, 255, 255, 0.14); fill: #fff !important; }
.wp-lightbox-overlay .wp-lightbox-navigation-button { fill: #fff !important; }
.wp-lightbox-overlay .wp-lightbox-close-button:hover, .wp-lightbox-overlay .wp-lightbox-navigation-button:hover { background: rgba(255, 255, 255, 0.24); }

/* Listes libellé / valeur (accès à Casteljaloux) : le libellé ne se coupe pas, la valeur longue passe à la ligne à droite */
.cts-maquette-content .data-list dt { flex-shrink: 0; white-space: nowrap; }
.cts-maquette-content .data-list dd { min-width: 0; }

/* Un numéro de téléphone ne se coupe pas (tableaux, encadrés, textes) */
.cts-maquette-content a[href^="tel:"] { white-space: nowrap; }
@media (max-width: 640px) {
  /* Tableaux empilés : textes alignés à gauche comme la maquette, montants à droite */
  .cts-maquette-content table.tbl-stack td { padding: 0.8rem 1.1rem; border-bottom-style: solid; }
  .cts-maquette-content table.tbl.tbl-simple th,
  .cts-maquette-content table.tbl.tbl-simple td { padding: 0.8rem 1.1rem; }
  .cts-maquette-content table.tbl-stack td:not(.num) { text-align: left; }
  /* Ligne d'information sur toute la largeur (médecins) : un paragraphe, sans libellé de colonne */
  .cts-maquette-content table.tbl-stack td[colspan] { display: block; }
  .cts-maquette-content table.tbl-stack td[colspan]::before { content: none; }
  /* Tableaux de textes longs sans montant (préparation de la cure) : libellé au-dessus du texte */
  .cts-maquette-content table.tbl-stack:not(:has(td.num)) td[data-th] { display: block; }
  .cts-maquette-content table.tbl-stack:not(:has(td.num)) td[data-th]::before { display: block; margin-bottom: 0.25rem; }
}
/* === global : fin === */

/* === thermes-residence : début === */
/* Bandeau de chiffres : filet gauche sur chaque case, recouvrant le filet droit de la voisine, pour garder le cadre quand les cases passent à la ligne (390 px) */
.cts-maquette-content .hero-facts .fact { border-left: 1px solid var(--line); margin-left: -1px; }
/* FAQ Thermes : libellé de recherche au format .field label de la maquette */
.cts-maquette-content .cts-faq-search .wp-block-search__label { display: block; margin: 0 0 0.38rem; font-size: 0.85rem; font-weight: 700; line-height: 1.62; color: var(--ink); }
.cts-maquette-content .cts-faq-search .wp-block-search__input { padding: 0.72rem 0.9rem; }
/* Accordéons : pas de contour au clic, le contour reste pour la navigation au clavier */
.cts-maquette-content .acc-btn:focus:not(:focus-visible) { outline: none; }
/* Eau thermale : trois tableaux de composition sur deux colonnes, comme les deux tableaux de la maquette (trois colonnes rognaient les valeurs) */
.cts-maquette-content[data-univers="thermes"] .grid-2:has(> .table-wrap:nth-child(3)) { grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); }
/* Cations et anions côte à côte, caractéristiques générales sur toute la largeur en dessous */
.cts-maquette-content[data-univers="thermes"] .grid-2:has(> .table-wrap:nth-child(3)) > .table-wrap:nth-child(2) { grid-column: 1 / -1; order: 3; }
.cts-maquette-content[data-univers="thermes"] .grid-2:has(> .table-wrap:nth-child(3)) > .table-wrap:nth-child(3) { order: 2; }
/* Sommaire de la préparation : list-style de la maquette retiré par le filtre des styles en ligne */
.cts-maquette-content nav.facets ul { list-style: none; }
/* Recherche de la FAQ au focus : bordure et halo de l'univers, comme les champs de la maquette */
.cts-maquette-content .cts-faq-search .wp-block-search__input:focus { outline: none; border-color: var(--u); box-shadow: 0 0 0 3px var(--u-light); }
/* Ancres (/nos-studios-conforts/ → #studios, sommaire de la préparation) : cible sous l'en-tête collant (106 px à 1280, 83 px à 390) */
.cts-maquette-content:is([data-univers="thermes"], [data-univers="residence"]) [id] { scroll-margin-top: 8.25rem; }
@media (max-width: 781px) {
  .cts-maquette-content:is([data-univers="thermes"], [data-univers="residence"]) [id] { scroll-margin-top: 6.5rem; }
}
/* Coupures de lignes du navigateur comme la maquette : le text-wrap: pretty des styles globaux de WordPress déplace les retours à la ligne */
.cts-maquette-content:is([data-univers="thermes"], [data-univers="residence"]) :is(h1, h2, h3, h4, h5, h6, p, caption, figcaption, blockquote) { text-wrap: wrap; }
/* Numéro de téléphone dans le texte d'un bandeau foncé : couleur du texte, souligné discret */
.cts-maquette-content .cta-band p a[href^="tel:"] { color: inherit; text-decoration-color: currentColor; }
/* === thermes-residence : fin === */

/* === legal : début === */
/* Pages d'information (CGV, mentions légales) : puces des listes du texte légal à la couleur de l'univers, comme les coches de la maquette */
.cts-maquette-content .wrap-narrow > ul:not([class]) li::marker { color: var(--u); }
.cts-maquette-content .wrap-narrow > ul:not([class]) li + li { margin-top: 0.35rem; }
/* Boutons rendus depuis les liens #preferences-cookies et #imprimer : même alignement que les liens .btn */
.cts-maquette-content .btn-row > button.btn { font-family: inherit; cursor: pointer; }
/* Rangée du bouton des préférences masquée tant que le bandeau Complianz n'est pas chargé (bouton hidden) */
.cts-maquette-content .btn-row:has(> button.cmplz-manage-consent[hidden]):not(:has(> :not([hidden]))) { display: none; }
/* Droit de rétractation : la note qui suit la frise garde l'espacement de la maquette */
.cts-maquette-content .timeline + p { margin-top: 1.25rem; }
/* Tableau des traitements (données personnelles) : à 390, libellé à gauche et valeur à droite comme table.tbl-stack de la maquette, et non libellé au-dessus */
@media (max-width: 640px) {
  .cts-maquette-content table#traitements td[data-th] { display: flex; justify-content: space-between; gap: 1rem; text-align: right; }
  .cts-maquette-content table#traitements td[data-th]::before { display: inline; margin-bottom: 0; flex-shrink: 0; }
}
/* 404 : la carte d'aide suit sa hauteur au lieu de s'étirer sur celle du formulaire de recherche */
.error404 .cj-utility .utility-hero-card { align-self: end; }
/* 404 et recherche : champ détaché du titre, rangée des rubriques titrée et resserrée sous le fil d'Ariane */
.search .cj-utility .utility-hero .cj-search-form { margin-top: 1.25rem; }
.error404 .cj-utility .cj-utility-links { padding-block: clamp(2rem, 5vw, 3.5rem); }
.error404 .cj-utility .cj-utility-links__title { font-size: 1.4rem; margin-bottom: 1rem; }
.search .cj-utility .cj-search-results { padding-top: clamp(2rem, 4vw, 3rem); }
/* Bandeau Complianz (#750) au gabarit du .cookie-bar de la maquette : palette et polices du site par les variables de l'extension (fond blanc, filet d'univers en tête, encre du site), « Tout accepter » en bouton plein terre, les autres en contour, titre fort aligné à gauche */
.cmplz-cookiebanner, #cmplz-manage-consent .cmplz-manage-consent {
  --cmplz_banner_width: 500px; --cmplz_banner_background_color: #ffffff; --cmplz_banner_border_color: #dccdb6; --cmplz_banner_border_width: 1px; --cmplz_banner_border_radius: 6px; --cmplz_banner_margin: 0.6rem;
  --cmplz_text_color: #183f4b; --cmplz_hyperlink_color: #183f4b; --cmplz_title_font_size: 0.95rem; --cmplz_text_font_size: 0.88rem; --cmplz_link_font_size: 0.8rem;
  --cmplz_category_body_font_size: 0.85rem; --cmplz_category_header_title_font_size: 0.88rem; --cmplz_category_header_active_font_size: 0.75rem; --cmplz_category_header_always_active_color: #2c7a5b;
  --cmplz_button_accept_background_color: #a0521f; --cmplz_button_accept_border_color: #a0521f; --cmplz_button_accept_text_color: #ffffff;
  --cmplz_button_deny_background_color: transparent; --cmplz_button_deny_border_color: rgba(35, 94, 110, 0.45); --cmplz_button_deny_text_color: #183f4b;
  --cmplz_button_settings_background_color: transparent; --cmplz_button_settings_border_color: rgba(35, 94, 110, 0.45); --cmplz_button_settings_text_color: #183f4b;
  --cmplz_button_border_radius: 4px; --cmplz_button_font_size: 0.91rem; --cmplz_slider_active_color: #235e6e; --cmplz_slider_inactive_color: #d4bfa0; --cmplz_slider_bullet_color: #ffffff;
  font-family: "Jost", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
body .cmplz-cookiebanner { border-top: 3px solid #235e6e; box-shadow: 0 12px 32px rgba(23, 51, 63, 0.14) !important; padding: 1.25rem !important; }
body.domain-context-bains .cmplz-cookiebanner { border-top-color: #3d8fa3; }
.cmplz-cookiebanner .cmplz-header { display: flex !important; justify-content: space-between; align-items: center; }
.cmplz-cookiebanner .cmplz-logo:empty { display: none !important; }
.cmplz-cookiebanner .cmplz-title { display: block !important; flex: 1; justify-self: start; text-align: left; font-size: 0.95rem; font-weight: 600; color: #183f4b; }
.cmplz-cookiebanner .cmplz-message { font-size: 0.88rem; line-height: 1.55; color: #43443b; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn { font-weight: 700; height: auto; min-height: 44px; padding: 0.7rem 1rem; white-space: normal; transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover, .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:focus-visible { background-color: #8c4415; border-color: #8c4415; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover, .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:focus-visible, .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover, .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:focus-visible, .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover, .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:focus-visible { background-color: #e9f1f2; border-color: #235e6e; }
body .cmplz-cookiebanner .cmplz-categories .cmplz-category { background-color: #f5ede0; border-radius: 4px; }
.cmplz-cookiebanner .cmplz-links.cmplz-documents { justify-content: flex-start; gap: 0.25rem 1rem; font-size: 0.8rem; }
.cmplz-cookiebanner .cmplz-links .cmplz-link { text-underline-offset: 0.15em; }
#cmplz-manage-consent .cmplz-manage-consent { font-weight: 600; font-size: 0.85rem; box-shadow: 0 -6px 20px rgba(23, 51, 63, 0.12) !important; }
@media (max-width: 760px) {
  .cmplz-cookiebanner { left: 0.6rem !important; right: 0.6rem !important; bottom: 0.6rem !important; width: auto !important; padding: 0.95rem !important; }
  .cmplz-cookiebanner .cmplz-links.cmplz-documents { flex-direction: column; align-items: flex-start; }
}
/* Formulaire type de rétractation : seul le formulaire est imprimé */
@media print {
  body:has([data-cts-print]) header, body:has([data-cts-print]) footer, body:has([data-cts-print]) .cts-maquette-content > :not(#formulaire), body:has([data-cts-print]) #formulaire .btn-row, body:has([data-cts-print]) #cmplz-cookiebanner-container { display: none !important; }
  body:has([data-cts-print]) #formulaire { background: none; padding: 0; }
}
/* === legal : fin === */

/* === boutique : début === */
/* Cartes produit (boutique, accueil, Institut, chèques cadeaux, fiches) : univers puis durée en texte, « LES BAINS, 2 h », sans pictogramme */
.cj-card__meta {
  gap: 0.35rem;
}
.cj-card__duration::before {
  content: none;
}
/* La virgule suit le nom de l'univers dans sa pastille : « LES BAINS, 2 h », sans espace avant elle */
.cj-card__meta .cj-universe:has(+ .cj-card__duration)::after {
  content: ",";
}
.cj-universe,
.cj-flag {
  padding: 0.3rem 0.7rem;
  line-height: 1.62;
}
/* Rubans de la maquette (« Nouveau », « À offrir »…) : couleur de l'univers, posés dans l'angle de l'image */
.cj-card__flags {
  top: 0.8rem;
  left: 0.8rem;
  margin: 0;
  padding: 0;
}
.cj-flag {
  /* Bleu des rubans de la maquette (#3d8fa3) foncé juste assez pour un contraste AA du texte blanc en 11,5 px (4,9:1) */
  background: #2f7a8a;
}
.cj-card__foot {
  align-items: center;
}
.cj-card__buy,
.cj-card .cj-card__foot .cj-price {
  margin: 0;
}
.cj-section__title {
  font-weight: 500;
}
/* Pastilles de comptage (« 6 produits ») : brun plus soutenu sur le beige pour un contraste AA (5,2:1) */
.cj-catalog .cj-count {
  color: #6b5845;
}
/* Titre des cartes en marine, y compris dans les pages composées où les liens prennent la couleur de l'univers */
.cj-card .cj-card__title a {
  color: #183f4b;
}
.cj-card .cj-card__title a:hover {
  color: #235e6e;
}
.cj-section__head + .cj-section__desc {
  margin-top: -0.4rem;
}

/* Barre des catégories : les cinq rubriques et leur libellé complet tiennent sur la largeur de la page (la maquette faisait défiler la dernière) ; entre 641 et 1199 px, « Séjours à la Résidence » prend son libellé court */
@media (min-width: 641px) {
  .cj-catbar__tab {
    gap: 0.3rem;
    padding-inline: 0.48rem;
    font-size: 0.7rem;
    letter-spacing: 0.04em;
  }
}
@media (min-width: 641px) and (max-width: 1199px) {
  .cj-catbar__tab[data-cj-tab="sejours"] .cj-catbar__label-long {
    display: none;
  }
  .cj-catbar__tab[data-cj-tab="sejours"] .cj-catbar__label-short {
    display: inline;
  }
}
/* Bandeau de la boutique : titre sur deux lignes comme la maquette */
.cj-catalog-hero .cj-hero__title,
.cj-hero .cj-hero__title {
  max-width: 10.5em;
}
/* Écarts de la maquette : 65 px entre les filtres et la première rubrique, 16 px entre le résumé d'une carte et son prix */
.cj-catalog .cj-section .cj-section__title {
  font-weight: 500;
}
.cj-filters + .cj-section,
.cj-catalog__notices + .cj-filters + .cj-section {
  padding-top: 1.9rem;
}
/* Page d'une catégorie (une seule rubrique, sans filtres) : les cartes suivent le fil d'Ariane sans le grand blanc d'une rubrique de la boutique (retours CTS du 03/11/2026) */
.cj-catalog .cj-section.cj-section--single {
  padding-top: 0;
}
/* Catalogue inséré dans une page (Chèques cadeaux, Institut) : même écart qu'avec la maquette entre l'introduction et les cartes, à toutes les largeurs, et visuels au format 1,3/1 des cartes de la maquette */
.cj-catalog.cj-catalog--extrait .cj-section,
.cj-catalog.cj-catalog--onglets .cj-section {
  padding-block: 0;
}
.cj-catalog.cj-catalog--extrait .cj-grid,
.cj-catalog.cj-catalog--onglets .cj-grid {
  margin-top: 0;
}
.cj-catalog.cj-catalog--extrait:not(.cj-catalog--cheque) .cj-card__media,
.cj-catalog.cj-catalog--onglets .cj-card__media {
  aspect-ratio: 1.3 / 1;
}
.cj-card__summary {
  margin-bottom: 1rem;
}
/* Titres du panier et de la commande à 390 px : taille de la maquette, « Finaliser ma commande » sur une ligne */
@media (max-width: 640px) {
  .cj-cart-page .cj-page-lede__title,
  .cj-checkout-page .cj-page-lede__title {
    font-size: 2.25rem;
  }
}
/* Pastille du nombre d'articles : rond bleu de 19 px dans le coin du bouton panier, comme la maquette */
.site-masthead__icon .wc-block-mini-cart__button {
  position: relative;
}
.site-masthead__icon .wc-block-mini-cart__quantity-badge {
  position: static;
}
.site-masthead__icon .wc-block-mini-cart__badge {
  position: absolute;
  top: -7px;
  right: -7px;
  left: auto;
  box-sizing: border-box;
  min-width: 19px;
  height: 18px;
  margin: 0;
  padding: 0 4px;
  border: 2px solid #fff;
  border-radius: 999px;
  /* Bleu de la maquette foncé pour un contraste AA du chiffre blanc */
  background: #2f7a8a;
  color: #fff;
  font-size: 10.24px;
  font-weight: 700;
  line-height: 14px;
  text-align: center;
  transform: none;
}
.site-masthead__icon .wc-block-mini-cart__badge:empty {
  display: none;
}
/* === boutique : fin === */

/* === compte : début === */
/* Espace client connecté : la page porte l'account-layout de la maquette (menu ul.account-nav, panneau), la grille posée plus haut sur le conteneur WooCommerce ne s'applique plus */
body.logged-in.woocommerce-account .cts-maquette-content .woocommerce {
  display: block;
}
.woocommerce-account .cts-maquette-content .account-layout,
.woocommerce-account .cts-maquette-content .cts-account-narrow {
  margin-top: 0.5rem;
}
.woocommerce-account .cts-maquette-content .cts-account-panel > :first-child {
  margin-top: 0;
}
.woocommerce-account .cts-maquette-content .cts-account-panel > .note:last-child {
  margin-bottom: 0;
}
/* Tailles de titres des panneaux de la maquette : « Bonjour » 1,6 rem, « Dernières commandes » et « Suivi » 1,25 rem, intertitres de formulaire 1,05 rem */
.woocommerce-account .cts-maquette-content .panel-head h2.cts-account-hello {
  font-size: 1.6rem;
}
.woocommerce-account .cts-maquette-content .panel-head h2.cts-account-h2-sm {
  font-size: 1.25rem;
}
.woocommerce-account .cts-maquette-content .cts-account-panel legend,
.woocommerce-account .cts-maquette-content .cts-account-narrow legend {
  font-size: 1.05rem;
}
.woocommerce-account .cts-maquette-content .panel > h2.cts-account-panel-title,
.woocommerce-account .cts-maquette-content .cts-account-panel form.edit-account > h2 {
  font-size: 1.5rem;
}
.woocommerce-account .cts-maquette-content .cts-account-after-table {
  margin-top: 1rem;
}
/* Demande de rétractation : colonne étroite centrée (wrap wrap-narrow de compte/retractation.html), montant demandé aligné sur les montants */
.woocommerce-account .cts-maquette-content .cts-account-narrow {
  margin-inline: auto;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-form .panel-head h2 {
  margin: 0;
  font-size: 1.4rem;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-form-meta {
  margin: 0.3rem 0 0;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-form .choice-grid {
  margin: 0.75rem 0 1.25rem;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-form .table-wrap {
  margin-top: 0.75rem;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-form select[data-cts-qty] {
  width: 80px;
  padding: 0.35rem 0.5rem;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-total-label {
  text-align: right;
}
/* Mes demandes de rétractation : en-tête de demande et montant sur une ligne, frise de suivi, commandes encore rétractables (compte/retractations.html) */
.woocommerce-account .cts-maquette-content .cts-withdrawal-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-amount {
  color: var(--ink);
  font-size: 1.15rem;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal .timeline {
  margin-top: 1rem;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-open {
  padding: 1.25rem 0 0;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-open h3 {
  margin-bottom: 0.6rem;
  font-size: 1.05rem;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-open-line {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.6rem 1rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--line-soft);
  font-size: 0.93rem;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-help {
  margin-top: 1.25rem;
}
/* Nom du produit et précisions l'un sous l'autre, y compris dans la carte empilée du mobile (la maquette les plaçait côte à côte à 390 px) */
.woocommerce-account .cts-maquette-content .cts-withdrawal-product {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.woocommerce-account .cts-maquette-content .cts-withdrawal-form-hint {
  margin-top: 0.85rem;
}
@media (max-width: 640px) {
  .woocommerce-account .cts-maquette-content .cts-withdrawal-total-label {
    text-align: left;
  }
}
.woocommerce-account .cts-maquette-content .cts-account-panel > .panel + p {
  margin-top: 1rem;
}
/* Connexion et création de compte : panneaux de la maquette (marge nulle, 32 px de retrait, rayon 6 px) au lieu du cadre des formulaires WooCommerce */
.woocommerce-account .cts-maquette-content #customer_login form.login,
.woocommerce-account .cts-maquette-content #customer_login form.register {
  margin: 0;
  padding: clamp(1.35rem, 3vw, 2rem);
  border-radius: 6px;
}
/* « Mes données » (customer-privacy-requests) : titres et boutons du panneau aux mesures de la maquette, libellés longs repliés sur mobile */
.woocommerce-account .cts-maquette-content .cts-account-privacy h2 {
  font-size: 1.5rem;
}
.woocommerce-account .cts-maquette-content .cts-account-privacy .button {
  display: inline-flex;
  min-height: 44px;
  max-width: 100%;
  padding: 0.78rem 1.35rem;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #fff;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 0.91rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: normal;
  text-align: left;
  cursor: pointer;
}
/* Bandeau WooCommerce « Confirmez votre adresse email » : le texte puis le lien, sous l'icône à 390 px, au lieu d'une colonne étroite à côté du lien */
.woocommerce-account .cts-maquette-content .cts-account-panel .wc-block-components-notice-banner {
  align-items: flex-start;
}
.woocommerce-account .cts-maquette-content .cts-account-panel .wc-block-components-notice-banner > svg {
  flex: 0 0 auto;
}
.woocommerce-account .cts-maquette-content .cts-account-panel .wc-block-components-notice-banner__content {
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-start;
  gap: 0.5rem;
}
.woocommerce-account .cts-maquette-content .cts-account-panel .wc-block-components-notice-banner__content .wc-forward {
  float: none;
  margin: 0;
}
/* Note d'erreur (formulaire de rétractation incomplet) aux couleurs d'erreur de la charte */
.woocommerce-account .cts-maquette-content .note-err {
  border-color: #e7c3c1;
  border-left-color: var(--err);
  background: var(--err-bg);
}
/* === compte : fin === */

/* ===== Retours CTS du 28/10/2026 ===== */
/* 1. Tableaux de tous les univers (formules des Bains, tarifs de l'espace aquatique, hébergement) sur toute la largeur de leur carte : la colonne vide à droite faisait un tableau arrêté avant le bord, la règle précédente ne couvrait que thermes et residence */
.cts-maquette-content .table-wrap table.tbl { width: 100%; }
/* 2. Visionneuse de la galerie : légende de la figure d'origine juste sous l'image agrandie (top, left et width posés par cts-gallery-lightbox.js d'après le rectangle affiché), blanche sur le fond marine, comme <p data-lb-cap> de maquette/galerie.html */
.wp-lightbox-overlay .cts-lightbox-caption { position: absolute; z-index: 2000002; margin: 0; padding: 0 0.5rem; box-sizing: border-box; color: #fff; font-family: inherit; font-size: 0.9rem; line-height: 1.35; text-align: center; text-wrap: balance; pointer-events: none; }
.wp-lightbox-overlay .cts-lightbox-caption:empty { display: none; }
/* Quand la place manque sous la photo (image sur toute la hauteur, boutons précédente / suivante dans la bande du bas sous 960 px), la légende prend la bande du bas entre les boutons */
.wp-lightbox-overlay .cts-lightbox-caption--band { right: 4.5rem; bottom: 1rem; left: 4.5rem; display: flex; align-items: center; justify-content: center; min-height: 40px; }
@media (min-width: 960px) {
  .wp-lightbox-overlay .cts-lightbox-caption--band { right: 2rem; bottom: 0.65rem; left: 2rem; min-height: 0; }
}
/* 3a. Fiche produit : respiration entre la barre du fil d'Ariane et le haut de la fiche, photo et pastilles décalées ensemble pour garder leur alignement (espace net de maquette/boutique/produit.html) */
.cj-product > .cj-product__top { margin-block-start: clamp(1rem, 2.4vw, 1.5rem); }
/* 3b. Prix total sur la ligne de la quantité, juste au-dessus d'« Ajouter au panier » : serif et encre de la maquette (.qv-price) en plus grand pour le mettre en valeur */
.cj-product .cts-add-form__qty .price { font-family: var(--serif); font-size: clamp(1.75rem, 2.4vw, 2rem); font-weight: 600; line-height: 1; color: var(--ink); }
/* 4. Connexion / création de compte : colonnes plus aérées (écart 2.5 rem entre les panneaux, retrait intérieur 2.5 rem à 1280, retrait réduit quand les panneaux s'empilent) */
@media (min-width: 700px) {
  .woocommerce-account .cts-maquette-content #customer_login { gap: 2.5rem; }
}
.woocommerce-account .cts-maquette-content #customer_login form.login,
.woocommerce-account .cts-maquette-content #customer_login form.register { padding: clamp(1.35rem, 3.2vw, 2.5rem); }
/* 5. Cartes dont le seul lien est le bouton du pied (types de logement de sejour-curiste, brochures) : le lien recouvre toute la carte, la photo devient cliquable sans recouvrir d'autres liens */
.cts-maquette-content .card.card-hover:has(.card-foot > a:only-child):not(:has(a:not(.card-foot > a))) { position: relative; cursor: pointer; }
.cts-maquette-content .card.card-hover:has(.card-foot > a:only-child):not(:has(a:not(.card-foot > a))) .card-foot > a::after { content: ''; position: absolute; inset: 0; }
/* Contour de l'univers sur toute la carte quand ce lien étendu a le focus clavier */
.cts-maquette-content .card.card-hover:has(.card-foot > a:only-child):not(:has(a:not(.card-foot > a))):focus-within { outline: 2px solid var(--u); outline-offset: 3px; }

