/* Geeb Services — passe de finition (polish) 2026-10.
   Raffinement du site existant : mêmes contenus, même identité (voir DESIGN.md).
   Corrige contrastes, états (survol / focus / erreur), rythme, cohérence et débordements.
   Chargée après geeb-refonte.css et hors optimisation LiteSpeed (UCSS). */

/* ==================================================================== 1. ACCUEIL + GLOBAL (focus, carrousels, pied de page) */
/* D01 — focus clavier (le thème pose body a{outline:none!important}) */
body.geeb-rf a:focus-visible,
body.geeb-rf .fab-button:focus-visible { outline: 3px solid var(--geeb-red) !important; outline-offset: 3px; border-radius: 6px; }
body.geeb-rf :focus-visible { outline-color: var(--geeb-red); }
body.geeb-rf .geeb-ub a:focus-visible,
body.geeb-rf .geeb-av__card--lead:focus-visible,
body.geeb-rf .elementor-element-95a1e91 :focus-visible,
body.geeb-rf .elementor-element-113fbb1 a:focus-visible,
body.geeb-rf .elementor-location-footer a:focus-visible { outline-color: #fff !important; }
body.geeb-rf #header .main-menu > li.geeb-cta > a:focus-visible { outline-color: var(--geeb-navy) !important; }

/* D02 — bloc contact 768–1199 */
@media (min-width: 768px) and (max-width: 1199px) {
  body:not(.rtl) .elementor-34 .elementor-element.elementor-element-113fbb1 {
    left: auto; right: 15px; top: 50%; transform: translateY(-50%);
    width: min(300px, 58%); max-width: none;
    padding: 20px 18px; border-radius: 16px; background: rgba(32, 23, 71, .78);
  }
  .elementor-34 .elementor-element-113fbb1 p { font-size: 14px; line-height: 1.5; }
  .elementor-34 .elementor-element-113fbb1 h3 { font-size: 21px; line-height: 1.2; text-wrap: balance; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .elementor-34 .elementor-element.elementor-element-2e16084 { width: 52%; }
  .elementor-34 .elementor-element.elementor-element-1e71a9c { width: 48%; }
  body:not(.rtl) .elementor-34 .elementor-element.elementor-element-113fbb1 { width: calc(100% - 30px); top: auto; bottom: 15px; transform: none; }
  .elementor-34 .elementor-element-113fbb1 p:not(:last-child) { display: none; }
  .elementor-34 .elementor-element-113fbb1 p:last-child { margin-bottom: 0; }
  .elementor-34 .elementor-element-1af0f65 .form-row > [class*="col-md-"] { flex: 0 0 100%; max-width: 100%; }
}

/* D03 — débordement horizontal */
.elementor-34 .elementor-element.elementor-element-20466c8 > .elementor-container { margin-left: 0; margin-right: 0; }
.elementor-34 .elementor-element.elementor-element-0f849c4,
.elementor-34 .elementor-element.elementor-element-95a1e91,
.elementor-34 .elementor-element.elementor-element-faa15f5,
.elementor-2065 .elementor-element.elementor-element-015a42a,
.elementor-2065 .elementor-element.elementor-element-5cf3f45 { padding-left: var(--porto-fluid-spacing, 30px); padding-right: var(--porto-fluid-spacing, 30px); }
.elementor-2065 .elementor-element.elementor-element-5ba79b8 > .elementor-container { margin-left: 0; margin-right: 0; }
@media (min-width: 768px) and (max-width: 899px) {
  body:not(.rtl) .elementor-34 .elementor-element.elementor-element-603d4a9 { left: auto; right: calc(-100% + 15px); }
}

/* D04 — flèches de carrousel */
body.geeb-rf .elementor-swiper-button { width: 32px; height: 32px; padding: 0; display: grid; place-items: center; background: var(--geeb-red); color: #fff; border-radius: 50%; transition: background-color .2s; }
body.geeb-rf .elementor-swiper-button::after { content: ""; position: absolute; inset: -6px; }
body.geeb-rf .elementor-swiper-button:hover { background: var(--geeb-red-deep); }
body.geeb-rf .elementor-swiper-button > i { display: block; width: 9px; height: 9px; font-size: 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; }
body.geeb-rf .elementor-swiper-button > i::before { content: none; }
body.geeb-rf .elementor-swiper-button-prev > i { transform: translateX(2px) rotate(135deg); }
body.geeb-rf .elementor-swiper-button-next > i { transform: translateX(-2px) rotate(-45deg); }

/* D05 — onglets marchands + boutons verts */
.elementor-34 .elementor-element.elementor-element-354b369 .elementor-tab-title { color: #fff; transition: box-shadow .2s; }
.elementor-34 .elementor-element.elementor-element-354b369 .elementor-tab-title.elementor-active { box-shadow: inset 0 -3px 0 #fff; font-family: var(--geeb-font-display); font-weight: 400; }
.elementor-34 .elementor-element.elementor-element-354b369 .elementor-tab-title:not(.elementor-active) { font-family: var(--geeb-font-text); font-weight: 400; }
.elementor-34 .elementor-element.elementor-element-354b369 .elementor-tab-title:not(.elementor-active):hover { box-shadow: inset 0 -3px 0 rgba(255, 255, 255, .55); }
.elementor-34 .elementor-element-a6653d6 .elementor-button,
.elementor-34 .elementor-element.elementor-element-354b369 .elementor-button { color: #fff; fill: #fff; border-radius: var(--geeb-radius); transition: background-color .2s, transform .2s var(--geeb-ease), box-shadow .2s; }
.elementor-34 .elementor-element.elementor-element-354b369 .elementor-button { background-color: #45a041; }
.elementor-34 .elementor-element-a6653d6 .elementor-button:hover,
.elementor-34 .elementor-element.elementor-element-354b369 .elementor-button:hover { color: #fff; background-color: #3a8a37; transform: translateY(-1px); box-shadow: 0 10px 18px -12px rgba(32, 23, 71, .55); }
.elementor-34 .elementor-element-a6653d6 .elementor-button:active,
.elementor-34 .elementor-element.elementor-element-354b369 .elementor-button:active { transform: translateY(0); }
.elementor-34 .elementor-element-a6653d6 .elementor-button { min-height: 44px; display: inline-flex; align-items: center; }

/* D06 — boîtes blanches */
.elementor-34 .elementor-element.elementor-element-45a6fab { width: 100%; max-width: 100%; }
@media (min-width: 992px) and (max-width: 1199px) {
  .elementor-34 .elementor-element-0f849c4 .white-box h3.elementor-heading-title { font-size: 20px; line-height: 1.2; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .elementor-34 .elementor-element-a72466b > .elementor-container { flex-wrap: wrap; }
  .elementor-34 .elementor-element-a72466b .elementor-element.white-box { width: 100%; }
  .elementor-34 .elementor-element-a72466b .elementor-element.white-box > .elementor-element-populated { margin: 0 0 18px; }
}
@media (max-width: 767px) {
  .elementor-34 .elementor-element-0f849c4 .white-box h3.elementor-heading-title { font-size: 21px; line-height: 1.15; }
}

/* D07 — hero : hauteur au ratio des visuels */
@media (min-width: 992px) and (max-width: 1363px) {
  .elementor-34 .elementor-element.elementor-element-2854761 .swiper-slide { height: calc(100vw * 606 / 1920); }
}
@media (min-width: 768px) and (max-width: 991px) {
  .elementor-34 .elementor-element.elementor-element-b9c76c2 .swiper-slide { height: calc((100vw - 60px) * .75); }
}
@media (max-width: 767px) {
  .elementor-34 .elementor-element.elementor-element-b9c76c2 .swiper-slide { height: calc((100vw - 40px) * .75); }
  .elementor-34 .elementor-element-b9c76c2 .elementor-main-swiper { border-radius: var(--geeb-radius-lg); overflow: hidden; }
}

/* D10 — survol : bouton téléphone, liens du pied */
.elementor-34 .elementor-element-113fbb1 a[href^="tel:"], .elementor-34 .elementor-element-ef9626f a[href^="tel:"] { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px !important; background-color: var(--geeb-red) !important; border-radius: var(--geeb-radius) !important; transition: background-color .2s, transform .2s var(--geeb-ease); }
.elementor-34 .elementor-element-113fbb1 a[href^="tel:"]:hover, .elementor-34 .elementor-element-ef9626f a[href^="tel:"]:hover { background-color: var(--geeb-red-deep) !important; transform: translateY(-1px); }
.elementor-2065 .elementor-element-015a42a .elementor-widget-text-editor a { text-decoration: underline transparent; text-underline-offset: 3px; transition: text-decoration-color .2s; }
.elementor-2065 .elementor-element-015a42a .elementor-widget-text-editor a:hover { text-decoration-color: currentColor; }

/* D11 — titres de section : même rôle, même rendu */
.elementor-34 .elementor-element.elementor-widget-heading .elementor-heading-title,
.elementor-34 .elementor-element.elementor-widget-text-editor h1,
.elementor-34 .elementor-element.elementor-widget-text-editor h2,
.elementor-34 .elementor-element.elementor-widget-text-editor h3,
.elementor-34 .elementor-element.elementor-widget-image-box .elementor-image-box-title,
.elementor-2065 .elementor-element.elementor-widget-heading .elementor-heading-title { font-weight: 400; }
.elementor-34 .elementor-element.elementor-element-46337e8 h1,
.elementor-34 .elementor-element.elementor-element-46337e8 h2,
.elementor-34 .elementor-element.elementor-element-65cdfe5 .elementor-heading-title,
.elementor-34 .elementor-element.elementor-element-a74a773 .elementor-heading-title,
.elementor-34 .elementor-element.elementor-element-3564063 .elementor-heading-title,
.elementor-34 .elementor-element.elementor-element-596434f .elementor-heading-title { font-family: var(--geeb-font-display); font-size: clamp(28px, 2vw + 12px, 40px); line-height: 1.1; letter-spacing: -.015em; text-wrap: balance; }
.elementor-34 .elementor-element.elementor-element-f5bcb38 .elementor-heading-title { font-family: var(--geeb-font-display); font-size: 28px; line-height: 1.15; letter-spacing: -.012em; }

/* D12 — texte justifié (styles en ligne : !important requis) */
.elementor-34 .elementor-element-46337e8 p, .elementor-34 .elementor-element-46337e8 p span,
.elementor-34 .elementor-element-94a8ee5 p { text-align: left !important; text-wrap: pretty; }

/* D13 — rythme vertical */
.elementor-34 .elementor-element-a4e0cbc .elementor-spacer-inner { height: 26px; }
.elementor-34 .elementor-element.elementor-element-0f849c4 { padding-bottom: 40px; }
@media (max-width: 767px) {
  .elementor-34 .elementor-element-a4e0cbc { display: none; }
  .elementor-34 .elementor-element.elementor-element-3379312 { margin-top: 26px; }
  .elementor-34 .elementor-element.elementor-element-0f849c4 { padding-top: 40px; padding-bottom: 26px; }
}

/* D14 — vert sous 28 px */
.elementor-34 .elementor-element-0f849c4 .white-box h3.elementor-heading-title { color: var(--geeb-ink); }
.elementor-34 .elementor-element-24c13be .elementor-element .elementor-image-box-title { color: var(--geeb-ink); font-size: 28px; line-height: 1.1; letter-spacing: -.015em; font-variant-numeric: tabular-nums; }
@media (min-width: 768px) and (max-width: 991px) {
  .elementor-34 .elementor-element-24c13be .elementor-element .elementor-image-box-title { font-size: 22px; }
}

/* D16 — cartes produits */
.elementor-34 .elementor-element-a6653d6 .elementor-top-column > .elementor-widget-wrap { flex-direction: column; flex-wrap: nowrap; align-content: stretch; }
.elementor-34 .elementor-element-a6653d6 .elementor-widget-text-editor p br { display: none; }
.elementor-34 .elementor-element-a6653d6 .elementor-top-column > .elementor-widget-wrap > .elementor-widget-button { margin-top: auto; margin-bottom: 20px; padding-bottom: 0; }

/* D18 — pied de page */
.elementor-2065 .elementor-element-37e6990 span { display: block; }
.elementor-2065 .elementor-element-37e6990 br { display: none; }
.elementor-2065 .elementor-element-015a42a h3.elementor-heading-title { font-size: 18.5px; line-height: 25px; letter-spacing: -.01em; }
.elementor-2065 .elementor-element-015a42a h3.elementor-heading-title span { font-size: inherit !important; }
.elementor-2065 .elementor-element.elementor-element-245d42b { width: 100%; max-width: 100%; }
.elementor-2065 .elementor-element-245d42b .elementor-social-icons-wrapper { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: 6px; }
.elementor-2065 .elementor-element-245d42b .elementor-social-icon { width: 44px; height: 44px; font-size: 20px; }
@media (min-width: 768px) and (max-width: 1199px) {
  .elementor-2065 .elementor-element.elementor-element-406f88f { width: 40%; }
  .elementor-2065 .elementor-element.elementor-element-df17b8e { width: 60%; }
}
@media (max-width: 767px) {
  .elementor-2065 .elementor-element-015a42a .elementor-widget-text-editor br { display: none; }
  .elementor-2065 .elementor-element-015a42a .elementor-widget-text-editor a,
  .elementor-2065 .elementor-element-16fa50d span { display: block; padding: 11px 0; }
  .elementor-2065 .elementor-element-245d42b .elementor-social-icons-wrapper { justify-content: center; }
}

/* D20 — paragraphe « marchands » */
.elementor-34 .elementor-element-04bfe74 { text-align: center; }
.elementor-34 .elementor-element-04bfe74 p { max-width: 62ch; margin-left: auto; margin-right: auto; text-wrap: balance; }

/* D22 — sélecteur de langue */
.geeb-ub__lang div[class^="gt_container"] .gt_switcher .gt_selected { background: transparent; }
.geeb-ub__lang div[class^="gt_container"] .gt_switcher .gt_selected a { border-color: rgba(255, 255, 255, .28); border-radius: 6px; }
.geeb-ub__lang div[class^="gt_container"] .gt_switcher .gt_selected a::after { filter: invert(1); }
.geeb-ub__lang div[class^="gt_container"] .gt_switcher img { height: 18px; width: 24px; object-fit: cover; border-radius: 2px; }


/* ==================================================================== 2. PAGES PRODUITS (resto 315, cado 311, digi 313) */
/* D1 — simulateur avant montage Vue (gabarit brut + voile modal) */
#simulator-app:not([data-v-app]) .popup-overlay,
#simulator-app:not([data-v-app]) .result-section,
#simulator-app:not([data-v-app]) .error,
#simulator-app:not([data-v-app]) [v-if="isPrimeRequired"],
#simulator-app:not([data-v-app]) span[v-if^="calculated"] { display: none !important; }

/* D3 — lien mort edenred.ma (palliatif) */
:is(.elementor-311, .elementor-313, .elementor-315) a[href*="edenred.ma"] { display: none; }

/* D4 — CTA post-simulation */
#simulator-app #cmd-simulator { background: var(--geeb-red); color: #fff; border: 0; border-radius: var(--geeb-radius); height: auto; min-height: 44px; padding: 10px 22px; font-family: var(--geeb-font-display); font-weight: 400; font-size: 16px; letter-spacing: 0; box-shadow: none; }
#simulator-app #cmd-simulator:hover { background: var(--geeb-red-deep); color: #fff; box-shadow: none; }

/* D5 — sections pleine largeur sans marge latérale ≤ 991 px (+ pied de page 2065) */
@media (max-width: 991px) {
  .elementor-315 .elementor-element.elementor-top-section.elementor-element-344fb820,
  .elementor-315 .elementor-element.elementor-top-section.elementor-element-2ef213f6,
  .elementor-311 .elementor-element.elementor-top-section.elementor-element-5674980,
  .elementor-311 .elementor-element.elementor-top-section.elementor-element-22b93d30,
  .elementor-313 .elementor-element.elementor-top-section.elementor-element-4bae90c,
  .elementor-313 .elementor-element.elementor-top-section.elementor-element-667b6cf9,
  .elementor-2065 .elementor-element.elementor-top-section.elementor-element-015a42a,
  .elementor-2065 .elementor-element.elementor-top-section.elementor-element-5cf3f45 { padding-left: var(--porto-fluid-spacing, 20px); padding-right: var(--porto-fluid-spacing, 20px); }
  .elementor-2065 .elementor-element-5ba79b8 > .elementor-container { margin-left: 0; margin-right: 0; width: 100%; }
}

/* D6 — cartes « Pourquoi choisir » */
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-section > .elementor-container { margin-left: 0; margin-right: 0; width: 100%; gap: 20px; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-section .elementor-inner-column.elementor-element > .elementor-element-populated { margin: 0; padding: 24px; border: 1px solid var(--geeb-line); border-radius: var(--geeb-radius-lg); box-shadow: none; }
body:not(.rtl) :is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column > .elementor-widget-wrap > .elementor-element.elementor-widget-icon.elementor-absolute { left: auto; right: 24px; top: 24px; width: auto; max-width: none; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column .elementor-widget-icon .elementor-icon-wrapper { line-height: 0; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column .elementor-widget-icon .elementor-icon { font-size: 40px; color: var(--geeb-navy); }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column .elementor-element.elementor-widget-heading { margin: 0 0 12px; padding-right: 56px; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column .elementor-widget-heading .elementor-heading-title { font-size: 20px; line-height: 1.2; letter-spacing: -.01em; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column .cdm-content.container { padding: 0; max-width: none; width: auto; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
@media (min-width: 768px) {
  :is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-section .elementor-inner-column { flex: 1 1 0; width: auto; }
  :is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column .elementor-widget-heading .elementor-heading-title { min-height: 2.4em; }
}
@media (max-width: 991px) {
  body:not(.rtl) :is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column > .elementor-widget-wrap > .elementor-element.elementor-widget-icon.elementor-absolute { position: static; width: 100%; margin: 0 0 14px; }
  :is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column .elementor-widget-icon .elementor-icon-wrapper { text-align: left; }
  :is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column .elementor-element.elementor-widget-heading { padding-right: 0; }
  :is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-column .elementor-widget-heading .elementor-heading-title br { display: none; }
}
@media (max-width: 767px) {
  :is(.elementor-311, .elementor-313, .elementor-315) .elementor-inner-section > .elementor-container { gap: 14px; }
}

/* D7 — simulateur : habillage système */
#simulator-app { --color-primary: #ea0029; --color-text: #231e46; --color-text-light: #5b5779; --color-border: #e4e6ef; --color-hover: #f3f5f9; --color-error: #c4001f; font-family: var(--geeb-font-text); }
#simulator-wrapper .l-wrapper > .row { justify-content: center; }
#simulator-app .titre_simu { color: var(--geeb-ink); text-wrap: balance; }
#simulator-app .input-container label { font-family: var(--geeb-font-display); font-weight: 400; }
#simulator-app .input-container .form-input { border: 1px solid #8d8aa1; border-radius: var(--geeb-radius); font-family: var(--geeb-font-text); font-weight: 400; letter-spacing: 0; }
#simulator-app .input-container .form-input:hover { background: #fff; border-color: var(--geeb-navy); }
#simulator-app .input-container .form-input:active,
#simulator-app .input-container .form-input:focus { border-width: 1px; border-color: var(--geeb-navy); }
#simulator-app .input-container .form-input.input-error { border-color: var(--geeb-red-deep); background: #fdf2f4; }
#simulator-app .input-container .form-range::-webkit-slider-thumb { background: var(--geeb-red); }
#simulator-app .input-container .form-range::-moz-range-thumb { background: var(--geeb-red); border: 0; }
#simulator-app .btns-container { flex-wrap: wrap; }
#simulator-app .btns-container button { height: auto; min-height: 44px; border-radius: var(--geeb-radius); font-family: var(--geeb-font-display); font-weight: 400; letter-spacing: 0; white-space: nowrap; }
#simulator-app .btns-container button.secondary { border-width: 1.5px; }
#simulator-app .btns-container button.secondary:disabled { border-width: 1.5px; }
#simulator-app .btns-container button.primary:hover:not(:disabled) { background: var(--geeb-red-deep); color: #fff; }
#simulator-app .btns-container button.primary:active:not(:disabled) { background: var(--geeb-red-deep); }
#simulator-app .btns-container button.secondary:active:not(:disabled) { background: var(--geeb-mist); border-color: var(--geeb-red-deep); color: var(--geeb-red-deep); }
#simulator-app .tab .btn-text { font-family: var(--geeb-font-display); font-size: 16px; font-weight: 400; letter-spacing: 0; white-space: nowrap; }
#simulator-app .tab { min-height: 44px; }
#simulator-app .inner-text { font-family: var(--geeb-font-display); font-weight: 400; letter-spacing: 0; font-size: 16px; }
#simulator-app .price-text { color: var(--geeb-ink); font-family: var(--geeb-font-display); font-weight: 400; letter-spacing: 0; font-size: clamp(22px, 1vw + 18px, 30px); font-variant-numeric: tabular-nums; white-space: nowrap; }
#simulator-app .mini-text, #simulator-app .input-container em { font-weight: 400; letter-spacing: 0; color: var(--geeb-muted); }
@media (max-width: 575px) {
  #simulator-app .form-section { margin-left: 0; margin-right: 0; }
  #simulator-app .form-simulator { padding-left: 0; padding-right: 0; }
  #simulator-app .btns-container button { flex: 1 1 100%; }
}

/* D9 — fil d'Ariane : élément courant lisible sur le bandeau rouge (4,6:1 au lieu de 3,4:1) */
body.geeb-rf .page-top ul.breadcrumb > li,
body.geeb-rf .page-top ul.breadcrumb > li[aria-current] { color: #fff !important; } /* !important : le thème fixe la couleur de l'élément courant */
body.geeb-rf .page-top ul.breadcrumb > li a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* D10 — FAQ */
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-accordion-item { border-color: var(--geeb-line); }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-accordion-item + .elementor-accordion-item { border-top: 0; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-accordion-item:first-child { border-radius: 12px 12px 0 0; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-accordion-item:last-of-type { border-radius: 0 0 12px 12px; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-tab-title { display: flex; align-items: flex-start; gap: 4px; padding: 16px 20px; font-family: var(--geeb-font-display); font-weight: 400; line-height: 1.35; border-radius: inherit; transition: background-color .2s var(--geeb-ease, ease); }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-tab-title .elementor-accordion-icon { flex: 0 0 24px; line-height: 1.35; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-tab-title .elementor-accordion-title { flex: 1 1 auto; font-family: inherit; font-weight: 400; line-height: 1.35; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-tab-title:hover { background-color: var(--geeb-mist); }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon { color: var(--geeb-red); }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-tab-content { border-top-color: var(--geeb-line); padding: 16px 20px 20px 48px; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-tab-content > * { max-width: 72ch; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-tab-content > ul { padding-left: 18px; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-accordion .elementor-tab-content > :last-child { margin-bottom: 0; }

/* D12 — bandeau contact : cible tel */
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-widget-heading .elementor-heading-title a[href^="tel:"] { display: inline-block; padding: 8px 0; font-variant-numeric: tabular-nums; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-widget-heading .elementor-heading-title a[href^="tel:"]:hover { color: var(--geeb-red); }

/* D13 — rythme vertical */
.elementor-315 .elementor-element.elementor-top-section.elementor-element-2ef213f6,
.elementor-311 .elementor-element.elementor-top-section.elementor-element-22b93d30,
.elementor-313 .elementor-element.elementor-top-section.elementor-element-667b6cf9 { padding-top: 57px; padding-bottom: 65px; background-color: var(--geeb-mist); }
.elementor-315 .elementor-element.elementor-top-section.elementor-element-51b8a3c9,
.elementor-311 .elementor-element.elementor-top-section.elementor-element-9d5dda7,
.elementor-313 .elementor-element.elementor-top-section.elementor-element-46797fca { margin-top: 57px; margin-bottom: 65px; }

/* D14 — Digi : bloc « Découvrez les avantages » */
.elementor-313 .elementor-element-e207920 h4 { font-size: clamp(26px, 1.2vw + 14px, 30px); line-height: 1.15; margin-bottom: 20px; text-wrap: balance; }
.elementor-313 .elementor-element-e207920 u { text-decoration: none; font-family: var(--geeb-font-display); }
@media (min-width: 992px) {
  .elementor-313 .elementor-element-e207920 { columns: 2; column-gap: 64px; }
  .elementor-313 .elementor-element-e207920 h4 { column-span: all; }
  .elementor-313 .elementor-element-e207920 p { break-inside: avoid; }
}
.elementor-313 .elementor-element.elementor-top-section.elementor-element-25fd668 { margin-top: 41px; }

/* D15 — titres : couleur encre + niveau visuel homogène */
:is(.elementor-311, .elementor-313, .elementor-315) .porto-u-main-heading > :is(h2, h3),
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-widget-text-editor :is(h2, h3, h4) { color: var(--geeb-ink); }
.elementor-311 .elementor-element-6bc5043 h3 { font-size: 20px; line-height: 27px; margin-bottom: 14px; }
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-widget-text-editor strong { font-family: var(--geeb-font-display); font-weight: 400; }

/* D16 — filet gris sous le bandeau */
.geeb-rf .page-top { border-bottom: 0; }

/* D17 — vidéo Digi : rayon */
.elementor-313 .elementor-widget-video .elementor-wrapper { border-radius: var(--geeb-radius-lg); overflow: hidden; }

/* D18 — mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  :is(.elementor-311, .elementor-313, .elementor-315) .elementor-invisible { visibility: visible; }
  :is(.elementor-311, .elementor-313, .elementor-315) .animated { animation: none !important; }
  .geeb-rf .cursor-inner, .geeb-rf .cursor-outer { display: none !important; }
}

/* D19 — interlettrage des titres */
body:is(.page-id-311, .page-id-313, .page-id-315) { --porto-h1-ls: -.02em; --porto-h2-ls: -.02em; --porto-h3-ls: -.015em; --porto-h4-ls: -.01em; }
body:is(.page-id-311, .page-id-313, .page-id-315) .page-top .page-title { letter-spacing: -.02em; }


/* ==================================================================== 3. DÉCISIONS TRANSVERSES */

/* Boutons verts : libellé blanc (demande client du 01/10/2026) sur le vert soutenu #45a041 déjà utilisé par le site. */
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-element.elementor-widget-porto_button .btn.btn-secondary {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 18px;
  background-color: #45a041; border-color: #45a041; color: #fff;
  border-radius: var(--geeb-radius); font-family: var(--geeb-font-display); font-weight: 400; font-size: 15px;
  transition: background-color .2s, transform .2s var(--geeb-ease);
}
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-element.elementor-widget-porto_button .btn.btn-secondary:hover,
:is(.elementor-311, .elementor-313, .elementor-315) .elementor-element.elementor-widget-porto_button .btn.btn-secondary:focus {
  background-color: #3a8a37; border-color: #3a8a37; color: #fff; transform: translateY(-1px);
}

/* Languettes latérales : conservées (repère connu du site), lisibles et cliquables ; masquées sur mobile,
   où elles recouvraient le texte et où leurs deux liens existent déjà dans la barre du haut et le menu. */
@media (max-width: 767px) {
  body.geeb-rf .fab-container { display: none; }
}
@media (min-width: 768px) {
  body.geeb-rf .fab-container { gap: 12px; }
  body.geeb-rf .fab-button,
  body.geeb-rf .fab-button:hover { background-color: #45a041; color: #fff; }
  body.geeb-rf .fab-button { width: 44px; border-radius: 10px 0 0 10px; box-shadow: var(--geeb-shadow); transition: background-color .2s, transform .2s var(--geeb-ease); }
  body.geeb-rf .fab-button:hover { background-color: #3a8a37; transform: translateX(-3px); }
  body.geeb-rf .fab-button .fab-icon,
  body.geeb-rf .fab-button .fab-text { color: #fff; }
}

/* FAQ en accordéon : même traitement sur toutes les pages (produits, aide). */
body.geeb-rf .elementor-accordion .elementor-accordion-item { border-color: var(--geeb-line); }
body.geeb-rf .elementor-accordion .elementor-tab-title { font-family: var(--geeb-font-display); font-weight: 400; line-height: 1.35; transition: background-color .2s var(--geeb-ease); }
body.geeb-rf .elementor-accordion .elementor-tab-title .elementor-accordion-title { font-family: inherit; font-weight: 400; line-height: 1.35; }
body.geeb-rf .elementor-accordion .elementor-tab-title:hover { background-color: var(--geeb-mist); }
body.geeb-rf .elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon { color: var(--geeb-red); }
body.geeb-rf .elementor-accordion .elementor-tab-content > * { max-width: 72ch; }

/* Lien d'évitement (clavier / lecteurs d'écran) */
.geeb-skip { position: absolute; left: 12px; top: -64px; z-index: 100001; padding: 12px 18px; border-radius: var(--geeb-radius); background: var(--geeb-navy); color: #fff !important; font: 15px var(--geeb-font-display); text-decoration: none !important; transition: top .2s var(--geeb-ease); }
.geeb-skip:focus { top: 12px; }

/* Accueil : le titre d'introduction est désormais le H1 de la page — même rendu qu'avant (titre de section). */
.elementor-34 .elementor-element.elementor-element-46337e8 h1 { margin: 0 0 20px; color: var(--geeb-green); text-transform: none; }
.elementor-34 .elementor-element.elementor-element-46337e8 h1 img { vertical-align: middle; }

/* ==================================================================== 4. FICHES POINT DE VENTE ET MARQUE (/pdv/, /marque/) */
/* Même système que le reste du site : encre / encre atténuée, titres en Branding-bold, liens d'action rouges,
   pastilles produits identiques sur les deux types de fiche, carte détachée du bandeau. */
body.geeb-rf .geeb-pm-wrap { margin-top: 40px; margin-bottom: 64px; }
body.geeb-rf .geeb-pm-card { border-radius: var(--geeb-radius-lg); border-color: var(--geeb-line); }
body.geeb-rf .geeb-pm-title { font-family: var(--geeb-font-display); font-weight: 400; color: var(--geeb-ink); letter-spacing: -.01em; text-wrap: balance; }
body.geeb-rf .geeb-pm-sub,
body.geeb-rf .geeb-pm-product-tag { color: var(--geeb-muted); }
body.geeb-rf .geeb-pm-label { color: var(--geeb-muted); font-family: var(--geeb-font-display); font-weight: 400; }
body.geeb-rf .geeb-pm-facts li,
body.geeb-rf .geeb-pm-villes,
body.geeb-rf .geeb-pm-lead { color: var(--geeb-ink); }
body.geeb-rf .geeb-pm-facts li { border-bottom-color: var(--geeb-line); }
body.geeb-rf .geeb-pm-facts a,
body.geeb-rf .geeb-pm-em { color: var(--geeb-ink); font-family: var(--geeb-font-display); font-weight: 400; }
body.geeb-rf .geeb-pm-btn { display: inline-flex; align-items: center; min-height: 44px; border-radius: var(--geeb-radius); border-color: #8b88a3; color: var(--geeb-ink); font-family: var(--geeb-font-display); font-weight: 400; transition: border-color .2s, color .2s; }
body.geeb-rf .geeb-pm-btn:hover { background: #fff; border-color: var(--geeb-red); color: var(--geeb-red); }
body.geeb-rf .geeb-pm-product { border-radius: var(--geeb-radius); border-color: var(--geeb-line); min-height: 44px; transition: border-color .2s, transform .2s var(--geeb-ease); }
body.geeb-rf .geeb-pm-product:hover { border-color: var(--geeb-red); box-shadow: none; transform: translateY(-1px); }
body.geeb-rf .geeb-pm-product,
body.geeb-rf .geeb-pm-product-name { color: var(--geeb-ink); font-family: var(--geeb-font-display); font-weight: 400; text-decoration: none; }
body.geeb-rf .geeb-pm-quote { color: var(--geeb-red); font-family: var(--geeb-font-display); font-weight: 400; }
body.geeb-rf .geeb-pm-quote:hover { color: var(--geeb-red-deep); text-decoration: underline; text-underline-offset: 3px; }
body.geeb-rf .geeb-pm-pdv-list a { color: var(--geeb-ink); display: inline-block; padding: 4px 0; }
body.geeb-rf .geeb-pm-pdv-list a:hover { color: var(--geeb-red); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 575px) {
  body.geeb-rf .geeb-pm-wrap { margin-top: 24px; margin-bottom: 44px; }
  body.geeb-rf .geeb-pm-pdv-list a { padding: 9px 0; }
}

/* Diapositives de l'accueil : bouton « En savoir plus » libellé blanc sur vert soutenu, comme les autres boutons verts.
   !important : Elementor fixe la couleur par diapositive (.elementor-repeater-item-xxx), impossible à battre proprement. */
body.geeb-rf .elementor-slides .swiper-slide-inner .elementor-slide-button { background-color: #45a041 !important; border-color: #45a041 !important; color: #fff !important; border-radius: var(--geeb-radius); font-family: var(--geeb-font-display); font-weight: 400; }
body.geeb-rf .elementor-slides .swiper-slide-inner:hover .elementor-slide-button { background-color: #3a8a37 !important; border-color: #3a8a37 !important; }
