/* Tachygraphe static-site layout fixes — post text-swap.
   The French copy changes element heights, exposing height-match assumptions
   baked into the AutoPrime kit. Scoped by Elementor data-id (unique per page). */

/* Issue 1 — "Votre tachygraphe en ordre" two-column: the left photo must fill
   its column to match the dark content panel on the right.
   NOTE: data-id 10214ffe IS the image widget itself (class .elementor-widget-image
   on that element), so target its direct .elementor-widget-container child — NOT a
   nested .elementor-widget-image (that matches nothing here). */
[data-id="10214ffe"] { display: flex; align-items: stretch; }
[data-id="10214ffe"] > .elementor-widget-container { flex: 1 1 auto; min-height: 0; width: 100%; display: flex; }
[data-id="10214ffe"] > .elementor-widget-container > img { width: 100%; height: 100%; object-fit: cover; }

/* Issue 2 — service-card grids (home, services, service-details "autres services").
   Goal: every card's bottom image is the SAME height regardless of how many lines the
   title/text above takes. So: pin the image to a fixed height and let the CONTENT block
   (the card's non-image child) grow to absorb the difference. Result = uniform images,
   all bottom-aligned, cards equal height.
   `> * > *:not(.elementor-widget-image)` = grid > card > content-block (robust: no reliance
   on the content block's tag/class). */
[data-id="5b4e2bd1"] > * > *:not(.elementor-widget-image),
[data-id="e7c37b5"] > * > *:not(.elementor-widget-image),
[data-id="15c0a40"] > * > *:not(.elementor-widget-image) { flex: 1 1 auto; min-height: 0; }
[data-id="5b4e2bd1"] .elementor-widget-image,
[data-id="e7c37b5"] .elementor-widget-image,
[data-id="15c0a40"] .elementor-widget-image { flex: 0 0 auto !important; height: 205px; min-height: 0; }
[data-id="5b4e2bd1"] .elementor-widget-image > .elementor-widget-container,
[data-id="e7c37b5"] .elementor-widget-image > .elementor-widget-container,
[data-id="15c0a40"] .elementor-widget-image > .elementor-widget-container { height: 100%; display: flex; }
[data-id="5b4e2bd1"] .elementor-widget-image img,
[data-id="e7c37b5"] .elementor-widget-image img,
[data-id="15c0a40"] .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; }

/* Issue 3 — "Rendez-vous sous 24-48 h" CTA: the teal diagonal is Shape-Bg-3.png on
   #70501100 sized `64.55% auto`, so its height follows the PNG aspect and stops short of
   the taller section. Force the height to 100% so the teal reaches the section bottom. */
[data-id="70501100"] { background-size: 64.55% 100% !important; }

/* ── Font-based wordmark logo (replaces AutoPrime PNG). Montserrat self-hosted. ── */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/wp-content/fonts/montserrat-700.woff2") format("woff2");
}
.cw-wordmark {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: .2px;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  display: inline-block;
}
.cw-wordmark .cw-wm-1 { color: inherit; }        /* adapts: dark on light header, light on dark footer */
.cw-wordmark .cw-wm-2 { color: #2a9d8f; }        /* professional teal (site secondary), on-brand + reads on light & dark */
/* Force the first word white in the two dark contexts where `inherit` picks up a
   dark (footer) / reddish (mobile burger side-menu) colour. Teal 2nd word unchanged. */
.elementor-element-68b199e .cw-wm-1,
.jkit-nav-identity-panel .cw-wm-1 { color: #fff; }

/* Hide "Ils nous font confiance" client-logo section (no logos yet). Index only. */
.elementor-element-728e44b9 { display: none !important; }

/* Hide "Ils témoignent" testimonials section for now (no real testimonials yet). Index only. */
.elementor-element-2cae457b { display: none !important; }

/* Services page "Votre échéance approche ?" CTA: same Shape-Bg-3 green-left issue
   as index #70501100 — force teal height to 100% so it reaches the section bottom. */
[data-id="96ae0d2"] { background-size: 64.55% 100% !important; }

/* ── Native contact form (OpnForm-backed) — blends into the template ── */
.ct-form { display: flex; flex-direction: column; gap: 18px; width: 100%; }
.ct-form .ct-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 767px) { .ct-form .ct-2col { grid-template-columns: 1fr; } }
.ct-form label { display: flex; flex-direction: column; gap: 7px;
  font-size: 13px; font-weight: 600; letter-spacing: .3px; color: #264653; }
.ct-form input, .ct-form select, .ct-form textarea {
  font: inherit; font-weight: 400; color: #1C1C1C;
  padding: 13px 15px; border: 1px solid #d9dee0; border-radius: 6px;
  background: #fff; width: 100%; transition: border-color .15s, box-shadow .15s; }
.ct-form textarea { resize: vertical; min-height: 120px; }
.ct-form input:focus, .ct-form select:focus, .ct-form textarea:focus {
  outline: none; border-color: #264653; box-shadow: 0 0 0 3px rgba(38,70,83,.12); }
.ct-form .ct-consent { flex-direction: row; align-items: flex-start; gap: 10px;
  font-weight: 400; font-size: 13px; color: #4D4D4D; line-height: 1.45; }
.ct-form .ct-consent input { width: auto; margin-top: 2px; flex: none; accent-color: #264653; }
.ct-form .ct-submit {
  align-self: flex-start; cursor: pointer; border: 0; border-radius: 6px;
  background: #264653; color: #fff; font-weight: 600; letter-spacing: .4px;
  padding: 15px 34px; font-size: 15px; transition: background .15s; }
.ct-form .ct-submit:hover { background: #1b333c; }
.ct-form .ct-submit:disabled { opacity: .6; cursor: default; }
.ct-form .ct-status { margin: 4px 0 0; padding: 14px 16px; border-radius: 6px;
  font-size: 14px; line-height: 1.5; }
.ct-form .ct-status.ok { background: #eaf4ee; color: #1e6b40; border: 1px solid #bfe0cd; }
.ct-form .ct-status.err { background: #fdecea; color: #a32017; border: 1px solid #f3c2bd; }
