@import url('https://fonts.googleapis.com/css2?family=Libre+Caslon+Display&display=swap');
:root{--bg:#111111;--panel:#1a1a1a;--cream:#f7f2e9;--muted:#b9b4aa;--accent:#c8a15b;--line:#37342e}
body{background:#111;color:var(--cream)}
.site-header{background:#0e0e0ef2;border-color:#282622}
.demo{background:#c8a15b;color:#17130e}
.brand{font-family:'Libre Caslon Display',Georgia,serif;font-size:26px;font-weight:400;letter-spacing:.03em}
.brand small{font-family:'DM Sans',sans-serif;font-size:8px;letter-spacing:.35em}
.nav-cta,.button{border-radius:2px}
.eyebrow{font-size:11px;letter-spacing:.3em}
.hero-classic{display:flex;min-height:680px;height:min(760px,85vh);position:relative;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.42) saturate(.75)}
.hero-classic:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0004 0%,transparent 34%,#0008 100%)}
.hero-center{position:relative;z-index:1;padding:35px;display:flex;align-items:center;flex-direction:column}
.hero-classic h1{font-family:'Libre Caslon Display',Georgia,serif;font-size:clamp(80px,11vw,160px);font-weight:400;line-height:.76;letter-spacing:-.045em;margin:31px 0;color:#fff}
.hero-classic p{font-size:14px;text-transform:uppercase;letter-spacing:.28em;color:#eee6d9;margin:17px 0 28px}
.hero-rule{height:1px;width:70px;background:var(--accent);margin-top:12px}
.hero-caption{position:absolute;z-index:1;bottom:18px;right:24px;font-size:11px;color:#ddd3c2}
.section h2,.page-hero h1,.quote,.cta-band h2{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;letter-spacing:-.025em;text-transform:none;line-height:1.02}
.section h2{font-size:clamp(46px,6vw,77px)}
.page-hero h1{font-size:clamp(64px,8vw,110px)}
.intro-heading{text-align:center;margin-bottom:58px}
.intro-section .split{grid-template-columns:.9fr 1.1fr}
.intro-section .split-photo{height:500px}
.lead{font-family:'Libre Caslon Display',Georgia,serif;font-size:clamp(29px,3vw,42px);line-height:1.25;margin:0 0 24px}
.section-intro{font-size:15px}
.intro-section .text-link{display:inline-block;margin-top:17px}
.section-head.center{justify-content:center;text-align:center}
.section-head.center .section-intro{margin:12px auto 0}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feature{height:470px;position:relative;overflow:hidden;background:#26231e}
.feature img{transition:transform .4s;filter:grayscale(.3)}
.feature:hover img{transform:scale(1.045)}
.feature-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,#000d 100%)}
.feature-label{position:absolute;bottom:28px;left:28px;right:28px;display:flex;flex-direction:column;align-items:flex-start}
.feature-label small{font-size:10px;letter-spacing:.25em;color:var(--accent)}
.feature-label strong{font-family:'Libre Caslon Display',Georgia,serif;font-size:44px;font-weight:400;margin:10px 0}
.feature-label em{font-style:normal;text-transform:uppercase;letter-spacing:.12em;font-size:11px}
.gallery-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;height:330px}
.gallery-preview img{filter:brightness(.8) saturate(.8)}
.gallery-teaser .small-note{margin-top:17px}
.page-hero{background:linear-gradient(110deg,#101010,#252019);border-color:#3c3528}
.service-row h3,.info-box h3{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;text-transform:none}
.service-row h3{font-size:39px}
.info-box h3{font-size:31px}
.quote{font-size:clamp(40px,5vw,64px)}
.cta-band{background:var(--accent)}
.cta-band h2{font-size:clamp(43px,5vw,67px)}
.photo-tag{font-size:10px}
@media(max-width:850px){.hero-classic{height:650px;min-height:600px}.intro-section .split{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr 1fr}.feature{height:410px}.feature:last-child{grid-column:1/-1;height:360px}.gallery-preview{height:260px}}
@media(max-width:560px){.hero-classic{height:630px;min-height:570px}.hero-classic h1{font-size:78px}.hero-classic p{font-size:11px}.hero-caption{left:16px;right:16px;text-align:center}.feature-grid,.gallery-preview{grid-template-columns:1fr}.feature,.feature:last-child{grid-column:auto;height:380px}.gallery-preview{height:auto}.gallery-preview img{height:270px}.section h2{font-size:49px}}
.instagram-gallery{grid-template-columns:repeat(2,1fr);gap:24px}
.instagram-gallery figure:nth-child(n){margin-top:0}
.instagram-gallery .photo{height:480px;overflow:hidden}
.instagram-gallery img{transition:transform .3s;filter:none}
.instagram-gallery a:hover img{transform:scale(1.03)}
.instagram-gallery figcaption{display:flex;justify-content:space-between;gap:15px}
.instagram-gallery figcaption a{color:var(--accent)}
.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:30px}
.video-tile{display:block;position:relative;height:420px;background:#222;overflow:hidden}
.video-tile img{filter:brightness(.6);transition:transform .3s}
.video-tile:hover img{transform:scale(1.03)}
.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:70px;height:70px;display:grid;place-items:center;border:1px solid #fff;border-radius:50%;font-size:24px}
.video-label{position:absolute;bottom:23px;left:23px;right:23px;font-size:13px;font-weight:700;letter-spacing:.04em}
@media(max-width:650px){.instagram-gallery,.video-grid{grid-template-columns:1fr}.instagram-gallery .photo,.video-tile{height:390px}}
.video-embed{background:#202020;padding:12px;min-width:0}
.video-embed iframe{display:block;width:100%;height:610px;border:0;background:#fff}
.video-embed>a{display:block;padding:15px 6px 4px;color:var(--accent);font-size:13px;font-weight:700}
@media(max-width:650px){.video-embed iframe{height:580px}}
/* Palette ivoire et ardoise : sobre, chaleureuse, sans doré. */
:root{--bg:#f8f7f3;--panel:#f0f1ed;--cream:#222b2d;--muted:#667173;--accent:#526a6d;--line:#d6dcda}
body{background:var(--bg);color:var(--cream)}
.site-header{background:#f8f7f3f2;border-bottom:1px solid var(--line)}
.brand{color:#1f292b}
.brand small{color:var(--accent)}
.links a{color:#2d3739}
.links a:hover,.links a.active{color:var(--accent)}
.menu-toggle{color:var(--cream)}
.nav-cta,.button{background:var(--accent);border-color:var(--accent);color:#fff}
.nav-cta:hover,.button:hover{background:#3c5356;color:#fff;border-color:#3c5356}
.button.outline{background:transparent;color:var(--cream);border-color:#8a999a}
.button.outline:hover{background:#e9eeec;color:var(--cream);border-color:var(--accent)}
.eyebrow,.text-link,.card .num,.service-row span,.instagram-gallery figcaption a,.video-embed>a{color:var(--accent)}
.hero-classic .eyebrow{color:#e1e8e7}
.hero-classic .button{background:#f8f7f3;border-color:#f8f7f3;color:#1f292b}
.hero-classic .button:hover{background:#e0e7e5;border-color:#e0e7e5}
.hero-bg img{filter:brightness(.64) saturate(.72)}
.hero-classic:after{background:linear-gradient(180deg,#2230325c,transparent 38%,#22303277)}
.hero-rule{background:#f1f3f0}
.section.alt{background:#eef0ec}
.section h2,.page-hero h1,.lead{color:#283335}
.section-intro,.small-note,.card p,.service-row p,.info-box p,.info-box a{color:#667173}
.split-photo,.card,.gallery figure{background:#e5e8e3}
.card{border-color:var(--line)}
.page-hero{background:#f1f3ef;border-bottom:1px solid var(--line)}
.pill{border-color:var(--accent);color:var(--accent)}
.service-list,.service-row,.info-box{border-color:var(--line)}
.callout{background:#e9eeeb;border-color:var(--accent);color:#526065}
.map-link{background:linear-gradient(135deg,#e1e8e5,#cbd7d3);border-color:#bfd0ca}
.map-link:before,.map-link:after{background:#aebfba}
.map-pin{background:#526a6d;color:#fff}
.cta-band{background:#dce5e1;color:#263639}
.cta-band .button{background:#526a6d;color:#fff;border-color:#526a6d}
.footer{background:#243034}
.footer .brand,.footer h2,.footer-links,.footer p a{color:#f2f3ef}
.footer p{color:#bdc9c7}
.footer .brand small{color:#b4c7c2}
.footer-bottom{border-color:#435459;color:#aebbb8}
.feature-shade{background:linear-gradient(180deg,transparent 34%,#172123dd 100%)}
.feature-label,.feature-label small{color:#fff}
.gallery-preview img,.instagram-gallery img{filter:saturate(.78)}
.video-embed{background:#dfe5e2}
.video-embed iframe{background:#f8f7f3}
.footer-links a:hover{color:#b9cfca}
@media(max-width:850px){.links{background:#f8f7f3;border-color:var(--line)}}
/* Prestations : trois blocs visuels, lisibles à toutes les tailles. */
.services-hero{padding:82px 0 62px}
.services-hero h1{margin-bottom:18px}
.services-section{padding-top:85px}
.service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.service-card{min-width:0;background:#fff;border:1px solid #d0d9d6;display:flex;flex-direction:column}
.service-image{display:block;height:330px;overflow:hidden;background:#dce5e2}
.service-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s;filter:saturate(.82)}
.service-image:hover img{transform:scale(1.035)}
.service-body{padding:28px 27px 31px;display:flex;flex-direction:column;flex:1}
.service-index{color:#3a5559;font-size:12px;font-weight:700;letter-spacing:.16em}
.service-body h3{font:400 45px/1.05 'Libre Caslon Display',Georgia,serif;margin:16px 0 15px;color:#263437}
.service-body p{font-size:14px;line-height:1.7;color:#3c4b4e;margin:0 0 28px}
.service-body .text-link{margin-top:auto}
.service-note{color:#3c4b4e;font-size:14px;line-height:1.6;margin:26px 0 0}
.service-bottom .split-photo{height:470px}
/* Une vraie carte, avec les commandes natives de Google Maps. */
.real-map{height:430px;border:1px solid #b8c9c6;background:#e7eeeb}
.real-map iframe{display:block;width:100%;height:100%;border:0}
.map-outlink{display:inline-block;color:#344f53;font-size:13px;font-weight:700;margin-top:16px}
.map-outlink:hover{text-decoration:underline}
/* Corrige les images qui débordaient sur le bandeau suivant. */
.gallery-preview{height:auto;grid-template-rows:300px;align-items:stretch}
.gallery-preview img{display:block;width:100%;height:300px;min-height:0;object-fit:cover}
/* Contrastes renforcés pour les textes et les actions. */
:root{--accent:#344f53;--muted:#46575a}
.eyebrow,.text-link,.info-box a,.footer-links a:hover{color:#344f53}
.section-intro,.small-note,.info-box p,.service-row p{color:#46575a}
.button,.nav-cta{background:#344f53;border-color:#344f53}
.cta-band{background:#d4e0dc}
.cta-band .button{background:#344f53;border-color:#344f53}
.footer-links a{color:#f2f3ef}
.footer-links a:hover{color:#c7dcd7}
@media(max-width:850px){.service-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card:last-child{grid-column:1/-1}.service-card:last-child .service-image{height:380px}.gallery-preview{grid-template-rows:240px}.gallery-preview img{height:240px}}
@media(max-width:560px){.services-hero{padding:62px 0 45px}.service-cards{grid-template-columns:1fr}.service-card:last-child{grid-column:auto}.service-image,.service-card:last-child .service-image{height:300px}.gallery-preview{grid-template-rows:repeat(3,230px)}.gallery-preview img{height:230px}.real-map{height:350px}}
@media(max-width:560px){.page-hero h1{font-size:clamp(40px,10.8vw,52px);line-height:1.06;max-width:100%;overflow-wrap:normal}.page-hero .container{min-width:0}.services-hero h1{font-size:clamp(40px,10.8vw,50px)}}
.service-image img,.feature img,.gallery img,.gallery-preview img,.split-photo img{filter:none}
.service-image:hover img{transform:none}
.footer-bottom a{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:3px solid #a3d0ce;outline-offset:4px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
@media(max-width:850px){.menu-toggle{min-width:44px;min-height:44px;display:grid;place-items:center;cursor:pointer}.links a{min-height:44px;display:flex;align-items:center}}
.hero-visit{display:inline-block;margin-top:12px;color:#f8f7f3;font-weight:600;letter-spacing:.04em}
.instagram-gallery figure{overflow:hidden}
.video-embed{padding:10px;background:#dce5e1}
.video-embed video{display:block;width:100%;height:610px;max-height:75vh;object-fit:contain;background:#111;cursor:pointer}
.opening-hours{margin:0;max-width:440px}
.opening-hours div{display:flex;justify-content:space-between;gap:20px;padding:7px 0;color:#263437;font-size:14px;line-height:1.6}
.opening-hours dt{font-weight:600}
.opening-hours dd{margin:0;text-align:right}
.hours-note{margin-top:12px!important;font-size:12px;line-height:1.5!important}
@media(max-width:650px){.video-embed video{height:560px;max-height:70vh}}
