/**
 * 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__category-title,
.tpl-premium .site-consent-banner__panel-title,
.tpl-premium .site-consent-banner__details summary {
  color: #1a1a1a;
}
.tpl-premium .site-consent-banner__category-text,
.tpl-premium .site-consent-banner__details,
.tpl-premium .site-consent-banner__badge,
.tpl-premium .site-consent-banner__btn--link {
  color: #555;
}
.tpl-premium .site-consent-banner__btn--accept,
.tpl-premium .site-consent-banner__btn--reject {
  background: #111;
  color: #fff;
}
.tpl-premium .site-consent-banner .site-consent-banner__btn--neutral {
  color: #111;
}
.tpl-premium .site-consent-banner .site-consent-banner__details a {
  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;
  }
}

/* Hero premium : une seule balise h1 par page (SEO), donc la 1re diapositive est un h1
   et les suivantes des h2. Le thème dimensionne les titres par balise : sans cette règle
   les diapositives 2 et suivantes s'affichent plus petites que la première.
   Le niveau de titre change, jamais le rendu : tous suivent la taille du h1. */
.tpl-premium .home-three-slider .w-slide .hero-tthree-title {
  font-size: 40px;
  line-height: 1.16667;
}
@media screen and (min-width: 1280px) {
  .tpl-premium .home-three-slider .w-slide .hero-tthree-title {
    font-size: 60px;
  }
}
@media screen and (max-width: 767px) {
  .tpl-premium .home-three-slider .w-slide .hero-tthree-title {
    font-size: 35px;
  }
}

/* --------------------------------------------------------------------------
   Hero premium : s'adapte aux écrans peu hauts (Windows à 125 % / 150 %)
   Le thème fige le hero à 100vh. Sur un écran de 1920x1080 à 125 %, la fenêtre ne
   mesure que ~730 px de haut : le contenu (accroche, titre, texte, bouton, avis)
   dépasse, et comme il est aligné en bas il remonte sous la barre de navigation.
   Le hero garde donc 100vh quand le contenu y tient (rien ne change sur grand
   écran) et s'allonge dès que le contenu est plus haut.
   -------------------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .tpl-premium .hero-three.hero-three,
  .tpl-premium .home-three-slider.full-height,
  .tpl-premium .home-three-hero-conten-wrap.home-three-hero-conten-wrap {
    height: auto !important;
    min-height: 100vh;
  }
  .tpl-premium .hero-three-bg-image-wrap,
  .tpl-premium .hero-three-bg-image {
    height: 100% !important;
  }
}
@media screen and (min-width: 768px) and (max-width: 991px) {
  .tpl-premium .home-three-slider.full-height {
    min-height: 90vh;
  }
}
