/* KIPIZY — styles de base */
*, *::before, *::after { box-sizing: border-box; }

:where(html, body, div, span, h1, h2, h3, h4, h5, h6, p, a, img, ul, ol, li, button, input, textarea, select, label, i, b, u, em, strong) {
  margin: 0; padding: 0; border: 0; font: inherit; vertical-align: baseline;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-tap-highlight-color: transparent;
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { line-height: 1; font-family: var(--font_default); background: #fff; overflow-x: hidden; }
b, strong { font-weight: bold; } i, em { font-style: italic; } u { text-decoration: underline; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style-position: outside; padding-left: 40px; }
img { display: block; }
input, textarea { appearance: none; -webkit-appearance: none; }
input:focus, textarea:focus, select:focus { outline: none; }
textarea { resize: none; }
input::placeholder, textarea::placeholder { color: #a9a9a9; }
.grecaptcha-badge { visibility: hidden !important; }

:root { --font_default: 'Outfit', Helvetica, Arial, sans-serif; }
:root{
  --color_text_default: rgba(0,0,0,1);
  --color_alert_default: rgba(255,121,0,1);
  --color_primary_default: rgba(0,20,168,1);
  --color_success_default: rgba(22, 155, 98, 1);
  --color_surface_default: rgba(255, 255, 255, 1);
  --color_background_default: rgba(255, 255, 255, 1);
  --color_destructive_default: rgba(228,29,13,1);
  --color_primary_contrast_default: rgba(255, 255, 255, 1);
  --color_bTGzp_default: rgba(0,204,255,1); 
  --color_bTGzq_default: rgba(30, 77, 43, 1); 
  --color_bTGzr_default: rgba(145, 174, 79, 1); 
  --color_bTGzv_default: rgba(70, 105, 100, 1); 
  --color_bTGzw_default: rgba(60, 9, 108, 1); 
  --color_bTGzx_default: rgba(87, 112, 190, 1); 
  --color_bTHAB_default: rgba(193,154,107,1); 
  --color_bTHAC_default: rgba(228, 29, 13, 1); 
  --color_bTHAD_default: rgba(255, 121, 0, 1); 
  --color_bTHAH_default: rgba(255, 232, 0, 1); 
  --color_bTHAI_default: rgba(216,219,249,1); 
  --color_bTHAJ_default: rgba(189,195,244,1); 
  --color_bTHAN_default: rgba(98, 93, 254, 1); 
  --color_bTHAO_default: rgba(81,62,223,1); 
  --color_bTHAP_default: rgba(64,31,193,1); 
  --color_bTHAT_default: rgba(52,26,158,1); 
  --color_bTHAU_default: rgba(254,246,245,1); 
  --color_bTHAV_default: rgba(253,234,231,1); 
  --color_bTHAZ_default: rgba(251,208,203,1); 
  --color_bTHAa_default: rgba(249,179,169,1); 
  --color_bTHAb_default: rgba(239,47,21,1); 
  --color_bTHAf_default: rgba(205,38,14,1); 
  --color_bTHAg_default: rgba(176,32,12,1); 
  --color_bTHAh_default: rgba(153,68,17,1); 
  --color_bTHAl_default: rgba(245,250,246,1); 
  --color_bTHAm_default: rgba(234,245,237,1); 
  --color_bTHAn_default: rgba(207,232,213,1); 
  --color_bTHAr_default: rgba(183,220,191,1); 
  --color_bTHAs_default: rgba(46,168,74,1); 
  --color_bTHAt_default: rgba(38,136,60,1); 
  --color_bTHAx_default: rgba(30,108,48,1); 
  --color_bTHAy_default: rgba(23,84,37,1); 
  --color_bTHAz_default: rgba(255,250,240,1); 
  --color_bTHBD_default: rgba(255,244,219,1); 
  --color_bTHBE_default: rgba(255,239,199,1); 
  --color_bTHBF_default: rgba(255,220,138,1); 
  --color_bTHBJ_default: rgba(255,181,5,1); 
  --color_bTHBK_default: rgba(235,165,0,1); 
  --color_bTHBL_default: rgba(220,161,20,1); 
  --color_bTHBP_default: rgba(184,129,0,1); 
  --color_bTHBQ_default: rgba(247,247,247,1); 
  --color_bTHBR_default: rgba(242,242,242,1); 
  --color_bTHBV_default: rgba(230,230,230,1); 
  --color_bTHBW_default: rgba(199,199,199,1); 
  --color_bTHBX_default: rgba(166,166,166,1); 
  --color_bTHBb_default: rgba(138,138,138,1); 
  --color_bTHBc_default: rgba(82,82,82,1); 
  --color_bTHBd_default: rgba(0,0,0,1); 
  --color_text_default_rgb: 0, 0, 0;
  --color_alert_default_rgb: 255, 121, 0;
  --color_primary_default_rgb: 0, 20, 168;
  --color_success_default_rgb: 22, 155, 98;
  --color_surface_default_rgb: 255, 255, 255;
  --color_background_default_rgb: 255, 255, 255;
  --color_destructive_default_rgb: 228, 29, 13;
  --color_primary_contrast_default_rgb: 255, 255, 255;
  --color_bTGzp_default_rgb: 0, 204, 255;
  --color_bTGzq_default_rgb: 30, 77, 43;
  --color_bTGzr_default_rgb: 145, 174, 79;
  --color_bTGzv_default_rgb: 70, 105, 100;
  --color_bTGzw_default_rgb: 60, 9, 108;
  --color_bTGzx_default_rgb: 87, 112, 190;
  --color_bTHAB_default_rgb: 193, 154, 107;
  --color_bTHAC_default_rgb: 228, 29, 13;
  --color_bTHAD_default_rgb: 255, 121, 0;
  --color_bTHAH_default_rgb: 255, 232, 0;
  --color_bTHAI_default_rgb: 216, 219, 249;
  --color_bTHAJ_default_rgb: 189, 195, 244;
  --color_bTHAN_default_rgb: 98, 93, 254;
  --color_bTHAO_default_rgb: 81, 62, 223;
  --color_bTHAP_default_rgb: 64, 31, 193;
  --color_bTHAT_default_rgb: 52, 26, 158;
  --color_bTHAU_default_rgb: 254, 246, 245;
  --color_bTHAV_default_rgb: 253, 234, 231;
  --color_bTHAZ_default_rgb: 251, 208, 203;
  --color_bTHAa_default_rgb: 249, 179, 169;
  --color_bTHAb_default_rgb: 239, 47, 21;
  --color_bTHAf_default_rgb: 205, 38, 14;
  --color_bTHAg_default_rgb: 176, 32, 12;
  --color_bTHAh_default_rgb: 153, 68, 17;
  --color_bTHAl_default_rgb: 245, 250, 246;
  --color_bTHAm_default_rgb: 234, 245, 237;
  --color_bTHAn_default_rgb: 207, 232, 213;
  --color_bTHAr_default_rgb: 183, 220, 191;
  --color_bTHAs_default_rgb: 46, 168, 74;
  --color_bTHAt_default_rgb: 38, 136, 60;
  --color_bTHAx_default_rgb: 30, 108, 48;
  --color_bTHAy_default_rgb: 23, 84, 37;
  --color_bTHAz_default_rgb: 255, 250, 240;
  --color_bTHBD_default_rgb: 255, 244, 219;
  --color_bTHBE_default_rgb: 255, 239, 199;
  --color_bTHBF_default_rgb: 255, 220, 138;
  --color_bTHBJ_default_rgb: 255, 181, 5;
  --color_bTHBK_default_rgb: 235, 165, 0;
  --color_bTHBL_default_rgb: 220, 161, 20;
  --color_bTHBP_default_rgb: 184, 129, 0;
  --color_bTHBQ_default_rgb: 247, 247, 247;
  --color_bTHBR_default_rgb: 242, 242, 242;
  --color_bTHBV_default_rgb: 230, 230, 230;
  --color_bTHBW_default_rgb: 199, 199, 199;
  --color_bTHBX_default_rgb: 166, 166, 166;
  --color_bTHBb_default_rgb: 138, 138, 138;
  --color_bTHBc_default_rgb: 82, 82, 82;
  --color_bTHBd_default_rgb: 0, 0, 0;
}

:where(.k-el) { position: relative; box-sizing: border-box; }
:where(a.k-el) { display: block; color: inherit; text-decoration: none; }
/* anciens <button> devenus liens : on reproduit le centrage vertical natif des boutons */
:where(a.k-btn-a) { display: flex; flex-direction: column; justify-content: center; text-align: center; cursor: pointer; }
:where(a.k-btn-a.flex-aligned-button) { flex-direction: row; align-items: center; }
:where(div.k-el, a.k-el) { overflow: hidden; }
:where(div.k-el.main-page, div.k-el.CustomElement, div.k-el.FloatingGroup, div.k-el.Group, div.k-el.Popup, div.k-el.group-item) { overflow: visible; }
:where(.k-el.Page) { z-index: 1; }
:where(.k-el.Text) { overflow-wrap: break-word; }
:where(.k-el.Image) { display: flex; flex-direction: row; align-items: stretch; }
:where(.k-el.Icon) { padding: 0; text-align: center; background: none; border: none; overflow: hidden; }
:where(.k-el.Button) { padding: 0; border: none; background: none; text-align: left; }
:where(.k-el.Button.flex-aligned-button) { display: flex; }
:where(.k-el.Input) { border: none; background-color: transparent; padding: 0; }
:where(.k-el.Link) { white-space: pre-wrap; text-decoration: none; }
:where(.k-el svg[data-icon-set]) { fill: currentColor; }
:where(.clickable-element, [data-href], [data-action]) { cursor: pointer; touch-action: manipulation; }
:where(.FloatingGroup, .CustomElement.floating-group) { transform: translateZ(0); }
:where(.k-rc) { overflow: hidden; }
:where(.k-rc.flex > .k-el, .k-rc.relative > .k-el) { position: relative; }
:where(.k-rc.relative) { display: grid; grid-template-areas: "stack"; grid-template-rows: 100%; grid-template-columns: 100%; }
:where(.k-rc.relative > .k-el) { grid-area: stack; }
:where(.k-rc.flex) { display: flex; align-content: stretch; }
:where(.k-rc.flex.row) { flex-direction: row; flex-wrap: wrap; }
:where(.k-rc.flex.column) { flex-direction: column; flex-wrap: nowrap; }
:where(.k-rcw) { display: flex; flex-direction: row; align-items: stretch; }
:where(.k-rcw > .k-rc) { position: relative; z-index: 0; max-width: 100%; flex-grow: 1; height: initial; overflow: inherit; }
:where(.k-rvc) { display: flex; flex-direction: column; justify-content: center; }

/* textes différents desktop / mobile */
.tv-m { display: none; }
@media (max-width: 768px) { .tv-d { display: none; } .tv-m { display: inline; } }

/* fond des popups */
.k-popup-backdrop { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.6); z-index: 2001; display: none; }
body.popup-open { overflow: hidden; }
/* Popup plus haute que l'écran (ex. détail des offres) : elle défile en elle-même, la page restant bloquée derrière (site.js) */
.k-el.Popup.k-popup-scroll {
  position: fixed !important; top: 20px !important; bottom: auto !important;
  max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px);
  overflow-y: auto !important; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
}
.k-el.Popup.k-popup-scroll > * { flex-shrink: 0; }
/* Croix de fermeture toujours visible en haut à droite pendant le défilement (site.js) */
.k-el.Popup.k-popup-scroll > .k-popup-croix {
  position: sticky !important; top: 0; z-index: 1000 !important;
  background: #fff; border-radius: 50%; box-shadow: 0 0 0 6px #fff;
}
/* Barre de défilement fine, décollée du bord et arrêtée avant les coins arrondis (--k-popup-radius : rayon réel, posé par site.js) */
/* Firefox (ne connaît pas ::-webkit-scrollbar) ; dans Chrome et Safari ces propriétés désactiveraient le style ci-dessous */
@supports not selector(::-webkit-scrollbar) {
  .k-el.Popup.k-popup-scroll { scrollbar-width: thin; scrollbar-color: rgba(0, 0, 0, .25) transparent; }
}
.k-el.Popup.k-popup-scroll::-webkit-scrollbar { width: 12px; }
.k-el.Popup.k-popup-scroll::-webkit-scrollbar-track { background: transparent; margin-block: var(--k-popup-radius, 20px); }
.k-el.Popup.k-popup-scroll::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, .22); background-clip: padding-box; border: 3px solid transparent; border-right-width: 4px; border-radius: 99px;
}
.k-el.Popup.k-popup-scroll::-webkit-scrollbar-thumb:hover { background-color: rgba(0, 0, 0, .38); }
body.popup-open .k-popup-backdrop { display: block; }

