/* Blocs des modèles de page — Aurouze Seine-et-Marne */

/* ---------- 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. */
.asm-hero { position: relative; background: linear-gradient(180deg, var(--asm-cream) 0%, #fff 100%); color: var(--asm-ink); border-bottom: 1px solid var(--asm-line); }
.asm-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; }
.asm-hero--compact .asm-hero__inner { grid-template-columns: 1fr; padding: clamp(2rem, 4vw, 3rem) 0; }
.asm-hero__title { color: var(--asm-primary-dark); margin-bottom: 0.75rem; max-width: 20ch; }
.asm-hero--compact .asm-hero__title { max-width: 28ch; }
.asm-hero__text { font-size: 1.1rem; color: var(--asm-muted); max-width: 52ch; margin-bottom: 0; }
.asm-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; }
.asm-hero__usp li { display: flex; align-items: center; gap: 0.5rem; font-size: 0.95rem; color: var(--asm-ink); }
.asm-hero__usp svg { width: 20px; height: 20px; fill: var(--asm-primary); flex: none; }
.asm-hero__media { margin: 0; border-radius: var(--asm-radius); overflow: hidden; box-shadow: var(--asm-shadow); aspect-ratio: 4/3; }
.asm-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.asm-hero__form .asm-quote { box-shadow: var(--asm-shadow); }
.asm-breadcrumb { margin: 0 0 0.9rem; font-size: 0.82rem; }
.asm-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; color: var(--asm-muted); }
.asm-breadcrumb li + li::before { content: "\203A"; margin-right: 0.5rem; opacity: 0.7; }
.asm-breadcrumb a { color: var(--asm-muted); text-decoration: none; }
.asm-breadcrumb a:hover { color: var(--asm-primary); text-decoration: underline; }
.asm-breadcrumb [aria-current] { color: var(--asm-primary-dark); font-weight: 500; }
@media (max-width: 960px) {
  .asm-hero__inner { grid-template-columns: 1fr; gap: 2rem; }
  .asm-hero__usp { grid-template-columns: 1fr; }
}

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

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

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

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

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

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

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

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

/* ---------- Avis / clients ---------- */
.asm-reviews__widget { max-width: 1040px; margin-inline: auto; }
.asm-clients__row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.5rem 2.5rem; margin-top: 1rem; }
.asm-clients__row img { max-height: 48px; width: auto; filter: grayscale(1); opacity: 0.7; transition: 0.2s; }
.asm-clients__row img:hover { filter: none; opacity: 1; }

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

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

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

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

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

/* ---------- Zone d’intervention ---------- */
.asm-zone__list { list-style: none; margin: 0 auto; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; max-width: 900px; }
.asm-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(--asm-line); font-size: 0.92rem; font-weight: 500; color: var(--asm-primary-dark); }
.asm-zone__list svg { width: 16px; height: 16px; fill: var(--asm-primary); flex: none; }

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

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

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

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