*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --gold: #d4a13a; --gold-light: #ebbb5b;
  --dark: #0f1418; --dark2: #172026; --dark3: #1f2a31;
  --text: #eef1f3; --muted: #a2adb5; --white: #ffffff; --green: #2ea043;
  --nav-bg: rgba(13,17,23,0.93);
  --nav-border: rgba(201,146,42,0.25);
  --hero-overlay-start: rgba(13,17,23,0.93);
  --hero-overlay-mid: rgba(13,17,23,0.80);
  --hero-overlay-end: rgba(13,17,23,0.25);
  --card-border: rgba(201,146,42,0.15);
  --card-hover-bg: rgba(30,37,48,0.96);
  --soft-border: rgba(255,255,255,0.05);
  --soft-border-strong: rgba(255,255,255,0.1);
  --footer-border: rgba(201,146,42,0.2);
}
html { scroll-behavior: smooth; }
body { font-family: -apple-system,"Segoe UI",system-ui,sans-serif; background:var(--dark); color:var(--text); line-height:1.6; font-size:15px; transition:background-color .2s ease, color .2s ease; }
body[data-theme='light'] {
  --dark: #f3f5f7;
  --dark2: #ffffff;
  --dark3: #eef2f6;
  --text: #1a232b;
  --muted: #5f6b76;
  --white: #0f1418;
  --nav-bg: rgba(255,255,255,0.94);
  --nav-border: rgba(201,146,42,0.2);
  --hero-overlay-start: rgba(243,245,247,0.92);
  --hero-overlay-mid: rgba(243,245,247,0.72);
  --hero-overlay-end: rgba(243,245,247,0.18);
  --card-border: rgba(26,35,43,0.08);
  --card-hover-bg: #e6ebf1;
  --soft-border: rgba(26,35,43,0.08);
  --soft-border-strong: rgba(26,35,43,0.14);
  --footer-border: rgba(26,35,43,0.08);
}

/* NAV */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:var(--nav-bg);
  border-bottom:1px solid var(--nav-border);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 40px; height:88px;
}
.nav-logo { display:flex; align-items:center; gap:14px; text-decoration:none; }
.nav-logo img { width:62px; height:62px; object-fit:contain; border-radius:50%; }
.nav-logo-text strong { color:var(--white); font-size:16px; display:block; letter-spacing:.5px; }
.nav-logo-text span { color:var(--gold); font-size:12px; letter-spacing:.5px; }
.nav-menu { display:flex; align-items:center; gap:28px; flex:1; }
.nav-links-wrap { display:flex; justify-content:center; flex:1; }
.nav-links { display:flex; gap:32px; list-style:none; }
.nav-links a { color:var(--muted); text-decoration:none; font-size:15px; font-weight:600; transition:color .2s ease; }
.nav-links a:hover { color:var(--gold); }
.nav-actions { display:flex; align-items:center; gap:12px; margin-left:auto; }
.theme-toggle { background:transparent; color:var(--text); border:1px solid var(--soft-border-strong); padding:11px 16px; border-radius:6px; font-weight:700; font-size:14px; cursor:pointer; transition:border-color .2s ease, background-color .2s ease, color .2s ease; }
.theme-toggle:hover { border-color:var(--gold); color:var(--gold); }
.nav-cta { background:var(--gold); color:var(--dark); padding:11px 22px; border-radius:6px; font-weight:700; font-size:14px; text-decoration:none; transition:background-color .2s ease; }
.nav-cta:hover { background:var(--gold-light); }
.nav-toggle { display:none; }
.nav-toggle-label {
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  cursor:pointer;
}
.nav-toggle-label span {
  display:block;
  width:26px;
  height:2px;
  background:var(--white);
  transition:transform .25s ease, opacity .25s ease;
}
.nav-toggle:checked + .nav-toggle-label span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle:checked + .nav-toggle-label span:nth-child(2) { opacity:0; }
.nav-toggle:checked + .nav-toggle-label span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* HERO */
.hero { min-height:100vh; position:relative; overflow:hidden; display:flex; align-items:center; padding:90px 40px 60px; }
.hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; z-index:0; }
.hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to right, var(--hero-overlay-start) 0%, var(--hero-overlay-mid) 45%, var(--hero-overlay-end) 100%);
}
.hero-inner { position:relative; z-index:2; max-width:760px; width:100%; margin:0; }
.hero-region { font-size:12px; font-weight:700; letter-spacing:2px; color:var(--gold); text-transform:uppercase; margin-bottom:20px; display:flex; align-items:center; gap:8px; }
.hero-region::before { content:''; display:block; width:28px; height:2px; background:var(--gold); }
.hero h1 { font-size:clamp(2.2rem,5vw,3.8rem); font-weight:800; line-height:1.1; color:var(--white); margin-bottom:24px; }
.hero h1 span { color:var(--gold); }
.hero-desc { font-size:16px; color:var(--muted); max-width:520px; margin-bottom:36px; line-height:1.7; }
.hero-btns { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:40px; }
.btn-primary { background:var(--gold); color:var(--dark); padding:14px 28px; border-radius:6px; font-weight:700; font-size:13px; letter-spacing:.5px; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:background-color .2s ease; }
.btn-primary:hover { background:var(--gold-light); }
.btn-outline { border:2px solid rgba(255,255,255,0.3); color:var(--white); padding:14px 28px; border-radius:6px; font-weight:700; font-size:13px; letter-spacing:.5px; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:border-color .2s ease, color .2s ease; }
.btn-outline:hover { border-color:var(--gold); color:var(--gold); }

