/* =========================================================
   LE CRACHIN NANTAIS — Feuille de style
   Palette : bleu pro
   ========================================================= */

:root{
  --primary:      #0a3d62;   /* bleu marine profond */
  --primary-dark: #06263e;
  --secondary:    #1e88e5;   /* bleu accent vif */
  --accent:       #ffb703;   
  --light:        #f3f7fb;
  --gray:         #64748b;
  --dark:         #0f2438;
  --white:        #ffffff;
  --radius:       14px;
  --shadow:       0 10px 30px rgba(10,61,98,.12);
  --transition:   all .25s ease;
}

*{ box-sizing:border-box; }

body{
  font-family:'Inter', system-ui, sans-serif;
  color:var(--dark);
  background:var(--white);
  line-height:1.65;
}

h1,h2,h3,h4,h5,h6{
  font-family:'Poppins', sans-serif;
  font-weight:700;
  color:var(--primary);
  margin-bottom:.75rem;
}

a{ text-decoration:none; color:inherit; }
img{ max-width:100%; display:block; }

.section{ padding:5rem 0; }
.section-sm{ padding:3rem 0; }
.bg-light-blue{ background:var(--light); }
.text-secondary-brand{ color:var(--secondary); }

.eyebrow{
  display:inline-block;
  font-family:'Poppins',sans-serif;
  font-weight:600;
  font-size:.8rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--secondary);
  background:rgba(30,136,229,.1);
  padding:.35rem .9rem;
  border-radius:50px;
  margin-bottom:1rem;
}

.lead-text{ color:var(--gray); font-size:1.08rem; }

/* ---------- Boutons ---------- */
.btn-brand{
  background:var(--secondary);
  color:var(--white);
  border:none;
  padding:.85rem 1.8rem;
  border-radius:50px;
  font-weight:600;
  font-family:'Poppins',sans-serif;
  transition:var(--transition);
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}
.btn-brand:hover{ background:var(--primary); color:var(--white); transform:translateY(-2px); }

.btn-brand-outline{
  background:transparent;
  color:var(--primary);
  border:2px solid var(--primary);
  padding:.8rem 1.8rem;
  border-radius:50px;
  font-weight:600;
  font-family:'Poppins',sans-serif;
  transition:var(--transition);
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}
.btn-brand-outline:hover{ background:var(--primary); color:var(--white); }

.btn-light-outline{
  background:var(--white);
  color:var(--primary);
  border:2px solid transparent;
  padding:.85rem 1.8rem;
  border-radius:50px;
  font-weight:600;
  font-family:'Poppins',sans-serif;
  transition:var(--transition);
}
.btn-light-outline:hover{ background:var(--accent); color:var(--primary-dark); }

.btn-call{
  background:var(--accent);
  color:var(--primary-dark) !important;
  border-radius:50px;
  padding:.55rem 1.2rem;
  font-weight:700;
  font-family:'Poppins',sans-serif;
  transition:var(--transition);
}
.btn-call:hover{ background:var(--primary); color:var(--white) !important; }

/* ---------- Topbar + Header ---------- */
.site-header{
  position:relative;
  overflow:hidden;
}
.header-cyclist{
  position:absolute;
  z-index:5;
  bottom:4%;
  left:-8%;
  color:var(--secondary);
  font-size:1.4rem;
  opacity:.8;
  pointer-events:none;
  filter:drop-shadow(0 2px 3px rgba(10,61,98,.35));
  animation:cyclist-ride 22s linear infinite;
}
@keyframes cyclist-ride{
  0%   { left:-8%;  transform:scaleX(1); }
  48%  { left:104%; transform:scaleX(1); }
  50%  { left:104%; transform:scaleX(-1); }
  98%  { left:-8%;  transform:scaleX(-1); }
  100% { left:-8%;  transform:scaleX(1); }
}
.header-cyclist-2{
  bottom:6%;
  font-size:1.2rem;
  opacity:.65;
  animation-name:cyclist-ride;
  animation-duration:17s;
  animation-delay:-6s;
}

