:root{--bg:#070b14;--text:#eaf0ff;--muted:rgba(234,240,255,.72);--line:rgba(234,240,255,.12);--brand:#2f6bff;--brand2:#7aa3ff;--shadow:0 18px 50px rgba(0,0,0,.40);--radius:18px}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--text);background:radial-gradient(1200px 520px at 15% 0%, rgba(47,107,255,.20), transparent 60%),radial-gradient(1200px 520px at 85% 10%, rgba(122,163,255,.10), transparent 65%),linear-gradient(180deg,#050814 0%,#070b14 55%,#050814 100%);line-height:1.5}
a{color:inherit;text-underline-offset:3px}.container{width:min(1120px,92vw);margin:0 auto}
header{position:sticky;top:0;z-index:50;background:rgba(6,10,22,.70);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;padding:9px 11px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.12);box-shadow:0 10px 28px rgba(0,0,0,.32)}
.brand-badge{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(47,107,255,1),rgba(122,163,255,1));color:#06102a;font-weight:1000;font-size:13px}
.brand-text strong{display:block;font-size:13px}.brand-text span{display:block;font-size:11px;color:var(--muted);font-weight:800}

/* Logo image (Header) */
.brand-logo{padding:8px 12px}
.logo-header{height:44px;width:auto;display:block}
@media(max-width:720px){.logo-header{height:34px}}
nav ul{list-style:none;padding:0;margin:0;display:flex;gap:18px;align-items:center}
nav a{font-size:13px;font-weight:900;text-decoration:none;color:rgba(234,240,255,.90)}nav a:hover{color:#fff}nav a[aria-current="page"]{color:#fff;text-decoration:underline}
.nav-cta{padding:10px 12px;background:linear-gradient(135deg,rgba(47,107,255,1),rgba(122,163,255,1));color:#06102a;border-radius:14px;border:1px solid rgba(255,255,255,.12);font-weight:1000}
.mobile-menu{display:none}

/* Mobile burger menu */
.burger-btn{display:none}

@media(max-width:860px){
  /* On mobile : burger + CTA, menu en overlay */
  .mobile-menu{display:flex;align-items:center;gap:10px}
  .burger-btn{
    display:inline-flex;
    width:44px;height:44px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.06);
    box-shadow:0 8px 20px rgba(0,0,0,.35);
    align-items:center;justify-content:center;flex-direction:column;gap:3px;
    cursor:pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .burger-btn span{
    display:block;
    width:18px;height:2px;
    background:rgba(255,255,255,.88);
    border-radius:2px;
    margin:0;
    transition:transform .22s ease, opacity .22s ease;
  }
  body.nav-open .burger-btn span:nth-child(1){transform:translateY(5px) rotate(45deg)}
  body.nav-open .burger-btn span:nth-child(2){opacity:0}
  body.nav-open .burger-btn span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

  /* Hide desktop inline nav */
  .main-nav{display:block}
  .main-nav ul{margin:0;padding:0;list-style:none}

  /* Overlay */
  .main-nav{
    position:fixed;
    inset:0;
    padding:84px 16px 16px;
    display:flex;
    justify-content:center;
    /* Darken a lot for readability on iOS */
    background:rgba(4, 6, 14, .98);
    /* blur can reduce contrast on some mobiles, so keep it light */
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    opacity:0;
    pointer-events:none;
    transition:opacity .22s ease;
    z-index:999;
  }

  /* Extra dark layer so the menu stays readable on bright hero images */
  .main-nav::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.72);
    pointer-events:none;
  }

  .main-nav ul{position:relative; z-index:1;}
  body.nav-open{overflow:hidden}
  body.nav-open .main-nav{opacity:1;pointer-events:auto}

  .main-nav ul{
    width:min(340px, 92vw);
    background:#0b1020;
    border:1px solid rgba(255,255,255,.12);
    border-radius:18px;
    padding:16px;
    display:flex;
    flex-direction:column;
    gap:10px;
    box-shadow:0 16px 40px rgba(0,0,0,.55);
  }
  .main-nav a{
    display:flex;
    justify-content:center;
    align-items:center;text-align:center;
    padding:12px 12px;
    border-radius:14px;border:1px solid rgba(255,255,255,.10);
    background:#141b30;
    color:#fff;
    font-weight:700;
    text-shadow:0 2px 18px rgba(0,0,0,.75);
  }
  .main-nav a:hover{background:rgba(255,255,255,.12)}
  .main-nav .nav-cta{
    background:linear-gradient(135deg, rgba(54, 120, 255, 1), rgba(2,163,255,1));
    color:#06102a;
  }

  /* Mobile menu: full-width bands for links */
  .main-nav{
    justify-content: flex-start;
    align-items: flex-start;
    padding-top: 96px;
  }
  .main-nav ul{
    width: 100%;
    max-width: 100%;
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    gap: 0;
    margin: 0;
  }
  .main-nav li{width:100%;}
  .main-nav a{
    width: 100%;
    background: rgba(10, 16, 32, 0.82);
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,.08);
    border-radius: 0;
    padding: 16px 18px;
    text-align: center;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: .2px;
  }
  .main-nav a:hover{
    background: rgba(10, 16, 32, 0.92);
  }
  body.nav-open .main-nav{
    background: rgba(0,0,0,.72);
    backdrop-filter: blur(10px);
  }

}
.hero{padding:42px 0 18px;border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:26px;align-items:start}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}}
h1{margin:0;font-size:clamp(28px,4.2vw,48px);line-height:1.06;letter-spacing:-.035em;color:#f3f6ff}

/* Hero title line-break ("VTC à Lille" puis "Disponible 24/7") */
.hero-title-main{display:block}
.hero-title-sub{display:block;margin-top:6px;font-size:.78em;opacity:.95}
h2{margin:0;font-size:clamp(20px,2.2vw,28px);letter-spacing:-.02em;color:#f3f6ff}
.lead{margin:14px 0 0;color:rgba(234,240,255,.92);font-weight:750;font-size:clamp(14px,1.9vw,18px)}
.small-muted{color:var(--muted);font-weight:780;font-size:13px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 16px;border-radius:16px;border:1px solid var(--line);text-decoration:none;font-weight:1000;background:rgba(255,255,255,.05);box-shadow:0 14px 35px rgba(0,0,0,.28)}
.btn-primary{background:linear-gradient(135deg,rgba(47,107,255,1),rgba(122,163,255,1));color:#071026;border-color:transparent}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chip{display:inline-flex;gap:8px;align-items:center;padding:7px 11px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.12);font-size:12px;font-weight:1000;color:rgba(234,240,255,.92)}
.card{border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,255,255,.05);box-shadow:var(--shadow)}.card-pad{padding:18px}
.section{padding:44px 0;position:relative}.section p.sub{margin:10px 0 0;color:var(--muted);font-weight:780}

/* Subtle section separators for a more premium, structured layout */
main .section + .section{border-top:1px solid rgba(234,240,255,.10);padding-top:58px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
@media(max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.grid-4{grid-template-columns:1fr}}
.kpi{padding:16px}.kpi strong{display:block;font-size:13px}.kpi span{display:block;margin-top:6px;color:var(--muted);font-weight:780;font-size:13px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}@media(max-width:900px){.split{grid-template-columns:1fr}}
.list{margin:12px 0 0;padding-left:18px;color:var(--muted);font-weight:780;font-size:14px}
.pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.pill{padding:10px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.12);font-weight:1000;font-size:12px;text-decoration:none}
.breadcrumb{font-size:12px;color:var(--muted);font-weight:900}.breadcrumb a{text-decoration:none;color:var(--muted)}
.footer{border-top:1px solid var(--line);background:rgba(255,255,255,.02);padding:26px 0 90px}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px}@media(max-width:860px){.footer-grid{grid-template-columns:1fr}}
.footer a{color:var(--muted);font-weight:900;text-decoration:none}.footer a:hover{color:#fff}
.footer h3{margin:0 0 10px;font-size:13px;color:#f3f6ff}.footer p{margin:8px 0;color:var(--muted);font-weight:780;font-size:13px}
.footer-brand{display:inline-flex;align-items:center;text-decoration:none}
/* Footer logo: slightly larger so the slogan remains readable */
.logo-footer{height:60px;width:auto;display:block;margin-bottom:10px}
@media(max-width:720px){.logo-footer{height:52px}}

.seo-block{padding:42px 0;background:rgba(255,255,255,.01);border-top:1px solid var(--line)}
.seo-block h2{margin:0 0 10px;font-size:22px}
.seo-block p{margin:0 0 10px;color:rgba(255,255,255,.86);max-width:980px}
.seo-block a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}

/* SEO services (sections détaillées) */
.seo-services{padding:54px 0;border-top:1px solid var(--line);background:linear-gradient(180deg, rgba(255,255,255,.01), rgba(0,0,0,.0))}
.seo-services .section-head{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.seo-services .section-head h2{margin:0;font-size:26px}
.seo-services .section-head p{margin:0;color:rgba(255,255,255,.82);max-width:900px}

/*
  SEO blocks (homepage) — uniform media width
  The user wants the 4 photos at the bottom SEO sections to have the
  exact same visible width (Gare + Business already matched). We keep
  a fixed media column on large screens, and fall back to a stacked
  layout on mobile.
*/
.seo-service-item{display:flex;align-items:stretch;gap:18px;padding:22px;border-radius:24px;border:1px solid rgba(255,255,255,.10);background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(0,0,0,.18));box-shadow:0 10px 28px rgba(0,0,0,.35);overflow:hidden;margin:18px 0}
/* Keep the SAME media width for every card, even when reversed */
.seo-service-item.reverse{flex-direction:row-reverse}


.seo-service-media{flex:0 0 560px;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.10);box-shadow:0 10px 22px rgba(0,0,0,.32);aspect-ratio:16/9}
.seo-service-media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}