/* CERT BADGE — image réelle */
.hero-cert {
  background:var(--card-hover-bg);
  border:1px solid rgba(46,160,67,0.4);
  border-radius:10px; padding:14px 20px;
  display:inline-flex; align-items:center; gap:16px;
  max-width:440px; margin-bottom:36px;
}
.cert-badge-img {
  width:100px; height:100px; flex-shrink:0;
  object-fit:contain;
  background:#ffffff; border-radius:50%; padding:4px;
}
.cert-text strong { color:var(--green); font-size:13px; display:block; margin-bottom:3px; }
.cert-text p { color:var(--muted); font-size:12px; margin-top:2px; }
.cert-text .check { color:var(--green); font-size:12px; }

.hero-badges { display:flex; gap:28px; flex-wrap:wrap; }
.hero-badge { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:13px; }
.hero-badge .icon { color:var(--gold); font-size:16px; }

/* SECTIONS */
section { padding:80px 40px; }
.section-inner { max-width:760px; margin:0 auto; }
.section-label { font-size:11px; font-weight:700; letter-spacing:2.5px; color:var(--gold); text-transform:uppercase; margin-bottom:10px; }
.section-title { font-size:clamp(1.6rem,3vw,2.2rem); font-weight:800; color:var(--white); margin-bottom:14px; }
.section-sub { color:var(--muted); font-size:15px; max-width:560px; }

/* SERVICES */
#services { background:var(--dark2); }
.services-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; margin-top:40px; }
.service-card { background:var(--dark3); border:1px solid var(--card-border); border-radius:10px; padding:24px; transition:border-color .2s ease, background-color .2s ease; }
.service-card:hover { border-color:var(--gold); background:var(--card-hover-bg); }
.service-icon { font-size:28px; margin-bottom:14px; display:block; }
.service-card h3 { font-size:15px; font-weight:700; color:var(--white); margin-bottom:8px; }
.service-card p { font-size:13px; color:var(--muted); line-height:1.6; }

/* AVANTAGES */
#avantages { background:var(--dark); }
.avantages-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; margin-top:40px; }
.avantage { text-align:center; padding:20px; }
.avantage-num { font-size:2.4rem; font-weight:900; color:var(--gold); line-height:1; margin-bottom:6px; }
.avantage h3 { font-size:14px; font-weight:700; color:var(--white); margin-bottom:6px; }
.avantage p { font-size:13px; color:var(--muted); }