.header-cargo{
  position:absolute;
  z-index:5;
  display:inline-flex;
  align-items:center;
  color:var(--primary-dark);
  font-size:1.35rem;
  opacity:.8;
  pointer-events:none;
  filter:drop-shadow(0 2px 3px rgba(10,61,98,.3));
}
.header-cargo .cargo-box{
  font-size:.6em;
  color:var(--accent);
  margin-right:-3px;
  transform:translateY(-7px);
}
.header-cargo-1{
  bottom:16%;
  left:-12%;
  animation:cargo-ride-1 30s linear infinite;
}
.header-cargo-2{
  bottom:22%;
  left:112%;
  font-size:1.15rem;
  opacity:.65;
  animation:cargo-ride-2 36s linear infinite;
  animation-delay:-16s;
}
@keyframes cargo-ride-1{
  0%   { left:-12%; transform:scaleX(1); }
  48%  { left:108%; transform:scaleX(1); }
  50%  { left:108%; transform:scaleX(-1); }
  98%  { left:-12%; transform:scaleX(-1); }
  100% { left:-12%; transform:scaleX(1); }
}
@keyframes cargo-ride-2{
  0%   { left:108%; transform:scaleX(-1); }
  48%  { left:-12%; transform:scaleX(-1); }
  50%  { left:-12%; transform:scaleX(1); }
  98%  { left:108%; transform:scaleX(1); }
  100% { left:108%; transform:scaleX(-1); }
}
.topbar{
  background:var(--primary-dark);
  color:#cfe3f5;
  font-size:.85rem;
  padding:.45rem 0;
}
.topbar-info span{ margin-right:1.5rem; }
.topbar-info i{ color:var(--secondary); margin-right:.35rem; }
.topbar-social a{
  color:#cfe3f5;
  margin-left:.9rem;
  transition:var(--transition);
}
.topbar-social a:hover{ color:var(--accent); }

.main-nav{
  background:var(--white);
  box-shadow:0 2px 12px rgba(10,61,98,.08);
  padding:.7rem 0;
}
.navbar-brand{
  display:flex;
  align-items:center;
  gap:.6rem;
}
.brand-mark{
  width:130px; height:130px;
  background:transparent;
  color:var(--white);
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem;
  overflow:hidden;
}
.brand-mark img{
  width:100%; height:100%;
  object-fit:cover;
}
.brand-text{
  font-family:'Poppins',sans-serif;
  font-weight:800;
  color:var(--primary);
  line-height:1.05;
  font-size:1.25rem;
}
.brand-text small{
  font-weight:600;
  letter-spacing:.12em;
  color:var(--secondary);
  font-size:.65rem;
}

.main-nav .nav-link{
  position:relative;
  overflow:visible;
  font-family:'Poppins',sans-serif;
  font-weight:600;
  font-size:1.1rem;
  color:var(--dark);
  padding:.5rem 1rem !important;
  border-radius:8px;
  transition:var(--transition);
}
.main-nav .nav-link:hover,
.main-nav .nav-link.active{
  color:var(--secondary);
  background:rgba(30,136,229,.08);
}

/* ---------- Effet "pluvieux" au survol du menu ---------- */
.main-nav .nav-link,
.main-nav .btn-call,
.brand-text{
  position:relative;
  overflow:visible;
}
.raindrop{
  position:absolute;
  top:100%;
  width:2px;
  height:9px;
  border-radius:2px;
  background:linear-gradient(to bottom, rgba(30,136,229,.9), rgba(30,136,229,0));
  pointer-events:none;
  z-index:20;
  animation-name:rain-fall;
  animation-timing-function:linear;
  animation-fill-mode:forwards;
}
@keyframes rain-fall{
  0%{ opacity:1; transform:translateY(0) scaleY(1); }
  85%{ opacity:.9; }
  100%{ opacity:0; transform:translateY(20px) scaleY(1.3); }
}
.rain-splash{
  position:absolute;
  top:100%;
  width:6px;
  height:6px;
  margin-left:-2px;
  border:1px solid rgba(30,136,229,.6);
  border-radius:50%;
  pointer-events:none;
  z-index:20;
  animation:rain-splash .35s ease-out forwards;
}
@keyframes rain-splash{
  0%{ opacity:.8; transform:translateY(16px) scale(.2); }
  100%{ opacity:0; transform:translateY(16px) scale(1.4); }
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background:linear-gradient(120deg, var(--primary) 0%, var(--primary-dark) 100%);
  color:var(--white);
  padding:6rem 0 8rem;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(30,136,229,.35), transparent 45%),
    radial-gradient(circle at 10% 90%, rgba(255,183,3,.18), transparent 40%);
}
.hero .container{ position:relative; z-index:2; }
.hero h1{
  color:var(--white);
  font-size:2.9rem;
  font-weight:800;
  line-height:1.15;
}
.hero h1 span{ color:var(--accent); }
.hero p.lead-text{ color:#dbe8f6; max-width:560px; }

.hero-badges{ margin-top:2rem; display:flex; flex-wrap:wrap; gap:1.5rem; }
.hero-badges .badge-item{
  display:flex; align-items:center; gap:.6rem;
  font-family:'Poppins',sans-serif; font-weight:600; font-size:.9rem;
}
.hero-badges .badge-item i{
  width:38px; height:38px;
  background:rgba(255,255,255,.12);
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  color:var(--accent);
}

.hero-visual{
  position:relative;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.15);
  border-radius:24px;
  padding:2.5rem;
  text-align:center;
  backdrop-filter:blur(6px);
}
.hero-visual i{ font-size:7rem; color:var(--accent); }
.hero-visual .stat-row{
  display:flex; justify-content:space-around; margin-top:2rem;
  border-top:1px solid rgba(255,255,255,.15); padding-top:1.5rem;
}
.hero-visual .stat-row strong{ display:block; font-family:'Poppins',sans-serif; font-size:1.6rem; color:var(--white); }
.hero-visual .stat-row span{ font-size:.8rem; color:#cfe3f5; }

.hero-wave{
  position:absolute; left:0; right:0; bottom:-1px; line-height:0;
}

/* ---------- Icon circles ---------- */
.icon-circle{
  width:64px; height:64px;
  background:rgba(30,136,229,.1);
  color:var(--secondary);
  border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem;
  margin-bottom:1.2rem;
  transition:var(--transition);
}

/* ---------- Service cards ---------- */
.service-card{
  background:var(--white);
  border-radius:var(--radius);
  padding:2rem;
  height:100%;
  box-shadow:var(--shadow);
  border:1px solid #eef2f7;
  transition:var(--transition);
}
.service-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 40px rgba(10,61,98,.18);
}
.service-card:hover .icon-circle{
  background:var(--secondary);
  color:var(--white);
}
.service-card h3{ font-size:1.15rem; }
.service-card p{ color:var(--gray); font-size:.95rem; }
.service-card .card-link{
  font-family:'Poppins',sans-serif;
  font-weight:600;
  color:var(--secondary);
  font-size:.9rem;
}

