/* ========= THEME GS — DARK FLAT (optimisé, rendu inchangé) ========= */
:root{
  /* Accent & palette */
  --gs-primary:#6c5ce7;
  --gs-bg:#000;
  --gs-surface:#12161c;
  --gs-surface-2:#161b22;
  --gs-border:#212734;
  --gs-text:#e5e7eb;
  --gs-text-muted:#9aa4b2;

  /* Boutons */
  --grad: conic-gradient(from 210deg at 50% 50%, #7f7798, #7c19ff, #00b3ff, #ff2db0, #7f7798);

  /* Images de fond */
  --hero-img: url('../media/images/hero-bg.png');
  --packs-bg: url('../media/images/background.png');

  /* Galerie */
  --gal-h: 540px;

  /* Ombres récurrentes (factorisation, mêmes valeurs qu’avant) */
  --sh-8-24: 0 8px 24px rgba(0,0,0,.35);
  --sh-10-30: 0 10px 30px rgba(0,0,0,.35);
  --sh-12-36: 0 12px 36px rgba(0,0,0,.45);
  --sh-16-48-v: 0 16px 48px rgba(108,92,231,.15);
  --sh-18-54-v: 0 18px 54px rgba(108,92,231,.18);
  --sh-18-54: 0 18px 54px rgba(0,0,0,.50);
  --sh-22-60-v: 0 22px 60px rgba(108,92,231,.22);
  --sh-22-60: 0 22px 60px rgba(0,0,0,.55);
  --sh-26-80-v: 0 26px 80px rgba(108,92,231,.25);
}

/* Base */
html { scroll-behavior: smooth; }
body{
  font-family: system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif;
  background-color: var(--gs-bg);
  background-image: var(--packs-bg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  color: var(--gs-text);
}

/* Navbar sombre translucide + blur */
.navbar{
  background: rgba(0,0,0,.7) !important;
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid #111a;
}
.navbar-brand .brand-logo{
  max-height: 36px;
  width: auto;
  object-fit: contain;
  display: block;
}

/* Hero (image + voiles) */
.hero{
  min-height: 90vh;
  background-image:
    radial-gradient(1200px 600px at 80% -10%, rgba(108,92,231,.20), transparent),
    linear-gradient(180deg, rgba(0,0,0,.65), rgba(0,0,0,.80)),
    var(--hero-img);
  background-size: auto,auto,cover;
  background-position: center;
  background-repeat: no-repeat;
  color:#fff;
  text-align:center;
}
.hero .btn{ padding-left:2rem; padding-right:2rem; }

/* Sections */
.section{ padding:45px 0; background:transparent; background:rgba(0,0,0,.30); }
.section h2{
  display:inline-block;
  margin:0 0 1rem;
  padding:.4rem .85rem;
  border:1px solid var(--gs-border);
  border-radius:14px;
  background:rgba(0,0,0,.60);
  color:var(--gs-text);
  box-shadow:
    0 0 0 2px rgba(108,92,231,.75),
    var(--sh-8-24);
  letter-spacing:.2px;
  transition: box-shadow .18s ease, border-color .18s ease, filter .18s ease;
}

/* .bg-light => sombre plat */
.bg-light{ background-color: var(--gs-surface) !important; }

/* Cartes (fonds plats) */
.card{
  background: rgba(0,0,0,.80);
  border:1px solid var(--gs-border);
  color:var(--gs-text);
}
.card .text-muted,
.text-muted{ color: var(--gs-text-muted) !important; }

/* Pricing (plat) */
.pricing{
  border-radius:12px;
  background:var(--gs-surface);
  border:1px solid var(--gs-border);
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
}

/* Listes & icônes */
.rating i{ cursor:pointer; font-size:1.5rem; color:#f1c40f; }

/* Reveal on scroll */
.reveal{ opacity:0; transform:translateY(16px); transition: all .6s ease; }
.reveal.visible{ opacity:1; transform:none; }
.reveal.delay-1{ transition-delay:.15s; }
.reveal.delay-2{ transition-delay:.3s; }

/* Contact — fond plat cohérent */
.contact-section{ color: var(--gs-text); }

/* Liens contact (email / tel) en pills sobres */
.contact-link{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.5rem .85rem;
  border:1px solid var(--gs-border);
  border-radius:999px;
  color:var(--gs-text);
  text-decoration:none;
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.12);
}
.contact-link:hover{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.25);
  text-decoration:none;
}
.contact-link i{ line-height:1; }

/* Footer */
footer{
  background:#000;
  color:#b7c0cb;
  border-top:1px solid var(--gs-border);
}

/* ===== Services ===== */
.service-card{
  background:var(--gs-surface);
  border:1px solid var(--gs-border);
  box-shadow: 0 8px 24px rgba(0,0,0,.35);
  transition: transform .2s ease, box-shadow .2s ease;
}
.service-card:hover{ transform: translateY(-2px); box-shadow: 0 12px 36px rgba(0,0,0,.45); }
.service-icon{
  width:64px; height:64px; display:grid; place-items:center;
  border-radius:12px; background:var(--gs-surface-2); border:1px solid var(--gs-border);
}
.service-icon i{ font-size:28px; color:var(--gs-primary); }
.service-glass{
  background: rgba(15,18,24,.60); border:1px solid rgba(255,255,255,.08);
  border-radius:18px; box-shadow: var(--sh-12-36);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.service-glass:hover{ transform: translateY(-2px); box-shadow: 0 18px 48px rgba(0,0,0,.45); border-color: rgba(108,92,231,.45); }
.service-title{ letter-spacing:.2px; }
.service-title-icon{ font-size:1.1em; color:var(--gs-primary); }

/* ===== Galerie ===== */
.gallery-frame{
  background:var(--gs-surface);
  border:1px solid var(--gs-border);
  border-radius:14px;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  padding:8px;
  position:relative;
}

/* Hauteur unifiée hors plein écran */
.gallery-media,
.yt-box{ width:100%; height:var(--gal-h); background:#000; }
.gallery-media{ object-fit:cover; }
.yt-box{ overflow:hidden; }
.yt-box iframe{ width:100%; height:100%; display:block; border:0; }

#galerie .carousel-item{ background:#0b0d10; }

/* Indicateurs (galerie + livre d’or) */
#galerie .carousel-indicators [data-bs-target],
#livreor #avis-indicators [data-bs-target]{
  width:8px; height:8px; border-radius:50%;
  background-color:#fff; opacity:.35;
}
#galerie .carousel-indicators .active,
#livreor #avis-indicators .active{ opacity:1; background-color:var(--gs-primary); }

/* Contrôles : boutons ronds compacts, centrés verticalement */
#galerie .carousel-control-prev,
#galerie .carousel-control-next,
#livreor .carousel-control-prev,
#livreor .carousel-control-next{
  width:auto; height:auto; top:50%; transform:translateY(-50%);
}
#galerie .carousel-control-prev,
#galerie .carousel-control-next{
  bottom:auto; padding:0; background:none; opacity:1; z-index:8;
}
#galerie .carousel-control-prev{ left:12px; }
#galerie .carousel-control-next{ right:12px; }