#seo-services .seo-service-item:nth-of-type(2) .seo-service-media{flex-basis:480px}
#seo-services .seo-service-item:nth-of-type(2) .seo-service-media img{object-position:center 28%}
.seo-service-content{display:flex;flex-direction:column;justify-content:flex-start;padding:4px 4px 4px 2px;min-height:280px}
.seo-service-content h3{margin:0 0 8px;font-size:20px}
.seo-service-content p{margin:0 0 10px;color:rgba(255,255,255,.86);line-height:1.6}
.seo-list{margin:0 0 14px;padding-left:18px;color:rgba(255,255,255,.84);line-height:1.55}
.seo-list li{margin:6px 0}
/* Keep CTA buttons perfectly aligned across the 4 SEO blocks */
.seo-service-content .btn{align-self:flex-start;margin-top:auto}

@media(max-width:980px){
  .seo-service-item,
  .seo-service-item.reverse{flex-direction:column}
  /* Force ALL images to share the exact same aspect-ratio on mobile */
  .seo-service-media{flex:0 0 auto;width:100%;height:auto;min-height:unset;aspect-ratio:16/9}
  .seo-service-media img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
  .seo-service-content{padding:18px;min-height:unset}
}

.seo-services .badge-row{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px}
.seo-services .badge{padding:8px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.10);background:rgba(0,0,0,.18);color:rgba(255,255,255,.85);font-size:13px}
.stickybar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(6,10,22,.80);backdrop-filter:blur(12px);border-top:1px solid var(--line);display:none}
.stickybar-inner{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 0}.stickybar .btn{height:52px;border-radius:18px;box-shadow:none}
@media(max-width:860px){.stickybar{display:block}}
.fab{position:fixed;right:16px;bottom:18px;z-index:70;display:none}
.fab a{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 16px;border-radius:18px;border:1px solid rgba(234,240,255,.20);background:rgba(255,255,255,.06);backdrop-filter:blur(10px);text-decoration:none;font-weight:1000;box-shadow:0 18px 45px rgba(0,0,0,.35)}
@media(min-width:861px){.fab{display:block}}
.cookie{position:fixed;left:14px;right:14px;bottom:78px;z-index:80;display:none}
.cookie-inner{width:min(980px,92vw);margin:0 auto;background:rgba(234,240,255,.92);color:#071026;border-radius:18px;padding:14px;display:flex;gap:12px;align-items:center;justify-content:space-between;box-shadow:0 25px 60px rgba(0,0,0,.35)}
.cookie-inner p{margin:0;font-size:13px;font-weight:900;color:rgba(7,16,38,.92)}.cookie-inner button{height:40px;padding:0 14px;border-radius:12px;border:0;background:#071026;color:#fff;font-weight:1000;cursor:pointer}
@media(max-width:620px){.cookie-inner{flex-direction:column;align-items:flex-start}.cookie-inner button{width:100%}}
.form label{display:block;font-weight:1000;font-size:13px;margin:12px 0 6px;color:#f3f6ff}
.form input,.form select,.form textarea{width:100%;padding:12px 12px;border-radius:16px;border:1px solid var(--line);font-size:14px;font-weight:780;outline:none;background:rgba(255,255,255,.12);color:rgba(234,240,255,.96)}
.form textarea{resize:vertical}.form .status{margin-top:10px;color:var(--muted);font-weight:850;font-size:13px}
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}
.price-box{margin-top:12px;padding:14px;border-radius:18px;border:1px solid var(--line);background:rgba(47,107,255,.10)}
.price-row{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.price-row strong{font-size:14px}.price-row span{color:rgba(234,240,255,.90);font-weight:900}
.price-note{margin:10px 0 0;color:var(--muted);font-weight:820;font-size:12px}
.landing-wrap{min-height:100vh;display:grid;place-items:center;padding:18px 0}
.landing-card{width:min(580px,92vw);padding:18px}
.landing-mini{margin-top:14px;background:rgba(255,255,255,.12);border:1px solid var(--line);border-radius:16px;padding:12px}
.landing-mini p{margin:8px 0;font-size:13px;color:rgba(234,240,255,.92);font-weight:900}
.landing-legal{margin-top:12px;text-align:center;font-size:12px;color:var(--muted);font-weight:900}



/* Hero background image */
.hero{position:relative;overflow:hidden;background:url('/assets/images/hero-home.png') center/cover no-repeat;
  background-image: -webkit-image-set(url('/assets/images/hero-home.webp') type('image/webp'), url('/assets/images/hero-home.png') type('image/png'));
  background-image: image-set(url('/assets/images/hero-home.webp') type('image/webp'), url('/assets/images/hero-home.png') type('image/png'));}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(5,8,20,.55), rgba(7,11,20,.92));}
.hero .container{position:relative;}

/* Home hero: on mobile we reveal more of the background (less cropped/zoomed) */
.hero.hero-home{background-position:center;}
@media(max-width:860px){
  .hero.hero-home{background-image:none;}
}
/* Zones page hero background */
.hero.hero-zones{background:url('/assets/images/hero-zones-porte-paris.jpg') center/cover no-repeat;
  background-image: -webkit-image-set(url('/assets/images/hero-zones-porte-paris.webp') type('image/webp'), url('/assets/images/hero-zones-porte-paris.jpg') type('image/jpeg'));
  background-image: image-set(url('/assets/images/hero-zones-porte-paris.webp') type('image/webp'), url('/assets/images/hero-zones-porte-paris.jpg') type('image/jpeg'));}
/* Reservation page hero background */
.hero.hero-reservation{background:url('/assets/images/hero-reservation-client.jpg') 60% 18%/cover no-repeat;}





/* Contact page hero background */
.hero.hero-contact{background:url('/assets/images/hero-contact-phone.jpg') 58% 30%/cover no-repeat;min-height:650px;}

/* Contact hero height harmony */
.hero.hero-contact .hero-grid{align-items:stretch;}
.hero.hero-contact .card{height:100%;}
/* Services page hero background */
.hero.hero-services{background:url('/assets/images/hero-services-fleet.png') center/cover no-repeat;
  background-image: -webkit-image-set(url('/assets/images/hero-services-fleet.webp') type('image/webp'), url('/assets/images/hero-services-fleet.png') type('image/png'));
  background-image: image-set(url('/assets/images/hero-services-fleet.webp') type('image/webp'), url('/assets/images/hero-services-fleet.png') type('image/png'));}
.hero-phone{
  margin-top:10px;
  font-weight:700;
  opacity:.95;
}
.hero-phone a{color:inherit;text-decoration:none}
.hero-phone a:hover{text-decoration:underline}

/* Services cards (premium grid) */
.service-grid,.services-grid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:18px}
@media (min-width: 900px){.service-grid,.services-grid{grid-template-columns:repeat(2,1fr)}}