.service-detail{
  scroll-margin-top:110px;
  padding:4rem 0;
  border-bottom:1px solid #eef2f7;
}
.service-detail:last-child{ border-bottom:none; }
.service-detail .icon-circle{ width:80px; height:80px; font-size:2rem; }

/* ---------- Why us ---------- */
.feature-item{ display:flex; gap:1.1rem; margin-bottom:1.8rem; }
.feature-item .icon-circle{ flex:none; margin-bottom:0; }
.feature-item h4{ font-size:1.05rem; margin-bottom:.35rem; }
.feature-item p{ color:var(--gray); font-size:.92rem; margin:0; }

/* ---------- Steps ---------- */
.step-item{ text-align:center; position:relative; }
.step-number{
  width:56px; height:56px;
  margin:0 auto 1rem;
  background:var(--primary);
  color:var(--white);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Poppins',sans-serif; font-weight:700; font-size:1.2rem;
}

/* ---------- Testimonials ---------- */
.testimonial-card{
  background:var(--light);
  border-radius:var(--radius);
  padding:1.8rem;
  height:100%;
  border:1px solid #e7edf5;
}
.testimonial-card i.fa-quote-left{ color:var(--secondary); font-size:1.4rem; margin-bottom:.8rem; }
.testimonial-card p{ color:var(--dark); font-size:.95rem; }
.testimonial-author{ font-family:'Poppins',sans-serif; font-weight:700; color:var(--primary); margin-top:1rem; }
.testimonial-author small{ display:block; color:var(--gray); font-weight:400; }

