/*
Theme Name: Stores Cousseau
Theme URI: https://example.com/stores-cousseau
Author: Codex
Author URI: https://openai.com/
Description: Base de theme Full Site Editing pour le site Stores Cousseau.
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.0
Version: 0.1.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: stores-cousseau
Tags: full-site-editing, block-patterns, custom-colors, custom-logo, editor-style
*/

/*
 * Organisation du fichier
 * 1. Global : reset léger et classes utilitaires.
 * 2. Pages : Showroom, Accueil, SAV, pages produits/gammes, Contact.
 * 3. Composants réutilisables : boutons, cartes, badges, CTA, pictos.
 * 4. Archives : réalisations, conseils, filtres et pagination.
 * 5. Footer : réassurance, colonnes, showroom et responsive.
 *
 * Les styles des formulaires et du header sont isolés dans assets/css/form.css
 * et assets/css/header.css pour limiter la taille de ce fichier.
 */

/* ==========================================================================
   Global : reset léger et utilitaires
   ========================================================================== */

:where(.wp-site-blocks) > * {
  margin-block-start: 0px;
}
.fit-content {
  width: fit-content;
}

.h-100 {
  height: 100%;
}

.h-100 img {
  height: 100%;
}

/* ==========================================================================
   Page Showroom
   Les blocs Gutenberg portent la majorité de la mise en page. Les règles
   ci-dessous corrigent seulement les compositions que les réglages natifs
   ne couvrent pas proprement : hero bord écran, iframe, galeries et logos.
   ========================================================================== */

/* Base Showroom. */
.showroom-page {
  overflow: clip;
}

.showroom-page :where(.wp-block-image) {
  margin: 0;
}

.showroom-page :where(.wp-block-image img) {
  display: block;
  width: 100%;
}

/* Hero : texte aligné sur la largeur wide, images collées au bord droit. */
.showroom-hero__layout {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-right: 0 !important;
  margin-left: 0 !important;
  padding-left: max(
    var(--wp--style--root--padding-left, 7vw),
    calc((100vw - var(--wp--style--global--wide-size, 87.5rem)) / 2)
  );
}

.showroom-hero__content {
  max-width: 41rem;
}

.showroom-hero-media {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.9fr);
  gap: var(--wp--preset--spacing--xs);
  align-items: stretch;
  margin: 0;
}

.showroom-hero-media__large,
.showroom-hero-media__small {
  overflow: hidden;
}

.showroom-hero-media__large img,
.showroom-hero-media__small img {
  height: 100%;
}

/* Carte et informations pratiques. */
.showroom-location {
  border-radius: 2px;
}

.showroom-map-embed {
  position: relative;
  width: 100%;
  min-height: 19rem;
  height: 100%;
  overflow: hidden;
  background: var(--wp--preset--color--white);
}

.showroom-map-embed iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 19rem;
  border: 0;
}

.showroom-location-card {
  height: 100%;
}

.showroom-location-card__image {
  margin-top: auto;
  overflow: hidden;
}

.showroom-info-row {
  align-items: flex-start;
}

.showroom-info-row .wp-block-image {
  flex: 0 0 auto;
  margin-top: 0.1rem;
}

.showroom-info-row p {
  margin: 0;
}

/* Galeries Showroom. */
.showroom-inspiration-grid,
.showroom-boutique-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(16rem, 0.78fr);
  gap: var(--wp--preset--spacing--xs);
  align-items: stretch;
}

.showroom-boutique-grid {
  grid-template-columns: minmax(16rem, 0.78fr) minmax(0, 1fr) minmax(0, 1fr);
}

.showroom-inspiration-grid__image,
.showroom-boutique-grid__image,
.showroom-wide-image {
  overflow: hidden;
}

.showroom-inspiration-grid__image img,
.showroom-boutique-grid__image img,
.showroom-wide-image img {
  height: 100%;
}

.showroom-inspiration-grid__text,
.showroom-boutique-grid__text {
  min-height: 100%;
  background: var(--wp--preset--color--white);
}

