/* MAXSTOP Home Lab: scoped adaptation of Coolify Demo 1 sections (.ms-lab). Loaded only on pages flagged _maxstop_lab. */
.ms-lab{
	--e-global-color-primary:#111316;
	--e-global-color-secondary:#F5F5F2;
	--e-global-color-text:#5B6066;
	--e-global-color-accent:#F15A24;
	--e-global-color-divider:#1113161A;
	--e-global-typography-primary-font-family:Archivo,sans-serif;
	--e-global-typography-secondary-font-family:Archivo,sans-serif;
	--e-global-typography-text-font-family:Archivo,sans-serif;
	--e-global-typography-accent-font-family:Archivo,sans-serif;
	font-family:Archivo,sans-serif;
}
.ms-lab :is(.elementor-heading-title,.elementor-widget-text-editor,.elementor-widget-text-editor *,.elementor-icon-list-text,.elementskit-info-box-title,.elementskit-box-body,.elementskit-box-body *,.ekit-btn-text,.elementskit-btn,.elementor-button){
	font-family:Archivo,sans-serif !important;
}
.ms-lab .elementor-heading-title{text-transform:uppercase;font-weight:800;letter-spacing:-.02em}
.ms-lab .section-title .elementor-heading-title{letter-spacing:.14em;font-size:.8rem}
.ms-lab .ms-accent{color:var(--e-global-color-accent)}

/* stroke icons (MAXSTOP SVG set) must not be filled by ElementsKit/Coolify colour rules */
.ms-lab :is(.elementskit-info-box-icon,.elementor-icon,.elementskit-btn,.ekit-wid-con) svg{fill:none !important;stroke:currentColor}

