/* Accueil : une preuve, des réponses, une personne. Les sections restent
   dans le flux; le budget accompagne la méthode au lieu de refaire un écran. */
.home-page .case-section{border-top:0;padding-top:clamp(64px,7vw,112px)}
.home-page .case-description p{max-width:48ch}
.home-page .services{width:100%;max-width:none;margin:0;padding-inline:var(--gutter);background:var(--ink);color:var(--paper);--rule:#55534e}
.home-page .services .section-heading>p{color:var(--paper)}
.home-page .service-icon{color:var(--paper)}
.home-page .service:is(:hover,[open]) summary,.home-page .service summary:focus-visible{color:var(--ink)}
.home-page .service:is(:hover,[open]) .service-icon,.home-page .service summary:focus-visible .service-icon{color:var(--ink)}
.home-page .service [data-service-panel]{color:var(--ink)}
.home-page .method{border:0;padding-top:clamp(72px,7vw,112px)}
.home-page .method-grid p{font-size:clamp(16px,1.3vw,20px);line-height:1.5}
.method-budget{display:flex;align-items:center;justify-content:space-between;gap:48px;margin-top:clamp(48px,6vw,88px);padding-top:36px;border-top:1px solid var(--rule)}
.method-budget>div{min-width:0;max-width:640px}
.method-budget h3{font:700 clamp(28px,3.2vw,48px)/1.12 var(--display);letter-spacing:-.045em}
.method-budget p{max-width:48ch;margin-top:20px;font-size:clamp(16px,1.4vw,20px);line-height:1.5}
.method-budget .button{flex:none;min-width:300px;--action-wing:60px}

/* Une grille éditoriale et le vrai portrait de Guillaume. Le cadre reprend
   les coins du viseur; la photo reste un média remplaçable dans WordPress. */
.about-profile{border-top:1px solid var(--rule)}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,7vw,110px);align-items:center}
.about-copy,.about-portrait{min-width:0}
.about-signature{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:clamp(28px,3vw,48px);font-size:18px}
.about-signature svg{flex:none;width:clamp(145px,17vw,250px);max-width:100%;height:auto;overflow:visible}
.about-copy h2{font:700 clamp(52px,6.8vw,112px)/1.06 var(--display);letter-spacing:-.065em;overflow:visible}
.about-point{color:var(--orange)}
.about-prose{max-width:46ch;margin-top:clamp(28px,3vw,46px);font-size:clamp(17px,1.4vw,22px);line-height:1.55}
.about-prose p+p{margin-top:22px}
.about-portrait{position:relative;aspect-ratio:4/5;background:#e4e1d9;overflow:clip}
.about-portrait-media{height:100%;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}
.about-portrait-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about-portrait-filled{aspect-ratio:auto;padding:12px;background:var(--ink)}
.about-portrait-filled::before{content:'';position:absolute;left:0;top:18%;width:3px;height:22%;background:var(--orange);pointer-events:none}
.about-portrait-filled::after{content:'';position:absolute;right:0;bottom:0;width:clamp(32px,4vw,56px);height:clamp(32px,4vw,56px);border-right:3px solid var(--orange);border-bottom:3px solid var(--orange);pointer-events:none}
.about-portrait-filled .about-portrait-media{height:auto;display:block;overflow:clip;outline:1px solid #ffffff26}
/* Le format original reste entier : la casquette et les bras ne passent
   jamais sous un recadrage forcé quand la grille change de largeur. */
.about-portrait-filled .about-portrait-media>img{position:relative;inset:auto;height:auto;object-fit:contain}
.about-photo-guides{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--orange);stroke-width:2;vector-effect:non-scaling-stroke}
.about-photo-guides .about-photo-axis{stroke:#bdb8ad;stroke-width:1}
.about-aperture{width:clamp(90px,11vw,160px);height:auto;aspect-ratio:1;margin:0;color:var(--ink)}
.about-aperture .lottie-poster{fill:none;stroke:currentColor;stroke-width:1.5}
.about-photo-note{position:absolute;bottom:7%;left:24px;right:24px;text-align:center;font-size:14px;color:var(--muted)}

/* Le LAB est un choix explicite, présenté comme une invitation à explorer. */
.lab-invite{display:flex;align-items:center;justify-content:space-between;gap:36px;border-block:1px solid var(--rule);padding-block:30px;margin-top:clamp(48px,6vw,90px);min-height:120px;transition:color .2s}
.lab-invite>span:first-child{display:grid;gap:6px}
.lab-invite strong{font:700 clamp(25px,2.7vw,42px)/1.18 var(--display);letter-spacing:-.045em}
.lab-invite>span>span{font-size:17px;line-height:1.4}
.lab-invite-action{display:flex;align-items:center;gap:26px;font-weight:600;white-space:nowrap}
.lab-invite-action>span{font-size:32px}
.lab-invite:is(:hover,:focus-visible){color:var(--explore-ink,#3546b9)}
@media(max-width:1000px){
 .method-budget{gap:32px}
 .method-budget .button{min-width:260px}
 .about-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px}
 .about-copy h2{font-size:clamp(48px,6.5vw,68px)}
 .about-prose{font-size:17px}
}
@media(max-width:760px){
 .home-page .method-grid{grid-template-columns:1fr 1fr;gap:36px 24px}
 .home-page .method-grid p{font-size:16px}
 .method-budget{display:block;margin-top:48px}
 .method-budget .button{margin-top:28px;min-width:0;width:100%;max-width:345px}
 .about-grid{grid-template-columns:1fr;gap:36px}
 .about-copy h2{font-size:clamp(54px,13.5vw,86px)}
 .about-signature{font-size:16px}
 .about-signature svg{width:180px}
 .about-portrait{width:100%;max-width:500px;margin-inline:auto}
 .about-prose{max-width:48ch;font-size:18px}
 .lab-invite{align-items:flex-start;flex-direction:column;gap:24px}
 .lab-invite-action{width:100%;justify-content:space-between;min-height:44px}
}
@media(max-width:360px){
 .home-page .method-grid{grid-template-columns:1fr;gap:28px}
 .about-copy h2{font-size:clamp(44px,14.4vw,54px)}
 .about-signature{gap:12px}
 .about-signature svg{width:165px}
}
@media(prefers-reduced-motion:reduce){.lab-invite{transition:none}}
html[data-motion=reduce] .lab-invite{transition:none}