/* REALISATIONS */
#realisations { background:var(--dark2); }
.realisations-carousel-wrap { position:relative; margin-top:40px; display:flex; align-items:center; gap:14px; }
.realisations-carousel { overflow:hidden; border-radius:12px; flex:1; }
.realisations-track { display:flex; gap:24px; align-items:stretch; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding:0 calc(50% - 210px) 8px; }
.realisations-track::-webkit-scrollbar { height:8px; }
.realisations-track::-webkit-scrollbar-thumb { background:rgba(212,161,58,0.35); border-radius:999px; }
.realisations-arrow { width:42px; height:42px; border-radius:50%; border:1px solid rgba(212,161,58,0.25); background:var(--dark3); color:var(--gold); font-size:28px; line-height:1; cursor:pointer; flex-shrink:0; transition:background-color .2s ease, border-color .2s ease; }
.realisations-arrow:hover { background:rgba(212,161,58,0.08); border-color:rgba(212,161,58,0.45); }
.realisation-slide { min-width:420px; max-width:420px; background:var(--dark3); border:1px solid var(--soft-border); border-radius:12px; overflow:hidden; flex-shrink:0; scroll-snap-align:center; cursor:zoom-in; }
.realisation-slide img { width:100%; height:300px; object-fit:cover; display:block; background:var(--dark); }
.realisation-slide-body { padding:16px; }
.realisation-slide-body h3 { font-size:15px; color:var(--white); margin-bottom:6px; }
.realisations-note { color:var(--muted); font-size:13px; margin-top:20px; }
.realisations-lightbox { position:fixed; inset:0; background:rgba(15,20,24,0.92); display:flex; align-items:center; justify-content:center; padding:24px; z-index:300; }
.realisations-lightbox[hidden] { display:none !important; }
.realisations-lightbox img { max-width:min(1100px, 92vw); max-height:88vh; border-radius:12px; }
.realisations-lightbox-close { position:absolute; top:20px; right:20px; width:42px; height:42px; border:none; border-radius:50%; background:rgba(255,255,255,0.08); color:var(--white); font-size:28px; cursor:pointer; }

/* PROCESS */
#process { background:var(--dark); }
.process-steps { display:flex; flex-direction:column; gap:0; margin-top:40px; }
.process-step { display:flex; gap:24px; padding:24px 0; border-bottom:1px solid var(--soft-border); }
.process-step:last-child { border-bottom:none; }
.step-num { width:40px; height:40px; flex-shrink:0; background:rgba(201,146,42,0.15); border:2px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:14px; color:var(--gold); }
.step-body h3 { font-size:15px; font-weight:700; color:var(--white); margin-bottom:6px; }
.step-body p { font-size:13px; color:var(--muted); }

