/* Fonts chargées via preconnect dans le HTML — voir header.html */

:root{
--fond:#f8f5ef;
--fond-alt:#ffffff;
--soft:#f3eee4;
--texte:#171717;
--gris:#5f5a52;
--or:#bf9a47;
--ligne:#e8dfd0;
--noir:#101010;
}

*{
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{
margin:0;
font-family:'DM Sans',Arial,sans-serif;
background:
radial-gradient(circle at top left, rgba(191,154,71,0.10), transparent 28%),
radial-gradient(circle at top right, rgba(191,154,71,0.08), transparent 26%),
var(--fond);
color:var(--texte);
}

body::before{
content:"";
position:fixed;
inset:0;
pointer-events:none;
background-image:
linear-gradient(rgba(191,154,71,0.035) 1px, transparent 1px),
linear-gradient(90deg, rgba(191,154,71,0.035) 1px, transparent 1px);
background-size:48px 48px;
opacity:0.28;
z-index:-1;
}

/* =========================
HEADER UNIQUE
========================= */

.header{
max-width:1100px;
margin:0 auto;
padding:24px 24px 0;
}

.header-container{
width:100%;
display:flex;
align-items:center;
justify-content:space-between;
gap:28px;
}

.logo{
display:flex;
align-items:center;
gap:12px;
font-weight:800;
letter-spacing:2px;
text-transform:uppercase;
font-size:16px;
text-decoration:none;
color:inherit;
}

.logo-mark{
width:42px;
height:42px;
border:2px solid var(--or);
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
color:var(--or);
font-size:15px;
font-family:'Cormorant Garamond',Georgia,serif;
font-weight:800;
letter-spacing:1px;
flex-shrink:0;
}

.logo-text{
display:flex;
flex-direction:column;
line-height:1.15;
}

.logo-text .name{
font-weight:800;
letter-spacing:1.6px;
text-transform:uppercase;
font-size:16px;
}

.logo small{
display:block;
font-size:10px;
letter-spacing:3px;
color:var(--gris);
margin-top:3px;
}

.main-nav{
display:flex;
align-items:center;
justify-content:center;
gap:20px;
flex-wrap:wrap;
}

.main-nav a{
text-decoration:none;
color:var(--texte);
font-size:14px;
font-weight:700;
position:relative;
transition:0.2s ease;
white-space:nowrap;
}

.main-nav a:hover{
color:var(--or);
}

.main-nav a::after{
content:"";
position:absolute;
left:0;
bottom:-6px;
width:0;
height:2px;
background:var(--or);
transition:0.25s ease;
}

.main-nav a:hover::after{
width:100%;
}

.header-location{
font-size:14px;
color:var(--texte);
line-height:1.4;
text-align:right;
white-space:nowrap;
}

/* =========================
STRUCTURE
========================= */

section{
max-width:1100px;
margin:0 auto;
padding:46px 24px;
}

.hero{
display:grid;
grid-template-columns:1fr 1fr;
align-items:center;
gap:50px;
min-height:76vh;
padding-top:42px;
padding-bottom: 60px;
position:relative;
}

.hero::after{
content:"SB";
position:absolute;
right:14px;
top:95px;
font-size:98px;
font-family:'Cormorant Garamond',Georgia,serif;
font-weight:700;
letter-spacing:-8px;
color:rgba(191,154,71,0.08);
pointer-events:none;
}

.hero-text{
position:relative;
z-index:2;
}

.hero-img{
width:100%;
max-width:520px;
max-height:420px;
aspect-ratio:4/3;
object-fit:cover;
object-position:center;
border-radius:30px;
box-shadow:0 28px 70px rgba(60,42,18,0.14);
position:relative;
z-index:1;
}

img{
transition:transform 0.3s ease;
}

img:hover{
transform:scale(1.01);
}

h1{
font-family:'Cormorant Garamond',Georgia,serif;
font-size:54px;
line-height:1.02;
margin:0 0 24px;
letter-spacing:-1.4px;
}

h2{
font-family:'Cormorant Garamond',Georgia,serif;
font-size:30px;
line-height:1.28;
margin:0 0 22px;
letter-spacing:-0.02px;
}

h2::after{
content:"";
display:block;
width:42px;
height:2px;
background:var(--or);
margin-top:14px;
}

.center h2::after,
.avis h2::after,
.cta h2::after,
.map-section h2::after{
margin-left:auto;
margin-right:auto;
}

p{
font-size:17px;
line-height:1.82;
letter-spacing:0.01em;
}

.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:14px;
background:var(--noir);
color:#ffffff;
padding:18px 28px;
border-radius:10px;
text-decoration:none;
font-weight:700;
margin:12px 8px 12px 0;
min-width:235px;
box-shadow:0 14px 32px rgba(0,0,0,0.18);
transition:0.2s ease;
}

