/*
Theme Name: AIA
Author: AIA
Description: Thème bloc sur mesure de AIA — maquette convertie en blocs Gutenberg natifs, 100 % éditable.
Version: 1.0.4
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aia
Tags: block-theme, full-site-editing, business
*/

/* =========================================================
   AIA — Agence Internationale d'Affaires — maquette
   Registre relevé sur la référence (BuildCraft) : une sans-serif
   géométrique (Space Grotesk), un accent bleu, blanc froid + bandes
   noires, photos bord à bord, boutons pilule à pastille ronde,
   titres de section centrés avec « — étiquette — ».
   ========================================================= */

:root {
  --bleu: #1f5fa6;          /* bleu AIA : accent unique */
  --bleu-fonce: #0b2a52;
  --bleu-clair: #8cb8ff;    /* accent lisible sur fond sombre */
  --orange: #f39200;        /* second ton du logo : signature seulement */
  --noir: #0e0f12;
  --encre: #15171c;
  --gris: #7c8089;
  --ligne: #e6e8ec;
  --blanc: #ffffff;

  --police: "Space Grotesk", system-ui, sans-serif;
  --max: 1240px;
  --gut: clamp(20px, 4vw, 56px);
  --r: 10px;
  --ease: cubic-bezier(.2, .7, .1, 1);

  --sig: var(--bleu); --sig-fonce: var(--bleu-fonce); --sig-2: var(--orange);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--blanc); color: var(--encre);
  font-family: var(--police); font-size: 15px; line-height: 1.6;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
.wp-site-blocks > header, .wp-site-blocks > footer { margin: 0; }
.entry-content > * { margin-top: 0; margin-bottom: 0; }
h1, h2, h3, h4, p, figure, ul { margin: 0; }
h1, h2, h3 { font-weight: 500; letter-spacing: -.02em; line-height: 1.12; }
.wp-block-image { margin: 0; }
.wp-block-buttons { margin: 0; }

/* ---------- En-têtes de section : « — étiquette — » + titre centré ---------- */
.etiquette { font-size: 13px; color: var(--encre); letter-spacing: .01em; margin-bottom: 14px; }
.etiquette--clair { color: rgba(255,255,255,.85); }
.tete { text-align: center; max-width: 720px; margin: 0 auto 56px; display: flex; flex-direction: column; align-items: center; }
.titre { font-size: clamp(28px, 2.8vw, 40px); }
.tete__txt { margin-top: 16px; font-size: 14px; color: var(--gris); max-width: 560px; }
.titre em, .apropos__titre em, .final__title em, .lead em { font-style: normal; color: var(--bleu); }