/* ---- États reconstruits (chargement / merci) */
.k-state { display: flex; flex-direction: column; align-items: center; row-gap: 25px; width: 100%; min-width: 260px; }
.k-merci-head { display: flex; flex-direction: column; align-items: center; width: 100%; }
.k-merci-title { display: flex; flex-direction: row; align-items: center; justify-content: center; column-gap: 15px; flex-wrap: wrap; }
.k-merci-icon { width: 60px; height: 60px; padding: 5px; fill: var(--color_primary_default); }
.k-h3 { font-family: var(--font_default); font-size: 36px; font-weight: 600; line-height: 1.4; white-space: pre-wrap; }
.k-loading .k-h3 { font-size: 32px; }
.k-h5 { font-family: var(--font_default); font-size: 24px; font-weight: 600; line-height: 1.4; white-space: pre-wrap; }
.k-primary { color: var(--color_primary_default); }
.k-grey { color: var(--color_bTHBb_default); }
.k-center { text-align: center; }
.k-spinner { width: 215px; height: 215px; border: 15px solid #E0E0E0; border-top: 15px solid #0014A8; border-radius: 50%; animation: k-spin 1.2s linear infinite; margin: auto; box-sizing: content-box; }
@keyframes k-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.k-btn-outline { font-family: var(--font_default); font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--color_primary_default); background: none;
  border: 1px solid var(--color_primary_default); border-radius: 99px; padding: 0 20px; min-height: 44px; min-width: 60px; width: 100%; cursor: pointer; }