.service-card{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  /* Premium contour: looks more "pro" */
  border:2px solid rgba(255,255,255,.16);
  /* A bit taller so photos breathe and look less cropped */
  min-height:320px;
  display:flex;
  align-items:flex-end;
  text-decoration:none;
  color:inherit;
  background:var(--panel);
  background-size:cover;
  /* Default: balanced framing */
  background-position:center;
  box-shadow:0 14px 38px rgba(0,0,0,.35);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

/* Better framing for key service photos (more visible subjects)
   Note: We keep ALL cards on background-size: cover for a premium, full-bleed look.
   We only tweak the vertical position to reveal the most important parts of each photo.
*/
.services-grid .service-card:nth-child(1){background-position:center 16%;} /* Gare Lille Flandres: show the facade & signage */
.services-grid .service-card:nth-child(3){background-position:center 22%;} /* Déplacement privé: keep the face well visible */
.services-grid .service-card:nth-child(4){background-position:center 38%;} /* Porte de Paris: reveal the monument */





/* Dark overlay to ensure text is readable, even on bright photos */
.service-card::before{
  content:'';
  position:absolute;
  inset:0;
  /* Softer overlay so we still SEE the photo */
  background:linear-gradient(180deg, rgba(7,11,20,.06), rgba(7,11,20,.55));
}

.service-card .inner,.service-card__content,.service-card-content{
  position:relative;
  padding: 10px 10px 8px;
  display:flex;
  flex-direction:column;
  gap: 4px;
  width:calc(100% - 24px);
  margin: 10px 10px 10px;
  max-width: 86%;
  /* Compact readable panel so the image stays visible */
  background:rgba(0,0,0,.42);
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  backdrop-filter: blur(5px);
}
.service-card h3{margin:0;font-size:16px;line-height:1.15;letter-spacing:.2px}
.service-card p{
  margin:0;
  opacity:.92;
  font-size:12.4px;
  line-height:1.28;
  /* Keep the photo visible: show a short excerpt */
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.service-card:hover p{-webkit-line-clamp:4;}
.service-card .tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;opacity:.85}

.service-card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.22);box-shadow:0 16px 44px rgba(0,0,0,.35)}

