/*
 Theme Name:   Astra JCC Child
 Version:      2.1.0
 Template:     astra
*/
:root {
  --judo-navy: #1e3a8a !important;
  --judo-navy-dark: #1e40af !important;
  --bg-primary: #ffffff !important;
  --bg-secondary: #f1f5f9 !important;
  --text-primary: #0f172a !important;
  --text-secondary: #475569 !important;
  --border-subtle: #e2e8f0 !important;
}
body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}
.site-header, .main-header-bar, .ast-primary-header-bar, .ast-mobile-header-wrap, .ast-mobile-header-wrap .ast-mobile-header-content, .ast-desktop-header-content, #masthead {
  background-color: #0f3460 !important;
  border-bottom: 3px solid #c0392b !important;
}
.site-branding .custom-logo-link img { max-height: 48px !important; width: auto !important; }
@media (max-width: 544px) {
  .ast-site-identity { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; }
  .site-title a { font-size: 1rem !important; line-height: 1.25 !important; display: block !important; max-width: 150px !important; text-align: center !important; color: #ffffff !important; }
}
/* Nav menu links desktop */
.main-navigation .menu-link,
.ast-builder-menu-1 .menu-item > .menu-link,
.ast-builder-menu-1 .menu-item > .ast-menu-toggle {
  color: #ffffff !important;
}
.main-navigation .menu-link:hover,
.ast-builder-menu-1 .menu-item:hover > .menu-link {
  color: #f0a500 !important;
}

.site-title a { color: #ffffff !important; font-weight: 700 !important; text-decoration: none !important; }
.ast-menu-toggle, .ast-menu-toggle svg, .ast-menu-toggle svg path, .menu-toggle.main-header-menu-toggle, .ast-mobile-menu-trigger-minimal { color: #ffffff !important; fill: #ffffff !important; stroke: #ffffff !important; }
.ast-article-post, .ast-article-single, .widget { background: var(--bg-primary) !important; border: 1px solid var(--border-subtle) !important; border-radius: 12px !important; padding: 24px !important; box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important; }
.ast-button, .woocommerce .button.alt { background: var(--judo-navy) !important; color: #fff !important; border-radius: 8px !important; min-height: 44px !important; }
input[type="text"], input[type="email"], textarea, select { border: 1px solid var(--border-subtle) !important; border-radius: 8px !important; background: var(--bg-primary) !important; color: var(--text-primary) !important; min-height: 44px !important; }
[data-theme="dark"] body { background-color: #0f172a !important; color: #f9fafb !important; }
[data-theme="dark"] .site-header, [data-theme="dark"] .main-header-bar { background-color: #1e293b !important; border-bottom-color: #334155 !important; }
[data-theme="dark"] .site-title a { color: #f9fafb !important; }
[data-theme="dark"] .ast-menu-toggle, [data-theme="dark"] .ast-menu-toggle svg, [data-theme="dark"] .ast-menu-toggle svg path { color: #f9fafb !important; fill: #f9fafb !important; stroke: #f9fafb !important; }
[data-theme="dark"] .ast-article-post, [data-theme="dark"] .widget { background: #1e293b !important; border-color: #334155 !important; }

/* ===== JCC Services Portal (Bulletproof against Astra) ===== */
.jcc-portal-wrapper { 
  max-width: 100% !important; 
  margin: 0 auto !important; 
  padding: 40px 20px !important; 
  width: 100% !important;
}
.jcc-portal-header { text-align: center !important; margin-bottom: 40px !important; }
.jcc-portal-header h2 { color: var(--judo-navy) !important; font-size: 2rem !important; margin-bottom: 12px !important; font-weight: 700 !important; line-height: 1.2 !important; }
.jcc-portal-header p { color: var(--text-secondary) !important; font-size: 1.1rem !important; max-width: 600px !important; margin: 0 auto !important; line-height: 1.5 !important; }

.jcc-portal-grid { 
  display: grid !important; 
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important; 
  gap: 24px !important; 
  width: 100% !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
}

.jcc-portal-card { 
  display: flex !important; 
  flex-direction: column !important; 
  align-items: flex-start !important; 
  background: var(--bg-primary) !important; 
  border: 1px solid var(--border-subtle) !important; 
  border-radius: 12px !important; 
  padding: 28px 24px !important; 
  text-decoration: none !important; 
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important; 
  box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
  height: 100% !important;
}

.jcc-portal-card:hover { 
  transform: translateY(-4px) !important; 
  box-shadow: 0 12px 24px rgba(0,0,0,0.08) !important; 
  border-color: var(--judo-navy) !important; 
}

.jcc-portal-icon { 
  width: 48px !important;
  height: 48px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #EFF6FF !important;
  border-radius: 10px !important;
  margin-bottom: 20px !important; 
  color: var(--judo-navy) !important;
}
.jcc-portal-icon svg { width: 28px !important; height: 28px !important; }

.jcc-portal-card h3 { 
  color: var(--text-primary) !important; 
  font-size: 1.15rem !important; 
  margin: 0 0 10px 0 !important; 
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

.jcc-portal-card p { 
  color: var(--text-secondary) !important; 
  font-size: 0.95rem !important; 
  line-height: 1.5 !important; 
  margin: 0 0 24px 0 !important; 
  flex-grow: 1 !important; 
}

.jcc-portal-btn { 
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--judo-navy) !important; 
  color: #ffffff !important; 
  padding: 10px 20px !important; 
  border-radius: 8px !important; 
  font-weight: 500 !important; 
  font-size: 0.9rem !important; 
  transition: background 0.15s !important; 
  width: 100% !important; 
  text-align: center !important;
}

.jcc-portal-card:hover .jcc-portal-btn { background: var(--judo-navy-dark) !important; }

@media (max-width: 600px) {
  .jcc-portal-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
  .jcc-portal-card { padding: 24px 20px !important; }
}

/* ===== FORCE CONTRAST FIX FOR PORTAL ===== */
.jcc-portal-wrapper, 
.jcc-portal-wrapper *, 
.jcc-portal-wrapper h2, 
.jcc-portal-wrapper h3, 
.jcc-portal-wrapper p, 
.jcc-portal-wrapper span,
.jcc-portal-wrapper a {
  color: #f8fafc !important;
}

.jcc-portal-header h2 {
  color: #60a5fa !important;
}

.jcc-portal-header p {
  color: #cbd5e1 !important;
}

.jcc-portal-card {
  background-color: #1e293b !important;
}

.jcc-portal-card h3 {
  color: #60a5fa !important;
  font-weight: 700 !important;
}

.jcc-portal-card p {
  color: #cbd5e1 !important;
}

.jcc-portal-btn {
  color: #ffffff !important;
  background-color: #60a5fa !important;
}

.jcc-portal-card:hover .jcc-portal-btn {
  background-color: #162D60 !important;
  color: #ffffff !important;
}

.ast-single-post .entry-content .jcc-portal-card p,
.ast-single-post .entry-content .jcc-portal-card h3 {
  color: inherit !important;
}

/* ===== FORCE DARK MODE FOR PORTAL (Bulletproof) ===== */
[data-theme="dark"] .jcc-portal-wrapper,
[data-theme="dark"] .jcc-portal-card,
body.ast-dark-theme .jcc-portal-wrapper,
body.ast-dark-theme .jcc-portal-card {
  background-color: #1e293b !important; /* Dark slate background */
  border-color: #334155 !important;
}

[data-theme="dark"] .jcc-portal-header h2,
body.ast-dark-theme .jcc-portal-header h2 {
  color: #f9fafb !important; /* Bright white for main heading */
}

[data-theme="dark"] .jcc-portal-header p,
[data-theme="dark"] .jcc-portal-card p,
body.ast-dark-theme .jcc-portal-header p,
body.ast-dark-theme .jcc-portal-card p {
  color: #cbd5e1 !important; /* Light gray, max readability on dark */
}

[data-theme="dark"] .jcc-portal-card h3,
body.ast-dark-theme .jcc-portal-card h3 {
  color: #f9fafb !important; /* Bright white for card titles */
}

[data-theme="dark"] .jcc-portal-icon,
body.ast-dark-theme .jcc-portal-icon {
  background-color: #334155 !important; /* Darker background for icon box */
  color: #f9fafb !important;
}

[data-theme="dark"] .jcc-portal-icon svg,
body.ast-dark-theme .jcc-portal-icon svg {
  color: #f9fafb !important;
  stroke: #f9fafb !important;
}

/* Ensure white text on button remains in dark mode */
[data-theme="dark"] .jcc-portal-btn,
body.ast-dark-theme .jcc-portal-btn {
  color: #ffffff !important;
  background-color: #3b82f6 !important; /* Slightly brighter blue for dark mode contrast */
}
[data-theme="dark"] .jcc-portal-card:hover .jcc-portal-btn,
body.ast-dark-theme .jcc-portal-card:hover .jcc-portal-btn {
  background-color: #2563eb !important;
}

/* ===== KILL ASTRA DEFAULT PAGE CONTAINER & TITLE ===== */
.page .entry-title, 
.ast-article-single .entry-title,
.ast-page .entry-title {
  display: none !important;
}

.ast-separate-container .ast-article-single,
.ast-page .ast-article-single,
.ast-separate-container .ast-article-post {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.ast-container {
  max-width: 100% !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
}

.jcc-portal-wrapper {
  background: transparent !important;
}

/* ===== HelloAsso Membership Section ===== */
.jcc-portal-membership {
  margin-top: 60px !important;
  padding: 40px 30px !important;
  background-color: #1e293b !important;
  border: 1px solid #E5E7EB !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05) !important;
  text-align: center !important;
}

.jcc-portal-membership h3 {
  color: #60a5fa !important;
  font-size: 1.5rem !important;
  margin-bottom: 12px !important;
  font-weight: 700 !important;
}

.jcc-portal-membership p {
  color: #4B5563 !important;
  font-size: 1.05rem !important;
  margin-bottom: 30px !important;
  max-width: 600px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  line-height: 1.5 !important;
}

/* Dark mode support for membership section */
[data-theme="dark"] .jcc-portal-membership,
body.ast-dark-theme .jcc-portal-membership {
  background-color: #1e293b !important;
  border-color: #334155 !important;
}

[data-theme="dark"] .jcc-portal-membership h3,
body.ast-dark-theme .jcc-portal-membership h3 {
  color: #f9fafb !important;
}

[data-theme="dark"] .jcc-portal-membership p,
body.ast-dark-theme .jcc-portal-membership p {
  color: #cbd5e1 !important;
}

/* ===== NUKES ASTRA WHITE BORDER & COMMENTS ===== */
.ast-separate-container .ast-article-single,
.ast-page .ast-article-single,
.ast-separate-container .ast-article-post,
.site-content .ast-container {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.ast-page .entry-header,
.page .entry-header {
    display: none !important;
}

#comments,
.comments-area,
.ast-comments-container {
    display: none !important;
}

/* ===== CORRECTION TAILLE LOGO (Mobile et Desktop) ===== */
.site-branding .custom-logo-link img {
    max-width: 100% !important;
    max-height: 80px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
}
@media (max-width: 768px) {
    .site-branding .custom-logo-link img {
        max-height: 60px !important; /* Limite stricte sur iPhone */
        max-width: 80vw !important;
    }
}
.site-branding .custom-logo-link img { display: block !important; max-height: 60px !important; }

/* ===== DESKTOP NAV — force fond bleu + texte blanc (fixe blanc sur blanc) ===== */
#masthead,
.site-header,
.main-header-bar,
.ast-primary-header-bar,
.ast-primary-header,
.site-primary-header-wrap {
  background-color: #0f3460 !important;
}

.main-header-menu > .menu-item > .menu-link,
.ast-builder-menu-1 > .menu-item > .menu-link,
.ast-hf-menu-desktop > .menu-item > .menu-link,
#ast-hf-menu-1 > .menu-item > .menu-link,
#primary-site-navigation-desktop .menu-link {
  color: #ffffff !important;
}
.main-header-menu > .menu-item > .menu-link:hover,
.ast-builder-menu-1 > .menu-item:hover > .menu-link,
#ast-hf-menu-1 > .menu-item:hover > .menu-link {
  color: #f0a500 !important;
}

/* ===== SOUS-MENUS DESKTOP ===== */
.ast-desktop .sub-menu {
  background-color: #0a2545 !important;
  border: 1px solid #1e3a8a !important;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2) !important;
}
.ast-desktop .sub-menu .menu-link {
  color: #c8d8e8 !important;
  background: transparent !important;
}
.ast-desktop .sub-menu .menu-link:hover {
  color: #f0a500 !important;
  background: rgba(255,255,255,0.08) !important;
}

/* ===== MOBILE MENU FIX ===== */
.ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
.ast-mobile-header-content,
.ast-desktop-header-content,
.ast-hfb-header .ast-mobile-header-content,
.ast-hfb-header .ast-desktop-header-content {
  background-color: #0f3460 !important;
}
.ast-mobile-popup-content,
.ast-mobile-header-wrap .ast-mobile-header-content {
  background-color: #0f3460 !important;
}

/* ===== SUPPRIMER CADRE BLANC (ast-plain-container) ===== */
body.ast-plain-container,
body.ast-page-builder-template,
.ast-plain-container {
  background-color: #f1f5f9 !important;
}

/* ===== ASTRA CONTAINER OVERRIDES ===== */
.ast-plain-container .site-content #primary,
.ast-page-builder-template .site-content #primary {
  background: transparent !important;
}