.showroom-wide-image {
  margin-top: var(--wp--preset--spacing--xs) !important;
}

/* Logos marques : chaque image reste un carré remplaçable dans Gutenberg. */
.showroom-brand-grid {
  gap: var(--wp--preset--spacing--s);
}

.showroom-brand-logo {
  box-sizing: border-box;
  padding: var(--wp--preset--spacing--s);
  background: var(--wp--preset--color--white);
}

.showroom-brand-logo img {
  height: 100%;
  object-fit: contain;
}

/* Adaptations responsive. */
@media (max-width: 900px) {
  .showroom-inspiration-grid,
  .showroom-boutique-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .showroom-inspiration-grid__text,
  .showroom-boutique-grid__text {
    grid-column: 1 / -1;
    min-height: 14rem;
  }
}

@media (max-width: 781px) {
  .showroom-hero__layout {
    padding-right: var(--wp--style--root--padding-right, 7vw);
  }

  .showroom-hero-media {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .showroom-map-embed,
  .showroom-map-embed iframe {
    min-height: 17rem;
  }

  .showroom-wide-image img {
    aspect-ratio: 4 / 3 !important;
  }
}

@media (max-width: 560px) {
  .showroom-hero-media,
  .showroom-inspiration-grid,
  .showroom-boutique-grid {
    grid-template-columns: 1fr;
  }

  .showroom-hero-media__large img,
  .showroom-hero-media__small img,
  .showroom-inspiration-grid__image img,
  .showroom-boutique-grid__image img {
    aspect-ratio: 4 / 3 !important;
  }

  .showroom-location {
    padding: var(--wp--preset--spacing--s) !important;
  }
}

/* ==========================================================================
   Page d'accueil : hero immersif
   ========================================================================== */

.home-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--wp--preset--color--dark-green);
}

.home-hero > .wp-block-cover__background {
  z-index: 1;
  background: linear-gradient(
    180deg,
    rgba(0, 68, 58, 0.06) 0%,
    rgba(0, 68, 58, 0.38) 48%,
    rgba(0, 68, 58, 0.92) 100%
  );
}

.home-hero
  > .wp-block-cover__background.has-background-dim.has-background-dim-0 {
  background-color: transparent;
  opacity: 1;
}

.home-hero > .wp-block-cover__inner-container {
  position: static;
}

.home-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2px;
  width: 100%;
  height: 100%;
  margin: 0;
}

.home-hero__panel {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0 !important;
  overflow: hidden;
  background: var(--wp--preset--color--dark-green);
}

.home-hero__panel img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
}

.home-hero__content h1 {
  text-shadow:
    0 2px 4px rgba(0, 0, 0, 0.28),
    0 10px 30px rgba(0, 45, 39, 0.38);
}

@media (max-width: 781px) {
  .home-hero__media {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .home-hero__panel--secondary,
  .home-hero__panel--tertiary {
    display: none;
  }
}

/* ==========================================================================
   Landing page temporaire
   ========================================================================== */

.landing-page {
  overflow-x: clip;
}

.landing-hero__logo img {
  max-width: min(68vw, 21.25rem);
  height: auto;
}

.landing-reassurance {
  border-bottom: 18px solid var(--wp--preset--color--dark-green);
}

@media (min-width: 782px) {
  .landing-hero__logo img {
    width: clamp(24rem, 24vw, 28rem) !important;
    max-width: 28rem;
  }
}

/* ==========================================================================
   Composants globaux : boutons Gutenberg
   ========================================================================== */

:where(.wp-block-button, .wp-block-buttons):not(.is-style-premium-underline)
  .wp-block-button__link:not(.is-style-premium-underline) {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.35s ease,
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease;
}

:where(.wp-block-button, .wp-block-buttons):not(.is-style-premium-underline)
  .wp-block-button__link:not(.is-style-premium-underline)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255, 255, 255, 0) 35%,
    rgba(255, 255, 255, 0.18) 50%,
    rgba(255, 255, 255, 0) 65%,
    transparent 100%
  );
  transform: translateX(-140%);
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

