/* Centres dentaires de Montpellier : design 2 (11 novembre 2026). Couleurs de chaque centre ajoutées en fin de fichier par build.py. */
:root{
 --white:#ffffff; --soft:#f4f7f8; --soft-2:#e9f0f1;
 --ink:#16303a; --text:#3d4a50; --muted:#6f7c82; --line:#e3e9eb;
 --accent:#2b7a78; --accent-d:#1f5f5d; --accent-l:#7fc4c1;
 --max:1200px; --text-w:66ch; --r:22px; --r-s:14px;
 --serif:"Fraunces",Georgia,"Times New Roman",serif;
 --sans:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
 --shadow:0 18px 50px rgba(22,48,58,.10);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-weight:400;color:var(--text);background:var(--white);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent-d);text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{color:var(--ink)}
h1,h2,h3{font-family:var(--serif);color:var(--ink);font-weight:500;line-height:1.12;letter-spacing:-.01em}
h1{font-size:clamp(2.2rem,5vw,3.9rem);margin:.15em 0 .35em}
h1 em,h2 em{font-style:italic;color:var(--accent)}
h2{font-size:clamp(1.65rem,3vw,2.4rem);margin:2.2em 0 .6em}
h3{font-family:var(--sans);font-size:1.08rem;font-weight:600;letter-spacing:0;margin:1.2em 0 .35em}
p,li{max-width:var(--text-w)}
strong{font-weight:600;color:var(--ink)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px 12px;z-index:99}
.eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 .5em}
.lead{font-size:1.15rem;color:var(--text);max-width:52ch}
.center{text-align:center}.center p,p.center{margin-left:auto;margin-right:auto}

