:root {
  --g-brand-primary: #1c1e21;
  --g-brand-primary-dark: #0f5cc0;
  --g-brand-cta: #1877f2;
  --g-brand-cta-hover: #1666cf;
  --g-page-bg: #f0f2f5;
  --g-surface: #FFFFFF;
  --g-surface-muted: #f7f8fa;
  --g-border-soft: #dce1e8;
  --g-text-main: #1c1e21;
  --g-text-muted: #65676b;
  --g-shadow-soft: 0 18px 42px rgba(15, 23, 42, 0.10);
}

body {
  background: var(--g-page-bg) !important;
  color: var(--g-text-main) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.logo h1,
.home-page h1,
.plan-name,
.plan-title,
.price-amount,
.header h1,
.error-card h2,
.error-container h2,
.status-container h1,
.popup-header h2,
.section-title h2 {
  color: var(--g-brand-primary) !important;
}

.gradient,
.gradient-text {
  background: none !important;
  color: var(--g-brand-primary) !important;
  -webkit-text-fill-color: currentColor !important;
}

a,
.links a,
.login-link,
.artisan-dd__link,
.header-client__mobile a,
.header-artisan__mobile a {
  color: var(--g-brand-primary);
}

a:hover,
.links a:hover,
.login-link:hover,
.artisan-dd__link:hover,
.header-client__mobile a:hover,
.header-artisan__mobile a:hover {
  color: var(--g-brand-cta);
}

.home-page,
.inscription-popup,
.error-container,
.error-card,
.status-container,
.login-container,
.plan-card,
.comparison-block,
.faq-section-wrapper,
.header,
.card,
.header-artisan__dropdown {
  background: var(--g-surface) !important;
  border: 1px solid var(--g-border-soft);
  box-shadow: var(--g-shadow-soft) !important;
}

.error-icon,
.info-box,
.debug-section,
.search-box,
.artisan-dd__head,
.progress-bar,
.popup-body {
  background: var(--g-surface-muted) !important;
  border-color: var(--g-border-soft) !important;
}

.error-icon i,
.info-box h3,
.search-field label,
.stat-icon,
.plan-price,
.progress-step.active,
.progress-step.active::before,
.progress-step.active:not(:last-child)::after {
  color: var(--g-brand-primary) !important;
}

.progress-step.active::before {
  background: var(--g-brand-primary) !important;
  color: #FFFFFF !important;
}

.popup-header,
.card-header,
.header-artisan__logo-badge,
.popular-tag,
.card-badge,
.alert-banner {
  background: var(--g-brand-primary) !important;
  color: #FFFFFF !important;
}

.btn-home,
.btn-search,
.btn-submit,
.btn-subscribe,
.btn-open-popup,
.alert-btn,
.search-box button,
.btn.custom-btn,
.btn-home,
.btn-search,
.btn-register-mobile,
.header-client__btn-register,
.header-artisan__toggle .toggle-avatar,
.site-btn,
.primary-btn,
.btn-primary,
.error-card .btn,
.error-container .btn,
.status-container .btn,
.btn-pro,
.btn-premium,
.btn-free,
.mobile-logout {
  background: var(--g-brand-cta) !important;
  border-color: var(--g-brand-cta) !important;
  color: #FFFFFF !important;
  box-shadow: 0 12px 24px rgba(0, 112, 243, 0.24) !important;
}

.btn-home:hover,
.btn-search:hover,
.btn-submit:hover,
.btn-subscribe:hover,
.btn-open-popup:hover,
.alert-btn:hover,
.search-box button:hover,
.btn.custom-btn:hover,
.btn-register-mobile:hover,
.header-client__btn-register:hover,
.site-btn:hover,
.primary-btn:hover,
.btn-primary:hover,
.error-card .btn:hover,
.error-container .btn:hover,
.status-container .btn:hover,
.btn-pro:hover,
.btn-premium:hover,
.btn-free:hover,
.mobile-logout:hover {
  background: var(--g-brand-cta-hover) !important;
  border-color: var(--g-brand-cta-hover) !important;
  color: #FFFFFF !important;
}

.btn-outline,
.btn-secondary,
.btn-search,
.header-client__btn-login {
  background: #FFFFFF !important;
  color: var(--g-brand-primary) !important;
  border: 1px solid var(--g-border-soft) !important;
  box-shadow: none !important;
}

.btn-outline:hover,
.btn-secondary:hover,
.btn-search:hover,
.header-client__btn-login:hover {
  background: var(--g-surface-muted) !important;
  color: var(--g-brand-primary) !important;
}

.header-client,
.header-artisan {
  background: rgba(244, 247, 250, 0.98) !important;
  border-bottom: 1px solid var(--g-border-soft);
  box-shadow: 0 10px 30px rgba(26, 54, 93, 0.08) !important;
}

.header-client__logo img,
.header-artisan__logo img {
  filter: none !important;
}

.header-client__nav li a,
.header-artisan__nav li a,
.header-client__mobile a,
.header-artisan__mobile a,
.header-client__mobile button,
.header-artisan__mobile button {
  color: var(--g-brand-primary) !important;
}

.header-client__nav li a:hover,
.header-client__nav li.active a,
.header-artisan__nav li a:hover,
.header-artisan__nav li.active a,
.header-client__mobile a:hover,
.header-client__mobile a.active,
.header-artisan__mobile a:hover,
.header-artisan__mobile a.active,
.header-client__burger:hover,
.header-artisan__toggle:hover {
  background: rgba(0, 112, 243, 0.08) !important;
  color: var(--g-brand-primary) !important;
}

.header-client__burger span {
  background: var(--g-brand-primary) !important;
}

.header-artisan__logo-badge,
.header-artisan__tier.tier-pro,
.header-artisan__tier.tier-premium,
.plan-card.featured,
.plan-card.popular {
  border-color: rgba(0, 112, 243, 0.24) !important;
}

.header-artisan__tier.tier-free {
  background: rgba(26, 54, 93, 0.06) !important;
  color: var(--g-brand-primary) !important;
  border-color: rgba(26, 54, 93, 0.12) !important;
}

.header-artisan__tier.tier-pro,
.header-artisan__tier.tier-premium,
.plan-card.featured::before {
  background: rgba(0, 112, 243, 0.1) !important;
  color: var(--g-brand-primary) !important;
}

.header-artisan__toggle {
  background: #FFFFFF !important;
  border-color: var(--g-border-soft) !important;
  color: var(--g-brand-primary) !important;
}

.header-artisan__dropdown,
.header-client__mobile,
.header-artisan__mobile {
  background: #FFFFFF !important;
}

.page-header-devis__title,
.form-section-devis__title,
.success-title,
.stat-val,
.plan-badge,
.pwd-card h2,
.legal-title,
.devis-header h1,
.devis-show-title {
  color: var(--g-brand-primary) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

.form-section-devis__title i,
.page-header-devis__icon i,
.metier-icon,
.info-box-devis__icon,
.info-box__icon {
  color: #FFFFFF !important;
}

.page-header-devis__icon,
.legal-num,
.plan-badge,
.btn-primary-devis,
.btn-primary-custom,
.btn-save,
.btn-plan--pro,
.btn-custom.btn-primary-custom {
  background: linear-gradient(135deg, var(--g-brand-cta) 0%, var(--g-brand-cta-hover) 100%) !important;
  border-color: var(--g-brand-cta) !important;
  color: #FFFFFF !important;
  box-shadow: 0 12px 24px rgba(0, 112, 243, 0.22) !important;
}

.btn-primary-devis:hover,
.btn-primary-custom:hover,
.btn-save:hover,
.btn-plan--pro:hover,
.btn-custom.btn-primary-custom:hover {
  background: linear-gradient(135deg, var(--g-brand-cta-hover) 0%, #004FA8 100%) !important;
  color: #FFFFFF !important;
}

.btn-secondary-devis,
.btn-custom.btn-secondary-custom,
.sub-cancel a,
.btn-back {
  color: var(--g-brand-primary) !important;
  border-color: var(--g-border-soft) !important;
}

.btn-secondary-devis:hover,
.btn-custom.btn-secondary-custom:hover,
.btn-back:hover,
.sub-cancel a:hover {
  color: var(--g-brand-cta) !important;
  border-color: var(--g-brand-cta) !important;
}

.page-header-devis__subtitle,
.form-section-devis__description,
.form-help-devis,
.success-subtitle {
  color: var(--g-text-muted) !important;
}

.form-section-devis__divider,
.form-section__divider {
  background: linear-gradient(90deg, var(--g-brand-primary) 0%, transparent 100%) !important;
}

.form-input-devis,
.form-select-devis,
.form-textarea-devis,
.form-input,
.form-select,
.form-textarea {
  border-color: var(--g-border-soft) !important;
  color: var(--g-brand-primary) !important;
}

.form-input-devis:focus,
.form-select-devis:focus,
.form-textarea-devis:focus,
.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  border-color: var(--g-brand-cta) !important;
  box-shadow: 0 0 0 4px rgba(0, 112, 243, 0.12) !important;
}

.hero-about,
.hero-legal,
.hero-categorie,
.stats-bar,
.cta-artisan {
  background: linear-gradient(135deg, var(--g-brand-primary) 0%, var(--g-brand-primary-dark) 100%) !important;
}

.header-client__mobile .btn-register-mobile,
.mobile-logout {
  color: #FFFFFF !important;
}

.search-box input,
input[type="email"],
input[type="password"],
input[type="text"],
textarea,
select {
  background: #FFFFFF;
  border-color: var(--g-border-soft) !important;
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--g-brand-cta) !important;
  box-shadow: 0 0 0 3px rgba(0, 112, 243, 0.14) !important;
}

.logo p,
.home-page p,
.header p,
.error-card p,
.error-container p,
.status-container p,
.links,
.divider,
.debug-error-box,
.debug-trace,
.plan-price span,
.plan-features li,
.search-box input::placeholder {
  color: var(--g-text-muted) !important;
}

.debug-error-box {
  background: rgba(0, 112, 243, 0.06) !important;
  border-left: 4px solid var(--g-brand-cta) !important;
}

.debug-trace {
  background: var(--g-brand-primary) !important;
  color: #E6EFF8 !important;
}

.debug-trace span {
  color: #8CC4FF !important;
}

.plans-wrapper,
.comparison-block,
.faq-section-wrapper {
  background: transparent !important;
}

.plans-header p,
.faq-header-text p,
.plan-desc {
  color: var(--g-text-muted) !important;
}

.comparison-table thead th,
.comparison-table .feature-name,
.faq-category h3 {
  color: var(--g-brand-primary) !important;
}

/* Preserve contrast on intentionally dark landing sections */
.hero-landing,
.hero-landing .hero-title,
.hero-landing h1,
.hero-landing h2,
.hero-landing h3,
.hero-landing h4,
.hero-landing h5,
.hero-landing h6,
.hero-landing p,
.hero-landing small,
.hero-landing .premium-badge,
.hero-landing .premium-badge span,
.hero-landing .highlight-text,
.hero-landing .trust-items li,
.hero-landing .stat-value,
.hero-landing .stat-box small,
.hero-landing .project-card h3,
.hero-landing .floating-badge,
.hero-landing .floating-badge span,
.hero-landing .app-header .h6,
.hero-landing .app-header h2,
.hero-landing .avatar-circle,
.hero-landing .stat-icon {
  color: #FFFFFF !important;
}

.hero-landing .text-muted {
  color: rgba(255, 255, 255, 0.78) !important;
}

.hero-landing .gradient-text {
  background: linear-gradient(90deg, #8CC4FF 0%, #FFFFFF 100%) !important;
  background-clip: text !important;
  -webkit-background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}

.hero-landing .btn-outline-light {
  background: transparent !important;
  color: #FFFFFF !important;
  border-color: rgba(255, 255, 255, 0.65) !important;
}

.hero-landing .btn-outline-light:hover {
  background: #FFFFFF !important;
  color: var(--g-brand-primary) !important;
  border-color: #FFFFFF !important;
}

.benefits-artisans .section-title,
.benefits-artisans .section-subtitle,
.benefits-artisans .section-title .gradient-text {
  color: #FFFFFF !important;
}

.benefits-artisans .section-title .gradient-text {
  background: linear-gradient(90deg, #8CC4FF 0%, #FFFFFF 100%) !important;
  background-clip: text !important;
  -webkit-background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}

/* Preserve contrast on dark artisan listing hero */
.hero-section,
.hero-section .hero-title,
.hero-section h1,
.hero-section h2,
.hero-section h3,
.hero-section p,
.hero-section .hero-subtitle,
.hero-section .hero-badge,
.hero-section .quick-label,
.hero-section .stat-label {
  color: #FFFFFF !important;
}

.hero-section .highlight,
.hero-section .stats-highlight,
.hero-section .stat-value {
  color: #8CC4FF !important;
}

body {
  font-family: "Inter", "Segoe UI", sans-serif;
  background: var(--g-page-bg) !important;
  color: var(--g-text-main) !important;
}

.home-page,
.inscription-popup,
.error-container,
.error-card,
.status-container,
.login-container,
.plan-card,
.comparison-block,
.faq-section-wrapper,
.header,
.card,
.header-artisan__dropdown {
  border-radius: 20px !important;
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.08) !important;
}

input[type="email"],
input[type="password"],
input[type="text"],
input[type="search"],
input[type="tel"],
textarea,
select,
.form-control,
.form-select {
  min-height: 48px;
  border-radius: 14px !important;
  border: 1px solid var(--g-border-soft) !important;
  box-shadow: none !important;
}

input:focus,
textarea:focus,
select:focus,
.form-control:focus,
.form-select:focus {
  border-color: var(--g-brand-cta) !important;
  box-shadow: 0 0 0 4px rgba(24, 119, 242, 0.12) !important;
}

.search-box,
.info-box,
.debug-section,
.popup-body {
  border-radius: 18px !important;
}