:where(.wp-block-button, .wp-block-buttons):not(.is-style-premium-underline)
  .wp-block-button__link:not(.is-style-premium-underline):is(
    :hover,
    :focus-visible
  ) {
  transform: translateY(-2px);
  box-shadow: 0 14px 24px rgba(0, 68, 58, 0.18);
  filter: saturate(1.04) brightness(0.98);
}

:where(.wp-block-button, .wp-block-buttons):not(.is-style-premium-underline)
  .wp-block-button__link:not(.is-style-premium-underline):is(
    :hover,
    :focus-visible
  )::after {
  transform: translateX(140%);
}

:where(.wp-block-button, .wp-block-buttons):not(.is-style-premium-underline)
  .wp-block-button__link:not(.is-style-premium-underline):focus-visible {
  outline: 2px solid var(--wp--preset--color--light-green);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  :where(.wp-block-button, .wp-block-buttons):not(.is-style-premium-underline)
    .wp-block-button__link:not(.is-style-premium-underline),
  :where(.wp-block-button, .wp-block-buttons):not(.is-style-premium-underline)
    .wp-block-button__link:not(.is-style-premium-underline)::after {
    transition: none;
  }
}

/* ==========================================================================
   Composants produits : cartes, titres et badges taxonomie
   ========================================================================== */

.product-card {
  position: relative;
  overflow: visible;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.product-card .wp-block-post-featured-image {
  margin: 0;
  overflow: hidden;
}

.product-card .wp-block-post-featured-image a,
.product-card .wp-block-post-featured-image img {
  display: block;
}

.product-card .wp-block-post-featured-image img {
  width: 100%;
  object-fit: cover;
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.product-card .wp-block-post-title {
  margin-block-start: 0;
  padding-right: var(--wp--preset--spacing--xs) !important;
  padding-left: var(--wp--preset--spacing--xs) !important;
  transition:
    background-color 0.35s ease,
    color 0.35s ease;
}

.product-card .wp-block-post-title a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--xs);
}