/* hero: clear the fixed MAXSTOP header */
.ms-lab-hero.hero-section{margin-top:calc(var(--ms-header-h,76px) + 16px)}
.ms-lab-hero .ms-lab-tel p{margin:14px 0 0;color:#fff;font-size:1.25rem;font-weight:800;text-align:center}

.ms-lab-tech .ms-tech-placeholder img{object-position:center top}


/* ---- Home Lab visual system: natural-case titles, proportions, rhythm (FR 8273 / NL 8277) ---- */
.ms-lab :is(h1,h2).elementor-heading-title,
.ms-lab :is(h1,h2).elementor-heading-title *,
:is(.page-id-8273,.page-id-8277) .maxstop-section :is(h1,h2),
:is(.page-id-8273,.page-id-8277) .maxstop-section :is(h1,h2) *{text-transform:none !important;letter-spacing:-.02em;font-weight:700}
.ms-lab :is(h1,h2).elementor-heading-title,
:is(.page-id-8273,.page-id-8277) .maxstop-section :is(h1,h2){line-height:1.12 !important;text-wrap:balance}

/* hero */
.ms-lab-hero h1.elementor-heading-title{font-size:clamp(2rem,4.4vw,3.6rem) !important;line-height:1.1 !important;margin:18px 0 22px}
.ms-lab-hero .elementor-widget-text-editor p{margin:0 auto 30px;max-width:620px}
.ms-lab-hero .section-title{margin-bottom:6px}
.ms-lab-hero .ms-lab-tel p{margin-top:22px}
.ms-lab-hero .elementor-element-da99880>.e-con-inner{padding-top:clamp(120px,15vw,215px);padding-bottom:clamp(90px,13vw,200px)}
/* header -> hero gap: header is sticky and already in flow, so no margin is needed; only a small padding above the hero card
   (previous causes: lab margin-top:header-h+16 and Coolify hero-section padding-top:100.8px) */
.ms-lab-hero.hero-section{margin-top:0;padding-top:clamp(24px,2.4vw,36px);padding-bottom:clamp(32px,4vw,56px)}
@media (max-width:767px){.ms-lab-hero .elementor-element-da99880>.e-con-inner{padding-top:110px;padding-bottom:70px}}
@media (max-width:600px){.ms-lab-hero.hero-section{padding-top:20px;padding-bottom:28px}}

/* intro / expertise */
.ms-lab-intro h2.elementor-heading-title{font-size:clamp(1.7rem,3vw,2.6rem) !important;margin:14px 0 22px}
.ms-lab-intro .elementor-widget-text-editor{margin-bottom:24px}
.ms-lab-intro .elementor-widget-icon-list{margin-bottom:30px}
.ms-lab-intro img{min-height:clamp(320px,38vw,520px);object-fit:cover}
.ms-lab-intro .elementor-element-1cd6256{padding-bottom:clamp(20px,3vw,44px)}
.ms-lab-intro .elementor-element-f4c67a8{align-items:center}

/* services (typography only; grid/cards untouched) */
.ms-lab-services h2.elementor-heading-title{font-size:clamp(1.8rem,3.2vw,2.8rem) !important;margin:14px 0 clamp(28px,3.5vw,52px)}
.ms-lab-services .elementskit-info-box{padding:clamp(22px,2vw,32px) !important}
.ms-lab-services .elementskit-info-box-title,.ms-lab-services .elementskit-info-box .title{font-size:clamp(1.05rem,1.3vw,1.3rem) !important;line-height:1.25 !important;letter-spacing:-.01em;text-transform:none}

/* technician + 3 blocks */
.ms-lab-tech h2.elementor-heading-title{font-size:clamp(1.7rem,3vw,2.6rem) !important;margin:14px 0 clamp(24px,3vw,40px)}
.ms-lab-tech .elementskit-info-box{margin-bottom:16px}
/* Coolify forces object-fit:cover on this image; keep natural ratio, no crop, no radius */
.ms-lab-tech .ms-tech-img{text-align:center}
.ms-lab-tech .ms-tech-img img{display:block;width:92%;max-width:none;height:auto;aspect-ratio:400/600;object-fit:contain;object-position:center bottom;border-radius:0;margin:0 auto}
@media (min-width:1025px){.ms-lab-tech .ms-tech-img img{width:96%}}
.ms-lab-tech .ms-tech-img,.ms-lab-tech .ms-tech-img .elementor-widget-container{overflow:visible}

/* benefits */
.ms-lab-benefits h2.elementor-heading-title{font-size:clamp(1.8rem,3.2vw,2.8rem) !important;margin:14px 0 18px}
.ms-lab-benefits .elementskit-info-box{margin-bottom:clamp(22px,2.4vw,34px)}
.ms-lab-benefits .elementskit-info-box-title{font-size:clamp(1rem,1.2vw,1.2rem) !important;line-height:1.3 !important;text-transform:none}
.ms-lab-benefits .elementskit-box-header{align-self:flex-start}

/* zone + final CTA (MAXSTOP blocks) */
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7 h2{font-size:clamp(1.7rem,3vw,2.6rem) !important;line-height:1.15 !important;max-width:min(100%,780px)}
:is(.page-id-8273,.page-id-8277) .maxstop-finalcta h2{font-size:clamp(1.7rem,3vw,2.6rem) !important;margin-bottom:16px}
:is(.page-id-8273,.page-id-8277) .maxstop-finalcta__tel p{font-size:clamp(2rem,4vw,3.2rem) !important;line-height:1.1 !important;margin:22px 0 28px}

/* vertical rhythm: Elementor takes container padding from --padding-* variables, so set those */
.elementor .elementor-element.ms-lab{--ms-gap:clamp(55px,6.2vw,92px)}
.elementor .elementor-element.ms-lab.ms-lab-intro{--padding-top:clamp(40px,5vw,72px);--padding-bottom:var(--ms-gap)}
.elementor .elementor-element.ms-lab.ms-lab-services,
.elementor .elementor-element.ms-lab.ms-lab-tech,
.elementor .elementor-element.ms-lab.ms-lab-benefits{--padding-top:var(--ms-gap);--padding-bottom:var(--ms-gap)}
.elementor .elementor-element.ms-lab.ms-lab-intro>.e-con-inner,
.elementor .elementor-element.ms-lab.ms-lab-tech>.e-con-inner,
.elementor .elementor-element.ms-lab.ms-lab-services>.e-con-inner,
.elementor .elementor-element.ms-lab.ms-lab-benefits>.e-con-inner{padding-top:0;padding-bottom:0}
:is(.page-id-8273,.page-id-8277) .elementor .elementor-element.maxstop-section:not(.maxstop-finalcta){--padding-top:clamp(55px,6.2vw,92px);--padding-bottom:clamp(55px,6.2vw,92px)}
:is(.page-id-8273,.page-id-8277) .elementor .elementor-element.maxstop-finalcta{--padding-top:clamp(64px,7vw,104px);--padding-bottom:clamp(64px,7vw,104px)}
/* boxed containers (intro, technician) take their padding on the element itself */
.elementor .elementor-element.ms-lab.ms-lab-intro{padding-top:clamp(40px,5vw,72px);padding-bottom:var(--ms-gap)}
.elementor .elementor-element.ms-lab.ms-lab-tech{padding-top:var(--ms-gap);padding-bottom:var(--ms-gap)}

/* ---- finishing pass ---- */
/* technician -> benefits: the dark section starts higher and sits above the bottom of the (untouched) technician image */
.elementor .elementor-element.ms-lab.ms-lab-tech{padding-bottom:20px}
.elementor .elementor-element.ms-lab.ms-lab-benefits{position:relative;z-index:2}
/* expertise: tighter image/text split on desktop (image keeps its width, text column moves 26px closer) */
@media (min-width:1025px){
.ms-lab-intro .elementor-element-dfe38e0{--width:calc(66.667% - 26px)}
.ms-lab-intro .elementor-element-236f809{--width:calc(33.333% + 26px)}
}
/* services/benefits: the dark card is a child container, so outer padding only produced white space above/below it.
   Gaps now come from the neighbouring white sections (intro bottom, technician top/bottom, zone top). */
.elementor .elementor-element.ms-lab.ms-lab-services,
.elementor .elementor-element.ms-lab.ms-lab-benefits{--padding-top:0px;--padding-bottom:0px}
@media (max-width:1024px){.elementor .elementor-element.ms-lab.ms-lab-tech{padding-bottom:36px}}

/* ---- zone d intervention: compact version (Home Lab FR/NL) ---- */
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7.maxstop-section{padding-top:clamp(40px,4.4vw,64px);padding-bottom:clamp(40px,4.4vw,64px)}
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7 .maxstop-label{height:auto;margin-bottom:0}
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7 .maxstop-label p,
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7 .maxstop-label>*{margin-bottom:10px}
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7 h2.elementor-heading-title{margin:0 0 12px}
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7 .maxstop-regio__text{margin:0 0 18px}
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7 .maxstop-regio__text p{margin:0}
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7 .e-con.maxstop-regio__more{padding:12px 20px;gap:16px}
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7 .maxstop-regio__ico .ms-ico{width:38px;height:38px}
:is(.page-id-8273,.page-id-8277) .elementor-element-8aeccb7 .maxstop-regio__more .elementor-button{padding:12px 22px;min-height:44px}

/* ======================= INNER PAGES (Services / Service detail / About / Contact) ======================= */
/* page header (Coolify page-header-box) */
.ms-lab-pagehead{margin-top:0 !important;padding-top:clamp(24px,2.4vw,36px);padding-bottom:0}
.ms-lab-pagehead h1.elementor-heading-title{font-size:clamp(2.1rem,4.6vw,3.5rem) !important;line-height:1.1 !important;margin:0 0 14px}
.ms-lab-pagehead .ms-pagehead-intro{max-width:640px;margin:0 auto}
.ms-lab-pagehead .ms-pagehead-intro p{margin:0;font-size:clamp(1rem,1.2vw,1.1rem);line-height:1.5;color:#fff}
.ms-lab-pagehead .elementor-element-e8a146e{min-height:0}
/* section rhythm: white sections between dark cards */
.elementor .elementor-element.ms-lab.ms-lab-hubgrid{--padding-top:clamp(48px,5.5vw,80px);--padding-bottom:clamp(40px,5vw,72px)}
.elementor .elementor-element.ms-lab.ms-lab-hubgrid>.e-con-inner{padding-top:0;padding-bottom:0}
.elementor .elementor-element.ms-lab.ms-lab-process{padding-top:clamp(48px,5.5vw,80px);padding-bottom:clamp(56px,6vw,88px)}
/* light service cards on a white section */
.ms-lab-hubgrid h2.elementor-heading-title{font-size:clamp(1.7rem,3vw,2.6rem) !important;margin:12px 0 clamp(24px,3vw,40px);color:#111316 !important}
.ms-lab-hubgrid .section-title .elementor-heading-title{color:#5B6066 !important}
.ms-lab-hubgrid .elementskit-infobox{background:#F4F4F0 !important;border-radius:20px;transition:transform .3s ease,box-shadow .3s ease}
.ms-lab-hubgrid .service-item:hover .elementskit-infobox{transform:translateY(-4px);box-shadow:0 14px 34px rgba(17,19,22,.08)}
.ms-lab-hubgrid .elementskit-infobox.gradient-active::before{display:none}
.ms-lab-hubgrid .elementskit-info-box-title,.ms-lab-hubgrid .elementskit-info-box-title a{color:#111316 !important;font-size:clamp(1.1rem,1.35vw,1.3rem) !important;line-height:1.25 !important;letter-spacing:-.01em;text-transform:none}
.ms-lab-hubgrid .service-item:hover .elementskit-info-box-title{color:#F15A24 !important}
.ms-lab-hubgrid .elementskit-infobox .box-body p{color:#5B6066 !important;font-size:1rem;line-height:1.55;margin:0}
.ms-lab-hubgrid .elementskit-infobox .elementskit-btn,.ms-lab-hubgrid .elementskit-infobox .box-footer a{background:#111316 !important}
.ms-lab-hubgrid .service-item:hover .elementskit-infobox .elementskit-btn,.ms-lab-hubgrid .service-item:hover .box-footer a{background:#F15A24 !important}
.ms-lab-hubgrid .elementskit-infobox .box-footer svg{color:#fff !important}
.ms-lab-hubgrid .elementskit-info-box-icon,.ms-lab-hubgrid .elementskit-box-header{margin-bottom:18px}
/* process */
.ms-lab-process h3.elementor-heading-title,.ms-lab-process .section-title .elementor-heading-title{font-size:.8rem}
.ms-lab-process h2.elementor-heading-title{font-size:clamp(1.7rem,3vw,2.6rem) !important;margin:12px 0 24px}
.ms-lab-process .elementskit-infobox{padding-bottom:28px !important}
.ms-lab-hubgrid .section-title .elementor-heading-title::before,.ms-lab-hubgrid .section-title::before{background:#F15A24 !important;background-color:#F15A24 !important}
.ms-lab-hubgrid .elementskit-infobox .box-footer,.ms-lab-hubgrid .elementskit-infobox .elementskit-box-footer{margin-top:20px !important}
.ms-lab-hubgrid .elementskit-box-header,.ms-lab-hubgrid .elementskit-info-box-icon{margin-bottom:14px !important}

.ms-lab-hubgrid .section-title .elementor-heading-title::before,.ms-lab-hubgrid .section-title::before{background:#F15A24 !important;background-color:#F15A24 !important}
.ms-lab-hubgrid .elementskit-infobox .box-footer,.ms-lab-hubgrid .elementskit-infobox .elementskit-box-footer{margin-top:20px !important}
.ms-lab-hubgrid .elementskit-box-header,.ms-lab-hubgrid .elementskit-info-box-icon{margin-bottom:14px !important}
@media (max-width:1024px){.elementor .ms-lab-svcbody,.elementor .ms-lab-svcbody>.e-con-inner{--flex-direction:column-reverse !important;flex-direction:column-reverse !important}}

/* a11y (lab only): readable orange text on light, larger consent checkbox, darker FAQ active state */
.ms-lab-svcbody .elementor-widget-text-editor p a,.ms-lab-whyabout .elementor-widget-text-editor p a{color:#C2410C !important;text-decoration:underline;text-underline-offset:2px}
.ms-lab-svcbody .elementskit-card.active,.ms-lab-svcbody .elementskit-card.active .elementskit-card-header,.ms-lab-svcbody .elementskit-card.active .elementskit-card-body,.ms-lab-svcbody .elementskit-card.active .elementskit-card-header a{background-color:#C2410C !important}
.ms-lab-svcbody .page-catagory-box .elementor-heading-title{font-size:19px !important}
.ms-lab-svcbody .page-catagory-box>.e-con-inner>.e-con:first-child,.ms-lab-svcbody .page-catagory-box>.e-con:first-child{background-color:#C2410C !important}
.ms-lab-contact .maxstop-form__consent,.ms-lab-contact .maxstop-form__consent label,.ms-lab-contact .maxstop-form__consent .wpcf7-list-item-label{color:#5B6066 !important}
.ms-lab-contact .maxstop-form__consent input[type=checkbox]{width:20px;height:20px}

/* Phase pre-promotion: accessible action orange (white text) - brand orange #F15A24 stays for non-text */
:root{--ms-orange:#F15A24;--ms-orange-action:#C2410C;--ms-orange-action-hover:#9A3412}
.ms-btn--primary,.ms-call,.ms-footer .ms-btn--primary,a.maxstop-sticky-call,.maxstop-btn--primary .elementor-button,.maxstop-form .wpcf7-submit,.wpcf7-submit,.ekit_creative_button{background-color:var(--ms-orange-action) !important;color:#fff !important}
.ms-btn--primary:hover,.ms-btn--primary:focus-visible,.ms-call:hover,.ms-call:focus-visible,a.maxstop-sticky-call:hover,a.maxstop-sticky-call:focus-visible,.maxstop-btn--primary .elementor-button:hover,.maxstop-btn--primary .elementor-button:focus-visible,.maxstop-form .wpcf7-submit:hover,.maxstop-form .wpcf7-submit:focus-visible,.wpcf7-submit:hover,.wpcf7-submit:focus-visible,.ekit_creative_button:hover,.ekit_creative_button:focus-visible{background-color:var(--ms-orange-action-hover) !important;color:#fff !important}
.ekit_creative_button .ekit_creative_button_text,.ekit_creative_button i,.ekit_creative_button svg{color:#fff !important;fill:#fff}
.ms-btn--primary:focus-visible,.ms-call:focus-visible,a.maxstop-sticky-call:focus-visible,.ekit_creative_button:focus-visible,.wpcf7-submit:focus-visible{outline:3px solid #111316;outline-offset:3px}
.maxstop-section:not(.maxstop-section--dark) .maxstop-label span,.ms-lab-tech .elementor-widget-text-editor p a{color:var(--ms-orange-action) !important}
.ms-lab-svcbody .page-catagory-box>.elementor-widget-heading{background-color:var(--ms-orange-action) !important}

/* Final photos: keep the natural 4:3 ratio, no aggressive crop */
.ms-lab-svcbody .ms-svc-photo img,.ms-lab-about .elementor-widget-image img[src*="maxstop-camion-orange"],.ms-lab-intro .elementor-widget-image img{width:100%;height:auto !important;min-height:0 !important;aspect-ratio:4/3;object-fit:contain;object-position:center}