/* Icônes des contrôles (galerie + livre d’or) */
#galerie .carousel-control-prev-icon,
#galerie .carousel-control-next-icon,
#livreor .carousel-control-prev-icon,
#livreor .carousel-control-next-icon{
  width:42px; height:42px; border-radius:999px;
  background-color: rgba(0,0,0,.6);
  background-position:center; background-repeat:no-repeat; background-size:16px 16px;
  border:1px solid var(--gs-border);
  box-shadow: 0 6px 16px rgba(0,0,0,.35);
  filter: invert(1) drop-shadow(0 2px 6px rgba(0,0,0,.6));
}
#galerie .carousel-control-prev:hover .carousel-control-prev-icon,
#galerie .carousel-control-next:hover .carousel-control-next-icon{
  background-color: rgba(0,0,0,.75);
  border-color: rgba(255,255,255,.25);
}
#galerie .carousel-control-prev:focus .carousel-control-prev-icon,
#galerie .carousel-control-next:focus .carousel-control-next-icon{
  outline:2px solid rgba(255,255,255,.35);
  outline-offset:2px;
}

/* Boutons plein écran / sortie */
.gallery-fs-btn,
.gallery-fs-exit{
  position:absolute; z-index:6;
  width:42px; height:42px; display:grid; place-items:center;
  border:1px solid var(--gs-border);
  border-radius:999px;
  background: rgba(0,0,0,.6);
  color:#fff;
  box-shadow: 0 6px 16px rgba(0,0,0,.35);
  cursor:pointer;
}
.gallery-fs-btn{ top:10px; right:10px; z-index:9; }
.gallery-fs-exit{ top:10px; right:10px; opacity:0; pointer-events:none; }
#galleryFrame:fullscreen .gallery-fs-exit{ opacity:1; pointer-events:auto; }
#galleryFrame:fullscreen .gallery-fs-btn{ display:none !important; }

