/* =========================================================
   SOBRE — couche finale du site public (15/10/2026)
   Typographie raffinée (tailles maîtrisées, hiérarchie claire,
   espacements réguliers) et mouvement minimal : plus de rebonds,
   zooms, textes qui défilent ni effets décoratifs. Seules restent
   des transitions et apparitions légères et fluides.
   Chargée en dernier, après blanc.css. Ne change ni le contenu
   ni le fonctionnement des pages.
   ========================================================= */

/* ---------- 1. Mouvement : léger, fluide, jamais spectaculaire ---------- */

/* Les anciennes animations décoratives se figent sur leur état final */
*, *::before, *::after {
  animation-duration: 0.001ms !important;
  animation-delay: 0s !important;
  animation-iteration-count: 1 !important;
}
/* Transitions souples et courtes (survols, menus, couleurs) */
*, *::before, *::after {
  transition-duration: 0.25s !important;
  transition-delay: 0s !important;
  transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1) !important;
}
/* Les indicateurs de chargement continuent de tourner */
.btn.is-loading::before, .cta.is-loading::after,
[class*="spinner"], [class*="loader"], .is-loading .spin {
  animation-duration: 0.8s !important;
  animation-iteration-count: infinite !important;
}

/* Premier écran : le texte arrive en fondu, ligne après ligne, au chargement */
@keyframes sobre-entree { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.ac-hero__texte > *, .lp-hero .container > *, .tf-hero .container > * {
  animation-name: sobre-entree !important;
  animation-duration: 0.8s !important;
  animation-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1) !important;
  animation-fill-mode: both !important;
}
.ac-hero__texte > :nth-child(2), .lp-hero .container > :nth-child(2), .tf-hero .container > :nth-child(2) { animation-delay: 0.08s !important; }
.ac-hero__texte > :nth-child(3), .lp-hero .container > :nth-child(3), .tf-hero .container > :nth-child(3) { animation-delay: 0.16s !important; }
.ac-hero__texte > :nth-child(4), .lp-hero .container > :nth-child(4), .tf-hero .container > :nth-child(4) { animation-delay: 0.24s !important; }
.ac-hero__texte > :nth-child(n+5), .lp-hero .container > :nth-child(n+5), .tf-hero .container > :nth-child(n+5) { animation-delay: 0.32s !important; }
.ac-hero__texte, .ac-hero .tel { transform: none !important; opacity: 1 !important; }
/* Vidéo de fond : apparaît en douceur */
.ac-fond__video { transition: opacity 1.2s ease !important; }

/* Au défilement : les blocs apparaissent en fondu en remontant de quelques pixels */
.rv, .cascade, [data-reveal] {
  filter: none !important;
  transition-property: opacity, transform, box-shadow, background-color, border-color, color !important;
  transition-duration: 0.7s, 0.6s, 0.35s, 0.25s, 0.25s, 0.25s !important;
}
.rv:not(.vu), .cascade:not(.is-in), [data-reveal]:not(.is-in) { opacity: 0 !important; transform: translateY(14px) !important; }
.rv.vu, .cascade.is-in, [data-reveal].is-in { opacity: 1 !important; transform: none !important; }
/* Les en-têtes de page restent toujours visibles */
.jobs-hero [data-reveal], .lp-hero [data-reveal], .rv-hero [data-reveal], .tf-hero [data-reveal], .hero [data-reveal] { opacity: 1 !important; transform: none !important; }

/* Titres : affichés entiers (plus de mots qui montent un par un) */
.mot > span, .h2.mots .mot > span, .manifeste.mots .mot > span { opacity: 1 !important; transform: none !important; }
.manifeste .mm-mot { color: inherit !important; }

/* Rideau d'ouverture, bandeau de mots défilants, particules, ciel animé */
.rideau, .defile, #sky, [data-particules], .particules, .ac-defiler span { display: none !important; }

/* Icônes et photos : plus de zooms ni de rotations au survol */
.tuile:hover .tuile__ico, .tuile--noire:hover .tuile__embleme, .brand:hover .brand__mark,
.ia-champ button:hover, .ac-garanties__liste li:hover .icon, .footer .brand:hover .brand__mark,
.ac-secteurs-bande a:hover .icon, .lp-card:hover .ico, .lp-photo:hover img,
.feature__list li:hover .icon, .shot:hover img, .ref__photo:hover img, .step:hover .step__icon,
.perk:hover .perk__icon, .ref-galerie figure:hover img {
  transform: none !important;
}
/* Photos fixes (plus de zoom ni de parallaxe) */
[data-zoom], [data-zoom] img, .ac-hero__photo img, .ac-ref__photo img { transform: none !important; }

