/* Extensions communes : galeries et pages de prestations. */
.service-grid .service-detail-link{display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:auto;padding:12px 14px;border:1px solid #94513e;border-radius:3px;background:#94513e;color:#fff;text-align:center;font-size:12px;line-height:1.45;transition:background .2s}
.service-grid .service-detail-link:hover{background:var(--brown);border-color:var(--brown)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #94513e;outline-offset:4px}
.back-to-top{position:fixed;right:24px;bottom:24px;z-index:90;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #94513e;border-radius:50%;background:#94513e;color:white;cursor:pointer;box-shadow:0 4px 16px #33252226}
.back-to-top:hover{background:var(--brown)}
.back-to-top[hidden]{display:none}
@media(max-width:1199px){.back-to-top{display:none}}
.gallery{align-items:start}
.inspiration-card{min-width:0;background:var(--white)}
.inspiration-cover{height:430px;overflow:hidden}
html .gallery .inspiration-card .inspiration-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 45%}
@media(min-width:1200px){
 html .gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
 .inspiration-cover{height:400px}
 html .gallery>.inspiration-card:nth-child(2) .inspiration-cover img{transform:scale(1.25)}
}
@media(max-width:1199px){.inspiration-cover{height:360px}}
@media(max-width:767px){
 html .gallery>.inspiration-card .inspiration-cover{height:240px;max-height:240px;overflow:hidden}
 html .gallery>.inspiration-card .inspiration-cover img{height:100%;max-height:none;object-fit:cover;object-position:center 42%;transform:scale(1.1)}
}
.inspiration-details{border-top:1px solid var(--line)}
.inspiration-details summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;padding:18px 20px;cursor:pointer;font-size:13px;font-weight:700;color:#94513e}
.inspiration-details summary::-webkit-details-marker{display:none}
.gallery-plus{font-size:23px;line-height:1;transition:transform .2s}
.inspiration-details[open] .gallery-plus{transform:rotate(45deg)}
.inspiration-examples{padding:0 18px 20px;display:grid;gap:18px}
.gallery-intro{margin:0;font-size:13px;color:#725f59}
html .gallery .inspiration-card .inspiration-examples img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:2px}
.gallery .inspiration-examples figcaption{display:block;padding:10px 0 0;font-size:12px;color:#725f59;line-height:1.5}
.gallery-service{font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:4px;color:#94513e;min-height:44px;display:flex;align-items:center}
.detail-breadcrumb{display:flex;gap:10px;flex-wrap:wrap;padding:28px 6vw 8px;font-size:12px;color:#725f59}
.detail-breadcrumb a{text-decoration:underline;text-underline-offset:4px}
.detail-hero{display:grid;grid-template-columns:1.05fr .85fr;align-items:center;gap:7vw;padding:40px 6vw 75px;background:var(--cream)}
.detail-intro{min-width:0;max-width:620px}
.detail-intro h1{font:clamp(42px,4.4vw,68px)/1.07 Georgia,serif;letter-spacing:-.035em;margin:16px 0 25px}
.detail-intro .lead{max-width:550px;font-size:18px;line-height:1.75;color:#725f59;margin:0 0 30px}
.detail-intro .button{min-height:50px}
.detail-phone{display:block;width:max-content;max-width:100%;margin-top:18px;font-size:16px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.detail-visual{margin:0;min-width:0}
.detail-visual img{width:100%;height:510px;object-fit:cover;border-radius:110px 3px 3px 3px}
.detail-visual figcaption{font-size:11px;color:#725f59;margin-top:10px}
.detail-overview{display:grid;grid-template-columns:1fr 1fr;gap:8vw;background:var(--white)}
.service-page h2{font:clamp(30px,3vw,44px)/1.14 Georgia,serif;margin:12px 0 24px;letter-spacing:-.02em}
.service-page h3{font:23px/1.25 Georgia,serif;margin:0 0 14px}
.detail-overview p,.detail-practical p,.detail-budget p{color:#725f59;font-size:15px;line-height:1.85}
.detail-for{padding:30px;background:var(--sand);border-left:2px solid var(--copper)}
.detail-for ul{padding-left:19px;margin:0}
.detail-for li{font-size:14px;line-height:1.8;margin-top:14px}
.detail-steps{background:var(--brown);color:var(--cream)}
.detail-steps .eyebrow{color:#e7bba9}
.detail-steps ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;padding:0;list-style:none;margin:40px 0 0}
.detail-steps li{border-top:1px solid #ffffff40;padding-top:22px;min-width:0}
.detail-steps li>span{display:block;font:italic 28px Georgia,serif;color:#e7bba9;margin-bottom:24px}
.detail-steps p{color:#e2d4cb;font-size:14px;line-height:1.85;margin-bottom:0}
.detail-budget{display:grid;grid-template-columns:1fr 1fr;gap:8vw;background:var(--white)}
.detail-pricebox{border:1px solid var(--line);padding:26px 30px;align-self:center}
.detail-price{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);font-size:14px}
.detail-price strong{font:20px/1.3 Georgia,serif;color:#94513e;text-align:right;flex-shrink:0}
.detail-budget .detail-small{font-size:12px;line-height:1.7;margin-bottom:0}
.detail-practical{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw}
.detail-practical h3{margin-top:28px}
.detail-practical aside{align-self:start;padding:30px;background:var(--sand);border-radius:3px}
.detail-practical aside h3{margin-top:10px}
.detail-faq{background:var(--white)}
.detail-cta{text-align:center;background:var(--sand)}
.detail-cta h2{max-width:700px;margin-left:auto;margin-right:auto}
.detail-cta p:not(.eyebrow){max-width:570px;margin:0 auto 26px;color:#725f59;font-size:15px}
.detail-related>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:30px}
.detail-related>div>a{display:flex;flex-direction:column;gap:18px;padding:26px;background:var(--white);border:1px solid var(--line)}
.detail-related>div>a:hover{border-color:var(--copper)}
.detail-related>div span{font:24px Georgia,serif}
.detail-related small{font-size:12px;font-weight:700;color:#94513e}
.detail-back{display:inline-flex;align-items:center;min-height:44px;margin-top:26px;text-decoration:underline;text-underline-offset:4px;font-size:14px}
@media(min-width:821px) and (max-width:1199px){
 .site-header{padding-inline:24px;gap:20px}.main-nav{gap:16px;font-size:12px}.header-actions .button{font-size:12px;padding-inline:15px}.brand strong{font-size:21px}
 .detail-hero{gap:4vw;padding-inline:5vw}.detail-visual img{height:460px}.detail-steps ol{grid-template-columns:repeat(2,minmax(0,1fr))}
 .detail-budget{gap:4vw}.detail-pricebox{padding:18px}.detail-price{flex-direction:column;gap:8px}.detail-price strong{text-align:left}
}
@media(max-width:820px){
 html .detail-breadcrumb{padding:24px 22px 8px;font-size:11px}
 html .detail-hero{display:flex;flex-direction:column;align-items:stretch;gap:32px;padding:24px 22px 48px}
 html .detail-intro h1{font-size:clamp(38px,9vw,54px);line-height:1.08}
 html .detail-intro .lead{font-size:16px;margin-bottom:26px}
 html .detail-intro .button{width:100%;font-size:14px;padding:14px 16px;min-height:48px}
 html .detail-visual img{height:auto;aspect-ratio:4/3;border-radius:70px 3px 3px 3px;object-position:center 35%}
 html .detail-overview,html .detail-budget,html .detail-practical{grid-template-columns:minmax(0,1fr);gap:28px}
 html .detail-steps ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
 html .detail-steps li>span{margin-bottom:16px}
 html .detail-pricebox{padding:20px}
 html .detail-related>div{grid-template-columns:minmax(0,1fr)}
 html .detail-price{flex-wrap:wrap;gap:10px}
 html .detail-price strong{font-size:19px}
 html .detail-for,html .detail-practical aside{padding:24px}
 html .service-grid .service-detail-link{min-height:48px;margin-top:18px;width:100%;padding:14px}
}
@media(max-width:420px){html .detail-steps ol{grid-template-columns:minmax(0,1fr)}html .detail-price{flex-direction:column}html .detail-price strong{text-align:left}}
@media(prefers-reduced-motion:reduce){.gallery-plus{transition:none}}

/* Tablette : quatre prestations en 2 × 2 et tarifs plus faciles à comparer. */
.detail-hero{grid-template-areas:"intro visual" "actions visual";row-gap:26px}
.detail-intro{grid-area:intro;align-self:end}
.detail-intro .lead{margin-bottom:0}
.detail-visual{grid-area:visual}
.detail-actions{grid-area:actions;align-self:start;min-width:0}
.detail-actions .button{min-height:50px}
@media(max-width:1199px){
 html .detail-hero{display:flex;flex-direction:column;align-items:stretch;gap:28px}
 html .detail-intro{max-width:none;align-self:auto}
 html .detail-intro .lead{max-width:700px;margin-bottom:0}
 html .detail-visual{width:100%;max-width:560px;margin:0 auto}
 html .detail-visual img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center 35%}
 html .detail-actions{width:100%;max-width:560px;margin:0 auto;align-self:auto}
 html .detail-actions .button{display:flex;width:100%;justify-content:center;min-height:48px;padding:14px 18px;font-size:14px}
 html .detail-actions .detail-phone{margin:18px auto 0;text-align:center;min-height:44px;display:flex;align-items:center;justify-content:center}
}
@media(min-width:768px) and (max-width:1199px){
 html .services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 html .services .service-card{width:auto;min-width:0;padding:28px 22px;border:0;border-bottom:1px solid var(--line)}
 html .services .service-card:nth-child(odd){border-right:1px solid var(--line)}
 html .services .service-card:nth-last-child(-n+2){border-bottom:0}
 html .services .service-card h3{margin-top:20px}
 html .services .service-card p{min-height:0;margin-bottom:24px}
 html .services .service-detail-link{width:100%;margin-top:auto;min-height:48px}
 html .pricing{grid-template-columns:minmax(0,1fr);gap:30px}
 html .pricing-title{max-width:650px}
 html .pricing .price-list>div{display:flex;flex-direction:row;align-items:baseline;justify-content:space-between;gap:24px;padding-block:20px}
 html .pricing .price-list>div>span{min-width:0}
 html .pricing .price-list b{flex-shrink:0;white-space:nowrap;text-align:right;font-size:21px}
 html .pricing .price-note{grid-column:1;margin-top:0}
 /* Un grand cadre sur tablette, avec le visage conservé dans la partie haute. */
 html .about{display:grid;grid-template-columns:minmax(0,1fr);gap:30px}
 html .about .about-image{width:100%;max-width:420px;height:500px;margin:0 auto 28px;overflow:hidden}
 html .about .about-image img{width:100%;height:100%;object-fit:cover;object-position:center 18%}
 html .about .about-copy{width:100%;max-width:740px;margin:0 auto}
}
@media(max-width:767px){
 html main .about .about-image{width:100%;max-width:300px;height:360px;margin:0 auto 28px;overflow:hidden}
 html main .about .about-image img{width:100%;height:100%;object-fit:cover;object-position:center 18%}
}

/* Six secondes de lecture, puis un glissement de 0,8 seconde par carte. */
.reviews-carousel{width:100%;min-width:0;overflow:hidden;outline-offset:5px}
html .reviews-carousel .review-grid[data-carousel-ready]{display:flex!important;gap:18px;width:max-content;max-width:none;margin:0;animation:reviews-left 20.4s ease-in-out infinite;will-change:transform}
html .reviews-carousel .review-grid[data-carousel-ready]>article{flex:0 0 var(--review-width);width:var(--review-width);min-width:0;max-width:none;margin:0;display:flex;flex-direction:column}
.reviews-carousel .review-grid article p{min-height:0;flex:1}
.reviews-carousel .review-grid article b{margin-top:auto}
html .reviews-carousel:focus-within .review-grid[data-carousel-ready],html .reviews-carousel.review-hold .review-grid[data-carousel-ready]{animation-play-state:paused}
@media(hover:hover){html .reviews-carousel:hover .review-grid[data-carousel-ready]{animation-play-state:paused}}
@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(-1 * var(--review-distance)))}
}
@media(prefers-reduced-motion:reduce){
 .reviews-carousel{overflow-x:auto;scroll-snap-type:x mandatory}
 html .reviews-carousel .review-grid[data-carousel-ready]{animation:none;transform:none;will-change:auto}
 html .reviews-carousel .review-grid>article{scroll-snap-align:start}
 html .reviews-carousel .review-grid>article[aria-hidden="true"]{display:none}
}