/* background images */
.service-card[data-img="tourisme"]{background-image:url('/assets/images/service-tourisme.jpg')}
.service-card[data-img="business"]{background-image:url('/assets/images/service-business.jpg')}
.service-card[data-img="transfert"]{background-image:url('/assets/images/service-transfert.jpg');background-position:center 50%}
.service-card[data-img="prive"]{background-image:url('/assets/images/service-prive.jpg');background-position:center 35%;background-size:cover}

/* slight framing tweaks so key elements stay visible */
.service-card[data-img="tourisme"]{background-position:center 78%}
.service-card[data-img="business"]{background-position:center 32%}
.service-card[data-img="prive"]{background-position:center 35%}

/* Footer credit (Votre Agence Web) */
.footer-credit{margin-top:10px;font-size:14px;color:rgba(234,240,255,.80);font-weight:850;letter-spacing:.01em}
.footer-credit a{color:var(--brand2);font-weight:950;text-decoration:none}
.footer-credit a:hover{text-decoration:underline}

/* Home FAQ (conversion + SEO) */
.home-faq .lead{max-width:760px}
.faq-grid{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.faq-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:14px 14px;box-shadow:0 10px 24px rgba(0,0,0,.22)}
.faq-item summary{cursor:pointer;list-style:none;font-weight:850;color:rgba(255,255,255,.95);font-size:14.5px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:after{content:'+';float:right;opacity:.7;font-weight:900}
.faq-item[open] summary:after{content:'–'}
.faq-item p{margin:10px 0 0;color:rgba(255,255,255,.86);font-size:13.5px;line-height:1.5}

.home-final-cta .final-cta-card{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03)}
.home-final-cta .sub{max-width:780px}