.btn:hover{
opacity:0.92;
transform:translateY(-3px);
box-shadow:0 20px 40px rgba(0,0,0,0.22);
}

.btn.secondary{
background:#ffffff;
color:#000000;
border:1px solid var(--ligne);
box-shadow:0 8px 22px rgba(0,0,0,0.05);
}

.small{
font-size:15px;
color:var(--gris);
line-height:1.7;
}

.benefits{
display:flex;
flex-direction:column;
gap:10px;
font-size:15px;
color:var(--gris);
line-height:1.7;
margin-top:12px;
}

.security-note{
font-size:12px;
color:#7a746d;
margin-top:18px;
line-height:1.5;
opacity:0.85;
}

footer .security-note{
max-width:520px;
margin:18px auto 0;
text-align:center;
font-size:12px;
color:#7a746d;
line-height:1.5;
opacity:0.85;
}

.price-box{
display:inline-flex;
align-items:center;
gap:10px;
font-weight:800;
margin-top:14px;
font-size:16px;
background:#ffffff;
padding:11px 16px;
border-radius:999px;
border:1px solid var(--ligne);
box-shadow:0 8px 22px rgba(60,42,18,0.05);
}

.proof{
display:inline-flex;
align-items:center;
gap:10px;
font-weight:700;
margin-top:18px;
font-size:16px;
background:#fff5df;
color:#3a2b12;
padding:12px 20px;
border-radius:999px;
border:1.5px solid #e8c96a;
box-shadow:0 4px 16px rgba(191,154,71,0.15);
transition:transform .2s ease,box-shadow .2s ease;
}

.proof:hover{
transform:translateY(-1px);
box-shadow:0 6px 22px rgba(191,154,71,0.22);
}

.proof::before{
content:"★★★★★";
color:var(--or);
font-size:15px;
letter-spacing:1px;
}

.location{
font-size:15px;
color:var(--gris);
margin-top:18px;
line-height:1.7;
}

.center{
text-align:center;
}

.center h2{
font-size:38px;
}

.intro-block,
.soft-section,
.avis{
background:rgba(255,255,255,0.88);
border:1px solid var(--ligne);
border-radius:28px;
box-shadow:0 18px 44px rgba(80,55,20,0.055);
position:relative;
overflow:hidden;
}

.intro-block::before,
.soft-section::before,
.avis::before{
content:"";
position:absolute;
right:-40px;
top:-40px;
width:160px;
height:160px;
border-radius:50%;
background:rgba(191,154,71,0.08);
}

.intro-block::after,
.soft-section::after{
content:"SB";
position:absolute;
right:24px;
bottom:18px;
font-size:46px;
font-family:'Cormorant Garamond',Georgia,serif;
font-weight:700;
letter-spacing:-4px;
color:rgba(191,154,71,0.08);
}

.badge{
display:inline-flex;
align-items:center;
justify-content:center;
width:36px;
height:36px;
border-radius:50%;
background:var(--or);
color:#fff;
font-weight:800;
margin-bottom:16px;
box-shadow:0 8px 18px rgba(191,154,71,0.24);
}

.icon-drawing{
width:96px;
height:96px;
border-radius:50%;
background:#f4ead9;
display:flex;
align-items:center;
justify-content:center;
font-size:26px;
font-family:'Cormorant Garamond',Georgia,serif;
font-weight:800;
color:var(--or);
margin:24px auto 0;
}

.split{
display:grid;
grid-template-columns:1fr 150px;
gap:28px;
align-items:center;
}

.icon-list{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
gap:18px;
text-align:center;
margin:28px 0;
}

.icon-item{
background:#f8f1e6;
border:1px solid var(--ligne);
border-radius:22px;
padding:24px 12px;
font-size:16px;
transition:.25s ease;
position:relative;
}

