/* ==========================================================================
   Elementor compatibility layer
   Neutralises Elementor wrappers/resets so the ported mockup CSS renders 1:1.
   Loaded after Elementor's frontend CSS and after main.css.
   ========================================================================== */

/* Section containers created by the theme seeder: no padding, no gap, full width */
.e-con.cgf-sec{
  --padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;
  --gap:0px 0px;--row-gap:0px;--column-gap:0px;
  --content-width:100%;--width:100%;
  padding:0;gap:0;
}
.e-con.cgf-sec>.e-con-inner{padding:0;gap:0;max-width:100%}
.e-con.cgf-sec>.elementor-widget,
.e-con.cgf-sec>.e-con-inner>.elementor-widget{width:100%;max-width:100%;margin:0}
.elementor-widget[class*="elementor-widget-cgf-"]>.elementor-widget-container{padding:0;margin:0}
.elementor-element.elementor-widget[class*="elementor-widget-cgf-"]:not(:last-child){margin-block-end:0}

/* Elementor resets `.elementor img{height:auto;border-radius:0;box-shadow:none}` — restore mockup sizing */
.elementor .brand-logo img,.elementor .footer-logo-card img{width:100%;height:100%;object-fit:contain}
.elementor .arch img,.elementor .acc-panel img,.elementor .hs-fig img,
.elementor .post-img img,.elementor .rz-card img{width:100%;height:100%;object-fit:cover}
.elementor .acc-panel img{position:absolute;inset:0}
.elementor img.logo-img{display:block;object-fit:contain;background:#fff}

/* Elementor resets `.elementor a{box-shadow:none}` (0,1,1) — restore shadows on
   linked components, which use single-class selectors in the mockup. */
.elementor a.btn-primary{box-shadow:0 12px 26px rgba(51,51,102,.24)}
.elementor a.btn-primary:hover{box-shadow:0 16px 30px rgba(51,51,102,.32)}
.elementor a.hub-card{box-shadow:0 22px 50px rgba(30,32,60,.14)}
.elementor a.hub-card:hover{box-shadow:0 30px 56px rgba(51,51,102,.3)}
.elementor a.post{box-shadow:0 10px 28px rgba(30,32,60,.06)}
.elementor a.post:hover{box-shadow:0 28px 52px rgba(51,51,102,.18)}
.elementor a.rz-card{box-shadow:var(--shadow)}

/* Global header wrapper (theme chrome) */
.site-header{position:relative;z-index:50}
.site-footer{position:relative}
@media(max-width:760px){
  .site-header{position:sticky;top:0;z-index:100}
  .admin-bar .site-header{top:46px}
  .site-header .header{position:relative}
}
@media(min-width:601px) and (max-width:760px){.admin-bar .site-header{top:46px}}

/* Editor: never hide reveal-animated blocks while editing */
.elementor-editor-active .reveal{opacity:1!important}

/* Fallback header/footer when no Elementor template is assigned */
.gauthier-fallback{padding:24px 0;text-align:center;font-weight:800}

/* ==========================================================================
   Contact Form 7 → mockup form styles
   CF7 wraps each control in <span class="wpcf7-form-control-wrap">; the
   mockup's .field grid must stretch the control, so the wrap is a grid too.
   ========================================================================== */
.form .wpcf7,.form .wpcf7-form{margin:0}
.form .wpcf7-form-control-wrap{display:grid;min-width:0}
/* CF7 adds size="40" / cols="40" rows="10": drop their intrinsic sizing so
   the grid tracks and the 92px textarea match the mockup. */
.form .field{min-width:0}
.form .wpcf7-form-control{min-width:0;width:100%}
.form textarea.wpcf7-form-control{height:92px}
.form .wpcf7-form-control.wpcf7-not-valid{border-color:#c2410c;box-shadow:0 0 0 4px rgba(194,65,12,.12)}
.form .wpcf7-not-valid-tip{margin-top:5px;font-size:11px;font-weight:700;line-height:1.35;color:#9a3412}
.form .wpcf7-spinner{display:none}
.form .wpcf7-form.submitting .btn{opacity:.75;pointer-events:none}
.form .cgf-hp-wrap{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
/* Response box = mockup .form-msg */
.form .wpcf7 form .wpcf7-response-output{margin:12px 0 0;padding:12px 14px;border:0;border-radius:11px;font-size:13px;font-weight:700;line-height:1.45;animation:faqIn .5s var(--ease)}
.form .wpcf7 form.sent .wpcf7-response-output{background:var(--blue-soft);color:var(--blue)}
.form .wpcf7 form.invalid .wpcf7-response-output,
.form .wpcf7 form.unaccepted .wpcf7-response-output,
.form .wpcf7 form.payment-required .wpcf7-response-output,
.form .wpcf7 form.failed .wpcf7-response-output,
.form .wpcf7 form.aborted .wpcf7-response-output,
.form .wpcf7 form.spam .wpcf7-response-output{background:#fff1ea;color:#9a3412}

/* WPML's default footer language switcher duplicates the header switcher (theme header widget) */
.wpml-ls-statics-footer{display:none!important}