/* ---------- Compteur de livraisons ---------- */
.counter-section{ padding-top:2rem; }
.counter-card{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  border-radius:28px;
  padding:2.8rem 3rem;
  box-shadow:var(--shadow);
}
.counter-card::before{
  content:'';
  position:absolute;
  top:-60px; right:-60px;
  width:220px; height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,183,3,.18) 0%, rgba(255,183,3,0) 70%);
}
.counter-card::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:0;
  height:3px;
  background:repeating-linear-gradient(90deg, var(--accent) 0 18px, transparent 18px 32px);
  opacity:.55;
}
.counter-cyclist{
  position:absolute;
  z-index:1;
  bottom:8px;
  left:-8%;
  color:rgba(255,255,255,.32);
  font-size:1.15rem;
  pointer-events:none;
  animation:cyclist-ride 14s linear infinite;
}
.counter-cyclist-2{
  bottom:16px;
  font-size:.85rem;
  color:rgba(255,183,3,.4);
  animation-duration:19s;
  animation-delay:-7s;
}
.counter-live{
  position:absolute; top:1.6rem; right:2rem;
  display:flex; align-items:center; gap:.5rem;
  font-family:'Poppins',sans-serif; font-weight:600; font-size:.78rem;
  letter-spacing:.04em; text-transform:uppercase;
  color:#cfe3f5;
}
.counter-live-dot{
  width:9px; height:9px; border-radius:50%;
  background:#3ddc84;
  box-shadow:0 0 0 rgba(61,220,132,.6);
  animation:counterPulse 1.8s infinite;
}
@keyframes counterPulse{
  0%   { box-shadow:0 0 0 0 rgba(61,220,132,.55); }
  70%  { box-shadow:0 0 0 9px rgba(61,220,132,0); }
  100% { box-shadow:0 0 0 0 rgba(61,220,132,0); }
}
.counter-body{
  position:relative;
  display:flex; align-items:center; gap:1.8rem;
  flex-wrap:wrap;
}
.counter-icon{
  flex:none;
  width:84px; height:84px;
  border-radius:22px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center;
  font-size:2.2rem;
  color:var(--accent);
}
.counter-number{
  font-family:'Poppins',sans-serif; font-weight:700;
  font-size:clamp(2.6rem, 5vw, 3.8rem);
  line-height:1;
  color:var(--white);
}
.counter-label{
  margin:.4rem 0 0;
  color:#cfe3f5;
  font-size:1rem;
}
.counter-since{
  position:relative;
  margin:1.6rem 0 0;
  padding-top:1.3rem;
  border-top:1px solid rgba(255,255,255,.15);
  color:#a9c4dd;
  font-size:.85rem;
}
.counter-since strong{ color:var(--accent); font-weight:600; }
@media (max-width:576px){
  .counter-card{ padding:2.2rem 1.6rem; }
  .counter-live{ position:static; margin-bottom:1rem; }
  .counter-body{ gap:1.2rem; }
}

/* ---------- CTA band ---------- */
.cta-band{
  background:linear-gradient(120deg, var(--primary) 0%, var(--secondary) 100%);
  color:var(--white);
  border-radius:24px;
  padding:3rem;
}
.cta-band h2{ color:var(--white); }

/* ---------- Pricing ---------- */
.pricing-card{
  background:var(--white);
  border-radius:var(--radius);
  border:1px solid #eef2f7;
  box-shadow:var(--shadow);
  padding:2.2rem;
  height:100%;
  position:relative;
  transition:var(--transition);
}
.pricing-card.featured{
  border:2px solid var(--secondary);
  transform:scale(1.03);
}
.pricing-card.featured::before{
  content:"Le plus demandé";
  position:absolute;
  top:-14px; left:50%; transform:translateX(-50%);
  background:var(--accent);
  color:var(--primary-dark);
  font-family:'Poppins',sans-serif;
  font-weight:700;
  font-size:.75rem;
  padding:.35rem 1rem;
  border-radius:50px;
  white-space:nowrap;
}
.pricing-card h3{ font-size:1.1rem; }
.pricing-price{
  font-family:'Poppins',sans-serif;
  font-weight:800;
  font-size:2.2rem;
  color:var(--primary);
  margin:.6rem 0;
}
.pricing-price span{ font-size:.95rem; font-weight:500; color:var(--gray); }
.pricing-card ul{ list-style:none; padding:0; margin:1.2rem 0; }
.pricing-card ul li{ padding:.4rem 0; font-size:.92rem; color:var(--dark); }
.pricing-card ul li i{ color:var(--secondary); margin-right:.5rem; }