.gallery-fs-btn:hover,
.gallery-fs-exit:hover{ background: rgba(0,0,0,.75); border-color: rgba(255,255,255,.25); }
.gallery-fs-btn i,.gallery-fs-exit i{ font-size:1rem; line-height:1; }

/* Vrai plein écran galerie */
#galleryFrame:-webkit-full-screen,
#galleryFrame:fullscreen{ background:#000; }
#galleryFrame:fullscreen,
#galleryFrame:fullscreen .carousel,
#galleryFrame:fullscreen .carousel-inner,
#galleryFrame:fullscreen .carousel-item{
  width:100%; height:100vh; height:100svh;
}
/* Media en plein écran */
#galleryFrame:fullscreen .gallery-media{
  max-height:none; width:100%; height:100vh; height:100svh; object-fit:contain; background:#000;
}
#galleryFrame:fullscreen .yt-box{
  width:100%; height:100vh; height:100svh; max-height:none;
}
#galleryFrame:fullscreen .yt-box iframe{ width:100%; height:100%; display:block; }

/* ===== Packs & Tarifs ===== */
.pack-card,
:where(.contact-section .card, .contact-section .contact-box, #livreor .avis-card){
  position:relative;
  background: rgba(0,0,0,.80);
  border-radius:18px;
  border:1px solid var(--gs-border);
  color:var(--gs-text);
  outline:2px solid rgba(108,92,231,.75);
  box-shadow: var(--sh-16-48-v), 0 12px 36px rgba(0,0,0,.40);
  overflow:hidden;
  transition:
    transform .18s cubic-bezier(.2,.8,.2,1),
    box-shadow .18s ease,
    outline-color .18s ease,
    outline-width .18s ease,
    border-color .18s ease,
    filter .18s ease;
  will-change: transform, box-shadow;
  cursor:pointer;
}
.pack-card:hover,
.pack-card:focus-within,
:where(.contact-section .card, .contact-section .contact-box, #livreor .avis-card):hover,
:where(.contact-section .card, .contact-section .contact-box, #livreor .avis-card):focus-within{
  transform: translateY(-4px);
  box-shadow: 0 22px 60px rgba(0,0,0,.50), var(--sh-18-54-v);
  outline-width:4px;
  outline-color: rgba(124,25,255,.85);
  border-color: rgba(255,255,255,.12);
  filter: saturate(1.02) brightness(1.02);
}
.pack-card:active,
:where(.contact-section .card, .contact-section .contact-box, #livreor .avis-card):active{
  transform: translateY(-2px);
  filter: saturate(1) brightness(.99);
}
.pack-card:focus-visible,
:where(.contact-section .card, .contact-section .contact-box, #livreor .avis-card):focus-visible{
  outline-width:6px;
  outline-color: rgba(124,25,255,.95);
}

/* Variante mise en avant (packs + blocs associés) */
.pack-featured,
:where(.contact-section .card.pack-featured, .contact-section .contact-box.pack-featured, #livreor .avis-card.pack-featured,
       .contact-section .card.featured, #livreor .avis-card.featured){
  outline:8px solid rgba(108,92,231,.75);
}
.pack-featured:hover,
.pack-featured:focus-within,
:where(.contact-section .card.pack-featured, .contact-section .contact-box.pack-featured, #livreor .avis-card.pack-featured,
       .contact-section .card.featured, #livreor .avis-card.featured):hover,
:where(.contact-section .card.pack-featured, .contact-section .contact-box.pack-featured, #livreor .avis-card.pack-featured,
       .contact-section .card.featured, #livreor .avis-card.featured):focus-within{
  transform: translateY(-6px);
  outline-width:10px;
  outline-color: rgba(124,25,255,.90);
  box-shadow: var(--sh-26-80-v), 0 18px 54px rgba(0,0,0,.50);
}

/* Accessibilité : réduire le mouvement (parité packs/blocs) */
@media (prefers-reduced-motion: reduce){
  .pack-card,
  :where(.contact-section .card, .contact-section .contact-box, #livreor .avis-card){
    transition: outline-color .01s linear, outline-width .01s linear, border-color .01s linear, filter .01s linear;
  }
  .pack-card:hover,
  .pack-card:focus-within,
  .pack-card:active,
  :where(.contact-section .card, .contact-section .contact-box, #livreor .avis-card):hover,
  :where(.contact-section .card, .contact-section .contact-box, #livreor .avis-card):focus-within,
  :where(.contact-section .card, .contact-section .contact-box, #livreor .avis-card):active{
    transform:none;
  }
}

.pack-list{ padding-left:1.1rem; margin:0; }
.pack-list li{ margin-bottom:.4rem; }
.pack-list li::marker{ color:var(--gs-text); }
.pack-badge{
  border-radius:999px;
  font-weight:700;
  padding:.45rem .9rem;
  box-shadow: 0 6px 16px rgba(108,92,231,.35);
}

/* Téléphone dans la navbar */
.phone-pill{
  border:1px solid var(--gs-border);
  border-radius:999px;
  padding:.35rem .75rem;
  line-height:1;
}
.phone-pill:hover{
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.25);
  text-decoration:none;
}

/* ===== Boutons — gradient pill ===== */
.btn{
  background:var(--grad);
  color:#fff !important;
  padding:14px 22px;
  border-radius:999px;
  border:0;
  box-shadow: var(--sh-10-30);
  text-decoration:none;
  display:inline-flex; align-items:center; gap:.5rem;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn:hover{ transform: translateY(-1px); box-shadow: 0 14px 36px rgba(0,0,0,.45); }
.btn:active{ transform: translateY(0); filter: brightness(.98) saturate(1.05); }
.btn:focus-visible{ outline:2px solid rgba(255,255,255,.45); outline-offset:2px; }

/* Harmoniser toutes variantes Bootstrap */
.btn-primary,.btn-secondary,.btn-success,.btn-danger,.btn-warning,.btn-info,.btn-dark,.btn-light,
.btn-outline-primary,.btn-outline-secondary,.btn-outline-success,.btn-outline-danger,
.btn-outline-warning,.btn-outline-info,.btn-outline-dark,.btn-outline-light{
  background:var(--grad); color:#fff !important; border:0;
}
.btn-sm{ padding:10px 16px; font-size:.925rem; }
.btn-lg{ padding:16px 26px; font-size:1.05rem; }
.btn i{ line-height:1; }

@supports not (background: conic-gradient(from 0deg,#000,#fff)){
  .btn, .btn[class*="btn-"]{ background: linear-gradient(90deg, #7c19ff, #00b3ff 60%, #ff2db0); }
}
@media (prefers-reduced-motion: reduce){ .btn{ transition:none; } }

/* ===== Formulaires ===== */
.form-control,.form-select,.form-check-input{
  background-color:#0f141b;
  color:var(--gs-text);
  border:1px solid var(--gs-border);
}
.form-control::placeholder{ color:#7b8696; }

/* ===== Alertify — dark plat ===== */
.ajs-message,.ajs-dialog{
  color:var(--gs-text);
  background:var(--gs-surface);
  border:1px solid var(--gs-border);
}
.ajs-header,.ajs-footer{ background:var(--gs-surface-2); }

/* ===== Modale Packs ===== */
#packModal .modal-content{
  background:var(--gs-surface);
  border:1px solid var(--gs-border);
  border-radius:16px;
}
#packModal .modal-header{ border-bottom:0; }
#packModal .modal-body{ border-top:1px solid rgba(255,255,255,.05); border-radius:0 0 16px 16px; }
#packModal .nav-pills .nav-link{
  border-radius:999px; background:transparent; color:var(--gs-text); border:1px solid var(--gs-border);
}
#packModal .nav-pills .nav-link.active{ background:var(--grad); color:#fff; border-color:transparent; }
#packPrice.btn{ padding:8px 14px; font-weight:700; }
@media (max-width:576px){ #packModal .nav-pills .nav-link{ padding:.5rem .75rem; } }

/* Image sous les détails/onglets du pack */
.pack-image{
  max-height:600px;
  height:auto;
  display:block;
  border-radius:12px;
  border:1px solid var(--gs-border);
  box-shadow: var(--sh-8-24);
  margin-top:1rem;
}

/* ===== Présentation : padding texte ===== */
#presentation .presentation-text{
  padding:1rem;
  box-shadow: rgba(0,0,0,.35) 0 12px 36px;
  backdrop-filter: blur(6px);
  background: rgba(15,18,24,.6);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
@media (min-width:992px){
  #presentation .presentation-text{ padding:1.5rem 0 1.5rem 2rem; }
}

/* ===== Livre d'or ===== */
#livreor .avis-card{ padding:1rem 1.25rem; }
#avis-indicators{ display:none !important; }

/* ===== Champs de formulaire — style "pack-card" ===== */
:where(.form-control,.form-select,.form-check-input){
  background-color:#0f141b;
  color:var(--gs-text);
  border:1px solid var(--gs-border);
  border-radius:14px;
  box-shadow:
    0 0 0 2px rgba(108,92,231,.75),
    var(--sh-8-24);
  transition: box-shadow .18s ease, border-color .18s ease, filter .18s ease, background-color .18s ease;
}
:where(.form-control,.form-select,.form-check-input):hover{
  box-shadow:
    0 0 0 4px rgba(124,25,255,.85),
    var(--sh-18-54-v),
    var(--sh-18-54);
  border-color: rgba(255,255,255,.12);
  filter: saturate(1.02) brightness(1.02);
}
:where(.form-control,.form-select,.form-check-input):focus{
  outline:none;
  box-shadow:
    0 0 0 6px rgba(124,25,255,.95),
    var(--sh-22-60-v),
    var(--sh-22-60);
  border-color: rgba(255,255,255,.18);
  filter: saturate(1.03) brightness(1.03);
}
:where(.form-control,.form-select,.form-check-input):active{
  box-shadow:
    0 0 0 4px rgba(124,25,255,.90),
    0 14px 36px rgba(0,0,0,.45);
  filter: brightness(.99);
}

/* Placeholder + états disabled/readonly */
:where(.form-control,.form-select):disabled,
:where(.form-control,.form-select)[readonly]{
  opacity:.8; filter:none;
  box-shadow:
    0 0 0 2px rgba(108,92,231,.35),
    0 6px 16px rgba(0,0,0,.25);
}

/* Validation Bootstrap (rouge/vert) */
.is-invalid.form-control,
.is-invalid.form-select{
  border-color:#ef4444;
  box-shadow: 0 0 0 4px rgba(239,68,68,.5), 0 12px 36px rgba(0,0,0,.45);
}
.is-valid.form-control,
.is-valid.form-select{
  border-color:#10b981;
  box-shadow: 0 0 0 4px rgba(16,185,129,.45), 0 12px 36px rgba(0,0,0,.45);
}

/* Checkboxes / radios */
.form-check-input{
  width:1.1rem; height:1.1rem;
  border-radius:8px;
  background-color:#0f141b;
  accent-color:var(--gs-primary);
}
.form-check-input:checked{
  background-image:none;
  background-color:var(--gs-primary);
  border-color: rgba(255,255,255,.18);
}

/* Select : caret lisible */
.form-select{
  background-image:none;
  padding-right:2.25rem;
  position:relative;
}
.form-select:not([multiple]){
  background:
    linear-gradient(transparent,transparent) padding-box,
    radial-gradient(currentColor 0 0) left -9999px top -9999px/0 0 no-repeat,
    conic-gradient(from 45deg,currentColor 25%,transparent 0) right .95rem center/8px 8px no-repeat,
    conic-gradient(from 225deg,currentColor 25%,transparent 0) right .55rem center/8px 8px no-repeat;
  color:var(--gs-text);
}

/* Groupes & labels assortis */
.input-group-text{
  background:#0f141b;
  color:var(--gs-text-muted);
  border:1px solid var(--gs-border);
  border-radius:12px;
  box-shadow: 0 0 0 2px rgba(108,92,231,.35);
}
.form-label{ color:var(--gs-text-muted); }

/* Variante "mise en avant" optionnelle : .field-featured */
.field-featured{
  box-shadow:
    0 0 0 8px rgba(108,92,231,.75)!important,
    var(--sh-26-80-v)!important,
    0 18px 54px rgba(0,0,0,.50)!important;
}

/* Accessibilité : réduire le mouvement */
@media (prefers-reduced-motion: reduce){
  :where(.form-control,.form-select,.form-check-input){ transition:none; }
}

/* ===== Select : options en texte noir (liste ouverte) ===== */
.form-select option{
  color:#000;
  background-color:#fff;
}
.form-select optgroup{
  color:#111; background-color:#fff; font-weight:600;
}
.form-select option:hover{ background-color:#f2f4f7; }
.form-select option:checked,
.form-select option:focus{ background-color:#e6eaf2; }
.form-select option:disabled{ color:#808a98; }

/* Accessibilité Windows High Contrast */
@media (forced-colors: active){
  .form-select option,.form-select optgroup{
    color:ButtonText; background:ButtonFace;
  }
}
