/* VELOR — concept location de voitures de prestige. Chargé uniquement sur la
   page du concept. Premier concept en fond clair : après POLYRA, ATHLA et AXOM
   tous sombres, le hub avait besoin d'une respiration. */
.velor-concept-page{--vi:#f4efe7;--vd:#191512;--va:#7d2436;--vm:#7c736a;--vl:#19151217;background:var(--vi)}
.velor-concept-page .site-header{position:fixed;inset:18px 18px auto auto;z-index:100;width:58px;height:58px;margin:0;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
.velor-concept-page .nav-shell{width:58px;min-height:58px;height:58px;margin:0;padding:0;display:block;border:0;border-radius:50%;background:transparent;box-shadow:none;backdrop-filter:none}
.velor-concept-page .brand,.velor-concept-page .desktop-nav,.velor-concept-page .language-link,.velor-concept-page .nav-cta{display:none!important}
.velor-concept-page .nav-actions{display:block;margin:0}
.velor-concept-page .menu-button{position:fixed;top:18px;right:18px;display:flex!important;width:58px;height:58px;border:1px solid #19151226;border-radius:50%;color:var(--vd);background:#fbf8f3d9;box-shadow:0 12px 30px #19151214;backdrop-filter:blur(18px)}
.velor-concept-page .menu-button span{width:19px;background:var(--vd)}
.velor-concept-page .mobile-panel{position:fixed;top:86px;right:18px;left:auto;width:min(360px,calc(100vw - 36px));max-height:calc(100svh - 105px);margin:0;padding:18px;border:1px solid #19151221;border-radius:20px;background:#fbf8f3f7;box-shadow:0 24px 60px #1915121f;backdrop-filter:blur(24px);overflow:auto}
.velor-concept-page .mobile-panel nav a{color:var(--vd);border-color:#19151214}
.velor-concept-page .mobile-panel .button{color:#fdf9f4;background:var(--va)}
.ve-page{background:var(--vi);color:var(--vd);overflow-x:clip;overflow-y:visible}
.ve-page .wrap{width:min(1240px,calc(100% - 56px))}
.ve-page h2{margin:16px 0 0;color:var(--vd);font-size:clamp(2.6rem,5.2vw,5.4rem);line-height:1;letter-spacing:-.045em}
.ve-page h2 em{color:var(--va)!important;font-style:normal;background:none!important;-webkit-text-fill-color:var(--va)!important;text-shadow:none!important}
.ve-kicker{color:var(--va);font-size:.67rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.ve-head{display:grid;grid-template-columns:1.3fr .7fr;gap:24px 70px;align-items:end;margin-bottom:52px}
.ve-head>p{max-width:420px;margin:0 0 6px;color:var(--vm);line-height:1.7}
.ve-disclaimer{color:#8d857c;font-size:.72rem;line-height:1.55}
.ve-button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-height:56px;padding:8px 10px 8px 26px;border:1px solid transparent;border-radius:999px;color:#fdf9f4;background:var(--va);font-size:.75rem;font-weight:800;letter-spacing:.1em;text-decoration:none;text-transform:uppercase;box-shadow:0 14px 34px #7d243629}
.ve-button span{display:grid;place-items:center;width:38px;aspect-ratio:1;border-radius:50%;background:#fdf9f4;color:var(--va);transition:transform .35s}
.ve-button:hover span{transform:rotate(45deg)}
.ve-button-full{width:100%;margin-top:4px}
.ve-ghost,.ve-back{color:var(--vd);font-size:.73rem;font-weight:750;letter-spacing:.1em;text-decoration:none;text-transform:uppercase}

/* ------------------------------------------------------------------ hero */
.ve-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden;background:#e8e0d4}
.ve-hero-media,.ve-hero-shade{position:absolute;z-index:-2;inset:0;display:block}
.ve-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.ve-hero-shade{z-index:-1;background:linear-gradient(90deg,#f4efe7f2 0%,#f4efe7cc 26%,#f4efe766 46%,#f4efe700 72%),linear-gradient(0deg,#f4efe7c4 0%,#f4efe73d 22%,transparent 42%)}
.ve-brandbar{position:absolute;top:34px;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding-right:78px;font-size:.65rem;letter-spacing:.17em;text-transform:uppercase;color:var(--vm)}
.ve-brandbar strong{color:var(--vd);font-size:1.35rem;letter-spacing:.4em}
.ve-brandbar span{text-align:right}
.ve-concept{color:var(--vm);text-decoration:none}
.ve-hero-copy{padding:clamp(150px,19vh,240px) 0 76px}
.ve-hero-copy .ve-kicker,.ve-lead,.ve-brandbar{text-shadow:0 1px 12px #f4efe7cc}
.ve-hero-copy h1{max-width:860px;margin:14px 0 20px;font-size:clamp(3.2rem,7.4vw,7rem);line-height:.92;letter-spacing:-.055em}
.ve-hero-copy h1 em{color:var(--va)!important;font-style:normal;background:none!important;background-clip:border-box!important;-webkit-background-clip:border-box!important;-webkit-text-fill-color:var(--va)!important;text-shadow:none!important}
.ve-lead{max-width:560px;color:#5d554d;font-size:clamp(1.02rem,1.5vw,1.24rem);line-height:1.65}
.ve-hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:32px}

/* ----------------------------------------------------------------- preuve */
.ve-proof{border-block:1px solid var(--vl);background:#efe8dd}
.ve-proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--vl)}
.ve-proof-grid>div{display:flex;flex-direction:column;gap:7px;padding:34px 24px;background:#efe8dd}
.ve-proof-grid strong{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1;letter-spacing:-.04em}
.ve-proof-grid span{color:var(--vm);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}

/* ---------------------------------------------------------------- flotte */
.ve-fleet{padding:140px 0}
.ve-fleet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ve-car{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--vl);border-radius:20px;background:#fbf8f3}
.ve-car-media{overflow:hidden;aspect-ratio:4/5;background:#e8e0d4}
.ve-car-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.ve-car:hover .ve-car-media img{transform:scale(1.04)}
.ve-car-body{display:flex;flex-direction:column;flex:1;padding:26px 26px 28px}
.ve-car-tint{margin:0;color:var(--va);font-size:.63rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.ve-car h3{margin:9px 0 0;font-size:1.7rem;letter-spacing:-.02em}
.ve-car-line{margin:8px 0 0;color:var(--vm);font-size:.92rem;line-height:1.55}
.ve-specs{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:20px 0 0;padding:18px 0 0;border-top:1px solid var(--vl);list-style:none}
.ve-specs li{position:relative;padding-left:14px;color:#5d554d;font-size:.82rem}
.ve-specs li:before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--va)}
.ve-car-price{margin:20px 0 18px;font-size:.85rem;color:var(--vm)}
.ve-car-price b{font-size:1.6rem;color:var(--vd);letter-spacing:-.03em}
.ve-car-cta{margin-top:auto;min-height:48px;border:1px solid #19151226;border-radius:999px;color:var(--vd);background:transparent;font:inherit;font-size:.73rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:.22s}
.ve-car-cta:hover{border-color:var(--va);color:var(--va)}

/* ----------------------------------------------------------- réservation */
.ve-booking{padding:130px 0 140px;background:#efe8dd;border-block:1px solid var(--vl)}
.ve-booking-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:start}
.ve-booking-form{display:flex;flex-direction:column;gap:26px;padding:34px;border:1px solid var(--vl);border-radius:20px;background:#fbf8f3}
.ve-field{display:flex;flex-direction:column;gap:11px}
.ve-field>span{color:var(--vm);font-size:.65rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.ve-field input[type=date]{width:100%;padding:15px 16px;border:1px solid #1915121f;border-radius:12px;color:var(--vd);background:#fff;font:inherit;font-size:1rem;font-weight:600}
.ve-field input[type=date]:focus{outline:2px solid var(--va);outline-offset:1px}
.ve-field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ve-vehicles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ve-vehicles button{display:flex;flex-direction:column;gap:5px;padding:15px 12px;border:1px solid #1915121f;border-radius:13px;color:var(--vd);background:#fff;font:inherit;text-align:left;cursor:pointer;transition:.2s}
.ve-vehicles b{font-size:.92rem;font-weight:650}
.ve-vehicles span{color:var(--vm);font-size:.74rem}
.ve-vehicles button[aria-pressed=true]{border-color:transparent;color:#fdf9f4;background:var(--va)}
.ve-vehicles button[aria-pressed=true] span{color:#fdf9f4b8}
.ve-km{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ve-km button{display:flex;flex-direction:column;gap:5px;padding:14px 12px;border:1px solid #1915121f;border-radius:13px;color:var(--vd);background:#fff;font:inherit;text-align:left;cursor:pointer;transition:.2s}
.ve-km b{font-size:.85rem;font-weight:650}
.ve-km span{color:var(--vm);font-size:.72rem}
.ve-km button[aria-pressed=true]{border-color:var(--va);background:#7d24360d}
.ve-options{display:flex;flex-direction:column;gap:8px}
.ve-option{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:14px 16px;border:1px solid #19151217;border-radius:13px;background:#fff;cursor:pointer;transition:.2s}
.ve-option:has(input:checked){border-color:var(--va);background:#7d24360d}
.ve-option input{width:18px;height:18px;accent-color:#7d2436;cursor:pointer}
.ve-option b{display:block;font-size:.9rem;font-weight:650}
.ve-option small{display:block;margin-top:3px;color:var(--vm);font-size:.74rem;line-height:1.35}
.ve-option i{color:var(--va);font-size:.8rem;font-style:normal;font-weight:750;white-space:nowrap}
.ve-booking-out{position:sticky;top:24px;padding:32px;border:1px solid var(--vl);border-radius:20px;background:var(--vd);color:#f4efe7}
.ve-dates{margin:0 0 18px;color:#c9bfb4;font-size:.82rem;letter-spacing:.02em}
.ve-total{display:flex;flex-direction:column;gap:6px;padding-bottom:22px;border-bottom:1px solid #ffffff1f}
.ve-total small{color:#a4998d;font-size:.61rem;font-weight:800;letter-spacing:.16em}
.ve-total strong{font-size:clamp(2.5rem,4.4vw,3.5rem);line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.ve-total i{color:#d9a2ad;font-size:.45em;font-style:normal;font-weight:700}
.ve-total>span{color:#a4998d;font-size:.78rem}
.ve-recap{margin:20px 0;padding:0;list-style:none}
.ve-recap li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:11px 0;border-bottom:1px solid #ffffff14;font-size:.83rem}
.ve-recap span{color:#a4998d}
.ve-recap b{font-variant-numeric:tabular-nums}
.ve-state{margin:0 0 16px;padding:13px 15px;border:1px solid #ffffff1f;border-radius:11px;color:#c9bfb4;font-size:.79rem;line-height:1.45}
.ve-state[data-error]{border-color:#d9a2ad66;color:#f0bcc6;background:#d9a2ad12}
.ve-booking-out .ve-button{color:var(--vd);background:#f4efe7;box-shadow:none}
.ve-booking-out .ve-button span{background:var(--va);color:#fdf9f4}
.ve-booking-out .ve-disclaimer{color:#96897d}

/* -------------------------------------------------------------- déroulé */
.ve-steps{padding:140px 0}
.ve-step-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;overflow:hidden;border:1px solid var(--vl);border-radius:18px;background:var(--vl)}
.ve-step-grid article{padding:30px 26px 34px;background:#fbf8f3}
.ve-step-grid span{color:var(--va);font-size:.7rem;font-weight:800;letter-spacing:.1em}
.ve-step-grid h3{margin:18px 0 9px;font-size:1.2rem}
.ve-step-grid p{margin:0;color:var(--vm);font-size:.9rem;line-height:1.6}
.ve-key{display:grid;grid-template-columns:1.02fr .98fr;gap:44px;align-items:center;margin-top:66px}
/* height:auto est indispensable : sans lui, l'attribut height du HTML l'emporte
   sur aspect-ratio et l'image se déroule sur toute sa hauteur intrinsèque. */
.ve-key img{width:100%;height:auto;max-width:620px;aspect-ratio:3/2;object-fit:cover;border-radius:16px}
.ve-key p{margin:0;font-size:clamp(1.4rem,2.6vw,2.1rem);line-height:1.35;letter-spacing:-.025em}

/* ------------------------------------------------------------ conditions */
.ve-terms{padding:130px 0;background:var(--vd);color:#f4efe7}
.ve-terms h2{color:#f4efe7}
.ve-terms h2 em{color:#d9a2ad!important;-webkit-text-fill-color:#d9a2ad!important}
.ve-terms .ve-kicker{color:#d9a2ad}
.ve-terms-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:52px 0 0;overflow:hidden;border:1px solid #ffffff1a;border-radius:18px;background:#ffffff1a}
.ve-terms-grid>div{padding:28px 30px 32px;background:var(--vd)}
.ve-terms dt{margin:0 0 9px;font-size:1.1rem;font-weight:650}
.ve-terms dd{margin:0;color:#a4998d;line-height:1.6}

/* ----------------------------------------------------------------- gains */
.ve-gains{padding:130px 0}
.ve-gain-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px}
.ve-gain-grid article{padding:32px 28px 36px;border:1px solid var(--vl);border-radius:18px;background:#fbf8f3}
.ve-gain-grid h3{margin:0 0 11px;font-size:1.25rem}
.ve-gain-grid p{margin:0;color:var(--vm);line-height:1.65}

/* ------------------------------------------------------------------- fin */
.ve-end{position:relative;min-height:80vh;display:flex;align-items:center;isolation:isolate;overflow:hidden;background:#e8e0d4}
.ve-end>img,.ve-end-shade{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover}
.ve-end-shade{z-index:-1;background:linear-gradient(90deg,#f4efe7f2 0%,#f4efe7c4 48%,#f4efe733),linear-gradient(0deg,#f4efe7d9 0%,transparent 42%)}
.ve-end .wrap{padding:110px 0}
.ve-end .wrap>p:first-child{color:var(--va);font-size:.66rem;font-weight:800;letter-spacing:.18em}
.ve-end h2{max-width:820px}
.ve-end .wrap>p:not(:first-child){max-width:560px;margin:24px 0 32px;color:#5d554d;font-size:1.04rem;line-height:1.65}
.ve-end .ve-back{display:inline-flex;margin-left:28px}
.velor-concept-page .site-footer{border-radius:0}

@media(max-width:1000px){
  .ve-booking-grid,.ve-key{grid-template-columns:1fr;gap:26px}
  .ve-booking-out{position:static}
  .ve-head{grid-template-columns:1fr;gap:18px}
  .ve-head>p{max-width:560px}
  .ve-proof-grid,.ve-step-grid,.ve-terms-grid{grid-template-columns:repeat(2,1fr)}
  .ve-gain-grid{grid-template-columns:1fr}
  .ve-page .wrap{width:min(100% - 34px,1240px)}
  .ve-brandbar{grid-template-columns:1fr auto}
  .ve-brandbar .ve-concept{display:none}
  .ve-fleet-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:18px}
  .ve-car{flex:0 0 min(76vw,380px);scroll-snap-align:start}
  .ve-key img{max-width:520px}
}
@media(max-width:600px){
  .velor-concept-page .site-header{inset:12px 12px auto auto}
  .velor-concept-page .menu-button{top:12px;right:12px;width:54px;height:54px}
  .velor-concept-page .mobile-panel{top:76px;right:12px;width:calc(100vw - 24px);max-height:calc(100svh - 88px)}
  /* Hero mobile : marque, titre, une phrase, une action. Rien de plus. */
  .ve-hide-mobile{display:none}
  .ve-hero-media img{object-position:center center}
  .ve-hero-shade{background:linear-gradient(0deg,#f4efe7e6 0%,#f4efe79e 20%,#f4efe73d 50%,#f4efe78f 100%)}
  .ve-hero-copy{padding:clamp(120px,16vh,190px) 0 62px}
  .ve-hero-copy h1{margin:12px 0 16px;font-size:12.2vw}
  .ve-lead{font-size:1rem;line-height:1.55}
  .ve-hero-actions{align-items:flex-start;flex-direction:column;gap:16px;margin-top:26px}
  .ve-brandbar{top:26px;grid-template-columns:1fr;padding-right:64px;text-align:center}
  .ve-brandbar span{display:none}
  .ve-brandbar strong{font-size:1.02rem}
  .ve-page h2{font-size:10.8vw}
  .ve-fleet,.ve-booking,.ve-steps,.ve-terms,.ve-gains{padding:84px 0}
  .ve-proof-grid>div{padding:24px 16px}
  .ve-booking-form,.ve-booking-out{padding:22px 18px;border-radius:16px}
  .ve-vehicles,.ve-km{grid-template-columns:1fr}
  .ve-field-row{grid-template-columns:1fr}
  .ve-step-grid,.ve-terms-grid{grid-template-columns:1fr}
  .ve-key p{font-size:1.25rem}
  .ve-end{min-height:88vh}
  .ve-end .ve-button,.ve-end .ve-back{display:flex;width:max-content;margin:0 0 18px}
}