@media (max-width: 860px){
  .faq-grid{grid-template-columns:1fr}
}

/* =========================
   SERVICES PAGE (Premium)
   ========================= */

.hero-services{
  position:relative;
  min-height: 420px;
  display:flex;
  align-items:center;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.hero-services::before{
  content:"";
  position:absolute;
  inset:0;
  background-image: url('images/services-fleet.jpg');
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  filter: saturate(1.05);
}
.hero-services::after{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(900px 420px at 20% 30%, rgba(255,255,255,0.14) 0%, rgba(0,0,0,0) 60%),
              linear-gradient(90deg, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.45) 45%, rgba(0,0,0,0.70) 100%);
}
.hero-services .container{
  position:relative;
  z-index:2;
}
.hero-services .hero-content{
  max-width: 780px;
}
.hero-services h1{
  margin:0 0 12px;
  line-height:1.12;
}
.hero-services .lead{
  max-width: 680px;
  font-size: 1.05rem;
  opacity: 0.95;
}
.hero-services .hero-actions{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 18px;
}

.section-title{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 18px;
  margin-bottom: 18px;
}
.section-title h2{
  margin:0;
}
.section-title p{
  margin:0;
  opacity:0.85;
  max-width: 620px;
}

.services-grid--page{
  margin-top: 8px;
}
.services-grid--page .service-card{
  min-height: 260px;
}

.service-detail{
  padding: 56px 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.service-detail:nth-of-type(even){
  background: rgba(255,255,255,0.02);
}

.service-detail__grid{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 26px;
  align-items:center;
}
.service-detail--reverse .service-detail__grid{
  grid-template-columns: 0.9fr 1.1fr;
}
.service-detail--reverse .service-detail__media{ order: 2; }
.service-detail--reverse .service-detail__content{ order: 1; }

.service-detail__media{
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 18px 40px rgba(0,0,0,0.35);
  background: rgba(0,0,0,0.25);
  /* Keep all photos consistent (premium look) */
  aspect-ratio: 16 / 10;
}
.service-detail__media img{
  width:100%;
  height: 100%;
  display:block;
  object-fit: cover;
}

.service-detail__content h2{
  margin: 0 0 10px;
}
.service-detail__content p{
  margin: 0 0 14px;
  opacity: 0.92;
}
.service-points{
  list-style:none;
  padding:0;
  margin: 0 0 16px;
  display:grid;
  gap: 10px;
}
.service-points li{
  padding-left: 26px;
  position:relative;
  opacity: 0.95;
}
.service-points li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color: var(--accent);
  font-weight: 700;
}

