/* ============================================================
   NIGHT4CAMPINGCAR — Custom CSS consolidé
   Tous les fixes mobile, FAB, footer, widget, accordion, etc.
   Date: 27 mai 2026
   ============================================================ */

/* ===== Hide Mon espace voyageur (demande utilisateur) ===== */
#n4cc-v48-ev, section[id="n4cc-v48-ev"], .ev2-container { display: none !important; }

/* ===== No horizontal overflow ===== */
html, body { overflow-x: hidden; max-width: 100vw; }

/* ===== Header / Hero / Footer confined ===== */
header.site-header, header.site-header.n4cc-header-pro, .header-inner,
section.hero, section.hero-video-bg, .n4cc-hero,
footer.n4cc-footer, .footer-waves {
  max-width: 100%; box-sizing: border-box; overflow-x: hidden;
}

/* ===== MOBILE / TOUCH-DEVICE FIXES ===== */
@media (max-width: 991px), (pointer: coarse) {
  /* Hero hide iframe YouTube + use thumbnail bg */
  iframe#n4cc-intro-iframe { display: none !important; }
  .hero-video-wrap, .hero-video-bg .video-wrap { display: none !important; }
  section.hero.hero-video-bg#bienvenue {
    min-height: 60vh !important;
    background-image: linear-gradient(rgba(6,44,74,0.45), rgba(6,44,74,0.7)), url('https://img.youtube.com/vi/Eq8HJSojnkA/maxresdefault.jpg') !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-color: #062c4a !important;
  }

  /* Custom mobile jauge widget (replaces broken native) */
  .hero-jauge-wrap { padding-bottom: 40px !important; min-height: auto !important; height: auto !important; }
  .n4ccmj {
    width: 100% !important; max-width: 280px !important;
    margin: 0 auto !important; position: relative !important; display: block !important;
  }
  .n4ccmj-rail {
    position: relative !important; width: 100% !important; height: 14px !important;
    background: rgba(255,255,255,0.95) !important;
    border: 2px solid #FFD93D !important;
    border-radius: 999px !important;
    overflow: hidden !important; box-sizing: border-box !important;
  }
  .n4ccmj-fill {
    height: 100% !important;
    background: linear-gradient(90deg, #4caf50 0%, #8bc34a 30%, #ffd93d 55%, #ff9800 75%, #f44336 100%) !important;
    border-radius: 999px !important; display: block !important; position: relative !important;
  }
  .n4ccmj-dot {
    position: absolute !important; top: 50% !important;
    width: 18px !important; height: 18px !important;
    min-width: 18px !important; max-width: 18px !important;
    min-height: 18px !important; max-height: 18px !important;
    background: #16a34a !important;
    border: 2px solid #fff !important;
    border-radius: 50% !important;
    transform: translate(-50%, -50%) !important;
    box-shadow: 0 1px 5px rgba(0,0,0,0.4) !important;
    z-index: 3 !important; box-sizing: border-box !important;
  }
  .n4ccmj-pill {
    margin-top: 12px !important; text-align: center !important;
    font-size: 13px !important; font-weight: 600 !important;
    color: #fff !important;
    background: rgba(6,44,74,0.95) !important;
    padding: 4px 14px !important;
    border-radius: 999px !important;
    display: inline-block !important;
    border: 1px solid rgba(255,255,255,0.25) !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important;
    width: auto !important; max-width: 100% !important;
  }

  /* Hero pages internes */
  .n4cc-hero, .n4cc-title, .n4cc-sub {
    padding-left: 16px !important; padding-right: 16px !important;
    max-width: 100% !important; box-sizing: border-box !important;
  }
  .n4cc-hero h1, .n4cc-hero h2, .n4cc-hero .n4cc-title { color: #fff !important; }
  .n4cc-hero .n4cc-sub, .n4cc-hero p { color: #cbd5e1 !important; }
  .n4cc-actions { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; }
  .n4cc-actions a.n4cc-btn { flex: 1 1 100% !important; max-width: 100% !important; box-sizing: border-box !important; }

  /* Blocs SEO en fond clair sur mobile */
  .v48-seo-block {
    background: #fff !important; border-radius: 16px !important;
    padding: 16px !important; margin: 16px !important;
    color: #0a1834 !important;
  }
  .v48-seo-block h2, .v48-seo-block h3 { color: #0a1834 !important; }
  .v48-seo-block p { color: #4b5563 !important; font-size: 14px !important; line-height: 1.5 !important; }
  .v48-seo-block h3 { font-size: 16px !important; }

  /* Widget stats Q&R */
  .sp-stat, .sp-stat.reveal { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }

  /* Burger */
  .n4cc-v52-burger {
    width: 44px !important; height: 44px !important;
    background: rgba(10,37,64,0.85) !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
    border-radius: 12px !important;
    z-index: 10000 !important;
  }
  h1, h2, h3 { scroll-margin-top: 72px; }
  main h2, main h3 { padding-right: 56px; }

  /* Touch targets */
  button.listen-sea-btn, button.ncc-preset, a.ncc-shb {
    min-width: 44px !important; min-height: 44px !important; padding: 10px !important;
  }
  .ncc-stepper button, button.ncc-step, .ncc-qty button, .ncc-counter button {
    min-width: 44px !important; min-height: 44px !important;
  }

  /* Galerie photos shimmer */
  .photos-section .photo-tile, .yt-photos-pro .photo-tile {
    background: linear-gradient(90deg, #e5e7eb 25%, #f3f4f6 50%, #e5e7eb 75%);
    background-size: 200% 100%;
    animation: n4cc-shimmer 1.6s linear infinite;
  }
  @keyframes n4cc-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
  }

  /* Logo header capé */
  header .logo-wrap img, header a.logo-wrap img, .site-header img.logo {
    max-width: 96px !important; max-height: 96px !important;
    width: auto; height: auto;
  }

  /* M3 — "Ouvrir →" tronqué */
  .n4cc-utility a .open-label, .liens-utiles a .open-label { display: none; }

  /* M5 — Titre stroked Camping-Car */
  .video-section h2, .videos-section h2, h2.section-title-stroked {
    white-space: normal !important; word-wrap: break-word !important;
  }

  /* M7 — Footer waves */
  footer.n4cc-footer { overflow-x: hidden !important; margin-left: 0 !important; }
  .footer-waves { margin-left: 0 !important; overflow: hidden !important; }

  /* Chatbot Q&R input */
  .ia-chatbot, .chatbot-wrapper, .chat-wrapper,
  .ia-chatbot input, .ia-chatbot textarea, .ia-chatbot button {
    max-width: 100% !important; box-sizing: border-box;
  }
}

/* M8 — Mega-menu 1 col sous 480px */
@media (max-width: 480px) {
  .mega-menu-section, .mega-menu-section .row, .mega-menu-section .grid {
    grid-template-columns: 1fr !important; flex-direction: column !important;
  }
}

/* ============= UI/UX ============= */
/* Mega-menu et FAQ inline masqués */
.mega-menu-section, section.mega-menu-section, .mega-menu-wrap { display: none !important; }

/* Header CTA Une question masqué (replacé par FAB) */
.nav-cta { display: none !important; }
a.btn-pill.secondary[href^="tel:"] { display: none !important; }

/* FAB Une question : fond jaune, texte blanc, bottom corner */
.n4cc-fab-question {
  position: fixed; right: 20px; bottom: 20px; z-index: 9992;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 18px; font-size: 15px; font-weight: 700;
  color: #fff !important;
  background: linear-gradient(135deg, #FFD93D 0%, #FFB200 100%) !important;
  border: 2px solid rgba(255,255,255,0.5);
  border-radius: 999px;
  box-shadow: 0 10px 28px rgba(255,178,0,0.45);
  text-decoration: none;
  text-shadow: 0 1px 2px rgba(0,0,0,0.25);
  transition: transform .15s ease, background .2s ease, box-shadow .2s ease;
}
.n4cc-fab-question:hover, .n4cc-fab-question:focus-visible {
  background: linear-gradient(135deg, #FFE974 0%, #FFCB35 100%) !important;
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(255,178,0,0.6);
  color: #fff !important; text-decoration: none;
}
.n4cc-fab-question .fab-icon { font-size: 18px; }
#n4ccFabStack { bottom: 95px !important; right: 20px !important; }
@media (max-width: 991px), (pointer: coarse) {
  .n4cc-fab-question { right: 14px !important; bottom: 14px !important; padding: 11px 16px; font-size: 14px; }
  #n4ccFabStack { bottom: 80px !important; right: 14px !important; }
}

/* Hero CTA replacement (desktop) */
@media (min-width: 992px) {
  .hero-cta-replace {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 12px 22px; font-size: 16px; font-weight: 600;
    color: #062c4a;
    background: linear-gradient(135deg, #FFD93D 0%, #FFB200 100%);
    border: 0; border-radius: 999px;
    text-decoration: none; box-shadow: 0 6px 18px rgba(255, 178, 0, 0.35);
    transition: transform .15s ease, box-shadow .2s ease;
  }
  .hero-cta-replace:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(255, 178, 0, 0.5); color: #062c4a; text-decoration: none; }
}

/* ===== Footer v2 ===== */
footer.n4cc-footer { display: none !important; }
.n4cc-footer-v2 {
  background: linear-gradient(180deg, #062c4a 0%, #041e35 100%);
  color: #cbd5e1; padding: 48px 20px 20px;
  position: relative; overflow: hidden;
}
.n4cc-footer-v2 .footer-top { text-align: center; margin-bottom: 32px; }
.n4cc-footer-v2 .footer-top h2 { color: #fff; font-size: 22px; margin: 0 0 8px; font-weight: 700; }
.n4cc-footer-v2 .footer-top p { color: #cbd5e1; font-size: 14px; margin: 0; }
.n4cc-footer-v2 .footer-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 24px; max-width: 1100px; margin: 0 auto 28px; }
.n4cc-footer-v2 .footer-col h3 { color: #FFD93D; font-size: 14px; text-transform: uppercase; letter-spacing: 0.5px; margin: 0 0 12px; }
.n4cc-footer-v2 .footer-col ul { list-style: none; padding: 0; margin: 0; }
.n4cc-footer-v2 .footer-col li { margin-bottom: 8px; }
.n4cc-footer-v2 .footer-col a { color: #cbd5e1; text-decoration: none; font-size: 14px; transition: color .15s ease; }
.n4cc-footer-v2 .footer-col a:hover { color: #FFD93D; }
.n4cc-footer-v2 .footer-contact { text-align: center; max-width: 800px; margin: 0 auto 20px; }
.n4cc-footer-v2 .footer-pabiran { color: #FFD93D; font-weight: 700; letter-spacing: 1.5px; font-size: 12px; text-transform: uppercase; margin-bottom: 6px; }
.n4cc-footer-v2 .footer-contact .footer-addr { color: #94a3b8; font-size: 13px; margin: 0 0 6px; }
.n4cc-footer-v2 .footer-contact a.footer-tel { color: #FFD93D; font-weight: 600; text-decoration: none; font-size: 16px; }
.n4cc-footer-v2 .footer-rss { display: block; text-align: center; max-width: 800px; margin: 0 auto 20px; padding: 12px 16px; background: rgba(255,217,61,0.08); border: 1px solid rgba(255,217,61,0.25); border-radius: 12px; color: #cbd5e1; font-size: 13px; text-decoration: none;
  transition: background .3s ease, transform .3s cubic-bezier(.34, 1.56, .64, 1), box-shadow .3s ease, border-color .3s ease;
}
.n4cc-footer-v2 .footer-rss:hover {
  transform: translateY(-4px) scale(1.02);
  background: linear-gradient(135deg, rgba(255,217,61,0.22), rgba(255,178,0,0.14));
  border-color: rgba(255,217,61,0.7);
  box-shadow: 0 12px 30px rgba(255,178,0,0.35), 0 0 0 4px rgba(255,217,61,0.12);
  color: #fff;
}
.n4cc-footer-v2 .footer-rss:active { transform: translateY(-1px) scale(1.01); }
.n4cc-footer-v2 .footer-badges { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 16px; font-size: 13px; color: #94a3b8; max-width: 1100px; margin: 0 auto 16px; }
.n4cc-footer-v2 .footer-badges span { white-space: nowrap; }
.n4cc-footer-v2 .footer-copy { text-align: center; font-size: 12px; color: #64748b; border-top: 1px solid rgba(255,255,255,0.08); padding-top: 16px; max-width: 1100px; margin: 0 auto; }
@media (max-width: 600px) {
  .n4cc-footer-v2 { padding: 32px 16px 16px; }
  .n4cc-footer-v2 .footer-cols { grid-template-columns: 1fr 1fr; gap: 18px; }
  .n4cc-footer-v2 .footer-top h2 { font-size: 19px; }
}

/* ===== TOC "Sur cette page" — centré ===== */
.n4cc-toc { text-align: center !important; }
.n4cc-toc ul, .n4cc-toc ol { display: inline-flex !important; gap: 16px !important; justify-content: center !important; flex-wrap: wrap !important; padding: 0 !important; margin: 0 auto !important; list-style: none; }
.n4cc-toc li { list-style: none; }
.n4cc-toc a { color: #fff !important; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,0.06); transition: all .2s ease; }
.n4cc-toc a:hover { background: rgba(255,217,61,0.15); color: #FFD93D !important; text-decoration: none; }
@media (max-width: 600px) {
  .n4cc-toc ul, .n4cc-toc ol { gap: 8px !important; }
  .n4cc-toc a { font-size: 13px; padding: 5px 10px; }
}

/* ===== Page actualités (view-category) — fond clair lisible ===== */
body.view-category, body.view-category .body-wrapper, body.view-category .body-innerwrapper,
body.view-category #sp-main, body.view-category main, body.com_content.view-category {
  background: linear-gradient(180deg, #FFFBEB 0%, #FFF8E1 100%) !important;
  color: #062c4a !important;
}
body.view-category h1, body.view-category h2, body.view-category h3, body.view-category .item-title { color: #062c4a !important; }
body.view-category .item-image img { border-radius: 12px; box-shadow: 0 4px 14px rgba(0,0,0,0.1); }
body.view-category a { color: #1565b0 !important; }
body.view-category a:hover { color: #FFB200 !important; }

/* ===== Encarts Temps Forts ===== */
.n4cc-tf-section { margin: 28px 0 36px; }
.n4cc-tf-section-title { color: #FFD93D; font-size: 14px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 12px; }
.n4cc-tf-accordion { display: grid; gap: 10px; }
.n4cc-tf-event {
  background: linear-gradient(135deg, #062c4a, #0a4378);
  border: 1px solid rgba(255,217,61,0.25);
  border-radius: 14px; padding: 12px 16px;
  cursor: pointer; transition: all .22s ease;
}
.n4cc-tf-event:hover { border-color: rgba(255,217,61,0.6); background: linear-gradient(135deg, #0a4378, #1565b0); }
.n4cc-tf-event-head { display: flex; gap: 12px; align-items: center; }
.n4cc-tf-event-icon { font-size: 26px; flex: 0 0 30px; }
.n4cc-tf-event-title { font-size: 15px; font-weight: 700; color: #fff; flex: 1; }
.n4cc-tf-event-date { font-size: 12px; color: #FFD93D; font-weight: 600; }
.n4cc-tf-event-chevron { color: rgba(255,255,255,0.5); transition: transform .25s ease; }
.n4cc-tf-event.open .n4cc-tf-event-chevron { transform: rotate(180deg); color: #FFD93D; }
.n4cc-tf-event-body { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.n4cc-tf-event.open .n4cc-tf-event-body { max-height: 400px; }
.n4cc-tf-event-body-inner { padding-top: 10px; color: #cbd5e1; font-size: 13.5px; line-height: 1.55; }
.n4cc-tf-cta-link {
  display: inline-block; margin-top: 14px;
  padding: 8px 16px; border-radius: 999px;
  background: linear-gradient(135deg, #FFD93D, #FFB200);
  color: #062c4a; font-weight: 700; font-size: 13px;
  text-decoration: none; transition: transform .15s ease;
}
.n4cc-tf-cta-link:hover { transform: translateY(-2px); color: #062c4a; text-decoration: none; }
@media (max-width: 720px) {
  .n4cc-tf-event { padding: 10px 14px; }
  .n4cc-tf-event-title { font-size: 14px; }
  .n4cc-tf-event-icon { font-size: 22px; flex-basis: 26px; }
}

/* ===== Pistes Cyclables section ===== */
.n4cc-pistes-section {
  background: linear-gradient(135deg, #062c4a 0%, #0a4378 100%);
  padding: 48px 20px; position: relative; overflow: hidden;
}
.n4cc-pistes-inner { max-width: 1200px; margin: 0 auto; }
.n4cc-pistes-section h2 { color: #fff; font-size: 28px; text-align: center; margin: 0 0 12px; }
.n4cc-pistes-section h2 .em { color: #FFD93D; }
.n4cc-pistes-section .pistes-sub { text-align: center; color: #cbd5e1; font-size: 15px; margin: 0 0 28px; }
.n4cc-pistes-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.n4cc-pistes-card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,217,61,0.25);
  border-radius: 14px; padding: 18px;
  text-decoration: none; color: #fff;
  transition: all .25s cubic-bezier(.34,1.56,.64,1);
  display: block;
}
.n4cc-pistes-card:hover {
  transform: translateY(-4px); border-color: #FFD93D;
  background: rgba(255,217,61,0.08);
  box-shadow: 0 12px 28px rgba(0,0,0,0.3);
  color: #fff; text-decoration: none;
}
.n4cc-pistes-icon { font-size: 32px; margin-bottom: 8px; }
.n4cc-pistes-card .km { display: inline-block; padding: 3px 10px; background: rgba(255,217,61,0.2); border-radius: 999px; color: #FFD93D; font-size: 12px; font-weight: 600; margin-bottom: 8px; }
.n4cc-pistes-card h3 { margin: 0 0 6px; font-size: 16px; color: #fff; }
.n4cc-pistes-card p { margin: 0; font-size: 13px; color: #cbd5e1; line-height: 1.5; }
.n4cc-pistes-card .cta { display: block; margin-top: 10px; color: #FFD93D; font-size: 13px; font-weight: 600; }
@media (max-width: 600px) {
  .n4cc-pistes-section { padding: 32px 16px; }
  .n4cc-pistes-section h2 { font-size: 22px; }
}

/* ===== Polish global ===== */
html { scroll-behavior: smooth; }
*:focus-visible {
  outline: 2px solid #FFD93D !important;
  outline-offset: 2px !important;
  border-radius: 4px;
}
a, button, .btn, .n4cc-btn { transition: opacity .2s ease, transform .15s ease, background-color .2s ease; }
a:active, button:active, .btn:active, .n4cc-btn:active { transform: translateY(1px); }
a, button { -webkit-tap-highlight-color: rgba(255, 217, 61, 0.3); }

/* ============= FIN ============= */