/* En-tête */
.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:24px;min-height:74px;position:relative}
.brand-text{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:1.35rem;font-weight:500;line-height:1.05}
.brand-text span{font-family:var(--sans);font-size:.62rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}
#menu{margin-left:auto}
#menu ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}
#menu a{display:block;white-space:nowrap;padding:8px 14px;text-decoration:none;color:var(--ink);font-size:.93rem;font-weight:500;border-radius:999px;transition:background .2s}
#menu a:hover,#menu a[aria-current]{background:var(--soft-2)}
.menu-btn{display:none;margin-left:auto;font:inherit;font-size:.9rem;font-weight:600;background:var(--soft);border:0;border-radius:999px;padding:10px 16px;color:var(--ink)}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 26px;font-family:var(--sans);font-size:.97rem;font-weight:600;text-decoration:none;line-height:1.2;border:2px solid transparent;border-radius:999px;transition:transform .15s,background .2s,box-shadow .2s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 8px 22px rgba(0,0,0,.12)}
.btn-primary:hover{background:var(--accent-d);color:#fff}
.btn-tel{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-tel:hover{border-color:var(--ink);color:var(--ink)}
.btn-ghost{background:transparent;border-color:var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.top-call{padding:11px 20px;font-size:.9rem}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

/* Bandeau d'accueil sans photo */
.hero{padding:64px 0 34px;background:linear-gradient(180deg,var(--soft) 0%,#fff 100%)}
.hero .hero-text{max-width:820px}
.crumbs{font-size:.86rem;color:var(--muted);margin-bottom:18px}
.crumbs a{color:var(--muted)}

/* Bandeau d'accueil avec photo */
.hero-photo{position:relative;padding:0;background:none}
.hero-photo .hero-in{position:relative;max-width:var(--max);margin:0 auto;padding:22px 28px 0}
.hero-photo .hero-media{position:relative;margin:0;border-radius:var(--r);overflow:hidden;height:min(74vh,640px)}
.hero-photo .hero-media img{width:100%;height:100%;object-fit:cover}
.hero-photo .hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,25,30,.42) 0%,rgba(10,25,30,.12) 45%,rgba(10,25,30,0) 70%)}
.hero-photo .hero-text{position:absolute;left:64px;bottom:44px;max-width:560px;background:rgba(255,255,255,.95);backdrop-filter:blur(6px);border-radius:var(--r);padding:34px 36px 32px;box-shadow:var(--shadow)}
.hero-photo .hero-text h1{font-size:clamp(2rem,3.6vw,3.1rem)}
.hero-photo .lead{font-size:1.05rem}

/* Contenu */
.answer{background:var(--soft);padding:26px 30px;margin:48px 0 8px;max-width:900px;border-radius:var(--r)}
.answer p{margin:0;font-size:1.08rem;line-height:1.65;color:var(--ink)}
.answer strong{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:6px}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:40px 0 8px}
.facts div{background:#fff;border:1px solid var(--line);border-radius:var(--r-s);padding:22px 20px;transition:box-shadow .2s}
.facts div:hover{box-shadow:var(--shadow)}
.facts b{display:block;font-family:var(--serif);font-size:1.25rem;font-weight:500;color:var(--ink);margin-bottom:6px}
.facts span{color:var(--muted);font-size:.95rem;line-height:1.5;display:block}
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:26px 0}
.grid .card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px 24px 20px;transition:transform .2s,box-shadow .2s;position:relative}
.grid .card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.grid .card h3{margin:0 0 6px;font-size:1.12rem}
.grid .card h3 a{color:var(--ink);text-decoration:none}
.grid .card h3 a::after{content:"";position:absolute;inset:0}
.grid .card p{margin:0;color:var(--muted);font-size:.96rem;line-height:1.55}
.ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--soft-2);color:var(--accent-d);margin-bottom:14px}
.ico svg{width:24px;height:24px}
.steps{counter-reset:s;list-style:none;padding:0;margin:26px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.steps li{counter-increment:s;position:relative;background:var(--soft);border-radius:var(--r-s);padding:56px 20px 20px;max-width:none}
.steps li::before{content:counter(s);position:absolute;left:20px;top:18px;width:30px;height:30px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:600;font-size:.9rem;border-radius:50%}
.steps strong{display:block;font-size:1rem;margin-bottom:2px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-top:20px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0 8px}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-s)}
.cards-mini{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.cards-mini li{max-width:none}
.cards-mini a{display:block;padding:10px 18px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-size:.94rem;font-weight:500;color:var(--ink);background:#fff;transition:all .2s}
.cards-mini a:hover{border-color:var(--accent);background:var(--accent);color:#fff}
.hours-table{border-collapse:collapse;margin:16px 0}
.hours-table td,.hours-table th{padding:9px 22px 9px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.map-link{margin-top:10px}

/* FAQ */
.faq{margin-top:20px}
.faq details{border:1px solid var(--line);border-radius:var(--r-s);margin:10px 0;background:#fff;max-width:900px}
.faq summary{cursor:pointer;list-style:none;padding:18px 54px 18px 22px;font-weight:600;color:var(--ink);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:1.4rem;color:var(--accent);font-weight:400}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin:0;padding:0 22px 20px}

/* Blocs spéciaux */
.feature{display:grid;grid-template-columns:1.05fr 1fr;margin:64px 0 10px;border-radius:var(--r);overflow:hidden;background:var(--soft)}
.feature figure{margin:0;min-height:360px}
.feature figure img{width:100%;height:100%;object-fit:cover}
.feature .feature-text{padding:42px 44px}
.feature h2{margin-top:0}
.feature ul{padding-left:0;list-style:none}
.feature li{position:relative;padding-left:30px;margin:10px 0}
.feature li::before{content:"";position:absolute;left:0;top:.55em;width:14px;height:14px;border-radius:50%;background:var(--accent-l)}
.feature-small{font-size:.86rem;color:var(--muted);margin-top:14px}
.photo-strip{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin:40px 0}
.photo-strip img{width:100%;height:280px;object-fit:cover;border-radius:var(--r-s)}

/* Soins liés */
.related{padding-top:40px}
.related h2{margin-top:.2em}

/* Bande rendez-vous */
.band{margin:70px auto 0;max-width:var(--max);padding:0 28px}
.band-in{background:var(--ink);color:#fff;border-radius:var(--r);padding:52px 48px;text-align:center;background-image:radial-gradient(circle at 85% 20%,rgba(255,255,255,.09),transparent 45%)}
.band h2{color:#fff;margin:.2em auto .3em;max-width:24ch}
.band p{color:rgba(255,255,255,.82);margin-left:auto;margin-right:auto}
.band .eyebrow{color:var(--accent-l)}
.band .cta-row{justify-content:center}
.band .btn-tel{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.band .btn-ghost{border-color:rgba(255,255,255,.4);color:#fff}
.band .btn-ghost:hover{background:#fff;color:var(--ink)}

/* Pied de page */
.foot{background:#0f2229;color:#c9d3d6;padding:64px 0 30px;margin-top:70px;font-size:.95rem}
.foot a{color:#fff;text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot-in{display:grid;grid-template-columns:1.2fr 1.5fr 1fr;gap:48px}
.wordmark{font-family:var(--serif);font-size:1.5rem;color:#fff;margin:0 0 16px;line-height:1.1}
.wordmark span{display:block;color:var(--accent-l)}
.foot address{font-style:normal;line-height:1.8}
.foot-title{font-weight:600;color:#fff;margin:0 0 12px}
.plain{list-style:none;padding:0;margin:12px 0}
.plain li{margin:4px 0}
.cols{columns:2;column-gap:28px}
.foot-pay{font-size:.86rem;color:#9fb0b5;margin-top:12px}
.foot-small{font-size:.8rem;color:#8a9ca2;margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1)}
.sticky-cta{display:none}

/* Tablette */
@media (max-width:1020px){
 #menu{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);padding:10px 20px 20px;box-shadow:var(--shadow)}
 #menu.open{display:block}
 #menu ul{flex-direction:column}
 #menu a{padding:12px 14px;font-size:1rem}
 .menu-btn{display:inline-block}
 .top-call{display:none}
 .facts{grid-template-columns:1fr 1fr}
 .split,.feature{grid-template-columns:1fr}
 .feature figure{min-height:0;height:300px}
 .foot-in{grid-template-columns:1fr 1fr}
}
/* Téléphone */
@media (max-width:640px){
 body{font-size:16px;padding-bottom:58px}
 .wrap{padding:0 20px}
 .top-in{min-height:64px}
 .brand-text{font-size:1.2rem}
 .hero{padding:36px 0 18px}
 .hero-photo .hero-in{padding:10px 10px 0}
 .hero-photo .hero-media{height:30vh;min-height:190px;max-height:250px}
 .hero-photo .hero-media::after{background:none}
 .hero-photo .hero-text{position:relative;left:auto;bottom:auto;margin:-34px 10px 0;padding:20px 20px 22px;max-width:none}
 .hero-photo .lead{font-size:.98rem;line-height:1.55;margin:.4em 0 0}
 .hero-photo .cta-row{margin-top:16px}
 .hero-photo .eyebrow{font-size:.7rem}
 .hero-photo .hero-text h1,h1{font-size:1.85rem}
 .cta-row{flex-direction:column}
 .cta-row .btn{width:100%}
 h2{margin-top:1.8em}
 .answer{padding:20px;margin-top:32px}
 .facts{gap:10px}
 .facts div{padding:16px 14px}
 .facts b{font-size:1.05rem}
 .facts span{font-size:.88rem}
 .grid{grid-template-columns:1fr;gap:12px}
 .gallery{grid-template-columns:1fr 1fr;gap:8px}
 .photo-strip{grid-template-columns:1fr 1fr}
 .photo-strip img{height:170px}
 .photo-strip img:first-child{grid-column:1/3;height:220px}
 .feature{margin-top:44px}
 .feature figure{height:230px}
 .feature .feature-text{padding:28px 22px}
 .steps li{padding:52px 18px 18px}
 .band{padding:0 12px}
 .band-in{padding:38px 22px}
 .foot-in{grid-template-columns:1fr;gap:30px}
 .cols{columns:1}
 .hours-table td{padding-right:14px}
 .sticky-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--ink);box-shadow:0 -6px 20px rgba(0,0,0,.15)}
 .sticky-cta a{flex:1;text-align:center;color:#fff;text-decoration:none;font-size:.92rem;font-weight:600;padding:17px 6px;border-right:1px solid rgba(255,255,255,.12)}
 .sticky-cta a:nth-child(2){background:var(--accent)}
}
:root{--accent:#33598f;--accent-d:#244270;--accent-l:#8fb0dc;--ink:#1a2238}