.inline-cta{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.fleet-block{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 14px;
}
.fleet-item{
  padding: 16px;
  border-radius: 16px;
  background: rgba(0,0,0,0.35);
  border: 1px solid rgba(255,255,255,0.12);
}
.fleet-item h3{
  margin:0 0 8px;
}
.fleet-item p{
  margin:0;
  opacity:0.9;
}

.steps{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 18px;
}
.step{
  padding: 16px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.28);
}
.step .step-num{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display:grid;
  place-items:center;
  font-weight: 800;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.14);
  margin-bottom: 10px;
}
.step h3{
  margin:0 0 8px;
  font-size: 1.05rem;
}
.step p{
  margin:0;
  opacity:0.9;
  font-size: 0.95rem;
}

.faq{
  margin-top: 16px;
  display:grid;
  gap: 12px;
}
.faq details{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.28);
  padding: 14px 16px;
}
.faq summary{
  cursor:pointer;
  font-weight: 700;
}
.faq p{
  margin: 10px 0 0;
  opacity: 0.92;
}

.callout{
  margin-top: 20px;
  padding: 18px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.12);
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(0,0,0,0.24));
}
.callout h2{ margin:0 0 10px; }
.callout p{ margin:0 0 14px; opacity:0.95; }

/* ==============================
   Services page "feature" blocks
   (ensures all photos are properly sized)
   ============================== */

.feature-section{
  padding: clamp(26px, 3vw, 48px) 0;
}

.feature-row{
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(18px, 2.8vw, 34px);
  align-items: center;
  margin-top: clamp(18px, 2.2vw, 28px);
}

.feature-row.reverse{
  grid-template-columns: 0.85fr 1.15fr;
}

.feature-row.reverse .feature-media{ order: 2; }
.feature-row.reverse .feature-content{ order: 1; }

.feature-media{
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 18px 40px rgba(0,0,0,0.35);
  background: rgba(0,0,0,0.25);
  aspect-ratio: 16 / 10;
}

.feature-media img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.feature-content h3{
  margin: 0 0 10px;
}

.feature-content p{
  margin: 0;
  opacity: 0.95;
}

@media (max-width: 980px){
  .service-detail__grid{
    grid-template-columns: 1fr;
  }
  .service-detail--reverse .service-detail__media{ order: 0; }
  .service-detail--reverse .service-detail__content{ order: 0; }

  .feature-row{
    grid-template-columns: 1fr;
  }
  .feature-row.reverse .feature-media,
  .feature-row.reverse .feature-content{
    order: 0;
  }
  .fleet-block{ grid-template-columns: 1fr; }
  .steps{ grid-template-columns: 1fr 1fr; }
  .hero-services{ min-height: 420px; }
}

@media (max-width: 560px){
  .hero-services{ min-height: 520px; }
  .steps{ grid-template-columns: 1fr; }
  .hero-services .lead{ font-size: 1rem; }
}


/* === Services page: premium service cards (better photo visibility) === */
.services-grid{
  margin-top: 24px;
}
.services-grid .service-card{
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  min-height: 260px;
  border-radius: 18px;
  overflow: hidden;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}

/* Make image more visible by keeping the content box compact */
.services-grid .service-card__content{
  width: calc(100% - 28px);
  margin: 0 14px 14px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(10, 14, 20, 0.55);
  border: 1px solid rgba(255,255,255,0.14);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.services-grid .service-card__content h3{
  margin: 0;
  font-size: 1.12rem;
}

.services-grid .service-card__content p{
  margin: 4px 0 0;
  font-size: 0.95rem;
  line-height: 1.35;
  opacity: 0.95;
}

/* Remove the extra CTA line to show more of the image */
.services-grid .service-card__content .tag{
  display: none !important;
}

/* Better framing (closer to homepage cards) */
.services-grid .service-card[data-img="transfert"]{ background-position: center 38%; }
.services-grid .service-card[data-img="prive"]{ background-position: center 35%; }
.services-grid .service-card[data-img="tourisme"]{ background-position: center 78%; }

/* Responsive */
@media (max-width: 900px){
  .services-grid .service-card{
    min-height: 220px;
  }
  .services-grid .service-card__content{
    width: calc(100% - 24px);
    margin: 0 12px 12px;
  }
}


/* v11 — SEO cards: reduce portrait dominance on "Déplacement privé" */
#seo-services .seo-service-item.is-prive .seo-service-media{
  flex:0 0 560px;
}
#seo-services .seo-service-item.is-prive .seo-service-media img{
  object-position:center 30%;
}