/* Cartes : au survol, elles se soulèvent légèrement avec une ombre douce */
.tuile, .lp-card, .tf-carte, .ac-etapes li, .rv-card, .job {
  transition-property: opacity, transform, box-shadow, background-color, border-color, color !important;
  transition-duration: 0.7s, 0.45s, 0.45s, 0.25s, 0.25s, 0.25s !important;
}
.tuile:hover, .lp-card:hover, .tf-carte:hover, .ac-etapes li:hover, .rv-card:hover, .job:hover,
.tuile.rv.vu:hover, .lp-card.cascade.is-in:hover, .tf-carte.cascade.is-in:hover, .ac-etapes li.cascade.is-in:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 18px 40px -24px rgba(11, 11, 12, 0.28) !important;
}
/* Boutons : léger éclat au survol */
.btn:hover { filter: brightness(1.04); }
.btn:active { transform: translateY(1px); }
/* Liens du pied de page et du menu : soulignement fin qui apparaît */
.footer a:not(.btn):not(.brand) { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.footer a:not(.btn):not(.brand):hover { text-decoration-color: currentColor; }

/* Signature du pied de page : fondu doux à son arrivée */
.pied-marque--logo i { transition-property: opacity, transform !important; transition-duration: 1s !important; }
.pied-marque--logo:not(.vu) i { opacity: 0 !important; transform: translateY(12px) !important; }
.pied-marque--logo.vu i { opacity: 1 !important; transform: none !important; }
.pied-marque--logo.vu .pied-marque__sg { transition-delay: 0.15s !important; }

/* Petits titres : lettres fixes */
.kicker.rv, .kicker.rv.vu { letter-spacing: 0.14em !important; }

/* Visiteurs qui demandent moins d'animations : tout est immédiat */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.001ms !important; animation-duration: 0.001ms !important; }
  .rv, .cascade, [data-reveal], }

/* ---------- 2. Typographie ---------- */

body {
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
p { text-wrap: pretty; }

.h1, .h2, .h3, h1, h2, h3, h4 { text-wrap: balance; }

/* Grand titre : présent mais mesuré */
.h1, .ac-hero .h1 {
  font-size: clamp(2.15rem, 1.45rem + 2.1vw, 3.35rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.028em !important;
  line-height: 1.1 !important;
}
.ac-hero .h1 { max-width: 620px; }

/* Titres de section */
.h2 {
  font-size: clamp(1.7rem, 1.25rem + 1.3vw, 2.45rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.022em !important;
  line-height: 1.15 !important;
}
.h3, h3 {
  font-size: clamp(1.15rem, 1.05rem + 0.35vw, 1.4rem);
  font-weight: 650;
  letter-spacing: -0.012em;
  line-height: 1.3;
}

/* Texte d'introduction */
.lead {
  font-size: clamp(1.03rem, 0.98rem + 0.2vw, 1.15rem) !important;
  line-height: 1.65 !important;
}

/* Petits titres au-dessus des titres */
.kicker {
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
}

/* Manifeste : citation élégante plutôt qu'affiche */
.manifeste {
  font-size: clamp(1.45rem, 1.1rem + 1.15vw, 2.15rem) !important;
  font-weight: 600 !important;
  letter-spacing: -0.018em !important;
  line-height: 1.32 !important;
  max-width: 920px;
}

/* Chiffres clés */
.chiffres b {
  font-size: clamp(2rem, 1.6rem + 1.2vw, 2.75rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
}

/* Tuiles de services */
.tuile__txt b {
  font-size: clamp(1.12rem, 1.02rem + 0.3vw, 1.32rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.015em !important;
  line-height: 1.25 !important;
}

/* Bloc « Entreprises » de l'accueil */
.ac-pro p {
  font-size: clamp(1.08rem, 1rem + 0.35vw, 1.3rem) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.4 !important;
}

/* Menu déroulant (ordinateur) */
.nav__col a b { font-size: 16px !important; font-weight: 700 !important; letter-spacing: -0.01em !important; }

/* Étapes numérotées des pages */
.lp-steps li::before { font-size: 18px !important; font-weight: 700 !important; }

/* Engagements */
.ac-engagements b { font-size: 16px !important; font-weight: 700 !important; }

/* Boutons : lecture nette, sans majuscules criardes */
.btn { font-weight: 600; letter-spacing: 0; }

/* ---------- 3. Espacements ---------- */

.section { padding-block: clamp(64px, 7vw, 112px) !important; }

/* ---------- 4. Détails ---------- */

/* Démonstration de l'assistant : fenêtre droite, sans anneau lumineux tournant */
.ia-fenetre { transform: none !important; }
.ia-champ__anneau { display: none !important; }

/* Signature du pied de page : élégante, sans occuper tout l'écran */
.pied-marque.pied-marque--logo { gap: clamp(10px, 1.2vw, 16px) !important; margin: clamp(36px, 5vw, 64px) 0 clamp(22px, 3vw, 36px) !important; }
.pied-marque__bda { width: min(36vw, 300px) !important; }
.pied-marque__sg { width: min(64vw, 527px) !important; }

/* Accueil : section « Assistant en ligne » retirée (15/10/2026, demande du gérant) */
.ac-ia { display: none !important; }