.icon-item .circle{
width:64px;
height:64px;
border-radius:50%;
background:#fff;
margin:0 auto 12px;
display:flex;
align-items:center;
justify-content:center;
color:var(--or);
font-size:28px;
font-weight:800;
}

.cabinet-img{
width:100%;
max-width:520px;
aspect-ratio:4/3;
object-fit:cover;
object-position:center;
border-radius:24px;
margin-top:25px;
box-shadow:0 22px 55px rgba(60,42,18,0.14);
}

.avis{
text-align:center;
background:var(--soft);
margin-top:30px;
margin-bottom:30px;
}

.review{
background:#ffffff;
margin:22px auto;
padding:30px 22px;
border-radius:24px;
max-width:680px;
font-size:18px;
line-height:1.6;
box-shadow:0 12px 34px rgba(60,42,18,0.07);
border:1px solid rgba(232,223,208,0.9);
}

.stars{
font-size:28px;
margin-bottom:10px;
color:var(--or);
}

.testimonial-author{
margin-top:16px;
font-size:15px;
font-weight:700;
color:var(--texte);
text-align:center;
}

.link{
color:#000000;
text-decoration:underline;
font-weight:bold;
}

.map-section{
text-align:center;
}

.map-section p{
color:var(--gris);
}

.map-container{
max-width:620px;
margin:24px auto 0;
border-radius:999px;
overflow:hidden;
box-shadow:0 22px 55px rgba(60,42,18,0.14);
border:1px solid var(--ligne);
background:#ffffff;
}

.map-container iframe{
width:100%;
height:280px;
border:0;
display:block;
}

.footer-contact-links{
display:flex;
justify-content:center;
gap:14px;
flex-wrap:wrap;
margin:18px 0;
}

.footer-contact-links a{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
background:#ffffff;
border:1px solid var(--ligne);
border-radius:999px;
padding:10px 16px;
text-decoration:none;
font-weight:800;
color:#000;
box-shadow:0 8px 20px rgba(60,42,18,0.06);
}

.social-links{
display:flex;
justify-content:center;
gap:18px;
flex-wrap:wrap;
margin-top:14px;
font-size:14px;
}

.footer-links{
display:flex;
justify-content:center;
align-items:center;
gap:20px;
flex-wrap:wrap;
margin-top:20px;
font-size:0.95rem;
}

.footer-links a{
text-decoration:none;
}