.k-btn-outline:hover { background: var(--color_primary_default); color: var(--color_primary_contrast_default); }
.k-btn-outline:active { background: rgba(0,12,102,1); color: var(--color_primary_contrast_default); }
@media (max-width: 768px) { .k-h3 { font-size: 30px; } .k-h5 { font-size: 18px; } }

/* Saisie téléphone internationale — apparence : forms.css */
.iti { width: 100%; height: 100%; }
.is-disabled { pointer-events: none; }

/* ---- Formulaire de fin de test */
.k-testform { flex-direction: column; padding: 30px 50px; width: 100%; max-width: 100%; min-width: 40px; }
.k-testform-head { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; min-width: 250px; width: 100%; }
.k-testform-img { min-width: 200px; width: 200px; flex-grow: 1; max-width: 240px; }
.k-testform-img img { width: 100%; height: auto; border-radius: 4px; }
.k-testform-intro { display: flex; flex-direction: column; row-gap: 10px; flex: 1 1 250px; min-width: 250px; }
.k-body20 { font-family: var(--font_default); font-size: 20px; font-weight: 300; line-height: 1.4; color: var(--color_text_default); white-space: pre-wrap; }
.k-body12 { font-family: var(--font_default); font-size: 12px; font-weight: 300; line-height: 1.4; color: var(--color_text_default); }
.k-form { display: flex; flex-direction: column; row-gap: 15px; min-width: 250px; width: 100%; margin-top: 20px; }
.k-row { display: flex; flex-direction: row; flex-wrap: wrap; gap: 15px 10px; }
.k-row > .k-field { flex: 1 1 250px; }
.k-field { display: flex; flex-direction: column; row-gap: 5px; min-width: 250px; }
.k-label { font-family: var(--font_default); font-size: 16px; font-weight: 500; line-height: 1; color: var(--color_primary_default); }
.k-input { font-family: var(--font_default); font-size: 16px; font-weight: 400; color: var(--color_text_default); height: 44px; border: 2px solid var(--color_bTHBV_default);
  border-radius: 99px; padding: 0 12px; background: transparent; width: 100%; }