/* ZONE */
#zone { background:var(--dark2); }
.zone-box { background:var(--dark3); border:1px solid rgba(201,146,42,0.2); border-radius:12px; padding:32px; margin-top:32px; display:flex; gap:32px; align-items:flex-start; flex-wrap:wrap; }
.zone-main { flex:1; min-width:200px; }
.zone-main h3 { font-size:18px; font-weight:700; color:var(--gold); margin-bottom:10px; }
.zone-list { list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.zone-list li { background:rgba(201,146,42,0.1); border:1px solid rgba(201,146,42,0.25); border-radius:20px; padding:4px 14px; font-size:12px; color:var(--gold-light); font-weight:600; }
.zone-note { flex:1; min-width:200px; }
.zone-note p { font-size:13px; color:var(--muted); line-height:1.7; }
.zone-note strong { color:var(--text); }
.zone-map { margin-top:20px; border:1px solid rgba(201,146,42,0.2); border-radius:12px; overflow:hidden; }
.zone-map iframe { display:block; width:100%; height:280px; border:0; }

/* CONTACT */
#contact { background:var(--dark); }
#contact .section-inner { max-width:1100px; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:40px; }
@media (max-width:580px) { .contact-grid { grid-template-columns:1fr; } }
.contact-grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:28px; margin-top:40px; align-items:start; }
@media (max-width:900px) { .contact-grid-3 { grid-template-columns:1fr 1fr; } }
@media (max-width:580px) { .contact-grid-3 { grid-template-columns:1fr; } }
.contact-info { display:flex; flex-direction:column; gap:16px; }
.contact-forms { display:flex; flex-direction:column; gap:20px; }
.contact-item { display:flex; align-items:flex-start; gap:14px; background:var(--dark3); border-radius:10px; padding:18px; border:1px solid var(--soft-border); transition:border-color .2s ease; }
.contact-item:hover { border-color:rgba(201,146,42,0.22); }
.contact-item-icon { font-size:20px; margin-top:2px; }
.contact-item h4 { font-size:12px; font-weight:700; color:var(--gold); text-transform:uppercase; letter-spacing:1px; margin-bottom:4px; }
.contact-item p, .contact-item a { font-size:14px; color:var(--text); text-decoration:none; }
.contact-item a:hover { color:var(--gold); }
.contact-socials { display:flex; gap:12px; margin-top:4px; }
.social-link {
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--dark3);
  border:1px solid var(--soft-border-strong);
  color:var(--text);
  transition:border-color .2s ease, color .2s ease;
}
.social-link:hover {
  color:var(--gold);
  border-color:rgba(201,146,42,0.28);
}
.social-link svg { width:20px; height:20px; }
.contact-form { display:flex; flex-direction:column; gap:14px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:480px) { .form-row { grid-template-columns:1fr; } }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group label { font-size:12px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; }
.form-group input, .form-group textarea, .form-group select { background:var(--dark3); border:1px solid var(--soft-border-strong); border-radius:6px; padding:10px 14px; color:var(--text); font-size:14px; font-family:inherit; outline:none; }
.form-group textarea { resize:vertical; min-height:100px; }
.form-group select option { background:var(--dark3); }
.booking-date-pills-wrap { display:flex; align-items:center; gap:8px; }
.booking-date-nav { width:34px; height:34px; flex-shrink:0; border-radius:50%; border:1px solid var(--soft-border-strong); background:transparent; color:var(--text); font-size:22px; line-height:1; cursor:pointer; transition:border-color .2s ease, color .2s ease; }
.booking-date-nav:hover:not(:disabled) { border-color:var(--gold); color:var(--gold); }
.booking-date-nav:disabled { opacity:.35; cursor:not-allowed; }
.booking-date-pills { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:8px; flex:1; }
.booking-date-pill { background:var(--dark2); border:1px solid var(--soft-border-strong); border-radius:8px; padding:10px 8px; cursor:pointer; text-align:center; transition:border-color .2s ease, background-color .2s ease, color .2s ease; width:100%; }
.booking-date-pill:hover { border-color:var(--gold); }
.booking-date-pill-day { font-size:20px; font-weight:800; color:var(--white); line-height:1; display:block; }
.booking-date-pill-month { font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; display:block; margin-top:2px; }
.booking-date-pill-weekday { font-size:11px; color:var(--muted); display:block; margin-top:1px; }
.booking-date-pill-selected { background:var(--gold); border-color:var(--gold); }
.booking-date-pill-selected .booking-date-pill-day,
.booking-date-pill-selected .booking-date-pill-month,
.booking-date-pill-selected .booking-date-pill-weekday { color:var(--dark); }
.booking-date-loading { font-size:13px; color:var(--muted); }
.booking-date-empty { font-size:13px; color:var(--muted); grid-column:1 / -1; }
.form-submit { background:var(--gold); color:var(--dark); border:none; padding:13px 28px; border-radius:6px; font-weight:700; font-size:14px; cursor:pointer; align-self:flex-start; }
.form-submit:hover { background:var(--gold-light); }
.booking-form { background:var(--dark3); border:1px solid var(--soft-border); border-radius:10px; padding:18px; }
.admin-top-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; padding:12px 18px; background:var(--dark3); border-radius:10px; border:1px solid var(--soft-border); }
.admin-session-info { font-size:13px; color:var(--green); }
.admin-logout { background:transparent; border:1px solid rgba(201,146,42,0.35); color:var(--gold); padding:8px 14px; border-radius:6px; font-size:13px; cursor:pointer; transition:background .2s; }
.admin-logout:hover { background:rgba(201,146,42,0.08); }
.admin-week-header { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; flex-wrap:wrap; }
.admin-week-nav { width:38px; height:38px; border-radius:50%; border:1px solid rgba(212,161,58,0.35); background:transparent; color:var(--gold); font-size:24px; cursor:pointer; flex-shrink:0; }
.admin-week-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; padding-bottom:8px; width:100%; }
.admin-week-day { min-width:0; background:var(--dark2); border:1px solid var(--soft-border); border-radius:10px; padding:12px; }
.admin-week-day-header { margin-bottom:10px; }
.admin-week-day-header strong { display:block; font-size:14px; line-height:1.35; }
.admin-week-slots { display:flex; flex-direction:column; gap:8px; }
.admin-week-slots-compact { gap:6px; }
.admin-week-slot { border:none; border-radius:8px; padding:10px 8px; font-size:13px; cursor:pointer; color:var(--white); width:100%; position:relative; }
.admin-week-slot-available { background:#1f7a3d; }
.admin-week-slot-booked { background:#9b2c2c; cursor:not-allowed; opacity:.9; }
.admin-week-slot-pending { background:#8a6a00; cursor:not-allowed; opacity:.9; }
.admin-week-slot-closed { background:#3b4250; }
.admin-week-slot[data-tooltip]:hover::after {
  content: attr(data-tooltip);
  position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%);
  background:var(--dark); color:var(--text); font-size:12px; font-weight:400;
  border:1px solid var(--soft-border-strong); border-radius:6px;
  padding:8px 12px; white-space:pre; z-index:200;
  pointer-events:none; max-width:260px; white-space:normal; text-align:left;
  box-shadow:0 4px 16px rgba(0,0,0,.4);
}
.admin-week-slot[data-tooltip]:hover::before {
  content:''; position:absolute; bottom:calc(100% + 2px); left:50%; transform:translateX(-50%);
  border:6px solid transparent; border-top-color:var(--soft-border-strong); z-index:201; pointer-events:none;
}
.realisation-link { display:block; text-decoration:none; }
.realisation-link p { word-break:break-word; }
.admin-page { padding:80px 40px 80px; min-height:100vh; background:var(--dark); }
.admin-header-row { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:32px; flex-wrap:wrap; gap:12px; }
.admin-back-link { color:var(--muted); font-size:13px; text-decoration:none; transition:color .2s; padding:8px 0; }
.admin-back-link:hover { color:var(--gold); }
.admin-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:32px; }
.admin-card { align-items:stretch; }
.admin-card-full { grid-column:1 / -1; }
.admin-appointments-card { margin-top:24px; }
.admin-stack { display:flex; flex-direction:column; gap:24px; margin-top:24px; }
.admin-list { display:flex; flex-direction:column; gap:12px; margin-top:16px; }
.admin-item { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding:14px 0; border-bottom:1px solid var(--soft-border); }
.admin-item:last-child { border-bottom:none; }
.admin-item-actions { display:flex; flex-direction:column; gap:8px; align-items:flex-end; flex-shrink:0; }
.admin-item button { background:transparent; color:var(--gold); border:1px solid rgba(212,161,58,0.35); border-radius:6px; padding:8px 12px; cursor:pointer; white-space:nowrap; }
.admin-action-confirm { color:#2ea043 !important; border-color:rgba(46,160,67,0.4) !important; }
.admin-action-confirm:hover { background:rgba(46,160,67,0.08) !important; }
.admin-action-refuse { color:#e05252 !important; border-color:rgba(224,82,82,0.4) !important; }
.admin-action-refuse:hover { background:rgba(224,82,82,0.08) !important; }
.admin-status-badge { display:inline-block; font-size:11px; font-weight:700; border-radius:20px; padding:2px 10px; margin-left:8px; text-transform:uppercase; letter-spacing:.5px; }
.admin-status-pending { background:rgba(212,161,58,0.15); color:var(--gold); }
.admin-status-confirmed { background:rgba(46,160,67,0.15); color:#2ea043; }
.admin-status-refused { background:rgba(224,82,82,0.12); color:#e05252; }
.admin-pending-badge { display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; border-radius:50%; background:var(--gold); color:var(--dark); font-size:11px; font-weight:800; padding:0 5px; margin-left:8px; }
.admin-message { color:var(--muted); font-size:13px; margin-top:10px; }
.admin-message-success { color:#2ea043; }
.admin-message-error { color:#e05252; }
.admin-empty { color:var(--muted); font-size:13px; }

/* ADMIN LINK */
.admin-access { text-align:center; padding:10px 0 0; margin-top:8px; }
.admin-link { display:inline-flex; align-items:center; gap:6px; color:rgba(255,255,255,0.15); font-size:11px; text-decoration:none; transition:color .2s ease; }
.admin-link:hover { color:rgba(255,255,255,0.35); }
.admin-link svg { opacity:.6; }

/* CERTIFICATIONS */
#certifications { background:var(--dark); }
.cert-pdf-wrap { margin-top:32px; display:flex; flex-direction:column; gap:20px; }
.cert-pdf-actions { display:flex; gap:14px; flex-wrap:wrap; }
.cert-pdf-viewer { border:1px solid rgba(201,146,42,0.2); border-radius:12px; overflow:hidden; background:var(--dark3); transition:border-color .2s ease; }
.cert-pdf-viewer:hover { border-color:rgba(201,146,42,0.35); }
.cert-pdf-viewer iframe { display:block; width:100%; height:700px; border:0; }
@media (max-width:768px) { .cert-pdf-viewer iframe { height:500px; } }
@media (max-width:480px) { .cert-pdf-viewer iframe { height:380px; } }

/* FOOTER */
footer { background:var(--dark); border-top:1px solid var(--footer-border); padding:40px 40px 24px; }
.footer-inner { max-width:760px; margin:0 auto; }
.footer-top { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px; padding-bottom:28px; border-bottom:1px solid var(--soft-border); margin-bottom:20px; }
.footer-brand { display:flex; align-items:center; gap:14px; }
.footer-brand img { width:52px; height:52px; object-fit:contain; }
.footer-brand-text strong { color:var(--white); display:block; margin-bottom:2px; }
.footer-brand-text span { color:var(--muted); font-size:12px; }
.footer-links { display:flex; gap:20px; list-style:none; flex-wrap:wrap; }
.footer-links a { color:var(--muted); font-size:13px; text-decoration:none; }
.footer-links a:hover { color:var(--gold); }
.footer-bottom { text-align:center; color:var(--muted); font-size:12px; }
.footer-bottom a { color:var(--muted); text-decoration:none; }
.made-with { text-align:center; padding:14px 0 0; margin-top:16px; border-top:1px solid var(--soft-border); color:var(--muted); font-size:11px; }

@media (max-width: 900px) {
  nav { padding: 0 20px; }
  .nav-links { gap: 16px; }
  .hero { padding: 110px 20px 60px; }
  section { padding: 70px 20px; }
  footer { padding: 32px 20px 24px; }
}

@media (max-width: 768px) {
  nav {
    position: static;
    height: auto;
    padding: 16px 20px;
    flex-wrap: wrap;
    justify-content:flex-start;
    gap: 16px;
  }
  .nav-logo {
    flex:1;
    min-width:0;
  }
  .nav-logo img { width: 52px; height: 52px; }
  .nav-logo-text strong { font-size: 14px; }
  .nav-logo-text span { font-size: 11px; }
  .nav-toggle-label { display:flex; margin-left:auto; flex-shrink:0; }
  .nav-menu {
    display:flex;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:16px;
    padding-top:8px;
    max-height:0;
    opacity:0;
    overflow:hidden;
    pointer-events:none;
    transition:max-height .3s ease, opacity .25s ease;
  }
  .nav-toggle:checked + .nav-toggle-label + .nav-menu {
    max-height:600px;
    opacity:1;
    pointer-events:auto;
  }
  .nav-links-wrap { width:100%; }
  .nav-links {
    width: 100%;
    justify-content: center;
    flex-direction:column;
    align-items:center;
    gap: 12px;
  }
  .nav-links a { font-size: 12px; }
  .nav-actions {
    width:100%;
    flex-direction:column;
    margin-left:0;
  }
  .theme-toggle,
  .nav-cta {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
  .hero {
    min-height: auto;
    padding: 0;
    display:block;
  }
  .hero-img {
    position:relative;
    display:block;
    height:260px;
    object-position:center;
  }
  .hero-overlay {
    inset:auto 0 0 0;
    height:260px;
    background: linear-gradient(to top, var(--hero-overlay-start) 0%, var(--hero-overlay-mid) 55%, var(--hero-overlay-end) 100%);
  }
  .hero-inner {
    max-width: 100%;
    padding: 24px 20px 56px;
    margin-top: -72px;
  }
  .hero-region {
    margin-top: 88px;
  }
  .hero-desc { font-size: 15px; }
  .hero-btns { margin-bottom: 28px; }
  .btn-primary, .btn-outline {
    width: 100%;
    justify-content: center;
  }
  .hero-cert {
    max-width: 100%;
    width: 100%;
  }
  .services-grid,
  .avantages-grid,
  .contact-grid,
  .form-row,
  .admin-grid {
    grid-template-columns: 1fr;
  }
  .booking-calendar-group {
    grid-column:auto;
  }
  .realisations-carousel-wrap {
    gap: 10px;
  }
  .realisations-track {
    padding-left: calc(50% - ((100vw - 120px) / 2));
    padding-right: calc(50% - ((100vw - 120px) / 2));
  }
  .realisation-slide { min-width:calc(100vw - 120px); max-width:calc(100vw - 120px); }
  .admin-week-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .process-step {
    flex-direction: column;
    gap: 14px;
  }
  .zone-box {
    padding: 24px 20px;
    gap: 24px;
  }
  .zone-map iframe { height: 240px; }
  .footer-top {
    flex-direction: column;
    align-items: flex-start;
  }
  .footer-links {
    flex-direction: column;
    gap: 10px;
  }
}

@media (max-width: 480px) {
  body { font-size: 14px; }
  .hero { padding: 0; }
  section { padding: 56px 16px; }
  footer { padding: 28px 16px 20px; }
  .realisations-carousel-wrap {
    gap: 0;
  }
  .realisations-arrow {
    display: none;
  }
  .realisations-carousel {
    width: 100%;
  }
  .realisations-track {
    gap: 12px;
    padding-left: calc(50% - ((100vw - 32px) / 2));
    padding-right: calc(50% - ((100vw - 32px) / 2));
  }
  .realisation-slide {
    min-width: calc(100vw - 32px);
    max-width: calc(100vw - 32px);
  }
  .realisation-slide img {
    height: 260px;
    object-fit: contain;
  }
  .admin-week-grid { grid-template-columns:1fr; gap:8px; }
  .admin-week-day-header strong { font-size:16px; }
  .hero-region {
    font-size: 11px;
    letter-spacing: 1.5px;
    margin-top: 72px;
  }
  .hero-desc,
  .section-sub,
  .zone-note p,
  .contact-item p,
  .contact-item a {
    font-size: 13px;
  }
  .hero-inner {
    padding: 20px 16px 48px;
    margin-top: -60px;
  }
  .hero h1 { font-size: clamp(1.9rem, 8vw, 2.5rem); }
  .hero-cert {
    flex-direction: column;
    align-items: flex-start;
  }
  .cert-badge-img {
    width: 80px;
    height: 80px;
  }
  .hero-badges {
    gap: 12px;
    flex-direction: column;
    align-items: flex-start;
  }
  .service-card,
  .contact-item,
  .zone-box {
    padding-left: 16px;
    padding-right: 16px;
  }
  .zone-map iframe { height: 220px; }
}