.cta{
max-width:1100px;
text-align:center;
background:
radial-gradient(circle at 15% 20%, rgba(191,154,71,0.16), transparent 25%),
linear-gradient(135deg,#171717,#050505);
color:#ffffff;
border-radius:28px;
margin-bottom:0;
box-shadow:0 20px 50px rgba(0,0,0,0.18);
position:relative;
overflow:hidden;
}

.cta h2{
color:#ffffff;
}

.cta .small{
color:#d7d7d7;
}

.cta .btn{
background:#ffffff;
color:#000;
}

.cta .btn.secondary{
background:transparent;
color:#ffffff;
border:1px solid rgba(255,255,255,0.45);
}

footer{
max-width:1100px;
margin:0 auto 20px;
text-align:center;
padding:28px 20px 88px;
background:#fffaf1;
border:1px solid var(--ligne);
border-radius:0 0 24px 24px;
font-size:14px;
color:var(--gris);
}

.footer-grid{
display:grid;
grid-template-columns:1fr 1fr 1fr;
gap:18px;
align-items:center;
margin-bottom:12px;
}

.profile{
text-align:center;
margin-top:18px;
margin-bottom:12px;
}

.profile-photo{
width:140px;
height:140px;
display:block;
margin:0 auto;
object-fit:cover;
object-position:center 46%;
border-radius:50%;
background:#ffffff;
padding:2px;
border:4px solid #f7f1e7;
box-shadow:0 8px 18px rgba(60,42,18,.06);
}

.profile-name{
margin-top:10px;
font-size:20px;
font-family:'Cormorant Garamond',Georgia,serif;
font-weight:700;
line-height:1.08;
color:var(--texte);
}

.profile-job{
margin-top:4px;
font-size:14px;
line-height:1.5;
color:var(--gris);
}

.floating-call{
position:fixed;
bottom:16px;
left:50%;
transform:translateX(-50%);
background:#000000;
color:#ffffff;
padding:15px 26px;
border-radius:999px;
text-decoration:none;
font-weight:bold;
z-index:999;
box-shadow:0 10px 30px rgba(0,0,0,0.22);
}

.floating-phone{
position:fixed;
bottom:82px;
right:18px;
width:52px;
height:52px;
border-radius:50%;
background:#ffffff;
border:1px solid var(--ligne);
display:flex;
align-items:center;
justify-content:center;
text-decoration:none;
z-index:999;
box-shadow:0 8px 24px rgba(0,0,0,0.12);
color:#000;
}

.floating-phone svg{
width:24px;
height:24px;
stroke:#000;
}

/* =========================
RÉSERVATION RESACLICK
========================= */

.booking-widget{
width:100%;
margin-top:24px;
border-radius:24px;
overflow:hidden;
background:#ffffff;
border:1px solid var(--ligne);
box-shadow:0 18px 44px rgba(80,55,20,0.08);
}

.booking-widget iframe{
display:block;
width:100%;
height:360px;
border:0;
}


/* =========================
NAV HAMBURGER MOBILE
========================= */

.nav-toggle{
display:none;
flex-direction:column;
justify-content:center;
gap:5px;
width:38px;
height:38px;
background:none;
border:none;
cursor:pointer;
padding:4px;
flex-shrink:0;
}

.burger-line{
display:block;
width:24px;
height:2px;
background:var(--texte);
border-radius:2px;
transition:transform 0.25s ease, opacity 0.2s ease;
}

.nav-toggle[aria-expanded="true"] .burger-line:nth-child(1){
transform:translateY(7px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .burger-line:nth-child(2){
opacity:0;
}

.nav-toggle[aria-expanded="true"] .burger-line:nth-child(3){
transform:translateY(-7px) rotate(-45deg);
}

/* =========================
TABLETTE
========================= */

@media (max-width:980px){

.header-container{
flex-direction:column;
gap:16px;
text-align:center;
}

.main-nav{
gap:14px;
}

.header-location{
text-align:center;
font-size:13px;
}

.hero{
padding-top:24px;
}

}

/* =========================
MOBILE
========================= */

@media (max-width:768px){

.header{
padding:22px 22px 0;
}

.nav-toggle{
display:flex;
}

.main-nav{
display:none;
flex-direction:column;
width:100%;
gap:6px;
padding:8px 0 4px;
}

.main-nav.is-open{
display:flex;
}

.main-nav a{
padding:8px 4px;
border-bottom:1px solid var(--ligne);
width:100%;
}



.header-container{
gap:15px;
}

.logo{
font-size:13px;
letter-spacing:1.4px;
}

.logo-mark{
width:34px;
height:34px;
font-size:12px;
}

.logo-text .name{
font-size:13px;
}

.logo small{
font-size:9px;
letter-spacing:2.4px;
}

.main-nav{
width:100%;
gap:10px 14px;
padding-top:4px;
}

.main-nav a{
font-size:13px;
}

.header-location{
font-size:12px;
}

section{
padding:32px 22px;
}

.hero{
grid-template-columns:1fr;
min-height:auto;
gap:24px;
}

.hero::after{
font-size:62px;
top:105px;
right:8px;
letter-spacing:-6px;
}

h1{
font-size:38px;
line-height:1.04;
}

h2{
font-size:27px;
}

.center h2{
font-size:30px;
}

p{
font-size:16px;
line-height:1.62;
}

.btn{
display:flex;
width:100%;
min-width:0;
text-align:center;
padding:16px 22px;
}

.small{
font-size:15px;
line-height:1.7;
}

.benefits{
font-size:15px;
line-height:1.7;
gap:9px;
margin-top:12px;
}

.location{
font-size:15px;
line-height:1.7;
}

.security-note{
font-size:12px;
color:#7a746d;
margin-top:18px;
line-height:1.5;
opacity:0.85;
}

.profile{
margin-top:18px;
margin-bottom:12px;
}

.profile-photo{
width:140px;
height:140px;
object-fit:cover;
object-position:center 46%;
padding:2px;
}

.profile-name{
font-size:20px;
}

.profile-job{
margin-top:4px;
font-size:14px;
}

.split{
grid-template-columns:1fr;
}

.footer-grid{
grid-template-columns:1fr;
text-align:center;
}

.footer-links{
gap:12px;
font-size:14px;
}

.review{
padding:24px 18px;
font-size:16px;
}

.map-container{
max-width:100%;
border-radius:999px;
}

.map-container iframe{
height:220px;
}

.booking-widget iframe{
height:430px;
}

}

@media (max-width:430px){

.main-nav{
gap:9px 12px;
}

.main-nav a{
font-size:12.5px;
}

.header-location{
display:none;
}

.booking-widget iframe{
height:340px;
}

}

/* ==========================
COOKIES PREMIUM
========================== */

#cookie-banner{
position:fixed;
left:20px;
right:20px;
bottom:20px;
background:#fff;
border:1px solid var(--ligne);
border-radius:20px;
padding:20px;
box-shadow:0 10px 35px rgba(0,0,0,0.15);
z-index:99999;
}

.cookie-content{
max-width:1100px;
margin:auto;
display:flex;
justify-content:space-between;
align-items:center;
gap:20px;
}

.cookie-content p{
margin:0;
font-size:14px;
line-height:1.5;
}

.cookie-actions{
display:flex;
gap:10px;
flex-wrap:wrap;
}

.cookie-actions button{
padding:10px 18px;
border-radius:999px;
border:none;
cursor:pointer;
font-weight:600;
}

.cookie-primary{
background:var(--noir);
color:white;
}

.cookie-secondary{
background:#f4f4f4;
}

.cookie-modal{
position:fixed;
inset:0;
background:rgba(0,0,0,0.45);
display:flex;
align-items:center;
justify-content:center;
z-index:100000;
}

.cookie-modal-content{
background:white;
padding:30px;
border-radius:20px;
max-width:500px;
width:90%;
}

.cookie-modal-content h3{
margin-top:0;
}

.cookie-option{
margin:15px 0;
display:flex;
gap:10px;
align-items:center;
}

.cookie-save{
margin-top:20px;
width:100%;
padding:12px;
border:none;
border-radius:999px;
background:var(--noir);
color:white;
cursor:pointer;
}

@media(max-width:768px){

.cookie-content{
flex-direction:column;
align-items:flex-start;
}

.cookie-actions{
width:100%;
}

.cookie-actions button{
flex:1;
}

}
/* ===================================== */
/* Cartes problématiques cliquables */
/* ===================================== */

.icon-list a.icon-item{
color:var(--texte);
text-decoration:none;
cursor:pointer;
transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}

.icon-list a.icon-item:hover{
transform:translateY(-3px);
box-shadow:0 10px 25px rgba(0,0,0,.08);
opacity:.95;
}

.icon-list a.icon-item:active{
transform:translateY(0);
}

.icon-list a.icon-item:focus-visible{
outline:2px solid var(--or);
outline-offset:4px;
}
.all-problematiques{
text-align:center;
margin:35px 0 15px;
}

.all-problematiques p{
margin-bottom:10px;
font-size:1rem;
color:var(--texte);
}

.all-problematiques a{
display:inline-block;
padding:12px 22px;
border:1px solid var(--or);
border-radius:999px;
color:var(--or);
text-decoration:none;
font-weight:600;
transition:.25s ease;
}

.all-problematiques a:hover{
background:var(--or);
color:#fff;
}
/* ===================================== */
/* Pages associées */
/* ===================================== */

.related-pages{
margin:70px 0;
padding:0 20px;
text-align:center;
}

.related-pages h2{
margin-bottom:15px;
}

.related-intro{
max-width:700px;
margin:0 auto 25px;
text-align:center;
color:#666;
line-height:1.7;
font-size:1rem;
}

.related-grid{
display:flex;
justify-content:center;
flex-wrap:wrap;
gap:15px;
}

.related-grid a{
display:inline-block;
padding:12px 20px;
border:1px solid var(--or);
border-radius:999px;
text-decoration:none;
color:var(--or);
font-weight:600;
transition:.25s ease;
}

.related-grid a:hover{
background:var(--or);
color:#fff;
}

/* ===== Bloc de conviction ===== */

.mini-conviction{
max-width:700px;
margin:30px auto;
padding:22px 28px;
text-align:center;
background:#ffffff;
border-left:4px solid #c9a64d;
border-radius:12px;
box-shadow:0 2px 10px rgba(0,0,0,0.05);
}

.mini-conviction p{
margin:0;
font-size:1.15rem;
line-height:1.7;
font-style:italic;
color:#333;
}
a.icon-item::after{
content:"→";
display:block;
margin-top:8px;
font-size:18px;
font-weight:700;
color:var(--or);
}

@media (min-width:769px){

a.icon-item::after{
opacity:0;
transition:.25s ease;
}

a.icon-item:hover::after{
opacity:1;
}

}

/* =========================
SECTION PARTAGE
========================= */

.share-section{
text-align:center;
padding:40px 20px;
border-top:1px solid var(--ligne);
}

.share-label{
font-size:15px;
color:var(--gris);
margin-bottom:16px;
font-family:'DM Sans',Arial,sans-serif;
}

.share-btns{
display:flex;
gap:12px;
justify-content:center;
flex-wrap:wrap;
}

.share-wa,
.share-fb{
display:inline-flex;
align-items:center;
gap:8px;
padding:10px 18px;
border-radius:10px;
font-size:14px;
font-weight:500;
text-decoration:none;
font-family:'DM Sans',Arial,sans-serif;
transition:opacity .2s ease, transform .15s ease;
}

.share-wa:hover,
.share-fb:hover{
opacity:.88;
transform:translateY(-1px);
}

.share-wa{
background:#25d366;
color:#fff;
}

.share-fb{
background:#1877f2;
color:#fff;
}

.share-wa svg,
.share-fb svg{
width:17px;
height:17px;
flex-shrink:0;
}


/* =========================
SÉPARATEURS SECTION
========================= */

.intro-block + .soft-section,
.soft-section + section,
section + .soft-section{
border-top:1px solid var(--ligne);
}

.section-divider{
text-align:center;
overflow:hidden;
margin:0;
padding:0;
height:28px;
opacity:0.35;
}

.section-divider svg{
width:100%;
height:28px;
fill:var(--or);
}


/* =========================
ANIMATION SCROLL FADE-IN
========================= */

.fade-in{
opacity:0;
transform:translateY(22px);
transition:opacity 0.55s ease, transform 0.55s ease;
will-change:opacity,transform;
}

.fade-in.visible{
opacity:1;
transform:translateY(0);
}


/* =========================
MOBILE FONT MINIMUM 16px
========================= */

@media(max-width:768px){
input, textarea, select, button{
font-size:16px !important;
}
}


/* =========================
CURSEUR PERSONNALISÉ
========================= */

body{
cursor:none;
}

#custom-cursor{
position:fixed;
width:36px;
height:36px;
border:1.5px solid var(--or);
border-radius:50%;
pointer-events:none;
z-index:999999;
transition:transform 0.15s ease, opacity 0.3s ease, border-color 0.2s ease;
mix-blend-mode:multiply;
top:0;
left:0;
}

#custom-cursor.hover{
border-color:#bf9a47;
background:rgba(191,154,71,0.08);
}