/* Fallback if class is removed: 2nd card in this section is "Déplacement privé" */
#seo-services .seo-service-item:nth-of-type(2) .seo-service-media{
  flex:0 0 400px;
}
#seo-services .seo-service-item:nth-of-type(2) .seo-service-media img{
  object-position:center 20%;
}

@media(max-width:980px){
  #seo-services .seo-service-item.is-prive .seo-service-media,
  #seo-services .seo-service-item:nth-of-type(2) .seo-service-media{
    flex:0 0 auto;
    width:100%;
  }
}


/* v13 — SEO services: uniform landscape media (fix portrait feeling on Private) */
#seo-services .seo-service-content{min-height:315px}
#seo-services .seo-service-content .btn{margin-top:auto}
/* Keep text compact so the card height stays aligned */
#seo-services .seo-service-content p{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  overflow:hidden;
}
@media(max-width:980px){
  #seo-services .seo-service-media{flex:0 0 auto;width:100%;aspect-ratio:16/9}
  #seo-services .seo-service-content{min-height:unset}
  #seo-services .seo-service-content p{-webkit-line-clamp:unset}
}


/* v14 — Private card: same width as others (keep uniform look) */
#seo-services .seo-service-item.is-prive .seo-service-media{flex:0 0 560px}
#seo-services .seo-service-item.is-prive .seo-service-media img{object-position:center 30%}


}


}


}



/* Zones hero tweaks */
.hero.hero-zones .hero-meta{margin-top:14px;color:rgba(255,255,255,.85);font-weight:600}


}


/* v4 — Zones hero: keep same layout as Home without oversized height */
.hero.hero-zones{
  min-height: unset;
  padding: 42px 0 18px; /* same as base .hero */
}


/* Zones page — badges (cities) */
.badge-row{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px}
.badge{
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.18);
  color:rgba(255,255,255,.85);
  font-size:13px;
  font-weight:900;
}


/* Reservation page — steps */
.steps{
  margin:14px 0 0;
  padding-left:22px;
  display:flex;
  flex-direction:column;
  gap:10px;
  list-style-position:outside;
}
.steps li{
  display:list-item;
  color:rgba(255,255,255,.88);
  line-height:1.35;
}
.steps li::marker{
  font-weight:900;
  color:rgba(255,255,255,.92);
}
.mini-grid{margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mini-item{
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.16);
  color:rgba(255,255,255,.85);
  font-weight:900;
  font-size:13px;
}
@media(max-width:900px){
  .mini-grid{grid-template-columns:1fr}
}


.section-tight{padding-top:26px;padding-bottom:26px}


/* FAQ page hero background */
.hero.hero-faq{background:url('/assets/images/hero-faq-chauffeur.jpg') 50% 45%/cover no-repeat;min-height:650px;}


/* FAQ hero height harmony */
.hero.hero-faq .hero-grid{align-items:stretch;}
.hero.hero-faq .card{height:100%;}

/* FAQ page — improvements */
#faq .faq{display:grid;gap:12px}
#faq .faq-item summary{line-height:1.25}


/* FAQ hero overlay (less dark for better photo visibility) */
.hero.hero-faq::before{background:linear-gradient(180deg, rgba(5,8,20,.42), rgba(7,11,20,.78));}


/* FAQ hero — full width + better framing */
@media(max-width:900px){
  .hero-faq{min-height:720px;background-position:55% 40%;}
}



/* Mobile — uniform SEO service images (avoid portrait tall image on private card) */
@media(max-width:860px){
  #seo-services .seo-service-media{
    width:100%;
    aspect-ratio:16/9;
    max-height:240px;
  }
}