.product-card .wp-block-post-title a::after {
  content: "";
  width: 0.8125rem;
  height: 0.375rem;
  flex: 0 0 auto;
  background: center / contain no-repeat url("assets/images/chevron-down.svg");
  opacity: 0;
  transform: translateX(-0.4rem) rotate(-90deg);
  transition:
    opacity 0.3s ease,
    transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.product-card:is(:hover, :focus-within) {
  transform: translateY(-6px);
}

.product-card:is(:hover, :focus-within) .wp-block-post-featured-image img {
  transform: scale(1.045);
}

.product-card:is(:hover, :focus-within) .wp-block-post-title {
  background-color: var(--wp--preset--color--light-green) !important;
}

.product-card:is(:hover, :focus-within) .wp-block-post-title a::after {
  opacity: 1;
  transform: translateX(0) rotate(-90deg);
}

.product-card-gbg:is(:hover, :focus-within) .wp-block-post-title a {
  color: var(--wp--preset--color--dark-green);
}

@media (prefers-reduced-motion: reduce) {
  .product-card,
  .product-card .wp-block-post-featured-image img,
  .product-card .wp-block-post-title,
  .product-card .wp-block-post-title a::after {
    transition: none;
  }
}

.product-title-card {
  position: absolute;
  bottom: 0;
  z-index: 2;
  margin: 0;
  max-width: min(15rem, calc(100% - 1.8rem));
  right: 0;
  background-color: white;
  box-shadow: 0 18px 36px rgba(0, 68, 58, 0.14);
}

.product-title-card a {
  display: block;
  text-decoration: none;
}

.taxonomy-linked-products {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.taxonomy-linked-products__term {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 0;
  padding: 10px;
  border: 1px solid transparent;
  border-radius: 2px;
  background: var(--wp--preset--color--dark-green);
  color: var(--wp--preset--color--white);
  font-size: var(--wp--preset--font-size--tiny);
  font-style: normal;
  font-weight: 600;
  line-height: 1.2;
}

.taxonomy-linked-products__term--project-type {
  border-color: var(--wp--preset--color--dark-green);
  background: var(--wp--preset--color--white);
  color: var(--wp--preset--color--dark-green);
}

.post-type-archive-realisation .taxonomy-gamme-hero > .wp-block-buttons {
  display: none;
}

.home .taxonomy-gamme-hero > .wp-block-buttons {
  display: none;
}

/* ==========================================================================
   Page d'accueil : grilles produits
   ========================================================================== */

.home-products-section a {
  text-decoration: none;
}

.home-product-card__image {
  width: 100%;
  margin: 0;
  overflow: hidden;
}

.home-product-card__image a {
  display: block;
}

.home-product-card__image img {
  width: 100%;
  display: block;
  transition: transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.home-product-grid-row > .wp-block-column {
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.home-product-grid-row > .wp-block-column > p {
  margin: 0;
  padding: var(--wp--preset--spacing--2-xs) var(--wp--preset--spacing--xs);
  transition:
    background-color 0.35s ease,
    color 0.35s ease;
}

.home-product-grid-row > .wp-block-column > p a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--xs);
  color: inherit !important;
}

.home-product-grid-row > .wp-block-column > p a::after {
  content: "";
  width: 0.8125rem;
  height: 0.375rem;
  flex: 0 0 auto;
  background: center / contain no-repeat url("assets/images/chevron-down.svg");
  opacity: 0;
  transform: translateX(-0.4rem) rotate(-90deg);
  transition:
    opacity 0.3s ease,
    transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.home-product-grid-row > .wp-block-column:is(:hover, :focus-within) {
  transform: translateY(-6px);
}

.home-product-grid-row
  > .wp-block-column:is(:hover, :focus-within)
  .home-product-card__image
  img {
  transform: scale(1.045);
}

.home-product-grid-row > .wp-block-column:is(:hover, :focus-within) > p {
  background-color: var(--wp--preset--color--light-green);
  color: var(--wp--preset--color--dark-green) !important;
}

.home-product-grid-row
  > .wp-block-column:is(:hover, :focus-within)
  > p
  a::after {
  opacity: 1;
  transform: translateX(0) rotate(-90deg);
}

@media (prefers-reduced-motion: reduce) {
  .home-product-grid-row > .wp-block-column,
  .home-product-card__image img,
  .home-product-grid-row > .wp-block-column > p,
  .home-product-grid-row > .wp-block-column > p a::after {
    transition: none;
  }
}

/* ==========================================================================
   Composant partagé : CTA projet
   ========================================================================== */

.project-cta {
  width: min(90%, 58rem) !important;
  max-width: min(90%, 58rem);
  margin-right: auto;
  margin-left: auto;
}

@media (max-width: 781px) {
  .home-product-grid-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--wp--preset--spacing--s);
  }

  .home-product-grid-row > .wp-block-column {
    flex-basis: auto !important;
  }
}

@media (max-width: 600px) {
  .project-cta {
    width: min(100%, 28rem) !important;
    max-width: 100%;
    border-radius: 32px !important;
    padding: var(--wp--preset--spacing--m) !important;
  }

  .project-cta__content,
  .project-cta__buttons,
  .project-cta__buttons .wp-block-button,
  .project-cta__button--phone .wp-block-button__link {
    width: 100%;
    text-align: center;
  }

  .project-cta__button--phone .wp-block-button__link {
    justify-content: center;
    white-space: normal;
  }
}

/* ==========================================================================
   Page SAV
   ========================================================================== */

.sav-services-grid {
  align-items: start !important;
}

.sav-intervention {
  box-sizing: border-box;
  max-width: none;
  margin-left: 0 !important;
  margin-right: calc(50% - 50vw) !important;
  padding-top: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 0 !important;
  gap: clamp(2rem, 4vw, var(--wp--preset--spacing--xl)) !important;
  position: relative;
  isolation: isolate;
  background-color: transparent !important;
}

.sav-intervention::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: calc(50% - 100vw);
  z-index: -1;
  background: var(--wp--preset--color--light-green);
  pointer-events: none;
}

.page-id-12 .sav-intervention::before {
  background-color: transparent;
}