#custom-cursor-dot{
position:fixed;
width:6px;
height:6px;
background:var(--or);
border-radius:50%;
pointer-events:none;
z-index:999999;
top:0;
left:0;
transition:opacity 0.3s ease;
}

@media(pointer:coarse){
body{ cursor:auto; }
#custom-cursor,#custom-cursor-dot{ display:none; }
}

/* =========================
TRANSITION DE PAGE
========================= */

#page-transition{
position:fixed;
inset:0;
background:var(--fond);
z-index:999998;
opacity:0;
pointer-events:none;
transition:opacity 0.28s ease;
}

#page-transition.active{
opacity:1;
pointer-events:all;
}

/* =========================
BARRE DE PROGRESSION LECTURE
========================= */

#read-progress{
position:fixed;
top:0;
left:0;
height:3px;
width:0%;
background:linear-gradient(90deg, var(--or), #e8b84b);
z-index:99998;
transition:width 0.1s linear;
border-radius:0 2px 2px 0;
}

/* =========================
MODE SOMBRE
========================= */

[data-theme="dark"]{
--fond:#161410;
--fond-alt:#1e1b17;
--soft:#1a1713;
--texte:#f0ece4;
--gris:#a09890;
--or:#d4aa55;
--ligne:#2e2a24;
--noir:#0a0908;
}