/* Mobile hero images (vertical) */
@media (max-width: 860px) {
  .hero.hero-home {
    background-image: url('/assets/images/hero-home-mobile.png?v=20260128');
    background-position: 70% 15%;
  }
  .hero.hero-services {
    background-image: url('/assets/images/hero-services-mobile.jpg?v=20260127');
    background-position: 50% 40%;
  }
  .hero.hero-zones {
    background-image: url('/assets/images/hero-zones-mobile.jpg?v=20260127');
    background-position: 50% 30%;
  }
  .hero.hero-reservation {
    background-image: url('/assets/images/hero-reservation-mobile.jpg?v=20260127');
    background-position: 55% 25%;
  }
  .hero.hero-faq {
    background-image: url('/assets/images/hero-faq-mobile.jpg?v=20260127');
    background-position: 50% 30%;
  }
  .hero.hero-contact {
    background-image: url('/assets/images/hero-contact-mobile.jpg?v=20260127');
    background-position: 55% 25%;
    min-height: 560px;
  }
}

/* Mobile: on ne met plus de photo en arrière-plan du HERO (meilleure lisibilité).
   On affiche plutôt l'image juste sous le bloc HERO via .hero-mobile-media. */
.hero-mobile-media{display:none;}

@media(max-width:860px){
  .hero{
    background-image:none !important;
    background:radial-gradient(1200px 600px at 20% 0%, rgba(47,107,255,.18), transparent 60%), #070b14;
  }
  .hero-mobile-media{
    display:block;
    margin:14px 0 18px;
  }
  .hero-mobile-media img{
    width:100%;
    height:auto;
    display:block;
    border-radius:22px;
  }

  /* Services (mobile): remove pseudo background photo inside the hero.
     The image is displayed in the dedicated mobile block under the hero content. */
  .hero-services{min-height:auto;}
  .hero-services::before{display:none;}
}

/* Mobile hero photo caption (premium) */
.mobile-hero-photo{position:relative;overflow:hidden;border-radius:18px}
.mobile-hero-photo img{display:block;width:100%;height:auto}
.mobile-hero-caption{
  position:absolute;
  left:12px;
  bottom:12px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(0,0,0,.55);
  color:#fff;
  font-weight:900;
  font-size:13px;
  letter-spacing:.2px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
@media(max-width:900px){
  .mobile-hero-caption{font-size:14px}
}

/* Status feedback */
.form .status.ok{color:#b9ffcc}

/* ---------- Cookie consent (RGPD) ---------- */
.cookie{display:none;position:fixed;left:12px;right:12px;bottom:12px;z-index:9999}
.cookie-inner{
  background:rgba(10,14,25,.86);
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  padding:14px 14px 12px;
  color:#fff;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.cookie-inner p{margin:0 0 10px;line-height:1.35;font-size:13px;color:rgba(255,255,255,.88)}
.cookie-inner a{color:#8fb2ff;text-decoration:underline}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie-btn{
  border:0;
  border-radius:999px;
  padding:10px 14px;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
  background:linear-gradient(135deg,#2f6bff,#76a2ff);
  color:#0b1020;
}
.cookie-btn.secondary{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.14)}
.cookie-btn.ghost{background:transparent;color:rgba(255,255,255,.92);border:1px dashed rgba(255,255,255,.22)}
.cookie-btn:active{transform:translateY(1px)}

.cookie-modal-backdrop{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;justify-content:center;padding:14px}
.cookie-modal{
  width:min(560px,100%);
  background:#0b1020;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 24px 80px rgba(0,0,0,.55);
}
.cookie-modal-header{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.10)}
.cookie-modal-header h3{margin:0;font-size:16px;color:#fff}
.cookie-modal-body{padding:14px 16px;color:rgba(255,255,255,.86);font-size:13px;line-height:1.45}
.cookie-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid rgba(255,255,255,.08)}
.cookie-row:first-of-type{border-top:0}
.cookie-row strong{color:#fff}

/* Toggle */
.cookie-toggle{position:relative;width:46px;height:28px;flex:0 0 auto}
.cookie-toggle input{opacity:0;width:0;height:0}
.cookie-toggle span{position:absolute;inset:0;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);border-radius:999px;transition:.2s}
.cookie-toggle span:before{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.2s}
.cookie-toggle input:checked+span{background:rgba(47,107,255,.55);border-color:rgba(47,107,255,.75)}
.cookie-toggle input:checked+span:before{transform:translateX(18px)}
.cookie-toggle input:disabled+span{opacity:.5}

.cookie-modal-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;padding:12px 16px;border-top:1px solid rgba(255,255,255,.10)}

@media(min-width:900px){
  .cookie{left:20px;right:auto;bottom:20px;max-width:520px}
  .cookie-modal-backdrop{align-items:center}
}
.form .status.err{color:#ffb9b9}
.form .status.info{color:var(--muted)}

