/* Blocs des modèles de page — Aurouze Tours */

/* ---------- Hero ----------
   Fond clair et uni : plus de photo sous le texte (illisible, chargée). La photo éventuelle
   s'affiche à côté, dans un cadre ; sur les pages à formulaire, c'est le formulaire qui l'occupe. */
.atr-hero { position: relative; background: linear-gradient(180deg, var(--atr-cream) 0%, #fff 100%); color: var(--atr-ink); border-bottom: 1px solid var(--atr-line); }
.atr-hero__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 3.5rem; align-items: center; padding: clamp(2.5rem, 5vw, 4.25rem) 0; }
.atr-hero--compact .atr-hero__inner { grid-template-columns: 1fr; padding: clamp(2rem, 4vw, 3rem) 0; }
.atr-hero__title { color: var(--atr-primary-dark); margin-bottom: 0.75rem; max-width: 20ch; }
.atr-hero--compact .atr-hero__title { max-width: 28ch; }
.atr-hero__text { font-size: 1.1rem; color: var(--atr-muted); max-width: 52ch; margin-bottom: 0; }
.atr-hero__usp { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 1.25rem; }
.atr-hero__usp li { display: flex; align-items: center; gap: 0.5rem; font-size: 0.95rem; color: var(--atr-ink); }
.atr-hero__usp svg { width: 20px; height: 20px; fill: var(--atr-primary); flex: none; }
.atr-hero__media { margin: 0; border-radius: var(--atr-radius); overflow: hidden; box-shadow: var(--atr-shadow); aspect-ratio: 4/3; }
.atr-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.atr-hero__form .atr-quote { box-shadow: var(--atr-shadow); }
.atr-breadcrumb { margin: 0 0 0.9rem; font-size: 0.82rem; }
.atr-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; color: var(--atr-muted); }
.atr-breadcrumb li + li::before { content: "\203A"; margin-right: 0.5rem; opacity: 0.7; }
.atr-breadcrumb a { color: var(--atr-muted); text-decoration: none; }
.atr-breadcrumb a:hover { color: var(--atr-primary); text-decoration: underline; }
.atr-breadcrumb [aria-current] { color: var(--atr-primary-dark); font-weight: 500; }
@media (max-width: 960px) {
  .atr-hero__inner { grid-template-columns: 1fr; gap: 2rem; }
  .atr-hero__usp { grid-template-columns: 1fr; }
}