[data-theme="dark"] .header{
background:var(--fond);
border-bottom:1px solid var(--ligne);
}

[data-theme="dark"] .hero-img{
box-shadow:0 28px 70px rgba(0,0,0,0.5);
}

[data-theme="dark"] .proof{
background:#2a2310;
color:#f0ece4;
border-color:#4a3e1e;
}

[data-theme="dark"] #search-box{
background:var(--fond-alt);
border-color:var(--ligne);
}

[data-theme="dark"] #chat-window{
background:var(--fond-alt);
border-color:var(--ligne);
}

[data-theme="dark"] .chat-bubble.bot{
background:var(--soft);
color:var(--texte);
}

[data-theme="dark"] .chat-choice{
background:var(--fond);
border-color:var(--ligne);
color:var(--texte);
}

[data-theme="dark"] .share-wa{
filter:brightness(0.9);
}

[data-theme="dark"] .review{
background:var(--fond-alt);
border-color:var(--ligne);
}




/* =========================
CARTE PATIENTS
========================= */

.patients-map-section{
text-align:center;
}

.patients-map-section h2{
font-family:'Cormorant Garamond',Georgia,serif;
font-size:32px;
margin-bottom:12px;
}

.map-intro{
color:var(--gris);
font-size:15px;
margin-bottom:28px;
line-height:1.7;
}

