/*--------------------------------------------------------------
# EDO SYSTEME - Style moderne
# Surcharge de main.css : hero sombre centré avec arc lumineux,
# header transparent / verre dépoli, boutons en pilule.
# Les couleurs restent celles de la marque (rouges de main.css).
--------------------------------------------------------------*/
:root {
  --edo-red: rgb(241, 65, 65);        /* = --accent-color */
  --edo-red-dark: #912525;            /* = .btn-edo */
  --edo-red-deep: rgb(112, 1, 1);     /* = --heading-color */
  --edo-night: #070303;               /* fond du hero */
  --edo-display-font: "Inter", var(--heading-font);
}

/*--------------------------------------------------------------
# Header (page d'accueil uniquement : posé sur le hero sombre)
--------------------------------------------------------------*/
.index-page .header {
  --background-color: transparent;
  --nav-color: rgba(255, 255, 255, 0.82);
  --nav-hover-color: #ffffff;
  --heading-color: #ffffff;
  padding: 18px 0;
}

.index-page.scrolled .header {
  --background-color: rgba(7, 3, 3, 0.72);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06);
  padding: 12px 0;
}

.header .logo h1 {
  font-family: var(--edo-display-font);
  letter-spacing: -0.3px;
}

@media (min-width: 1200px) {
  .navmenu a,
  .navmenu a:focus {
    font-family: var(--edo-display-font);
    font-size: 14px;
    font-weight: 500;
    padding: 18px 16px;
  }
}

.header .btn-getstarted,
.header .btn-getstarted:focus {
  border-radius: 50px;
  padding: 9px 24px;
  font-family: var(--edo-display-font);
  font-size: 14px;
  box-shadow: 0 6px 20px color-mix(in srgb, var(--edo-red), transparent 65%);
}

.header .btn-getstarted:hover {
  transform: translateY(-1px);
}

@media (max-width: 1200px) {
  .header .btn-getstarted {
    padding: 6px 16px;
  }
}

/*--------------------------------------------------------------
# Hero
--------------------------------------------------------------*/
.hero {
  --default-color: #ffffff;
  --heading-color: #ffffff;
  min-height: 100vh;
  padding: 130px 0 50px;
  background: var(--edo-night);
  isolation: isolate;
  text-align: center;
}

/* Lueur rouge diffuse derrière le texte */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    radial-gradient(ellipse 70% 55% at 50% 70%, color-mix(in srgb, var(--edo-red), transparent 72%), transparent 70%),
    radial-gradient(ellipse 50% 35% at 50% 0%, rgba(255, 255, 255, 0.05), transparent 70%);
}

/* Fines lignes verticales */
.hero-lines {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 7px);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 25%, #000 60%, transparent 85%);
  mask-image: linear-gradient(to bottom, transparent, #000 25%, #000 60%, transparent 85%);
  pointer-events: none;
}

/* Étoiles */
.hero-stars {
  position: absolute;
  inset: 0 0 40% 0;
  z-index: -2;
  background-image:
    radial-gradient(1px 1px at 12% 18%, rgba(255, 255, 255, 0.55), transparent),
    radial-gradient(1px 1px at 27% 32%, rgba(255, 255, 255, 0.35), transparent),
    radial-gradient(1px 1px at 41% 12%, rgba(255, 255, 255, 0.45), transparent),
    radial-gradient(1px 1px at 63% 26%, rgba(255, 255, 255, 0.4), transparent),
    radial-gradient(1px 1px at 78% 14%, rgba(255, 255, 255, 0.55), transparent),
    radial-gradient(1px 1px at 88% 38%, rgba(255, 255, 255, 0.35), transparent),
    radial-gradient(1px 1px at 6% 46%, rgba(255, 255, 255, 0.3), transparent),
    radial-gradient(1px 1px at 94% 8%, rgba(255, 255, 255, 0.45), transparent);
  background-size: 480px 360px;
  opacity: 0.8;
  pointer-events: none;
}

/* Arc de "planète" : bord supérieur incandescent, intérieur noir */
.hero-planet {
  position: absolute;
  left: 50%;
  top: -80px; /* sommet de l'arc juste au-dessus des logos clients */
  width: max(180vw, 1400px);
  aspect-ratio: 1;
  transform: translateX(-50%);
  border-radius: 50%;
  z-index: -1;
  background: radial-gradient(circle at 50% 50%, #000 62%, #050101 68%, transparent 71%);
  box-shadow:
    0 -2px 0 0 color-mix(in srgb, var(--edo-red), #fff 25%),
    0 -12px 40px 4px color-mix(in srgb, var(--edo-red), transparent 20%),
    0 -40px 140px 30px color-mix(in srgb, var(--edo-red-dark), transparent 35%),
    inset 0 30px 80px -10px color-mix(in srgb, var(--edo-red), transparent 30%);
  pointer-events: none;
}

.hero-content {
  position: relative;
  max-width: 900px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Badge "annonce" */
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 5px 5px 5px 16px;
  margin-bottom: 28px;
  border-radius: 50px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--edo-display-font);
  font-size: 13px;
  font-weight: 500;
  backdrop-filter: blur(6px);
}

.hero-badge:hover {
  color: #fff;
  border-color: color-mix(in srgb, var(--edo-red), transparent 50%);
}

.hero-badge-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 22px;
  border-radius: 50px;
  background: var(--edo-red);
  color: #fff;
  font-size: 14px;
  transition: transform 0.3s;
}

