@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700;800&family=Lora:wght@400;500;600&display=swap');

:root{
  --bg:        #0F0C09;
  --surface:   #1C1710;
  --surface2:  #252015;
  --border:    #3A3020;
  --amber:     #E8873A;
  --ember:     #C24F1A;
  --gold:      #D4A847;
  --cream:     #F0DFB8;
  --muted:     #A0907A;
  --radius:    12px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--cream);font-family:'Lora',serif;font-size:16px;line-height:1.72;-webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Playfair Display',serif;font-weight:700;color:var(--cream);line-height:1.15;margin:0 0 .5em;}
h1{font-size:clamp(2.4rem,5vw,4rem);font-weight:800;}
h2{font-size:clamp(1.7rem,3vw,2.6rem);}
h3{font-size:1.25rem;color:var(--gold);}
p{margin:0 0 1em;color:var(--muted);}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}

.ember-rule{width:64px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--ember),var(--amber),var(--gold));box-shadow:0 0 12px rgba(232,135,58,.5);margin:18px 0 28px;}
.ember-rule.center{margin-left:auto;margin-right:auto;}

header.site{position:sticky;top:0;z-index:50;background:rgba(15,12,9,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px 0;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.brand small{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
nav.links{display:flex;gap:28px;align-items:center;}
nav.links a{text-decoration:none;color:var(--muted);font-size:.92rem;font-weight:500;padding:6px 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
nav.links a:hover,nav.links a.active{color:var(--cream);border-color:var(--amber);}
.btn{display:inline-block;background:linear-gradient(135deg,var(--ember),var(--amber));color:#0F0C09 !important;padding:12px 24px;border-radius:50px;text-decoration:none;font-weight:700;font-size:.9rem;box-shadow:0 0 20px rgba(232,135,58,.35);transition:box-shadow .2s,transform .15s;border:none;cursor:pointer;font-family:'Lora',serif;}
.btn:hover{box-shadow:0 0 32px rgba(232,135,58,.65);transform:translateY(-2px);}
.btn.ghost{background:transparent;color:var(--amber) !important;border:1.5px solid var(--amber);box-shadow:none;}
.btn.ghost:hover{background:rgba(232,135,58,.1);}
.menu-toggle{display:none;background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--cream);}
@media(max-width:860px){nav.links{position:fixed;inset:60px 0 auto 0;background:var(--surface);flex-direction:column;align-items:flex-start;gap:0;border-bottom:1px solid var(--border);transform:translateY(-130%);transition:transform .25s ease;padding:10px 28px 24px;}nav.links.open{transform:translateY(0);}nav.links a{width:100%;padding:14px 0;border-bottom:1px solid var(--border);}nav.links .btn{margin-top:12px;}.menu-toggle{display:block;}}

.hero{position:relative;overflow:hidden;padding:90px 0 80px;background:radial-gradient(ellipse at 80% 50%,rgba(194,79,26,.25),transparent 60%),radial-gradient(ellipse at 15% 80%,rgba(212,168,71,.12),transparent 50%),var(--bg);}
.eyebrow{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);display:flex;align-items:center;gap:8px;margin-bottom:20px;}
.eyebrow::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 8px var(--amber);animation:pulse 2s infinite ease-in-out;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.4;transform:scale(.7);}}
@media(prefers-reduced-motion:reduce){.eyebrow::before{animation:none;}}
.hero h1{max-width:760px;}
.hero .lead{font-size:1.15rem;max-width:540px;margin-bottom:32px;color:var(--muted);}
.hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;}

.ember-strip{height:2px;background:linear-gradient(90deg,transparent,var(--ember) 20%,var(--amber) 50%,var(--ember) 80%,transparent);box-shadow:0 0 18px rgba(194,79,26,.6);}

section{padding:76px 0;}
section.alt{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.section-head{max-width:640px;margin-bottom:44px;}

.grid{display:grid;gap:22px;}
.grid.cols-3{grid-template-columns:repeat(3,1fr);}
.grid.cols-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:860px){.grid.cols-3,.grid.cols-2{grid-template-columns:1fr;}}

