/**
 * Interactions partagées du modèle Premium (révélations, boutons, marquee).
 * Extraites de l'ancien premium-nav Webflow pour survivre au shell header-5.
 */

.tpl-premium [data-premium-reveal="up"] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity 0.7s ease, transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.tpl-premium [data-premium-reveal="up"].is-inview {
  opacity: 1;
  transform: none;
}
.tpl-premium [data-premium-reveal="image"] {
  position: relative;
}
.tpl-premium [data-premium-reveal="image"] > .image-effect-wrapper {
  display: block !important;
  position: absolute !important;
  inset: 0;
  height: 100%;
  z-index: 2;
  pointer-events: none;
}
.tpl-premium .planning-image-one > .planning-image-content-wrapper {
  position: relative;
  z-index: 3;
}
@media screen and (max-width: 991px) {
  .tpl-premium [data-premium-reveal="image"] > .image-effect-wrapper {
    display: none !important;
  }
}
.tpl-premium [data-premium-reveal="image"] .inside-overlay,
.tpl-premium [data-premium-reveal="image"] .outside-overlay {
  /* Gagne sur premium.css (translateY(100%) = déjà révélé sans webflow.js) */
  transform: translateY(0) !important;
  transition: transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}
.tpl-premium [data-premium-reveal="image"] .outside-overlay {
  transition-delay: 0.08s;
}
.tpl-premium [data-premium-reveal="image"].is-inview .inside-overlay,
.tpl-premium [data-premium-reveal="image"].is-inview .outside-overlay {
  transform: translateY(101%) !important;
}
@media (prefers-reduced-motion: reduce) {
  .tpl-premium [data-premium-reveal="up"] {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
  .tpl-premium [data-premium-reveal="image"] .inside-overlay,
  .tpl-premium [data-premium-reveal="image"] .outside-overlay {
    transition: none !important;
    transform: translateY(101%) !important;
  }
}

/* About us (home) réutilisé sur Services : la carte teal Kontix n'est
   définie qu'à 1280px dans la feuille home, et IX2 home n'existe pas
   sur gutter-guards. On ancre photo + carte au module, pas à la page. */
@media screen and (min-width: 992px) {
  .tpl-premium .about-three .about-three-image-wrap {
    position: relative;
    display: flex;
  }
  .tpl-premium .about-three .about-three-image-one {
    position: relative;
    z-index: 1;
    height: auto;
  }
  /* Le badge optionnel est lui aussi une image directe de ce conteneur :
     cette garantie d'affichage ne vise que la photo. */
  .tpl-premium .about-three .about-three-image-one > img:not(.premium-about-three-badge) {
    display: block;
    width: 100%;
    height: auto;
    opacity: 1;
    visibility: visible;
  }
  .tpl-premium .about-three .about-image-card {
    display: block;
    background-color: var(--yellow);
    border-radius: 10px;
    width: 60%;
    height: 60%;
    margin-right: 32px;
    position: absolute;
    inset: 0% 0% 0% auto;
    pointer-events: none;
  }
}

/* Apparence fond noir / fond blanc — même contrat que le footer.
   Branché sur À propos (premium) ; les prochains blocs réutiliseront [data-theme]. */
.tpl-premium .about-three[data-theme="light"] {
  --pbt-bg: #fff;
  --pbt-text: #111;
  --pbt-muted: rgba(17, 17, 17, 0.76);
  background-color: var(--pbt-bg);
  color: var(--pbt-text);
}
.tpl-premium .premium-block-scope:has(> .about-three[data-theme="light"]) {
  background-color: #fff;
  color: #111;
}
.tpl-premium .about-three[data-theme="light"] h1,
.tpl-premium .about-three[data-theme="light"] h2,
.tpl-premium .about-three[data-theme="light"] h3,
.tpl-premium .about-three[data-theme="light"] h4,
.tpl-premium .about-three[data-theme="light"] h2.no-margin {
  color: #111 !important;
}
.tpl-premium .about-three[data-theme="light"] p,
.tpl-premium .about-three[data-theme="light"] p.no-margin {
  color: var(--pbt-muted, rgba(17, 17, 17, 0.76)) !important;
}
.tpl-premium .about-three[data-theme="light"] .outside-overlay {
  background-color: #fff;
}

/* Services (cartes images) — même contrat [data-theme] que ci-dessus.
   Le sous-titre reste jaune : il passe les deux fonds. Les logos de marque, eux,
   ont un texte blanc et sont échangés à la fabrication, pas en CSS. */
.tpl-premium .features-three[data-theme="light"] {
  --pbt-bg: #fff;
  --pbt-text: #111;
  --pbt-muted: rgba(17, 17, 17, 0.76);
  background-color: var(--pbt-bg);
  color: var(--pbt-text);
}
.tpl-premium .premium-block-scope:has(> .features-three[data-theme="light"]) {
  background-color: #fff;
  color: #111;
}
.tpl-premium .features-three[data-theme="light"] h2,
.tpl-premium .features-three[data-theme="light"] h3,
.tpl-premium .features-three[data-theme="light"] h2.no-margin,
.tpl-premium .features-three[data-theme="light"] h3.no-margin {
  color: #111 !important;
}
.tpl-premium .features-three[data-theme="light"] p,
.tpl-premium .features-three[data-theme="light"] p.no-margin,
.tpl-premium .features-three[data-theme="light"] p.color-white {
  color: var(--pbt-muted, rgba(17, 17, 17, 0.76)) !important;
}
/* Le filet entre deux cartes est un blanc translucide, invisible sur fond blanc. */
.tpl-premium .features-three[data-theme="light"] .features-three-card {
  border-top-color: rgba(17, 17, 17, 0.14);
}
/* Ce bloc emploie la variante blanche du kicker, qui disparaît sur fond blanc :
   on le ramène à la couleur d'accent du site. Celui de la puce du bandeau porte
   « color-black » sur fond coloré et garde donc son noir. */
.tpl-premium .features-three[data-theme="light"] .sub-heading:not(.color-black) {
  color: var(--yellow, #111) !important;
}
.tpl-premium .features-three[data-theme="light"] .outside-overlay {
  background-color: #fff;
}
/* Le bandeau de réassurance est une pastille blanche translucide à texte blanc :
   invisible sur fond blanc. On l'inverse en pastille sombre translucide, et la
   puce jaune du kicker garde son texte noir d'origine. */
.tpl-premium .features-three[data-theme="light"] .service-one-button-wrapper {
  background-color: rgba(17, 17, 17, 0.06);
}
.tpl-premium .features-three[data-theme="light"] .service-one-button-wrapper .color-white {
  color: #111 !important;
}

/* Product teaser : fond blanc par défaut — les h3 Services restent blancs via Kontix.
   Fond noir : texte pâle + cartes inversées. */
.tpl-premium [data-premium-product-teaser] .premium-product-teaser__title,
.tpl-premium [data-premium-product-teaser] .premium-product-teaser__title-main,
.tpl-premium [data-premium-product-teaser] .premium-product-teaser__desc,
.tpl-premium [data-premium-product-teaser] .premium-product-teaser__feature-stat,
.tpl-premium [data-premium-product-teaser] .premium-product-teaser__feature-text {
  color: var(--ppt-text, #111) !important;
}
.tpl-premium [data-premium-product-teaser][data-theme="dark"] {
  --ppt-bg: #000;
  --ppt-card-bg: #121212;
  --ppt-text: #f4f4f4;
  --ppt-muted: rgba(244, 244, 244, 0.78);
  --ppt-feature-bg: rgba(255, 255, 255, 0.06);
  --ppt-feature-border: rgba(255, 255, 255, 0.16);
  --ppt-card-shadow: rgba(0, 0, 0, 0.45);
  background-color: #000;
  color: #f4f4f4;
}
.tpl-premium .premium-block-scope:has(> [data-premium-product-teaser][data-theme="dark"]) {
  background-color: #000;
  color: #f4f4f4;
}
.tpl-premium [data-premium-product-teaser][data-theme="dark"] .premium-product-teaser__title,
.tpl-premium [data-premium-product-teaser][data-theme="dark"] .premium-product-teaser__title-main,
.tpl-premium [data-premium-product-teaser][data-theme="dark"] .premium-product-teaser__title-main span,
.tpl-premium [data-premium-product-teaser][data-theme="dark"] .premium-product-teaser__desc,
.tpl-premium [data-premium-product-teaser][data-theme="dark"] .premium-product-teaser__feature-stat,
.tpl-premium [data-premium-product-teaser][data-theme="dark"] .premium-product-teaser__feature-text {
  color: #f4f4f4 !important;
}
.tpl-premium [data-premium-product-teaser] img.premium-product-teaser__logo-img--on-dark {
  display: none;
}
.tpl-premium [data-premium-product-teaser][data-theme="dark"] img.premium-product-teaser__logo-img--on-light {
  display: none !important;
}
.tpl-premium [data-premium-product-teaser][data-theme="dark"] img.premium-product-teaser__logo-img--on-dark {
  display: block;
}
.tpl-premium [data-premium-product-teaser] .premium-product-teaser__feature-icon,
.tpl-premium [data-premium-product-teaser][data-theme="dark"] .premium-product-teaser__feature-icon {
  filter: none;
}

.tpl-premium .button-style-one-background {
  transform-box: border-box;
  transform: scaleY(0);
  transform-origin: bottom center;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}
.tpl-premium .button-style-one:hover .button-style-one-background,
.tpl-premium .button-style-one:focus-visible .button-style-one-background {
  transform: scaleY(1);
}
.tpl-premium .button-style-one .button-text-wrap > * {
  transform-box: border-box;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.tpl-premium .button-style-one:hover .button-text-wrap > *:not(.button-text-stack),
.tpl-premium .button-style-one:focus-visible .button-text-wrap > *:not(.button-text-stack) {
  transform: translateY(-100%);
}
.tpl-premium .button-style-one .button-text-stack {
  display: flex;
  flex-direction: column;
}
.tpl-premium .button-style-one:hover .button-text-stack,
.tpl-premium .button-style-one:focus-visible .button-text-stack {
  transform: translateY(-50%);
}
/* Hero slider : CTA visible sans Webflow SLIDER_ACTIVE ; hover via text-stack (pas IX2) */
.tpl-premium .hero-three .hero-three-button-wrap,
.tpl-premium .hero-three .hero-three-button-wrap .button-style-one-wrap,
.tpl-premium .hero-three .hero-three-button-wrap .button-style-one {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
.tpl-premium .hero-three .button-text-wrap {
  display: block;
  height: 1.5em;
  overflow: hidden;
  z-index: 1;
}
.tpl-premium .hero-three .button-style-one-icon {
  z-index: 1;
}
.tpl-premium .hero-three .button-text-stack {
  display: flex;
  flex-direction: column;
  transform-box: border-box;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.tpl-premium .hero-three .button-style-one:hover .button-text-stack,
.tpl-premium .hero-three .button-style-one:focus-visible .button-text-stack,
.tpl-premium .hero-three .button-style-one.is-kontix-hover .button-text-stack {
  transform: translateY(-50%);
}
.tpl-premium .hero-three .button-style-one-background {
  transform: scaleY(0) !important;
}
.tpl-premium .hero-three .button-style-one:hover .button-style-one-background,
.tpl-premium .hero-three .button-style-one:focus-visible .button-style-one-background,
.tpl-premium .hero-three .button-style-one.is-kontix-hover .button-style-one-background {
  transform: scaleY(1) !important;
}
/* Boutons dans un conteneur opacity:0 (Webflow) — le hover doit rester visible */
.tpl-premium [data-premium-reveal="up"] .button-style-one-wrap,
.tpl-premium [data-premium-reveal="up"] .button-style-one,
.tpl-premium .button-style-one-wrap[data-premium-reveal="up"],
.tpl-premium .button-style-one[data-premium-reveal="up"] {
  opacity: 1;
}

.tpl-premium .image-effect {
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.tpl-premium a:hover .image-effect,
.tpl-premium [data-premium-reveal="image"]:hover .image-effect,
.tpl-premium .overflow-hidden:hover > .image-effect {
  transform: scale(1.05);
}

.tpl-premium .client-one-marquee-train {
  animation: premium-clients-marquee 32s linear infinite;
}
@keyframes premium-clients-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-100%); }
}

.tpl-premium .service-three .service-three-title-wrap {
  padding-top: 30px;
}

.tpl-premium [data-premium-features-three] .features-three-title-wrap {
  padding-top: 30px;
}

.tpl-premium [data-premium-innovation] .innovation-body {
  padding-bottom: 56px;
}
.tpl-premium [data-premium-innovation] .innovation-body p {
  margin: 0 0 1em;
}
.tpl-premium [data-premium-innovation] .innovation-body p:last-child,
.tpl-premium [data-premium-innovation] .innovation-body ul:last-child,
.tpl-premium [data-premium-innovation] .innovation-body ol:last-child {
  margin-bottom: 0;
}
.tpl-premium [data-premium-innovation] .innovation-body ul,
.tpl-premium [data-premium-innovation] .innovation-body ol {
  margin: 0 0 1em;
  padding-inline-start: 1.25em;
}
.tpl-premium [data-premium-innovation] .innovation-body a {
  color: inherit;
  text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
  .tpl-premium .button-style-one-background,
  .tpl-premium .button-style-one .button-text-wrap > *,
  .tpl-premium .image-effect {
    transition: none !important;
    transform: none !important;
  }
  .tpl-premium .client-one-marquee-train { animation: none; }
}

/* Catalogue UIblocs — chaque wrapper rejoue le chrome de sa page source. */
body.page-ui-catalog.tpl-premium {
  background-color: var(--brand-dark, #0d0d0d);
}

/* UIblocs : pas de webflow.js — tout visible sans attendre le scroll reveal */
body.page-ui-catalog.tpl-premium [data-premium-reveal="up"],
body.page-ui-catalog.tpl-premium [data-premium-reveal="up"].is-inview {
  opacity: 1 !important;
  transform: none !important;
}

/* UIblocs : boutons Kontix visibles et hover CSS actif */
body.page-ui-catalog.tpl-premium .premium-block-scope .button-style-one-wrap,
body.page-ui-catalog.tpl-premium .premium-block-scope .button-style-one {
  opacity: 1 !important;
  visibility: visible !important;
}

body.page-ui-catalog.tpl-premium .site-main > :not(.top-space-15) + :not(.top-space-15) {
  margin-top: 0;
}

body.page-ui-catalog.tpl-premium .premium-block-scope {
  isolation: isolate;
  position: relative;
  display: block;
  width: 100%;
  min-height: 0;
  height: auto;
  overflow: visible;
}

body.page-ui-catalog.tpl-premium .premium-block-scope [data-w-id]:not(.w-slide):not([hidden]) {
  visibility: visible;
}

body.page-ui-catalog.tpl-premium .premium-block-scope .about-kontix,
body.page-ui-catalog.tpl-premium .premium-block-scope .about-contix-sticky,
body.page-ui-catalog.tpl-premium .premium-block-scope .preservation--sticky-height {
  min-height: 0 !important;
  height: auto !important;
  position: relative !important;
}

/* Catalogue : IX2 absent — le bandeau « installateurs » ne doit plus
   se superposer en absolute/inset:0 sur le titre « Notre mission ». */
@media screen and (min-width: 992px) {
  body.page-ui-catalog.tpl-premium .premium-block-scope .about-kontix {
    min-height: auto !important;
    padding-bottom: 70px;
  }
  body.page-ui-catalog.tpl-premium .premium-block-scope .about-contix-sticky.overflow-hidden {
    min-height: auto !important;
    position: static !important;
    overflow: visible !important;
  }
  body.page-ui-catalog.tpl-premium .premium-block-scope .about-kontix-bottom-wrapper {
    position: relative !important;
    inset: auto !important;
    pointer-events: auto;
    padding-top: 70px;
    align-items: stretch;
  }
  body.page-ui-catalog.tpl-premium .premium-block-scope .about-kontix-image-animation-overlay {
    display: none !important;
  }
}

/* Bandeau vidéo CTA — premium.css ne donne une hauteur à `.video-section` que
   sous 767px (450px). Au-dessus, `.full-height` (height:100%) l'emporte sur le
   500px de `.w-background-video` et la bande s'écrasait à 0 px. Hauteur explicite
   et non min-height : l'enfant `.full-height` en height:100% ne se résout que
   contre une hauteur définie. */
@media screen and (min-width: 768px) {
  .tpl-premium .video-section {
    height: 500px;
  }
}
/* La vidéo de fond est en z-index:-100 : sans contexte d'empilement sur la
   section, elle glisse derrière le fond sombre de la page et la bande reste
   noire. Isolée ici, elle passe sous le dégradé du bandeau et sous le texte. */
.tpl-premium .video-section {
  isolation: isolate;
}
/* Rideau des 5 bandes : IX2 (absent du modèle) devait les replier. Laissées
   telles quelles, elles sont opaques et recouvrent la vidéo. */
.tpl-premium .video-section .video-line-overlay {
  transform: scaleY(0);
}

/* Bloc Notre histoire — icônes des 2 cartes (2× la taille d'origine Webflow). */
.tpl-premium [data-premium-our-story-one] .icon-box-three-icon img {
  width: 96px;
  height: auto;
  max-width: none;
}
.tpl-premium [data-premium-our-story-one] .icon-box-three.two .icon-box-three-icon img {
  width: 80px;
}

/* Lightbox vidéo — boutons portant data-premium-lightbox. */
body.premium-lightbox-open {
  overflow: hidden;
}
.premium-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 56px);
  opacity: 0;
  transition: opacity 0.25s ease;
}
.premium-lightbox.is-open {
  opacity: 1;
}
.premium-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.84);
}
.premium-lightbox__dialog {
  position: relative;
  width: min(1100px, 100%);
}
.premium-lightbox__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
  border-radius: 10px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
  transform: scale(0.97);
  transition: transform 0.25s ease;
}
.premium-lightbox.is-open .premium-lightbox__frame {
  transform: none;
}
.premium-lightbox__frame iframe,
.premium-lightbox__frame video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.premium-lightbox__close {
  position: absolute;
  top: -18px;
  right: -18px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--yellow, #f3c000);
  color: #111;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}
.premium-lightbox__close:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
@media (max-width: 767px) {
  .premium-lightbox__close {
    top: -54px;
    right: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .premium-lightbox,
  .premium-lightbox__frame {
    transition: none;
    transform: none;
  }
}

/* ==========================================================================
   Formulaire de contact premium — panneau « dock », fond noir ou fond blanc.
   Bordures des champs ≥ 3:1 (1.4.11), textes ≥ 7:1 (1.4.6) dans les deux apparences.
   ========================================================================== */
.tpl-premium[data-premium-page] [data-premium-contact-form] {
  --pcf-section-bg: transparent;
  --pcf-text: #ffffff;
  --pcf-muted: rgba(255, 255, 255, 0.78);
  --pcf-placeholder: rgba(255, 255, 255, 0.62);
  --pcf-divider: rgba(255, 255, 255, 0.14);
  --pcf-panel-bg: rgba(255, 255, 255, 0.035);
  --pcf-panel-border: rgba(255, 255, 255, 0.1);
  --pcf-panel-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.6);
  --pcf-field-bg: rgba(255, 255, 255, 0.05);
  --pcf-field-bg-hover: rgba(255, 255, 255, 0.08);
  --pcf-field-border: rgba(255, 255, 255, 0.42);
  --pcf-field-border-hover: rgba(255, 255, 255, 0.7);
  --pcf-icon: rgba(255, 255, 255, 0.7);
  --pcf-focus: var(--premium-accent-text, #ffffff);
  --pcf-error: #ff9e94;
  --pcf-highlight-icon-filter: none;
  background-color: var(--pcf-section-bg);
  color: var(--pcf-text);
}
.tpl-premium[data-premium-page] [data-premium-contact-form][data-theme="light"] {
  --pcf-section-bg: #ffffff;
  --pcf-text: #111111;
  --pcf-muted: rgba(17, 17, 17, 0.78);
  --pcf-placeholder: rgba(17, 17, 17, 0.6);
  --pcf-divider: rgba(17, 17, 17, 0.12);
  --pcf-panel-bg: #f5f5f3;
  --pcf-panel-border: rgba(17, 17, 17, 0.07);
  --pcf-panel-shadow: 0 30px 60px -36px rgba(17, 17, 17, 0.28);
  --pcf-field-bg: #ffffff;
  --pcf-field-bg-hover: #ffffff;
  --pcf-field-border: rgba(17, 17, 17, 0.5);
  --pcf-field-border-hover: rgba(17, 17, 17, 0.8);
  --pcf-icon: rgba(17, 17, 17, 0.62);
  --pcf-error: #a8071a;
  --pcf-highlight-icon-filter: brightness(0);
}

/* Colonne gauche */
.tpl-premium[data-premium-page] [data-premium-contact-form] :is(h2, h3, .heading-style-h5, .icon-box-four-title) {
  color: var(--pcf-text);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] :is(p, .color-white) {
  color: var(--pcf-muted);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .icon-box-four-line {
  background-color: var(--pcf-divider);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .icon-box-four-icon img {
  filter: var(--pcf-highlight-icon-filter);
}

/* Colonne droite : le panneau */
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-one-form-wrap {
  align-self: flex-start;
  margin: 90px 0 100px 40px;
  padding: 44px 44px 40px;
  border: 1px solid var(--pcf-panel-border);
  border-radius: 24px;
  background-color: var(--pcf-panel-bg);
  box-shadow: var(--pcf-panel-shadow);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-one-form-text {
  margin-top: 10px;
  margin-bottom: 28px;
}

/* Grille : champs « demi » côte à côte, le reste pleine largeur */
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 16px;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-fields > * {
  grid-column: 1 / -1;
  min-width: 0;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-fields > .premium-contact-field--half {
  grid-column: auto;
}

/* Étiquettes */
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-label {
  display: block;
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: var(--pcf-text);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-label__required {
  color: var(--pcf-muted);
}

/* Champs */
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control {
  position: relative;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] :is(.contact-one-form-input, .contact-one-text-area) {
  display: block;
  width: 100%;
  height: 52px;
  margin: 0;
  padding: 0 16px;
  border: 1px solid var(--pcf-field-border);
  border-radius: 12px;
  background-color: var(--pcf-field-bg);
  box-shadow: none;
  color: var(--pcf-text);
  font-size: 15px;
  line-height: 1.4;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-one-text-area {
  height: auto;
  min-height: 150px;
  padding-top: 14px;
  padding-bottom: 14px;
  resize: vertical;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--icon :is(.contact-one-form-input, .contact-one-text-area) {
  padding-left: 46px;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] :is(.contact-one-form-input, .contact-one-text-area)::placeholder {
  color: var(--pcf-placeholder);
  opacity: 1;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] :is(.contact-one-form-input, .contact-one-text-area):hover {
  border-color: var(--pcf-field-border-hover);
  background-color: var(--pcf-field-bg-hover);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] :is(.contact-one-form-input, .contact-one-text-area, .premium-service-picker__btn, .premium-contact-upload):focus-visible {
  border-color: var(--pcf-focus);
  outline: 2px solid var(--pcf-focus) !important;
  outline-offset: 2px !important;
  box-shadow: none !important;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] :is(.contact-one-form-input, .contact-one-text-area)[aria-invalid="true"] {
  border-color: var(--pcf-error);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] select.contact-one-form-input {
  padding-right: 44px;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] select.contact-one-form-input option {
  color: #111111;
  background: #ffffff;
}

/* Icônes des champs (même trait que le menu dock) */
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--icon::before,
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--select::after {
  content: "";
  position: absolute;
  z-index: 1;
  width: 18px;
  height: 18px;
  background-color: var(--pcf-icon);
  pointer-events: none;
  -webkit-mask: var(--pcf-glyph) center / contain no-repeat;
  mask: var(--pcf-glyph) center / contain no-repeat;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--icon::before {
  top: 17px;
  left: 16px;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--select::after {
  top: 17px;
  right: 16px;
  --pcf-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--user {
  --pcf-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21v-1a7 7 0 0 1 14 0v1'/%3E%3C/svg%3E");
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--mail {
  --pcf-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--phone {
  --pcf-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--pin {
  --pcf-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--service {
  --pcf-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 10 5-10 5L2 7z'/%3E%3Cpath d='m2 17 10 5 10-5'/%3E%3Cpath d='m2 12 10 5 10-5'/%3E%3C/svg%3E");
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-control--message {
  --pcf-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");
}

/* Erreurs, compteur, aide */
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-field-error {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: var(--pcf-error);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-field-error:empty {
  display: none;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-char-count {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  text-align: end;
  color: var(--pcf-muted);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-char-count.near-limit {
  font-weight: 600;
  color: var(--pcf-text);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-hint {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: var(--pcf-muted);
}

/* Service en boutons */
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-service-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-service-picker__btn {
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid var(--pcf-field-border);
  border-radius: 12px;
  background: var(--pcf-field-bg);
  color: var(--pcf-text);
  font: inherit;
  font-size: 14px;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-service-picker__btn:hover {
  border-color: var(--pcf-field-border-hover);
  background: var(--pcf-field-bg-hover);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-service-picker__btn.is-active {
  border-color: var(--brand-btn-bg);
  background: var(--brand-btn-bg);
  color: var(--brand-btn-text);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-service-picker__select {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

/* Pièces jointes : zone de dépôt en pointillés */
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-upload {
  display: block;
  width: 100%;
  min-height: 64px;
  padding: 10px;
  border: 1px dashed var(--pcf-field-border);
  border-radius: 12px;
  background: var(--pcf-field-bg);
  color: var(--pcf-muted);
  font-size: 14px;
  cursor: pointer;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-upload::file-selector-button {
  min-height: 44px;
  margin-inline-end: 12px;
  padding: 10px 16px;
  border: 0;
  border-radius: 9px;
  background: var(--pcf-text);
  color: var(--pcf-section-bg, #111111);
  font: inherit;
  font-weight: 500;
  cursor: pointer;
}
.tpl-premium[data-premium-page] [data-premium-contact-form]:not([data-theme="light"]) .premium-contact-upload::file-selector-button {
  color: #111111;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-attachment-list {
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-attachment-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 0 0 14px;
  border-radius: 10px;
  background: var(--pcf-field-bg);
  font-size: 14px;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-attachment-item + .contact-attachment-item {
  margin-top: 6px;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-attachment-remove {
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  color: var(--pcf-text);
  font-size: 20px;
  cursor: pointer;
}

/* Consentement */
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-check-block {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-height: 44px;
  margin: 4px 0 0;
  padding: 10px 0;
  cursor: pointer;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-check-box {
  position: relative;
  width: 22px;
  height: 22px;
  margin: 0;
  border: 1.5px solid var(--pcf-field-border);
  border-radius: 7px;
  background: var(--pcf-field-bg);
  background-image: none !important;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-check-box.w--redirected-checked {
  border-color: var(--brand-btn-bg);
  background-color: var(--brand-btn-bg);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-check-box.w--redirected-checked::after {
  content: "";
  position: absolute;
  inset: 3px;
  background-color: var(--brand-btn-text);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%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='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-check-block:focus-within .contact-form-check-box {
  outline: 2px solid var(--pcf-focus);
  outline-offset: 2px;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-checkbox-label {
  font-size: 14px;
  line-height: 1.5;
  color: var(--pcf-text);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-checkbox-label a {
  color: inherit;
  text-decoration: underline;
}

/* Anti-robot et envoi */
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-turnstile:empty {
  display: none;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .premium-contact-turnstile .js-turnstile {
  margin: 0 !important;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-fields > .display-inline-block {
  justify-self: start;
  margin-top: 6px;
}

/* Retours d'envoi */
.tpl-premium[data-premium-page] [data-premium-contact-form] :is(.form-success-message, .form-error-message) {
  margin-top: 16px;
  padding: 16px 18px;
  border-radius: 12px;
  font-size: 15px;
  text-align: start;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .form-success-message {
  background-color: var(--brand-btn-bg);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] :is(.form-success-message, .form-success-message .color-black) {
  color: var(--brand-btn-text);
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .form-success-message:focus {
  outline: none;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] .form-error-message {
  background-color: #8a1111;
}
.tpl-premium[data-premium-page] [data-premium-contact-form] :is(.form-error-message, .form-error-message .color-white) {
  color: #ffffff;
}

@media (max-width: 991px) {
  .tpl-premium[data-premium-page] [data-premium-contact-form] .contact-one-form-wrap {
    margin: 0 0 80px;
    padding: 32px 28px;
    border-left: 1px solid var(--pcf-panel-border);
  }
}
@media (max-width: 767px) {
  .tpl-premium[data-premium-page] [data-premium-contact-form] .contact-one-form-wrap {
    padding: 26px 20px;
    border-radius: 20px;
  }
  .tpl-premium[data-premium-page] [data-premium-contact-form] .contact-form-fields {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ==========================================================================
   Avis Google (premium-google-reviews)
   Carrousel à défilement natif : glisser tactile, molette et flèches clavier
   fonctionnent sans JS ; les boutons ne font qu'ajouter le défilement par carte.
   ========================================================================== */
.tpl-premium[data-premium-page] [data-premium-google-reviews] {
  --pgr-bg: transparent;
  --pgr-text: #ffffff;
  --pgr-muted: rgba(255, 255, 255, 0.82);
  --pgr-card-bg: rgba(255, 255, 255, 0.045);
  --pgr-card-border: rgba(255, 255, 255, 0.12);
  --pgr-card-shadow: 0 30px 60px -36px rgba(0, 0, 0, 0.7);
  --pgr-divider: rgba(255, 255, 255, 0.14);
  --pgr-avatar-ring: rgba(255, 255, 255, 0.22);
  --pgr-star: #ffc233;
  --pgr-star-empty: rgba(255, 255, 255, 0.24);
  --pgr-focus: var(--premium-accent-text, #ffffff);
  --pgr-fade: #0b0b0b;
  background-color: var(--pgr-bg);
  color: var(--pgr-text);
  padding: 96px 0;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews][data-theme="light"] {
  --pgr-bg: #ffffff;
  --pgr-text: #111111;
  --pgr-muted: #4a4a4a;
  --pgr-card-bg: #ffffff;
  --pgr-card-border: rgba(17, 17, 17, 0.1);
  --pgr-card-shadow: 0 1px 2px rgba(15, 23, 32, 0.05), 0 22px 44px -28px rgba(15, 23, 32, 0.35);
  --pgr-divider: rgba(17, 17, 17, 0.1);
  --pgr-avatar-ring: rgba(17, 17, 17, 0.12);
  --pgr-star: #e8a300;
  --pgr-star-empty: rgba(17, 17, 17, 0.18);
  --pgr-focus: #1e5a98;
  --pgr-fade: #ffffff;
}

/* En-tête */
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 44px;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__intro {
  max-width: 640px;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] :is(h2, .sub-heading) {
  color: var(--pgr-text);
}

.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  color: var(--pgr-muted);
  font-size: 15px;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__score {
  font-size: 20px;
  font-weight: 600;
  color: var(--pgr-text);
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__link {
  color: var(--pgr-text);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__link:hover {
  text-decoration-thickness: 2px;
}

/* Flèches */
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__nav {
  display: flex;
  gap: 12px;
  flex: 0 0 auto;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__arrow {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid var(--pgr-card-border);
  background: var(--pgr-card-bg);
  color: var(--pgr-text);
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__arrow:hover:not(:disabled) {
  border-color: var(--pgr-text);
  transform: translateY(-1px);
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__arrow:disabled {
  opacity: 0.4;
  cursor: default;
}

/* Zone défilante */
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding: 4px 0 8px;
  /* Le dégradé de bord ne s'affiche que du côté où il reste des avis à faire
     défiler : les cartes restent alignées sur le titre en début et fin de course. */
  --pgr-fade-left: 48px;
  --pgr-fade-right: 48px;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--pgr-fade-left), #000 calc(100% - var(--pgr-fade-right)), transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 var(--pgr-fade-left), #000 calc(100% - var(--pgr-fade-right)), transparent 100%);
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__viewport.is-at-start {
  --pgr-fade-left: 0px;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__viewport.is-at-end {
  --pgr-fade-right: 0px;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__viewport::-webkit-scrollbar {
  display: none;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__viewport:focus-visible {
  outline: 2px solid var(--pgr-focus);
  outline-offset: 4px;
  border-radius: 24px;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__track {
  display: flex;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Carte */
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__item {
  flex: 0 0 auto;
  width: min(384px, 82vw);
  scroll-snap-align: start;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  padding: 34px;
  border-radius: 22px;
  border: 1px solid var(--pgr-card-border);
  background: var(--pgr-card-bg);
  box-shadow: var(--pgr-card-shadow);
}

/* Étoiles */
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__stars {
  display: inline-flex;
  gap: 3px;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__card .premium-google-reviews__stars {
  margin-bottom: 18px;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__star {
  width: 14px;
  height: 14px;
  background-color: var(--pgr-star-empty);
  -webkit-mask: var(--pgr-star-mask) center / contain no-repeat;
  mask: var(--pgr-star-mask) center / contain no-repeat;
  --pgr-star-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6.32 6.86.68-5.15 4.72 1.5 6.78L12 17.9l-6.11 3.1 1.5-6.78-5.15-4.72 6.86-.68z'/%3E%3C/svg%3E");
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__star.is-filled {
  background-color: var(--pgr-star);
}

/* Texte de l'avis */
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__quote {
  margin: 0;
  flex-grow: 1;
  border: 0;
  padding: 0;
}
/* Les avis Google ont des longueurs très variables : on plafonne à 6 lignes pour
   que la hauteur des cartes ne dépende pas du plus bavard. */
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__quote p {
  margin: 0;
  color: var(--pgr-text);
  font-size: 17px;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
  line-clamp: 6;
  overflow: hidden;
}

/* Auteur */
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__author {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--pgr-divider);
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__avatar {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  border-radius: 999px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--pgr-avatar-ring);
  box-shadow: 0 0 0 2px var(--pgr-avatar-ring);
  color: var(--pgr-text);
  font-weight: 600;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__identity {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__name {
  color: var(--pgr-text);
  font-size: 15px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__role {
  color: var(--pgr-muted);
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media screen and (max-width: 991px) {
  .tpl-premium[data-premium-page] [data-premium-google-reviews] {
    padding: 72px 0;
  }
  .tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 32px;
  }
  .tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__card {
    padding: 28px;
  }
}

/* Le thème centre déjà les titres sur mobile : l'en-tête du bloc suit. */
@media screen and (max-width: 767px) {
  .tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__head {
    align-items: center;
  }
  .tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__intro {
    text-align: center;
  }
  .tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__summary {
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__viewport {
    scroll-behavior: auto;
  }
  .tpl-premium[data-premium-page] [data-premium-google-reviews] .premium-google-reviews__arrow {
    transition: none;
  }
}

/* --------------------------------------------------------------------------
   Pastille d'avis du héros branchée sur le bloc Avis Google
   (heroPremium.rating.source = "google")
   -------------------------------------------------------------------------- */
.tpl-premium .rt-hero-v1-rating-text:has(.rt-hero-v1-rating-score) {
  max-width: 260px;
}
.tpl-premium .rt-hero-v1-rating-score {
  margin-top: 2px;
  font-size: 14px;
  opacity: 0.9;
}

/* Les avatars du gabarit étaient des cercles détourés ; les photos Google sont
   carrées, il faut donc les recadrer et leur redonner l'anneau. */
.tpl-premium [data-hero-rating-source="google"] .rt-hero-v1-rating-right-wrapper img {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  object-fit: cover;
  box-shadow: 0 0 0 2px #0b0c0e;
  background: #1b1c1f;
}

/* Remplace l'icône « + » par le nombre d'avis restants, même gabarit de pastille. */
.tpl-premium .rt-hero-v1-rating-plus {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #f6b61b;
  color: #0b0c0e;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}
.tpl-premium .rt-hero-v1-rating-more {
  display: inline-flex;
  border-radius: 999px;
  text-decoration: none;
  transition: transform 0.2s ease;
}
.tpl-premium .rt-hero-v1-rating-more:hover {
  transform: translateY(-1px);
}
.tpl-premium .rt-hero-v1-rating-more:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

/* Le nombre d'avis est un lien : souligne discret pour le signaler sans casser
   la lecture de la pastille. La page d'accueil dégrise tous ses liens, d'où le
   sélecteur plus précis qui rend au lien le blanc du texte voisin. */
.tpl-premium .rt-hero-v1-rating-text a.rt-hero-v1-rating-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(255, 255, 255, 0.5);
  transition: text-decoration-color 0.2s ease;
}
.tpl-premium .rt-hero-v1-rating-text a.rt-hero-v1-rating-link:hover,
.tpl-premium .rt-hero-v1-rating-text a.rt-hero-v1-rating-link:focus-visible {
  text-decoration-color: currentColor;
}
.tpl-premium .rt-hero-v1-rating-text a.rt-hero-v1-rating-link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
  border-radius: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .tpl-premium .rt-hero-v1-rating-more,
  .tpl-premium .rt-hero-v1-rating-text a.rt-hero-v1-rating-link {
    transition: none;
  }
}

/* --------------------------------------------------------------------------
   Badge posé sur la photo d'À propos (premium)
   -------------------------------------------------------------------------- */
/* La taille voulue arrive du contenu ; les deux plafonds en pourcentage
   empêchent un badge de manger la photo sur les écrans étroits. */
.tpl-premium .about-three-image-one > img.premium-about-three-badge {
  position: absolute;
  left: 24px;
  bottom: 24px;
  z-index: 2;
  width: var(--pat-badge-size, 100px);
  height: var(--pat-badge-size, 100px);
  max-width: 34%;
  max-height: 34%;
  object-fit: contain;
}

@media (max-width: 767px) {
  .tpl-premium .about-three-image-one > img.premium-about-three-badge {
    left: 16px;
    bottom: 16px;
  }
}

/* Bandeau de témoins : fond blanc fixe, alors que les jetons de texte premium
   sont clairs (sections sombres). */
.tpl-premium .site-consent-banner {
  color: #333;
}
.tpl-premium .site-consent-banner__title {
  color: #1a1a1a;
}
.tpl-premium .site-consent-banner__text {
  color: #555;
}
.tpl-premium .site-consent-banner__btn--reject {
  color: #666;
}
.tpl-premium .site-consent-banner__btn--reject:hover {
  color: #1a1a1a;
}

/* --------------------------------------------------------------------------
   Bannière niveau partenaire (premium-partner-banner)
   Badge Alu-Rex + texte selon le niveau de l'installateur.
   -------------------------------------------------------------------------- */
.tpl-premium[data-premium-page] [data-premium-partner-banner] {
  --ppb-bg: transparent;
  --ppb-text: #ffffff;
  --ppb-muted: rgba(255, 255, 255, 0.82);
  --ppb-panel-bg: linear-gradient(135deg, rgba(0, 0, 0, 0.62), rgba(0, 0, 0, 0.4));
  --ppb-panel-border: rgba(255, 255, 255, 0.08);
  --ppb-panel-shadow: 0 40px 80px -48px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  --ppb-glow: rgba(255, 255, 255, 0.12);
  background-color: var(--ppb-bg);
  color: var(--ppb-text);
  padding: 72px 0;
}
.tpl-premium[data-premium-page] [data-premium-partner-banner][data-theme="light"] {
  --ppb-bg: #ffffff;
  --ppb-text: #111111;
  --ppb-muted: #4a4a4a;
  --ppb-panel-bg: linear-gradient(135deg, #ffffff, #f4f6f8);
  --ppb-panel-border: rgba(17, 17, 17, 0.1);
  --ppb-panel-shadow: 0 1px 2px rgba(15, 23, 32, 0.05), 0 28px 56px -34px rgba(15, 23, 32, 0.35);
  --ppb-glow: rgba(30, 90, 152, 0.14);
}

.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(200px, 300px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(28px, 4vw, 56px);
  padding: clamp(28px, 3.5vw, 48px) clamp(28px, 4vw, 56px);
  border: 1px solid var(--ppb-panel-border);
  border-radius: 20px;
  background: var(--ppb-panel-bg);
  box-shadow: var(--ppb-panel-shadow);
  overflow: hidden;
}
.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__panel--no-badge {
  grid-template-columns: minmax(0, 1fr);
}

/* Badge : halo doux + reflet au sol, comme une pièce posée sur une vitrine. */
.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__media {
  display: flex;
  align-items: center;
  justify-content: center;
}
.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__badge {
  position: relative;
  width: 100%;
  max-width: 290px;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__badge::before {
  content: "";
  position: absolute;
  inset: -18%;
  border-radius: 50%;
  background: radial-gradient(circle, var(--ppb-glow) 0%, transparent 68%);
  pointer-events: none;
}
.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__badge img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 18px 24px rgba(0, 0, 0, 0.35));
}

.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  min-width: 0;
}
.tpl-premium[data-premium-page] [data-premium-partner-banner] :is(h2, .sub-heading) {
  color: var(--ppb-text);
}
.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__desc {
  margin-top: 18px;
  max-width: none;
  color: var(--ppb-muted);
  font-size: 1.0625rem;
  line-height: 1.7;
}
.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__desc p {
  margin: 0 0 0.9em;
  color: inherit;
}
.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__desc p:last-child {
  margin-bottom: 0;
}
.tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__cta {
  margin-top: 32px;
}

@media (max-width: 767px) {
  .tpl-premium[data-premium-page] [data-premium-partner-banner] {
    padding: 48px 0;
  }
  .tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__panel {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    text-align: center;
  }
  .tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__badge {
    max-width: 180px;
  }
  .tpl-premium[data-premium-page] [data-premium-partner-banner] .premium-partner-banner__content {
    align-items: center;
  }
}

/* --------------------------------------------------------------------------
   Services (cartes images) — kicker cliquable (premium-features-three)
   La pastille garde son look ; avec un lien, elle gagne une petite flèche et
   un léger relief au survol.
   -------------------------------------------------------------------------- */
.tpl-premium .features-three .premium-features-three__kicker-link {
  gap: 6px;
  padding: 4px 11px 4px 12px;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.tpl-premium .features-three .premium-features-three__kicker-link .sub-heading {
  color: #111;
}
.tpl-premium .features-three .premium-features-three__kicker-arrow {
  flex: none;
  color: #111;
  transition: transform 0.2s ease;
}
.tpl-premium .features-three .premium-features-three__kicker-link:hover,
.tpl-premium .features-three .premium-features-three__kicker-link:focus-visible {
  transform: translateY(-1px);
  filter: brightness(1.06);
  box-shadow: 0 8px 18px -8px rgba(0, 0, 0, 0.55);
}
.tpl-premium .features-three .premium-features-three__kicker-link:hover .premium-features-three__kicker-arrow,
.tpl-premium .features-three .premium-features-three__kicker-link:focus-visible .premium-features-three__kicker-arrow {
  transform: translate(2px, -2px);
}
.tpl-premium .features-three .premium-features-three__kicker-link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .tpl-premium .features-three .premium-features-three__kicker-link,
  .tpl-premium .features-three .premium-features-three__kicker-arrow {
    transition: none;
  }
}
