:root{
  --brand:#0d6efd;
  --brand2:#198754;
  --ink:#0f172a;
}

body{ color:var(--ink); background:#f7f8fb; }

.brand-dot{
  width:10px;height:10px;border-radius:50%;
  background: linear-gradient(135deg, var(--brand), var(--brand2));
  display:inline-block;
}

.hero{
  border-radius:18px;
  padding:3rem 1.5rem;
  background: linear-gradient(135deg, rgba(13,110,253,.12), rgba(25,135,84,.10));
  box-shadow: 0 10px 30px rgba(15,23,42,.06);
}

.card-soft{
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  box-shadow: 0 6px 18px rgba(15,23,42,.05);
}

.badge-soft{
  background: rgba(13,110,253,.10);
  color: #0b3d91;
  border: 1px solid rgba(13,110,253,.15);
}

/* ===== Carousel ===== */
.carousel-img{
  height: 520px;
  object-fit: cover;
  transform: scale(1.02);
}
.carousel-overlay{
  position:absolute; inset:0;
  background:
    radial-gradient(1200px 600px at 15% 80%, rgba(0,0,0,.58), rgba(0,0,0,0)),
    linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.08));
  z-index: 1;
}
.carousel-caption{
  z-index: 2;
  left: 0; right: 0; bottom: 0;
  padding: 2.25rem 2rem 2.4rem;
}
.carousel-caption h2, .carousel-caption p{ text-shadow: 0 6px 18px rgba(0,0,0,.35); }

