*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bordeaux:#8B1538;
  --bordeaux-deep:#5C0E26;
  --noir:#0d0608;
  --or:#D4A574;
  --or-clair:#E8C49A;
  --texte:#1a0a0d;
  --fond:#f8f3f1;
}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.65;color:var(--texte);background:var(--fond);overflow-x:hidden}
/* Anti-débordement : les noms de communes longs se coupent proprement */
h1,h2,h3{overflow-wrap:break-word;word-break:break-word;hyphens:auto}
img{max-width:100%}

.age-banner{background:var(--noir);color:#fff;text-align:center;padding:10px;font-size:12px;letter-spacing:1.5px;font-weight:600}

/* HERO */
header.hero{position:relative;background-size:cover;background-position:center;color:#fff;padding:80px 20px 90px;overflow:hidden}
header.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(13,6,8,.35) 0%,rgba(13,6,8,.55) 70%,rgba(13,6,8,.75) 100%)}
.hero-content{position:relative;z-index:2;max-width:780px;margin:0 auto;text-align:center}
.tagline{color:var(--or-clair);font-size:13px;letter-spacing:3px;text-transform:uppercase;font-weight:500;margin-bottom:20px;text-shadow:0 2px 8px rgba(0,0,0,.5)}
h1{font-family:'Playfair Display',Georgia,serif;font-size:40px;font-weight:600;margin-bottom:16px;line-height:1.15;color:#fff;text-shadow:0 4px 20px rgba(0,0,0,.6)}
h1 em{font-style:italic;color:var(--or-clair)}
.subtitle{font-size:17px;color:rgba(255,255,255,.95);margin-bottom:38px;text-shadow:0 2px 10px rgba(0,0,0,.5)}

.cta-block{position:relative;z-index:2;background:rgba(255,255,255,.97);border-radius:14px;padding:30px 26px;margin:30px auto 0;max-width:440px;box-shadow:0 25px 70px rgba(0,0,0,.5),0 0 0 1px rgba(212,165,116,.4)}
.cta-label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--bordeaux);font-weight:600;margin-bottom:10px}
.number{font-family:'Playfair Display',Georgia,serif;font-size:40px;font-weight:600;color:var(--bordeaux-deep);letter-spacing:2px;display:block;text-decoration:none;margin-bottom:10px}
.number:hover{color:var(--bordeaux)}
.tarif{font-size:13px;color:#555;font-weight:500}
.tarif strong{color:var(--bordeaux);font-size:15px}

/* BREADCRUMB */
.breadcrumb{background:#fff;border-bottom:1px solid #ede4e0;padding:12px 20px;font-size:13px}
.breadcrumb-inner{max-width:780px;margin:0 auto;color:#7a6e6e;overflow-wrap:break-word;line-height:1.9}
.breadcrumb a{color:var(--bordeaux);text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.breadcrumb .sep{margin:0 8px;color:var(--or)}

.container{max-width:780px;margin:0 auto;padding:0 20px}
main{padding:55px 0 30px}
section{margin-bottom:48px}
h2{font-family:'Playfair Display',Georgia,serif;font-size:28px;color:var(--texte);margin-bottom:18px;font-weight:600}
h2::after{content:'';display:block;width:50px;height:2px;background:var(--or);margin-top:10px}
h3{font-family:'Playfair Display',Georgia,serif;font-size:20px;color:var(--bordeaux-deep);margin:20px 0 10px;font-weight:600}
p{margin-bottom:16px;color:#3a2a2d;font-size:16px;line-height:1.7}

.visual{width:100%;border-radius:14px;overflow:hidden;margin:26px 0 32px;box-shadow:0 18px 50px rgba(92,14,38,.25);display:block;aspect-ratio:16/9;background:#e8ddd8}
.visual img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:16/9}

.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:24px 0}
.info-card{background:#fff;padding:16px;border-radius:10px;border-top:3px solid var(--or);box-shadow:0 2px 8px rgba(139,21,56,.06)}
.info-label{font-size:11px;text-transform:uppercase;color:#9a7a7e;letter-spacing:1px;margin-bottom:5px;font-weight:600}
.info-value{font-size:16px;font-weight:600;color:var(--bordeaux-deep)}

.cta-inline{background-size:cover;background-position:center;border-radius:12px;padding:38px 24px;text-align:center;margin:40px 0;position:relative;overflow:hidden;box-shadow:0 14px 38px rgba(13,6,8,.35)}
.cta-inline::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(13,6,8,.55),rgba(92,14,38,.65))}
.cta-inline p{margin-bottom:8px;font-size:13px;color:var(--or-clair);position:relative;letter-spacing:1.5px;text-transform:uppercase;font-weight:500}
.cta-inline a{font-family:'Playfair Display',Georgia,serif;color:#fff;font-size:32px;font-weight:600;text-decoration:none;position:relative;letter-spacing:2px;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.cta-inline .tarif-inline{font-size:12px;color:rgba(255,255,255,.85);margin-top:12px;text-transform:none;letter-spacing:0;position:relative}

.nearby{background:#fff;padding:24px;border-radius:10px;font-size:14px;color:#555;line-height:2.2;border-left:3px solid var(--or)}
.nearby a{color:var(--bordeaux);text-decoration:none;margin-right:8px;font-weight:500}
.nearby a:hover{text-decoration:underline}

/* FAQ */
.faq-item{background:#fff;padding:20px 24px;border-radius:10px;margin-bottom:12px;border-left:3px solid var(--or);box-shadow:0 2px 6px rgba(139,21,56,.04)}
.faq-q{font-weight:600;color:var(--bordeaux-deep);font-size:16px;margin-bottom:6px}
.faq-a{font-size:15px;color:#3a2a2d;margin:0}

/* CTA BAR STICKY MOBILE */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(135deg,var(--noir),var(--bordeaux-deep));padding:14px 20px;z-index:100;display:flex;align-items:center;justify-content:center;gap:12px;box-shadow:0 -8px 24px rgba(0,0,0,.4);transform:translateY(110%);transition:transform .35s ease}
.sticky-cta.visible{transform:translateY(0)}
.sticky-cta a{color:#fff;font-family:'Playfair Display',Georgia,serif;font-size:22px;font-weight:600;text-decoration:none;letter-spacing:1px}
.sticky-cta .micro{font-size:10px;color:var(--or-clair);letter-spacing:1px;text-transform:uppercase}

/* FOOTER */
footer{background:var(--noir);color:#7a6e6e;padding:28px 20px;font-size:12px;text-align:center;margin-top:40px;padding-bottom:90px}
footer .legal-links{margin-bottom:12px}
footer a{color:var(--or-clair);text-decoration:none;margin:0 10px}
footer a:hover{text-decoration:underline}
footer .age-mention{color:#9a7a7e;font-size:11px;letter-spacing:1px;text-transform:uppercase}

/* DEPT/REGION LISTING */
.commune-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:24px 0}
.commune-list a{background:#fff;padding:14px 16px;border-radius:8px;text-decoration:none;color:var(--texte);border-left:3px solid var(--or);transition:all .2s}
.commune-list a:hover{transform:translateX(2px);box-shadow:0 4px 14px rgba(139,21,56,.12)}
.commune-list .nom{display:block;color:var(--bordeaux-deep);font-weight:600;font-size:15px}
.commune-list .cp{display:block;color:#9a7a7e;font-size:12px;margin-top:2px}

@media (max-width:600px){
  h1{font-size:30px}
  h2{font-size:23px}
  .number{font-size:32px}
  header.hero{padding:55px 20px 65px}
  .cta-inline a{font-size:26px}
}
/* Très petits écrans (iPhone SE 320px, vieux Android) : éviter que le numéro déborde */
@media (max-width:360px){
  .number{font-size:26px;letter-spacing:1px}
  .cta-inline a{font-size:21px;letter-spacing:1px}
  .sticky-cta a{font-size:18px;letter-spacing:.5px}
  .cta-block{padding:24px 16px}
  .container{padding:0 14px}
}
@media (min-width:601px) and (max-width:1024px){
  .container{max-width:90%}
  h1{font-size:36px}
}
@media (min-width:1025px){
  h1{font-size:44px}
  .hero-content{max-width:820px}
}