.sav-intervention > .wp-block-column {
  margin-block-start: 0;
}

.sav-intervention .wp-block-cover {
  min-height: 100% !important;
}

.sav-intervention .wp-block-cover__inner-container {
  display: none;
}

.sav-service,
.sav-service__icon,
.sav-area-map {
  margin-block-start: 0;
}

.sav-service__icon img,
.sav-area-map img {
  display: block;
}

.sav-photo-placeholder {
  aspect-ratio: 1.65 / 1;
  min-height: unset !important;
}

.sav-photo-placeholder p {
  margin: 0;
}

@media (max-width: 781px) {
  .sav-intervention {
    margin-right: 0 !important;
    padding-right: var(--wp--style--root--padding-right, 7vw) !important;
    padding-left: var(--wp--style--root--padding-left, 7vw) !important;
  }

  .sav-intervention::before {
    left: 0;
  }

  .sav-intervention .wp-block-cover {
    min-height: 22rem !important;
  }

  .sav-services-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--wp--preset--spacing--l) var(--wp--preset--spacing--m);
  }

  .sav-services-grid > .wp-block-column {
    flex-basis: auto !important;
  }
}

/* ==========================================================================
   Archives : filtres réalisations et catégories conseils
   ========================================================================== */

.archive-taxonomy-filter,
.realisation-archive-filter {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--xs);
  width: 100%;
  max-width: var(--wp--style--global--wide-size);
  margin-top: var(--wp--preset--spacing--m);
}

.archive-taxonomy-filter__link,
.realisation-archive-filter__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  border: 1px solid var(--wp--preset--color--dark-green);
  color: var(--wp--preset--color--dark-green);
  background: var(--wp--preset--color--white);
  text-decoration: none;
  font-size: var(--wp--preset--font-size--small);
  font-weight: 600;
  line-height: 1.1;
}

.archive-taxonomy-filter__link.is-active,
.realisation-archive-filter__link.is-active {
  color: var(--wp--preset--color--white);
  background: var(--wp--preset--color--dark-green);
}

.conseils-category-filter {
  gap: var(--wp--preset--spacing--xs);
}

.conseils-category-filter__all {
  margin: 0;
}

.conseils-category-filter__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--xs);
  margin: 0;
  padding: 0;
  list-style: none;
}

.conseils-category-filter__list ul {
  flex-basis: 100%;
  margin: var(--wp--preset--spacing--xs) 0 0;
  padding: 0;
  list-style: none;
}

.conseils-category-filter__all a,
.conseils-category-filter__list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.625rem;
  padding: 0 14px;
  border: 2px solid var(--wp--preset--color--light-green);
  border-radius: 2px;
  color: var(--wp--preset--color--dark-green);
  background: var(--wp--preset--color--white);
  font-size: var(--wp--preset--font-size--small);
  font-weight: 600;
  line-height: 1.1;
  text-decoration: none;
  transition:
    background-color 160ms ease,
    color 160ms ease,
    border-color 160ms ease;
}

.conseils-category-filter__all.is-active a,
.conseils-category-filter__list .current-cat > a,
.conseils-category-filter__all a:hover,
.conseils-category-filter__all a:focus-visible,
.conseils-category-filter__list a:hover,
.conseils-category-filter__list a:focus-visible {
  border-color: var(--wp--preset--color--dark-green);
  color: var(--wp--preset--color--white);
  background: var(--wp--preset--color--dark-green);
}

.realisations-archive-query.is-loading {
  opacity: 0.55;
  transition: opacity 0.2s ease;
}

.conseils-pagination a {
  color: #a2a2a2;
  transition: 0.2s ease-in;
}

.conseils-pagination a:hover {
  color: var(--wp--preset--color--dark-green);
}

/* ==========================================================================
   Archives : grilles, cartes et pagination
   ========================================================================== */

.realisations-archive-query .realisation-archive-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--xl);
  list-style: none;
  margin: 0;
  padding: 0;
}

.stores-realisations-grid .realisation-archive-grid {
  grid-template-columns: repeat(
    var(--stores-realisations-grid-columns, 3),
    minmax(0, 1fr)
  );
}

