/* editorial */
@font-face{font-family:"Instrument Sans";src:url(fonts/instrument-sans.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans repli";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Arimo");font-weight:400 700;font-style:normal;size-adjust:103.04%;ascent-override:94.14%;descent-override:24.26%;line-gap-override:0%}
@font-face{font-family:"Instrument Sans titre repli";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("Arimo Bold");font-weight:400 700;font-style:normal;size-adjust:98.84%;ascent-override:98.13%;descent-override:25.29%;line-gap-override:0%}
:root{--radius-field:12px;--radius-form:24px;--bg:#f5f5f2;--surface:#ebebe6;--card:#ffffff;--ink:#18191c;--muted:#55575c;--line:#d8d8d2;--field:#83858a;--accent:#317644;--accent-hover:#255933;--accent-ink:#ffffff;--dark:#174032;--dark-ink:#f5f5f2;--dark-muted:#b9bbc0;--dark-accent:#51b76d;--display-weight:500;--display-tracking:-0.04em;--radius:6px;--radius-sm:4px;--radius-lg:14px;--radius-mono:999px;--radius-btn:999px;--radius-panel:24px;--font-display:"Instrument Sans","Instrument Sans repli",Arial,sans-serif;--font-body:"Instrument Sans","Instrument Sans repli",Arial,sans-serif;--figure-scale:0.85;--ease:cubic-bezier(.16,1,.3,1)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--accent);color:var(--accent-ink)}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);line-height:1.12;text-wrap:balance;overflow-wrap:break-word}
p{margin:0}
a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
ul,ol,dl,dd,figure{margin:0;padding:0}
ul,ol{list-style:none}
address{font-style:normal}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}
.band-dark :focus-visible,.hero :focus-visible,.page-head :focus-visible,.site-footer :focus-visible,.preview-bar :focus-visible{outline-color:var(--dark-accent)}
[id]{scroll-margin-top:7rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{width:min(100% - 2.5rem,76rem);margin-inline:auto}
.skip{position:absolute;left:1rem;top:-10rem;z-index:100;background:var(--ink);color:var(--bg);padding:.75rem 1rem;border-radius:var(--radius)}
.skip:focus{top:1rem}
.scroll-progress{position:fixed;inset:0 0 auto;z-index:60;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}

.preview-bar{position:sticky;top:0;z-index:50;background:#111;color:#f5f5f5;font-family:var(--font-body);font-size:.875rem;line-height:1.35}
.preview-bar p{width:min(100% - 1.5rem,76rem);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.35rem 0}
.preview-text{min-width:0}
.preview-price{white-space:nowrap}
.preview-sep{display:none}
.preview-bar strong{font-weight:600}
.preview-cta{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 1.1rem;border-radius:999px;background:#fff;color:#111;font-weight:600;text-decoration:none;white-space:nowrap;transition:background-color .3s}
.preview-cta:hover{background:#e8e8e8}

.site-header{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:saturate(1.8) blur(16px);backdrop-filter:saturate(1.8) blur(16px);border-bottom:1px solid transparent;transition:border-color .4s,box-shadow .5s}
.preview-bar~.site-header{top:var(--bar-h,3.4rem)}
.site-header.is-scrolled{border-bottom-color:var(--line);box-shadow:0 12px 32px -22px rgba(0,0,0,.35)}
.header-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 1rem;padding-top:.7rem;transition:padding .5s var(--ease)}
.brand{order:1;flex:1 1 0;display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:44px;color:var(--ink);text-decoration:none}
.brand-name{font-family:var(--font-display);font-size:1.3rem;line-height:1.1;overflow-wrap:anywhere}
.brand--long .brand-name{font-size:1.05rem}
.bw{display:inline-block;animation:rise .9s var(--ease) backwards;animation-delay:calc(var(--i) * 70ms + .1s)}
.brand-meta{font-size:.78rem;color:var(--muted);line-height:1.3;margin-top:.2rem;animation:fade-up .9s var(--ease) backwards .45s}
.brand-logo{position:relative;display:block;width:fit-content;animation:logo-in 1.3s var(--ease) backwards .1s}
.brand-logo img{height:2.6rem;width:auto;max-width:min(12rem,50vw);object-fit:contain;transition:height .5s var(--ease)}
.is-scrolled .brand-logo img{height:2.1rem}
.brand-shine{position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.9) 48%,transparent 66%) -150% 0/250% 100% no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;animation:shine 1.6s var(--ease) backwards 1.1s}
.brand:hover .brand-shine{animation:shine-again 1.2s var(--ease)}
.header-cta{order:2;flex:none}
.header-cta .btn{min-height:44px;padding:.5rem 1.1rem;font-size:.95rem}
.nav{--nav-pad:.7rem;order:3;flex:1 0 100%;min-width:0;max-height:3.4rem;transition:max-height .5s var(--ease),opacity .4s,visibility .4s}
.nav ul{display:flex;gap:.1rem;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * var(--nav-pad))}
.nav li{flex:none}
.nav a,.nav-soon{position:relative;display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:0 var(--nav-pad);color:var(--muted);text-decoration:none;font-size:.94rem;white-space:nowrap;transition:color .3s}
.nav a::after{content:"";position:absolute;left:var(--nav-pad);right:var(--nav-pad);bottom:.6rem;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .5s var(--ease)}
.nav a:hover{color:var(--ink)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:0 50%}
.nav a[aria-current="page"]{color:var(--ink);font-weight:600}
.nav a[aria-current="page"]::after{background:var(--accent)}
.nav .nav-soon{flex-direction:column;align-items:flex-start;justify-content:center;gap:.1rem;line-height:1.1}
.nav-soon small{font-size:.68rem;color:var(--muted)}
@media (max-width:29.99rem){.brand-name{font-size:1.12rem}.brand--long .brand-name{font-size:.98rem}.nav{--nav-pad:.45rem}}
@media (max-width:63.99rem){.is-scrolled .nav{max-height:0;opacity:0;visibility:hidden}.is-scrolled .header-bar{padding:.4rem 0}.nav ul{padding-inline-end:2rem;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 2rem),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 2rem),transparent)}}

.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:3.25rem;padding:.8rem 1.35rem;border:1px solid transparent;border-radius:var(--radius-btn);font:inherit;font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;cursor:pointer;text-align:center;transition:transform .7s var(--ease),background-color .3s,color .3s,border-color .3s,box-shadow .5s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%) 250% 0/250% 100% no-repeat;transition:background-position 1s var(--ease)}
.btn:hover::before{background-position:-150% 0}
.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 12px 30px -14px color-mix(in srgb,var(--accent) 80%,transparent)}
.btn-primary:hover{background:var(--accent-hover);box-shadow:0 18px 40px -16px color-mix(in srgb,var(--accent) 90%,transparent)}
.btn-ghost{border-color:var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--bg)}
.btn-ghost-light{border-color:color-mix(in srgb,var(--dark-ink) 35%,transparent);background:color-mix(in srgb,var(--dark-ink) 7%,transparent);color:var(--dark-ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.btn-ghost-light:hover{background:var(--dark-ink);border-color:var(--dark-ink);color:var(--dark)}
.btn-block{width:100%}
.icon{flex:none}
.hero .btn-primary .icon{animation:ring 5s ease-in-out 2.4s infinite}
.actions{display:flex;flex-wrap:wrap;gap:.75rem}
@media (max-width:47.99rem){.actions .btn{flex:1 1 100%}}

.eyebrow{color:var(--accent);margin-bottom:1rem}
.keep{display:inline-block}
.hero{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:min(calc(100svh - 7rem),60rem);padding:6rem 0 1.5rem;background:var(--dark);color:var(--dark-ink)}
.hero-bg{position:absolute;inset:-14% 0 0;z-index:-1;will-change:transform}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:zoom 2.8s var(--ease) backwards}
.hero--photo .hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,color-mix(in srgb,var(--dark) 95%,transparent) 10%,color-mix(in srgb,var(--dark) 60%,transparent) 60%,color-mix(in srgb,var(--dark) 35%,transparent)),linear-gradient(to right,color-mix(in srgb,var(--dark) 75%,transparent),transparent 75%)}
.aurora{display:none}
.hero-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:3rem;align-items:end;will-change:transform,opacity}
.wi{overflow-wrap:anywhere}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.65rem;margin-bottom:1.5rem;padding:.4rem .95rem .4rem .75rem;border:1px solid color-mix(in srgb,var(--dark-ink) 18%,transparent);border-radius:999px;background:color-mix(in srgb,var(--dark-ink) 6%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:.85rem;animation:fade-up .9s var(--ease) backwards .15s}
.pulse{width:.5rem;height:.5rem;flex:none;border-radius:50%;background:var(--dark-accent);animation:pulse 2.4s ease-out infinite}
.hero-title{font-size:clamp(2.3rem,7vw + .6rem,6.4rem);line-height:.98;color:var(--dark-ink)}
.hero-title.is-long{font-size:clamp(2.1rem,4.6vw + .8rem,4.4rem);line-height:1.04}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.24em .06em .14em;margin:-.24em -.06em -.14em}
.wi{display:inline-block;animation:word 1.15s var(--ease) backwards;animation-delay:calc(var(--i) * 55ms + .3s)}
.hero-lead{margin-top:1.5rem;max-width:34rem;font-size:clamp(1.05rem,.5vw + .95rem,1.3rem);color:var(--dark-muted);animation:fade-up 1s var(--ease) backwards .75s}
.hero .actions{margin-top:2rem;animation:fade-up 1s var(--ease) backwards .9s}
.hero-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;margin-top:3.5rem;padding-top:1.25rem;border-top:1px solid color-mix(in srgb,var(--dark-ink) 14%,transparent);animation:fade-up 1s var(--ease) backwards 1.1s}
.hero-facts{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;font-size:.92rem;color:var(--dark-muted)}
.hero-facts li{display:flex;align-items:center;gap:.55rem}
.hero-facts li::before{content:"";width:.35rem;height:.35rem;border-radius:50%;background:var(--dark-accent);flex:none}
.scroll-cue{display:inline-flex;align-items:center;gap:.8rem;min-height:44px;margin-left:auto;color:var(--dark-muted)!important;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none}
.scroll-cue::after{content:"";width:1px;height:2.4rem;background:linear-gradient(var(--dark-ink),transparent);transform-origin:top;animation:cue 2.4s var(--ease) infinite}
.hero-media,.plaque{position:relative;transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .9s var(--ease);animation:frame-in 1.6s var(--ease) backwards .4s}
.hero-media{overflow:hidden;border-radius:calc(var(--radius) + 10px);box-shadow:0 40px 80px -30px rgba(0,0,0,.65)}
.hero-media img{width:100%;aspect-ratio:4/3;object-fit:cover;animation:zoom 2.8s var(--ease) backwards .4s}
.plaque{display:flex;flex-direction:column;justify-content:center;gap:.7rem;min-height:15rem;padding:2.25rem 1.9rem;border-radius:calc(var(--radius) + 14px);background:color-mix(in srgb,var(--dark-ink) 5%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow-wrap:anywhere}
.plaque::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;background:conic-gradient(from var(--a),transparent 0 55%,var(--dark-accent) 75%,transparent 92%),color-mix(in srgb,var(--dark-ink) 16%,transparent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spin 7s linear infinite}
.plaque-name{font-family:var(--font-display);font-size:clamp(2.2rem,6vw + .5rem,3.8rem);line-height:1;letter-spacing:var(--display-tracking);color:var(--dark-ink)}
.plaque-rule{width:3rem;height:1px;background:var(--dark-accent)}
.plaque-activity{color:var(--dark-ink)}
.plaque-city{color:var(--dark-muted)}

.ticker{overflow:hidden;padding:1.15rem 0;background:var(--dark);color:var(--dark-ink);border-top:1px solid color-mix(in srgb,var(--dark-ink) 10%,transparent)}
.ticker-track{display:flex;width:max-content;animation:marquee 40s linear infinite}
.ticker ul{display:flex;flex:none}
.ticker li{display:flex;align-items:center;gap:2.2rem;padding-right:2.2rem;font-family:var(--font-display);font-weight:var(--display-weight);font-size:clamp(1.4rem,2.4vw + .6rem,2.6rem);line-height:1.15;letter-spacing:var(--display-tracking);white-space:nowrap}
.ticker li:nth-child(even){color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--dark-ink) 65%,transparent)}
.ticker li::after{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--dark-accent)}