.hero-badge:hover .hero-badge-icon {
  transform: translateX(3px);
}

.hero h1 {
  font-family: var(--edo-display-font);
  font-size: clamp(32px, 5.4vw, 60px);
  line-height: 1.08;
  font-weight: 600;
  letter-spacing: -0.03em;
  background: linear-gradient(90deg, #ffffff 30%, rgba(255, 255, 255, 0.55));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  max-width: 820px;
}

.hero p {
  color: rgba(255, 255, 255, 0.68);
  font-family: var(--edo-display-font);
  font-size: clamp(16px, 1.6vw, 18px);
  line-height: 1.6;
  max-width: 560px;
  margin: 20px 0 36px;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.hero .btn-get-started,
.hero .btn-watch-video {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 26px;
  border-radius: 50px;
  font-family: var(--edo-display-font);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0;
}

.hero .btn-get-started {
  box-shadow: 0 10px 30px color-mix(in srgb, var(--edo-red), transparent 60%);
}

.hero .btn-get-started i {
  margin-left: 0;
}

.hero .btn-get-started:hover {
  background: color-mix(in srgb, var(--edo-red), #fff 12%);
  box-shadow: 0 12px 36px color-mix(in srgb, var(--edo-red), transparent 45%);
}

.hero .btn-watch-video {
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.03);
}

.hero .btn-watch-video i {
  color: #fff;
  font-size: 20px;
  margin: 0;
}

.hero .btn-watch-video:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.07);
}

.hero .btn-watch-video:hover i {
  color: var(--edo-red);
}

/* Logos clients */
.hero-clients {
  position: relative;
  margin-top: clamp(110px, 18vh, 190px);
  width: 100%;
}

.hero-clients p {
  max-width: none;
  margin: 0 0 18px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.5);
}

.hero-clients-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 18px 40px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent);
}

.hero-clients-logos img {
  height: 30px;
  width: auto;
  max-width: 130px;
  object-fit: contain;
  filter: grayscale(1) brightness(0) invert(1);
  opacity: 0.55;
  transition: opacity 0.3s;
}

.hero-clients-logos img:hover {
  opacity: 0.9;
}

@media (max-width: 768px) {
  .hero {
    padding: 120px 0 50px;
  }

  .hero-clients-logos {
    gap: 16px 26px;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .hero-clients-logos img {
    height: 24px;
    max-width: 100px;
  }
}

@media (max-width: 480px) {
  .index-page .header .logo img {
    max-height: 28px;
    margin-right: 6px;
  }

  .index-page .header .sitename {
    font-size: 16px !important;
  }

  .header .btn-getstarted {
    font-size: 12px;
    padding: 5px 12px;
    margin-right: 8px;
  }

  .hero-badge {
    font-size: 12px;
  }

  .hero-actions {
    width: 100%;
    flex-direction: column;
  }

  .hero .btn-get-started,
  .hero .btn-watch-video {
    width: 100%;
  }
}

/*--------------------------------------------------------------
# Boutons du reste du site : même forme en pilule
--------------------------------------------------------------*/
.about .btn-read-more,
.pricing .btn-buy,
.contact .php-email-form button[type=submit] {
  border-radius: 50px;
}

/*--------------------------------------------------------------
# Thème sombre pour tout le site
# Prolonge l'ambiance du hero : fond nuit, cartes en verre,
# lueurs rouges discrètes. Presque tout main.css passe par ces
# variables, il suffit donc de les redéfinir.
--------------------------------------------------------------*/
:root {
  --background-color: var(--edo-night);
  --default-color: #b8adad;
  --heading-color: #ffffff;
  --surface-color: #110909;
  --contrast-color: #ffffff;
  --nav-color: rgba(255, 255, 255, 0.82);
  --nav-hover-color: #ffffff;
  --nav-mobile-background-color: #0e0707;
  --nav-dropdown-background-color: #0e0707;
  --nav-dropdown-color: rgba(255, 255, 255, 0.82);
  --nav-dropdown-hover-color: var(--edo-red);
  --edo-glass: rgba(255, 255, 255, 0.03);
  --edo-glass-border: rgba(255, 255, 255, 0.08);
  color-scheme: dark;
}

.light-background {
  --background-color: #0b0505;
  --surface-color: #140a0a;
}

body {
  background-color: var(--edo-night);
}

::selection {
  background: color-mix(in srgb, var(--edo-red), transparent 50%);
  color: #fff;
}

/* Header des autres pages (ex. « Tout sur nous ») : verre dépoli sombre */
.header {
  --background-color: rgba(7, 3, 3, 0.72);
  --heading-color: #ffffff;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.scrolled .header {
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06);
}

