/* Page : nos-services */
[data-mode=day] .hero{background:radial-gradient(130% 110% at 78% 0%,#FFFDFA 0%,#F4EADD 78%);color:var(--ink)}
.hero-visual{display:grid;place-items:center;min-height:360px}
.moon{position:relative;width:min(400px,80%);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;transition:box-shadow .5s,background .5s}
[data-mode=day] .moon{background:#fff;box-shadow:0 0 0 14px rgba(255,255,255,.5),0 30px 70px -30px rgba(224,107,60,.5)}
.motifs-section{position:relative;overflow:hidden;transition:background .5s}
[data-mode=night] .motifs-section{background:radial-gradient(130% 120% at 74% 8%,#2A3236 0%,var(--night) 72%)}
/* Carte cliquable en entier (.serv.serv-photo est un <a>, voir
   page-nos-services.php) : display block pour que le lien occupe toute la
   surface de la carte, comme un <div> ordinaire. .serv:hover (levee + ombre)
   vient deja de commun.css, tag-agnostique, rien a refaire ici. */
.serv.serv-photo{display:block;padding:0;overflow:hidden}
.serv-photo .thumb{aspect-ratio:16/10;overflow:hidden}
.serv-photo .thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.serv-photo:hover .thumb img{transform:scale(1.05)}
.serv-photo .bd{padding:20px 22px 24px}
.serv-photo .bd h3{margin-bottom:7px}
.serv-photo .bd p{margin-bottom:14px}
/* "En savoir plus" n'est plus un lien independant (toute la carte l'est) :
   il reagit visuellement au survol de la carte entiere, pas seulement a un
   survol direct sur ces quelques mots. */
.serv-photo:hover .link{color:var(--terra)}
.serv-photo:hover .link::after{width:100%;background:var(--terra)}
.cmap{margin-top:8px;height:150px;border-radius:var(--r);background:linear-gradient(135deg,#2E363A,#20262A);display:grid;place-items:center;color:var(--cream-muted);font-size:.85rem;border:1px solid rgba(255,255,255,.08)}
.page-intro{padding:52px 0 46px;background:var(--grege)}
.page-intro h1{font-size:clamp(2.1rem,4.2vw,3rem);margin:14px 0 12px}
.page-intro p{color:var(--ardoise);font-size:1.08rem;max-width:40em}
.ph-photo{position:relative;border-radius:var(--r);overflow:hidden; background: repeating-linear-gradient(135deg, rgba(35,41,43,.05) 0 2px, transparent 2px 14px), linear-gradient(150deg,#E9E2D4,#D9CDB8); display:flex;align-items:flex-end;min-height:220px; border:1px solid var(--border);}
/* Photo reelle (ACF), quand il y en a une : remplit le cadre derriere la
   legende, sans deformation (object-fit:cover). Le cadre garde son fond
   degrade en repli si aucune image n'est fournie. */
.ph-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.ph-photo .tag{position:relative;z-index:1;margin:14px;background:rgba(35,41,43,.82);color:var(--cream); font-size:.76rem;font-weight:600;padding:7px 12px;border-radius:var(--pill); display:inline-flex;align-items:center;gap:8px;backdrop-filter:blur(2px);}
.ph-photo .tag svg{flex:none}
/* aspect-ratio plutot que min-height seul : les photos des "services a la
   loupe" (champs ACF loupe_1/loupe_2) sont au format paysage. Sans ratio
   explicite, le cadre .tall pouvait finir presque carre selon la largeur
   de colonne .spot, forçant object-fit:cover a rogner large des deux
   cotes. 3:2 reste proche du format d'origine : rognage leger seulement
   (meme correctif que .ph-photo.tall dans la-pharmacie.css). */
.ph-photo.tall{aspect-ratio:3/2;min-height:0}
.ph-photo.short{min-height:160px}
.ph-photo.dark{background: repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 2px, transparent 2px 14px), linear-gradient(150deg,#3A434A,#20262A); border-color:rgba(255,255,255,.08);}
.split{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.split .kicker{margin-bottom:14px}
.split p.big{font-size:1.08rem;color:var(--ardoise);margin-bottom:14px}
.eng-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.eng{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:24px}
.eng .ic{width:42px;height:42px;border-radius:12px;background:var(--sable);color:var(--terra-d);display:grid;place-items:center;margin-bottom:14px}
.eng h3{font-size:1.06rem;margin-bottom:6px}
.eng p{color:var(--ardoise);font-size:.92rem}
.team-full{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.mbf{background:#fff;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;transition:transform var(--tr),box-shadow var(--tr)}
.mbf:hover{transform:translateY(-3px);box-shadow:var(--sh)}
.mbf .ph-photo{border-radius:0;border:0;aspect-ratio:1/1;min-height:0}
.mbf .bd{padding:16px 18px 20px}
.mbf h4{font-size:1.05rem;margin-bottom:2px}
.mbf .role{color:var(--terra-d);font-weight:600;font-size:.86rem;margin-bottom:8px}
.mbf .desc{color:var(--ardoise);font-size:.88rem}
.gallery{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:16px}
.gallery .g1{grid-row:1/3}
.spot{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-bottom:26px}
.spot:nth-child(even) .ph-photo{order:2}
.spot .tagline{color:var(--terra-d);font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}
.spot h3{font-size:1.6rem;margin-bottom:12px}
.spot p{color:var(--ardoise);margin-bottom:16px}
.spot ul{list-style:none;display:grid;gap:9px;margin-bottom:16px}
.spot li{display:flex;gap:10px;font-size:.95rem;color:var(--ink)}
.spot li svg{flex:none;color:var(--terra-d);margin-top:2px}
.cta-dark{background:var(--anthra);color:var(--cream);border-radius:24px;padding:44px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;position:relative;overflow:hidden}
.cta-dark h2{color:var(--cream);font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:8px}
.cta-dark p{color:var(--cream-muted)}
.cta-dark .actions{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:940px){
.split{grid-template-columns:1fr}
.eng-grid{grid-template-columns:1fr 1fr}
.team-full{grid-template-columns:1fr 1fr}
.gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto}
.gallery .g1{grid-row:auto;grid-column:1/3}
.spot,.spot:nth-child(even) .ph-photo{grid-template-columns:1fr;order:0}
.cta-dark{flex-direction:column;align-items:flex-start}
}

@media(max-width:560px){
.eng-grid,.team-full{grid-template-columns:1fr}
.gallery{grid-template-columns:1fr}
.gallery .g1{grid-column:auto}
}