.patients-map{
max-width:680px;
margin:0 auto 20px;
border-radius:20px;
overflow:hidden;
border:1px solid var(--ligne);
box-shadow:0 8px 32px rgba(0,0,0,0.07);
}

.map-legend{
font-size:13px;
color:var(--gris);
font-family:'DM Sans',Arial,sans-serif;
}

.legend-cabinet{
color:#bf9a47;
font-size:16px;
}

.legend-ville{
color:#5f5a52;
font-size:16px;
}

@media(max-width:768px){
.patients-map-section h2{
font-size:26px;
}
.stats-row{
gap:12px;
}
}


/* =========================
CARTE PATIENTS — REFONTE
========================= */

.patients-map-section{
text-align:center;
padding:60px 24px;
}

.patients-map-section h2{
font-family:'Cormorant Garamond',Georgia,serif;
font-size:32px;
margin-bottom:12px;
}

.map-intro{
color:var(--gris);
font-size:15px;
margin-bottom:28px;
line-height:1.7;
}

.patients-map{
max-width:580px;
margin:0 auto 20px;
border-radius:20px;
border:1px solid var(--ligne);
box-shadow:0 8px 32px rgba(0,0,0,0.07);
background:#f3eee4;
overflow:hidden;
}



/* Loire */


/* Villes */










@media(max-width:480px){


}

/* =========================
CARTE GOOGLE MAPS
========================= */

.patients-map-section{
text-align:center;
}

.patients-map-section h2{
font-family:'Cormorant Garamond',Georgia,serif;
font-size:32px;
margin-bottom:12px;
}

.map-intro{
color:var(--gris);
font-size:15px;
margin-bottom:24px;
line-height:1.7;
}

.patients-map{
max-width:680px;
margin:0 auto 16px;
border-radius:20px;
overflow:hidden;
border:1px solid var(--ligne);
box-shadow:0 8px 32px rgba(0,0,0,0.08);
}

.map-caption{
font-size:13px;
color:var(--gris);
font-family:'DM Sans',Arial,sans-serif;
}

.map-caption a{
color:var(--or);
text-decoration:none;
}

.map-caption a:hover{
text-decoration:underline;
}

@media(max-width:768px){
.patients-map-section h2{ font-size:26px; }
.patients-map iframe{ height:280px; }
}


/* =========================
CARROUSEL TÉMOIGNAGES
========================= */

.carousel-wrapper{
position:relative;
overflow:hidden;
max-width:680px;
margin:0 auto;
}

.carousel-track{
display:flex;
transition:transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
cursor:grab;
user-select:none;
}

.carousel-track:active{ cursor:grabbing; }

.carousel-slide{
min-width:100%;
padding:0 4px;
box-sizing:border-box;
}

.carousel-slide .review{
margin:22px auto;
user-select:none;
}

.carousel-dots{
display:flex;
justify-content:center;
gap:8px;
margin:8px 0 16px;
}

.carousel-dot{
width:8px;
height:8px;
border-radius:50%;
background:var(--ligne);
border:none;
cursor:pointer;
padding:0;
transition:background .2s ease, transform .2s ease;
}

.carousel-dot.active{
background:var(--or);
transform:scale(1.3);
}

/* =========================
ANIMATION H1 MOT PAR MOT
========================= */

@keyframes word-in{
from{
opacity:0;
transform:translateY(14px);
}
to{
opacity:1;
transform:translateY(0);
}
}