.section{padding:4.5rem 0}
.section--tight{padding:3rem 0}
.section--flush{padding-top:3rem}
.band{background:var(--surface)}
.band-dark{background:var(--dark);color:var(--dark-ink)}
.band-dark a:not(.btn){color:var(--dark-accent)}
.section-head{max-width:44rem;margin-bottom:2.5rem}
.section-title{font-size:clamp(2rem,4.2vw + .8rem,3.5rem);line-height:1.04}
.section-title--sm{font-size:1.5rem;margin:2.25rem 0 1rem}
.section-lead{margin-top:1.1rem;color:var(--muted);font-size:1.1rem}
.more{margin-top:2rem}
.link-arrow{font-weight:600;display:inline-flex;align-items:center;min-height:44px}
.link-arrow::after{content:"→";margin-left:.5rem;transition:transform .5s var(--ease)}
.link-arrow:hover::after{transform:translateX(5px)}

.section-title+.services-list{margin-top:1.75rem}
.service,.form{position:relative;isolation:isolate}
.service-title{margin:0}
.service-desc{color:var(--muted);margin-top:.5rem}
.service-desc+.service-desc{margin-top:.75rem}
.clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}

.reviews-inner{display:flex;flex-direction:column;gap:1.5rem}
.rating{display:flex;align-items:flex-end;gap:1rem}
.rating-value{font-family:var(--font-display);font-size:clamp(5rem,18vw,10rem);line-height:.8;letter-spacing:-.05em;color:var(--dark-ink);font-variant-numeric:tabular-nums}
.rating-meta{display:flex;flex-direction:column;gap:.2rem;padding-bottom:.3rem}
.rating-scale{font-size:1.35rem;color:var(--dark-accent);font-weight:600}
.rating-count{color:var(--dark-muted)}
.stars-rating{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.2rem .5rem;vertical-align:middle}
.stars{display:inline-flex;gap:.1em;flex:none}
.stars i{width:1.05em;aspect-ratio:1;background:linear-gradient(90deg,var(--star,var(--accent)) var(--f),color-mix(in srgb,currentColor 24%,transparent) var(--f));clip-path:polygon(50% 0,61.8% 35.3%,100% 38.2%,69.1% 61.8%,79.4% 100%,50% 76.4%,20.6% 100%,30.9% 61.8%,0 38.2%,38.2% 35.3%)}
.stars-text{font-weight:600;font-variant-numeric:tabular-nums}
.stars-count{font-weight:400;opacity:.8}
.hero .stars,.band-dark .stars{--star:var(--dark-accent)}
.hero-facts li.has-stars::before{display:none}
.rating-stars{display:flex;gap:.2rem;margin-bottom:.35rem}
.rating-stars i{width:1.35rem;aspect-ratio:1;background:linear-gradient(90deg,var(--dark-accent) var(--f),color-mix(in srgb,var(--dark-ink) 22%,transparent) var(--f));clip-path:polygon(50% 0,61.8% 35.3%,100% 38.2%,69.1% 61.8%,79.4% 100%,50% 76.4%,20.6% 100%,30.9% 61.8%,0 38.2%,38.2% 35.3%)}

.gallery{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:2rem}
.gallery li{overflow:hidden;border-radius:var(--radius)}
.gallery img{width:100%;aspect-ratio:1/1;object-fit:cover}
.gallery li:hover img{transform:scale(1.06);transition:transform 1s var(--ease)}

.prose{max-width:42rem}
.prose p{font-size:1.0625rem}
.prose p+p{margin-top:1rem}
.about .prose p:first-child{font-size:clamp(1.2rem,1vw + 1rem,1.5rem);line-height:1.5;color:var(--ink)}
.about-text{margin-top:1.5rem}
.about-page.has-photo{display:grid;gap:2rem}
.about-media{overflow:hidden;border-radius:var(--radius)}
.about-media img{width:100%;aspect-ratio:4/5;object-fit:cover}

.areas{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}
.areas li{border-radius:var(--radius-btn);display:flex;transition:background-color .3s,color .3s}
.areas li,.areas a{min-height:44px;align-items:center;padding:0 1.15rem}
.areas a{display:flex;margin:0 -1.15rem;font-weight:600;color:inherit;text-decoration:none}
.areas li:has(a){color:var(--accent)}
.areas li:has(a):hover{background:var(--accent);color:var(--accent-ink)}
.facts .areas{margin-top:.25rem}

.page-head{position:relative;isolation:isolate;overflow:hidden;padding:4rem 0 3.5rem;background:var(--dark);color:var(--dark-ink)}
.page-head .eyebrow{color:var(--dark-accent);animation:fade-up .9s var(--ease) backwards .1s}
.page-head h1{font-size:clamp(2.4rem,6vw + .8rem,5rem);line-height:1;color:var(--dark-ink);animation:fade-up 1.2s var(--ease) backwards .2s}
.page-lead{margin-top:1.1rem;font-size:1.15rem;color:var(--dark-muted);max-width:40rem;animation:fade-up 1.2s var(--ease) backwards .35s}

.contact-grid{display:grid;gap:2.5rem}
.coords,.facts{display:grid;gap:1.1rem}
.coords{margin-top:1.75rem}
.coords dt,.facts dt{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}
.coords dd,.facts dd{margin-top:.2rem;font-size:1.0625rem}
.coords a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;font-size:1.15rem}
.legal{max-width:44rem}
.legal .section-title--sm:first-child{margin-top:0}
.legal-text p,.legal .legal-list{font-size:1.0625rem;max-width:42rem}
.legal-text p+p{margin-top:1rem}
.legal-subtitle{margin:1.5rem 0 .5rem;font-size:1.1rem}
.legal-list{margin:.75rem 0 1rem;padding-left:1.25rem;list-style:disc}
.legal-list li+li{margin-top:.35rem}

.form{background:var(--card);border-radius:var(--radius-form);padding:1.5rem;display:grid;gap:1.1rem;align-content:start}
.form-title{font-size:1.5rem}
.form-help,.form-note{font-size:.875rem;color:var(--muted)}
.field{display:grid;gap:.35rem}
.field label{font-weight:600;font-size:.95rem}
.optional{font-weight:400;color:var(--muted)}
.field input,.field textarea,.form select{width:100%;min-height:3.25rem;padding:.8rem 1rem;border:1px solid var(--field);border-radius:var(--radius-field);background:#fff;color:#14110f;font:inherit;font-size:1rem;transition:border-color .3s,box-shadow .4s var(--ease)}
.field textarea{resize:vertical;min-height:8rem}
.field input:hover,.field textarea:hover,.form select:hover{border-color:var(--ink)}
.field input:focus-visible,.field textarea:focus-visible,.form select:focus-visible{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

.cta-band{position:relative;overflow:hidden}
.cta-title{font-size:clamp(2.2rem,5.5vw + .8rem,4.8rem);line-height:1;color:var(--dark-ink)}
.cta-meta{margin-top:.8rem;color:var(--dark-muted)}
.cta-band .actions{margin-top:2rem}

.site-footer{overflow:hidden;background:var(--dark);color:var(--dark-muted);padding:3.5rem 0 0;font-size:.95rem}
.site-footer a{color:var(--dark-ink);display:inline-flex;align-items:center;min-height:44px;text-decoration:none;transition:color .3s}
.site-footer a:hover{color:var(--dark-accent)}
.footer-grid{display:grid;gap:2rem}
.footer-logo{height:2.5rem;width:auto;max-width:12rem;object-fit:contain;margin-bottom:1rem}
.footer-brand{font-family:var(--font-display);font-size:1.4rem;color:var(--dark-ink);margin-bottom:.35rem}
.footer-id address{margin-top:.5rem}
.footer-links{display:grid;grid-template-columns:1fr 1fr;column-gap:1rem}
.site-footer .nav-soon{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.3rem;min-height:44px;color:var(--dark-muted)}
.site-footer .nav-soon small{color:var(--dark-muted);font-size:.75rem}
.footer-giant{margin-top:3rem;font-family:var(--font-display);font-weight:var(--display-weight);font-size:min(14vw,calc(150vw / var(--chars,12)));line-height:.82;letter-spacing:-.045em;white-space:nowrap;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--dark-ink) 22%,transparent),transparent 88%);-webkit-background-clip:text;background-clip:text;color:transparent;user-select:none}

@media (min-width:48rem){
body{font-size:1.09rem}
.preview-bar p{justify-content:center}
.preview-sep{display:inline}
.btn{padding:.8rem 1.6rem}
.wrap{width:min(100% - 4rem,76rem)}
.section{padding:7rem 0}
.section--tight{padding:4rem 0}
.section--flush{padding-top:4rem}
.page-head{padding:6rem 0 4.5rem}
.gallery{grid-template-columns:repeat(3,1fr);gap:1rem}
.reviews-inner{flex-direction:row;align-items:center;justify-content:space-between}
.contact-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:4.5rem;align-items:start}
.form{padding:2.4rem}
.about-page.has-photo{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:4.5rem;align-items:start}
.footer-grid{grid-template-columns:1.3fr 1fr 1fr}
.plaque{min-height:24rem;padding:3rem}
}
@media (min-width:64rem){
.header-bar{flex-wrap:nowrap;padding:1rem 0}
.is-scrolled .header-bar{padding:.55rem 0}
.brand{flex:0 1 auto}
.nav{order:2;flex:0 1 auto;max-height:none}
.nav ul{margin:0}
.header-cta{order:3}
.hero{min-height:min(calc(100svh - 5rem),62rem);padding-top:8rem}
.hero--frame .hero-inner,.hero--type .hero-inner{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:4.5rem}
.hero-media img{aspect-ratio:4/5}
}