.realisation-archive-card .wp-block-post-featured-image {
  margin: 0;
}

.realisation-archive-card .wp-block-post-featured-image,
.wp-block-post.realisation .wp-block-post-featured-image,
.conseils-card .wp-block-post-featured-image {
  overflow: hidden;
}

.realisation-archive-card .wp-block-post-featured-image img {
  width: 100%;
  display: block;
}

.realisation-archive-card .wp-block-post-featured-image img,
.wp-block-post.realisation .wp-block-post-featured-image img,
.conseils-card .wp-block-post-featured-image img {
  transform: scale(1.001);
  transition: transform 1.15s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

.realisation-archive-card:is(:hover, :focus-within)
  .wp-block-post-featured-image
  img,
.wp-block-post.realisation:is(:hover, :focus-within)
  .wp-block-post-featured-image
  img,
.conseils-card:is(:hover, :focus-within) .wp-block-post-featured-image img {
  transform: scale(1.09) translate3d(-1.5%, -1%, 0);
}

.realisation-archive-card__content {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--xs);
  padding-top: var(--wp--preset--spacing--2-xs);
}

.realisation-archive-card__content .taxonomy-linked-products {
  align-self: stretch;
  justify-content: flex-start;
  text-align: left;
  width: 100%;
}

.realisation-archive-card__content div {
  margin-block-start: 0;
}

.realisation-archive-card__content h3 {
  margin: 0;
  text-align: left;
}

.realisation-archive-card__content h3 a {
  color: inherit;
  text-decoration: none;
}

.realisation-archive-card__content p {
  margin: 0;
}

.realisation-archive-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  margin-top: var(--wp--preset--spacing--xl);
}

.realisation-archive-pagination__button {
  min-width: 44px;
  min-height: 44px;
  padding: 0.65rem 0.9rem;
  border: 1px solid var(--wp--preset--color--dark-green);
  background: var(--wp--preset--color--white);
  color: var(--wp--preset--color--dark-green);
  cursor: pointer;
  font: inherit;
  font-weight: 600;
}

.realisation-archive-pagination__button.is-active {
  background: var(--wp--preset--color--dark-green);
  color: var(--wp--preset--color--white);
}

.realisation-archive-empty {
  margin: 0;
  color: var(--wp--preset--color--dark-green);
}

/* ==========================================================================
   Pages avec hero taxonomie et compensation du header
   ========================================================================== */

.has-header-offset,
.taxonomy-gamme-hero {
  padding-top: calc(
    var(--stores-cousseau-header-offset) + var(--wp--preset--spacing--xl)
  ) !important;
}

.sav-page.has-header-offset {
  padding-top: calc(
    var(--stores-cousseau-header-offset) + var(--wp--preset--spacing--2-xl)
  ) !important;
}

body.tax-gamme.term-espaces-exterieurs
  .other-products-query
  .wp-block-post.gamme-espaces-exterieurs,
body.tax-gamme.term-protections-solaires
  .other-products-query
  .wp-block-post.gamme-protections-solaires {
  display: none;
}

/* ==========================================================================
   Pages produits/gammes : accompagnement, CTA et grilles conseils
   ========================================================================== */

.accompagnement-steps {
  position: relative;
  align-items: flex-start !important;
  --accompagnement-bullet-size: 1.2rem;
  --accompagnement-line-thickness: 2px;
}

.accompagnement-steps::before {
  content: "";
  position: absolute;
  top: calc(
    (var(--accompagnement-bullet-size) / 2) -
      (var(--accompagnement-line-thickness) / 2)
  );
  left: calc(8% + (var(--accompagnement-bullet-size) / 2));
  right: calc(8% + (var(--accompagnement-bullet-size) / 2));
  height: var(--accompagnement-line-thickness);
  background: var(--wp--preset--color--light-green);
}

.accompagnement-step {
  position: relative;
  padding-top: calc(var(--accompagnement-bullet-size) + 1.15rem);
}