.pricing-table{ width:100%; border-collapse:separate; border-spacing:0; }
.pricing-table th, .pricing-table td{
  padding:1rem 1.2rem;
  border-bottom:1px solid #eef2f7;
}
.pricing-table thead th{
  font-family:'Poppins',sans-serif;
  background:var(--primary);
  color:var(--white);
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.pricing-table thead th:first-child{ border-top-left-radius:12px; }
.pricing-table thead th:last-child{ border-top-right-radius:12px; }
.pricing-table tbody tr:hover{ background:var(--light); }

.note-box{
  background:#fff8e6;
  border:1px solid #ffe6a8;
  border-radius:var(--radius);
  padding:1.2rem 1.5rem;
  font-size:.92rem;
  color:#7a5b00;
}

/* ---------- FAQ ---------- */
.faq-item{
  border:1px solid #eef2f7;
  border-radius:12px;
  margin-bottom:.9rem;
  overflow:hidden;
}
.faq-question{
  background:var(--white);
  padding:1.1rem 1.4rem;
  font-family:'Poppins',sans-serif;
  font-weight:600;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.faq-question i{ transition:var(--transition); color:var(--secondary); }
.faq-item.open .faq-question i{ transform:rotate(45deg); }
.faq-answer{
  max-height:0;
  overflow:hidden;
  transition:max-height .3s ease;
  padding:0 1.4rem;
  color:var(--gray);
  font-size:.92rem;
}
.faq-item.open .faq-answer{ padding:0 1.4rem 1.2rem; }

/* ---------- Contact ---------- */
.contact-info-card{
  background:var(--primary);
  color:var(--white);
  border-radius:var(--radius);
  padding:2.2rem;
}
.contact-info-card h3{ color:var(--white); }
.contact-info-row{ display:flex; gap:1rem; margin-bottom:1.4rem; }
.contact-info-row i{
  width:42px; height:42px; flex:none;
  background:rgba(255,255,255,.12);
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  color:var(--accent);
}
.contact-info-row a, .contact-info-row span{ color:#dbe8f6; font-size:.92rem; }

.contact-form-card{
  background:var(--white);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:2.2rem;
  border:1px solid #eef2f7;
}
.form-control, .form-select{
  border-radius:10px;
  border:1px solid #dbe4ee;
  padding:.7rem 1rem;
  font-size:.95rem;
}
.form-control:focus, .form-select:focus{
  border-color:var(--secondary);
  box-shadow:0 0 0 .2rem rgba(30,136,229,.15);
}
.form-label{ font-weight:600; font-family:'Poppins',sans-serif; font-size:.88rem; color:var(--dark); }
.honeypot-field{ position:absolute; left:-9999px; opacity:0; }

#formFeedback{ border-radius:10px; padding:1rem 1.2rem; font-size:.92rem; display:none; }
#formFeedback.success{ display:block; background:#e7f7ee; color:#166534; border:1px solid #bbf0d0; }
#formFeedback.error{ display:block; background:#fde8e8; color:#b91c1c; border:1px solid #f9c2c2; }

.map-frame{
  position:relative;
  height:480px;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid #eef2f7;
  box-shadow:var(--shadow);
}
.map-frame iframe{
  position:absolute;
  top:-80px;
  left:0;
  width:100%;
  height:calc(100% + 80px);
  border:0;
}

/* ---------- Footer ---------- */
.footer-cta{ background:var(--secondary); color:var(--white); padding:2.2rem 0; }
.footer-cta h3{ color:var(--white); margin:0; font-size:1.3rem; }

.footer-main{ position:relative; overflow:hidden; background:var(--primary-dark); color:#c6d8ea; padding:3.5rem 0 2rem; }
.footer-main h6{ color:var(--white); font-family:'Poppins',sans-serif; margin-bottom:1.1rem; text-transform:uppercase; font-size:.8rem; letter-spacing:.08em; }
.footer-brand{ display:inline-flex; flex-direction:column; font-size:1.2rem; color:var(--white); margin-bottom:.5rem; }
.footer-brand small{ color:var(--secondary); letter-spacing:.12em; font-size:.65rem; }
.footer-links{ list-style:none; padding:0; margin:0; }
.footer-links li{ margin-bottom:.6rem; font-size:.9rem; }
.footer-links a{ color:#c6d8ea; transition:var(--transition); }
.footer-links a:hover{ color:var(--accent); }
.footer-links i{ color:var(--secondary); margin-right:.4rem; width:16px; }
.footer-social a{
  width:38px; height:38px;
  background:rgba(255,255,255,.08);
  border-radius:8px;
  display:inline-flex; align-items:center; justify-content:center;
  margin-right:.5rem; color:var(--white);
  transition:var(--transition);
}
.footer-social a:hover{ background:var(--secondary); }

.footer-bottom{
  background:#051826;
  color:#89a2ba;
  font-size:.82rem;
  padding:1rem 0;
}
.footer-legal a{ color:#89a2ba; }
.footer-legal a:hover{ color:var(--accent); }

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in-view{ opacity:1; transform:translateY(0); }

/* ---------- Responsive ---------- */
@media (max-width: 991.98px){
  .hero{ padding:4rem 0 5rem; text-align:center; }
  .hero p.lead-text{ margin-left:auto; margin-right:auto; }
  .hero-badges{ justify-content:center; }
  .hero-visual{ margin-top:2.5rem; }
  .pricing-card.featured{ transform:none; }
}

@media (max-width: 575.98px){
  .hero h1{ font-size:2.1rem; }
  .section{ padding:3.5rem 0; }
  .cta-band{ padding:2rem; text-align:center; }
}