/* Hero avec photo de fond (pages à formulaire) : voile vert foncé, texte blanc, formulaire en carte blanche. */
.atr-hero--bg { background: var(--atr-primary-dark); color: #fff; border-bottom: 0; overflow: hidden; }
.atr-hero__bg { position: absolute; inset: 0; z-index: 0; }
.atr-hero__bg img, .atr-hero__bg video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.atr-hero__poster { display: none; }
/* Photos en fondu (le script fait tourner .is-active toutes les 6 s). */
.atr-hero__bg--slides img { opacity: 0; transition: opacity 1.5s ease; }
.atr-hero__bg--slides img:first-child, .atr-hero__bg--slides img.is-active { opacity: 1; }
.atr-hero__bg--slides.is-running img:first-child:not(.is-active) { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .atr-hero__bg video { display: none; }
  .atr-hero__poster { display: block; }
}
.atr-hero__bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(12, 38, 16, 0.86) 0%, rgba(12, 38, 16, 0.66) 42%, rgba(12, 38, 16, 0.28) 100%);
}
.atr-hero--bg .atr-hero__inner { z-index: 1; }
.atr-hero--bg .atr-hero__title { color: #fff; text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35); }
.atr-hero--bg .atr-hero__text { text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35); }
.atr-hero--bg .atr-hero__text { color: rgba(255, 255, 255, 0.88); }
.atr-hero--bg .atr-eyebrow { color: var(--atr-accent-on-dark); }
.atr-hero--bg .atr-breadcrumb ol, .atr-hero--bg .atr-breadcrumb a { color: rgba(255, 255, 255, 0.75); }
.atr-hero--bg .atr-breadcrumb [aria-current] { color: #fff; }
.atr-hero--bg .atr-hero__usp li { color: #fff; }
.atr-hero--bg .atr-hero__usp svg { fill: var(--atr-accent-on-dark); }
.atr-hero--bg .atr-hero__form .atr-quote { box-shadow: 0 20px 50px rgba(0, 0, 0, 0.28); border-color: transparent; }
@media (max-width: 960px) {
  /* Mobile : la photo occupe le haut, le voile s'épaissit vers le formulaire. */
  .atr-hero__bg::after { background: linear-gradient(180deg, rgba(12, 38, 16, 0.42) 0%, rgba(12, 38, 16, 0.68) 28%, rgba(12, 38, 16, 0.9) 58%, var(--atr-primary-dark) 100%); }
  .atr-hero__bg img { object-position: center top; }
  .atr-hero--bg .atr-hero__body { padding-top: 0.5rem; }
}

/* ---------- Formulaire devis (carte) ---------- */
.atr-quote { background: #fff; color: var(--atr-ink); border-radius: var(--atr-radius); padding: 1.6rem; border: 1px solid var(--atr-line); }
.atr-quote--full { padding: 2rem; }
.atr-quote__head { margin-bottom: 1rem; }
.atr-quote__title { font-size: 1.5rem; margin-bottom: 0.25rem; }
.atr-quote__text { margin: 0; color: var(--atr-primary); font-weight: 600; font-size: 0.9rem; display: flex; align-items: center; gap: 0.35rem; }
.atr-quote__text svg { width: 16px; height: 16px; fill: var(--atr-primary); }
.atr-quote--card { padding: 1.5rem 1.5rem 1.25rem; }
.atr-quote--card .atr-quote__title { font-size: 1.4rem; }
.atr-quote--card .atr-form { gap: 0.85rem; }
.atr-form__more { border: 1px dashed var(--atr-line); border-radius: var(--atr-radius-sm); padding: 0.55rem 0.9rem; }
.atr-form__more summary { cursor: pointer; font-size: 0.88rem; font-weight: 500; color: var(--atr-primary); }
.atr-form__more[open] summary { margin-bottom: 0.6rem; }
.atr-form__more textarea { min-height: 90px; }
.atr-quote .atr-btn--lg { width: 100%; }
.atr-form__note svg { width: 14px; height: 14px; fill: var(--atr-primary); vertical-align: -2px; }

/* ---------- Réassurance ---------- */
.atr-usp { background: #fff; border-bottom: 1px solid var(--atr-line); }
.atr-usp__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; padding: 1.25rem 0; }
.atr-usp__item { display: flex; gap: 0.8rem; align-items: center; }
.atr-usp__item svg { width: 34px; height: 34px; fill: var(--atr-primary); flex: none; padding: 7px; background: var(--atr-primary-light); border-radius: 10px; box-sizing: border-box; }
.atr-usp__item strong { display: block; font-size: 0.95rem; color: var(--atr-primary-dark); }
.atr-usp__item span { font-size: 0.82rem; color: var(--atr-muted); }
@media (max-width: 960px) { .atr-usp__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .atr-usp__grid { grid-template-columns: 1fr; } }

/* ---------- Services ---------- */
.atr-service-card { display: flex; flex-direction: column; padding: 0; overflow: hidden; text-decoration: none; color: inherit; }
.atr-service-card__img img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.atr-service-card__body { padding: 1.25rem 1.4rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.atr-service-card__body .atr-card__link { margin-top: auto; padding-top: 1rem; }
.atr-card__link svg { width: 16px; height: 16px; fill: currentColor; transition: transform 0.2s; }
.atr-card:hover .atr-card__link svg { transform: translateX(3px); }
.atr-card--static:hover { transform: none; box-shadow: none; }

/* ---------- Étapes ---------- */
.atr-steps__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; counter-reset: steps; }
.atr-steps__item { position: relative; background: #fff; border-radius: var(--atr-radius); padding: 1.75rem 1.4rem 1.4rem; border: 1px solid var(--atr-line); }
.atr-steps__num { position: absolute; top: -18px; left: 1.4rem; width: 36px; height: 36px; border-radius: 50%; background: var(--atr-primary); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.atr-steps__item h3 { font-size: 1.25rem; margin: 0.25rem 0 0.4rem; }
.atr-steps__item p { margin: 0; color: var(--atr-muted); font-size: 0.95rem; }
@media (max-width: 960px) { .atr-steps__list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .atr-steps__list { grid-template-columns: 1fr; } }

.atr-mini-steps { list-style: none; margin: 0; padding: 0; counter-reset: ms; display: grid; gap: 0.75rem; }
.atr-mini-steps li { counter-increment: ms; display: grid; grid-template-columns: 28px 1fr; gap: 0.6rem; align-items: start; font-size: 0.92rem; }
.atr-mini-steps li::before { content: counter(ms); width: 28px; height: 28px; border-radius: 50%; background: var(--atr-primary-light); color: var(--atr-primary-dark); font-weight: 700; display: flex; align-items: center; justify-content: center; font-size: 0.85rem; }
.atr-mini-steps strong { display: block; color: var(--atr-primary-dark); grid-column: 2; }
.atr-mini-steps li > span { grid-column: 2; }
.atr-mini-steps span { color: var(--atr-muted); }
.atr-mini-steps--lg li { font-size: 1rem; gap: 1rem; margin-bottom: 0.5rem; }

/* ---------- Chiffres ---------- */
.atr-counters__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; text-align: center; }
.atr-counter__value { display: block; font-family: var(--atr-serif); font-size: clamp(2.4rem, 5vw, 3.6rem); font-weight: 700; color: var(--atr-accent-on-dark); line-height: 1; }
.atr-counter__value small { font-size: 0.55em; margin-left: 0.1em; }
.atr-counter__label { display: block; margin-top: 0.4rem; color: rgba(255,255,255,0.85); }
@media (max-width: 720px) { .atr-counters__grid { grid-template-columns: repeat(2, 1fr); } }

/* ---------- CTA ---------- */
.atr-cta { background: linear-gradient(110deg, var(--atr-primary-dark), var(--atr-primary)); color: #fff; padding: clamp(2.5rem, 5vw, 4rem) 0; }
.atr-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.atr-cta h2 { color: #fff; margin-bottom: 0.3rem; }
.atr-cta p { margin: 0; color: rgba(255,255,255,0.85); max-width: 56ch; }
.atr-cta .atr-actions { margin: 0; }

/* ---------- FAQ ---------- */
.atr-faq__list { display: grid; gap: 0.75rem; }
.atr-faq__item { background: #fff; border: 1px solid var(--atr-line); border-radius: var(--atr-radius-sm); padding: 0 1.25rem; }
.atr-faq__item summary { cursor: pointer; list-style: none; padding: 1rem 2rem 1rem 0; font-weight: 600; color: var(--atr-primary-dark); position: relative; }
.atr-faq__item summary::-webkit-details-marker { display: none; }
.atr-faq__item summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: var(--atr-primary); }
.atr-faq__item[open] summary::after { content: "−"; }
.atr-faq__answer { padding: 0 0 1.1rem; color: var(--atr-muted); }
.atr-faq__answer p:last-child { margin-bottom: 0; }

/* ---------- Avis / clients ---------- */
.atr-reviews__widget { max-width: 1040px; margin-inline: auto; }
/* Logos : cases identiques, logo centré et contenu dans la case, gris discret. */
.atr-clients__row { margin-top: 1rem; }
.atr-clients__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 1.25rem 2rem; align-items: center; }
.atr-clients__list[aria-hidden="true"] { display: none; }
.atr-clients__logo { height: 52px; display: flex; align-items: center; justify-content: center; }
@media (max-width: 1100px) { .atr-clients__list { grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: 720px; margin-inline: auto; } }
.atr-clients__logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; filter: grayscale(1); opacity: 0.6; transition: filter 0.2s, opacity 0.2s; }
.atr-clients__logo img:hover { filter: none; opacity: 1; }
@media (max-width: 760px) {
  /* Mobile : une seule ligne qui défile doucement, au lieu d'un tas de logos sur 4 lignes. */
  .atr-clients__row { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
  .atr-clients__track { display: flex; width: max-content; animation: atr-marquee 32s linear infinite; }
  .atr-clients__list, .atr-clients__list[aria-hidden="true"] { display: flex; flex-wrap: nowrap; gap: 0; }
  .atr-clients__logo { flex: none; width: 96px; height: 44px; margin-right: 2rem; }
  .atr-clients__logo img { opacity: 0.55; }
}
@keyframes atr-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  /* Sans animation : bandeau qu'on fait glisser au doigt. */
  .atr-clients__row { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-mask-image: none; mask-image: none; }
  .atr-clients__track { animation: none; }
  .atr-clients__list[aria-hidden="true"] { display: none; }
  .atr-clients__logo { scroll-snap-align: start; }
}

/* ---------- Secteurs ---------- */
.atr-sectors__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.25rem; }
.atr-sector { display: block; position: relative; border-radius: var(--atr-radius); overflow: hidden; background: var(--atr-primary-dark); color: #fff; text-decoration: none; aspect-ratio: 3/4; }
.atr-sector img, .atr-sector__ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.55; transition: transform 0.3s; }
.atr-sector:hover img { transform: scale(1.05); }
.atr-sector__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.1rem; background: linear-gradient(transparent, rgba(19,60,25,0.95)); }
.atr-sector__body h3 { color: #fff; font-size: 1.2rem; margin: 0 0 0.2rem; }
.atr-sector__body p { margin: 0; font-size: 0.85rem; color: rgba(255,255,255,0.8); }
@media (max-width: 960px) { .atr-sectors__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .atr-sectors__grid { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Fiches détaillées (nuisibles, phases d’intervention) ---------- */
.atr-details__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem; }
.atr-details__card { position: relative; background: #fff; border: 1px solid var(--atr-line); border-radius: var(--atr-radius); padding: 1.6rem 1.4rem 1.4rem; }
.atr-details__card h3 { font-size: 1.2rem; margin: 0 0 0.5rem; }
.atr-details__card p { margin: 0; color: var(--atr-muted); font-size: 0.95rem; }
.atr-details__card .atr-checklist { margin-top: 0.9rem; }
.atr-details__card .atr-checklist li { font-size: 0.9rem; }
.atr-details--phases .atr-details__card { padding-top: 2.1rem; }
.atr-details__num { position: absolute; top: -18px; left: 1.4rem; width: 36px; height: 36px; border-radius: 50%; background: var(--atr-primary); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.atr-details--phases { overflow: visible; }

/* ---------- Deux colonnes de points (causes / conséquences, risques) ---------- */
.atr-twocol__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.atr-twocol__col { background: #fff; border: 1px solid var(--atr-line); border-radius: var(--atr-radius); padding: 1.6rem 1.5rem; }
.atr-twocol__col h3 { font-size: 1.15rem; margin: 0 0 0.75rem; color: var(--atr-primary-dark); }
.atr-twocol__col .atr-checklist { margin-top: 0; }
@media (max-width: 760px) { .atr-twocol__grid { grid-template-columns: 1fr; } }

/* ---------- Ce que comprend la prestation ---------- */
.atr-checklist--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem 2rem; }
@media (max-width: 660px) { .atr-checklist--cols { grid-template-columns: 1fr; } }

/* ---------- Galerie ---------- */
.atr-gallery__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.atr-gallery__item { margin: 0; border-radius: var(--atr-radius); overflow: hidden; background: var(--atr-primary-light); }
.atr-gallery__item img { display: block; width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform 0.3s; }
.atr-gallery__item:hover img { transform: scale(1.04); }

/* ---------- Zone d’intervention ---------- */
.atr-zone__list { list-style: none; margin: 0 auto; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; max-width: 900px; }
.atr-zone__list li { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 1rem; border-radius: 999px; background: #fff; border: 1px solid var(--atr-line); font-size: 0.92rem; font-weight: 500; color: var(--atr-primary-dark); }
.atr-zone__list svg { width: 16px; height: 16px; fill: var(--atr-primary); flex: none; }

/* ---------- Certifications ---------- */
.atr-certs__list { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.25rem; max-width: 1040px; }
.atr-certs__item { background: #fff; border: 1px solid var(--atr-line); border-radius: var(--atr-radius); padding: 1.5rem 1.25rem; text-align: center; }
.atr-certs__link { display: block; color: inherit; text-decoration: none; }
.atr-certs__media { display: flex; align-items: center; justify-content: center; height: 96px; margin-bottom: 1rem; }
.atr-certs__media img { max-height: 96px; max-width: 200px; width: auto; height: auto; object-fit: contain; }
.atr-certs__logo-text { font-family: var(--atr-serif); font-size: 1.5rem; color: var(--atr-primary-dark); font-weight: 700; }
.atr-certs__title { font-size: 1.2rem; margin: 0 0 0.4rem; }
.atr-certs__desc { margin: 0; font-size: 0.9rem; color: var(--atr-muted); }
.atr-certs__meta { margin: 0.6rem 0 0; font-size: 0.78rem; font-weight: 600; color: var(--atr-primary); }
.atr-certs--strip { display: flex; align-items: center; gap: 0.75rem 1.25rem; flex-wrap: wrap; }
.atr-certs__logo { display: inline-flex; align-items: center; justify-content: center; height: 52px; padding: 6px 10px; border-radius: 8px; background: #fff; text-decoration: none; }
.atr-certs__logo img { max-height: 40px; width: auto; max-width: 140px; object-fit: contain; }
.atr-certs__logo .atr-certs__logo-text { font-size: 0.85rem; font-family: var(--atr-sans); }

/* ---------- À propos ---------- */
.atr-about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.atr-video { position: relative; border-radius: var(--atr-radius); overflow: hidden; box-shadow: var(--atr-shadow); aspect-ratio: 16/9; background: #000; }
.atr-video iframe, .atr-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.atr-checklist { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 0.6rem; }
.atr-checklist li { display: flex; gap: 0.6rem; align-items: flex-start; }
.atr-checklist svg { width: 20px; height: 20px; fill: var(--atr-primary); flex: none; margin-top: 0.15rem; }
@media (max-width: 900px) { .atr-about__grid { grid-template-columns: 1fr; } }

/* ---------- Service : contenu + aside ---------- */
.atr-service-content__grid, .atr-single__grid, .atr-devis-page__grid, .atr-contact__grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 3rem; align-items: start; }
.atr-service-content__aside, .atr-single__aside, .atr-devis-page__aside, .atr-contact__aside { position: sticky; top: calc(var(--atr-header-h) + var(--atr-adminbar) + 1rem); display: grid; gap: 1.25rem; }
.atr-why { background: var(--atr-primary-light); border-radius: var(--atr-radius); padding: 1.4rem; }
.atr-why h3 { margin-bottom: 0.6rem; }
.atr-aside-cta { background: var(--atr-primary-dark); color: #fff; border-radius: var(--atr-radius); padding: 1.4rem; display: grid; gap: 0.6rem; }
.atr-aside-cta p { margin: 0; }
.atr-aside-cta .atr-eyebrow { color: var(--atr-accent-on-dark); margin: 0; }
.atr-aside-info { background: #fff; border: 1px solid var(--atr-line); border-radius: var(--atr-radius); padding: 1.4rem; }
.atr-aside-info h4 { margin-bottom: 0.6rem; }
.atr-aside-terms h4 { margin-bottom: 0.5rem; font-size: 1rem; }
.atr-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.atr-tag { display: inline-block; padding: 0.35rem 0.75rem; border-radius: 999px; background: var(--atr-primary-light); color: var(--atr-primary-dark); font-size: 0.82rem; font-weight: 500; text-decoration: none; }
.atr-tag:hover { background: var(--atr-primary); color: #fff; }
.atr-cities__text { margin: 0; font-size: 0.9rem; color: var(--atr-muted); text-align: center; }
.atr-contact__list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.6rem; }
.atr-contact__list li { display: flex; gap: 0.6rem; align-items: flex-start; }
.atr-contact__list svg { width: 18px; height: 18px; fill: var(--atr-primary); flex: none; margin-top: 0.2rem; }
.atr-hours { width: 100%; font-size: 0.9rem; margin-bottom: 1rem; border-collapse: collapse; }
.atr-hours th { text-align: left; font-weight: 600; padding: 0.3rem 0; color: var(--atr-primary-dark); }
.atr-hours td { padding: 0.3rem 0; color: var(--atr-muted); text-align: right; }
@media (max-width: 960px) {
  .atr-service-content__grid, .atr-single__grid, .atr-devis-page__grid, .atr-contact__grid { grid-template-columns: 1fr; }
  .atr-service-content__aside, .atr-single__aside, .atr-devis-page__aside, .atr-contact__aside { position: static; }
}

/* ---------- Reveal ---------- */
@media (prefers-reduced-motion: no-preference) {
  .atr-reveal { opacity: 0; transform: translateY(14px); transition: opacity 0.5s ease, transform 0.5s ease; }
  .atr-reveal.is-visible { opacity: 1; transform: none; }
}

/* ==========================================================================
   Finitions 0.6 : bandeaux verts illustrés, centrage, grilles, mobile
   ========================================================================== */

/* Bandeaux verts (CTA de fin de page, pied de page) : photo en transparence sous le vert. */
.atr-has-bg { position: relative; isolation: isolate; overflow: hidden; }
.atr-has-bg::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background-image: var(--atr-cta-bg, none); background-size: cover; background-position: center 35%;
  filter: grayscale(0.35); transform: scale(1.04);
}
.atr-has-bg::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(30, 106, 41, 0.55) 0%, rgba(30, 106, 41, 0) 60%),
    linear-gradient(100deg, rgba(14, 44, 18, 0.95) 0%, rgba(19, 60, 25, 0.88) 45%, rgba(19, 60, 25, 0.74) 100%);
}
.atr-cta.atr-has-bg, .atr-footer__cta.atr-has-bg { background: var(--atr-primary-dark); }
.atr-cta { padding: clamp(3rem, 6vw, 4.75rem) 0; }
.atr-cta h2, .atr-footer__cta h2 { text-wrap: balance; }
.atr-cta .atr-actions, .atr-footer__cta .atr-actions { flex: none; }

/* Chiffres : léger motif pour ne pas laisser un aplat vide. */
.atr-counters { position: relative; overflow: hidden; }
.atr-counters::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(rgba(255,255,255,0.07) 1px, transparent 1.2px);
  background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent);
}
.atr-counters .atr-wrap { position: relative; }
.atr-counter { padding: 0.5rem 0; }
.atr-counter + .atr-counter { border-left: 1px solid rgba(255,255,255,0.12); }
@media (max-width: 720px) {
  .atr-counter + .atr-counter { border-left: 0; }
  .atr-counter:nth-child(even) { border-left: 1px solid rgba(255,255,255,0.12); }
}

/* Texte éditorial : colonne centrée (plus de bloc collé à gauche avec un grand vide à droite). */
.atr-editorial .atr-prose { margin-inline: auto; }
.atr-prose svg:not([width]) { width: 1.2em; height: 1.2em; display: inline-block; vertical-align: -0.2em; }
.atr-prose img { height: auto; }
.atr-prose figure { margin: 2rem 0; }

/* Cartes services : la grille s'adapte au nombre de cartes (3 « autres prestations » centrées). */
.atr-services__grid { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.atr-services__grid:has(> :nth-child(3):last-child) { max-width: 920px; margin-inline: auto; }
.atr-service-card__img { overflow: hidden; }
.atr-service-card__img img { transition: transform 0.5s ease; }
.atr-service-card:hover .atr-service-card__img img { transform: scale(1.05); }
.atr-service-card h3 { transition: color 0.2s; }
.atr-service-card:hover h3 { color: var(--atr-primary); }

/* Secteurs : en mobile, la 5e carte occupe toute la largeur au lieu de laisser un trou. */
@media (max-width: 560px) {
  .atr-sectors__grid > :last-child:nth-child(odd) { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
}
.atr-sector__body { transition: padding 0.25s ease; }
.atr-sector:hover .atr-sector__body { padding-bottom: 1.4rem; }

/* Bandeau de réassurance : icône et texte alignés en haut, textes plus lisibles. */
.atr-usp__item { align-items: flex-start; }
.atr-usp__item strong { line-height: 1.3; margin-bottom: 0.15rem; }
.atr-usp__item span { line-height: 1.45; display: block; }

/* Encarts verts latéraux : boutons pleine largeur, même hauteur. */
.atr-aside-cta { padding: 1.5rem; gap: 0.75rem; }
.atr-aside-cta .atr-btn { width: 100%; }
.atr-aside-cta p:not(.atr-eyebrow) { color: rgba(255,255,255,0.88); }

/* Avis : moins de vide sous le widget. */
.atr-reviews .atr-section__head { margin-bottom: 1.5rem; }
.atr-reviews__widget > * { margin-bottom: 0 !important; }

/* Étapes : pastille et carte réagissent au survol. */
.atr-steps__item { transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; }
.atr-steps__item:hover { transform: translateY(-3px); box-shadow: var(--atr-shadow); border-color: transparent; }
.atr-details__card, .atr-certs__item, .atr-twocol__col { transition: transform 0.25s ease, box-shadow 0.25s ease; }
.atr-details__card:hover, .atr-certs__item:hover { transform: translateY(-3px); box-shadow: var(--atr-shadow); }

/* Mobile : boutons d'actions empilés, pleine largeur, centrés. */
@media (max-width: 600px) {
  .atr-actions { flex-direction: column; align-items: stretch; }
  .atr-actions .atr-btn { width: 100%; }
  .atr-hero .atr-actions { align-items: flex-start; }
  .atr-hero .atr-actions .atr-btn { width: auto; }
  .atr-cta__inner { gap: 1.5rem; }
  .atr-cta .atr-actions, .atr-footer__cta .atr-actions { width: 100%; }
  .atr-section__head { margin-bottom: 1.75rem; }
}

/* Cartes blanches posées sur un fond sombre (formulaire du hero) : on revient aux boutons verts. */
.atr-hero--bg .atr-quote .atr-btn--accent, .atr-section--dark .atr-card .atr-btn--accent {
  --btn-bg: var(--atr-accent); --btn-fg: #fff; --btn-bd: var(--atr-accent);
  --btn-bg-h: var(--atr-accent-dark); --btn-fg-h: #fff; --btn-bd-h: var(--atr-accent-dark);
}
.atr-hero--bg .atr-quote .atr-btn--ghost, .atr-section--dark .atr-card .atr-btn--ghost {
  --btn-bg: transparent; --btn-fg: var(--atr-primary); --btn-bd: var(--atr-primary);
  --btn-bg-h: var(--atr-primary); --btn-fg-h: #fff; --btn-bd-h: var(--atr-primary);
}
.atr-quote .atr-btn--lg { gap: 0.6rem; }

/* Deux sections de même fond qui se suivent : un seul espacement entre elles. */
.atr-section--soft + .atr-section--soft { padding-top: 0; }
@media (max-width: 600px) { .atr-quote .atr-btn--lg { padding-inline: 1.1rem; font-size: 1rem; } }

/* Bandeaux compacts (devis, contact, pages éditoriales) avec fond photo/vidéo. */
.atr-hero--compact.atr-hero--bg .atr-hero__inner { padding: clamp(2.75rem, 6vw, 4.5rem) 0; }
.atr-hero--compact.atr-hero--bg .atr-hero__bg::after { background: linear-gradient(100deg, rgba(12, 38, 16, 0.9) 0%, rgba(12, 38, 16, 0.74) 50%, rgba(12, 38, 16, 0.45) 100%); }
.atr-hero--compact .atr-hero__usp { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }

/* Photo fixe en fond de hero : léger zoom lent pour garder le bandeau vivant (sauf animations réduites). */
@media (prefers-reduced-motion: no-preference) {
  .atr-hero__bg:not(.atr-hero__bg--slides) > img:only-child { animation: atr-kenburns 22s ease-in-out infinite alternate; transform-origin: 60% 40%; }
}
@keyframes atr-kenburns { from { transform: scale(1); } to { transform: scale(1.08); } }
