/* ===== Réservation VTC Yvelines — styles spécifiques à la page d'accueil ===== */
/* Chargé uniquement sur la page d'accueil, après theme.css. */

:root{
  --navy:#1f2a44; --navy-2:#172036; --navy-soft:#2c3a5c;
  --gold:#c2a46f; --gold-2:#d8c39a; --gold-deep:#a98a52;
  --cream:#f0f1f4; --stone:#e8e7e6; --ink:#1b1b1b; --muted:#5b6172; --line:#e7e4dd;
  --radius:16px; --maxw:1180px;
}

/* ===== Hero ===== */
.hero{position:relative;background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 55%,#10172a 100%);color:#fff;overflow:hidden;padding:90px 0 104px;}
/* halo doré retiré : il éclaircissait la droite du hero (effet de « trait/cadre ») */
.hero-grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;z-index:2;}
.hero .kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--gold-2);margin-bottom:20px;}
.hero .kicker svg{width:16px;height:16px;}
.hero h1{color:#fff;font-size:clamp(40px,5.2vw,64px);font-weight:800;letter-spacing:-1px;margin-bottom:22px;}
.hero h1 .it{font-style:italic;color:var(--gold-2);font-weight:600;}
.hero p.lead{font-size:18px;color:#cdd2de;font-weight:300;max-width:30em;margin-bottom:32px;}
.hero p.lead b{color:#fff;font-weight:600;}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;align-items:center;}

.hero-visual{position:relative;display:flex;align-items:center;justify-content:center;}
.qbook{background:rgba(255,255,255,.96);border-radius:22px;padding:30px;width:100%;max-width:410px;box-shadow:0 34px 80px rgba(0,0,0,.4);}
.qbook h3{font-size:22px;margin-bottom:4px;}
.qbook .sub{color:var(--gold-deep);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-bottom:18px;}
.trip-toggle{display:flex;background:var(--cream);border:1px solid var(--line);border-radius:11px;padding:4px;margin-bottom:18px;}
.trip-toggle button{flex:1;border:none;background:none;padding:9px;border-radius:8px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;font-family:'Open Sans',sans-serif;transition:.2s;}
.trip-toggle button.active{background:#fff;color:var(--navy);box-shadow:0 2px 8px rgba(31,42,68,.12);}
.field{margin-bottom:14px;}
.field label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em;}
.field .inp{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--navy);background:#fff;transition:.2s;}
.field .inp:hover{border-color:var(--gold);}
.field .inp svg{width:18px;height:18px;color:var(--gold-deep);flex:0 0 auto;}
.field .inp span{font-size:14.5px;color:#5b6172;}
.field .inp input{border:none;outline:none;background:none;width:100%;font-family:'Open Sans',sans-serif;font-size:14.5px;color:var(--navy);}
.field .inp input::placeholder{color:#5b6172;}
.qbook .btn{width:100%;justify-content:center;margin-top:8px;}

/* ===== Sections ===== */
section.block{padding:96px 0;}
.sec-head{max-width:680px;margin-bottom:52px;}
.sec-head.center{margin:0 auto 52px;text-align:center;}
.sec-head.wide{max-width:none;}
.sec-head h2{font-size:clamp(30px,3.6vw,42px);margin:14px 0 16px;}
.sec-head.nowrap h2{white-space:nowrap;}
.sec-head p{color:var(--muted);font-size:16.5px;}
.oneline{white-space:nowrap;}

.strip{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:34px;padding-bottom:34px;}
.strip .item{display:flex;align-items:center;gap:14px;}
.strip .item .ic{width:48px;height:48px;border-radius:12px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--gold-deep);flex:0 0 auto;}
.strip .item .ic svg{width:24px;height:24px;}
.strip .item b{display:block;font-size:15px;color:var(--navy);font-family:'Playfair Display',serif;}
.strip .item span{font-size:12.5px;color:var(--muted);}

.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.svc{border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;background:#fff;transition:.3s;position:relative;overflow:hidden;}
.svc::before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:.3s;}
.svc:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(31,42,68,.12);border-color:transparent;}
.svc:hover::before{transform:scaleX(1);}
.svc .ic{width:58px;height:58px;border-radius:14px;background:var(--navy);color:var(--gold-2);display:flex;align-items:center;justify-content:center;margin-bottom:20px;transition:.3s;}
.svc:hover .ic{background:var(--gold);color:var(--navy);}
.svc .ic svg{width:28px;height:28px;}
.svc h3{font-size:20px;margin-bottom:10px;}
.svc p{font-size:14.5px;color:var(--muted);}

.feature{background:linear-gradient(160deg,var(--navy),var(--navy-2));color:#fff;border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;}
.feature .txt{padding:60px 54px;align-self:center;}
.feature .eyebrow{color:var(--gold-2);}
.feature .eyebrow::before{background:var(--gold-2);}
.feature h2{color:#fff;font-size:clamp(28px,3vw,38px);margin:16px 0 18px;}
.feature p{color:#cdd2de;font-weight:300;margin-bottom:26px;}
.feature .feat-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.feature .feat-list li{display:flex;align-items:center;gap:11px;font-size:14.5px;color:#e3e6ee;}
.feature .feat-list svg{width:19px;height:19px;color:var(--gold-2);flex:0 0 auto;}
.feature .visual{position:relative;min-height:420px;background:#0d1424;}
.feature .visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 72%;}

.values-intro{text-align:center;max-width:620px;margin:0 auto 46px;color:var(--muted);font-size:16.5px;}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.value{padding:38px 32px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;transition:.3s;}
.value:hover{box-shadow:0 18px 44px rgba(31,42,68,.1);transform:translateY(-4px);}
.value .vic{width:60px;height:60px;border-radius:50%;background:var(--cream);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--gold-deep);margin-bottom:20px;}
.value .vic svg{width:28px;height:28px;}
.value h3{font-size:23px;margin-bottom:12px;}
.value p{font-size:14.5px;color:var(--muted);}

.reviews{background:var(--cream);}
.reviews-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;margin-bottom:40px;}
.gscore{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 20px;}
.gscore .g{font-family:'Playfair Display',serif;font-size:34px;color:var(--navy);}
.stars{color:var(--gold);letter-spacing:2px;font-size:16px;}
.carousel{position:relative;}
.track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 18px;scrollbar-width:none;}
.track::-webkit-scrollbar{display:none;}
.review{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;flex:0 0 360px;max-width:360px;scroll-snap-align:start;}
.review .stars{margin-bottom:14px;}
.review p{font-size:14.5px;color:#3c4252;font-style:italic;margin-bottom:18px;}
.review .who{display:flex;align-items:center;gap:12px;}
.review .av{width:42px;height:42px;border-radius:50%;background:var(--navy);color:var(--gold-2);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-weight:700;}
.review .who b{display:block;font-size:14px;color:var(--navy);}
.review .who span{font-size:12px;color:var(--muted);}
.car-nav{display:flex;gap:10px;}
.car-nav button{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--navy);background:#fff;color:var(--navy);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s;}
.car-nav button:hover{background:var(--navy);color:#fff;}
.car-nav button svg{width:20px;height:20px;}

.story{display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:center;}
.story .photo{border-radius:24px;overflow:hidden;position:relative;aspect-ratio:4/4.6;box-shadow:0 30px 60px rgba(31,42,68,.18);}
.story .photo img{width:100%;height:100%;object-fit:cover;object-position:center;}
.story .photo .badge{position:absolute;bottom:20px;left:20px;right:20px;background:rgba(23,32,54,.72);border:1px solid rgba(194,164,111,.4);border-radius:14px;padding:16px 20px;backdrop-filter:blur(8px);}
.story .photo .badge b{color:#fff;font-family:'Playfair Display',serif;font-size:18px;}
.story .photo .badge span{color:var(--gold-2);font-size:13px;}
.story h2{font-size:clamp(28px,3.4vw,40px);margin:14px 0 18px;}
.story p{color:var(--muted);margin-bottom:16px;}
.sign{font-family:'Playfair Display',serif;font-style:italic;font-size:22px;color:var(--gold-deep);}

.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.news{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;transition:.3s;}
.news:hover{transform:translateY(-5px);box-shadow:0 20px 46px rgba(31,42,68,.1);}
.news .thumb{height:180px;overflow:hidden;}
.news .thumb img{width:100%;height:100%;object-fit:cover;transition:.4s;}
.news:hover .thumb img{transform:scale(1.06);}
.news .body{padding:24px;}
.news .date{font-size:12px;color:var(--navy);font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.news h3{font-size:18px;margin:10px 0 8px;}
.news p{font-size:13.5px;color:var(--muted);}

.cta-band{position:relative;background:linear-gradient(135deg,#243150,var(--navy) 55%,#10172a);border-radius:28px;padding:70px 54px;overflow:hidden;display:grid;grid-template-columns:1.4fr auto;gap:40px;align-items:center;}
.cta-band::before{content:"";position:absolute;top:-40%;right:-10%;width:480px;height:480px;background:radial-gradient(circle,rgba(194,164,111,.28),transparent 62%);pointer-events:none;}
.cta-band .ce{position:relative;z-index:2;}
.cta-band .eyebrow{color:var(--gold-2);}
.cta-band .eyebrow::before{background:var(--gold-2);}
.cta-band h2{color:#fff;font-size:clamp(28px,3.4vw,40px);margin:14px 0 12px;}
.cta-band p{color:#cdd2de;max-width:42em;font-size:16.5px;font-weight:300;}
.cta-actions{position:relative;z-index:2;display:flex;flex-direction:column;gap:14px;align-items:stretch;min-width:220px;}
.cta-actions .btn{justify-content:center;}
.cta-actions .call{display:flex;align-items:center;justify-content:center;gap:10px;color:#fff;font-weight:600;font-size:15px;}
.cta-actions .call svg{width:18px;height:18px;color:var(--gold-2);}

@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:36px;}
  .hero-visual{order:-1;}
  .feature{grid-template-columns:1fr;}
  .feature .visual{order:-1;min-height:300px;}
  .story{grid-template-columns:1fr;}
  .services-grid,.reviews-grid,.values,.news-grid{grid-template-columns:1fr 1fr;}
  .strip .wrap{grid-template-columns:1fr 1fr;}
  .cta-band{grid-template-columns:1fr;}
  .sec-head.nowrap h2{white-space:normal;}
  .oneline{white-space:normal;}
}
@media(max-width:680px){
  .services-grid,.reviews-grid,.values,.news-grid,.strip .wrap{grid-template-columns:1fr;}
  .feature .feat-list{grid-template-columns:1fr;}
  section.block{padding:64px 0;}
  .feature .txt{padding:40px 30px;}
  .review{flex-basis:280px;}
}

/* FAQ */
.faq{max-width:820px;margin:0 auto;display:grid;gap:14px;}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.faq summary{list-style:none;cursor:pointer;padding:20px 24px;font-family:'Playfair Display',serif;font-size:17px;color:var(--navy);font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary .fq{flex:0 0 auto;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line);position:relative;transition:.3s;}
.faq summary .fq::before,.faq summary .fq::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--gold-deep);}
.faq summary .fq::before{width:12px;height:2px;}
.faq summary .fq::after{width:2px;height:12px;transition:transform .3s;}
.faq details[open] summary .fq{background:var(--gold);border-color:var(--gold);}
.faq details[open] summary .fq::before,.faq details[open] summary .fq::after{background:var(--navy);}
.faq details[open] summary .fq::after{transform:translate(-50%,-50%) scaleY(0);}
.faq .fa{padding:0 24px 20px;color:var(--muted);font-size:14.5px;}
.faq .fa p{margin:0;}

/* Apparition + hero anim */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);will-change:opacity,transform;}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important;}}
@keyframes rvyHeroIn{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}
.hero-text{animation:rvyHeroIn .8s cubic-bezier(.22,1,.36,1) both;}
.hero-visual{animation:rvyHeroIn .9s cubic-bezier(.22,1,.36,1) .15s both;}
@media(prefers-reduced-motion:reduce){.hero-text,.hero-visual{animation:none;}}