.k-input::placeholder { color: var(--color_bTHBW_default); }
.k-input:hover { border-color: var(--color_bTHBW_default); }
.k-input:focus { border-color: var(--color_bTGzw_default); }
.k-input:user-invalid { border-color: var(--color_destructive_default); }
.k-phone { height: 44px; width: 100%; }
.k-btn-filled { font-family: var(--font_default); font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--color_primary_contrast_default); background: var(--color_primary_default);
  border: none; border-radius: 99px; padding: 0 20px; min-height: 44px; min-width: 250px; cursor: pointer; }
.k-btn-filled:hover { background: rgba(0,12,102,1); }
.k-btn-filled.is-disabled, .k-btn-filled:disabled { opacity: 0.25; cursor: default; }
.k-btn-link { font-family: var(--font_default); font-size: 16px; font-weight: 400; line-height: 1.4; color: var(--color_primary_default); background: none; border: none; min-height: 30px; cursor: pointer; }
.k-btn-link:hover { text-decoration: underline; }
.k-testloading { padding: 30px 0; }
@media (max-width: 768px) { .k-testform { padding: 30px 20px; } .k-label { font-size: 16px; } }

/* ---- Test : pastilles de réponse et questions verrouillées */
.k-q-locked { opacity: 0.25 !important; }
.k-q-locked [data-v] { pointer-events: none; }
[data-v] { cursor: pointer; transition: background-color .1s; }
[data-v]:hover { background-color: rgba(0,20,168,0.4) !important; }
[data-v]:active { background-color: rgba(0,20,168,0.6) !important; }
[data-v].is-selected { background-color: var(--color_primary_default) !important; }
[data-v="0"]:hover { background-color: rgba(166,166,166,0.4) !important; }
[data-v="0"]:active { background-color: rgba(166,166,166,0.6) !important; }
[data-v="0"].is-selected { background-color: var(--color_bTHBX_default) !important; }
.k-contact-merci { max-width: 70%; align-self: center; margin: auto; order: 6; } /* même place que le formulaire */