/* ---------- Bouton pilule + pastille ronde (référence = signature Adéma) ---------- */
.btn .wp-block-button__link {
  display: inline-flex; align-items: center; gap: 14px;
  background: var(--blanc); color: var(--encre);
  border-radius: 999px; padding: 7px 7px 7px 22px;
  font-family: var(--police); font-size: 14px; font-weight: 500;
  text-decoration: none; border: 0;
  transition: background .25s, color .25s;
}
.btn .wp-block-button__link::after {
  content: ""; width: 34px; height: 34px; border-radius: 50%; flex: none;
  background: var(--noir) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.5 7.5 7.5 2.5M3.5 2.5h4v4' fill='none' stroke='white' stroke-width='1.2'/%3E%3C/svg%3E") center / 12px no-repeat;
  transition: transform .4s var(--ease), background-color .25s;
}
.btn .wp-block-button__link:hover::after { transform: rotate(45deg); background-color: var(--bleu); }
.btn--sombre .wp-block-button__link { background: var(--noir); color: var(--blanc); }
.btn--sombre .wp-block-button__link::after { background-color: var(--blanc); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.5 7.5 7.5 2.5M3.5 2.5h4v4' fill='none' stroke='%230e0f12' stroke-width='1.2'/%3E%3C/svg%3E"); }
.btn--sm .wp-block-button__link { padding: 5px 5px 5px 18px; font-size: 13.5px; gap: 12px; }
.btn--sm .wp-block-button__link::after { width: 30px; height: 30px; }

/* =========================================================
   NAVIGATION (posée sur la photo d'ouverture)
   ========================================================= */
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 50; padding: 0 var(--gut); transition: background .35s, box-shadow .35s; }
.nav__bar {
  max-width: var(--max); margin: 0 auto; height: 92px;
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 30px;
  color: var(--blanc); transition: height .35s, color .35s;
}
.nav.is-scrolled { background: rgba(255,255,255,.96); box-shadow: 0 1px 0 var(--ligne); }
.nav.is-scrolled .nav__bar { height: 72px; color: var(--encre); }
.logo { background: var(--blanc); border-radius: 999px; padding: 7px 16px; }
.logo img { height: 38px; width: auto; }
.nav__links { justify-self: center; font-size: 14.5px; }
.wp-block-navigation.nav__links .wp-block-navigation__container { display: flex; gap: 30px; list-style: none; margin: 0; padding: 0; }
.nav__links .wp-block-navigation-item__content { color: inherit; text-decoration: none; opacity: .9; transition: opacity .2s; }
.nav__links .wp-block-navigation-item__content:hover,
.nav__links .current-menu-item > .wp-block-navigation-item__content { opacity: 1; }
.nav__links .current-menu-item > .wp-block-navigation-item__content::after { content: ""; display: block; height: 1.5px; margin-top: 3px; background: currentColor; }
.wp-block-navigation.nav__links .wp-block-navigation__responsive-container.is-menu-open { background-color: var(--blanc) !important; color: var(--encre) !important; padding: 96px var(--gut) 40px; }
.wp-block-navigation.nav__links .is-menu-open .wp-block-navigation__container { flex-direction: column; gap: 6px; }
.wp-block-navigation.nav__links .is-menu-open .wp-block-navigation-item__content { font-size: 26px; padding: 8px 0; opacity: 1; }
.nav.is-scrolled .nav__cta .wp-block-button__link { background: var(--noir); color: var(--blanc); }
.nav.is-scrolled .nav__cta .wp-block-button__link::after { background-color: var(--blanc); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.5 7.5 7.5 2.5M3.5 2.5h4v4' fill='none' stroke='%230e0f12' stroke-width='1.2'/%3E%3C/svg%3E"); }

/* =========================================================
   HÉRO — grande photo, titre à gauche, badge rond qui tourne
   ========================================================= */
.hero { position: relative; min-height: max(680px, min(100svh, 920px)); color: var(--blanc); overflow: hidden; display: flex; }
.hero__photo { position: absolute; inset: 0; }
.hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8,32,66,.88) 0%, rgba(11,42,82,.6) 42%, rgba(11,42,82,.05) 78%), linear-gradient(0deg, rgba(14,15,18,.85) 0%, rgba(14,15,18,0) 32%), linear-gradient(180deg, rgba(31,95,166,.55) 0%, rgba(31,95,166,0) 55%); }
.hero__photo img { filter: saturate(1.15) contrast(1.05); }
.hero__inner { position: relative; z-index: 1; width: 100%; max-width: var(--max); margin: 0 auto; padding: 190px var(--gut) 48px; display: flex; flex-direction: column; justify-content: space-between; gap: 50px; }
.hero__texte { max-width: 640px; display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.hero__title { font-size: clamp(42px, 5.4vw, 72px); font-weight: 600; line-height: 1.05; letter-spacing: -.03em; }
.hero__intro { font-size: 15.5px; max-width: 520px; opacity: .92; }
.hero__bas { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; }
.confiance {
  display: flex; align-items: center; gap: 14px; padding: 10px 22px 10px 12px;
  border-radius: 999px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}
.confiance__n { width: 46px; height: 46px; border-radius: 50%; background: var(--blanc); color: var(--bleu); display: grid; place-items: center; font-weight: 700; font-size: 16px; }
.confiance__t { font-size: 12.5px; line-height: 1.35; }

/* Badge rond : le script dispose les lettres sur un cercle */
.badge-rond { position: relative; width: 132px; height: 132px; flex: none; font-size: 11px; letter-spacing: .1em; font-weight: 600; text-transform: uppercase; color: var(--blanc); border-radius: 50%; border: 1px solid rgba(255,255,255,.35); background: rgba(14,15,18,.25); backdrop-filter: blur(6px); }
.badge-rond::after { content: ""; position: absolute; inset: 42px; border-radius: 50%; background: var(--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.5 7.5 7.5 2.5M3.5 2.5h4v4' fill='none' stroke='%231f5fa6' stroke-width='1.1'/%3E%3C/svg%3E") center / 18px no-repeat; }
.badge-rond .l { position: absolute; left: 50%; top: 6px; height: 60px; transform-origin: 0 60px; }
.js .badge-rond { color: transparent; }
.js .badge-rond .l { color: var(--blanc); }
.badge-rond.tourne { animation: tourne 22s linear infinite; }
.badge-rond.tourne::after { animation: tourne 22s linear infinite reverse; }
@keyframes tourne { to { transform: rotate(360deg); } }

/* =========================================================
   À PROPOS — bande noire, texte centré, deux photos décalées
   ========================================================= */
.apropos { background: var(--noir); color: var(--blanc); padding: 120px var(--gut) 0; overflow: hidden; }
.apropos__inner { max-width: 760px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; }
.apropos__titre { font-size: clamp(28px, 3vw, 42px); margin-bottom: 20px; }
.apropos__titre em { color: var(--bleu-clair); }
.apropos__txt { font-size: 14.5px; color: rgba(255,255,255,.7); max-width: 640px; margin-bottom: 30px; }
.apropos__photos { max-width: 920px; margin: 70px auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: start; }
.apropos__img img { width: 100%; aspect-ratio: 4 / 3.3; object-fit: cover; border-radius: var(--r) var(--r) 0 0; }
.apropos__photos .apropos__img--a { margin-top: 50px; }

/* =========================================================
   ACTIVITÉS — trois cartes photo, la centrale plus haute
   ========================================================= */
.activites { padding: 120px var(--gut); }
.activites__grille { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 22px; align-items: center; }
.activite { position: relative; border-radius: var(--r); overflow: hidden; color: var(--blanc); min-height: 420px; display: flex; }
.activite--centre { min-height: 500px; }
.activite__img { position: absolute; inset: 0; }
.activite__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.activite:hover .activite__img img { transform: scale(1.04); }
.activite__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14,15,18,.88) 0%, rgba(14,15,18,.25) 55%, rgba(14,15,18,0) 100%); }
.activite__txt { position: relative; z-index: 1; margin-top: auto; padding: 26px; width: 100%; }
.activite__t { font-size: 22px; margin-bottom: 14px; }
.activite__t a { text-decoration: none; }
.activite__t a::before { content: ""; position: absolute; inset: 0; z-index: 2; }
.activite__t a::after { content: ""; display: inline-block; width: 28px; height: 28px; margin-left: 10px; vertical-align: middle; border-radius: 50%; background: var(--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.5 7.5 7.5 2.5M3.5 2.5h4v4' fill='none' stroke='%230e0f12' stroke-width='1.2'/%3E%3C/svg%3E") center / 10px no-repeat; transition: transform .4s var(--ease); }
.activite:hover .activite__t a::after { transform: rotate(45deg); }
.activite__liste { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; font-size: 13px; color: rgba(255,255,255,.85); }
.activite__liste li::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: var(--bleu-clair); vertical-align: middle; }

/* =========================================================
   DIRIGEANT — carte photo sombre + mot
   ========================================================= */
.dirigeant { padding: 0 var(--gut) 120px; }
.dirigeant__grille { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 340px 1fr; gap: 60px; align-items: center; }
.carte-dg { position: relative; border-radius: var(--r); overflow: hidden; background: #e9eef5; }
.carte-dg__img img { width: 100%; aspect-ratio: 4 / 4.6; object-fit: cover; object-position: top; }
.carte-dg__nom, .carte-dg__role { position: absolute; left: 0; right: 0; text-align: center; color: var(--blanc); z-index: 1; }
.carte-dg__nom { bottom: 38px; font-size: 17px; font-weight: 600; }
.carte-dg__role { bottom: 16px; font-size: 12.5px; opacity: .8; }
.carte-dg::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 45%; background: linear-gradient(0deg, rgba(14,15,18,.9), rgba(14,15,18,0)); }
.dirigeant__mot { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.citation { font-size: clamp(20px, 1.9vw, 26px); line-height: 1.4; letter-spacing: -.01em; }
.dirigeant__txt { font-size: 14.5px; color: var(--gris); }

/* =========================================================
   ATOUTS — section pleine couleur de marque (signature)
   ========================================================= */
.atouts { background: radial-gradient(110% 120% at 85% 0%, #2c74c4 0%, var(--bleu) 40%, var(--bleu-fonce) 100%); color: var(--blanc); padding: 110px var(--gut); }
.atouts .titre { color: var(--blanc); }
.atouts__grille { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.atout { border: 1px solid rgba(255,255,255,.2); border-radius: var(--r); padding: 30px; background: rgba(255,255,255,.06); }
.atout__n { font-size: 13px; color: var(--bleu-clair); margin-bottom: 40px; }
.atout__t { font-size: 20px; margin-bottom: 10px; }
.atout__p { font-size: 14px; color: rgba(255,255,255,.75); }

/* =========================================================
   FAQ — questions à filets, pastille à flèche
   ========================================================= */
.faq { padding: 120px var(--gut); }
.faq__liste { max-width: 820px; margin: 0 auto; }
.question { border-bottom: 1px solid var(--ligne); }
.question summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0; font-size: 16px; font-weight: 500; }
.question summary::-webkit-details-marker { display: none; }
.question summary::after { content: ""; flex: none; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--encre); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.5 7.5 7.5 2.5M3.5 2.5h4v4' fill='none' stroke='%2315171c' stroke-width='1.1'/%3E%3C/svg%3E") center / 10px no-repeat; transition: transform .35s var(--ease), background-color .25s; }
.question[open] summary::after { transform: rotate(90deg); background-color: var(--noir); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.5 7.5 7.5 2.5M3.5 2.5h4v4' fill='none' stroke='white' stroke-width='1.1'/%3E%3C/svg%3E"); }
.question p { padding: 0 50px 22px 0; font-size: 14.5px; color: var(--gris); }

/* =========================================================
   APPEL FINAL + PIED DE PAGE
   ========================================================= */
.final { position: relative; min-height: 560px; display: grid; place-items: center; color: var(--blanc); overflow: hidden; }
.final__photo { position: absolute; inset: 0; }
.final__photo img { width: 100%; height: 100%; object-fit: cover; }
.final__photo::after { content: ""; position: absolute; inset: 0; background: rgba(11,42,82,.72); }
.final__inner { position: relative; z-index: 1; text-align: center; max-width: 680px; padding: 110px var(--gut); display: flex; flex-direction: column; align-items: center; }
.final__title { font-size: clamp(30px, 3.4vw, 48px); margin-bottom: 18px; }
.final__title em { color: var(--bleu-clair); }
.final__txt { font-size: 15px; opacity: .88; margin-bottom: 30px; max-width: 520px; }

.foot { background: var(--noir); color: #c9ccd3; padding: 80px var(--gut) 34px; }
.foot__top, .foot__bottom { max-width: var(--max); margin: 0 auto; }
.foot__top { display: flex; justify-content: space-between; gap: 50px; padding-bottom: 70px; }
.foot__marque { max-width: 320px; display: flex; flex-direction: column; gap: 18px; }
.foot__logo-img { background: var(--blanc); border-radius: 999px; padding: 8px 18px; align-self: flex-start; }
.foot__logo-img img { height: 40px; width: auto; }
.foot__intro { font-size: 13.5px; }
.foot__cols { display: flex; gap: 70px; }
.foot__col { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; }
.foot__h { color: var(--blanc); font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.foot__list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.foot__list a, .foot__c a { text-decoration: none; }
.foot__list a:hover, .foot__c a:hover { color: var(--blanc); }
.foot__bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; border-top: 1px solid #262830; padding-top: 30px; }
.foot__logo { font-size: clamp(80px, 14vw, 200px); font-weight: 700; letter-spacing: -.05em; line-height: .78; color: var(--blanc); }
.foot__droite { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.foot__copy { font-size: 12px; color: #80838c; }

/* =========================================================
   PAGES INTÉRIEURES
   ========================================================= */
.phero { position: relative; min-height: 520px; height: min(66svh, 620px); color: var(--blanc); display: flex; overflow: hidden; }
.phero__photo { position: absolute; inset: 0; }
.phero__photo img { width: 100%; height: 100%; object-fit: cover; }
.phero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,42,82,.78) 0%, rgba(11,42,82,.3) 60%, rgba(11,42,82,.1) 100%), linear-gradient(0deg, rgba(14,15,18,.6), rgba(14,15,18,0) 40%); }
.phero__inner { position: relative; z-index: 1; width: 100%; max-width: var(--max); margin: 0 auto; padding: 150px var(--gut) 60px; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 18px; }
.phero__title { font-size: clamp(38px, 4.6vw, 62px); font-weight: 600; letter-spacing: -.03em; line-height: 1.05; max-width: 780px; }
.phero__txt { max-width: 560px; font-size: 15px; opacity: .9; }

.bloc { max-width: var(--max); margin: 0 auto; padding: 110px var(--gut); display: grid; grid-template-columns: 1fr 1.2fr; gap: 70px; align-items: center; }
.bloc--inverse .bloc__img { order: 2; }
.bloc__img img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: var(--r); }
.bloc__txt { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.bloc__txt .etiquette { margin-bottom: 0; }
.lead { font-size: clamp(19px, 1.7vw, 23px); line-height: 1.45; letter-spacing: -.01em; }
.bloc__txt p:not(.lead):not(.etiquette) { font-size: 15px; color: #4b4f58; }

.prestations { background: #f4f6f9; padding: 110px var(--gut); }
.prestations__grille { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.presta { background: var(--blanc); border-radius: var(--r); padding: 28px 24px; border: 1px solid var(--ligne); transition: transform .35s var(--ease), box-shadow .35s; }
.presta:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -24px rgba(11,42,82,.35); }
.presta__n { width: 40px; height: 40px; border-radius: 50%; background: var(--noir); color: var(--blanc); display: grid; place-items: center; font-size: 13px; margin-bottom: 34px; }
.presta__t { font-size: 18px; margin-bottom: 10px; }
.presta__p { font-size: 13.5px; color: var(--gris); }

.galerie { padding: 110px var(--gut); }
.galerie__grille { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: 1fr 1.4fr 1fr; gap: 18px; align-items: center; }
.galerie__img img { width: 100%; aspect-ratio: 3 / 3.6; object-fit: cover; border-radius: var(--r); }
.galerie__img--centre img { aspect-ratio: 4 / 3.9; }

/* Contact */
.contact { max-width: var(--max); margin: 0 auto; padding: 110px var(--gut); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 70px; }
.contact__g { display: flex; flex-direction: column; gap: 14px; }
.contact__intro { font-size: 15px; color: var(--gris); margin-bottom: 18px; }
.voies { display: flex; flex-direction: column; border-top: 1px solid var(--ligne); }
.voie { padding: 18px 0; border-bottom: 1px solid var(--ligne); display: grid; grid-template-columns: 120px 1fr; gap: 20px; font-size: 15px; }
.voie__l { font-size: 13px; color: var(--gris); padding-top: 2px; }
.voie__v a { text-decoration: none; }
.voie__v a:hover { color: var(--bleu); }
.contact__d { background: var(--noir); color: var(--blanc); border-radius: var(--r); padding: 40px; }
.contact__d .titre { font-size: 26px; margin-bottom: 26px; }

.form { display: flex; flex-direction: column; gap: 22px; }
.form__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 22px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field__l { font-size: 12.5px; color: rgba(255,255,255,.65); }
.field input, .field textarea { font: inherit; width: 100%; min-width: 0; font-size: 15px; color: var(--blanc); border: 0; border-bottom: 1px solid rgba(255,255,255,.3); border-radius: 0; padding: 8px 0 10px; background: transparent; outline: none; transition: border-color .2s; }
.field textarea { resize: vertical; min-height: 110px; }
.field input:focus, .field textarea:focus { border-color: var(--bleu-clair); }
.field.is-error input, .field.is-error textarea { border-color: #ff6b6b; }
.choice { display: flex; flex-wrap: wrap; gap: 8px; }
.choice label { cursor: pointer; }
.choice input { position: absolute; opacity: 0; pointer-events: none; }
.choice label > span { display: inline-block; padding: 8px 15px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; font-size: 13px; transition: all .2s; }
.choice input:checked + span { background: var(--blanc); color: var(--noir); border-color: var(--blanc); }
/* Contact Form 7 : enveloppes des boutons radio et message de retour */
.choice .wpcf7-form-control-wrap, .choice .wpcf7-form-control { display: contents; }
.choice .wpcf7-list-item { margin: 0; }
.contact__d .wpcf7-response-output { margin: 18px 0 0; padding: 10px 14px; border-radius: 8px; font-size: 13px; }
.contact__d .wpcf7-not-valid-tip { font-size: 12px; color: #ff8a8a; margin-top: 4px; }
.contact__d .wpcf7-spinner { display: none; }
.form__group { border: 0; padding: 0; margin: 0; }
.form__group legend { font-size: 12.5px; color: rgba(255,255,255,.65); padding: 0; margin-bottom: 12px; }
.form__foot { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.form__submit { font-family: var(--police); font-size: 14px; font-weight: 500; background: var(--blanc); color: var(--noir); border: 0; border-radius: 999px; padding: 14px 26px; cursor: pointer; transition: background .2s; }
.form__submit:hover { background: var(--bleu-clair); }
.form__note { font-size: 12px; color: rgba(255,255,255,.55); max-width: 280px; }
.form__ok { display: none; font-size: 15px; color: var(--bleu-clair); }
#contact-form.is-sent .form__ok { display: block; }
#contact-form.is-sent .form__foot { display: none; }

/* =========================================================
   SIGNATURE ADÉMA (sobre) — progression, révélation, crédit
   ========================================================= */
.nav::after { content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: calc(var(--defil, 0) * 100%); background: linear-gradient(90deg, var(--sig), var(--sig-2)); }
.js .mots .m { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.js .mots .m > span { display: inline-block; transform: translateY(105%); transition: transform .9s var(--ease); transition-delay: calc(var(--i) * 40ms); }
.js .mots.is-in .m > span { transform: none; }
.signature { font-size: 11.5px; }
.signature a { color: #80838c; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.signature a::before { content: ""; width: 7px; height: 7px; background: var(--sig-2); transform: rotate(45deg); }
.signature a:hover { color: var(--blanc); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1080px) {
  .wp-block-navigation.nav__links .wp-block-navigation__container { gap: 18px; font-size: 13.5px; }
  .prestations__grille { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .nav__bar > .wp-block-buttons { display: none; }
  .nav__bar { grid-template-columns: auto 1fr; }
  .nav__links { justify-self: end; }
  .activites__grille, .atouts__grille, .galerie__grille { grid-template-columns: 1fr; }
  .activite, .activite--centre { min-height: 380px; }
  .dirigeant__grille, .bloc, .contact { grid-template-columns: 1fr; gap: 40px; }
  .carte-dg { max-width: 360px; }
  .bloc--inverse .bloc__img { order: 0; }
  .foot__top { flex-direction: column; }
  .foot__cols { flex-wrap: wrap; gap: 40px; }
  .foot__bottom { flex-direction: column; align-items: flex-start; }
  .foot__droite { align-items: flex-start; }
}
@media (max-width: 599px) {
  .hero__inner { padding-top: 140px; }
  .hero__bas { flex-direction: column; align-items: flex-start; }
  .badge-rond { display: none; }
  .apropos { padding-top: 90px; }
  .apropos__photos { grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 50px; }
  .apropos__photos .apropos__img--a { margin-top: 30px; }
  .activites, .faq, .galerie, .prestations { padding: 90px var(--gut); }
  .prestations__grille { grid-template-columns: 1fr; }
  .form__row { grid-template-columns: 1fr; }
  .contact__d { padding: 28px 22px; }
  .voie { grid-template-columns: 1fr; gap: 4px; }
  .activite__liste { grid-template-columns: 1fr; }
}

/* Bouton du menu replié (core/navigation, sous 600 px) */
.nav__links .wp-block-navigation__responsive-container-open { color: inherit; width: 42px; height: 42px; place-items: center; border: 1px solid currentColor; border-radius: 50%; }
.nav__links .wp-block-navigation__responsive-container-open svg { fill: currentColor; width: 20px; height: 20px; }
@media (max-width: 599px) { .nav__links .wp-block-navigation__responsive-container-open { display: grid; } }
/* Maquette locale uniquement : imite le menu replié de core/navigation sous 600 px */
@media (max-width: 599px) {
  .wp-block-navigation.nav__links > .wp-block-navigation__container { display: none; }
  .nav__links:not(:has(.wp-block-navigation__responsive-container))::after {
    content: ""; display: block; width: 42px; height: 42px; border: 1px solid currentColor; border-radius: 50%;
    background: linear-gradient(currentColor, currentColor) center calc(50% - 3px) / 16px 1.5px no-repeat, linear-gradient(currentColor, currentColor) center calc(50% + 3px) / 16px 1.5px no-repeat;
  }
}
@media (prefers-reduced-motion: reduce) { .badge-rond.tourne, .badge-rond.tourne::after { animation: none; } .js .mots .m > span { transform: none; transition: none; } }