.accompagnement-step::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--accompagnement-bullet-size);
  height: var(--accompagnement-bullet-size);
  border-radius: 999px;
  background: var(--wp--preset--color--light-green);
  transform: translateX(-50%);
}

.accompagnement-step p {
  margin: 0;
}

.taxonomy-gamme-cta > p:first-child {
  flex: 1 1 42rem;
  margin: 0;
}

.taxonomy-gamme-cta > p:last-child {
  flex: 0 0 auto;
  margin: 0;
  white-space: nowrap;
}

.conseils-query .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--m);
  align-items: stretch;
  padding-left: 0;
  list-style: none;
}

.conseils-card {
  height: 100%;
}

.conseils-card .wp-block-post-featured-image {
  margin: 0;
}

.conseils-card .wp-block-post-featured-image img {
  width: 100%;
  object-fit: cover;
}

@media (prefers-reduced-motion: reduce) {
  .realisation-archive-card .wp-block-post-featured-image img,
  .wp-block-post.realisation .wp-block-post-featured-image img,
  .conseils-card .wp-block-post-featured-image img {
    transform: none;
    transition: none;
  }
}

/* ==========================================================================
   Pages produits : bandeau média
   ========================================================================== */

.single-product-media-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
}

.single-product-media-strip__item {
  min-height: clamp(9rem, 16vw, 14rem);
}

.single-product-media-strip__item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.single-product-media-strip--fallback {
  grid-template-columns: minmax(0, 1fr);
}

/* ==========================================================================
   Composant partagé : images pictogrammes Gutenberg
   ========================================================================== */

.wp-block-image.is-style-picto {
  width: var(--stores-cousseau-image-width, auto);
  max-width: 100%;
}

.wp-block-image.is-style-picto img {
  width: 100%;
  height: var(--stores-cousseau-image-height, auto);
  object-fit: var(--stores-cousseau-image-fit, contain);
  display: block;
}

/* ==========================================================================
   Footer : réassurance, colonnes et showroom
   ========================================================================== */

.site-footer a {
  color: inherit;
}

.footer-reassurance__item,
.site-footer__column,
.site-footer__picto-card {
  margin-block-start: 0;
}

.footer-reassurance__icon,
.site-footer__logo {
  margin: 0;
}

.footer-reassurance__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
}

.footer-reassurance__icon img {
  width: auto !important;
  max-width: 64px;
  max-height: 64px;
  object-fit: contain;
}

.site-footer__products li::marker {
  color: var(--wp--preset--color--light-green);
}

.site-footer__products a {
  color: inherit;
  text-decoration: none;
}

.site-footer__picto-card {
  aspect-ratio: 2 / 1;
  max-width: 18rem;
}

.site-footer__picto-card .wp-block-image,
.site-footer__showroom-image {
  margin: 0;
}

.site-footer__showroom-image img {
  width: 100%;
  aspect-ratio: 2 / 1;
  object-fit: cover;
}

.site-footer__meta {
  position: relative;
  padding-left: 1.35rem;
}

.site-footer__meta::before {
  content: "";
  position: absolute;
  top: 0.42em;
  left: 0;
  width: 0.62rem;
  height: 0.62rem;
  border: 1px solid currentColor;
  border-radius: 999px;
}

.cousseau_infos figure {
  max-width: 14px !important;
}

/* ==========================================================================
   Responsive global : pages, archives, produits et footer
   ========================================================================== */