.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:30px 26px;transition:border-color .2s,box-shadow .2s;}
.card:hover{border-color:var(--amber);box-shadow:0 0 24px rgba(232,135,58,.12);}
.card .num{font-size:.8rem;color:var(--amber);margin-bottom:10px;display:block;letter-spacing:.06em;}
.card h3{margin-bottom:8px;}
.card p{margin-bottom:0;font-size:.94rem;}
.card img{border-radius:8px;}

.timeline{border-left:2px solid var(--border);margin-left:8px;padding-left:32px;}
.t-item{position:relative;padding-bottom:44px;}
.t-item:last-child{padding-bottom:0;}
.t-item::before{content:'';position:absolute;left:-40px;top:5px;width:13px;height:13px;border-radius:50%;background:var(--ember);box-shadow:0 0 8px var(--ember);}
.t-year{font-size:.82rem;color:var(--amber);margin-bottom:6px;display:block;letter-spacing:.06em;}

.partner-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px 26px;transition:border-color .2s;}
.partner-card:hover{border-color:var(--amber);}
.partner-card .mark{font-family:'Playfair Display',serif;font-weight:800;font-size:1.4rem;color:var(--cream);margin-bottom:6px;}
.partner-card .tag{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:block;}

.price-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.price-table th,.price-table td{text-align:left;padding:16px 18px;border-bottom:1px solid var(--border);font-size:.94rem;}
.price-table th{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--surface2);}
.price-table td.price{color:var(--amber);font-weight:600;}
.note-box{border:1px solid rgba(232,135,58,.3);background:rgba(232,135,58,.06);border-radius:var(--radius);padding:18px 22px;font-size:.92rem;color:var(--muted);}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;}}
.info-row{display:flex;gap:14px;margin-bottom:22px;align-items:flex-start;}
.info-row .ic{width:40px;height:40px;flex:none;border-radius:50%;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--amber);font-size:1rem;}
.info-row h4{margin:0 0 2px;font-size:.95rem;font-weight:600;color:var(--cream);}
.info-row p{margin:0;font-size:.9rem;color:var(--muted);}
form.contact-form{display:flex;flex-direction:column;gap:16px;}
form.contact-form label{font-size:.82rem;font-weight:600;color:var(--cream);margin-bottom:4px;display:block;}
form.contact-form input,form.contact-form textarea,form.contact-form select{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);font-family:'Lora',serif;font-size:.94rem;color:var(--cream);}
form.contact-form input:focus,form.contact-form textarea:focus,form.contact-form select:focus{outline:2px solid var(--amber);outline-offset:1px;border-color:var(--amber);}
form.contact-form select option{background:var(--surface);}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:520px){.two-col{grid-template-columns:1fr;}}

