:root{--ivory:#F7F2EA;--beige:#E9DDCC;--champagne:#C9AA65;--ink:#292824;--muted:#635f56;--line:#d9cebd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:5px}.skip{position:fixed;top:-100px;z-index:100;background:white;padding:14px}.skip:focus{top:8px}.wrap{width:min(1240px,88%);margin:auto}.header{height:96px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{text-decoration:none;line-height:1.3;flex-shrink:0}.brand strong{display:block;font-size:20px;letter-spacing:1px}.brand span{font-size:12px;letter-spacing:3px;display:block;margin-top:6px}.nav{display:flex;align-items:center;gap:23px}.nav a{font-size:14px;text-decoration:none}.nav a:hover{text-decoration:underline}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--ink);color:var(--ivory);border:1px solid var(--ink);border-radius:7px;padding:15px 23px;text-decoration:none!important;font-size:15px;font-weight:600;line-height:1.5;transition:background .18s,transform .18s}.button:hover{background:#46433c;transform:translateY(-2px)}.button.outline{background:transparent;color:var(--ink)}.button.outline:hover{background:var(--beige)}.nav .button{padding:12px 17px}.menu-toggle{display:none}.hero{position:relative;min-height:620px;display:flex;align-items:center;overflow:hidden}.hero-image{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 53%;inset:0}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,242,234,.98) 0%,rgba(247,242,234,.96) 28%,rgba(247,242,234,.72) 45%,rgba(247,242,234,0) 72%)}.hero-content{position:static;padding:66px 0;pointer-events:none}.hero-content>*{pointer-events:auto;max-width:555px}
.hero-content>:not(picture){position:relative;z-index:1}.eyebrow{font-size:12px;letter-spacing:2.5px;font-weight:600;text-transform:uppercase;margin:0 0 28px;display:flex;gap:14px;align-items:center}.eyebrow:before{content:'';width:36px;height:1px;background:var(--champagne)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(46px,4.7vw,68px);line-height:1.06;letter-spacing:-2.8px;margin-bottom:25px;font-weight:600}h2{font-size:clamp(32px,3.1vw,45px);line-height:1.13;letter-spacing:-1.4px;font-weight:500;margin-bottom:28px;white-space:pre-line}h3{font-weight:500;line-height:1.25}.hero .intro{font-size:19px;line-height:1.65;max-width:460px;margin-bottom:30px}section:not(.hero){padding:95px 0}.presentation-grid{display:grid;grid-template-columns:.85fr 1.25fr;gap:100px;align-items:center}.portrait{width:100%;height:540px;object-fit:cover;object-position:center 35%;border-radius:9px;display:block}.photo-caption{display:flex;justify-content:space-between;gap:10px;font-size:13px;margin-top:15px;color:var(--muted)}.presentation-copy p{color:var(--muted);max-width:560px}.presentation-copy .eyebrow{color:var(--ink)}.audience{margin-top:65px;padding-top:32px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 3fr;gap:30px}.audience h3{font-size:26px}.audience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 32px}.audience-grid h4{font-weight:600;margin:0 0 7px}.audience-grid p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}.services{background:var(--beige)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:40px}.section-head h2{margin-bottom:0}.section-head>p{color:var(--muted);max-width:280px;font-size:16px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{padding:32px;background:var(--ivory);border-radius:9px;display:flex;flex-direction:column;position:relative}.card:nth-child(2){background:var(--ink);color:var(--ivory)}.card h3{font-size:25px;margin-bottom:12px}.duration{font-size:14px;margin-bottom:13px}.price{font-size:42px;font-weight:500;letter-spacing:-1.5px;line-height:1.2}.price small{font-size:17px;letter-spacing:0}.card ul{list-style:none;padding:22px 0 28px;margin:0;flex:1}.card li{font-size:15px;position:relative;padding-left:19px;margin-bottom:13px;line-height:1.6}.card:nth-child(2) .button{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}.reviews-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.review-surface{border:1px solid var(--line);border-radius:9px;padding:40px}.google-word{font-size:23px;font-weight:600;letter-spacing:-1px;margin-bottom:24px}.review-surface p{color:var(--muted)}.review-controls{display:flex;gap:12px;align-items:center;margin-top:24px}.review-controls button{background:transparent;border:1px solid var(--line);border-radius:5px;padding:8px 13px}.review-controls button:disabled{opacity:.35;cursor:default}.review-author{display:flex;gap:12px;align-items:center}.review-author img{width:40px;height:40px;border-radius:50%}blockquote{margin:22px 0;font-size:17px}.faq{border-top:1px solid var(--line)}.faq-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:90px}.faq-grid>div>p{color:var(--muted)}details{border-top:1px solid var(--line)}details:last-child{border-bottom:1px solid var(--line)}summary{padding:23px 35px 23px 0;cursor:pointer;position:relative;font-weight:500;list-style:none;font-size:17px}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:5px;font-size:24px;font-weight:400;top:18px}details[open] summary:after{content:'−'}details p{padding:0 22px 22px 0;color:var(--muted);font-size:15px;margin:0}.contact{background:var(--beige)}.contact-top{text-align:center;margin-bottom:40px}.contact-top .eyebrow{justify-content:center}.contact-top h2{font-size:clamp(37px,4vw,56px)}.contact-top p{color:var(--muted)}.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:80px}.contact-info h3{font-size:22px}.contact-info address{font-style:normal;margin-bottom:26px}.contact-info .phone{font-size:24px;text-decoration:none}.hours{margin-top:30px;max-width:330px}.hours div{display:flex;justify-content:space-between;border-bottom:1px solid #cbbda8;padding:9px 0;font-size:14px}.map-panel{min-height:330px;border:1px solid #cbbda8;border-radius:8px;background:rgba(247,242,234,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px}.map-panel p{max-width:310px;color:var(--muted);font-size:15px}.map-panel h3{font-size:24px}.map-panel iframe{border:0;width:100%;height:330px}.footer{padding:32px 0;display:flex;justify-content:space-between;gap:30px;font-size:13px;color:var(--muted)}.footer p{margin:0}.mobile-wa{display:none}.small{font-size:13px}.review-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px}
@media(min-width:1600px){.hero{min-height:690px}}@media(max-width:1150px){.nav{gap:14px}.nav a{font-size:13px}.brand strong{font-size:17px}.nav .button{padding:10px}.presentation-grid{gap:55px}.header{width:94%}.cards{gap:14px}.card{padding:25px}.contact-grid{gap:45px}}@media(max-width:950px){.header{height:82px;width:88%}.menu-toggle{display:block;background:none;border:1px solid var(--line);border-radius:5px;padding:8px 14px;font-size:14px}.nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--ivory);padding:24px 6%;z-index:20;box-shadow:0 8px 16px #29282415}.nav.open{display:flex;flex-direction:column;align-items:stretch}.nav a{font-size:16px;padding:9px 0}.nav .button{margin-top:8px}.hero{min-height:590px}.hero-content>*{max-width:480px}.hero:after{background:linear-gradient(90deg,#f7f2eaf7 0%,#f7f2eae8 35%,#f7f2ea75 68%,transparent)}.presentation-grid{gap:35px}.portrait{height:480px}.audience{grid-template-columns:1fr}.reviews-layout,.faq-grid{gap:45px}.contact-grid{gap:35px}}
@media(max-width:680px){.wrap{width:88%}.hero{min-height:730px;align-items:start}.hero-image{object-position:57% bottom;height:100%}.hero:after{background:linear-gradient(180deg,var(--ivory) 0%,#f7f2eaf7 32%,#f7f2eab5 57%,#f7f2ea00 79%)}.hero-content{padding:40px 0}.hero-content>*{max-width:100%}.eyebrow{font-size:11px;letter-spacing:2px;margin-bottom:22px}h1{font-size:48px;letter-spacing:-2.2px;max-width:340px!important}.hero .intro{font-size:17px;max-width:355px;margin-bottom:24px}.hero .button{font-size:14px;padding:14px 15px}section:not(.hero){padding:62px 0}.presentation-grid{grid-template-columns:1fr;gap:33px}.portrait{height:auto;max-height:520px;aspect-ratio:4/4.4;object-position:center 32%}.photo-caption{font-size:12px}.presentation-copy h2{font-size:35px}.audience{margin-top:30px}.audience-grid{grid-template-columns:1fr 1fr;gap:26px 20px}.audience h3{margin-bottom:0}.section-head{display:block;margin-bottom:28px}.section-head>p{margin:22px 0 0;max-width:none}.cards{grid-template-columns:1fr;gap:18px}.card{padding:28px}.card ul{padding:18px 0}.reviews-layout,.faq-grid,.contact-grid{grid-template-columns:1fr;gap:25px}.review-surface{padding:28px}.faq-grid h2{margin-bottom:20px}.contact-top h2{font-size:39px}.map-panel{min-height:260px;padding:25px}.footer{display:block}.footer p+p{margin-top:8px}.brand strong{font-size:17px}.brand span{font-size:10px}html{scroll-padding-top:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Accueil révisé : règles limitées au bandeau et à la navigation. */
.nav>a:not(.button){position:relative}
.nav>a:not(.button)::after{content:'';position:absolute;bottom:-9px;left:0;right:0;height:1px;background:var(--champagne);transform:scaleX(0);transform-origin:left;transition:transform .18s}
.nav>a[aria-current="location"]::after,.nav>a:not(.button):hover::after,.nav>a:not(.button):focus-visible::after{transform:scaleX(1)}
.nav>a:not(.button):hover{text-decoration:none}
.nav .nav-book{background:var(--ivory);border-color:var(--champagne);color:var(--ink);gap:9px}
.nav .nav-book:hover{background:var(--beige);transform:none}
.nav .whatsapp-icon{color:var(--champagne);width:23px;height:23px;flex-shrink:0}
.menu-toggle{border-color:var(--champagne);color:var(--ink)}
.menu-toggle:hover{background:var(--beige)}
.hero{min-height:620px;background:var(--ivory)}

.hero .hero-image{width:100%;height:100%;object-fit:cover;object-position:center center}
.hero:after{background:linear-gradient(90deg,var(--ivory) 0%,var(--ivory) 37%,rgba(247,242,234,.92) 40%,rgba(247,242,234,.3) 47%,rgba(247,242,234,0) 55%)}
.hero-content{padding:55px 0}
.hero-content>*{max-width:42%}
.hero h1{font-size:clamp(38px,3.55vw,54px);line-height:1.13;letter-spacing:-1.7px;max-width:43%!important;margin-bottom:24px}
.hero .intro{font-size:20px;line-height:1.5;max-width:42%;margin-bottom:28px}
.hero .button{font-size:14px;padding:15px 19px;max-width:43%}
.hero-hours{font-size:14px;line-height:1.85;margin-top:25px;font-weight:400}
.hero-hours strong{font-weight:600}

@media(min-width:1600px){.hero{min-height:670px}.hero-content>*{max-width:43%}}
@media(min-width:951px) and (max-width:1200px){.nav{gap:10px}.nav .nav-book{font-size:12px;padding:10px}.nav .whatsapp-icon{width:19px;height:19px}.hero h1{font-size:38px}.hero .intro{font-size:18px}.hero .button{font-size:13px;padding:14px 12px}}
@media(max-width:950px){
 .nav>a:not(.button)::after{bottom:4px;right:auto;width:35px}
 .nav .nav-book{padding:13px 18px}
 .hero{display:flex;flex-direction:column;min-height:0}
 .hero-content{order:0;padding:42px 0 30px}
 .hero-content>*{max-width:100%}
 .hero h1{font-size:46px;max-width:100%!important;line-height:1.1}
 .hero .intro{font-size:19px;max-width:100%;margin-bottom:24px}
 .hero .button{max-width:100%;font-size:15px;padding:15px 20px}
 .hero-hours{margin-top:22px}
 
 
 .hero .hero-image{object-position:center 52%}
 .hero:after{display:none}
 
}
@media(max-width:680px){
 .hero-content{padding:34px 0 26px}
 .hero h1{font-size:clamp(32px,8.7vw,46px);letter-spacing:-1.2px;margin-bottom:20px}
 .hero .eyebrow{font-size:11px;letter-spacing:1.7px;margin-bottom:23px}
 .hero .intro{font-size:17px;margin-bottom:24px}
 .hero .button{font-size:14px;padding:14px 15px}
 .hero-hours{font-size:14px;margin-top:22px}
 
 
 .hero .hero-image{object-fit:cover;object-position:center}
}

/* Version 3 — fonts are shipped locally and embedded in the autonomous HTML. */
@font-face{font-family:'Liberation Serif';src:url('assets/LiberationSerif-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Liberation Sans';src:url('assets/LiberationSans-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Liberation Sans';src:url('assets/LiberationSans-Bold.woff') format('woff');font-weight:600 900;font-style:normal;font-display:swap}
body{font-family:'Liberation Sans',Arial,Helvetica,sans-serif}
h1,h2,h3,.brand strong{font-family:'Liberation Serif',Georgia,serif;font-weight:400;font-synthesis:none}
.brand strong{font-size:23px;letter-spacing:3px;line-height:1.2}
.brand span{letter-spacing:2.8px;text-align:center}
.header{gap:20px}
.nav{gap:18px}
.nav .button{white-space:nowrap}
.hero h1{font-size:clamp(40px,4.1vw,61px);font-weight:400;letter-spacing:-1.5px;line-height:1.08}
.section-title{font-family:'Liberation Serif',Georgia,serif;font-size:clamp(38px,3.7vw,54px);font-weight:400;line-height:1.12;letter-spacing:-.8px;color:var(--ink);margin:0 0 22px;white-space:normal}
.section-title:before{content:'';display:block;width:44px;height:1px;background:var(--champagne);margin-bottom:23px}
.section-subtitle{font-family:'Liberation Sans',Arial,sans-serif;font-size:22px;line-height:1.4;letter-spacing:-.3px;font-weight:400;color:var(--muted);white-space:pre-line;margin:0 0 26px}
.section-head .section-title{margin-bottom:22px}
.section-head .section-subtitle{margin-bottom:0}
.presentation-copy .section-subtitle,.faq-grid>div>.section-subtitle{font-size:22px}
.contact-top .section-title{font-size:clamp(38px,3.7vw,54px)}
.contact-top .section-title:before{margin-left:auto;margin-right:auto}
.contact-top .section-subtitle{font-size:22px}
.card h3{font-size:30px;line-height:1.15;letter-spacing:-.4px}
.audience h3{font-size:30px}

.contact-info h3{font-family:'Liberation Sans',Arial,sans-serif;font-size:22px;font-weight:400}
.whatsapp-icon{width:21px;height:21px;flex:0 0 auto;display:inline-block;vertical-align:-.2em;fill:currentColor}
a:not(.button)>.whatsapp-icon{width:17px;height:17px;margin-right:8px}
.button .whatsapp-icon{margin:0}
.nav .whatsapp-icon{width:22px;height:22px;color:var(--champagne)}
.hero .button{gap:10px}
@media(min-width:951px) and (max-width:1200px){.brand strong{font-size:20px;letter-spacing:2px}.nav{gap:10px}.header{gap:14px}.hero h1{font-size:43px}.hero .button{font-size:13px;padding:14px 10px;gap:7px}.hero .button .whatsapp-icon{width:18px;height:18px}}
@media(max-width:1100px){
.header{height:82px;width:88%}.menu-toggle{display:block;background:none;border:1px solid var(--champagne);border-radius:5px;padding:8px 14px;font-size:14px}.nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--ivory);padding:24px 6%;z-index:20;box-shadow:0 8px 16px #29282415}.nav.open{display:flex;flex-direction:column;align-items:stretch}.nav a{font-size:16px;padding:9px 0}.nav .button{margin-top:8px;padding:13px 18px}.nav>a:not(.button)::after{bottom:4px;right:auto;width:35px}
}
@media(max-width:950px){.hero h1{font-size:54px;line-height:1.08;letter-spacing:-1px}}
@media(max-width:680px){.brand strong{font-size:19px;letter-spacing:2px}.brand span{font-size:10px;letter-spacing:2px}.header{gap:12px}.menu-toggle{padding:8px 10px}.hero h1{font-size:clamp(35px,9.4vw,49px);letter-spacing:-.8px}.hero .button{font-size:13px;padding:14px 12px;gap:8px}.hero .whatsapp-icon{width:19px;height:19px}.section-title,.presentation-copy .section-title,.faq-grid .section-title,.contact-top .section-title{font-size:39px;margin-bottom:18px}.section-subtitle,.presentation-copy .section-subtitle,.faq-grid>div>.section-subtitle,.contact-top .section-subtitle{font-size:20px;line-height:1.4;margin-bottom:24px}.section-head .section-subtitle{margin-bottom:0}.section-title:before{margin-bottom:20px}.card h3{font-size:29px}}
@media(max-width:360px){.brand strong{font-size:17px;letter-spacing:1.5px}.brand span{font-size:9px;letter-spacing:1.5px}.menu-toggle{font-size:13px}.hero .button{font-size:12.5px;padding:14px 10px;gap:7px}}

/* V4: pill-shaped WhatsApp booking buttons and readable champagne text. */
:root{--champagne-text:var(--champagne)}
.header .brand span,.nav>a[aria-current="location"]{color:var(--champagne-text)}
.button[href^="https://wa.me/"]{border-radius:9999px;align-items:center}
.hero .button[href^="https://wa.me/"]{padding-left:22px;padding-right:22px}
.button[href^="https://wa.me/"] .whatsapp-icon{flex-shrink:0;align-self:center}
@media(min-width:951px) and (max-width:1200px){.hero .button[href^="https://wa.me/"]{padding-left:14px;padding-right:14px}}
@media(max-width:680px){.hero .button[href^="https://wa.me/"]{padding-left:17px;padding-right:17px}}
@media(max-width:360px){.hero .button[href^="https://wa.me/"]{padding-left:12px;padding-right:12px}}

/* V5 — one compact Google integration, in the existing hero column. */
.hero-reviews{font-family:'Liberation Sans',Arial,sans-serif;color:var(--ink);font-size:14px;line-height:1.5;margin-top:22px;min-width:0;max-width:42%}
.hero-reviews>a{font-size:14px}
.hero-reviews.connected{border-top:1px solid var(--champagne);padding-top:17px}
.hero-reviews .review-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;font-size:14px}
.rating-stars{position:relative;display:inline-block;font-size:20px;letter-spacing:1px;line-height:1;width:5.5em;color:var(--ink);white-space:nowrap}
.rating-stars>span{position:absolute;inset:0 auto 0 0;overflow:hidden;color:var(--champagne);white-space:nowrap}
.hero-reviews .review-selection{font-size:12px;margin:0 0 14px}
.hero-reviews .review-slide{min-height:225px;font-size:14px;overflow-wrap:anywhere}
.hero-reviews .review-author{display:flex;align-items:center;gap:10px;font-size:14px}
.hero-reviews .review-author img{width:32px;height:32px;object-fit:cover}
.hero-reviews blockquote{font-size:14px;line-height:1.6;margin:12px 0;white-space:pre-line}
.hero-reviews .review-meta{font-size:12px;margin:8px 0}
.hero-reviews .review-source{font-size:12px}
.hero-reviews .review-controls{gap:8px;margin:12px 0;flex-wrap:wrap}
.hero-reviews .review-controls button,.hero-reviews .review-expand{font-family:inherit;font-size:13px;color:var(--ink);background:var(--ivory);border:1px solid var(--champagne);border-radius:9999px;min-height:44px;padding:8px 13px}
.hero-reviews .review-controls button:hover,.hero-reviews .review-expand:hover{background:var(--beige)}
.hero-reviews .review-controls button:disabled{opacity:.65;cursor:default}
.hero-reviews .review-all{display:inline-block;margin-top:6px;font-size:13px}
.review-announcement{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:950px){.hero-reviews{max-width:100%}.hero-reviews .review-slide{min-height:200px}}
@media(max-width:680px){.hero-reviews{margin-top:20px}.hero-reviews .review-slide{min-height:250px}.hero-reviews .review-controls{gap:6px}.hero-reviews .review-controls button{padding:8px 10px}}
/* V8 — full-width review band below the V6 hero. */
.reviews-band{padding:34px 0 44px!important;background:#efe5d7;border-top:1px solid rgba(201,170,101,.45);border-bottom:1px solid rgba(201,170,101,.45);overflow:hidden}
.reviews-shell{position:relative;min-width:0}.reviews-top{display:flex;align-items:center;justify-content:space-between;gap:24px;background:rgba(247,242,234,.9);border:1px solid rgba(201,170,101,.48);border-radius:24px;padding:20px 24px;margin-bottom:22px}.google-summary{display:flex;align-items:center;gap:13px;flex-wrap:wrap}.google-wordmark{font:600 28px Arial,sans-serif;letter-spacing:-1.6px;margin-right:5px}.google-wordmark .g1{color:#4285f4}.google-wordmark .g2{color:#ea4335}.google-wordmark .g3{color:#fbbc05}.google-wordmark .g4{color:#34a853}.band-stars,.card-stars{color:#b78e32;letter-spacing:2px}.band-stars{font-size:22px}.google-total{font-size:16px}.write-review,.review-pause,.review-next,.review-expand{border:1px solid var(--champagne);background:var(--ivory);color:var(--ink);border-radius:9999px;text-decoration:none;font-weight:600}.write-review{padding:12px 20px;white-space:nowrap}.write-review:hover,.review-pause:hover,.review-next:hover,.review-expand:hover{background:#f0e5d3}.review-selection,.review-recorded{font-size:13px;color:var(--muted);margin:0 0 12px 4px}.review-viewport{overflow:hidden}.review-grid{--visible:3;display:grid;grid-template-columns:repeat(var(--visible),minmax(0,1fr));gap:20px;align-items:stretch}.review-card{min-width:0;background:rgba(247,242,234,.96);border:1px solid rgba(201,170,101,.5);border-radius:20px;padding:24px;min-height:285px;display:flex;flex-direction:column;box-shadow:0 10px 30px rgba(62,51,32,.045)}.review-card-head{display:flex;gap:13px;align-items:center;margin-bottom:15px}.review-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#e4d5bd;border:1px solid var(--champagne);font-weight:700;flex:0 0 auto}.review-card-head a,.review-card-head strong{display:block;font-weight:700;text-decoration:none;line-height:1.3}.card-stars{display:block;font-size:14px;margin-top:4px}.review-card blockquote{font-size:15px;line-height:1.65;margin:0 0 15px;color:var(--ink);white-space:pre-line;overflow-wrap:anywhere}.review-expand{align-self:flex-start;margin-top:auto;padding:8px 13px;font-size:13px}.review-band-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:18px}.review-pause{padding:8px 14px;font-size:13px}.review-next{width:44px;height:44px;font-size:29px;line-height:1;padding:0}.review-pause:disabled{opacity:.65;cursor:default}.review-bottom{display:flex;justify-content:center;margin-top:4px}.review-all{font-size:14px;text-decoration-color:var(--champagne)}.review-announcement{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:1019px){.review-grid{--visible:2}.reviews-top{border-radius:20px}.review-card{min-height:300px}}
@media(max-width:699px){.reviews-band{padding:24px 0 32px!important}.reviews-top{align-items:flex-start;flex-direction:column;padding:18px;border-radius:18px}.google-summary{gap:8px 10px}.google-wordmark{font-size:25px}.band-stars{font-size:18px}.google-total{font-size:14px}.write-review{padding:10px 16px}.review-grid{--visible:1}.review-card{min-height:285px;padding:21px}.review-band-controls{justify-content:space-between}.review-next{width:48px;height:48px}}


/* V9 — reviews become a dedicated section, with a compact review surface. */
section[id]{scroll-margin-top:108px}
@media(min-width:1181px){.header{width:min(1500px,96%)}.nav{gap:35px}.header{gap:32px}.nav a{font-size:14px}}
@media(min-width:1101px) and (max-width:1180px){.header{width:96%}.nav{gap:28px}.header{gap:20px}.nav a{font-size:13px}.nav .button{padding-left:13px;padding-right:13px}}
@media(max-width:1100px){.nav.open{gap:4px}.nav.open>a{padding:13px 0;min-height:48px;display:flex;align-items:center}}
.reviews-section{background:#efe5d7;border-top:1px solid rgba(201,170,101,.45);border-bottom:1px solid rgba(201,170,101,.45)}
.reviews-section>.wrap>.section-title{margin-bottom:30px}
.reviews-band{padding:0!important;background:transparent;border:0;overflow:hidden}
.reviews-shell{padding:0}
.reviews-top{padding:12px 18px;margin-bottom:10px;border-radius:18px;min-height:82px}
.google-summary{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:18px;row-gap:3px;align-items:center}
.google-logo{grid-row:1 / 3;width:118px;height:auto;display:block;object-fit:contain}
.google-rating-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap;line-height:1.2}
.google-rating,.google-total{font-size:15px}.band-stars{font-size:19px;color:var(--champagne);letter-spacing:1.5px}
.write-review{padding:9px 17px}
.review-selection,.review-recorded{font-size:12px;margin:0 0 8px 3px}
.review-grid{gap:16px}
.review-card{padding:16px 18px;min-height:190px;border-radius:17px}
.review-card-head{gap:10px;margin-bottom:9px}.review-avatar{width:36px;height:36px}.card-stars{font-size:12px;margin-top:2px}
.review-card blockquote{font-size:14px;line-height:1.5;margin:0 0 9px}.review-expand{padding:6px 11px;font-size:12px}
.review-band-controls{gap:8px;margin-top:9px}.review-pause{padding:6px 12px;font-size:12px}.review-next{width:38px;height:38px;font-size:25px}.review-bottom{margin-top:0}.review-all{font-size:13px}
@media(max-width:1019px){.review-card{min-height:205px}}
@media(max-width:699px){.reviews-section{padding-top:58px!important;padding-bottom:58px!important}.reviews-section>.wrap>.section-title{margin-bottom:24px}.reviews-top{padding:14px;gap:12px;margin-bottom:10px}.google-summary{grid-template-columns:1fr;grid-template-rows:auto;gap:8px}.google-logo{grid-row:auto;width:108px}.google-rating-line{gap:7px}.review-card{min-height:230px;padding:18px}.review-band-controls{margin-top:10px}.review-next{width:44px;height:44px}}

/* V10 — align desktop navigation to the hero photo edge, strengthen menu labels,
   and keep the Google mark and rating on one visual baseline. */
:root{
  --hero-photo-start:38vw;
  --v10-header-gutter:max(2vw,calc((100vw - 1500px)/2));
}
.nav>a:not(.button){font-weight:600}

/* Reuse the exact picture edge already validated in the hero (38%, then 39%
   on very wide screens). Only the value is centralized; crop and gradient stay unchanged. */
@media(min-width:951px){}
@media(min-width:1600px){:root{--hero-photo-start:39vw}}

@media(min-width:1361px){
  .header{
    width:100%;
    max-width:none;
    padding-inline:var(--v10-header-gutter);
    display:grid;
    grid-template-columns:calc(var(--hero-photo-start) - var(--v10-header-gutter)) minmax(0,1fr);
    column-gap:0;
  }
  .header .brand{grid-column:1;justify-self:start;align-self:center}
  .header .menu-toggle{display:none}
  .header .nav{
    grid-column:2;
    display:flex;
    align-items:center;
    gap:0;
    justify-content:space-between;
    min-width:0;
    white-space:nowrap;
  }
  .header .nav>a{flex:0 0 auto;margin:0;padding-inline:0}
  .header .nav .nav-book{margin:0;padding-inline:17px}
}

/* Below the width where the aligned row has enough room, use the mobile menu
   instead of squeezing labels or reducing their type size. */
@media(min-width:1101px) and (max-width:1360px){
  .header{height:82px;width:88%}
  .menu-toggle{display:block;background:none;border:1px solid var(--champagne);border-radius:5px;padding:8px 14px;font-size:14px}
  .nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--ivory);padding:24px 6%;z-index:20;box-shadow:0 8px 16px #29282415}
  .nav.open{display:flex;flex-direction:column;align-items:stretch;gap:4px}
  .nav.open>a{font-size:16px;padding:13px 0;min-height:48px;display:flex;align-items:center}
  .nav .button{margin-top:8px;padding:13px 18px}
  .nav>a:not(.button)::after{bottom:4px;right:auto;width:35px}
}

.google-summary{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:nowrap;
  min-width:0;
}
.google-logo{
  grid-row:auto;
  width:118px;
  height:auto;
  display:block;
  object-fit:contain;
  flex:0 0 auto;
}
.google-rating-line{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:nowrap;
  line-height:1.2;
  white-space:nowrap;
}
.google-rating,.google-total,.google-separator{display:inline-flex;align-items:center;line-height:1.2}
.google-separator{font-weight:600;color:var(--ink)}

@media(max-width:699px){
  .google-summary{flex-wrap:wrap;gap:10px 14px}
  .google-logo{width:108px}
  .google-rating-line{gap:7px;white-space:normal;flex-wrap:wrap}
}


/* V11 — space is distributed by flexbox from the seven intrinsic widths:
   each of the six gaps = (available width - sum of item widths) / 6. */
@media(min-width:1361px){
 .header.nav-compact{height:82px;display:flex;justify-content:space-between}
 .header.nav-compact .menu-toggle{display:block;background:none;border:1px solid var(--champagne);border-radius:5px;padding:8px 14px;font-size:14px}
 .header.nav-compact .nav{display:none;position:absolute;top:82px;left:0;right:0;padding:24px 6%;background:var(--ivory);z-index:20;box-shadow:0 8px 16px #29282415}
 .header.nav-compact .nav.open{display:flex;flex-direction:column;align-items:stretch;gap:4px}
 .header.nav-compact .nav>a{font-size:16px;padding:13px 0;min-height:48px}
 .header.nav-compact .nav .nav-book{margin-top:8px;padding:13px 18px}
 .header.nav-compact .nav>a:not(.button)::after{bottom:4px;right:auto;width:35px}
}
/* V17 — hours now sit 16px below the button. Only the lower free space flexes. */
@media(min-width:951px){
 .hero-content{align-self:stretch;display:flex;flex-direction:column;align-items:flex-start;margin-block:0;padding:95px 0 42px}
 .hero-content>*{flex-shrink:0}
 .hero-content::after{content:'';flex:1 0 0;width:0;pointer-events:none}
}
/* Presentation and original coordinated line icons. */
.presentation-copy>p:not(.section-subtitle){max-width:60ch;line-height:1.8;margin-bottom:22px}
.presentation-copy strong{font-weight:600;color:var(--ink)}
.presentation-copy .section-subtitle{max-width:100%;color:var(--ink)}
.audience{display:block}
.audience h3{margin:0 0 28px}
.audience-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 32px}
.audience-item{min-width:0;display:grid;grid-template-rows:auto auto 1fr;align-items:start;gap:12px;padding-bottom:20px}


.audience-grid h4{margin:0;color:var(--ink);font-size:17px;line-height:1.4;white-space:normal;overflow-wrap:break-word}
@media(max-width:950px){
 .audience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
}
@media(max-width:680px){
 .presentation-copy>p:not(.section-subtitle){line-height:1.75;margin-bottom:20px}
}

/* The sticky header keeps its existing width, padding and navigation grid.
   The pseudo-element only paints the ivory background across the viewport. */
.compact-book{display:none}
@media(min-width:951px){
 .header::before{content:'';position:absolute;inset:0;background:var(--ivory);box-shadow:0 0 0 100vmax var(--ivory);clip-path:inset(0 -100vmax);z-index:-1;pointer-events:none}
 .header .compact-book{background:var(--ivory);border-color:var(--champagne);color:var(--ink);font-size:14px;padding:12px 17px;gap:9px;white-space:nowrap;margin-left:auto}
 .header .compact-book:hover{background:var(--beige);transform:none}
 .compact-book .whatsapp-icon{width:22px;height:22px;color:var(--champagne)}
 .header.nav-compact .compact-book{display:inline-flex}
 .header.nav-compact .nav .nav-book{display:none}
 html{--header-offset:96px}
}
@media(min-width:951px) and (max-width:1360px){
 .header .compact-book{display:inline-flex}
 .header .nav .nav-book{display:none}
}
html{scroll-padding-top:var(--header-offset,0px)}
section[id]{scroll-margin-top:16px}

/* One floating mobile pill, replacing the old full-width bar. */
@media(max-width:950px){
 .mobile-wa{display:block;position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(calc(16px + env(safe-area-inset-bottom)),var(--footer-clearance,0px));z-index:40;padding:0;background:transparent;border:0;width:auto}
 .mobile-wa .button{min-height:50px;width:auto;padding:13px 19px;font-size:14px;gap:9px;background:var(--ink);color:var(--ivory);border-radius:9999px;box-shadow:0 4px 16px #29282426;white-space:nowrap}
 .mobile-wa .whatsapp-icon{width:22px;height:22px;color:var(--ivory);flex-shrink:0}
 html{scroll-padding-bottom:calc(86px + env(safe-area-inset-bottom))}
 main a,main button,main summary,.review-band-controls{scroll-margin-bottom:calc(86px + env(safe-area-inset-bottom))}
}

/* V18: compact ruled hours; V17 native mobile navigation retained. */
.hero-hours{width:250px;max-width:100%;margin-top:16px;padding:0;font-size:14px;line-height:1.85}
.hero-hours-title{display:flex;align-items:center;gap:7px;font-size:12px;line-height:1.5;font-weight:400;margin:0 0 6px}
.hero-hours-title svg{width:17px;height:17px;color:#C9AA65;flex:none}
.hero-hours dl{margin:0}
.hero-hours dl>div{display:grid;grid-template-columns:1fr auto;column-gap:18px;padding:3px 0 4px;border-bottom:1px solid #cbbda8}
.hero-hours dt{font-weight:400}
.hero-hours dd{margin:0;font-weight:400;text-align:right;white-space:nowrap}
@media(max-width:950px){.hero-content{padding-bottom:var(--hours-mobile-bottom,30px)}}
@media(max-width:680px){.hero-content{padding-bottom:var(--hours-mobile-bottom,26px)}}

/* A native disclosure replaces the JS-only menu button. No overlay covers it. */
@media(min-width:951px){.header{position:sticky;top:0;z-index:60;background:var(--ivory);isolation:isolate}}
.header::before{content:'';position:absolute;inset:0;background:var(--ivory);box-shadow:0 0 0 100vmax var(--ivory);clip-path:inset(0 -100vmax);z-index:-1;pointer-events:none}
.mobile-menu{display:none;border:0;margin:0;padding:0}
.mobile-menu:last-child{border:0}
.mobile-menu .menu-toggle{list-style:none;cursor:pointer;min-height:44px;align-items:center;justify-content:center;font-weight:400;line-height:1.4}
.mobile-menu .menu-toggle::-webkit-details-marker{display:none}
.mobile-menu .menu-toggle::after{content:none}
.mobile-nav{position:fixed;top:var(--header-offset,82px);left:0;right:0;z-index:70;background:var(--ivory);box-shadow:0 8px 16px #29282415;padding:16px 6% 24px;max-height:calc(100dvh - var(--header-offset,82px) - 16px);overflow:auto;overscroll-behavior:contain}
.mobile-nav>a{display:flex;align-items:center;min-height:48px;padding:12px 0;font-size:16px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--line)}
.mobile-nav>a[aria-current="location"]{color:var(--champagne-text)}
.mobile-nav .nav-book{justify-content:center;margin-top:12px;padding:13px 18px;border:1px solid var(--champagne);color:var(--ink);background:var(--ivory);font-size:14px}
.mobile-nav .whatsapp-icon{color:var(--champagne)}
@media(max-width:1360px){.mobile-menu{display:block}.mobile-menu .menu-toggle{display:flex}}
@media(min-width:1361px){.header.nav-compact .mobile-menu{display:block}.header.nav-compact .mobile-menu .menu-toggle{display:flex}}
@media(min-width:951px){.mobile-nav .nav-book{display:none}}
html{scroll-padding-top:var(--header-offset,82px)}

@font-face{font-family:'Liberation Serif';src:url('assets/LiberationSerif-Bold.woff') format('woff');font-weight:500 900;font-style:normal;font-display:swap}
/* Session names retain their typography; shared desktop rows are defined below. */
.card h3{display:block;visibility:visible;font-family:"Liberation Serif",Georgia,serif;font-size:clamp(28px,2.5vw,34px);font-weight:400;line-height:1.18;letter-spacing:.1px;color:#927132;margin:0 0 14px}
.card .duration{font-size:23px;font-weight:400;line-height:1.35;letter-spacing:0;margin-bottom:8px}
.card .price{font-size:19px;font-weight:400;line-height:1.4;letter-spacing:0}
.card .price small{font-size:15px;font-weight:400}
.card li{padding-left:20px;margin-bottom:14px}
.card li::before{content:"";position:absolute;left:2px;top:calc(.8em - 3px);width:6px;height:6px;border:1px solid #927132;background:transparent;transform:rotate(45deg)}
.card li:last-child{margin-bottom:0}





.home-note{margin:36px 0 0;padding:24px 0 0;border-top:1px solid var(--champagne);max-width:820px}
.home-note h3,.packs>.packs-heading h3{font-family:"Liberation Serif",Georgia,serif;font-size:45px;font-weight:400;line-height:1.25;margin:0 0 12px}
.home-note p{margin:0;font-size:16px;line-height:1.65;font-weight:400}
.home-note a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.audience-grid p{margin:0;max-width:30ch;font-size:14px;line-height:1.65;white-space:normal}
.map-panel{display:block;padding:0;overflow:hidden;background:var(--ivory);min-height:360px}
.map-panel iframe{display:block;width:100%;height:100%;min-height:360px;border:0}
@media(max-width:680px){
 .card h3{font-size:32px}
 .card .duration{font-size:23px}
 .home-note{margin-top:36px}
 .home-note h3,.packs>.packs-heading h3{font-size:39px;overflow-wrap:break-word}
 .map-panel,.map-panel iframe{min-height:320px}
}

/* V20: only pack names inherit the session-name gold. */

/* Five content-sized tracks shared by the three desktop cards.
   Existing margins/padding supply the spacing; no per-card offsets or heights.
   Stacked cards retain the original natural flex flow below 681px.
   Older engines without subgrid retain the readable flex layout. */
@supports (grid-template-rows:subgrid){
 @media(min-width:681px){
  .cards{row-gap:0}
  .card{display:grid;grid-template-rows:subgrid;grid-row:span 5;row-gap:0}
  .card>.button{align-self:end}
 }
}

/* V23 — physical layout size ~34% of V22, original artwork untouched.
   Bounds offsets only compensate transparent margins, never crop or scale pixels. */
.audience-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 32px;--art-limit:81.6px}
.audience-item{--art-scale:1;--ink-x:0%;--ink-y:0%;text-align:center;justify-items:center;row-gap:10px}
.audience-art{height:calc(var(--art-limit) * 1.04);width:100%;display:flex;align-items:flex-end;justify-content:center;background:transparent;margin-bottom:4px;overflow:visible}
.audience-art img{display:block;width:calc(34% * var(--art-scale));max-width:calc(var(--art-limit) * var(--art-scale));height:auto;aspect-ratio:1;object-fit:contain;border:0;transform:translate(var(--ink-x),var(--ink-y))}
.audience-grid h4{width:100%;min-height:2.8em;text-align:center}
.audience-grid p{width:100%;max-width:30ch;margin:0 auto;text-align:center}
@supports(grid-template-rows:subgrid){
 .audience-item{grid-template-rows:subgrid;grid-row:span 3;row-gap:10px}
 .audience-grid h4{min-height:0}
}
@media(max-width:950px){
 .audience-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
}
@media(max-width:680px){
 .audience-grid{column-gap:18px;--art-limit:clamp(49.3px,14.62vw,68px)}
 .audience-item{padding-bottom:16px}
}







/* V24: content-bound settings remain correct when categories are reordered. */
.audience-item[data-audience="nourrissons"]{--art-scale:.6;--ink-x:0%;--ink-y:8.5%}
.audience-item[data-audience="adultes"]{--art-scale:.96;--ink-x:-.1875%;--ink-y:3.5%}
.audience-item[data-audience="enfant-ado"]{--art-scale:1.04;--ink-x:1.25%;--ink-y:26%}
.audience-item[data-audience="enfant-ado"] img{-webkit-mask-image:radial-gradient(ellipse 100% 74% at 50% 0%,#000 80%,transparent 100%);mask-image:radial-gradient(ellipse 100% 74% at 50% 0%,#000 80%,transparent 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.audience-item[data-audience="femmes-enceintes"]{--art-scale:1.04;--ink-x:.875%;--ink-y:0%}
.audience-item[data-audience="sportifs"]{--art-scale:1.04;--ink-x:-.6875%;--ink-y:10.625%}
.audience-item[data-audience="seniors"]{--art-scale:.94;--ink-x:-.375%;--ink-y:3.375%}
/* Compact packs: normal flow and intrinsic sizing, no visual scale. */
.packs{margin:28px 0 0}
.packs-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin:0 0 12px}
.packs>.packs-heading h3{margin:0}
.packs-heading p{font-size:14px;line-height:1.5;color:var(--muted);margin:0}
.pack{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(130px,.8fr) minmax(250px,1.5fr) auto;gap:16px;align-items:center;padding:10px 0;border-top:1px solid #cbbda8}
.pack>h3{color:#927132;font-size:21px;font-weight:400;line-height:1.25;letter-spacing:-.2px;margin:0}
.pack>p{margin:0;font-size:14px;line-height:1.5}
.pack .pack-price{display:grid;grid-template-columns:1fr 1fr;gap:16px;text-align:left}
.pack-price>div{display:flex;flex-direction:column;gap:2px}
.pack-price span{font-size:12px;line-height:1.4;font-weight:400;color:var(--muted)}
.pack-price .pack-original del{font-size:18px;line-height:1.4;font-weight:600;color:var(--ink);text-decoration-thickness:1.5px;white-space:nowrap}
.pack-price .pack-payable strong{font-size:16px;line-height:1.4;font-weight:400;color:var(--ink);white-space:nowrap}
.pack>a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;font-size:14px;line-height:1.5;text-decoration:underline;text-underline-offset:4px}
@media(max-width:950px){
 .pack{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:12px 0}
 .pack>h3{grid-column:1;grid-row:1}
 .pack>p{grid-column:1;grid-row:2}
 .pack .pack-price{grid-column:2;grid-row:1/3;gap:12px}
 .pack>a{grid-column:1/-1;grid-row:3;justify-self:start}
}
@media(max-width:680px){
 .packs{margin-top:24px}
 .packs-heading{display:block;margin-bottom:10px}
 .packs-heading p{margin-top:5px;font-size:13px}
 .pack{grid-template-columns:1fr;gap:6px}
 .pack>h3,.pack>p,.pack .pack-price,.pack>a{grid-column:1;grid-row:auto}
 .pack .pack-price{justify-self:start;grid-template-columns:auto auto;gap:24px;margin:2px 0}
 .pack>a{padding:8px 0}
}

/* V26: desktop structure wrappers are neutral. Mobile enhancements below only. */
.contact-identity{display:block}
.packs-toggle{display:none}

.mobile-menu .mobile-nav[hidden]{display:none!important}
.reviews-initial .review-grid{--visible:3}

@media(max-width:950px){.reviews-initial .review-grid{--visible:1}.reviews-initial .review-card:nth-child(n+2){display:none}}
@media(max-width:950px){
 body{padding-top:var(--header-offset,calc(60px + env(safe-area-inset-top,0px)))}
 .header{position:fixed;inset:0 0 auto;width:100%;margin:0;padding-inline:6%;z-index:70;min-height:calc(60px + env(safe-area-inset-top,0px));height:auto;padding-block:env(safe-area-inset-top,0px) 8px;background:var(--ivory);isolation:isolate}
 .mobile-nav{top:var(--header-offset,82px);max-height:calc(100dvh - var(--header-offset,82px) - 16px);z-index:75}
 .mobile-menu .mobile-nav[hidden]{pointer-events:none}
 .hero-content{display:flex;flex-direction:column;align-items:flex-start;padding:16px 0 20px!important}
 .hero-content>.eyebrow{margin-bottom:10px}
 .hero-content>picture{max-width:none;position:relative;inset:auto;display:block;width:100%;height:clamp(190px,53vw,280px);flex:none;margin:0 0 8px;overflow:hidden;border-radius:6px}
 .hero-content>picture:after{content:none}
 .hero-content>picture .hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%}
 .hero-content .hero-hours{margin-top:16px;flex:none}
 .hero-content>.button{width:auto}
 .packs-heading{margin-bottom:10px}
 .packs-toggle{display:inline-flex;align-items:center;min-height:44px;padding:9px 0;background:none;border:0;color:var(--ink);font-size:15px;text-decoration:underline;text-underline-offset:4px;text-align:left}

 .packs{margin-top:24px}
 .reviews-top{align-items:flex-start;flex-wrap:wrap;gap:16px}
 .google-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;min-width:0}
 .google-rating-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:15px;min-width:0}
 .google-logo{max-width:100px;height:auto;flex:none}
 .reviews-band,.review-viewport{overflow:visible}
 .review-grid{min-width:0}
 .review-card{min-width:0;max-width:100%;height:auto;overflow:visible}
 .review-card blockquote{max-height:none;overflow:visible;overflow-wrap:anywhere}
 .review-next,.review-pause,.review-expand,.write-review,.review-all{min-height:44px}
 .review-band-controls{flex-wrap:wrap;gap:12px;justify-content:flex-end}
 .write-review,.review-all{display:inline-flex;align-items:center}
 .contact-top{margin-bottom:32px}
 .contact-grid{display:flex;flex-direction:column;gap:26px}
 .contact-info{display:contents}
 .contact-info .phone{order:1;margin:0;align-self:flex-start}
 .contact-info .hours{order:2;width:100%;max-width:100%;margin:0}
 .hours div>span:first-child:after{content:' :'}
 .contact-grid .map-panel{order:3;min-height:300px}
 .contact-grid .map-panel iframe{min-height:300px;height:300px}
 .contact-grid .contact-identity{display:block;order:4;margin:0}
 .contact-identity h3{font-family:'Liberation Sans',Arial,sans-serif;font-size:22px;font-weight:400;line-height:1.35;margin:0 0 12px}
 .contact-identity address{font-style:normal;margin:0}
 .footer{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
}

/* V27: one native state controls content, label and keyboard accessibility. */
.packs-state,.packs-hide{display:none}
@media(min-width:951px){.pack-offers{display:block}.packs-toggle{display:none}}
@media(max-width:950px){
 .mobile-menu .mobile-nav:not([hidden]){display:block;pointer-events:auto}
 .packs-state{display:block;position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;opacity:0;clip-path:inset(50%)}
 .packs-toggle{cursor:pointer}
 .packs-state:focus-visible+.packs-toggle{outline:3px solid var(--ink);outline-offset:4px}
 .packs-state:not(:checked)~.pack-offers{display:none!important}
 .packs-state:checked~.pack-offers{display:block}
 .packs-state:checked+.packs-toggle .packs-show{display:none}
 .packs-state:checked+.packs-toggle .packs-hide{display:inline}
 .review-grid{--visible:1}
}

/* V28: source order is mobile-first. No relocation script is required. */
@media(min-width:951px){
 .hero-content>picture{display:block;position:absolute;inset:0 0 0 38%;max-width:none;pointer-events:none}
 .contact-grid{grid-template-rows:auto 1fr;row-gap:0;align-items:start}
 .contact-grid>.contact-identity{grid-column:1;grid-row:1}
 .contact-grid>.contact-info{grid-column:1;grid-row:2}
 .contact-grid>.map-panel{grid-column:2;grid-row:1 / 3;align-self:stretch}
 .contact-identity h3{font-family:'Liberation Sans',Arial,sans-serif;font-size:22px;font-weight:400}
 .contact-identity address{font-style:normal;margin-bottom:26px}
}
@media(min-width:1600px){.hero-content>picture{left:39%}}

/* V29: side controls occupy their own tracks; desktop controls stay unchanged. */
.review-prev,.review-forward{display:none}
@media(max-width:950px){
 .review-viewport{display:grid;grid-template-columns:minmax(0,1fr);gap:0;align-items:center}
 .review-prev,.review-forward{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--champagne);border-radius:50%;background:var(--ivory);color:var(--ink);font:32px/1 'Liberation Sans',Arial,sans-serif}
 .review-grid{grid-column:1;grid-row:1}
 .review-prev{order:0}
 .review-forward{order:1}
 .review-card{padding:14px 12px}
 .review-card-head{flex-wrap:wrap;gap:8px}
 .review-card-head>div{min-width:0;overflow-wrap:anywhere}
 .review-band-controls .review-next{display:none}
}

/* V31: the relocated heading, portrait and unchanged copy form three mobile rows. */
@media(max-width:950px){
 .presentation-grid{grid-template-columns:1fr;gap:24px}
 .presentation-grid>.section-title{margin-bottom:0}
}

/* V32: FAQ-only content hierarchy and native disclosure visibility. */
.faq .faq-grid>div>.section-subtitle{color:#927132}
.faq-answer{padding:0 22px 22px 0;color:var(--muted);font-size:15px;line-height:1.65}
.faq .faq-answer p{padding:0;margin:0 0 14px}
.faq .faq-answer p:last-child{margin-bottom:0}
.faq-answer ul,.faq-answer ol{margin:0;padding-inline-start:1.5em}
.faq-answer li{padding-inline-start:.25em;margin:0 0 12px;overflow-wrap:break-word}
.faq-answer li:last-child{margin-bottom:0}
.faq-answer strong{font-weight:600}
.faq-answer .faq-home-book{margin-top:16px;max-width:100%;min-height:44px;padding:12px 16px;font-size:14px;white-space:normal;text-align:center;overflow-wrap:break-word}
.faq details:not([open])>.faq-answer{display:none}

/* V33: contact accent on both formats; presentation subtitle only on mobile. */
.contact-top>p{color:#927132;margin-bottom:24px}
@media(max-width:950px){
 .presentation-grid>.section-subtitle{color:#66615B;font-weight:400;font-family:'Liberation Serif',Georgia,serif;margin-bottom:0}
}

/* V34: presentation subtitle, desktop only; mobile approved rule is unchanged. */
@media(min-width:951px){
 .presentation-copy .section-subtitle{color:#66615B;font-weight:400;font-family:'Liberation Serif',Georgia,serif}
}

/* V36: same breakpoint as the real single-column card grid (680px). */
.session-state,.session-toggle,.session-hide{display:none}
@media(max-width:680px){
 .cards>.card{display:flex;flex-direction:column;grid-row:auto;height:auto;min-height:0;padding:18px}
 .cards>.card h3{margin-bottom:8px}
 .cards>.card .duration{margin:0;font-size:22px;font-weight:400}
 .cards>.card .price{margin:0;font-size:17px}
 .cards>.card ul{flex:none;min-height:0;padding:4px 0 10px}
 .cards>.card li{margin-bottom:10px}
 .cards>.card li:last-child{margin-bottom:0}
 .session-state{display:block;position:absolute;width:1px;height:1px;padding:0;margin:0;border:0;clip-path:inset(50%);opacity:0}
 .session-toggle{display:inline-flex;align-items:center;align-self:flex-start;min-height:44px;margin:2px 0;padding:8px 0;color:inherit;font-size:13px;line-height:1.4;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
 .session-state:focus-visible+.session-toggle{outline:3px solid currentColor;outline-offset:3px}
 .session-state:not(:checked)~ul{display:none}
 .session-state:checked~ul{display:block}
 .session-state:checked+.session-toggle .session-show{display:none}
 .session-state:checked+.session-toggle .session-hide{display:inline}
 .cards>.card>.button{min-height:44px;font-size:13px;line-height:1.5;padding:10px 16px;margin-top:8px;max-width:100%;white-space:normal;text-align:center;background:transparent;color:var(--ink);border-color:var(--ink)}
 .cards>.card:nth-child(2){box-shadow:inset 0 0 0 1px var(--champagne)}
 .cards>.card:nth-child(2)>.button{background:var(--ink);color:var(--ivory);border-color:var(--champagne)}
}

/* V36: neutral wrapper preserves the five existing horizontal subgrid tracks. */
.session-meta{display:contents}
@media(max-width:680px){
 .session-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
 .cards>.card:nth-child(2)>h3{color:#C9AA65}
 .cards>.card>.button{margin-top:4px}
}
/* V36: mobile composition only; desktop selectors and geometry are unchanged. */
.google-mark-mobile{display:none}
@media(max-width:950px){
 .mobile-wa[hidden]{display:none!important}
 .home-note h3,.packs>.packs-heading h3{font-size:31.5px;font-weight:400;line-height:1.25}
 .packs{margin-top:18px}.packs-heading{margin-bottom:4px}
 .home-note{margin-top:24px;padding-top:18px}.home-note h3{margin-bottom:8px}
 section:not(.hero){padding-block:66px}
 .section-title{margin-bottom:16px}.section-title:before{margin-bottom:16px}
 .presentation-grid{gap:18px}
 .portrait{height:auto;aspect-ratio:4/3.7;max-height:none;object-fit:cover;object-position:center 60%}
 .presentation-copy p{line-height:1.55}
 .presentation-copy strong{font-weight:600}
 .audience{margin-top:24px;padding-top:14px;gap:12px}
 .audience h3{margin-bottom:14px}
 .audience-grid{column-gap:30px;row-gap:16px}
 .audience-item{row-gap:8px;padding-bottom:8px}
 .audience-grid h4{font-size:15px;font-weight:400;margin-bottom:0}
 .audience-grid p{line-height:1.48}
 .audience-art img{width:calc((44vw - 12px) * .34 * var(--art-scale))}
 .reviews-section{padding-block:42px!important}
 .reviews-top{padding:10px 12px;min-height:0;gap:8px;flex-direction:row;align-items:center;margin-bottom:8px}
 .google-summary{gap:7px;flex-wrap:nowrap}
 .google-logo{display:none}
 .google-mark-mobile{display:block;width:26px;height:26px;flex:none}
 .google-rating-line{gap:5px;font-size:13px;white-space:normal;flex-wrap:wrap}
 .google-total{font-size:13px}.band-stars{font-size:16px;letter-spacing:1px}
 .write-review{padding:4px 8px;font-size:12px;font-weight:400;border-color:transparent;background:transparent;text-decoration:underline;min-height:44px}
 .review-selection,.review-recorded{font-size:11px;line-height:1.45;margin:0 0 3px}
 .review-recorded{margin-bottom:12px}
 .review-card{padding:18px;min-height:0}
 .review-band-controls{display:flex;justify-content:flex-start;gap:8px;margin-top:10px;flex-wrap:nowrap}
 .review-pause{order:2;margin-left:auto}
 .faq-grid{display:grid;grid-template-columns:1fr;gap:0}
 .faq-grid>div:first-child{display:contents}
 .faq-grid>div:first-child>.section-title{order:0}
 .faq-grid>div:first-child>.section-subtitle{order:1;margin-bottom:20px}
 .faq-grid>div:last-child{order:2}
 .faq-grid>div:first-child>p:not(.section-subtitle){order:3;margin:20px 0 8px}
 .faq-grid>div:first-child>a{order:4;min-height:44px;display:inline-flex;align-items:center}
 .faq summary{padding:16px 36px 16px 0;min-height:52px;line-height:1.45}
 .faq summary:after{top:13px;right:0;width:28px;text-align:center}
 .faq-answer{padding-bottom:18px}
 .contact-top{margin-bottom:24px}.contact-top>p{margin-bottom:18px}
 .contact-grid{gap:20px}
 .contact-info .phone{font-size:21px}
 .contact-grid .map-panel,.contact-grid .map-panel iframe{min-height:250px;height:250px}
 .contact-grid .contact-identity h3{font-size:17px;line-height:1.4;margin-bottom:6px}
 .contact-identity address{font-size:14px;line-height:1.5}
}
@media(max-width:680px){
 section:not(.hero){padding-block:44px}
 .audience-art img{width:calc((44vw - 9px) * .34 * var(--art-scale))}
 .home-note h3,.packs>.packs-heading h3{font-size:27.3px}
 .section-head{margin-bottom:20px}
}

/* V39: hero disclosure is mobile-only; desktop hours keep their existing box. */
.hero-hours-state,.hero-hours-toggle,.hero-hours-hide{display:none}
@media(max-width:950px){
 .hero-content>.eyebrow{font-size:10px;letter-spacing:1.25px;font-weight:400;margin-bottom:20px}
 .hero h1{font-size:clamp(32px,8.8vw,48px);line-height:1.08;letter-spacing:-.8px;margin-bottom:18px}
 .hero .intro{font-size:17px;font-weight:400;line-height:1.45;margin-bottom:14px}
 .hero-hours-state{display:block;position:absolute!important;width:1px;height:1px;padding:0;margin:0;border:0;opacity:0;clip-path:inset(50%)}
 .hero-hours-toggle{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin:6px 0 0;padding:8px 0;font-size:13px;line-height:1.4;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:4px}
 .hero-hours-toggle svg{width:16px;height:16px;flex:none;color:var(--champagne)}
 .hero-hours-state:focus-visible+.hero-hours-toggle{outline:3px solid var(--ink);outline-offset:3px}
 .hero-hours-state:not(:checked)~.hero-hours{display:none}
 .hero-hours-state:checked~.hero-hours{display:block}
 .hero-hours-state:checked+.hero-hours-toggle .hero-hours-show{display:none}
 .hero-hours-state:checked+.hero-hours-toggle .hero-hours-hide{display:inline}
 .hero-content .hero-hours{margin-top:0!important}
 .hero-hours-title{display:none}
 .hero-hours dt:after{content:' :'}
}

/* V40: caption follows the photo on mobile, including before scripts initialize. */
@media(max-width:950px){
 .hero-content>h1{order:0}
 .hero-content>picture{order:1}
 .hero-content>.eyebrow{order:2}
 .hero-content>.intro{order:3}
 .hero-content>.button{order:4}
 .hero-content>.hero-hours-toggle{order:5}
 .hero-content>.hero-hours{order:6}
}

/* V42: desktop-only refinement; mobile rules remain untouched. */
@media(min-width:951px){
 .hero{overflow:visible;margin-bottom:38px}
 .hero-content{padding-top:123px}
 .hero-content>.eyebrow{position:absolute;top:100%;left:38%;right:6%;max-width:none;margin:10px 0 0;font-size:11px;line-height:1.5;font-weight:400;letter-spacing:1.5px;white-space:normal}
 .hero-content>.eyebrow:before{content:none}
 .audience-grid{width:88%;margin-inline:auto}
 .audience-art img{width:calc(var(--art-limit) * var(--art-scale))}
 .cards>.card:nth-child(2)>h3{color:#C9AA65}
 .cards>.card:nth-child(2) li:before{border-color:#C9AA65}
 .packs>.packs-heading h3{font-size:32px;font-weight:400}
 .home-note{max-width:none;width:100%}
 .home-note h3{font-size:34px;font-weight:400}
 .pack-price .pack-original del{font-size:16px;font-weight:400}
 .pack-price .pack-payable strong{font-size:19px;font-weight:600}
 .contact-grid>.contact-info{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;min-width:0}
 .contact-info .hours{margin-top:auto;padding-top:24px}
}
@media(min-width:1600px){.hero-content>.eyebrow{left:39%}}