.index-page .header {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.index-page.scrolled .header {
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

@media (max-width: 1199px) {
  .mobile-nav-active .navmenu {
    background: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(6px);
  }

  .mobile-nav-active .navmenu > ul {
    border: 1px solid var(--edo-glass-border);
    border-radius: 16px;
  }
}

/* Typo des titres alignée sur le hero */
h1, h2, h3, h4, h5, h6,
.section-title p {
  font-family: var(--edo-display-font);
  letter-spacing: -0.02em;
}

/* Sections : fond nuit + lueur rouge très douce en haut */
.main > .section:not(.hero) {
  position: relative;
  isolation: isolate;
  padding: clamp(60px, 9vw, 100px) 0;
}

.main > .section:not(.hero)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse 60% 320px at 50% 0, color-mix(in srgb, var(--edo-red), transparent 90%), transparent 70%);
}

/* Fine ligne lumineuse entre les sections */
.main > .section:not(.hero) + .section::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: min(720px, 80%);
  height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--edo-red), transparent 45%), transparent);
  pointer-events: none;
}

/* La section juste après le hero part du noir de la « planète » */
.hero + .section {
  background: linear-gradient(#000, var(--edo-night) 320px);
}

/* Titres de section : badge comme celui du hero + titre en dégradé */
.section-title h2 {
  font-family: var(--edo-display-font);
  font-weight: 500;
  letter-spacing: 0.08em;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--edo-glass-border);
  color: color-mix(in srgb, var(--edo-red), #fff 25%);
}

.section-title p {
  font-size: clamp(26px, 4vw, 42px);
  font-weight: 600;
  line-height: 1.15;
  background: linear-gradient(90deg, #ffffff 30%, rgba(255, 255, 255, 0.55));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Cartes génériques : verre sombre, bord fin, coins arrondis */
.values .card,
.stats .stats-item,
.pricing .pricing-tem,
.recent-posts .post-item,
.contact .info-item,
.contact .php-email-form,
.services .service-item,
.features .feature-box,
.testimonials .testimonial-item,
.team .team-member,
.blog-details .article,
.blog-author .author-container,
.comment-form form,
.widgets-container {
  background: var(--edo-glass);
  border: 1px solid var(--edo-glass-border);
  border-radius: 18px;
  box-shadow: none;
  transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;
}

.values .card:hover,
.stats .stats-item:hover,
.pricing .pricing-tem:hover,
.recent-posts .post-item:hover,
.contact .info-item:hover,
.services .service-item:hover,
.features .feature-box:hover {
  border-color: color-mix(in srgb, var(--edo-red), transparent 55%);
  box-shadow: 0 20px 60px -20px color-mix(in srgb, var(--edo-red), transparent 60%);
}

.values .card:hover,
.pricing .pricing-tem:hover {
  transform: translateY(-4px);
}

/* Promotion (about) */
.about .content {
  background: linear-gradient(160deg, color-mix(in srgb, var(--edo-red), transparent 88%), var(--edo-glass) 60%);
  border: 1px solid var(--edo-glass-border);
  border-radius: 18px 0 0 18px;
}

.about .content h3 {
  color: color-mix(in srgb, var(--edo-red), #fff 25%);
}

.about .col-lg-6 img {
  border-radius: 0 18px 18px 0;
}

@media (max-width: 991px) {
  .about .content,
  .about .col-lg-6 img {
    border-radius: 18px;
  }
}

.about .content .btn-read-more {
  box-shadow: 0 10px 30px color-mix(in srgb, var(--edo-red), transparent 60%);
}

/* Illustrations des valeurs (fond blanc) : vignette arrondie.
   .div_img_our_values a une hauteur fixe (250px) dans main.css */
.values .div_img_our_values {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  padding: 16px;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
}

.values .card img {
  padding: 0;
  max-height: 100%;
  object-fit: contain;
  transform: none;
}

.values .card:hover img {
  transform: scale(1.05);
}

/* Compteurs */
.stats .stats-item span {
  font-family: var(--edo-display-font);
}

/* Tarifs : la carte populaire est mise en avant */
.pricing .pricing-tem .price {
  color: #fff;
}

.pricing .pricing-tem .featured,
.pricing .featured {
  background: var(--edo-red);
}

.pricing .pricing-tem:has(.featured) {
  border-color: color-mix(in srgb, var(--edo-red), transparent 50%);
  background: linear-gradient(180deg, color-mix(in srgb, var(--edo-red), transparent 88%), var(--edo-glass) 55%);
}

.pricing .btn-buy {
  border-color: color-mix(in srgb, var(--edo-red), transparent 40%);
}

.pricing .btn-buy:hover {
  background: var(--edo-red);
  color: #fff;
}

/* FAQ */
.faq .faq-container .faq-item {
  border-color: var(--edo-glass-border);
}

.faq .faq-container .faq-active h3,
.faq .faq-container .faq-item h3:hover {
  color: color-mix(in srgb, var(--edo-red), #fff 20%);
}

/* Portfolio */
.portfolio .portfolio-filters li {
  padding: 6px 16px;
  border-radius: 50px;
  border: 1px solid transparent;
}

.portfolio .portfolio-filters li.filter-active,
.portfolio .portfolio-filters li:hover {
  border-color: color-mix(in srgb, var(--edo-red), transparent 55%);
  background: color-mix(in srgb, var(--edo-red), transparent 88%);
}

.portfolio .portfolio-item .portfolio-content {
  border-radius: 14px;
  border: 1px solid var(--edo-glass-border);
}

/* Articles récents */
.recent-posts .post-item {
  overflow: hidden;
}

.recent-posts .post-item .post-content {
  background: transparent;
}

/* Formulaires (contact, newsletter, commentaires) */
.form-control,
.contact .php-email-form input[type=text],
.contact .php-email-form input[type=email],
.contact .php-email-form textarea,
.comment-form form input,
.comment-form form textarea {
  background-color: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  color: #fff;
}

.form-control:focus,
.contact .php-email-form input:focus,
.contact .php-email-form textarea:focus {
  background-color: rgba(255, 255, 255, 0.06);
  border-color: var(--edo-red);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--edo-red), transparent 80%);
  color: #fff;
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.contact .info-item i,
.contact .info-item h3 {
  color: color-mix(in srgb, var(--edo-red), #fff 15%);
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.footer {
  background: linear-gradient(var(--edo-night), #000);
  border-top: 1px solid var(--edo-glass-border);
}

.footer .footer-newsletter {
  position: relative;
  background: radial-gradient(ellipse 60% 100% at 50% 0, color-mix(in srgb, var(--edo-red), transparent 85%), transparent 70%);
  border: 0;
  border-bottom: 1px solid var(--edo-glass-border);
}

.footer .footer-newsletter .newsletter-form {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50px;
  box-shadow: none;
}

.footer .footer-newsletter .newsletter-form input[type=email] {
  background: transparent;
  color: #fff;
  padding-left: 12px;
}

.footer .footer-newsletter .newsletter-form input[type=submit] {
  border-radius: 50px;
}

.footer .social-links a {
  border-radius: 50%;
  border-color: var(--edo-glass-border);
  color: rgba(255, 255, 255, 0.7);
}

.footer .social-links a:hover {
  border-color: var(--edo-red);
  color: #fff;
  background: color-mix(in srgb, var(--edo-red), transparent 80%);
}

.footer .copyright {
  border-top: 1px solid var(--edo-glass-border);
  padding-top: 25px;
}

/*--------------------------------------------------------------
# En-tête des pages secondaires : mini-hero dans l'esprit de l'accueil
--------------------------------------------------------------*/
.page-title {
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(ellipse 60% 90% at 50% 100%, color-mix(in srgb, var(--edo-red), transparent 75%), transparent 70%),
    var(--edo-night);
  border-bottom: 1px solid color-mix(in srgb, var(--edo-red), transparent 50%);
  box-shadow: 0 1px 30px color-mix(in srgb, var(--edo-red), transparent 70%);
}

.page-title::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 7px);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 40%, transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 40%, transparent);
  pointer-events: none;
}

.page-title .heading {
  border-top: 0;
  padding: clamp(120px, 16vw, 160px) 0 clamp(50px, 7vw, 80px);
}

.page-title .heading h1 {
  font-size: clamp(32px, 5vw, 52px);
  font-weight: 600;
  letter-spacing: -0.03em;
  background: linear-gradient(90deg, #ffffff 30%, rgba(255, 255, 255, 0.55));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.page-title nav {
  background: rgba(0, 0, 0, 0.35);
  border-top: 1px solid var(--edo-glass-border);
  font-family: var(--edo-display-font);
}

.blog-details .article img {
  border-radius: 14px;
}
