/* Pages intérieures : identité de l’accueil validé, sans modification de ses styles. */
.is-page{font-size:17px;line-height:1.9}
.is-page .mast{min-height:88px;padding-block:7px}
.is-page main{min-height:55vh}
.is-page main.wrap,.page--about.wrap{padding-top:70px;padding-bottom:65px;max-width:1160px}
.is-page main a:not(.btn):not(.g__item){color:inherit;font-weight:700;text-decoration:none;transition:color .2s}
.is-page main a:not(.btn):not(.g__item):hover,.is-page main a:not(.btn):not(.g__item):focus-visible{color:var(--gold)}
.is-page p{font-size:17px;line-height:1.9;margin:0 0 22px}
.is-page h1{font-size:clamp(30px,3.8vw,46px);font-weight:500;line-height:1.25;letter-spacing:-.035em;margin:0 0 30px;max-width:850px}
.is-page h2{font-size:clamp(25px,2.5vw,32px);line-height:1.35;letter-spacing:-.02em;margin:0 0 24px}
.is-page h3{font-size:22px;margin:0 0 16px}
.is-page .eyebrow{font-size:11px;line-height:1.5;color:var(--gold);margin:0 0 18px}
.page-intro,.style-hero{max-width:760px;margin:0 auto 65px;text-align:left}
.style-hero .cta-actions{justify-content:flex-start;margin-top:30px}
.style-hero__lead{max-width:710px}
.section-heading{max-width:760px;margin:0 0 36px;text-align:left}
.section-heading p{max-width:710px}
.cta-actions,.review-actions,.document-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.cta-panel{max-width:760px;margin:80px auto 10px;padding:48px 0 0;border-top:1px solid var(--line);text-align:left}
.cta-panel p{max-width:680px}
.cta-panel .cta-actions{margin-top:28px}
.is-page .btn{font-size:11px}
.is-page .btn:not(.btn--primary){border-color:transparent;padding-inline:0;border-radius:0;box-shadow:none}
.is-page .btn:not(.btn--primary):hover{color:var(--gold);background:transparent}
.is-page .foot__local{font-size:14px;line-height:1.9;margin:12px auto}
.panel,.legal-panel,.payment-panel{max-width:760px;margin:0 auto;background:none;border:0;box-shadow:none;padding:0}
.page>.h1{max-width:760px;margin-left:auto;margin-right:auto}
.legal-panel h2{margin-top:45px;font-size:25px}
.legal-panel h3{margin-top:30px}
.legal-panel address{font-style:normal}
.legal-update{color:var(--muted);margin-top:44px!important;font-size:14px!important}
/* À propos : portrait et parcours, puis histoire du studio. */
.page--about>.eyebrow,.page--about>.h1{text-align:left}
.about-profile{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,1.15fr);gap:70px;align-items:center;margin-top:50px}
.about-photo{margin:0;max-width:450px}
.about-photo img{width:100%;height:auto;border-radius:2px}
.check-list{list-style:none;padding:0;margin:28px 0 0}
.check-list li{margin:9px 0;padding-left:21px;font-size:14px;position:relative;color:var(--muted)}
.check-list li::before{content:'·';position:absolute;left:0;color:var(--gold);font-size:20px}
.about-story{margin:20px 0 70px;padding:65px 0;background:linear-gradient(#0b0a09b8,#0b0a09d9),url('../assets/img/studio/a-propos-bg.avif') center/cover}
.about-story__inner{max-width:1160px;padding:0 40px;margin:auto;display:grid;grid-template-columns:.75fr 1.25fr;gap:75px;align-items:center}
.about-story__left img{width:100%;max-width:350px;margin:auto}
.about-story__right p{font-size:16px}
.about-related,.about-cta-wrap{max-width:840px;margin:0 auto;padding-bottom:60px}
.about-cta-wrap .cta-panel{margin-top:0}
.related-pages{margin:65px auto;max-width:760px}
.related-pages>div{display:grid;grid-template-columns:1fr 1fr;gap:2px 30px}
.related-link{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 0;min-height:52px;border-bottom:1px solid var(--line);font-size:15px}
.related-link span{color:var(--gold);font-size:22px}
.gallery-more{margin-top:30px!important;text-align:left}
/* Galeries sans cadres ; les légendes et toutes les images conservées restent visibles. */
.style-jump{display:flex;gap:10px 30px;flex-wrap:wrap;max-width:900px;margin:0 auto 65px}
.gallery-section,.style-realisations{margin-bottom:80px;scroll-margin-top:120px}
.g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 28px;margin-top:30px}
.g__figure{margin:0;min-width:0}
.g__item{display:block;aspect-ratio:3/4;overflow:hidden;border-radius:2px;background:#171512}
.g__img{width:100%;height:100%;object-fit:cover;display:block;transition:filter .25s,transform .35s}
.g__item:hover .g__img{filter:brightness(1.07);transform:scale(1.025)}
.g__figure figcaption{font-size:13px;line-height:1.7;color:var(--muted);margin-top:14px}
.lb{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;background:#090807f5;padding:64px}
.lb--open{display:flex}.no-scroll{overflow:hidden}
.lb__img{max-width:100%;max-height:calc(100dvh - 110px);width:auto;height:auto;object-fit:contain}
.lb__close,.lb__nav{position:absolute;display:grid;place-items:center;width:48px;height:48px;background:#191714;color:var(--beige);border:1px solid var(--line);border-radius:3px;font-size:30px}
.lb__close{top:14px;right:18px}.lb__nav{top:calc(50% - 24px)}.lb__prev{left:14px}.lb__next{right:14px}
.lb__close:hover,.lb__nav:hover{color:var(--gold)}
/* Une information par section ; corps de texte centré et aligné à gauche. */
.content-grid{max-width:760px;margin:0 auto 75px;display:grid;gap:38px}
.content-block{padding:0;border:0;background:none}
.content-block p:last-child{margin-bottom:0}
.seo-faq{max-width:760px;margin:70px auto}
.faq-page{max-width:760px;margin:auto}
.seo-faq__list{display:block}
.seo-faq__item{border:0;border-bottom:1px solid var(--line);background:none}
.seo-faq__item summary{position:relative;padding:21px 40px 21px 0;list-style:none;font-size:17px;font-weight:600;line-height:1.6;color:var(--beige);cursor:pointer;min-height:60px}
.seo-faq__item summary::-webkit-details-marker{display:none}
.seo-faq__item summary::after{content:'+';position:absolute;right:5px;top:18px;color:var(--gold);font-size:25px}
.seo-faq__item[open] summary::after{content:'−'}
.seo-faq__item>div{padding:0 35px 12px 0}
.seo-faq__item p{font-size:16px}
/* Rendez-vous : contact, préparation, étapes, arrhes. */
.appointment-page{max-width:900px;margin:auto}
.contact-choice{max-width:760px;margin:0 auto 70px}
.contact-choice .cta-actions{margin-top:30px}
.appointment-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-bottom:75px}
.content-card{padding:0;border:0;background:none}
.number-list{padding-left:23px;margin:0}.number-list li{font-size:16px;padding:4px 0}
.rv-figure{margin:28px 0 0}.rv-figure img{max-width:310px;width:100%;border-radius:2px}
.process-section{max-width:760px;margin:0 auto 70px}
.process-list{counter-reset:steps;list-style:none;margin:32px 0 0;padding:0}
.process-list li{position:relative;padding:0 0 28px 60px;counter-increment:steps}
.process-list li::before{content:counter(steps,decimal-leading-zero);position:absolute;left:0;top:0;color:var(--gold);font-size:23px}
.process-list strong,.process-list span{display:block}.process-list span{font-size:16px;margin-top:5px}
.deposit-panel{max-width:760px;margin:0 auto 55px;padding-top:40px;border-top:1px solid var(--line)}
/* Contact : trois coordonnées, puis horaires et accès. */
.contact-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;margin-bottom:65px}
.contact-card{min-width:0}.contact-card h2{font-size:23px}.contact-card p{font-size:16px;overflow-wrap:anywhere}
.hours-panel{max-width:760px;margin:0 auto 75px}
.hours-panel dl{max-width:520px;margin-top:25px}
.hours-panel dl>div{display:grid;grid-template-columns:1fr auto;gap:25px;padding:10px 0;border-bottom:1px solid var(--line)}
.hours-panel dt,.hours-panel dd{margin:0;font-size:16px}
.map-section,.route-section{margin-bottom:75px}
.map-wrap{position:relative;min-height:380px}
.map-embed{display:block;width:100%;height:420px;border:0;border-radius:2px}
.route-section>p{max-width:760px}
.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:35px}
.ratio{position:relative;aspect-ratio:16/9;min-height:200px}
.ratio iframe{width:100%;height:100%;border:0}
.video-card h3{font-size:21px}
/* Modules externes : choix du visiteur conservés. */
.external-consent{padding:30px;min-height:180px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:#151310;color:var(--text);border:0;border-radius:2px}
.external-consent p{font-size:15px;max-width:650px}
.map-wrap>.external-consent,.ratio>.external-consent{position:absolute;inset:0}
.ratio>.external-consent{padding:22px}.ratio>.external-consent p{font-size:14px}
.reviews-page{max-width:900px;margin:auto}.reviews-widget{padding:0;background:none;border:0;margin-bottom:38px}
.review-actions{margin:30px 0 70px}
/* Documents et pages pratiques. */
.documents-page,.document-page{max-width:820px;margin:auto}
.doccards{display:grid;gap:44px;margin-bottom:65px}
.doccard{padding:0 0 36px;border-bottom:1px solid var(--line)}
.doccard__title{font-size:25px!important}.doccard__actions{display:flex;align-items:center;flex-wrap:wrap;gap:26px;margin-top:20px}
.document-help{margin-top:45px}.document-actions{margin:30px 0 55px}
.doc-preview{margin:30px 0 0}.doc-preview img{width:100%;height:auto}
/* Paiement : ne jamais recadrer le module Stripe. */
.payment-panel{max-width:720px}.payment-panel p{font-size:16px}
.payment-warning{max-width:670px;margin-bottom:32px!important}
.payment-options{margin:36px auto;max-width:430px}
.payment-option{padding:0;background:none;border:0}
.stripe-buy-button-wrap{display:flex;justify-content:center;width:100%;min-height:390px;overflow:visible}
.stripe-buy-button-wrap stripe-buy-button{display:block;width:100%;max-width:400px}
.payment-fallback{font-size:14px!important;margin-top:16px!important}
.payment-consent{padding-top:28px;margin-top:35px!important;border-top:1px solid var(--line)}
.payment-security{color:var(--muted);font-size:14px!important}
@media(max-width:1000px){.is-page .nav__ul{gap:16px}.about-profile{gap:42px}.about-story__inner{gap:45px}.contact-cards{grid-template-columns:1fr 1fr}.g{gap:28px 20px}}
@media(max-width:800px){
  .is-page .mast{min-height:74px;padding-block:7px}
  .is-page main.wrap,.page--about.wrap{padding-top:45px;padding-bottom:45px}
  .is-page h1{font-size:34px}.is-page h2{font-size:27px}.is-page p{font-size:16px}
  .page-intro,.style-hero{margin-bottom:45px}.about-profile{grid-template-columns:1fr;gap:35px}.about-photo{width:min(390px,100%)}
  .about-story__inner{grid-template-columns:1fr;gap:35px;padding-inline:28px}.about-story__left img{width:210px;margin:0}
  .appointment-grid{gap:35px}.g{grid-template-columns:repeat(2,minmax(0,1fr))}
  .video-grid{grid-template-columns:1fr}.ratio{min-height:220px}.is-page .nav-open .nav{top:74px}
}
@media(max-width:560px){
  .is-page .mast{min-height:70px}
  .is-page h1{font-size:29px;line-height:1.3}.is-page h2{font-size:25px}.is-page h3{font-size:21px}
  .is-page main.wrap,.page--about.wrap{padding-top:35px;padding-bottom:40px}
  .is-page .eyebrow{font-size:10px}.page-intro,.style-hero{margin-bottom:40px}
  .is-page .btn{font-size:10px;min-height:48px;padding:13px 17px;max-width:100%;white-space:normal;text-align:center}
  .cta-panel{margin-top:58px;padding-top:32px}.cta-actions{gap:15px 22px}
  .about-profile{margin-top:32px}.about-story{padding:40px 0;margin-bottom:50px}.about-story__inner{padding-inline:22px}
  .related-pages>div{grid-template-columns:1fr}.related-pages{margin-block:45px}
  .about-cta-wrap{padding-bottom:40px}.related-link{font-size:14px}
  .gallery-section,.style-realisations{margin-bottom:55px}.g{gap:27px 15px}.g__figure figcaption{font-size:12px;line-height:1.65}
  .section-heading{margin-bottom:25px}.section-heading p{font-size:15px}
  .lb{padding:60px 12px}.lb__img{max-height:calc(100dvh - 150px)}.lb__nav{top:auto;bottom:18px}.lb__prev{left:calc(50% - 60px)}.lb__next{right:calc(50% - 60px)}
  .content-grid{gap:30px;margin-bottom:55px}.seo-faq{margin-block:50px}.seo-faq__item summary{font-size:16px;padding-right:32px}.seo-faq__item>div{padding-right:0}.seo-faq__item p{font-size:15px}
  .appointment-grid{grid-template-columns:1fr;gap:42px;margin-bottom:50px}.contact-choice{margin-bottom:48px}.process-section{margin-bottom:45px}.process-list li{padding-left:45px}
  .contact-cards{grid-template-columns:1fr;gap:26px;margin-bottom:45px}.contact-card p{margin-bottom:0}
  .hours-panel{margin-bottom:50px}.hours-panel dl>div{gap:15px}.hours-panel dt,.hours-panel dd{font-size:14px}
  .map-embed{height:350px}.map-wrap{min-height:350px}.map-section,.route-section{margin-bottom:50px}.external-consent{padding:22px}.ratio{min-height:215px}
  .doccard__actions{gap:15px}.doc-preview{margin-top:25px}.legal-panel h2{font-size:23px;margin-top:34px}
  .payment-page main.wrap{padding-inline:12px}.payment-options{width:100%;max-width:400px}.payment-panel p{font-size:15px}.stripe-buy-button-wrap stripe-buy-button{max-width:100%}
}
@media(max-width:360px){.is-page .mast{min-height:70px}.is-page .nav-rdv{padding-inline:9px}.hours-panel dl>div{grid-template-columns:1fr;gap:0}.hours-panel dd{color:var(--muted)}}

/* Mise en valeur des invitations à prendre contact. */
.cta-panel{padding:36px clamp(22px,4vw,42px);background:rgba(18,16,13,.92);border:1px solid rgba(199,155,85,.42);border-radius:6px}

@media(min-width:801px) and (max-width:1000px){.is-page.nav-ready .nav,.is-page.nav-open .nav-overlay{top:88px}}

.related-link,.style-jump a{border-bottom:0}

/* À propos : titre existant comme titre principal, liens sans traits. */
.is-page .about-profile__title{font-size:clamp(25px,2.5vw,32px);line-height:1.35;letter-spacing:-.02em;margin:0 0 24px}
.is-page .about-profile__content p a{font-weight:700;text-decoration:none;border:0;box-shadow:none;color:inherit}
.is-page .about-profile__content p a:hover,.is-page .about-profile__content p a:focus-visible{color:var(--gold);text-decoration:none}

.about-story__title{color:var(--gold);text-transform:none}

.cta-panel h2{color:var(--gold)}

.appointment-page>.welcome-social{margin:0 auto 60px}
.deposit-panel{padding:36px clamp(22px,4vw,42px);background:rgba(18,16,13,.92);border:1px solid rgba(199,155,85,.42);border-radius:6px}
.deposit-panel h2{color:var(--gold)}
.contact-page>.page-intro{text-align:center}
.contact-page>.page-intro h1{margin-inline:auto}

/* Les vidéos restent dans la largeur du téléphone. */
.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.video-card{min-width:0}.ratio{width:100%;min-width:0}.ratio iframe{position:absolute;inset:0}
@media(max-width:760px){.video-grid{grid-template-columns:minmax(0,1fr)}}