@media (max-width: 781px) {
  .has-header-offset,
  .taxonomy-gamme-hero {
    padding-top: calc(
      var(--stores-cousseau-header-offset) + var(--wp--preset--spacing--l)
    ) !important;
  }

  .sav-page.has-header-offset {
    padding-top: calc(
      var(--stores-cousseau-header-offset) + var(--wp--preset--spacing--xl)
    ) !important;
  }

  .product-title-card {
    max-width: calc(100% - 1.2rem);
  }

  .accompagnement-steps {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: var(--wp--preset--spacing--m);
    --accompagnement-bullet-size: 0.95rem;
  }

  .accompagnement-steps::before {
    top: calc(var(--accompagnement-bullet-size) / 2);
    bottom: calc(var(--accompagnement-bullet-size) / 2);
    left: calc(1.25rem - (var(--accompagnement-line-thickness) / 2));
    right: auto;
    width: var(--accompagnement-line-thickness);
    height: auto;
  }

  .accompagnement-steps > .wp-block-column {
    margin-top: 0 !important;
  }

  .accompagnement-step {
    min-height: 0;
    padding-top: 0;
    padding-left: 2.5rem;
    text-align: left;
  }

  .accompagnement-step::before {
    top: 0.05rem;
    left: 1.25rem;
    transform: translateX(-50%);
  }

  .accompagnement-step p {
    text-align: left !important;
  }

  .taxonomy-gamme-cta {
    border-radius: 2rem !important;
    justify-content: flex-start !important;
    padding-right: var(--wp--preset--spacing--s) !important;
    padding-left: var(--wp--preset--spacing--s) !important;
  }

  .taxonomy-gamme-cta > p:first-child,
  .taxonomy-gamme-cta > p:last-child {
    flex-basis: 100%;
  }

  .taxonomy-gamme-cta > p:last-child {
    white-space: normal;
  }

  .single-product-media-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .realisations-archive-query .realisation-archive-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1080px) {
  .footer-reassurance__grid,
  .site-footer__grid {
    flex-wrap: wrap !important;
  }

  .footer-reassurance__grid > .wp-block-column {
    flex-basis: calc(33.333% - var(--wp--preset--spacing--m)) !important;
    flex-grow: 1;
  }

  .site-footer__grid > .wp-block-column {
    flex-basis: calc(50% - var(--wp--preset--spacing--xl)) !important;
    flex-grow: 1;
  }

  .conseils-query .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 781px) {
  .footer-reassurance__grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--wp--preset--spacing--m) var(--wp--preset--spacing--s) !important;
    align-items: start;
  }

  .footer-reassurance__grid > .wp-block-column {
    flex-basis: auto !important;
    width: auto;
    min-width: 0;
  }

  .footer-reassurance__grid > .wp-block-column:last-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc((100% - var(--wp--preset--spacing--s)) / 2);
  }

  .site-footer__grid > .wp-block-column {
    flex-basis: 100% !important;
  }

  .site-footer__picto-card {
    max-width: 100%;
  }
}

@media (max-width: 640px) {
  .site-footer__buttons,
  .site-footer__buttons .wp-block-button,
  .site-footer__buttons .wp-block-button__link {
    width: 100%;
  }

  .conseils-query .wp-block-post-template {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .archive-taxonomy-filter__link,
  .realisation-archive-filter__link {
    width: fit-content;
    max-width: 100%;
  }

  .realisations-archive-query .realisation-archive-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .conseils-card .wp-block-post-featured-image img {
    aspect-ratio: 1.15;
  }

  .single-product-media-strip {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ==========================================================================
   Page Contact : grille accompagnement
   ========================================================================== */

.accompagnement-main-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 760px) minmax(320px, 430px) !important;
  justify-content: space-between;
  align-items: center;
  gap: clamp(2rem, 7vw, 8rem);
}

.accompagnement-main-grid__content {
  width: 100%;
  max-width: 760px;
}

.accompagnement-main-grid__card {
  width: 100%;
  max-width: 430px;
  justify-self: end;
}

.accompagnement-main-grid__card .wp-block-image {
  margin-bottom: 0;
}

.accompagnement-main-grid__card p {
  margin-top: 0;
}

.accompagnement-main-grid__card-line {
  align-items: flex-start;
}

.accompagnement-main-grid__card-line .wp-block-image {
  flex: 0 0 auto;
}

@media (max-width: 980px) {
  .accompagnement-main-grid {
    grid-template-columns: 1fr !important;
  }

  .accompagnement-main-grid__card {
    justify-self: start;
    max-width: 430px;
  }
}

@media (max-width: 560px) {
  .accompagnement-main-grid__card {
    max-width: 100%;
  }

  .accompagnement-main-grid__card .wp-block-image img {
    max-width: 200px;
  }
}