@keyframes rise{from{opacity:0;transform:translateY(70%);filter:blur(4px)}}
@keyframes fade-up{from{opacity:0;transform:translateY(1.5rem);filter:blur(6px)}}
@keyframes word{from{opacity:0;transform:translateY(108%) rotate(5deg)}}
@keyframes zoom{from{transform:scale(1.2);filter:brightness(.35) blur(8px)}}
@keyframes frame-in{from{opacity:0;clip-path:inset(14% 14% 14% 14% round 2rem);transform:perspective(1100px) translateY(2rem) scale(.94)}}
@keyframes logo-in{from{opacity:0;clip-path:inset(0 100% 0 0);filter:blur(8px);transform:translateX(-10px)}}
@keyframes shine{from{background-position:250% 0}}
@keyframes shine-again{from{background-position:250% 0}}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--dark-accent) 60%,transparent)}70%,to{box-shadow:0 0 0 .55rem transparent}}
@keyframes cue{0%{transform:scaleY(0)}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}
@keyframes spin{to{--a:360deg}}
@keyframes marquee{to{transform:translate3d(-50%,0,0)}}
@keyframes ring{0%,8%,to{transform:none}2%,6%{transform:rotate(-14deg)}4%{transform:rotate(14deg)}}
@keyframes reveal-anyway{to{opacity:1;transform:none;clip-path:inset(0)}}
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
body{font-feature-settings:"kern","liga","calt";font-optical-sizing:auto}
.hero .wi,.hero-lead,.hero .actions,.hero .btn-primary .icon,.page-head h1,.page-head .page-lead,.brand-logo,.bw{animation:none}
.hero{min-height:auto;padding:0;background:var(--bg);color:var(--ink);display:block;overflow:visible}
.hero-title{color:inherit}
.hero-head{container-type:inline-size;justify-self:stretch}
.hero .hero-title{--fit:calc(100cqi / (var(--longest,10) * var(--glyph,.62)));font-size:min(var(--ts,3rem),var(--fit));max-width:max(var(--tw,100%),calc(var(--longest,10) * var(--glyph,.62) * 1em));overflow-wrap:normal;word-break:normal;hyphens:manual}
.hero .hero-title .wi{overflow-wrap:normal;word-break:normal}
.hero .hero-title.keeps-compounds .wi{white-space:nowrap}
@media (min-width:64rem){
.hero{--logo-max:13svh}
.hero .hero-mono{max-width:13svh;max-height:13svh}
.hero-head:has(>.hero-logo) .hero-title{--mark:calc(min(var(--logo-h),var(--logo-max)) + 3rem)}
.hero-head:has(>.hero-mono) .hero-title{--mark:calc(min(9rem,13svh) + 2rem)}
.preview-bar~main .hero .hero-title{--bar:3.45rem}
.hero--full.has-logo .hero-grid{padding-top:clamp(2.5rem,7vh,6rem)}
}
@media (min-width:64rem) and (max-height:47.99rem){
.hero-head>.hero-mono{display:none}
.hero-head:has(>.hero-mono) .hero-title{--mark:0px}
}
@media (min-width:64rem){.hero .hero-title{--avail:calc(100svh - var(--bar,0px) - var(--mark,0px) - var(--brand-x,0px))}}
html:has(.brand--wide .brand-logo img){--brand-x:2rem}
@media (min-width:64rem){.hero .hero-title{--lines:min(3,round(up,calc(var(--chars,40) / var(--cpl,14)),1));font-size:min(var(--ts,3rem),var(--fit),calc(100cqi * 2.8 / (var(--chars,40) * var(--glyph,.62))),calc(var(--room,100svh) / (var(--lines) * var(--lh,.95))));max-width:max(var(--tw,100%),calc(var(--longest,10) * var(--glyph,.62) * 1em),calc(var(--chars,40) * var(--glyph,.62) * 1em / 2.8))}}
.hero-lead{color:var(--muted)}
.hero :focus-visible{outline-color:var(--accent)}
.hero-facts{color:var(--muted)}
/* Type hero without a photo: soft brand wash + city/trust chip so the first screen is not a blank sheet. */
.hero--type.hero--typed{position:relative;isolation:isolate;overflow:hidden}
.hero--type.hero--typed::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 80% at 100% 0%,color-mix(in srgb,var(--hero-accent,var(--accent)) 22%,transparent),transparent 55%),linear-gradient(165deg,color-mix(in srgb,var(--hero-accent,var(--accent)) 8%,var(--bg)) 0%,var(--bg) 42%,color-mix(in srgb,var(--surface) 70%,var(--bg)) 100%)}
.hero-chip{display:inline-flex;align-items:center;gap:.45rem;margin:0;padding:.35rem .75rem;border-radius:999px;background:color-mix(in srgb,var(--hero-accent,var(--accent)) 14%,var(--card));color:var(--ink);font-size:.85rem;font-weight:600;letter-spacing:.01em}
.services-list--stack{grid-template-columns:1fr!important}
.services-list--stack .service{padding-block:1.25rem}
.hero-facts li::before{display:none}
.hero-img{animation:none}
.hero-grid{display:grid;gap:1.6rem;min-width:0}
.hero-head{display:grid;gap:clamp(1rem,2.4vw,1.8rem);justify-items:start;align-content:start;min-width:0}
.hero-copy{display:grid;gap:1.4rem;justify-items:start;align-content:start;min-width:0}
.hero .actions{margin:0}
.hero-figure{position:relative;overflow:hidden;margin:0;background:var(--surface);border-radius:var(--radius-lg,var(--radius))}
.hero-figure img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.hero-logo{line-height:0;max-width:100%}
.hero{--logo-h:clamp(4rem,8vw,7.5rem);--logo-max:100vh}
.hero-logo img{display:block;width:auto;height:min(var(--logo-h),var(--logo-max));object-fit:contain}
.hero.logo-square,.hero.logo-tall{--logo-h:clamp(5rem,9vw,8rem)}
.hero-logo.is-framed,.hero-badge,.brand-logo.is-framed,.foot-logo.is-framed{background:var(--card);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 10%,transparent),0 24px 48px -32px rgb(0 0 0/.5)}
.hero-logo.is-framed{padding:clamp(.5rem,1vw,.8rem);border-radius:var(--radius-sm,8px)}
.hero-badge{position:absolute;left:clamp(.8rem,2vw,1.4rem);bottom:clamp(.8rem,2vw,1.4rem);z-index:1;padding:clamp(.45rem,1vw,.7rem);border-radius:var(--radius-sm,8px);line-height:0}
.hero-badge img{display:block;width:auto;height:clamp(3rem,6vw,5.5rem);object-fit:contain}
.hero-mono{display:grid;place-items:center;width:clamp(4.5rem,9vw,7rem);aspect-ratio:1;border-radius:var(--radius-mono,var(--radius));background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);font-weight:700;font-size:clamp(1.7rem,3.4vw,2.7rem);letter-spacing:-.04em;line-height:1}
:root:has(.preview-bar){--bar-h:3.45rem}
.hero--full{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:min(calc(100svh - var(--bar-h,0px) - 5.5rem),60rem);color:var(--dark-ink);overflow:hidden}
.hero-backdrop{position:absolute;inset:0;z-index:-1}
.hero.hero--full .hero-backdrop .hero-figure{height:100%;border-radius:0}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
@media (prefers-reduced-motion:reduce){.hero-video{display:none}}
.hero-backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,color-mix(in srgb,var(--dark) 94%,transparent) 0%,color-mix(in srgb,var(--dark) 82%,transparent) 38%,color-mix(in srgb,var(--dark) 40%,transparent) 66%,transparent 92%)}
.hero--full .hero-grid{padding-block:clamp(7rem,16vh,11rem) clamp(2.2rem,6vh,4.5rem)}
.hero.hero--full .hero-title,.hero.hero--full .hero-lead,.hero.hero--full .hero-facts{color:var(--dark-ink)}
.hero--full .btn-ghost{border-color:color-mix(in srgb,var(--dark-ink) 60%,transparent);color:var(--dark-ink)}
.hero--full .btn-ghost:hover{background:var(--dark-ink);color:var(--dark)}
.hero--full :focus-visible{outline-color:var(--dark-accent)}
.hero--full .hero-logo{padding:clamp(.5rem,1vw,.8rem);border-radius:var(--radius-sm,8px);background:var(--card)}
.hero--full .hero-badge{left:auto;bottom:auto;right:clamp(1.25rem,4vw,4rem);top:clamp(1.25rem,4vw,3rem)}
.hero--photo .hero-figure,.hero--portrait .hero-figure{min-height:12rem}
@media (max-width:47.99rem){
.hero-grid{gap:1.15rem}
.hero-head{gap:.9rem}
.hero-copy{gap:1.15rem}
.hero-grid>.hero-figure,.hero-grid>.hero-mosaic{order:-1}
.hero-grid>.hero-figure{aspect-ratio:16/9}
.hero-lead{font-size:1.05rem}
.hero .btn-detail{display:none}
.hero .actions{width:100%;gap:.6rem}
.hero .actions .btn{flex:1 1 0;padding-inline:.9rem;white-space:nowrap}
.hero--full{min-height:min(calc(100svh - var(--bar-h,0px) - 7rem),44rem)}
.hero--full .hero-grid{padding-block:9rem 1.75rem}
}
.brand--type,.brand--mark{flex-direction:row;align-items:center;justify-content:flex-start;gap:.7rem}
.brand-text{display:flex;flex-direction:column;min-width:0}
.brand-mono{flex:none;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-mono,var(--radius));background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);font-weight:700;font-size:1.05rem;letter-spacing:-.02em;line-height:1}
.brand .brand-name{font-family:var(--font-display);font-weight:700;letter-spacing:-.025em;line-height:1.1;text-wrap:balance}
.brand--type .brand-name{font-size:clamp(1.05rem,calc((100vw - 10rem) / (var(--chars,12) * .56)),1.5rem)}
.brand--type .brand-mono{display:none}
.brand--type .brand-text{position:relative;padding-left:.8rem;gap:.1rem}
.brand--type .brand-text::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:3px;border-radius:2px;background:var(--accent)}
@media (min-width:48rem){.brand--type .brand-name{font-size:clamp(1.15rem,calc((100vw - 10rem) / (var(--chars,12) * .56)),1.6rem)}}
.brand--mark .brand-name{font-size:1.2rem}
.brand-trade{font-size:.8rem;line-height:1.3;color:var(--muted);text-wrap:balance}
.brand-logo{line-height:0}
.brand--wide .brand-logo img,.is-scrolled .brand--wide .brand-logo img{height:max(clamp(2.75rem,3.4vw,3.5rem),calc(var(--logo-w,10rem) / var(--lr,4)));max-width:min(16rem,55vw)}
@media (max-width:47.99rem){.brand--wide{--logo-w:8rem}}
.brand--mark .brand-logo img,.is-scrolled .brand--mark .brand-logo img{height:3rem;max-width:none}
.brand-logo.is-framed{padding:.25rem;border-radius:var(--radius-sm,8px)}
.hero-copy,.cta-inner{container-type:inline-size}
@media (min-width:48rem){.actions{flex-wrap:nowrap}.actions>.btn{flex:0 1 auto;white-space:nowrap}}
@container (max-width:34rem){.actions .btn-detail{display:none}}
@container (max-width:23rem){.actions{flex-wrap:wrap}}
.hero-inset{--inset-h:min(70svh,36rem);position:relative;margin:0;width:min(100%,calc(var(--inset-h) * var(--r,1.5)));justify-self:start;align-self:start;border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.hero-inset .hero-img{position:static;display:block;width:100%;height:auto;aspect-ratio:var(--r,1.5)}
@media (max-width:47.99rem){.hero.has-inset .hero-inset{order:-1;--inset-h:55svh}}
.hero-serein.has-inset .hero-inset{justify-self:center}
@media (min-width:64rem){.hero.hero--type.has-inset:is(.hero-massif,.hero-chantier,.hero-terroir,.hero-editorial) .hero-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-areas:"head aside" "copy aside";grid-template-rows:auto 1fr;align-items:start}
.hero.hero--type.has-inset:is(.hero-massif,.hero-chantier,.hero-terroir,.hero-editorial) .hero-inset{--inset-h:min(calc(100svh - 14rem),34rem);justify-self:end;align-self:start;margin-top:.5rem}
.hero.hero--type.has-inset.inset-wide:is(.hero-massif,.hero-chantier,.hero-terroir,.hero-editorial) .hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.hero.hero--type.has-inset.inset-wide:is(.hero-massif,.hero-chantier,.hero-terroir,.hero-editorial) .hero-inset{align-self:center;margin-top:0}}
@media (min-width:64rem){.hero.hero--type.has-aside:not(.has-inset):is(.hero-massif,.hero-chantier,.hero-terroir) .hero-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-areas:"head aside" "copy aside";grid-template-rows:auto 1fr;align-items:start}
.hero.hero--type.has-aside:not(.has-inset):is(.hero-massif,.hero-chantier,.hero-terroir) .hero-aside{margin-top:.6rem}}
.hero .hero-figure.is-whole{--whole-h:min(calc(100svh - 14rem),40rem);width:min(100%,calc(var(--whole-h) * var(--r,1.5)));max-height:none}
@media (max-width:47.99rem){.hero .hero-figure.is-whole{--whole-h:55svh;justify-self:center;margin-inline:auto}}
.photo-whole img{display:block;width:100%;height:auto!important;aspect-ratio:var(--r)!important;object-fit:cover}
.hero-spec{display:grid;margin:0;align-content:start}
.hero-spec>div{display:grid;grid-template-columns:minmax(6.5rem,.7fr) minmax(0,1.3fr);column-gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.hero-spec dt{font-size:.9rem;font-weight:600;color:var(--muted)}
.hero-spec dd{font-weight:700;font-size:1.02rem;line-height:1.35;min-width:0}
.hero-spec>.spec-figure{grid-column:1/-1;grid-template-columns:minmax(0,1fr);row-gap:.35rem;border-bottom:0;padding-bottom:1.1rem}
.spec-figure dd{display:block}
.hero-spec .spec-num{font-family:var(--font-display);font-size:clamp(3.4rem,6vw,5.2rem);font-weight:800;line-height:.95;letter-spacing:-.045em;font-variant-numeric:lining-nums}
.hero-spec .spec-pre{display:block;margin-bottom:.15rem;font-size:1.05rem;font-weight:600;letter-spacing:0}
.hero-spec .spec-post{margin-left:.5rem;font-size:1.05rem;font-weight:600;letter-spacing:0}
.spec-detail{display:block;margin-top:.2rem;font-weight:400;font-size:.92rem;color:var(--muted)}
.service-prices{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin:1.6rem 0 0;padding:1rem 0 0;border-top:1px solid var(--line);list-style:none}
.service-prices li{display:grid;gap:.1rem}
.services-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.6rem 0 0;padding:0;list-style:none}
.services-tags li{display:inline-flex;align-items:center;min-height:44px;padding:.4rem 1rem;border:1px solid var(--line);border-radius:var(--radius-pill,999px);background:var(--card);font-weight:600;line-height:1.2}
.services-tags li::before{display:none}
.services-tags a{color:inherit;text-decoration:none}
.services-tags a:hover{color:var(--accent)}
.services-also{margin:1.4rem 0 0;color:var(--muted)}
.services-also a{color:var(--ink);font-weight:600}
.price-label{font-weight:600}
.price-detail{color:var(--muted);font-size:.95rem}
.about.has-photo{display:grid;gap:1.6rem 4rem;align-items:start}
.about.has-photo .about-media{margin:0;width:100%;justify-self:start}
.about.has-photo .about-media img{aspect-ratio:4/5}
.about.has-photo .about-media.photo-whole{width:min(100%,var(--max-w))}
@media (min-width:64rem){.about.has-photo{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-areas:"title media" "text media";justify-items:stretch}.about.has-photo>.section-title{grid-area:title}.about.has-photo>.about-text{grid-area:text;margin-top:0}.about.has-photo>.about-media{grid-area:media}}
.about-page.is-photo-only{grid-template-columns:minmax(0,1fr)}
.gallery.gallery--thumbs{display:flex;flex-wrap:wrap;gap:var(--gallery-gap,.75rem);grid-auto-rows:auto}
.gallery--thumbs li{flex:1 1 12rem;width:100%}
.gallery--thumbs img{height:auto;aspect-ratio:4/3}
.gallery.gallery--ratio{display:flex;flex-wrap:wrap;gap:var(--gallery-gap,.75rem);grid-auto-rows:auto}
.gallery--ratio li{flex:var(--r,1.5) 1 calc(var(--r,1.5) * 13rem);aspect-ratio:var(--r,1.5)}
.gallery--ratio img{height:100%;aspect-ratio:auto;object-fit:cover}
@media (max-width:47.99rem){.gallery:is(.gallery--ratio,.gallery--thumbs) li{flex-basis:100%}.gallery:is(.gallery--ratio,.gallery--thumbs) li:not(.is-brand){max-width:none!important}.gallery:is(.gallery--ratio,.gallery--thumbs) li.is-brand{margin-inline:auto}}
.foot-today{margin-top:.9rem;color:var(--dark-muted)}
.foot-today-label{color:var(--dark-ink);font-weight:600}
.foot-today .today{display:inline}
html:not(.has-motion) .foot-today:has(.today:empty){display:none}
.open-now{--open:#16884a;display:block;min-height:1.4em;margin:0;font-size:.95rem;font-weight:500;line-height:1.4;color:var(--ink)}
@media (scripting:enabled){.open-now[hidden]{display:block;visibility:hidden}}
.open-dot{display:inline-block;width:.55rem;height:.55rem;margin-right:.55rem;border-radius:50%;vertical-align:.05em;background:color-mix(in srgb,currentColor 40%,transparent)}
.open-now.is-open .open-dot{background:var(--open);box-shadow:0 0 0 .22rem color-mix(in srgb,var(--open) 22%,transparent)}
.open-now.is-closed .open-text{color:var(--muted)}
.open-now a{display:inline-block;margin-left:.6rem;padding-block:.6rem;margin-block:-.6rem;color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
.open-now a:hover{color:var(--accent)}
.hero .actions+.open-now{margin-top:-.5rem}
.quick-phone+.open-now{margin-top:.9rem}
:is(.hero--full,.contact-quick) .open-now{--open:#4fd486;color:var(--dark-ink)}
:is(.hero--full,.contact-quick) .open-now.is-closed .open-text{color:var(--dark-muted)}
:is(.hero--full,.contact-quick) .open-now a:hover{color:var(--dark-accent)}
.hero-spec .open-now{min-height:0;font:inherit;color:inherit}
@media (scripting:none){.spec-open{display:none}}
:is(.hero-spec--massif,.hero-spec--chantier) .open-now{--open:#4fd486}
:is(.hero-spec--massif,.hero-spec--chantier) .open-now.is-closed .open-text{color:var(--dark-muted)}
:is(.hero-spec--massif,.hero-spec--chantier) .open-now a:hover{color:var(--dark-accent)}
.btn-tel{display:none;font-variant-numeric:tabular-nums}
@media (min-width:64rem) and (hover:hover) and (pointer:fine){.btn:has(>.btn-tel)>.btn-label{display:none}.btn>.btn-tel{display:inline}}
:where(p,li,dd){text-wrap:pretty}
@media (prefers-reduced-motion:no-preference){
@view-transition{navigation:auto}
.site-header{view-transition-name:site-header}
.preview-bar{view-transition-name:preview-bar}
.action-bar{view-transition-name:action-bar}
::view-transition-old(root){animation:.18s ease-in both vt-out}
::view-transition-new(root){animation:.42s cubic-bezier(.2,.7,.1,1) both vt-in}
}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translate3d(0,.75rem,0)}}
@media (max-width:47.99rem){
.header-cta .btn{width:44px;min-width:44px;padding:0;gap:0}
.header-cta .btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.header-cta,.action-bar{transition:opacity .35s,visibility .35s,transform .5s var(--ease)}
.has-motion body:not(.cta-away) .header-cta{opacity:0;visibility:hidden}
.has-motion body:not(.cta-away) .action-bar{transform:translateY(calc(100% + 1.5rem));visibility:hidden}
@media (scripting:enabled){body:not(.cta-away) .action-bar{transform:translateY(calc(100% + 1.5rem));visibility:hidden}}
body:has(.action-bar) .header-cta{display:none}
.hero .hero-figure{max-height:55svh}
.hero.hero--portrait .hero-figure:not(.is-whole){aspect-ratio:4/5;height:auto;min-height:0}
.hero-mosaic .hero-figure{max-height:none}
.hero-mosaic{max-height:55svh}
}
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(8.5rem,40vw,15rem);grid-auto-flow:dense;gap:var(--gallery-gap,.75rem);margin-top:2rem;columns:auto}
.gallery li{overflow:hidden;margin:0;border-radius:var(--radius)}
.gallery img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.gallery--n3 li:first-child,.gallery--n5 li:first-child{grid-column:span 2}
@media (min-width:48rem){
.gallery{grid-auto-rows:clamp(11rem,17vw,17rem)}
.gallery--n3{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.gallery--n3 li:first-child{grid-column:auto;grid-row:span 2}
.gallery--n4{grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr))}
.gallery--n4 li:first-child{grid-row:span 2}
.gallery--n4 li:last-child{grid-column:span 2}
.gallery--n5{grid-template-columns:repeat(4,minmax(0,1fr))}
.gallery--n5 li:first-child{grid-row:span 2}
.gallery--n6{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery--n6 li:first-child{grid-column:span 2;grid-row:span 2}
}
.quick-grid{display:grid;gap:2.5rem}
.contact-quick .section-title{font-size:clamp(2.2rem,4.8vw,4.4rem)}
.quick-phone{display:inline-flex;align-items:center;min-height:44px;margin-top:1.6rem;font-family:var(--font-display);font-weight:var(--display-weight);font-size:calc(clamp(2.4rem,5.6vw,5.2rem) * var(--digit-scale,1));letter-spacing:0;font-variant-numeric:tabular-nums;line-height:1;color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.quick-phone:hover{color:var(--accent)}
.quick-hours{margin-top:1rem;color:var(--muted)}
@media (min-width:64rem){.quick-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:5rem;align-items:center}}
.contact-quick.band{background:var(--dark);color:var(--dark-ink)}
.contact-quick .section-lead,.contact-quick .quick-hours{color:var(--dark-muted)}
.contact-quick .quick-phone{color:var(--dark-ink)}
.contact-quick .quick-phone:hover,.contact-quick .more a{color:var(--dark-accent)}
.contact-quick :focus-visible{outline-color:var(--dark-accent)}
.contact-quick .form{color:var(--ink);border-color:transparent}
.contact-quick .form :focus-visible{outline-color:var(--accent)}
.form-lead{color:var(--muted)}
.form-more{display:grid;gap:1.1rem}
.form-more summary{display:flex;align-items:center;gap:.4rem;min-height:44px;cursor:pointer;font-weight:600}
.contact-areas{margin-top:1.75rem;color:var(--muted)}
.site-footer--modern{padding:clamp(3.5rem,7vw,6rem) 0 clamp(1rem,2vw,1.5rem)}
.foot{display:grid;gap:2.2rem 3rem}
.foot-logo{display:inline-block;line-height:0}
.foot-logo img{display:block;height:clamp(3.5rem,5vw,4.5rem);width:auto;max-width:100%;object-fit:contain;margin:0}
.foot-logo.is-framed{padding:.5rem;border-radius:var(--radius-sm,8px)}
.foot-name{display:flex;align-items:center;gap:.8rem;font-family:var(--font-display);font-weight:700;font-size:1.5rem;line-height:1.15;letter-spacing:-.03em;color:var(--dark-ink)}
.foot-trade{margin-top:.9rem;color:var(--dark-muted);text-wrap:pretty}
.foot-call{display:grid;justify-items:start;align-content:start;width:100%;min-width:0;container-type:inline-size}
.site-footer .foot-phone{font-family:var(--font-display);font-weight:var(--display-weight);font-size:min(calc(clamp(2.2rem,5vw,4.2rem) * var(--digit-scale,1)),100cqi / (var(--tel-em,8.3) * var(--figure-scale,1)));letter-spacing:0;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
.foot-title{font-family:var(--font-body);font-size:1rem;font-weight:600;letter-spacing:0;line-height:1.3;color:var(--dark-ink);margin:0 0 .5rem}
.site-footer .foot-route{text-decoration:underline;text-underline-offset:.3em;text-decoration-thickness:1px}
.foot-nav .footer-links{display:grid;grid-template-columns:1fr 1fr;column-gap:1.5rem}
@media (min-width:48rem){.foot-nav .footer-links{display:flex;flex-wrap:wrap;column-gap:2.25rem}}
.foot-base{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 2rem;margin-top:clamp(1.5rem,3vw,2.5rem);padding-top:.5rem;border-top:1px solid color-mix(in srgb,var(--dark-ink) 14%,transparent);font-size:.85rem;color:var(--dark-muted)}
.foot-legal{display:flex;flex-wrap:wrap;column-gap:1.5rem}
.site-footer .foot-legal a{color:var(--dark-muted)}
.site-footer .foot-legal a:hover,.site-footer .foot-legal a[aria-current]{color:var(--dark-ink)}
.foot-base .site-credit{font-size:inherit}
.btn{transition:background-color .25s,color .25s,border-color .25s}
.link-arrow{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.35em}
.link-arrow::after{content:none}
.link-arrow:hover{text-decoration-thickness:2px}
.cta-title em{font-style:normal;color:inherit;background:none;-webkit-text-fill-color:currentColor}
.service::before{display:none}
.coords dt,.facts dt,.eyebrow{text-transform:none;letter-spacing:0;font-size:.9rem;font-weight:600;color:var(--muted)}
.site-header{transition:background-color .4s,box-shadow .4s}
.site-header.is-scrolled{background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 1px 0 color-mix(in srgb,var(--ink) 10%,transparent)}
@media (max-width:63.99rem){.site-header{position:relative;top:auto}.preview-bar~.site-header{top:auto}.is-scrolled .nav{max-height:3.4rem;opacity:1;visibility:visible}.is-scrolled .header-bar{padding:.7rem 0 0}[id]{scroll-margin-top:1rem}}
.figures-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1.5rem 2rem;padding-top:2rem}
.figures-list dd{font-family:var(--font-display);font-size:clamp(3rem,7vw,5.5rem);line-height:.9;letter-spacing:-.04em;font-variant-numeric:tabular-nums;order:-1}
.figures-list div{display:flex;flex-direction:column;gap:.6rem}
.figures-list dt{color:var(--muted);font-size:.95rem}
.figures-list dt .stars{display:flex;margin-bottom:.35rem;font-size:1.15rem}
.hero .stars{--star:var(--accent)}
.hero.hero--full .stars{--star:var(--dark-accent)}
.hero .hero-facts li.has-stars::before{display:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm,4px)}
.btn:focus-visible{outline-offset:4px;border-radius:var(--radius-btn)}
.skip{background:var(--accent);color:var(--accent-ink);font-weight:600;border-radius:var(--radius-btn);padding:.8rem 1.3rem;text-decoration:none;box-shadow:0 12px 30px -12px rgb(0 0 0/.45)}
.skip:focus-visible{outline-color:var(--ink)}
.hours{width:100%;max-width:27rem;border-collapse:collapse;font-variant-numeric:tabular-nums;line-height:1.4}
.hours th,.hours td{padding:.55rem 0;text-align:left;vertical-align:baseline;border-bottom:1px solid var(--line)}
.hours th{font-weight:600;padding:.55rem 1.25rem .55rem .7rem;white-space:nowrap;box-shadow:inset 3px 0 0 transparent}
.hours td{color:var(--muted)}
.hours-slot{white-space:nowrap}
.hours tr.is-today th{box-shadow:inset 3px 0 0 var(--accent);color:var(--accent)}
.hours tr.is-today td{color:var(--ink)}
.tel-gap{margin-left:.12em}
.contact-grid--page .contact-info{display:grid;gap:2.2rem;align-content:start}
.contact-grid--page .contact-info>.section-title{margin-bottom:-.8rem}
@media (min-width:64rem){.contact-grid--page{grid-template-columns:minmax(0,1fr) minmax(0,34rem);gap:clamp(3rem,6vw,6rem)}}
.coords-route{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:.3em;text-decoration-thickness:1px}
.coords-route:hover{color:var(--accent)}
.contact-sub{margin:0 0 .7rem;font-family:var(--font-body,inherit);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.contact-info>div+div,.contact-info>div+.contact-areas{margin-top:2.2rem}
.contact-proofs{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
.contact-proofs li{display:grid;gap:.15rem;padding:.75rem 0;border-bottom:1px solid var(--line);font-weight:600;color:var(--ink)}
.contact-proofs .contact-rating{color:var(--accent)}
.contact-proof-detail{font-weight:400;font-size:.92em;color:var(--muted)}
.hours-note{max-width:27rem;margin:.7rem 0 0;font-size:.92em;line-height:1.45;color:var(--muted)}
.hours--foot+.hours-note{max-width:22rem;color:var(--dark-muted)}
.hours--quick+.hours-note{color:inherit}
.hours--foot{max-width:22rem;font-size:.92rem}
.hours--foot th,.hours--foot td{border-color:color-mix(in srgb,var(--dark-ink) 16%,transparent)}
.hours--foot th{color:var(--dark-ink)}
.hours--foot td{color:var(--dark-muted)}
.hours--foot tr.is-today th{box-shadow:inset 3px 0 0 var(--dark-accent);color:var(--dark-ink)}
.hours--quick th,.hours--quick td,.hours--quick tr.is-today th,.hours--quick tr.is-today td{color:inherit}
.hours--quick th,.hours--quick td{border-color:color-mix(in srgb,currentColor 22%,transparent)}
.hours--quick tr.is-today th{box-shadow:inset 3px 0 0 currentColor}
.hours--foot tr.is-today td{color:var(--dark-ink)}
.coords-hours dd{margin-top:.4rem}
.quick-hours .hours{margin-top:.2rem}
.today{display:grid;min-width:0}
.today-state,.today-hours,.today--short{display:block;min-height:1.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-hours{font-weight:400;font-variant-numeric:tabular-nums}
.today--split .today-hours,.today--split.today--short{white-space:normal;line-height:1.4;min-height:2.8em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.about-page:not(.has-photo) .facts{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1.6rem 3rem}
.about-page:not(.has-photo) .facts>div:has(.areas){grid-column:1/-1}
.hero-aside{min-width:0}
.hero.hero--type{padding-bottom:clamp(2.5rem,5vw,4rem)}
.hero.hero--type+.section,:where(.hero:not(.hero--full))+.section:where(:not(.band,.band-dark)){padding-top:clamp(2.5rem,5vw,4.5rem)}
.trust-list{display:grid;gap:0 2.5rem;margin-top:2rem;list-style:none;padding:0}
.trust-list li{padding:1rem 0;border-top:1px solid var(--line)}
@media (min-width:48rem){.trust-list{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}}
.trust-label{font-family:var(--font-display);font-weight:var(--display-weight);font-size:clamp(1.15rem,1.4vw,1.4rem);line-height:1.2;letter-spacing:-.02em}
.trust-detail{margin-top:.45rem;color:var(--muted);font-size:.98rem;max-width:30rem}
.trust--page .trust-list{margin-top:1.25rem}
.zones-inner{display:grid;gap:1rem 4rem}
.zones-base{display:grid;gap:.5rem;align-content:end}
.zones-city{font-family:var(--font-display);font-weight:var(--display-weight);font-size:clamp(2.4rem,6vw,5rem);line-height:.95;letter-spacing:var(--display-tracking)}
.zones-city a{color:inherit;text-decoration-thickness:2px}
.zones-from{color:var(--muted)}
.zones-list{max-width:46rem;font-size:clamp(1.08rem,.4vw + 1rem,1.28rem);line-height:1.75;align-self:end}
.zones-list a{font-weight:600;color:inherit;text-decoration-color:var(--accent);text-decoration-thickness:2px}
@media (min-width:64rem){.zones-inner{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.zones-inner>h2{grid-column:1/-1}}
.page-head{padding:clamp(2rem,5vw,4.5rem) 0 clamp(2rem,4vw,3.5rem)}
.page-head-grid{display:grid;gap:1.4rem 3.5rem}
.page-head-title{container-type:inline-size;min-width:0}
.page-head .page-head-title h1{font-size:min(var(--ph,4rem),calc(100cqi / (var(--longest,10) * var(--ph-glyph,.6))));overflow-wrap:normal;hyphens:manual;text-wrap:balance}
.page-head-side{display:grid;gap:1.4rem;justify-items:start;align-content:end;min-width:0;width:100%;container-type:inline-size}
.page-head .page-lead{margin:0;max-width:34rem;color:var(--muted);font-size:clamp(1.05rem,.5vw + 1rem,1.25rem);line-height:1.5}
.page-actions{margin:0}
.page-call{display:grid;gap:.35rem;justify-items:start}
.page-phone{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-display);font-weight:var(--display-weight);font-size:calc(min(clamp(2.1rem,4.6vw,3.8rem),10.5cqi) * var(--digit-scale,1));letter-spacing:0;font-variant-numeric:tabular-nums;line-height:1;color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.page-phone:hover{color:var(--accent)}
.page-today{color:var(--accent);font-weight:600}
.page-proofs{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;font-weight:600}
@media (min-width:64rem){.page-head.has-side .page-head-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);align-items:end}}
.cta-band.cta-band--light{background:var(--surface);color:var(--ink)}
.cta-band--light .cta-title{color:var(--ink);font-size:clamp(2rem,4.4vw,3.8rem)}
.cta-band--light .cta-meta{color:var(--muted)}
.cta-band--light :focus-visible{outline-color:var(--accent)}
.cta-inner{display:grid;gap:1.6rem}
.cta-band--light .actions{margin:0}
@media (min-width:64rem){.cta-inner{grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:3rem}}
.cta-band--callback .cta-inner{gap:2.5rem}
.cta-band--callback .cta-title{font-size:clamp(2.4rem,5vw,4.8rem);text-wrap:balance}
.cta-band--callback .cta-text .actions{margin-top:2rem}
@media (min-width:64rem){.cta-band--callback .cta-inner{grid-template-columns:minmax(0,1fr) minmax(0,32rem);align-items:center;column-gap:clamp(3rem,6vw,6rem)}.cta-band--callback .actions{flex-wrap:wrap}}
.cta-band--light .form.callback{margin:0;max-width:none;background:var(--card);border-color:var(--line);color:var(--ink)}
.cta-band--light .callback-note,.cta-band--light .callback-slots legend{color:var(--muted)}
.cta-band--light .callback-fields input{border-color:var(--field);background:#fff;color:#14110f}
.cta-band--light .callback-fields input:hover{border-color:var(--ink)}
.cta-band--light .callback-slot span{border-color:var(--line);background:var(--bg)}
.cta-band--light .callback-slot input:hover+span{border-color:var(--ink)}
.cta-band--light .callback-slot input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.cta-band--light .callback-slot input:focus-visible+span{outline-color:var(--accent)}
.nf-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}
.nf-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 1.3rem;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--card);color:var(--ink);font-weight:600;text-decoration:none}
.nf-links a:hover{border-color:var(--accent);color:var(--accent)}
:root{--panel-gap:clamp(.5rem,1.3vw,1.25rem)}
main>.band,main>.band-dark,.hero--full,.site-footer--modern{margin-inline:var(--panel-gap);border-radius:min(var(--radius-panel,28px),1.75rem)}
main>:is(.band,.band-dark)+:is(.band,.band-dark){margin-top:var(--panel-gap)}
.site-footer--modern{margin-block:var(--panel-gap)}
@media (min-width:48rem){main>.band,main>.band-dark,.hero--full,.site-footer--modern{border-radius:var(--radius-panel,28px)}}
.btn::before{display:none}
.btn-primary,.btn-primary:hover{box-shadow:none}
@media (hover:hover){.btn:hover{transform:translateY(-2px)}}
.service:has(.service-title a){cursor:pointer;transition:border-color .3s,background-color .3s}
.service-title a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.service-title a:focus-visible{outline:0}
.service:has(.service-title a:focus-visible){outline:2px solid var(--accent);outline-offset:4px}
.service-title a{transition:color .3s}
@media (hover:hover){.service:has(.service-title a):hover .service-title a{color:var(--accent)}}
.hero .hero-facts{gap:.5rem}
.hero .hero-facts li{gap:.55rem;padding:.45rem .9rem .45rem .75rem;border:1px solid var(--line);border-radius:var(--radius-btn);background:color-mix(in srgb,var(--card) 70%,transparent);color:var(--ink);font-weight:500;line-height:1.3}
.hero .hero-facts li::before{display:block;width:.55rem;height:.3rem;margin-top:-.15rem;border:solid var(--accent);border-width:0 0 2px 2px;border-radius:0;background:none;transform:rotate(-45deg)}
.hero.hero--full .hero-facts li{border-color:color-mix(in srgb,var(--dark-ink) 28%,transparent);background:color-mix(in srgb,var(--dark) 45%,transparent);color:var(--dark-ink)}
.hero--full .hero-facts li::before{border-color:var(--dark-accent)}
.gallery img{transition:transform .9s var(--ease)}
@media (hover:hover){.gallery li:hover img{transform:scale(1.04)}}
@media (min-width:64rem){
.site-header{transition:top .5s var(--ease),width .5s var(--ease),border-radius .5s var(--ease),background-color .4s,box-shadow .4s;margin-inline:auto;width:100%}
.site-header.is-scrolled{top:calc(var(--bar-h,0px) + .6rem);width:min(100% - 2rem,82rem);border-radius:var(--radius-header,999px);background:color-mix(in srgb,var(--card) 84%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 9%,transparent),0 18px 40px -26px rgb(0 0 0/.4)}
}
@media print{
@page{margin:1.6cm}
html,body{background:#fff!important;color:#000!important;font-size:11pt}
*,*::before,*::after{box-shadow:none!important;text-shadow:none!important;animation:none!important;transition:none!important}
.nav,.header-cta,.action-bar,.preview-bar,.scroll-progress,.skip,.form,.callback,.section-gallery,.hero-figure,.hero-mosaic,.hero-backdrop,.hero .actions,.page-actions,.cta-band .actions,.foot-nav,.foot-base,.foot-route,.more,.hero-index,.hero-soins,.lang-switch,.chat{display:none!important}
.site-header{position:static!important;background:none!important;border:0!important}
.hero,.page-head,.section{padding:.6cm 0!important;min-height:0!important}
.hero--full{color:#000!important}
.band,.band-dark,.reviews,.cta-band,.contact-quick,.site-footer,.hero-proof,.hero-carnet,.service,.trust-list li{background:#fff!important;color:#000!important;border-color:#bbb!important}
.site-footer *,.band-dark *,.contact-quick *,.hero *,.cta-band *,.service *{color:#000!important}
a{color:#000!important;text-decoration:none!important}
.wrap{width:auto!important;max-width:none!important}
.hero .hero-title,.page-head h1{font-size:26pt!important;max-width:none!important}
.section-title{font-size:18pt!important}
.services-list{display:block!important}
.service{position:static!important;break-inside:avoid;padding:.25cm 0!important;border:0!important;border-bottom:1px solid #bbb!important;border-radius:0!important}
.hours th,.hours td{color:#000!important;border-color:#bbb!important;box-shadow:none!important}
.foot{display:block!important}
.foot>*{margin-top:.5cm;border:0!important;padding:0!important;background:none!important}
.site-footer .foot-phone,.quick-phone,.page-phone{font-size:20pt!important}
}
.brand--mark{flex-direction:row;align-items:center;gap:.65rem}
.brand--mark .brand-logo img{height:2.4rem}
.brand-text{display:flex;flex-direction:column;min-width:0}
.preview-logo{flex:none;height:1.6rem;width:auto;max-width:6.5rem;object-fit:contain;border-radius:2px}
.preview-text{display:inline-flex;align-items:center;gap:.6rem}
main{overflow-x:clip}
body{font-size:1.0625rem;line-height:1.6}
.nav a,.nav-soon{font-size:.95rem}
.btn{font-weight:600}
.btn-ghost{border-color:color-mix(in srgb,var(--ink) 28%,transparent)}
.hero-editorial{padding:clamp(1.25rem,5vw,5.5rem) 0 clamp(2.5rem,6vw,5rem)}
.hero-editorial .hero-title{--ts:clamp(2.6rem,8.6vw,9.6rem);line-height:.94;letter-spacing:-.052em;font-weight:500;--tw:14ch}
.hero-editorial .hero-title.is-long{--ts:clamp(2.3rem,6.4vw,7rem);line-height:.96;--tw:18ch}
.hero-editorial .hero-title.is-short{--ts:clamp(3rem,12vw,13rem)}
.hero-editorial .hero-lead{max-width:30rem;font-size:clamp(1.1rem,.5vw + 1rem,1.3rem);line-height:1.5;color:var(--ink)}
.hero-editorial .hero-figure{aspect-ratio:16/9}
.hero-editorial.hero--portrait .hero-figure{aspect-ratio:4/3}
@media (min-width:64rem){
.hero-editorial .hero-grid{grid-template-columns:minmax(0,1.9fr) minmax(15.5rem,1fr);grid-template-areas:"head copy" "fig fig";column-gap:3.5rem;row-gap:clamp(2.5rem,5vw,4.5rem);align-items:end}
.hero-editorial .hero-head{grid-area:head}
.hero-editorial .hero-copy{grid-area:copy}
.hero-editorial .hero-figure{grid-area:fig;aspect-ratio:21/9}
.hero-editorial.hero--portrait .hero-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);grid-template-areas:"head fig" "copy fig";row-gap:2.5rem;align-items:start}
.hero-editorial.hero--portrait .hero-head{align-self:end}
.hero-editorial.hero--portrait .hero-figure{aspect-ratio:4/5;align-self:stretch;max-height:min(80vh,48rem)}
.hero-editorial.hero--portrait .hero-title{--ts:clamp(3rem,6.6vw,7.6rem)}
.hero-editorial.hero--portrait .hero-title.is-long{--ts:clamp(2.6rem,5vw,5.6rem)}
.hero-editorial.hero--full .hero-grid{grid-template-areas:"head copy";grid-template-columns:minmax(0,1.9fr) minmax(15.5rem,1fr)}
.hero-editorial.hero--type .hero-grid{grid-template-areas:"head copy"}
.hero-editorial.hero--type:not(.has-aside) .hero-grid{align-items:center}
}
@media (prefers-reduced-motion:no-preference){
.hero-editorial .wi{animation:ed-line 1.1s cubic-bezier(.2,.7,.1,1) backwards;animation-delay:calc(var(--i) * 40ms)}
.hero-editorial .hero-figure img{animation:ed-settle 1.8s cubic-bezier(.2,.7,.1,1) backwards .35s}
}
@keyframes ed-line{from{transform:translate3d(0,110%,0)}}
@keyframes ed-settle{from{transform:scale(1.08)}}

.section-title{font-size:clamp(2.4rem,5.4vw,5rem);line-height:.98;letter-spacing:-.045em;font-weight:500}
.section-title--sm{font-size:clamp(1.5rem,2.2vw,2rem);letter-spacing:-.03em}
.section-lead{color:var(--muted);font-size:1.1rem;max-width:32rem}
.band{background:var(--surface)}
#prestations .wrap{display:grid;gap:2.4rem}
.services-list{display:grid;gap:0}
.service{display:block;padding:1.8rem 0;border-top:1px solid var(--line)}
.service:last-child{border-bottom:1px solid var(--line)}
.service-title{font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.05;letter-spacing:-.035em;font-weight:500}
.service-title a{color:inherit;text-decoration:none}
.service-title a:hover{color:var(--accent)}
.service-desc{max-width:36rem;margin-top:.7rem;color:var(--muted)}
@media (min-width:64rem){
#prestations .wrap{grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);column-gap:5rem;align-items:start}
#prestations .section-head{container-type:inline-size}
#prestations .section-title{font-size:min(clamp(2.4rem,5.4vw,5rem),100cqi / (var(--longest,10) * .58))}
#prestations :is(.more,.services-tags,.services-also,.service-prices){grid-column:2}
#prestations .wrap>:is(.services-tags,.services-also,.service-prices){margin-top:-1.2rem}
.services-list--home .service-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:2.5rem;align-items:baseline}
.services-list--home .service-desc{margin-top:0}
}
@media (min-width:48rem){.services-list--page{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2rem,5vw,5rem)}.services-list--page .service:last-child{border-bottom:0}.services-list--page>.service:last-child:nth-child(odd){grid-column:1/-1}.services-list--page>.service:last-child:nth-child(odd) .service-desc{max-width:44rem}}
.services-list--page .service{padding:1.6rem 0 2rem}
@media (min-width:48rem){.hero-spec--editorial{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));column-gap:clamp(1.5rem,3vw,3rem)}.hero-spec--editorial>div{grid-template-columns:minmax(0,1fr);row-gap:.35rem;padding:1.1rem 0 0;border-bottom:0;border-top:1px solid var(--line)}.hero-spec--editorial>div{align-content:start}.hero-spec--editorial>.spec-figure{grid-column:auto}}
.hero-spec--editorial dd{font-weight:500;font-size:clamp(1.1rem,1.5vw,1.35rem);letter-spacing:-.02em}
@media (min-width:64rem){.hero-editorial.hero--type.has-aside .hero-grid{grid-template-areas:"head copy" "aside aside"}.hero-editorial .hero-aside{grid-area:aside}}
.trust-list{gap:0 clamp(1.5rem,3vw,3rem)}
.trust-label{font-weight:500;letter-spacing:-.03em}
@media (min-width:48rem){.trust-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:64rem){.trust-inner{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);column-gap:5rem;align-items:start}.trust-inner .trust-list{margin-top:0;grid-template-columns:repeat(2,minmax(0,1fr))}}
.zones-city{font-weight:500}
.reviews,.cta-band{background:var(--dark)}
.rating-value{font-weight:500;letter-spacing:-.06em;font-size:clamp(5rem,16vw,12rem)}
.gallery li{border-radius:var(--radius-sm)}
.gallery li:first-child{border-radius:var(--radius-lg)}
.about .prose p:first-child{font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.15;letter-spacing:-.035em;font-weight:500;color:var(--ink)}
@media (min-width:64rem){.about{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);column-gap:5rem}.about-text{margin-top:0}}
.areas li{border:1px solid var(--line);background:var(--card)}
.form{border:1px solid var(--line);background:var(--card)}
.page-head{background:var(--bg);color:var(--ink);padding-bottom:2rem}
.page-head .aurora{display:none}
.page-head h1{color:var(--ink);--ph:clamp(3rem,8vw,8rem);--ph-glyph:calc(.58 * var(--glyph-scale,1));line-height:.94;letter-spacing:-.052em;font-weight:500}
.page-head-grid{padding-bottom:clamp(1.8rem,3.4vw,3rem);border-bottom:1px solid var(--line)}
.page-head .page-lead{color:var(--ink)}
.page-lead{color:var(--muted)}
.page-head :focus-visible{outline-color:var(--accent)}
.cta-title{font-size:clamp(2.6rem,6.6vw,6.4rem);line-height:.96;letter-spacing:-.05em;font-weight:500}
.site-footer .foot-phone{font-weight:500;font-size:min(calc(clamp(2.6rem,8vw,7.5rem) * var(--digit-scale,1)),100cqi / (var(--tel-em,8.3) * var(--figure-scale,1)));letter-spacing:0}
@media (min-width:48rem){.foot{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);grid-template-areas:"call call call" "id visit visit" "nav nav nav"}.foot-call{grid-area:call;padding-bottom:2rem;border-bottom:1px solid color-mix(in srgb,var(--dark-ink) 16%,transparent)}.foot-id{grid-area:id}.foot-visit{grid-area:visit}.foot-nav{grid-area:nav}.foot-nav .footer-links{grid-template-columns:repeat(auto-fit,minmax(9rem,max-content));column-gap:2rem}}
.hero-editorial .hero-title{--glyph:calc(.58 * var(--glyph-scale,1));--lh:.96;--cpl:12}
@media (min-width:64rem){.hero-editorial.hero--portrait .hero-title{--room:calc(var(--avail) - 26rem)}.hero-editorial.hero--full .hero-title{--room:calc(var(--avail) - 13rem)}.hero-editorial.hero--type.has-inset .hero-title{--room:calc(var(--avail) - 24rem)}}
.action-bar{display:none}
@media (max-width:47.99rem){
.action-bar{position:fixed;left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom,0px));z-index:55;display:flex;gap:.5rem;padding:.4rem;border-radius:calc(var(--radius-btn) + .4rem);background:color-mix(in srgb,var(--dark) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 40px -18px rgb(0 0 0 / .6)}
.action-bar-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:3rem;border-radius:var(--radius-btn);color:var(--dark-ink);font-weight:600;text-decoration:none;white-space:nowrap}
html{scroll-padding-bottom:calc(5.5rem + env(safe-area-inset-bottom,0px))}
.action-bar-btn--call{background:var(--accent);color:var(--accent-ink)}
.action-bar-btn:focus-visible{outline:2px solid var(--dark-accent);outline-offset:2px}
body{padding-bottom:5.25rem}
body:has(.action-bar) .chat{bottom:calc(5.75rem + env(safe-area-inset-bottom,0px))}
}
.action-bar-btn--icon{flex:0 0 3.25rem;background:#25d366;color:#08331a}
.form.callback{display:grid;gap:1rem;max-width:36rem;margin:2.5rem auto 0;padding:clamp(1.25rem,3vw,2rem);border:1px solid color-mix(in srgb,var(--dark-ink) 18%,transparent);border-radius:var(--radius-form,1.25rem);box-shadow:none;background:color-mix(in srgb,var(--dark-ink) 8%,transparent);color:var(--dark-ink);text-align:left}
.callback-title{margin:0;font-family:var(--font-display);font-weight:var(--display-weight,700);font-size:1.6rem;line-height:1.1}
.callback-fields{display:grid;gap:.6rem}
.callback-fields input{width:100%;min-height:3.25rem;padding:.8rem 1rem;border:1px solid color-mix(in srgb,var(--dark-ink) 25%,transparent);border-radius:var(--radius-field,.75rem);background:var(--bg);color:var(--ink);font:inherit}
.callback-slots{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;border:0}
.callback-slots legend{float:left;width:100%;margin-bottom:.55rem;padding:0;font-size:.92rem;font-weight:600}
.callback-slot{position:relative}
.callback-slot input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.callback-slot span{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1rem;border:1px solid color-mix(in srgb,currentColor 28%,transparent);border-radius:var(--radius-btn);font-size:.95rem}
.callback-slot input:checked+span{background:var(--dark-ink);border-color:var(--dark-ink);color:var(--dark);font-weight:600}
.callback-slot input:focus-visible+span{outline:2px solid;outline-offset:2px}
.callback .btn{width:100%}
@media (min-width:36rem){.callback-fields{grid-template-columns:1fr 1fr}.callback .btn{width:auto;justify-self:start}}
.callback-note{margin:0;font-size:.78rem;line-height:1.45;color:color-mix(in srgb,var(--dark-ink) 70%,transparent)}
.coords a.wa{display:inline-flex;align-items:center;gap:.35rem}.site-credit{margin-block:0;padding:1rem 0 1.25rem;font-size:.8rem;text-align:center;opacity:.65}
.site-credit a{color:inherit;text-decoration:underline;text-underline-offset:.15em}
.foot-base .site-credit{padding:0;opacity:1;text-align:start}
.faq{max-width:52rem}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 0;font-weight:600;font-size:1.08rem;cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";color:var(--accent);font-size:1.4rem;line-height:1;transition:transform .4s var(--ease)}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{margin:0 0 1.2rem;color:var(--muted);max-width:44rem}
.visuals{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr))}
.visual{position:relative;margin:0;border-radius:var(--radius);overflow:hidden}
.visual img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.visual figcaption{position:absolute;left:.6rem;bottom:.6rem;padding:.25rem .55rem;border-radius:99px;background:rgb(0 0 0 / .62);color:#fff;font-size:.75rem}
.service-visual{margin:2rem 0}
.service-visual .visual img{aspect-ratio:16/9}
.chat{position:fixed;right:1rem;bottom:1rem;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}
.chat-toggle{display:inline-flex;align-items:center;gap:.55rem;padding:.8rem 1.15rem;border:0;border-radius:99px;background:var(--dark);color:var(--dark-ink);font:inherit;font-weight:600;cursor:pointer;box-shadow:0 18px 40px -18px rgb(0 0 0 / .55)}
.chat-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--dark-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--dark-accent) 30%,transparent)}
.chat.is-open .chat-toggle{display:none}
.chat-panel{display:flex;flex-direction:column;width:min(23rem,calc(100vw - 2rem));max-height:min(34rem,calc(100dvh - 2rem));background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:calc(var(--radius) * 1.5);box-shadow:0 30px 70px -30px rgb(0 0 0 / .5);overflow:hidden}
.chat-panel[hidden]{display:none}
.chat-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;background:var(--dark);color:var(--dark-ink)}
.chat-title{margin:0;font-weight:600}
.chat-close{border:0;background:none;color:inherit;font-size:1.5rem;line-height:1;cursor:pointer}
.chat-note{margin:0;padding:.6rem 1rem;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--line)}
.chat-log{flex:1;margin:0;padding:1rem;list-style:none;overflow-y:auto;display:flex;flex-direction:column;gap:.6rem}
.chat-msg{max-width:85%;padding:.6rem .85rem;border-radius:1rem;white-space:pre-line;line-height:1.45}
.chat-msg--bot{align-self:flex-start;background:var(--surface)}
.chat-msg--user{align-self:flex-end;background:var(--accent);color:var(--accent-ink)}
.chat-msg.is-pending{opacity:.6}
.chat-form{display:flex;gap:.5rem;padding:.75rem;border-top:1px solid var(--line)}
.chat-form input{flex:1;min-width:0;padding:.7rem .85rem;border:1px solid var(--field);border-radius:var(--radius-btn);background:var(--bg);color:var(--ink);font:inherit}
.chat-form .btn{min-height:0;padding:.7rem 1rem}
.chat-mic{flex:none;display:inline-grid;place-items:center;width:2.9rem;padding:0;border:1px solid var(--field);border-radius:var(--radius-btn);background:var(--bg);color:var(--ink);cursor:pointer}
.chat-mic:hover{border-color:var(--accent)}
.chat-mic.is-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.chat-form[hidden],.chat-lead[hidden],.chat-suggest[hidden],.chat-mic[hidden]{display:none}
.chat-suggest{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1rem .75rem}
.chat-chip{padding:.4rem .75rem;border:1px solid var(--line);border-radius:99px;background:var(--bg);color:var(--ink);font:inherit;font-size:.85rem;cursor:pointer;text-align:left}
.chat-suggest.is-compact{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.chat-suggest.is-compact .chat-chip{flex:none;white-space:nowrap}
.chat-chip:hover{border-color:var(--accent)}
.chat-sources{margin:.45rem 0 0;font-size:.78rem;color:var(--muted);white-space:normal}
.chat-sources a{color:inherit}
.chat-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem;white-space:normal}
.chat-action{display:inline-block;padding:.4rem .75rem;border:0;border-radius:99px;background:var(--accent);color:var(--accent-ink);font:inherit;font-size:.85rem;font-weight:600;text-decoration:none;cursor:pointer}
.chat-rate{display:flex;align-items:center;gap:.3rem;margin-top:.45rem;font-size:.78rem;color:var(--muted);white-space:normal}
.chat-rate-btn{padding:.15rem .4rem;border:1px solid var(--line);border-radius:.5rem;background:none;font-size:.9rem;line-height:1.2;cursor:pointer}
.chat-lead{display:grid;gap:.35rem;padding:.75rem 1rem;border-top:1px solid var(--line);overflow-y:auto;font-size:.88rem}
.chat-lead-title{margin:0 0 .2rem;font-weight:600}
.chat-lead input:not([type=checkbox]),.chat-lead textarea{padding:.55rem .7rem;border:1px solid var(--field);border-radius:var(--radius-btn);background:var(--bg);color:var(--ink);font:inherit}
.chat-consent{display:flex;gap:.45rem;align-items:flex-start;font-size:.8rem;color:var(--muted)}
.chat-consent input{margin-top:.2rem}
.chat-lead-status{margin:0;min-height:1em;font-size:.8rem;color:var(--muted)}
.chat-lead-actions{display:flex;align-items:center;gap:.75rem}
.chat-lead .btn{min-height:0;padding:.6rem 1rem}
.chat-link{border:0;background:none;color:var(--muted);font:inherit;text-decoration:underline;cursor:pointer}
.chat-privacy{margin:0;padding:0 1rem .6rem;font-size:.72rem;color:var(--muted)}
.chat-privacy a{color:inherit}
.chat :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:no-preference){.chat-log{scroll-behavior:smooth}.chat-msg{animation:chat-in .2s ease-out}@keyframes chat-in{from{opacity:0;transform:translateY(4px)}}.chat-mic.is-on{animation:chat-listen 1.2s ease-in-out infinite}@keyframes chat-listen{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 25%,transparent)}}}
.ag-wrap{display:grid;gap:1.5rem;max-width:56rem}
.ag-intro{color:var(--muted);max-width:42rem}
.ag-app{display:grid;gap:1.25rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1rem,3vw,2rem)}
.ag-panel{display:grid;gap:1.1rem}
.ag-title{font-size:clamp(1.3rem,1vw + 1rem,1.6rem)}
.ag-title:focus{outline:0}
.ag-subtitle{font-size:1.1rem}
.ag-meta{color:var(--muted);font-size:.9rem}
.ag-chosen{display:grid;gap:.1rem}
.ag-chosen strong{font-weight:700}
.ag-area{max-width:24rem}
.ag-area input{max-width:9rem;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.ag-recap{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0}
.ag-recap dt{color:var(--muted);font-size:.9rem}
.ag-recap dd{margin:0}
.ag-terms{display:grid;gap:.4rem;margin:0;padding-left:1.1rem;color:var(--muted);font-size:.92rem}
.ag-legend{display:flex;gap:.5rem;align-items:center;margin-top:.6rem;color:var(--muted);font-size:.88rem}
.ag-rec-mark{flex:none;width:.45rem;height:.45rem;border-radius:50%;background:var(--accent)}
.ag-grid td.is-rec .ag-day{position:relative}
.ag-grid td.is-rec .ag-day::after{content:"";position:absolute;bottom:5px;left:50%;width:.4rem;height:.4rem;margin-left:-.2rem;border-radius:50%;background:var(--accent)}
.ag-grid td.is-rec[aria-selected="true"] .ag-day::after{background:var(--accent-ink)}
.ag-back{justify-self:start;min-height:44px;padding:.4rem 0;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:.18em}
.ag-types{display:grid;gap:.75rem}
.ag-type{display:flex;gap:.85rem;align-items:flex-start;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);cursor:pointer;transition:border-color .2s}
.ag-type:hover{border-color:var(--accent)}
.ag-type:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.ag-type input{flex:none;width:1.25rem;height:1.25rem;margin:.2rem 0 0;accent-color:var(--accent)}
.ag-type-body{display:grid;gap:.2rem}
.ag-type-name{font-weight:700;font-size:1.05rem}
.ag-type-desc{font-size:.95rem}
.ag-pick{display:grid;gap:1.5rem;align-items:start}
.ag-month{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}
.ag-month-label{font-weight:700;text-transform:capitalize}
.ag-nav{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--bg);color:var(--ink);font:inherit;font-size:1.3rem;cursor:pointer}
.ag-nav:disabled{opacity:.4;cursor:default}
.ag-grid{width:100%;border-collapse:separate;border-spacing:3px;table-layout:fixed}
.ag-grid th{font-size:.78rem;font-weight:600;color:var(--muted);padding:.2rem 0;text-align:center}
.ag-grid td{padding:0;text-align:center;border-radius:calc(var(--radius) * .8)}
.ag-day{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:inherit;color:var(--muted)}
.ag-grid td.is-open{cursor:pointer}
.ag-grid td.is-open .ag-day{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--ink);font-weight:700}
.ag-grid td.is-open:hover .ag-day{background:color-mix(in srgb,var(--accent) 26%,transparent)}
.ag-grid td[aria-selected="true"] .ag-day{background:var(--accent);color:var(--accent-ink)}
.ag-grid td[aria-current="date"] .ag-day{text-decoration:underline;text-underline-offset:.25em}
.ag-grid td:focus-visible{outline:3px solid var(--accent);outline-offset:1px}
.ag-slots-box{display:grid;gap:.75rem;align-content:start}
.ag-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.5rem;margin:0;padding:0;list-style:none;max-height:22rem;overflow:auto}
.ag-slots:focus{outline:0}
.ag-slot{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--bg);color:var(--ink);font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums}
.ag-slot:hover{border-color:var(--accent)}
.ag-slots:focus-visible .ag-slot.is-active{outline:3px solid var(--accent);outline-offset:2px}
.ag-slot[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.ag-form{padding:0;border:0;box-shadow:none;background:transparent}
.ag-summary{padding:.75rem 1rem;border-radius:var(--radius);background:var(--surface)}
.ag-consent{display:flex;gap:.65rem;align-items:flex-start;font-size:.92rem}
.ag-consent input{flex:none;width:1.25rem;height:1.25rem;margin:.15rem 0 0;accent-color:var(--accent)}
.ag-error{padding:.75rem 1rem;border-left:3px solid var(--accent);background:var(--surface);color:var(--ink)}
.ag-error:focus{outline:0}
.ag-members{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.75rem}
.ag-member{position:relative;display:grid;justify-items:center;gap:.4rem;padding:1rem .75rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);cursor:pointer;text-align:center;transition:border-color .2s}
.ag-member:hover{border-color:var(--accent)}
.ag-member:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.ag-member:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
.ag-member input{position:absolute;opacity:0;pointer-events:none}
.ag-member-name{font-weight:700}
.ag-avatar{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;object-fit:cover;background:var(--surface);color:var(--ink);font-weight:700;font-size:1.3rem}
.ag-modes{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:0;padding:0;border:0}
.ag-modes legend{width:100%;margin-bottom:.35rem;font-weight:600}
.ag-mode{display:flex;align-items:center;gap:.4rem;min-height:44px;cursor:pointer}
.ag-mode input{width:1.2rem;height:1.2rem;accent-color:var(--accent)}
.ag-zone{padding:.6rem .9rem;border-radius:var(--radius);background:var(--surface);font-size:.92rem}
.ag-zone.is-out{border-left:3px solid var(--accent)}
.ag-link{padding:0;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:.18em}
.ag-static{display:grid;gap:.75rem}
.ag-static[hidden]{display:none}
.ag-static li{padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.ag-cta{display:grid;gap:.9rem;justify-items:start;padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.ag-cta .btn{justify-self:start}
.ag-cta-types{display:flex;flex-wrap:wrap;gap:.5rem}
.ag-cta-types li{padding:.3rem .8rem;border:1px solid var(--line);border-radius:999px;font-size:.9rem;color:var(--muted)}
@media (min-width:48rem){.ag-pick{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}
@media (prefers-reduced-motion:no-preference){.ag-panel>*{animation:ag-in .3s ease both}}
@keyframes ag-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.nl-box{max-width:38rem;margin-inline:auto}
.nl-form[hidden]{display:none}
.nl-form .nl-lead{margin:0 0 1rem;color:var(--muted)}
.nl-check{display:flex;gap:.6rem;align-items:flex-start;margin:.25rem 0 1rem}
.nl-check input{width:1.15rem;height:1.15rem;margin:.2rem 0 0;flex:none;accent-color:var(--accent)}
.nl-check label{font-size:.95rem;line-height:1.45}
.nl-submit[aria-busy="true"]{opacity:.7;cursor:progress}
.nl-consent a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.nl-status{margin:.75rem 0 0;font-weight:600}
.nl-status:empty{display:none}
.nl-status.is-error{color:#b42318}
.nl-status:focus{outline:none}
.nl-done{padding:1.25rem 1.25rem 1.25rem 1.1rem;border-left:4px solid var(--accent);background:var(--surface,var(--card));border-radius:var(--radius,8px)}
.nl-done strong{display:block;margin-bottom:.25rem}
.nl-noscript{max-width:38rem;margin:0 auto;color:var(--muted)}
@media (prefers-reduced-motion:no-preference){.nl-done{animation:nl-in .25s var(--ease,ease-out)}}
@keyframes nl-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.qr-wrap{display:grid;gap:1.5rem;max-width:44rem}
.qr-intro{color:var(--muted);max-width:42rem}
.qr-app{display:grid;gap:1.25rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1rem,3vw,2rem)}
.qr-panel{display:grid;gap:1.1rem}
.qr-head{display:grid;gap:.5rem}
.qr-count{color:var(--muted);font-size:.88rem}
.qr-progress{height:6px;border-radius:999px;background:var(--surface);overflow:hidden}
.qr-progress span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .3s}
.qr-title{font-size:clamp(1.25rem,1vw + 1rem,1.55rem)}
.qr-title:focus{outline:0}
.qr-meta{color:var(--muted);font-size:.93rem}
.qr-back,.qr-skip{justify-self:start;min-height:44px;padding:.3rem 0;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:.18em}
.qr-choices{display:grid;gap:.6rem}
.qr-choice{display:grid;gap:.2rem;min-height:52px;padding:.85rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s}
.qr-choice:hover,.qr-choice.is-on{border-color:var(--accent)}
.qr-choice.is-on{box-shadow:inset 0 0 0 1px var(--accent)}
.qr-choice:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.qr-step{display:grid;gap:1rem;justify-items:start}
.qr-step textarea,.qr-number input,.qr-mini input{width:100%;padding:.7rem .85rem;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--bg);color:var(--ink);font:inherit}
.qr-step textarea{min-width:min(100%,32rem)}
.qr-number{display:flex;align-items:center;gap:.6rem}
.qr-number input{max-width:10rem;font-size:1.1rem}
.qr-number input[type=date]{max-width:14rem}
.qr-checks{display:grid;gap:.5rem;margin:0;padding:0;border:0;width:100%}
.qr-check{display:flex;gap:.7rem;align-items:center;min-height:48px;padding:.6rem 1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);cursor:pointer}
.qr-check:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.qr-check input{width:1.2rem;height:1.2rem;accent-color:var(--accent)}
.qr-calc{display:grid;gap:.8rem;width:100%;justify-items:start}
.qr-calc>textarea,.qr-calc>.qr-rooms,.qr-calc>.qr-checks{width:100%}
.qr-rooms{display:grid;gap:.75rem}
.qr-room{display:grid;grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.6rem;align-items:end;margin:0;padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.qr-room--wide{grid-template-columns:1fr}
.qr-mini{display:grid;gap:.3rem;font-size:.9rem}
.qr-mini label{color:var(--muted)}
.qr-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.4rem .9rem}
.qr-item{display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:.92rem}
.qr-item input{width:4.5rem;padding:.45rem .5rem;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--card);color:var(--ink);font:inherit;text-align:right}
.qr-sub{font-weight:600;margin-bottom:.3rem}
.qr-total{font-weight:600}
.qr-total:empty{display:none}
.qr-estimate{display:grid;gap:.8rem;padding:1.1rem 1.2rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent)}
.qr-estimate[hidden],.qr-estimate-min[hidden],.qr-field-error[hidden],.qr-slot[hidden]{display:none}
.qr-estimate p{margin:0}
.qr-estimate-amount{display:grid;gap:.15rem}
.qr-estimate-amount span{color:var(--muted);font-size:.88rem}
.qr-estimate-amount strong{color:var(--ink);font-size:clamp(1.2rem,1vw + 1rem,1.5rem);line-height:1.25}
.qr-estimate-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.7rem 1.2rem}
.qr-estimate-k{font-weight:600;font-size:.9rem}
.qr-estimate-fact ul{display:grid;gap:.15rem;margin:.25rem 0 0;padding-left:1.1rem;font-size:.92rem}
.qr-estimate-min{font-size:.92rem}
.qr-estimate-note{color:var(--muted);font-size:.86rem}
.qr-reply{display:grid;gap:.5rem;margin:0;padding:0;border:0}
.qr-field-error{margin:.35rem 0 0;color:var(--ink);font-size:.9rem;font-weight:600}
.qr-field-error::before{content:"";display:inline-block;width:.5rem;height:.5rem;margin-right:.45rem;border-radius:50%;background:var(--accent);vertical-align:middle}
.qr-app [aria-invalid=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.qr-next{display:grid;gap:.6rem;justify-items:start;padding-top:1rem;border-top:1px solid var(--line)}
.qr-next .qr-sub{margin:0;font-size:1.05rem}
.qr-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.6rem;margin:0;padding:0;list-style:none}
.qr-photos:empty{display:none}
.qr-photos li{position:relative}
.qr-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:calc(var(--radius) * .8)}
.qr-remove{position:absolute;top:.3rem;right:.3rem;width:2rem;height:2rem;border:0;border-radius:999px;background:rgb(0 0 0 / .65);color:#fff;font-size:1.2rem;line-height:1;cursor:pointer}
.qr-add{justify-self:start;cursor:pointer}
.qr-form{padding:0;border:0;box-shadow:none;background:transparent}
.qr-row{display:grid;grid-template-columns:minmax(0,9rem) minmax(0,1fr);gap:.75rem}
.qr-consent{display:flex;gap:.65rem;align-items:flex-start;font-size:.92rem}
.qr-consent input{flex:none;width:1.25rem;height:1.25rem;margin:.15rem 0 0;accent-color:var(--accent)}
.qr-error{padding:.75rem 1rem;border-left:3px solid var(--accent);background:var(--surface);color:var(--ink)}
.qr-error:focus{outline:0}
.qr-static{display:grid;gap:.75rem}
.qr-static li{padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.qr-cta{display:grid;gap:.9rem;justify-items:start;padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
@media (prefers-reduced-motion:no-preference){.qr-panel>*{animation:qr-in .3s ease both}}
@keyframes qr-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.xp-body h2{margin-top:2.25rem}
.xp-body p+p,.xp-body p+.xp-list,.xp-body .xp-list+p{margin-top:1rem}
.xp-list{list-style:disc;padding-left:1.25rem;margin-top:1rem}
.xp-list li+li{margin-top:.45rem}
.xp-faq{margin-top:1rem}
.xp-faq-item{border-bottom:1px solid var(--line)}
.xp-faq-item summary{display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 0;font-weight:600;font-size:1.08rem;cursor:pointer;list-style:none}
.xp-faq-item summary::-webkit-details-marker{display:none}
.xp-faq-item summary::after{content:"+";color:var(--accent);font-size:1.4rem;line-height:1;transition:transform .4s var(--ease)}
.xp-faq-item[open] summary::after{transform:rotate(45deg)}
.xp-faq-item p{margin:0 0 1.2rem;color:var(--muted)}