/* Avis Google : texte limité à 4 lignes */
.k-review-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }
.k-review-photo { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

/* Avis Google : note globale sous le titre + date sur chaque carte */
.k-reviews-head { order: 3; align-self: stretch; display: flex; flex-wrap: wrap; align-items: center; column-gap: 28px; }
.k-reviews-head > .k-el { flex-shrink: 1; max-width: 100%; }
.k-rating-summary { order: 4; display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 0;
  font-family: var(--font_default); font-size: 18px; font-weight: 300; line-height: 1.4; color: var(--color_primary_contrast_default); text-decoration: none; }
.k-rating-summary:hover .k-rating-count { text-decoration: underline; }
.k-rating-value { font-size: 28px; font-weight: 600; line-height: 1; }
.k-rating-stars { display: inline-flex; gap: 2px; }
.k-rating-star { width: 22px; height: 22px; fill: var(--color_bTHAH_default); }
.k-review-date { display: block; font-size: 12px; font-weight: 300; line-height: 1.3; opacity: .85; }
@media (max-width: 768px) { .k-reviews-head { row-gap: 0; } .k-rating-summary { font-size: 16px; margin-bottom: 10px; } .k-rating-value { font-size: 24px; } .k-rating-star { width: 18px; height: 18px; } }


/* Menu mobile (views/partials/menu-mobile.ejs), commun à toutes les pages ; fixé sous l’en-tête */
.baTaLcw,.baTaLeaW,.baTaLeaS,.baTaLeaR,.baTaOaVu,.baTaLeaL{display:none}
@media (max-width: 768px){
  body.st-menu .baTaLfw {color:var(--color_primary_contrast_default);background-image:none;background-position:initial;background-size:initial;background-repeat:initial;background-attachment:initial;background-origin:initial;background-clip:initial;background-color:var(--color_primary_default)}
  body.st-menu .baTaLfw .icon-item {color:var(--color_primary_contrast_default)}
  body.st-menu .baTaLcw a {display:flex;align-items:center;justify-content:center}
  body.st-menu .baTaLcw {background-color:var(--color_surface_default);box-shadow:0px 2px 2px 0px var(--color_bTHBQ_default);width:initial;min-width:300px;min-height:250px;inset:60px 0px 0px;height:initial;max-height:250px;margin-left:auto;position:fixed;z-index:1510;justify-content:space-between;border-radius:0px;padding:25px 0px;opacity:1;display:flex}
  body.st-menu .baTaLeaW {font-family:var(--font_default);font-size:16px;font-weight:500;color:var(--color_text_default);text-align:center;line-height:1.4;border-radius:99px;padding:0px 20px;opacity:1;transition:background 200ms;cursor:pointer;align-self:center;min-width:60px;max-width:90%;order:1;min-height:40px;max-height:40px;height:max-content;flex-grow:0;flex-shrink:0;width:calc(100% + 0px);margin:0px;z-index:4;user-select:none;display:inline-block}
  body.st-menu .baTaLeaS {font-family:var(--font_default);font-size:16px;font-weight:500;color:var(--color_text_default);text-align:center;line-height:1.4;border-radius:99px;padding:0px 20px;opacity:1;transition:background 200ms;cursor:pointer;align-self:center;min-width:60px;max-width:90%;order:2;min-height:40px;max-height:40px;height:max-content;flex-grow:0;flex-shrink:0;width:calc(100% + 0px);margin:0px;z-index:4;user-select:none;display:inline-block}
  body.st-menu .baTaLeaR {font-family:var(--font_default);font-size:16px;font-weight:500;color:var(--color_text_default);text-align:center;line-height:1.4;border-radius:99px;padding:0px 20px;opacity:1;transition:background 200ms;cursor:pointer;align-self:center;min-width:60px;max-width:90%;order:3;min-height:40px;max-height:40px;height:max-content;flex-grow:0;flex-shrink:0;width:calc(100% + 0px);margin:0px;z-index:4;user-select:none;display:inline-block}
  body.st-menu .baTaOaVu {font-family:var(--font_default);font-size:16px;font-weight:500;color:var(--color_text_default);text-align:center;line-height:1.4;border-radius:99px;padding:0px 20px;opacity:1;transition:background 200ms;cursor:pointer;align-self:center;min-width:60px;max-width:90%;order:4;min-height:40px;max-height:40px;height:max-content;flex-grow:0;flex-shrink:0;width:calc(100% + 0px);margin:0px;z-index:4;user-select:none;display:inline-block}
  body.st-menu .baTaLeaL {background-color:var(--color_primary_default);font-family:var(--font_default);font-size:16px;font-weight:400;color:var(--color_primary_contrast_default);text-align:center;line-height:1.4;border-radius:999px;padding:0px 20px;opacity:1;transition:background 200ms;cursor:pointer;align-self:center;min-width:60px;max-width:90%;order:6;min-height:40px;max-height:40px;height:40px;flex-grow:1;width:calc(100% + 0px);margin:10px 0px 0px;z-index:4;display:inline-block}
}