.word-reveal{
display:inline-block;
opacity:0;
animation:word-in 0.45s ease forwards;
}

/* =========================
PREFETCH — visuel neutre
========================= */

link[rel="prefetch"]{ display:none; }


/* =========================
1. GRAIN DE TEXTURE
========================= */

html::after{
content:'';
position:fixed;
inset:0;
z-index:99997;
pointer-events:none;
opacity:0.032;
background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
background-repeat:repeat;
background-size:128px 128px;
}

[data-theme="dark"] html::after{
opacity:0.05;
}

/* =========================
2. FLUID TYPOGRAPHY
========================= */

h1{
font-size:clamp(34px, 5.5vw, 64px) !important;
line-height:1.02 !important;
letter-spacing:clamp(-2px, -0.25vw, -1px) !important;
}

h2{
font-size:clamp(24px, 3.2vw, 34px) !important;
}

.center h2{
font-size:clamp(26px, 3.8vw, 40px) !important;
}

p{
font-size:clamp(15px, 1.8vw, 17px);
}



/* =========================
6. CURSEUR MAGNÉTIQUE CTA
========================= */

.btn{
transition:transform 0.35s cubic-bezier(0.23,1,0.32,1), box-shadow 0.3s ease, opacity 0.2s ease !important;
will-change:transform;
}



/* =========================
1. LOADER D'ENTRÉE
========================= */

#page-loader{
position:fixed;
inset:0;
z-index:999999;
background:var(--fond);
display:flex;
align-items:center;
justify-content:center;
transition:opacity 0.6s ease;
/* Failsafe CSS : disparaît après 2s même sans JS */
animation:loader-auto-hide 0.6s ease 1.5s forwards;
}

@keyframes loader-auto-hide{
to{ opacity:0; pointer-events:none; }
}

#page-loader.fade-out{
opacity:0;
pointer-events:none;
}

.loader-inner{
display:flex;
flex-direction:column;
align-items:center;
gap:20px;
}

.loader-mark{
width:64px;
height:64px;
border-radius:50%;
border:2px solid var(--or);
display:flex;
align-items:center;
justify-content:center;
font-family:'Cormorant Garamond',Georgia,serif;
font-weight:700;
font-size:20px;
color:var(--or);
animation:loader-pulse 1.4s ease-in-out infinite;
}

.loader-line{
width:48px;
height:1px;
background:var(--ligne);
position:relative;
overflow:hidden;
}

.loader-line::after{
content:'';
position:absolute;
left:-100%;
top:0;
width:100%;
height:100%;
background:var(--or);
animation:loader-slide 1.4s ease-in-out infinite;
}

@keyframes loader-pulse{
0%,100%{ transform:scale(1); opacity:1; }
50%{ transform:scale(1.06); opacity:0.8; }
}

@keyframes loader-slide{
0%{ left:-100%; }
100%{ left:100%; }
}



/* =========================
5. PAGE 404
========================= */

.not-found-section{
min-height:60vh;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
gap:16px;
}

.not-found-num{
font-family:'Cormorant Garamond',Georgia,serif;
font-size:clamp(80px,15vw,160px);
font-weight:700;
color:var(--or);
opacity:0.25;
line-height:1;
margin-bottom:0;
}



/* =========================
PROBLEM LINKS
========================= */

.problem-list{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:14px;
margin-top:26px;
}

.problem-link{
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:18px;
padding:18px 20px;
background:#ffffff;
border:1px solid var(--ligne);
border-radius:18px;
text-decoration:none;
color:var(--texte);
box-shadow:0 10px 26px rgba(60,42,18,0.055);
transition:0.2s ease;
}

.problem-link:hover{
transform:translateY(-2px);
box-shadow:0 16px 34px rgba(60,42,18,0.09);
}

.problem-link strong{
display:block;
font-size:17px;
margin-bottom:5px;
color:var(--texte);
}

.problem-link span{
display:block;
font-size:14px;
line-height:1.45;
color:var(--gris);
}

.problem-link em{
font-style:normal;
font-weight:800;
color:var(--or);
white-space:nowrap;
margin-top:2px;
}

@media(max-width:768px){
.problem-list{
grid-template-columns:1fr;
gap:12px;
}
.problem-link{
padding:16px 17px;
border-radius:16px;
}
.problem-link strong{ font-size:16px; }
.problem-link span{ font-size:13.5px; }
}