footer.site{background:#080604;border-top:1px solid var(--border);color:var(--muted);padding:56px 0 26px;}
footer.site .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;}
@media(max-width:760px){footer.site .wrap{grid-template-columns:1fr;gap:28px;}}
footer.site h4{font-family:'Playfair Display',serif;font-size:1rem;color:var(--cream);margin-bottom:14px;}
footer.site a{color:var(--muted);text-decoration:none;font-size:.9rem;}
footer.site a:hover{color:var(--amber);}
footer.site ul{list-style:none;padding:0;margin:0;}
footer.site li{margin-bottom:8px;font-size:.9rem;}
.foot-bottom{border-top:1px solid var(--border);margin-top:40px;padding-top:22px;font-size:.78rem;color:#6B5A48;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.skip-link{position:absolute;left:-999px;top:0;background:var(--ember);color:#fff;padding:10px 16px;z-index:200;}
.skip-link:focus{left:10px;top:10px;}

/* ============================================================
   MOBILE OVERRIDES — thème sombre
   ============================================================ */
@media(max-width:860px){
  .hero .wrap[style*="grid-template-columns"],
  .wrap[style*="grid-template-columns"] { display:flex !important; flex-direction:column !important; gap:28px !important; }
  .hero .wrap > div:last-child img { max-height:280px; width:100%; object-fit:cover; border-radius:var(--radius); }
  .grid.cols-2 img, .grid.cols-3 img { max-height:240px; object-fit:cover; width:100%; }
  .hero { padding:48px 0 40px; }
  .hero h1 { font-size:clamp(1.9rem,7vw,2.6rem); }
  .hero .lead { font-size:1rem; }
  section { padding:48px 0; }
  .wrap { padding:0 18px; }
  .card { padding:22px 18px; }
  .partner-card { padding:24px 18px; }
  .price-table th:first-child, .price-table td:first-child { display:none; }
  .price-table th, .price-table td { padding:13px 12px; font-size:.88rem; }
  footer.site { padding:40px 0 20px; }
  footer.site .wrap { grid-template-columns:1fr !important; gap:24px !important; display:flex; flex-direction:column; }
  .foot-bottom { flex-direction:column; gap:6px; }
  .brand img { height:40px !important; }
  .btn { padding:11px 20px; font-size:.88rem; }
  .hero .cta-row { flex-direction:column; gap:10px; }
  .hero .cta-row .btn { text-align:center; }
  .section-head { margin-bottom:28px; }
  h2 { font-size:clamp(1.5rem,6vw,2rem); }
  section .grid.cols-2[style*="align-items:center"] > div:first-child { order:2; }
  section .grid.cols-2[style*="align-items:center"] > div:last-child { order:1; }
  .note-box { padding:14px 16px; font-size:.88rem; }
  .two-col { grid-template-columns:1fr !important; }
  .contact-grid { gap:32px; }
  .timeline { padding-left:22px; }
}
@media(max-width:400px){
  .wrap { padding:0 14px; }
  h1 { font-size:1.75rem; }
  .hero { padding:36px 0 32px; }
  .price-table th, .price-table td { padding:10px 8px; font-size:.82rem; }
}

.hero-grid > div:first-child  { order: 1; } /* text */
.hero-grid > div:last-child   { order: 2; } /* image */

@media(max-width: 860px) {
  .hero-grid {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .hero-grid > div:first-child { order: 2; } /* text goes BELOW */
  .hero-grid > div:last-child  { order: 1; } /* image goes ABOVE, full width */
  .hero-grid > div:last-child img {
    width: 100%;
    max-height: 260px;
    object-fit: cover;
    border-radius: 12px;
  }
}

/* ---- hero-grid: image always on top on mobile (already first in DOM) ---- */
.hero-grid > div:first-child { order: 2; } /* image → right on desktop */
.hero-grid > div:last-child  { order: 1; } /* text  → left on desktop */

@media(max-width: 860px) {
  .hero-grid > div:first-child { order: 1; } /* image on top on mobile */
  .hero-grid > div:last-child  { order: 2; } /* text below on mobile */
}

/* ---- Zone cards ---- */
.zone-card { padding: 22px 20px; }
.zone-badge {
  display: inline-block;
  color: #0F0C09; font-weight: 700; font-size: .82rem;
  padding: 4px 12px; border-radius: 50px;
  margin-bottom: 8px; letter-spacing: .05em;
}
.zone-dist {
  font-size: 1.1rem; font-weight: 600; color: var(--cream);
  margin-bottom: 12px; font-family: 'Playfair Display', serif;
}
.zone-list {
  list-style: none; padding: 0; margin: 0;
}
.zone-list li {
  padding: 5px 0;
  border-bottom: 1px solid var(--border);
  font-size: .9rem; color: var(--muted);
}
.zone-list li:last-child { border-bottom: none; }
@media(max-width:860px) {
  .grid.cols-3 .zone-card { padding: 18px 16px; }
}

/* ---- Zone cards v2 avec tarifs intégrés ---- */
.zone-tarifs {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  font-size: .82rem;
  color: var(--muted);
}
.zone-tarifs strong {
  color: var(--cream);
  font-weight: 600;
}