.trust-pill{
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  padding:1rem 1.1rem;
  box-shadow: 0 6px 18px rgba(15,23,42,.05);
}
.trust-pill-title{ font-weight:700; }
.trust-pill-sub{ color:#6c757d; font-size:.9rem; }

@media (max-width: 992px){
  .carousel-img{ height: 360px; transform:none; }
  .carousel-caption{ padding: 1.35rem 1.15rem 1.5rem; }
  .carousel-caption .lead{ font-size:1rem; }
}

/* ===== Navbar Pro ===== */
.navbar-pro{ backdrop-filter: blur(8px); }
.brand-logo{ width: 138px; height: 50px; object-fit: contain; }
.brand-name{ font-weight: 800; letter-spacing: .2px; font-size: 1.02rem; }
.brand-tagline{ font-size: .78rem; }
.navbar-pro .nav-link{
  font-weight: 600;
  color: #111827;
  border-radius: 999px;
  padding: .45rem .9rem;
}
.navbar-pro .nav-link:hover{ background: rgba(13,110,253,.08); }
.navbar-pro .nav-link.active{
  color: #0d6efd;
  background: rgba(13,110,253,.12);
}
.btn-cta{ border-radius: 999px; padding: .45rem .9rem; }
.lang-switch .btn{ border-radius: 999px; }
.lang-switch .btn:first-child{ border-top-right-radius: 0; border-bottom-right-radius: 0; }
.lang-switch .btn:last-child{ border-top-left-radius: 0; border-bottom-left-radius: 0; }

/* ===== CTA band ===== */
.cta-band{
  background: linear-gradient(135deg, rgba(13,110,253,.12), rgba(25,135,84,.10));
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  padding:1.4rem 1.4rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}
.cta-title{ font-weight:800; font-size:1.25rem; }
.cta-sub{ color:#6c757d; }

/* ===== Value hero (base) ===== */
.value-hero{
  background: linear-gradient(135deg, rgba(13,110,253,.10), rgba(25,135,84,.08));
}

/* ===== Creative Value Hero (NEW) ===== */
.value-hero--creative{
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(900px 220px at 20% 0%, rgba(13,110,253,.18), transparent 60%),
    radial-gradient(900px 240px at 90% 20%, rgba(25,135,84,.14), transparent 60%),
    linear-gradient(135deg, rgba(15,23,42,.04), rgba(15,23,42,.00));
  border: 1px solid rgba(15,23,42,.08);
}

/* light grid overlay */
.value-hero--creative::before{
  content:"";
  position:absolute;
  inset:-2px;
  background-image:
    linear-gradient(to right, rgba(15,23,42,.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(15,23,42,.06) 1px, transparent 1px);
  background-size: 36px 36px;
  opacity: .22;
  pointer-events:none;
  mask-image: radial-gradient(closest-side at 30% 20%, rgba(0,0,0,.85), rgba(0,0,0,.15), transparent 70%);
}

.value-hero--creative > *{ position: relative; z-index: 1; }

/* Kicker */
.value-kicker{
  display:flex;
  align-items:center;
  gap:.55rem;
  margin-bottom:.6rem;
}
.value-dot{
  width:10px; height:10px;
  border-radius:999px;
  background: rgba(13,110,253,.95);
  box-shadow: 0 0 0 6px rgba(13,110,253,.12);
}
.value-dot--green{
  background: rgba(25,135,84,.95);
  box-shadow: 0 0 0 6px rgba(25,135,84,.12);
}
.value-kicker-text{ font-weight: 800; letter-spacing: .2px; color: #111827; }

.value-title{ letter-spacing: -.2px; }
.value-lead{ font-size: 1.02rem; line-height: 1.65; }

/* Pillars */
.value-pillars{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:.75rem;
  margin-top: 1rem;
}
.pillar{
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius: 16px;
  padding: .85rem .95rem;
  box-shadow: 0 6px 18px rgba(15,23,42,.05);
}
.pillar-ttl{ font-weight: 900; }
.pillar-sub{ color:#6c757d; font-size: .92rem; margin-top:.15rem; }

@media (max-width: 992px){
  .value-pillars{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 576px){
  .value-pillars{ grid-template-columns: 1fr; }
}

/* ===== Counters ===== */
.counter-card{
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  padding:.9rem 1rem;
  box-shadow: 0 6px 18px rgba(15,23,42,.05);
}
.counter-number{
  font-weight: 900;
  font-size: 1.5rem;
  letter-spacing: -.2px;
  color:#111827;
}
.counter-label{
  margin-top:.1rem;
  color:#6c757d;
  font-weight: 700;
  font-size: .9rem;
}

/* ===== Deliverables panel + chart ===== */
.deliverable-panel{
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  border-radius: 18px;
  padding: 1rem 1.1rem;
  box-shadow: 0 10px 28px rgba(15,23,42,.08);
}

/* upgraded */
.deliverable-panel--creative{
  border:1px solid rgba(15,23,42,.10);
  box-shadow: 0 18px 40px rgba(15,23,42,.10);
  background:
    radial-gradient(600px 240px at 60% 0%, rgba(13,110,253,.10), transparent 55%),
    #fff;
}

.dl-chips{ display:flex; flex-wrap:wrap; gap:.45rem; }
.dl-chip{
  font-size:.78rem;
  font-weight:700;
  padding:.35rem .55rem;
  border-radius:999px;
  background: rgba(15,23,42,.06);
  border:1px solid rgba(15,23,42,.08);
  color:#111827;
}

.dl-chart{ display:flex; flex-direction:column; gap:.6rem; }
.dl-row{ display:flex; align-items:center; gap:.75rem; }
.dl-label{ width: 42%; font-size:.86rem; color:#111827; font-weight:600; }
.dl-bar{
  width: 58%;
  height: 10px;
  border-radius: 999px;
  background: rgba(15,23,42,.08);
  overflow: hidden;
}
.dl-bar span{
  display:block;
  height:100%;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(13,110,253,.85), rgba(25,135,84,.85));
}

.dl-foot{ display:flex; gap:.75rem; flex-wrap:wrap; }
.dl-foot-item{
  flex:1 1 160px;
  background: rgba(15,23,42,.04);
  border:1px solid rgba(15,23,42,.08);
  border-radius: 14px;
  padding: .65rem .75rem;
}
.dl-foot-k{ font-size:.78rem; color:#6c757d; font-weight:700; }
.dl-foot-v{ font-weight: 800; color:#111827; }

@media (max-width: 992px){
  .dl-label{ width: 46%; }
  .dl-bar{ width: 54%; }
}

/* ===== Quality title lines (SEMAC/IAS fix) ===== */
.quality-title{ line-height: 1.15; }
.quality-line1{ font-weight: 900; }
.quality-line2{ font-size: .88rem; color:#6c757d; margin-top: .15rem; }

/* ===== Quality marquee slider (NEW) ===== */
.quality-marquee{
  background:
    radial-gradient(700px 240px at 10% 0%, rgba(13,110,253,.10), transparent 55%),
    #fff;
}

.quality-track{
  display:flex;
  gap: 1rem;
  overflow: hidden;
  position: relative;
  border-radius: 16px;
}

.quality-strip{
  display:flex;
  align-items: stretch;
  gap: .9rem;
  min-width: max-content;
  animation: qualityScroll 22s linear infinite;
}

.quality-track.is-paused .quality-strip{ animation-play-state: paused; }

@keyframes qualityScroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

.quality-item{
  width: 260px;
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  border-radius: 16px;
  padding: .8rem;
  display:flex;
  align-items:center;
  gap:.75rem;
  text-decoration:none;
  color: inherit;
  transition: transform .15s ease, box-shadow .15s ease;
}
.quality-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(15,23,42,.10);
}

.quality-item img{
  width: 96px;
  height: 56px;
  object-fit: contain;
  flex: 0 0 auto;
}

.quality-item-text{ min-width: 0; }

@media (prefers-reduced-motion: reduce){
  .quality-strip{ animation: none; }
}
@media (max-width: 576px){
  .quality-item{ width: 220px; }
}

/* ===== Interlab ===== */
.interlab-card{
  background:
    radial-gradient(700px 220px at 20% 0%, rgba(25,135,84,.12), transparent 55%),
    #fff;
}

.interlab-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
}

.interlab-grid--labels{
  grid-template-columns: repeat(2, 1fr);
  gap: .9rem;
}

.interlab-item{
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  border-radius: 14px;
  padding: .75rem;
  display:flex;
  align-items:center;
  justify-content:center;
  transition: transform .15s ease, box-shadow .15s ease;
  text-decoration:none;
}
.interlab-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(15,23,42,.10);
}
.interlab-item img{
  max-height: 74px;
  max-width: 100%;
  object-fit: contain;
}
.interlab-item--label{ flex-direction: column; gap: .4rem; }
.interlab-name{
  font-size:.86rem;
  font-weight: 900;
  color:#111827;
  opacity: .85;
}

@media (max-width: 992px){
  .interlab-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 576px){
  .interlab-grid--labels{ grid-template-columns: 1fr; }
}
/* ===== Footer simple (style comme ton exemple) ===== */
.footer-simple{ background:#fff; border-top:1px solid rgba(15,23,42,.10); }

.footer-infobar{
  background:#fff;
  padding: .95rem 0;
}

.foot-item{
  display:flex;
  gap:.75rem;
  align-items:flex-start;
}

.foot-ico{
  width:38px; height:38px;
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(13,110,253,.08);
  border:1px solid rgba(13,110,253,.14);
  color: var(--brand, #0d6efd);
  flex: 0 0 auto;
}

.foot-txt{ color: var(--ink, #0f172a); line-height:1.35; }
.foot-line{ font-size:.95rem; }

.foot-link{
  display:inline-block;
  font-weight:800;
  color: var(--ink, #0f172a);
  text-decoration:none;
  margin-top:.35rem;
}
.foot-link:hover{ text-decoration: underline; color: var(--brand, #0d6efd); }

.footer-mini{
  border-top:1px solid rgba(15,23,42,.08);
  background:#fbfcff;
}
.footer-mini-link{
  color:#6c757d;
  text-decoration:none;
  font-weight:700;
}
.footer-mini-link:hover{ text-decoration: underline; color:#0d6efd; }
/* =========================================================
   ABOUT.PHP — Bloc "Accréditations & références" (LIGHT)
   Cible exactement ton HTML: .quality-card/.quality-logo-wrap/.quality-title...
   À ajouter dans public/assets/css/app.css
========================================================= */

/* Section (optionnel) : respiration + séparation douce */
.about-accred{
  padding-top: .25rem;
}

/* Card cliquable */
.quality-card{
  position: relative;
  overflow: hidden;
  border-radius: 18px;              /* un peu + premium */
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

/* léger glow (sans forcer) */
.quality-card::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(520px 180px at 20% 0%, rgba(13,110,253,.12), transparent 55%),
    radial-gradient(520px 180px at 90% 15%, rgba(25,135,84,.10), transparent 60%);
  opacity: .9;
  pointer-events:none;
  z-index: 0;
}

/* Contenu au-dessus du glow */
.quality-card > *{ position: relative; z-index: 1; }

.quality-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(15,23,42,.12);
  border-color: rgba(13,110,253,.18);
}

/* Wrap logo */
.quality-logo-wrap{
  height: 106px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: .35rem .5rem;
}

/* Logo */
.quality-logo{
  max-height: 80px;
  max-width: 100%;
  object-fit: contain;
  filter: saturate(1.03);
}

/* Titre sur 2 lignes (fix SEMAC/IAS sans <br>) */
.quality-title{
  line-height: 1.15;
}
.quality-line1{
  font-weight: 900;
  color:#111827;
  letter-spacing: -.2px;
}
.quality-line2{
  font-size: .9rem;
  color:#6c757d;
  margin-top: .15rem;
}

/* Le "bouton" span en bas : style + effet au hover de la card */
.quality-card .btn{
  border-radius: 999px;
  padding: .45rem .9rem;
  font-weight: 800;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.quality-card:hover .btn{
  background: rgba(13,110,253,.08);
  border-color: rgba(13,110,253,.35);
  color: #0b3d91;
}

/* Focus clavier (accessibilité) */
.quality-card:focus,
.quality-card:focus-visible{
  outline: none;
  box-shadow: 0 0 0 .25rem rgba(13,110,253,.25), 0 14px 34px rgba(15,23,42,.10);
}

/* Grille: sur mobile on garde lisible */
@media (max-width: 576px){
  .quality-logo-wrap{ height: 74px; }
  .quality-logo{ max-height: 66px; }
  .quality-line1{ font-size: .98rem; }
  .quality-line2{ font-size: .86rem; }
}
/* ===== Agronomy gallery (4 photos) ===== */
.service-gallery{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
}
.sg-item{
  border-radius: 16px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.08);
  box-shadow: 0 8px 18px rgba(15,23,42,.06);
  background:#fff;
}
.sg-item img{
  width:100%;
  height: 115px;
  object-fit: cover;
  display:block;
}

.sg-itemsol img{
  width:100%;
  height: 265px;
  object-fit: cover;
  display:block;
}

@media (max-width: 992px){
  .service-gallery{ grid-template-columns: repeat(2, 1fr); }
  .sg-item img{ height: 120px; }
}
@media (max-width: 576px){
  .service-gallery{ grid-template-columns: 1fr; }
  .sg-item img{ height: 160px; }
}

/* ===== Service blocks (thumb + content) ===== */
.service-block-thumb{
  width: 100px;
  height: 350px;
  flex: 0 0 auto;
  border-radius: 16px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
}
.service-block-thumb img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}
/* ===== Service gallery (masonry) ===== */
.service-gallery-masonry{
  display:grid;
  grid-template-columns: 1.25fr 1fr;
  gap:.75rem;
}
.service-gallery-masonry .sgm{
  width:100%;
  height:130px;
  object-fit:cover;
  border-radius:16px;
  border:1px solid rgba(15,23,42,.10);
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
  background:#fff;
  display:block;
}
.service-gallery-masonry .sgm--big{
  grid-row: span 3;
  height: 420px;
}
@media (max-width: 992px){
  .service-gallery-masonry{ grid-template-columns: 1fr 1fr; }
  .service-gallery-masonry .sgm--big{
    grid-row:auto; grid-column: 1 / -1; height: 260px;
  }
}
@media (max-width: 576px){
  .service-gallery-masonry{ grid-template-columns: 1fr; }
  .service-gallery-masonry .sgm{ height: 190px; }
  .service-gallery-masonry .sgm--big{ height: 220px; }
}
.service-block-thumb{
  width: 92px; height: 92px; flex:0 0 auto;
  border-radius: 16px; overflow:hidden;
  border:1px solid rgba(15,23,42,.10);
  background:#fff;
  box-shadow: 0 10px 22px rgba(15,23,42,.06);
}
.service-block-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
/* Flags (no external library) */
.flag{
  width:22px;
  height:16px;
  border-radius:3px;
  display:inline-block;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.12);
  background-size:cover;
  background-position:center;
  flex:0 0 auto;
}

/* France */
.flag-fr{
  background:
    linear-gradient(90deg,#0055A4 0 33.33%,#FFFFFF 33.33% 66.66%,#EF4135 66.66% 100%);
}

/* UK (simple) */
.flag-gb{
  background:
    linear-gradient(0deg, transparent 42%, #fff 42% 58%, transparent 58%),
    linear-gradient(90deg, transparent 42%, #fff 42% 58%, transparent 58%),
    linear-gradient(0deg, transparent 45%, #cf142b 45% 55%, transparent 55%),
    linear-gradient(90deg, transparent 45%, #cf142b 45% 55%, transparent 55%),
    linear-gradient(135deg, transparent 46%, #fff 46% 54%, transparent 54%),
    linear-gradient(45deg, transparent 46%, #fff 46% 54%, transparent 54%),
    linear-gradient(135deg, transparent 48%, #cf142b 48% 52%, transparent 52%),
    linear-gradient(45deg, transparent 48%, #cf142b 48% 52%, transparent 52%),
    #012169;
}
#latestNewsCarousel .card{
  border: 1px solid rgba(0,0,0,.08);
}
#latestNewsCarousel .carousel-indicators button{
  width: 10px; height: 10px;
  border-radius: 999px;
}
