@charset "UTF-8";

:root{
  --brand:#ff7a00;
  --brand-2:#0b76ff;
  --bg:#0b0f14;
  --text:#0f172a;
  --muted:#64748b;
  --card:#ffffff;
  --stroke:#e5e7eb;
}

/* =========================
   BASE
   ========================= */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial;
  color:var(--text);
  background:#fff;
}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
.container{max-width:1100px;margin:0 auto;padding:0 16px}

/* =========================
   MINI UTILS
   ========================= */
.hidden{display:none}
.absolute{position:absolute}
.left-0{left:0}
.mt-2{margin-top:8px}
.z-50{z-index:50}
.minw-240{min-width:240px}
.rounded-xl{border-radius:12px}
.shadow-lg{box-shadow:0 10px 30px rgba(0,0,0,.12)}

/* =========================
   NAVBAR / TOPBAR
   ========================= */
nav.topbar{
  min-height:72px;
  display:flex;
  align-items:center;
  position:sticky;
  top:0;
  z-index:50;
  background:#fff;
  border-bottom:1px solid var(--stroke);
}

nav.topbar .inner.container{
  display:grid;
  grid-template-columns: 1fr auto 1fr; /* gauche | centre | droite */
  align-items:center;
  padding:12px 16px;
}



nav.topbar .brand .dot{
  width:10px;height:10px;border-radius:999px;
  background:linear-gradient(135deg,var(--brand),var(--brand-2));
}

nav.topbar .brand{
  grid-column: 2;
  justify-self: center;
  margin:0;
}

nav.topbar .menu{
  grid-column: 2;          /* 👈 menu au centre aussi */
  justify-self: center;
  display:flex;
  align-items:center;
  gap:12px;
  margin:0;
}
/* Centrage du logo dans le hero */
#topbar img{
  display: block;
  margin: 0 auto 14px auto; /* centre horizontalement */
  width: 130px;
  height: auto;
}

