/* Compléments communs au site hybride — octobre 2026 */
:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.service a.service-button{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:46px;padding:10px 13px;border:1px solid #d9c8dc;border-radius:999px;background:#faf7fb;text-align:center;line-height:1.4}
.service a.service-button:hover{background:var(--plum);color:white}
.breadcrumb{max-width:1360px;margin:28px auto 0;padding:0 24px;font-size:12px;color:var(--muted)}
.breadcrumb a{text-decoration:underline;text-underline-offset:3px}
.detail-hero{display:grid;grid-template-columns:1fr 1fr;gap:20px 60px;align-items:center;padding-block:54px 74px}
.detail-hero h1{font-size:clamp(36px,4.4vw,64px);line-height:1.08;font-weight:500}
.detail-hero figure{grid-column:2;grid-row:1/3;margin:0;min-width:0}
.detail-hero img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:4px 70px 4px 4px}
.detail-hero figcaption{font-size:11px;color:var(--muted);margin-top:9px}
.detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.detail-copy>p,.detail-copy>h2,.detail-copy>h3,.detail-copy>ul,.detail-copy>dl{max-width:900px;margin-left:auto;margin-right:auto}
.detail-copy h2,.detail-cta h2{font:400 clamp(32px,3.5vw,48px)/1.16 Georgia,serif}
.detail-copy h3{margin-top:32px;font-size:25px}
.detail-copy li{margin-bottom:10px}
.detail-rates{border-top:1px solid var(--line)}
.detail-rates>div{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
.detail-rates dd{margin:0;white-space:nowrap;font-weight:bold;color:var(--plum)}
.detail-cta{text-align:center;background:#eee7ef}
.review-window{overflow:hidden;max-width:100%}
html .review-window .testimonials{display:flex;gap:22px;animation:reviews-left 20.4s ease-in-out infinite;will-change:transform}
.review-window .testimonials article{flex:0 0 var(--review-width);min-width:0}
@keyframes reviews-left{0%,29.411765%{transform:translateX(0)}33.333333%,62.745098%{transform:translateX(calc(-1 * var(--review-step)))}66.666667%,96.078431%{transform:translateX(calc(-2 * var(--review-step)))}100%{transform:translateX(calc(-3 * var(--review-step)))}}
html .review-window:focus-within .testimonials,html .review-window.is-held .testimonials{animation-play-state:paused}
@media(hover:hover){html .review-window:hover .testimonials{animation-play-state:paused}}
@media(max-width:1199px){
 header .primary-nav,header .head-actions{display:none!important}
 header .brand{min-width:0;max-width:calc(100% - 54px)}
 header .menu-toggle{display:flex;flex:none;width:44px;height:44px;margin-left:auto;padding:10px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;cursor:pointer}
 header .menu-toggle i{display:block;width:23px;height:2px;background:var(--ink)}
 header .mobile-nav{display:flex;position:absolute;top:100%;left:0;right:0;max-height:0;padding:0 24px;overflow:hidden;flex-direction:column;background:white;visibility:hidden;opacity:0;pointer-events:none;box-shadow:0 18px 30px #17142c1f}
 header .mobile-nav.open{visibility:visible;opacity:1;max-height:calc(100dvh - 76px);padding:18px 24px 24px;overflow-y:auto;pointer-events:auto}
 header .mobile-nav>a:not(.btn){padding:11px 0;border-bottom:1px solid #eee;font-weight:bold}
 header .mobile-nav .btn{width:100%;margin-top:12px}
 .detail-hero{grid-template-columns:1fr;gap:25px;max-width:900px;margin:auto}
 .detail-hero figure{grid-column:auto;grid-row:auto;max-width:660px;width:100%;justify-self:center}
 .detail-actions{grid-row:3}
 .about{grid-template-columns:minmax(0,1fr);gap:34px}
 .about>div:first-child{width:100%;max-width:420px;margin:0 auto}
 html .about>div:first-child img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;border-radius:4px 80px 4px 4px}
 .about>div:last-child{width:100%;max-width:740px;margin:auto}
 .footer-grid{grid-template-columns:1fr 1fr;gap:32px}.footer-grid .legal{grid-column:1/-1}
 .google{grid-template-columns:52px 1fr}.google-actions{grid-column:1/-1;justify-content:center}
 .prices article{padding:30px 20px}.price-actions .btn{white-space:normal}
}
@media(max-width:767px){
 html .trust{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px}
 html .trust span{display:flex;align-items:center;justify-content:center;min-height:66px;padding:13px 9px;font-size:11px;line-height:1.45;text-align:center}
 html .pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 html .pills span{display:flex;align-items:center;justify-content:center;min-height:52px;padding:12px 8px;border-radius:12px;border:1px solid #e2d6e4;background:#faf7fb;box-shadow:0 3px 12px #5d2f6808;font-size:12px}
 html .about>div:first-child{max-width:300px}
 .detail-hero{padding-block:36px 54px}.detail-actions{align-items:stretch;flex-direction:column}.detail-actions .phone{align-self:center}
 .detail-rates dt{font-size:14px}.detail-copy{overflow-wrap:anywhere}
 .footer-grid{grid-template-columns:1fr}.footer-grid .legal{grid-column:auto}
}
@media(prefers-reduced-motion:reduce){
 html .review-window .testimonials{animation:none;transform:none}
 .review-window{overflow-x:auto;scroll-snap-type:x mandatory}
 .review-window article{scroll-snap-align:start}.review-window article[aria-hidden]{display:none}
}

/* Téléphone et retour sur les pages détaillées */
@media(min-width:1200px){
 .detail-page header .phone{font-size:17px}
 .detail-page .detail-actions .phone{font-size:20px;letter-spacing:.015em}
}
.consultations-return{padding:0 max(24px,calc((100vw - 1360px)/2)) 64px;text-align:left;background:var(--soft)}
.consultations-return-link{display:inline-flex;align-items:center;min-height:44px;color:var(--plum);font-size:14px;font-weight:700;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:6px}
.consultations-return-link:hover{color:#47234f;text-decoration-color:currentColor}
@media(max-width:767px){.consultations-return{padding-inline:18px}}
/* Une grille équilibrée sur tablette, y compris tactile en portrait. */
@media(min-width:768px) and (max-width:1199px){
 html #consultations .cards.four{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:1000px;margin:0 auto}
 html #consultations .service{display:flex;flex-direction:column;width:auto;min-width:0;min-height:335px;padding:28px 24px}
 html #consultations .service h3{font-size:24px;line-height:1.25;min-height:60px;margin-bottom:16px}
 html #consultations .service p{font-size:14px;margin-bottom:24px}
 html #consultations .service a.service-button{margin-top:auto;min-height:48px}
 html #consultations .title{max-width:740px;margin:0 auto 38px;text-align:center}
}

/* Les suggestions restent compactes et équilibrées sur tablette tactile. */
@media(min-width:768px) and (max-width:1199px){
 html #autres-consultations .title{max-width:740px;margin:0 auto 36px;text-align:center}
 html #autres-consultations .title h2{font-size:38px;line-height:1.15}
 html #autres-consultations .cards.three{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;max-width:1000px;margin:auto}
 html #autres-consultations .service{grid-column:span 2;display:flex;flex-direction:column;width:auto;min-width:0;min-height:280px;padding:28px 24px}
 html #autres-consultations .service:last-child{grid-column:2/span 2}
 html #autres-consultations .service h3{font-size:24px;line-height:1.25;margin-bottom:16px}
 html #autres-consultations .service p{font-size:14px;margin-bottom:24px}
 html #autres-consultations .service a.service-button{margin-top:auto;min-height:48px}
}
@media(min-width:1000px) and (max-width:1199px){
 html #autres-consultations .cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}
 html #autres-consultations .service,html #autres-consultations .service:last-child{grid-column:auto}
 html #autres-consultations .service{padding:26px 22px}
 html #autres-consultations .service h3{min-height:60px}
}

/* Retour en haut réservé au bureau. */
.back-to-top{position:fixed;right:24px;bottom:24px;z-index:40;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid var(--gold);border-radius:50%;background:var(--plum);color:white;box-shadow:0 5px 20px #19142d24;cursor:pointer;transition:background .2s,transform .2s}
.back-to-top svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.back-to-top:hover{background:#47234f;transform:translateY(-2px)}
.back-to-top[hidden]{display:none}
@media(max-width:1199px){.back-to-top{display:none}}