/* Boutons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:10px 16px;
  border-radius:10px;
  border:1px solid transparent;
  background:transparent;
  text-decoration:none;
  font-weight:600;
  color:var(--text);
  transition:.2s;
  white-space:nowrap;
}
.btn:hover{background:#f8fafc}
.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn.blue{background:var(--brand-2);color:#fff;border-color:var(--brand-2)}
.btn.primary:hover,.btn.blue:hover{opacity:.9}

/* Dropdown */
.dropdown{
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  overflow:hidden;
}
.dropdown-item{
  display:block;
  padding:10px 14px;
  color:var(--text);
  text-decoration:none;
  font-weight:600;
  transition:.15s;
}
.dropdown-item:hover{background:#f8fafc;color:var(--brand)}

/* =========================
   HERO
   ========================= */
.hero{background:linear-gradient(180deg,var(--bg) 0%, #142235 100%);color:#fff}
.hero .container{padding:56px 16px;text-align:center}
.kicker{
  display:inline-block;
  padding:6px 10px;
  border:1px solid #1f2b3a;
  border-radius:999px;
  background:#0e1622;
  font-size:12px;
  color:#cbd5e1;
  margin-bottom:10px;
}
.hero h1{margin:6px 0 8px;font-size:clamp(24px,5vw,44px);line-height:1.1}
.hero p{color:#cbd5e1;margin:0 0 18px;max-width:850px}
.hero .cta{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}

/* =========================
   SECTIONS
   ========================= */
section{scroll-margin-top:80px}
.section{padding:38px 0}
.section h2{margin:0 0 10px;text-align:center}
.lead{max-width:860px;margin:0 auto 18px;text-align:center;color:#475569}

/* =========================
   GRIDS & CARDS
   ========================= */
.grid{display:grid;gap:14px;grid-template-columns:1fr}
.grid-2{grid-template-columns:1fr}
.grid-3{grid-template-columns:1fr}
@media(min-width:800px){
  .grid-2{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(3,1fr)}
}
.card{border:1px solid var(--stroke);border-radius:14px;padding:18px;background:#fff}
.card h3{margin:0 0 6px}
.price{font-size:22px;font-weight:800;margin:6px 0 10px}
.card ul{margin:0 0 12px;padding-left:18px;color:#475569}
.card-icon{font-size:32px;margin-bottom:8px}

/* =========================
   GALERIE + LIGHTBOX
   ========================= */
.gallery-wrapper{position:relative}
.gallery{
  display:grid;
  gap:12px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  margin-bottom:16px;
}
@media (min-width:640px){ .gallery{grid-template-columns:repeat(3, minmax(0, 1fr))} }
@media (min-width:980px){ .gallery{grid-template-columns:repeat(4, minmax(0, 1fr))} }

.ph{
  width:100%;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:12px;
  cursor:zoom-in;
}
.ph img{width:100%;height:100%;object-fit:cover;object-position:center}

.gallery-nav{display:flex;justify-content:center;gap:10px}
.nav-btn{
  background:#fff;border:1px solid var(--stroke);
  padding:8px 16px;border-radius:6px;
  font-size:20px;cursor:pointer;transition:.2s;
}
.nav-btn:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
.nav-btn:disabled{opacity:.4;cursor:not-allowed}

.gallery-hint{text-align:center;margin-bottom:10px;color:var(--brand);font-size:14px}

.lightbox{
  position:fixed;inset:0;
  background:rgba(15,23,42,.78);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
  z-index:999;
  cursor:zoom-out;
}
.lightbox.is-open{opacity:1;pointer-events:auto}
.lightbox-inner{
  width:min(92vw, 980px);
  height:min(92vh, 820px);
  display:flex;align-items:center;justify-content:center;
}
.lightbox img{
  width:100%;height:100%;
  max-width:92vw;max-height:92vh;
  object-fit:contain;
  border-radius:12px;
  box-shadow:0 25px 60px rgba(0,0,0,.6);
}

/* =========================
   FAQ
   ========================= */
.faq-search{margin:0 0 18px}
.faq-search label{display:block;font-size:14px;color:#64748b;margin-bottom:4px}
.faq-search input{
  width:100%;
  max-width:420px;
  padding:8px 10px;
  border-radius:8px;
  border:1px solid var(--stroke);
  font-size:14px;
}
.faq-more-wrapper{margin-top:16px;text-align:center}
.faq-toggle-btn{
  padding:8px 16px;
  border-radius:999px;
  border:1px solid var(--stroke);
  background:#fff;
  font-size:14px;
  cursor:pointer;
  transition:.2s;
}
.faq-toggle-btn:hover{border-color:var(--brand);background:rgba(255,122,0,0.06)}

/* =========================
   BOOKING
   ========================= */
.booking{padding:8px 0 36px}
.booking .wrap{border:1px solid var(--stroke);border-radius:16px;overflow:hidden}
.booking .head{
  padding:16px;background:#fafafa;border-bottom:1px solid var(--stroke);
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between;
}
.pill{font-size:12px;border:1px solid var(--stroke);padding:6px 10px;border-radius:999px;background:#fff;color:#0f172a}
.pill.good{border-color:#22c55e;color:#065f46}
.pill.info{border-color:#60a5fa;color:#1e40af}
.tidycal{width:100%;height:980px;border:0}
@media (max-width:900px){ .tidycal{height:min(980px, 78vh)} }

/* =========================
   FOOTER / LISTS
   ========================= */
.list{display:grid;gap:8px;max-width:900px;margin:0 auto}
.list li{border:1px solid var(--stroke);border-radius:10px;padding:10px;background:#fff}

footer{border-top:1px solid var(--stroke);padding:20px 0;color:#64748b;background:#fff}
.mini{font-size:12px}

/* =========================
   RESPONSIVE MENU (mobile)
   ========================= */
@media (max-width: 900px){
  nav.topbar .inner.container{flex-wrap:wrap;justify-content:center}
  nav.topbar .menu{flex-wrap:wrap;justify-content:center;row-gap:6px}

  /* Ligne 1 : Accueil + Services */
  nav.topbar .menu > a[href="#top"],
  nav.topbar .menu > .relative{order:1}

  /* Ligne 2 : CTA */
  nav.topbar .menu > a.primary,
  nav.topbar .menu > a.blue{order:2;margin-left:auto;margin-right:auto}


  /* Sticker temps d’intervention */
.time-sticker{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:8px 0 12px;
  padding:6px 12px;

  font-size:12px;
  font-weight:600;

  border-radius:999px;
  background:rgba(11,118,255,.08); /* bleu Letzy Clean */
  color:#0b2b6a;

  border:1px solid rgba(11,118,255,.18);
  width:fit-content;
}

/* petit effet premium au survol */
.card:hover .time-sticker{
  box-shadow:0 6px 14px rgba(0,0,0,.06);
  transform:translateY(-1px);
}




/* Topbar toujours cliquable au-dessus */
.topbar{
  position: sticky;
  top: 0;
  z-index: 9999;
  pointer-events: auto;
}

/* Évite qu'un hero/section passe au-dessus */
.hero, section{
  position: relative;
  z-index: 0;
}

}

/* =========================
   TOPBAR MOBILE COMPACT + STABLE
   Colle tout en bas de style.css
   ========================= */

/* Mobile / tablette */
@media (max-width: 900px){

  /* IMPORTANT : on force vraiment le layout en flex (sinon conflit avec grid) */
  nav.topbar .inner.container{
    display:flex !important;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
    padding:8px 12px !important; /* au lieu de 12px 16px */
  }

  /* Le bandeau lui-même */
  nav.topbar{
    min-height:56px !important; /* au lieu de 72px */
  }

  /* Logo dans le topbar/hero si présent */
  #topbar img{
    width:110px !important;     /* au lieu de 130px */
    margin:0 auto 10px auto !important;
  }

  /* Menu : compacte et stable */
  nav.topbar .menu{
    display:flex !important;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
    margin:0 !important;
  }

  /* Boutons plus fins */
  .btn{
    padding:8px 12px !important;
    border-radius:12px !important;
    font-size:13px !important;
  }
}

/* Petits téléphones */
@media (max-width: 420px){
  nav.topbar{
    min-height:52px !important;
  }
  nav.topbar .inner.container{
    padding:6px 10px !important;
    gap:6px;
  }
  .btn{
    padding:7px 10px !important;
    font-size:12.5px !important;
  }
}
