/* ============================================================
   DALLAS RIVIERA — Wireframes (mid-fi)
   Vintage Riviera chic · sand / navy / terracotta
============================================================ */
/* Empêche les navigateurs mobiles de colorer en bleu les numéros
   de téléphone détectés automatiquement : ils gardent la couleur du texte. */
a[href^="tel:"]{ color:inherit; text-decoration:none; }

/* Bouton bascule de langue FR / EN */
.lang-toggle{
  font-family:var(--mono, monospace); font-size:12px; font-weight:700;
  letter-spacing:.08em; color:#fff; background:rgba(255,255,255,.14);
  border:1.5px solid rgba(255,255,255,.55); border-radius:999px;
  padding:5px 13px; margin-left:16px; cursor:pointer; line-height:1;
  vertical-align:middle; transition:background .15s ease, color .15s ease; text-decoration:none;
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
}
.lang-toggle:hover{ background:#fff; color:var(--terra, #CB7C52); }
:root{
  --paper:#FFFFFF;        /* desk behind the frame   */
  --paper-2:#F4F6F8;
  --cream:#FFFFFF;        /* site surface            */
  --cream-2:#E7D8BE;      /* sable chaud             */
  --ink:#1B2531;          /* navy ink                */
  --ink-2:#3C4756;
  --ink-soft:#6A7484;
  --line:rgba(27,37,49,.16);
  --line-2:rgba(27,37,49,.28);
  --terra:#CB7C52;        /* terracotta Estérel (adouci) */
  --terra-d:#B0653E;
  --sea:#8C7C68;          /* taupe accent            */
  --sea-soft:#E7DFD2;
  --mustard:#E7A526;      /* sunny yellow accent     */
  --mustard-soft:#FBEBC2;
  --avail:#3F9D6B;        /* available green         */
  --avail-soft:#D2EDD9;
  --booked:#D98C72;       /* booked terracotta       */
  --booked-soft:#F4DAD0;
  --sel:#BC6240;          /* selection               */
  --radius:4px;
  --shadow:0 18px 40px -22px rgba(27,37,49,.45);
  --serif:"Bodoni Moda", Georgia, serif;
  --sans:"Jost", system-ui, sans-serif;
  --mono:"Space Mono", ui-monospace, monospace;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
html{ scroll-behavior:smooth; }
body{
  font-family:var(--sans);
  background:var(--cream);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}

/* ---------- annotation / wireframe markers ---------- */
.anno{ font-family:var(--mono); font-size:11px; letter-spacing:.02em; color:var(--sea); }
.anno::before{ content:"// "; opacity:.6; }
.flag{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.04em;
  color:#5d6f50; background:var(--avail-soft);
  border:1px dashed #9bab86; border-radius:2px;
  padding:3px 7px; display:inline-block; line-height:1.2;
}
.flag.terra{ color:var(--terra-d); background:#efddcf; border-color:#c8a386; }
.flag.sea{ color:#3f6470; background:var(--sea-soft); border-color:#9fbcc1; }

/* image placeholder slot */
.slot{
  position:relative; border:1.5px dashed var(--line-2); border-radius:var(--radius);
  background:
    repeating-linear-gradient(45deg, rgba(27,37,49,.05) 0 8px, transparent 8px 16px),
    var(--cream-2);
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-soft); font-family:var(--mono); font-size:11px;
  text-align:center; padding:10px; overflow:hidden;
}
.slot.photo{ border-style:solid; border-color:var(--line); background:none; }
.slot.photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.slot .tag{
  position:absolute; left:8px; bottom:8px; background:rgba(27,37,49,.78); color:#F5F0E5;
  font-family:var(--mono); font-size:10px; padding:2px 6px; border-radius:2px; letter-spacing:.03em;
}

/* ====================================================
   APP CHROME (wireframe toolbar)
==================================================== */
.appbar{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; gap:18px;
  padding:11px 22px;
  background:rgba(27,37,49,.97);
  color:var(--cream);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.appbar .brand{ display:flex; align-items:center; gap:11px; }
.appbar .brand .dr{
  width:30px;height:30px;border:1.5px solid var(--mustard); color:var(--mustard);
  border-radius:50%; display:grid; place-items:center;
  font-family:var(--serif); font-weight:700; font-size:13px;
}
.appbar .brand b{ font-family:var(--serif); font-weight:600; font-size:15px; letter-spacing:.02em; }
.appbar .brand span{ font-family:var(--mono); font-size:10.5px; opacity:.6; letter-spacing:.05em; }
.tabs{ display:flex; gap:4px; flex-wrap:wrap; margin-left:auto; }
.tab{
  font-family:var(--sans); font-size:12.5px; letter-spacing:.04em; text-transform:uppercase;
  color:rgba(245,240,229,.62); background:transparent; border:0; cursor:pointer;
  padding:8px 13px; border-radius:3px; transition:.15s; white-space:nowrap;
}
.tab:hover{ color:var(--cream); background:rgba(255,255,255,.06); }
.tab.active{ color:var(--ink); background:var(--mustard); font-weight:500; }

/* ====================================================
   STAGE + BROWSER FRAME
==================================================== */
.stage{ padding:0; max-width:none; margin:0; }
.screen{ display:none; }
.screen.active{ display:block; }

.screen-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
  margin:0 4px 16px;
}
.screen-head h2{
  font-family:var(--serif); font-weight:600; font-size:23px; margin:0; letter-spacing:.01em;
}
.screen-head .sub{ font-family:var(--mono); font-size:11.5px; color:var(--ink-soft); }

.window{
  background:var(--cream); border:0;
  border-radius:0; overflow:hidden; box-shadow:none;
}
.winbar{
  display:flex; align-items:center; gap:10px; padding:10px 14px;
  background:#E4DCCB; border-bottom:1px solid var(--line);
}
.winbar .dots{ display:flex; gap:6px; }
.winbar .dots i{ width:11px;height:11px;border-radius:50%; background:#C9BFA9; display:block; }
.winbar .url{
  flex:1; font-family:var(--mono); font-size:11.5px; color:var(--ink-soft);
  background:var(--cream); border:1px solid var(--line); border-radius:20px;
  padding:5px 14px; text-align:center; max-width:520px; margin:0 auto;
}

/* ---------- site nav (inside frame) ---------- */
.site-nav{
  display:flex; align-items:center; gap:26px; padding:16px 34px;
  border-bottom:1px solid var(--line);
}
.site-nav img.logo{ height:46px; width:auto; }
.site-nav .nav-links{ display:flex; gap:24px; margin-left:8px; }
.site-nav .nav-links a{
  font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2);
  text-decoration:none;
}
.site-nav .nav-cta{ margin-left:auto; }
.btn{
  font-family:var(--sans); font-size:12.5px; letter-spacing:.05em; text-transform:uppercase;
  border:0; cursor:pointer; border-radius:3px; padding:11px 20px;
  background:var(--terra); color:#F7F1E7; transition:.15s; text-decoration:none; display:inline-block;
}
.btn:hover{ background:var(--terra-d); }
.btn.ghost{ background:transparent; color:var(--ink); border:1px solid var(--line-2); }
.btn.ghost:hover{ background:rgba(27,37,49,.05); }
.btn.sm{ padding:8px 14px; font-size:11.5px; }
.btn.lg{ padding:15px 28px; font-size:13.5px; }
.btn.mustard{ background:var(--mustard); color:var(--ink); }
.btn.navy{ background:var(--ink); color:var(--cream); }
.btn.navy:hover{ background:#0f1722; }

/* ---- Accueil : bandeau plein cadre recréé (texte éditable) ---- */
.home-hero{ position:relative; overflow:hidden; background:#cfe0e9; }
.hh-photo{ display:block; width:100%; height:660px; object-fit:cover; object-position:62% 42%; }
.hh-scrim{ position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(100deg, var(--cream) 0%, rgba(245,245,243,.92) 26%, rgba(245,245,243,.55) 40%, rgba(245,245,243,0) 56%),
    linear-gradient(180deg, rgba(245,245,243,.85) 0%, rgba(245,245,243,0) 22%);
}
.hh-nav{ position:absolute; top:0; left:0; right:0; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:24px; padding:24px 46px; z-index:3; }
.hh-nav .nav-left{ display:flex; gap:30px; }
.hh-nav .nav-right{ display:flex; gap:30px; justify-content:flex-end; align-items:center; }
.hh-nav a{ font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2); text-decoration:none; white-space:nowrap; cursor:pointer; }
.hh-nav a:hover{ color:var(--ink); }
.hh-nav .hh-logo{ height:78px; width:auto; justify-self:center; cursor:pointer; }
.hh-nav .nav-resa{ border:1.5px solid var(--ink); border-radius:3px; padding:9px 20px; color:var(--ink); font-weight:500; }
.hh-nav .nav-resa:hover{ background:var(--ink); color:var(--cream); }
.hh-copy{ position:absolute; left:46px; top:50%; transform:translateY(-50%); z-index:3; max-width:660px; }
.hh-copy h1{ font-family:var(--serif); font-weight:700; font-size:62px; line-height:1.02; letter-spacing:-.005em; margin:0; color:var(--ink); text-wrap:balance; }
.hh-copy .hh-sub{ font-family:var(--sans); font-size:21px; line-height:1.4; color:var(--ink-2); margin:26px 0 32px; max-width:430px; }
.hh-copy .btn.lg{ font-size:14px; padding:16px 30px; }
@media (max-width:760px){
  .hh-copy h1{ font-size:40px; } .hh-photo{ height:560px; }
  .hh-nav .nav-left, .hh-nav .nav-right a:not(.nav-resa){ display:none; }
}
.btn.block{ display:block; width:100%; text-align:center; }

/* ---- Accueil : hero split (texte + vraie photo) ---- */
.split-hero{ display:grid; grid-template-columns:0.92fr 1.08fr; align-items:stretch; border-bottom:1px solid var(--line); }
.sh-text{ display:flex; flex-direction:column; justify-content:center; padding:64px 58px; background:var(--cream); }
.sh-text h1{ font-family:var(--serif); font-weight:700; font-size:52px; line-height:1.04; letter-spacing:-.005em; margin:14px 0 0; color:var(--ink); text-wrap:balance; }
.sh-text .sh-sub{ font-size:18px; line-height:1.5; color:var(--ink-2); margin:22px 0 32px; max-width:400px; }
.sh-text .btn.lg{ align-self:flex-start; font-size:14px; padding:16px 30px; }
.sh-pic{ position:relative; min-height:580px; background:#cdd9dc; }
.sh-pic img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 56%; }
@media (max-width:820px){
  .split-hero{ grid-template-columns:1fr; }
  .sh-text{ padding:44px 34px; } .sh-text h1{ font-size:38px; }
  .sh-pic{ min-height:420px; }
}

/* ====================================================
   HERO (Accueil)
==================================================== */
.hero{ display:grid; grid-template-columns:0.92fr 1.08fr; align-items:stretch; }
.hero .hero-text{
  display:flex; flex-direction:column; justify-content:center;
  padding:46px 50px; background:
    linear-gradient(180deg, rgba(94,135,148,.05), transparent),
    var(--cream);
}
.hero .hero-img{ position:relative; }
.hero .hero-img img{ width:100%; height:100%; min-height:430px; object-fit:cover; object-position:50% 42%; display:block; }
.hero h1{
  font-family:var(--serif); font-weight:700; font-size:50px; line-height:1.02; margin:0;
  color:var(--ink); letter-spacing:-.01em; text-wrap:balance;
}
.hero p.kicker{ font-size:15px; color:var(--ink-2); margin:20px 0 28px; max-width:330px; line-height:1.55; }

/* ===== bandeau défilant (marquee) ===== */
.topmarquee{ position:absolute; top:0; left:0; right:0; z-index:3; background:transparent; overflow:hidden; white-space:nowrap; padding:14px 0; }
.tm-track{ display:inline-flex; align-items:center; animation:tmscroll 30s linear infinite; will-change:transform; }
.tm-item{ font-family:var(--sans); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#fff; padding:0 26px; white-space:nowrap; text-shadow:0 1px 8px rgba(0,0,0,.5); }
.tm-star{ color:rgba(255,255,255,.7); font-size:10px; line-height:1; }
@keyframes tmscroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .tm-track{ animation:none; } }

/* ===== bande véhicules défilante ===== */
.fleet-marquee{ background:var(--cream-2); border-bottom:1px solid var(--line); overflow:hidden; white-space:nowrap; padding:22px 0; }
.fm-track{ display:inline-flex; align-items:stretch; gap:22px; animation:fmscroll 34s linear infinite; will-change:transform; padding:0 11px; }
.fleet-marquee:hover .fm-track{ animation-play-state:paused; }
.fm-card{ flex:none; width:300px; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--cream); cursor:pointer; padding:0; font-family:inherit; text-align:left; display:flex; flex-direction:column; transition:.18s; }
.fm-card:hover{ border-color:var(--terra); transform:translateY(-3px); box-shadow:0 16px 34px -22px rgba(27,37,49,.5); }
.fm-card img{ width:100%; height:172px; object-fit:cover; object-position:center 56%; display:block; }
.fm-name{ font-family:var(--serif); font-weight:500; font-size:16px; color:var(--ink); padding:13px 16px; white-space:nowrap; }
.fm-name b{ color:var(--terra); font-weight:700; }
@keyframes fmscroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .fm-track{ animation:none; } }

/* ===== réservation express ===== */
.resa-express{ background:var(--cream-2); padding:64px 40px; border-bottom:1px solid var(--line); }
.rx-card{ max-width:1140px; margin:0 auto; display:grid; grid-template-columns:0.82fr 1.18fr; border-radius:16px; overflow:hidden; box-shadow:0 30px 70px -42px rgba(27,37,49,.55); }
.rx-side{ position:relative; padding:44px 40px; background:linear-gradient(160deg, #EFE8DA 0%, #E6DDCB 60%, #DBD0BB 100%); color:#4A4136; display:flex; flex-direction:column; justify-content:center; text-align:center; align-items:center; }
.rx-side::after{ content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(120% 70% at 0% 0%, rgba(255,255,255,.25), transparent 60%); }
.rx-eyebrow{ position:relative; z-index:1; margin:0 0 14px; font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); }
.rx-title{ position:relative; z-index:1; margin:0 0 14px; font-family:var(--serif); font-weight:700; font-size:40px; line-height:1.04; letter-spacing:-.01em; }
.rx-title .acc{ color:var(--terra); }
.rx-lede{ position:relative; z-index:1; margin:0 0 16px; font-size:14px; line-height:1.65; color:#5A5043; max-width:340px; }
.rx-price{ position:relative; z-index:1; margin:0 0 4px; font-family:var(--serif); font-size:18px; color:var(--ink); }
.rx-price sup{ color:var(--terra); font-size:.55em; top:-.9em; }
.rx-price-note{ position:relative; z-index:1; margin:0 0 24px; font-size:12px; color:var(--ink-soft); font-style:italic; }
.rx-price-note sup{ color:var(--terra); }
.rx-price b{ color:var(--terra); font-weight:700; font-size:26px; }
.rx-phone{ position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; gap:13px; text-decoration:none; color:#fff; background:var(--terra); border:1px solid var(--terra); border-radius:10px; padding:13px 22px; transition:.16s; margin-bottom:26px; }
.rx-phone:hover{ background:var(--terra-d); border-color:var(--terra-d); color:#fff; transform:translateY(-1px); }
.rx-ph-ic{ width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.18); display:grid; place-items:center; font-size:15px; flex:none; }
.rx-whatsapp{ position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; gap:13px; text-decoration:none; color:#fff; background:#25D366; border:1px solid #25D366; border-radius:10px; padding:13px 22px; transition:.16s; margin-bottom:26px; }
.rx-whatsapp:hover{ background:#1da851; border-color:#1da851; transform:translateY(-1px); }
.rx-wa-ic{ width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.2); display:grid; place-items:center; font-size:17px; flex:none; }
.rx-whatsapp span:last-child{ display:flex; flex-direction:column; align-items:center; text-align:center; font-family:var(--serif); font-weight:600; font-size:19px; line-height:1.15; }
.rx-whatsapp small{ font-family:var(--mono); font-weight:400; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.85); margin-bottom:3px; }
.rx-daterow{ display:flex; align-items:center; gap:10px; }
.rx-daterow input{ flex:1; min-width:0; }
.rx-arrow{ color:var(--terra); font-weight:700; flex:none; }
.rx-opts{ display:flex; flex-wrap:wrap; gap:8px; }
.rx-chip{ display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:12.5px; color:#4A4136; background:#fff; border:1px solid var(--line-2); border-radius:20px; padding:7px 13px; cursor:pointer; transition:.14s; }
.rx-chip:hover{ border-color:var(--terra); }
.rx-chip input{ accent-color:var(--terra); width:14px; height:14px; }
.rx-phone span{ display:flex; flex-direction:column; align-items:center; text-align:center; font-family:var(--serif); font-weight:600; font-size:19px; line-height:1.15; }
.rx-phone small{ font-family:var(--mono); font-weight:400; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.78); margin-bottom:3px; }
.rx-points{ position:relative; z-index:1; list-style:none; margin:auto 0 0; padding:0; display:flex; flex-direction:column; gap:11px; }
.rx-points li{ display:flex; align-items:center; gap:11px; font-size:13px; color:#5A5043; }
.rx-dot{ width:7px; height:7px; border-radius:50%; background:var(--terra); flex:none; }

.rx-form{ background:var(--cream); padding:40px; display:flex; flex-direction:column; gap:16px; }
.rx-form-title{ font-family:var(--serif); font-weight:700; font-size:30px; color:var(--terra); margin:0 0 6px; }
.rx-row{ display:grid; gap:16px; }
.rx-row.two{ grid-template-columns:1fr 1fr; }
.rx-field{ display:flex; flex-direction:column; gap:7px; }
.rx-field > span{ font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.02em; color:var(--ink); }
.rx-field input, .rx-field select, .rx-field textarea{ font-family:var(--sans); font-size:14px; color:var(--ink); background:#fff; border:1.5px solid var(--line-2); border-radius:9px; padding:13px 15px; transition:.16s; width:100%; }
.rx-field textarea{ min-height:96px; resize:vertical; }
.rx-field input:focus, .rx-field select:focus, .rx-field textarea:focus{ outline:none; border-color:var(--terra); box-shadow:0 0 0 4px rgba(188,98,64,.12); }
.rx-field input::placeholder, .rx-field textarea::placeholder{ color:#aab1ad; }
.rx-submit{ align-self:flex-start; margin-top:4px; font-family:var(--sans); font-size:14px; font-weight:700; letter-spacing:.04em; color:#F7F1E7; background:var(--terra); border:0; border-radius:9px; padding:15px 28px; cursor:pointer; transition:.16s; box-shadow:0 16px 30px -16px rgba(188,98,64,.65); }
.rx-submit:hover{ background:var(--terra-d); transform:translateY(-1px); }

@media (max-width:840px){
  .rx-card{ grid-template-columns:1fr; }
  .rx-row.two{ grid-template-columns:1fr; }
  .resa-express{ padding:44px 22px; }
}

/* ===== grilles tarifaires ===== */
.tarifs-sec{ background:var(--cream-2); padding:64px 40px; border-bottom:1px solid var(--line); }
.tarifs-head{ text-align:center; margin-bottom:38px; }
.tarifs-head .th-mid{ text-align:center; }
.tarifs-head .th-veh{ width:230px; height:140px; object-fit:cover; border-radius:10px; box-shadow:0 16px 34px -22px rgba(27,37,49,.5); flex:none; }
@media (max-width:760px){ .tarifs-head{ flex-direction:column; gap:18px; } .tarifs-head .th-veh{ width:100%; max-width:320px; } }
.tarifs-head .ey{ font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); margin:0 0 12px; }
.tarifs-title{ font-family:var(--serif); font-weight:700; font-size:52px; line-height:1; margin:0; color:var(--terra); letter-spacing:-.01em; }
.tarifs-deals{ font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin:14px 0 0; }
.tarifs-grid{ max-width:880px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.tarif-card{ border:1px solid var(--line); border-radius:14px; background:#fff; overflow:hidden; box-shadow:0 22px 50px -34px rgba(27,37,49,.5); display:flex; flex-direction:column; }
.tc-head{ display:flex; align-items:center; gap:14px; padding:20px 26px 16px; border-bottom:1px solid var(--line); }
.tc-thumbs{ display:flex; flex:none; }
.tc-thumbs img{ width:52px; height:42px; border-radius:8px; object-fit:cover; border:2px solid #fff; box-shadow:0 4px 10px -5px rgba(27,37,49,.4); }
.tc-thumbs img:nth-child(2){ margin-left:-16px; }
.tc-head h3{ font-family:var(--serif); font-weight:700; font-size:22px; margin:0; color:var(--ink); white-space:nowrap; }
.tc-head > div{ min-width:0; }
.tc-head span{ font-size:12px; color:var(--ink-soft); }
.tc-rows{ list-style:none; margin:0; padding:8px 26px 6px; }
.tc-rows li{ display:flex; align-items:baseline; justify-content:space-between; padding:15px 0; border-bottom:1px dashed var(--line); }
.tc-rows li:last-child{ border-bottom:0; }
.tc-rows li span{ font-size:14px; letter-spacing:.04em; text-transform:uppercase; font-family:var(--mono); color:var(--ink-soft); white-space:nowrap; }
.tc-rows li b{ font-family:var(--serif); font-weight:700; font-size:26px; color:var(--terra); white-space:nowrap; }
.tc-cta{ margin:6px 26px 26px; text-align:center; background:var(--terra); color:#F7F1E7; font-family:var(--sans); font-size:13.5px; letter-spacing:.05em; padding:14px; border-radius:9px; text-decoration:none; cursor:pointer; transition:.15s; }
.tc-cta:hover{ background:var(--terra-d); transform:translateY(-1px); }
.tarifs-note{ max-width:880px; margin:26px auto 0; text-align:center; font-size:12.5px; color:var(--ink-soft); letter-spacing:.02em; }
.tarifs-consult{ max-width:880px; margin:10px auto 0; text-align:center; font-size:13.5px; color:var(--ink-2); }
.tarifs-consult a{ color:var(--terra); font-weight:600; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.tarifs-consult a:hover{ color:var(--terra-d); }
.tc-price sup{ font-size:.5em; color:var(--terra); top:-.8em; }
.tarifs-consult-actions{ max-width:880px; margin:16px auto 0; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; }
.tcc-label{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-right:4px; }
.tcc-btn{ display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--ink); text-decoration:none; padding:9px 16px; border:1.5px solid var(--line-2); border-radius:999px; background:#fff; transition:.14s; }
.tcc-btn:hover{ border-color:var(--terra); color:var(--terra-d); transform:translateY(-1px); }
.tcc-btn .tcc-ic{ color:var(--terra); font-size:14px; }
.tcc-btn.wa{ border-color:#cfe5d4; }
.tcc-btn.wa .tcc-ic{ color:#3F9D6B; }
.tcc-btn.wa:hover{ border-color:#3F9D6B; color:#2f7e53; }
@media (max-width:740px){ .tarifs-grid{ grid-template-columns:1fr; } .tarifs-head h2{ font-size:30px; } }

/* ===== tarifs : bloc unique regroupé ===== */
.tarifs-grid.solo{ grid-template-columns:1fr; max-width:520px; }
.tc-combined{ align-items:center; text-align:center; padding:32px 32px 28px; gap:0; }
.tc-photos{ display:flex; justify-content:center; gap:14px; margin-bottom:22px; }
.tc-photos img{ width:132px; height:98px; border-radius:11px; object-fit:cover; border:1px solid var(--line); box-shadow:0 10px 22px -12px rgba(27,37,49,.5); }
.tc-combined h3{ font-family:var(--serif); font-weight:700; font-size:27px; margin:0; color:var(--ink); }
.tc-combined .tc-sub{ font-size:13px; color:var(--ink-soft); margin:5px 0 0; }
.tc-price{ font-family:var(--serif); font-size:17px; color:var(--ink-2); margin:20px 0 0; line-height:1.2; }
.tc-price b{ display:block; color:var(--terra); font-weight:700; font-size:30px; margin-top:4px; }
.tc-combined .tc-cta{ margin:22px 0 0; width:100%; max-width:320px; font-size:20px; font-weight:600; letter-spacing:.06em; padding:19px; }

/* ===== bandeau "Idéal pour" ===== */
.ideal-band{ background:#E7DFD2; border-top:1px solid rgba(60,71,86,.12); box-shadow:inset 0 -1px 0 rgba(60,71,86,.12); padding:13px 18px; overflow-x:auto; scrollbar-width:none; }
.ideal-band::-webkit-scrollbar{ display:none; }
.ideal-inner{ max-width:1240px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; }
.ideal-label{ font-family:var(--serif); font-style:italic; font-weight:500; font-size:22px; color:#6E4A34; padding-right:16px; white-space:nowrap; flex:none; }
.ideal-item{ display:flex; align-items:center; gap:8px; padding:3px 13px; border-left:1px solid rgba(110,74,52,.22); flex:none; }
.ideal-item:first-child{ border-left:0; }
.ideal-ic{ width:22px; height:22px; flex:none; color:var(--terra-d); }
.ideal-ic svg{ width:100%; height:100%; display:block; }
.ideal-txt{ font-family:var(--sans); font-size:10.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:#5E4332; line-height:1.2; white-space:nowrap; }
@media (max-width:980px){ .ideal-inner{ justify-content:flex-start; } }

/* ===== bandeau plein cadre : photo + texte par-dessus ===== */
.banner{ position:relative; width:100%; height:580px; overflow:hidden; background:#2A2521; }
.banner-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 50%; display:block; }
.banner-scrim{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(15,12,9,.5) 0%, rgba(15,12,9,.12) 16%, rgba(15,12,9,0) 32%),
            linear-gradient(100deg, rgba(15,12,9,.6) 0%, rgba(15,12,9,.34) 30%, rgba(15,12,9,.05) 52%, transparent 64%); }
.banner .hotspot{ position:absolute; display:block; border-radius:5px; cursor:pointer; transition:.15s; z-index:3; }

.bp-logo{ position:absolute; top:50px; left:50%; transform:translateX(-50%); right:auto; bottom:auto; width:168px; height:auto; z-index:3; cursor:pointer; filter:drop-shadow(0 2px 10px rgba(0,0,0,.5)); }
.banner-eyebrow{ position:absolute; left:4.8%; top:120px; margin:0; z-index:2; font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#CB7C52; text-shadow:0 1px 8px rgba(0,0,0,.5); }
.bp-head{ position:absolute; left:4.5%; top:158px; max-width:46%; margin:0; z-index:2;
  font-family:var(--serif); font-weight:700; font-size:39px; line-height:1.08; letter-spacing:-.01em; color:#F8F4EC; text-wrap:balance; text-shadow:0 2px 20px rgba(0,0,0,.45); }
.bp-head .acc{ color:#E9B79A; }
.bp-sub{ position:absolute; left:4.6%; bottom:96px; top:auto; max-width:42%; margin:0; z-index:2; font-family:var(--sans); font-size:16px; line-height:1.5; color:rgba(248,244,236,.95); text-shadow:0 1px 12px rgba(0,0,0,.55); }
.bp-sub b{ font-weight:600; color:#fff; }
.bp-cta{ position:absolute; left:4.6%; top:404px; display:inline-block; background:var(--terra); color:#F7F1E7;
  font-family:var(--sans); font-size:14px; letter-spacing:.05em; padding:13px 26px; border-radius:4px; text-decoration:none; cursor:pointer; transition:.15s; box-shadow:0 14px 28px -14px rgba(0,0,0,.65); z-index:3; }
.bp-cta:hover{ background:var(--terra-d); transform:translateY(-1px); }
.bp-note{ position:absolute; left:4.6%; bottom:28px; right:auto; top:auto; margin:0; z-index:3; max-width:42%;
  font-family:var(--sans); font-size:16px; letter-spacing:.04em; color:#CB7C52; text-shadow:0 1px 10px rgba(0,0,0,.55); text-align:left; line-height:1.5; }
.bp-note b{ color:#CB7C52; font-weight:600; }

/* nav — haut droite sur la photo, en blanc */
.banner-nav{ position:absolute; top:66px; right:26px; display:flex; align-items:center; gap:22px; z-index:3; }
.banner-nav a{ font-family:var(--sans); font-size:13.5px; letter-spacing:.04em; color:#fff; text-decoration:none; cursor:pointer; transition:.15s; white-space:nowrap; text-shadow:0 1px 7px rgba(0,0,0,.55); }
.banner-nav a:hover{ color:#E9B79A; }
.banner-nav a.bn-btn{ background:var(--terra); border:0; color:#F7F1E7; padding:9px 18px; border-radius:4px; letter-spacing:.05em; text-shadow:none; }
.banner-nav a.bn-btn:hover{ background:var(--terra-d); color:#fff; }

@media (max-width:860px){
  .banner{ height:440px; }
  .bp-head{ font-size:26px; max-width:70%; }
  .bp-sub, .bp-cta, .bp-note{ max-width:70%; }
}
.feature-bar{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  background:var(--cream-2); border-top:1px solid var(--line);
}
.feature{ padding:24px 26px; text-align:center; border-right:1px solid var(--line); }
.feature:last-child{ border-right:0; }
.feature .ic{ width:30px;height:30px; margin:0 auto 12px; border:1.5px solid var(--terra); border-radius:50%; display:grid; place-items:center; color:var(--terra); font-size:14px; }
.feature h4{ font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; margin:0 0 7px; color:var(--terra-d); }
.feature p{ font-size:12px; color:var(--ink-soft); margin:0; line-height:1.5; }

.note-rail{ display:flex; flex-wrap:wrap; gap:10px; margin:14px 4px 0; }

/* ====================================================
   VEHICLES GRID
==================================================== */
.veh-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; padding:30px 34px 38px; }
@media (max-width:820px){ .veh-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .veh-grid{ grid-template-columns:1fr; } }
.veh-card{ border:1px solid var(--line); border-radius:6px; overflow:hidden; background:var(--cream); display:flex; flex-direction:column; }
.veh-card .ph{ aspect-ratio:16/9; height:auto; position:relative; background:var(--sea-soft); }
.veh-card .ph img{ object-position:center 42%; }
#vehGrid .ph.photo img{ object-fit:contain; object-position:center; }
.veh-card .ph .badge{
  position:absolute; top:12px; left:12px; font-family:var(--mono); font-size:10.5px;
  padding:4px 9px; border-radius:2px; letter-spacing:.03em;
}
.badge.av{ background:var(--avail-soft); color:#516343; border:1px solid #9bab86; }
.badge.bk{ background:var(--booked-soft); color:#8a5446; border:1px solid #d3a497; }
.veh-card .body{ padding:18px 20px 20px; display:flex; flex-direction:column; gap:10px; flex:1; }
.veh-card h3{ font-family:var(--serif); font-weight:600; font-size:21px; margin:0; }
.veh-card .specs{ display:flex; gap:8px; flex-wrap:wrap; }
.chip{ font-size:11px; letter-spacing:.03em; color:var(--ink-2); border:1px solid var(--line); border-radius:20px; padding:4px 11px; background:var(--cream-2); white-space:nowrap; }
.veh-card .foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; padding-top:12px; border-top:1px solid var(--line); }
.price b{ font-family:var(--serif); font-size:22px; font-weight:600; }
.price span{ font-size:11px; color:var(--ink-soft); }

/* ====================================================
   RESERVATION — calendar approaches
==================================================== */
.subtabs{ display:flex; gap:8px; padding:18px 34px 0; flex-wrap:wrap; }
.subtab{
  font-family:var(--sans); font-size:12.5px; cursor:pointer; border:1px solid var(--line-2);
  background:var(--cream-2); color:var(--ink-2); padding:9px 16px; border-radius:4px 4px 0 0;
  border-bottom:0; position:relative; top:1px;
}
.subtab .lab{ font-family:var(--mono); font-size:10px; color:var(--sea); display:block; margin-bottom:2px; }
.subtab.active{ background:var(--cream); color:var(--ink); box-shadow:inset 0 3px 0 var(--mustard); }
.pane{ display:none; padding:26px 34px 38px; border-top:1px solid var(--line); }
.pane.active{ display:block; }
.pane-intro{ display:flex; align-items:flex-start; gap:14px; margin-bottom:22px; }
.pane-intro .num{ font-family:var(--serif); font-size:34px; color:var(--mustard); line-height:1; }
.pane-intro h3{ font-family:var(--serif); font-weight:600; font-size:19px; margin:0 0 5px; }
.pane-intro p{ margin:0; font-size:13px; color:var(--ink-soft); max-width:560px; line-height:1.5; }

/* calendar (month) */
.cal{ border:1px solid var(--line); border-radius:5px; overflow:hidden; background:var(--cream); }
.cal .cal-head{ display:flex; align-items:center; justify-content:space-between; padding:11px 14px; background:var(--cream-2); border-bottom:1px solid var(--line); }
.cal .cal-head b{ font-family:var(--serif); font-weight:600; font-size:15px; }
.cal .cal-head .arrows{ display:flex; gap:6px; }
.cal .cal-head .arrows i{ width:22px;height:22px; display:grid;place-items:center; border:1px solid var(--line); border-radius:3px; font-style:normal; font-size:12px; cursor:pointer; color:var(--ink-2); }
.cal .dow{ display:grid; grid-template-columns:repeat(7,1fr); padding:8px 8px 0; }
.cal .dow span{ text-align:center; font-family:var(--mono); font-size:10px; color:var(--ink-soft); }
.cal .days{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; padding:6px 8px 10px; }
.cal .day{ aspect-ratio:1; display:grid; place-items:center; font-size:12px; border-radius:3px; color:var(--ink-2); cursor:pointer; }
.cal .day.muted{ color:var(--line-2); }
.cal .day.bk{ background:var(--booked-soft); color:#a06354; text-decoration:line-through; cursor:not-allowed; }
.cal .day.sel{ background:var(--sel); color:#fff; }
.cal .day.range{ background:var(--sea-soft); color:var(--ink); border-radius:0; }
.cal-legend{ display:flex; gap:16px; flex-wrap:wrap; margin-top:12px; }
.cal-legend span{ display:flex; align-items:center; gap:6px; font-size:11px; color:var(--ink-soft); }
.cal-legend i{ width:13px;height:13px;border-radius:3px; display:block; }

.cal-grid4{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.cal-mini h4{ font-family:var(--serif); font-weight:600; font-size:15px; margin:0 0 8px; display:flex; align-items:center; gap:8px; }
.cal-mini h4 .sw{ width:11px;height:11px;border-radius:50%; display:inline-block; }

/* timeline / planner (option B) */
.planner{ border:1px solid var(--line); border-radius:5px; overflow:auto; background:var(--cream); }
.planner table{ border-collapse:collapse; width:100%; min-width:760px; }
.planner th, .planner td{ border:1px solid var(--line); padding:0; }
.planner thead th{ background:var(--cream-2); font-family:var(--mono); font-size:10px; font-weight:400; color:var(--ink-soft); height:30px; }
.planner thead th.veh-col, .planner td.veh-col{ text-align:left; padding:0 14px; min-width:172px; background:var(--cream-2); position:sticky; left:0; }
.planner td.veh-col{ background:var(--cream); }
.planner td.veh-col .vc{ display:flex; align-items:center; gap:9px; font-family:var(--serif); font-size:14px; font-weight:600; }
.planner td.veh-col .vc .sw{ width:11px;height:11px;border-radius:50%; }
.planner td.cell{ height:50px; }
.planner td.cell.bk{ background:repeating-linear-gradient(45deg,var(--booked) 0 6px,#b87e6d 6px 12px); }
.planner td.cell.sel{ background:var(--sel); }
.planner td.cell.av:hover{ background:var(--avail-soft); cursor:pointer; }

/* dates-first (option C) */
.datebar{ display:grid; grid-template-columns:1fr 1fr 1.3fr auto; gap:14px; align-items:end; background:var(--cream-2); border:1px solid var(--line); border-radius:6px; padding:18px 20px; }
.field label{ display:block; font-family:var(--mono); font-size:10.5px; color:var(--ink-soft); margin-bottom:6px; letter-spacing:.03em; }
.field .inp{ background:var(--cream); border:1px solid var(--line-2); border-radius:4px; padding:11px 13px; font-family:var(--sans); font-size:13px; color:var(--ink); display:flex; align-items:center; justify-content:space-between; }
.field .inp .ic{ color:var(--ink-soft); font-size:13px; }
.result-row{ display:grid; grid-template-columns:120px 1fr auto; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line); }
.result-row .thumb{ height:74px; border-radius:4px; }
.result-row .info h4{ font-family:var(--serif); font-weight:600; font-size:18px; margin:0 0 4px; }
.result-row .info .specs{ display:flex; gap:7px; }
.result-row .right{ text-align:right; display:flex; flex-direction:column; gap:8px; align-items:flex-end; white-space:nowrap; }

/* ====================================================
   FUNNEL (tunnel de réservation)
==================================================== */
.stepper{ display:flex; align-items:center; gap:0; padding:22px 34px; border-bottom:1px solid var(--line); background:var(--cream-2); flex-wrap:wrap; }
.step{ display:flex; align-items:center; gap:10px; }
.step .n{ width:26px;height:26px;border-radius:50%; border:1.5px solid var(--line-2); display:grid; place-items:center; font-family:var(--mono); font-size:12px; color:var(--ink-soft); background:var(--cream); }
.step .t{ font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); }
.step.done .n{ background:var(--avail); border-color:var(--avail); color:#fff; }
.step.active .n{ background:var(--ink); border-color:var(--ink); color:var(--mustard); }
.step.active .t{ color:var(--ink); font-weight:500; }
.step .bar{ width:38px; height:1px; background:var(--line-2); margin:0 14px; }

.funnel{ display:grid; grid-template-columns:1.6fr 1fr; gap:0; }
.funnel .form-col{ padding:28px 34px 38px; border-right:1px solid var(--line); }
.funnel .recap-col{ padding:28px 30px 38px; background:var(--cream-2); }
.fs{ margin-bottom:26px; }
.fs > .lab{ font-family:var(--mono); font-size:11px; color:var(--sea); margin-bottom:12px; display:block; }
.fs h3{ font-family:var(--serif); font-weight:600; font-size:18px; margin:0 0 14px; }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.opt-row{ display:flex; align-items:center; gap:13px; padding:14px 16px; border:1px solid var(--line); border-radius:5px; background:var(--cream); margin-bottom:10px; }
.opt-row .box{ width:20px;height:20px;border:1.5px solid var(--line-2); border-radius:4px; flex:none; }
.opt-row.on .box{ background:var(--terra); border-color:var(--terra); position:relative; }
.opt-row.on .box::after{ content:"✓"; color:#fff; font-size:13px; position:absolute; inset:0; display:grid; place-items:center; }
.opt-row .ot{ flex:1; }
.opt-row .ot b{ font-size:13.5px; font-weight:500; }
.opt-row .ot span{ display:block; font-size:11.5px; color:var(--ink-soft); margin-top:2px; }
.opt-row .op{ font-family:var(--serif); font-weight:600; font-size:15px; }

.recap-card{ border:1px solid var(--line); border-radius:6px; overflow:hidden; background:var(--cream); }
.recap-card .rc-img{ height:120px; }
.recap-card .rc-body{ padding:16px 18px; }
.recap-card h4{ font-family:var(--serif); font-weight:600; font-size:17px; margin:0 0 12px; }
.recap-line{ display:flex; justify-content:space-between; gap:14px; font-size:13px; padding:7px 0; color:var(--ink-2); border-bottom:1px dashed var(--line); }
.recap-line span:last-child{ white-space:nowrap; flex:none; }
.recap-line:last-of-type{ border-bottom:0; }
.recap-total{ display:flex; justify-content:space-between; align-items:baseline; margin-top:12px; padding-top:14px; border-top:1.5px solid var(--ink); }
.recap-total .lbl{ font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); }
.recap-total b{ font-family:var(--serif); font-size:26px; font-weight:600; }
.deposit{ margin-top:14px; background:var(--mustard-soft); border:1px solid #d8c485; border-radius:5px; padding:13px 15px; font-size:12.5px; color:#7a5f1d; line-height:1.5; }
.deposit b{ font-weight:600; }

/* ====================================================
   CONFIRMATION
==================================================== */
.confirm{ padding:54px 34px; text-align:center; max-width:560px; margin:0 auto; }
.confirm .check{ width:64px;height:64px;border-radius:50%; background:var(--avail); color:#fff; display:grid; place-items:center; font-size:30px; margin:0 auto 22px; }
.confirm h2{ font-family:var(--serif); font-weight:600; font-size:30px; margin:0 0 12px; }
.confirm p{ font-size:14px; color:var(--ink-2); line-height:1.6; }
.confirm .ref{ font-family:var(--mono); font-size:13px; background:var(--cream-2); border:1px dashed var(--line-2); border-radius:4px; padding:8px 16px; display:inline-block; margin:8px 0 24px; }
.confirm .next{ text-align:left; border:1px solid var(--line); border-radius:6px; padding:20px 24px; background:var(--cream-2); margin-top:14px; }
.confirm .next h4{ font-family:var(--mono); font-size:11px; color:var(--sea); margin:0 0 12px; letter-spacing:.04em; }
.confirm .next ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:11px; }
.confirm .next li{ display:flex; gap:11px; font-size:13px; color:var(--ink-2); align-items:flex-start; text-align:left; }
.confirm .next li .d{ width:7px;height:7px;border-radius:50%; background:var(--terra); margin-top:6px; flex:none; }

/* ====================================================
   CONTACT
==================================================== */
.contact{ display:grid; grid-template-columns:1fr 1fr; gap:0; }
.contact .c-left{ padding:34px; border-right:1px solid var(--line); }
.contact .c-right{ padding:34px; background:var(--cream-2); }
.contact h3{ font-family:var(--serif); font-weight:600; font-size:22px; margin:0 0 8px; }
.contact .lede{ font-size:13.5px; color:var(--ink-soft); margin:0 0 22px; line-height:1.6; }
.contact .inp{ width:100%; background:var(--cream); border:1px solid var(--line-2); border-radius:4px; padding:12px 14px; font-family:var(--sans); font-size:13px; margin-bottom:13px; color:var(--ink); }
.contact textarea.inp{ min-height:110px; resize:vertical; }
.info-line{ display:flex; gap:13px; align-items:flex-start; padding:13px 0; border-bottom:1px solid var(--line); }
.info-line .ic{ width:34px;height:34px;border:1.5px solid var(--terra); color:var(--terra); border-radius:50%; display:grid; place-items:center; font-size:14px; flex:none; }
.info-line > div{ flex:1; min-width:0; }
.info-line b{ display:block; font-size:13.5px; line-height:1.35; }
.info-line span{ display:block; font-size:12px; color:var(--ink-soft); margin-top:2px; }
.map-slot{ height:180px; margin-top:20px; }
.map-card{ position:relative; margin-top:20px; border:1px solid var(--line); border-radius:8px; overflow:hidden; box-shadow:0 16px 36px -26px rgba(27,37,49,.5); }
.map-frame{ display:block; width:100%; height:230px; border:0; filter:saturate(.9) sepia(.08); }
.map-frame.esterel{ background:url('assets/esterel-scene.webp') center/cover no-repeat; filter:none; }
.map-pin{ position:absolute; left:14px; bottom:14px; display:flex; align-items:center; gap:9px; background:rgba(245,240,229,.95); border:1px solid var(--line); border-radius:30px; padding:7px 14px 7px 11px; box-shadow:0 6px 16px -8px rgba(27,37,49,.5); }
.map-pin .mp-dot{ width:12px; height:12px; border-radius:50%; background:var(--terra); box-shadow:0 0 0 4px rgba(188,98,64,.25); flex:none; }
.map-pin .mp-lab{ font-family:var(--sans); font-size:12.5px; font-weight:500; letter-spacing:.02em; color:var(--ink); white-space:nowrap; }

/* misc */
.section-label{ font-family:var(--mono); font-size:11px; color:var(--sea); letter-spacing:.04em; margin:0 0 4px; }
.center-cta{ text-align:center; padding:8px 0 4px; }
hr.soft{ border:0; border-top:1px solid var(--line); margin:0; }

/* hero eyebrow */
.hero-eyebrow{ font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--terra); margin:0 0 16px; }

/* petite ligne Livraison & Assistance (discrète, claire) */
.assist-band{
  display:flex; align-items:center; justify-content:center; gap:12px;
  background:var(--cream-2); color:var(--ink-2);
  padding:11px 24px; border-bottom:1px solid var(--line);
  font-size:13px; letter-spacing:.02em;
}
.assist-band .ab-ic{ color:var(--terra); font-size:15px; }
.assist-band .ab-lab{ font-weight:500; white-space:nowrap; }
.assist-band .ab-dot{ color:var(--line-2); }
.assist-band .ab-phone{ font-family:var(--serif); font-weight:600; font-size:15px; color:var(--terra); text-decoration:none; white-space:nowrap; }
.assist-band .ab-phone:hover{ color:var(--terra-d); }

/* Contactez-nous (pavé accueil — accordéon) */
.cp-accordion{ background:var(--cream); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cp-summary{ list-style:none; cursor:pointer; display:flex; align-items:baseline; gap:16px;
  padding:24px 40px; font-family:var(--serif); font-weight:600; font-size:24px; color:var(--terra); transition:.15s; }
.cp-summary::-webkit-details-marker{ display:none; }
.cp-summary:hover{ background:var(--cream-2); }
.cp-summary .cps-sub{ font-family:var(--sans); font-weight:400; font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); }
.cp-summary .cps-chev{ margin-left:auto; font-size:16px; color:var(--ink-soft); transition:transform .25s; align-self:center; }
.cp-accordion[open] .cp-summary .cps-chev{ transform:rotate(180deg); }
.contact-pave{ display:grid; grid-template-columns:0.82fr 1.18fr; gap:42px; padding:6px 40px 42px; background:var(--cream); }
.contact-pave h3{ font-family:var(--serif); font-weight:600; font-size:27px; margin:0 0 10px; }
.cp-lede{ font-size:13.5px; color:var(--ink-soft); line-height:1.6; margin:0 0 20px; max-width:330px; }
.cp-form{ display:flex; flex-direction:column; gap:13px; justify-content:center; }
.cp-fields{ display:flex; flex-direction:column; gap:13px; }
.cp-row{ display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.contact-pave .inp{ width:100%; background:var(--cream); border:1px solid var(--line-2); border-radius:4px; padding:12px 14px; font-family:var(--sans); font-size:13px; color:var(--ink); }
.contact-pave textarea.inp{ min-height:128px; resize:vertical; }
.contact-pave .info-line{ align-items:flex-start; }
.contact-pave .info-line > div{ flex:1; min-width:0; }
.contact-pave .info-line b{ white-space:nowrap; font-size:13px; }
.contact-pave .info-line .ic{ margin-top:2px; }

/* ====================================================
   RÉSERVATION GUIDÉE — jours + heures (le seul modèle)
==================================================== */
.resa-head{ padding:30px 34px 6px; }
.resa-head h2{ font-family:var(--serif); font-weight:600; font-size:30px; margin:0 0 8px; }
.resa-head p{ margin:0; font-size:14px; color:var(--ink-soft); max-width:620px; line-height:1.6; }

.resaD{ display:grid; grid-template-columns:1fr 372px; gap:30px; padding:24px 34px 44px; align-items:start; }
.resaD-main{ display:flex; flex-direction:column; gap:26px; }

.dstep{ border:1px solid var(--line); border-radius:10px; padding:22px 24px; background:var(--cream); }

/* grille tarifaire */
.tariff-card{ border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--cream); }
.tariff-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:18px 24px 14px; }
.tariff-head h4{ font-family:var(--serif); font-weight:600; font-size:18px; margin:0; }
.tariff-head span{ font-family:var(--mono); font-size:10.5px; color:var(--ink-soft); letter-spacing:.03em; }
.tariff-table{ width:100%; border-collapse:collapse; }
.tariff-table th, .tariff-table td{ text-align:right; padding:13px 24px; font-size:14px; border-top:1px solid var(--line); }
.tariff-table th{ font-family:var(--mono); font-weight:400; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); background:var(--cream-2); }
.tariff-table th:first-child, .tariff-table td:first-child{ text-align:left; }
.tariff-table td{ font-family:var(--serif); font-weight:600; color:var(--ink); }
.tariff-table td.tv{ display:flex; align-items:center; gap:10px; font-family:var(--sans); font-weight:500; font-size:14px; }
.tariff-table td.tv .sw{ width:14px;height:14px;border-radius:4px; border:1px solid var(--line); }
.tariff-deliv{ display:flex; gap:12px; align-items:flex-start; padding:15px 24px; background:var(--mustard-soft); border-top:1px solid #e7d49a; font-size:12.5px; color:#7a5f1d; line-height:1.5; }
.tariff-deliv b{ font-weight:600; color:#6a521a; }
.tariff-deliv .td-ic{ font-size:16px; line-height:1.2; flex:none; }

/* livraison : champ commune + carte */
.deliv-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:start; }
.deliv-field{ display:block; }
.deliv-field .df-lab{ display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.03em; color:var(--ink-soft); margin-bottom:7px; }
#delivInput{ width:100%; background:var(--cream); border:1.5px solid var(--line-2); border-radius:6px; padding:13px 15px; font-family:var(--sans); font-size:14px; color:var(--ink); }
#delivInput:focus{ outline:none; border-color:var(--sea); box-shadow:0 0 0 3px rgba(46,125,143,.14); }
.deliv-readout{ margin-top:14px; display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:9px; padding:14px 16px; background:var(--cream-2); }
.deliv-readout .dr-badge{ font-family:var(--serif); font-weight:600; font-size:20px; padding:6px 14px; border-radius:7px; white-space:nowrap; }
.deliv-readout .dr-badge.free{ background:var(--avail-soft); color:#2c6b46; }
.deliv-readout .dr-badge.mid{ background:var(--mustard-soft); color:#7a5f1d; }
.deliv-readout .dr-badge.far{ background:var(--booked-soft); color:#a8543c; }
.deliv-readout .dr-txt b{ display:block; font-size:14px; }
.deliv-readout .dr-txt span{ font-size:12px; color:var(--ink-soft); }
.deliv-hint{ font-size:11.5px; color:var(--ink-soft); margin:12px 2px 0; line-height:1.5; }
.deliv-map{ border:1px solid var(--line); border-radius:10px; overflow:hidden; background:linear-gradient(180deg,#dCEBf0,#cfe2e6); }
.deliv-map svg{ width:100%; height:auto; display:block; }
.dm-ring-free{ fill:rgba(63,157,107,.16); }
.dm-ring-mid{ fill:rgba(231,165,38,.13); }
.dm-ring-far{ fill:rgba(217,140,114,.12); }
.dm-ringline{ fill:none; stroke:rgba(27,37,49,.28); stroke-dasharray:3 4; stroke-width:1; }
.dm-rlabel{ font-family:var(--mono); font-size:8px; fill:rgba(27,37,49,.5); }
.dm-dot{ fill:#fff; stroke:var(--ink-2); stroke-width:1.4; cursor:pointer; }
.dm-dot:hover{ stroke:var(--sea); }
.dm-dot.sel{ fill:var(--sea); stroke:#fff; stroke-width:2; }
.dm-dlabel{ font-family:var(--sans); font-size:8.5px; fill:var(--ink-2); pointer-events:none; }
.dm-dlabel.sel{ fill:var(--ink); font-weight:600; }
.dm-center{ fill:var(--terra); stroke:#fff; stroke-width:2; }
.dm-center-lab{ font-family:var(--serif); font-size:10px; font-weight:600; fill:var(--ink); }
.dm-line{ stroke:var(--sea); stroke-width:1.6; }
@media (max-width:680px){ .deliv-wrap{ grid-template-columns:1fr; } }

/* sélecteur de zone de livraison (legacy) */
.zone-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.zone-opt{ display:flex; flex-direction:column; gap:3px; text-align:left; border:1.5px solid var(--line); border-radius:9px; padding:14px 16px; background:var(--cream); cursor:pointer; transition:.15s; font-family:var(--sans); }
.zone-opt:hover{ border-color:var(--sea); }
.zone-opt b{ font-size:13.5px; font-weight:600; }
.zone-opt span{ font-size:11.5px; color:var(--ink-soft); line-height:1.35; }
.zone-opt em{ font-style:normal; font-family:var(--serif); font-weight:600; font-size:17px; margin-top:7px; color:var(--sea); }
.zone-opt.on{ border-color:var(--sea); background:var(--sea-soft); box-shadow:0 0 0 3px rgba(46,125,143,.14); }
@media (max-width:520px){ .zone-grid{ grid-template-columns:1fr; } }
.dstep-head{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.dstep-head .dnum{ width:28px;height:28px;border-radius:50%; background:var(--ink); color:var(--mustard); display:grid; place-items:center; font-family:var(--mono); font-size:13px; flex:none; }
.dstep-head h4{ font-family:var(--serif); font-weight:600; font-size:18px; margin:0; }
.dstep-head .dhint{ font-family:var(--mono); font-size:11px; color:var(--terra); margin-left:auto; }

/* vehicle pills */
.veh-pills{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.veh-pill{ display:flex; align-items:center; gap:12px; border:1.5px solid var(--line); border-radius:8px; padding:11px 14px; cursor:pointer; background:var(--cream); transition:.15s; text-align:left; font-family:var(--sans); }
.veh-pill:hover{ border-color:var(--sea); }
.veh-pill .sw{ width:26px;height:26px;border-radius:6px; flex:none; border:1px solid var(--line); }
.veh-pill .vp-txt{ flex:1; min-width:0; }
.veh-pill .vp-txt b{ display:block; font-size:13.5px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.veh-pill .vp-txt span{ font-size:11px; color:var(--ink-soft); }
.veh-pill.on{ border-color:var(--sea); background:var(--sea-soft); box-shadow:0 0 0 3px rgba(46,125,143,.14); }
.veh-pill.soldout{ opacity:.5; cursor:not-allowed; }
.veh-pill .vp-tag{ font-family:var(--mono); font-size:9.5px; padding:2px 6px; border-radius:3px; background:var(--booked-soft); color:#a8543c; }

/* colorful calendar */
.calD{ border:1px solid var(--line); border-radius:10px; overflow:hidden; max-width:520px; }
.calD .cd-head{ display:flex; align-items:center; justify-content:space-between; padding:14px 18px; background:linear-gradient(120deg,var(--terra),var(--terra-d)); color:#fff; }
.calD .cd-head b{ font-family:var(--serif); font-weight:600; font-size:18px; letter-spacing:.01em; }
.calD .cd-head .arrows{ display:flex; gap:8px; }
.calD .cd-head .arrows i{ width:26px;height:26px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.5); border-radius:6px; cursor:pointer; font-style:normal; font-size:13px; }
.calD .cd-head .arrows i:hover{ background:rgba(255,255,255,.16); }
.calD .cd-dow{ display:grid; grid-template-columns:repeat(7,1fr); padding:12px 12px 0; }
.calD .cd-dow span{ text-align:center; font-family:var(--mono); font-size:10.5px; color:var(--ink-soft); }
.calD .cd-days{ display:grid; grid-template-columns:repeat(7,1fr); gap:5px; padding:8px 12px 14px; }
.calD .cd-day{ aspect-ratio:1; display:grid; place-items:center; font-size:14px; border-radius:8px; color:var(--ink-2); cursor:pointer; position:relative; transition:.12s; }
.calD .cd-day.av{ background:var(--cream-2); color:var(--ink-2); font-weight:500; }
.calD .cd-day.av:hover{ background:#F0DECF; color:var(--terra-d); }
.calD .cd-day.muted{ color:var(--line-2); background:transparent; cursor:default; }
.calD .cd-day.bk{ background:#E7DECF; color:var(--ink-soft); text-decoration:line-through; cursor:not-allowed; opacity:.7; }
.calD .cd-day.range{ background:#F2DECF; color:var(--ink); border-radius:0; }
.calD .cd-day.sel{ background:var(--terra); color:#fff; font-weight:600; box-shadow:0 4px 12px -4px rgba(188,98,64,.6); z-index:1; }
.calD .cd-day.sel.start{ border-radius:8px 0 0 8px; }
.calD .cd-day.sel.end{ border-radius:0 8px 8px 0; }

/* hours */
.hours-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.hours-col{ border:1px solid var(--line); border-radius:9px; padding:16px; background:var(--cream-2); }
.hours-day{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:13px; }
.hours-day .hd-lab{ font-family:var(--mono); font-size:11px; letter-spacing:.04em; color:var(--terra); text-transform:uppercase; }
.hours-day b{ font-family:var(--serif); font-weight:600; font-size:16px; }
.time-slots{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.slot-btn{ font-family:var(--mono); font-size:13px; padding:10px 0; border:1.5px solid var(--line); border-radius:6px; background:var(--cream); color:var(--ink-2); cursor:pointer; transition:.12s; }
.slot-btn:hover{ border-color:var(--terra); color:var(--terra); }
.slot-btn.on{ background:var(--terra); border-color:var(--terra); color:#fff; font-weight:700; }

/* recap */
.resaD-recap{ position:sticky; top:18px; }
.rd-card{ border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--cream); box-shadow:0 16px 36px -24px rgba(27,37,49,.4); }
.rd-veh{ display:block; padding:0; background:var(--cream-2); border-bottom:1px solid var(--line); }
.rd-thumb{ width:100%; height:160px; border-radius:0; flex:none; background:var(--cream-2); }
.rd-thumb.slot.photo img{ object-fit:contain; object-position:center; }
.rd-veh > div{ padding:14px 18px; }
.rd-veh b{ display:block; font-family:var(--serif); font-weight:600; font-size:15px; line-height:1.25; }
.rd-veh span{ font-size:11.5px; color:var(--ink-soft); }
.rd-when{ padding:18px; }
.rd-row{ display:flex; align-items:center; gap:13px; }
.rd-row .rd-ic{ width:30px;height:30px;border-radius:50%; background:#F2DECF; color:var(--terra); display:grid; place-items:center; font-size:15px; flex:none; }
.rd-lab{ display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.04em; color:var(--ink-soft); text-transform:uppercase; }
.rd-row b{ font-size:14.5px; }
.rd-arrow{ width:1px; height:16px; background:var(--line-2); margin:5px 0 5px 14px; }
.rd-dur{ display:flex; align-items:center; justify-content:space-between; margin:0 18px; padding:13px 0; border-top:1px dashed var(--line); border-bottom:1px dashed var(--line); }
.rd-dur span{ font-size:12.5px; color:var(--ink-soft); letter-spacing:.04em; text-transform:uppercase; }
.rd-dur b{ font-family:var(--serif); font-weight:600; font-size:18px; color:var(--terra); white-space:nowrap; }
.rd-price{ padding:16px 18px; }
.rd-pline{ display:flex; justify-content:space-between; gap:12px; font-size:13px; color:var(--ink-2); padding:5px 0; }
.rd-pline span:last-child{ white-space:nowrap; flex:none; }
.rd-pline span:first-child{ white-space:nowrap; }
.rd-total{ display:flex; align-items:baseline; justify-content:space-between; margin-top:10px; padding-top:13px; border-top:1.5px solid var(--ink); }
.rd-total span{ font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); }
.rd-total b{ font-family:var(--serif); font-weight:600; font-size:26px; white-space:nowrap; }
.rd-card .btn.block{ margin:0 18px 18px; width:calc(100% - 36px); }

@media (max-width:1080px){
  .resaD{ grid-template-columns:1fr; }
  .resaD-recap{ position:static; }
}

/* ====================================================
   ACCUEIL — confiance, avis, FAQ
==================================================== */
/* bande de réassurance (trust strip) */
.trust-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--cream); }
.trust-strip .ts{ display:flex; align-items:center; gap:13px; padding:20px 26px; border-right:1px solid var(--line); }
.trust-strip .ts:last-child{ border-right:0; }
.trust-strip .ts .ts-ic{ width:38px;height:38px;border-radius:50%; border:1.5px solid var(--sea); color:var(--sea); display:grid; place-items:center; font-size:17px; flex:none; }
.trust-strip .ts b{ display:block; font-size:13px; font-weight:600; }
.trust-strip .ts span{ font-size:11.5px; color:var(--ink-soft); line-height:1.35; }
@media (max-width:820px){ .trust-strip{ grid-template-columns:repeat(2,1fr); } .trust-strip .ts:nth-child(2){ border-right:0; } }

/* section générique accueil */
.home-sec{ padding:52px 40px; }
.home-sec.alt{ background:var(--cream-2); }
.home-head{ text-align:center; max-width:620px; margin:0 auto 36px; }
.home-head .ey{ font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--terra); margin:0 0 12px; }
.home-head h2{ font-family:var(--serif); font-weight:600; font-size:32px; margin:0 0 12px; letter-spacing:-.01em; }
.home-head p{ margin:0; font-size:14.5px; color:var(--ink-soft); line-height:1.6; }

/* pourquoi nous choisir */
.why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; max-width:1100px; margin:0 auto; }
.why-card{ border:1px solid var(--line); border-radius:14px; padding:28px 24px; background:var(--cream); text-align:left; }
.why-ic{ display:flex; align-items:center; justify-content:center; width:50px; height:50px; border-radius:12px; background:#FBEFE6; color:var(--terra-d); margin-bottom:18px; }
.why-ic svg{ width:26px; height:26px; }
.why-card h3{ font-family:var(--serif); font-weight:600; font-size:19px; margin:0 0 8px; color:var(--ink); }
.why-card p{ margin:0; font-size:13.5px; line-height:1.6; color:var(--ink-2); }
@media (max-width:900px){ .why-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .why-grid{ grid-template-columns:1fr; } }

/* avis clients — bande défilante continue */
.reviews{ max-width:1100px; margin:0 auto; overflow:hidden; }
.reviews-track{ display:inline-flex; align-items:stretch; gap:20px; animation:revscroll 38s linear infinite; will-change:transform; }
.reviews:hover .reviews-track{ animation-play-state:paused; }
.review{ flex:none; width:calc((1100px - 40px)/3); border:1px solid var(--line); border-radius:12px; padding:24px 24px 22px; background:var(--cream); display:flex; flex-direction:column; gap:14px; white-space:normal; }
.review .stars{ color:var(--mustard); font-size:15px; letter-spacing:2px; }
.review p{ margin:0; font-size:14px; line-height:1.6; color:var(--ink-2); font-style:italic; }
.review .who{ display:flex; align-items:center; gap:11px; margin-top:auto; }
.review .who .av{ width:38px;height:38px;border-radius:50%; background:var(--sea-soft); color:var(--sea); display:grid; place-items:center; font-family:var(--serif); font-weight:600; font-size:15px; flex:none; }
.review .who b{ display:block; font-size:13px; }
.review .who span{ font-size:11.5px; color:var(--ink-soft); }
.rating-summary{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:30px; }
.rating-summary .big{ font-family:var(--serif); font-weight:600; font-size:34px; }
.rating-summary .rs-stars{ color:var(--mustard); font-size:17px; letter-spacing:2px; }
.rating-summary .rs-txt{ font-size:12.5px; color:var(--ink-soft); }
.google-reviews-link{ display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 18px; border:1px solid var(--line-2); border-radius:999px; background:var(--cream); color:var(--ink); font-size:12.5px; font-weight:600; text-decoration:none; transition:.15s ease; }
.google-reviews-link:hover{ border-color:var(--terra); color:var(--terra-d); transform:translateY(-1px); }
@keyframes revscroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .reviews-track{ animation:none; } }
@media (max-width:880px){ .review{ width:78vw; } }
@media (max-width:680px){
  .rating-summary{ flex-wrap:wrap; gap:8px 11px; }
  .rating-summary .google-reviews-link{ width:100%; margin-top:8px; }
}

/* FAQ */
.faq{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
.faq-item{ border:1px solid var(--line); border-radius:10px; background:var(--cream); overflow:hidden; }
.faq-q{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; cursor:pointer; font-size:15px; font-weight:500; list-style:none; }
.faq-q::-webkit-details-marker{ display:none; }
.faq-q .ic{ width:24px;height:24px;border-radius:50%; border:1.5px solid var(--line-2); color:var(--ink-soft); display:grid; place-items:center; font-size:15px; flex:none; transition:.2s; }
.faq-item[open] .faq-q .ic{ background:var(--ink); color:var(--mustard); border-color:var(--ink); transform:rotate(45deg); }
.faq-a{ padding:0 22px 20px; font-size:13.5px; color:var(--ink-2); line-height:1.65; }
.faq-a b{ color:var(--ink); }

/* CTA final accueil */
.home-cta{ text-align:center; padding:56px 40px; background:var(--cream-2); color:var(--ink); border-top:1px solid var(--line); }.home-cta h2{ font-family:var(--serif); font-weight:600; font-size:32px; margin:0 0 14px; color:var(--terra); }
.home-cta p{ margin:0 auto 26px; font-size:14.5px; color:var(--ink-soft); max-width:480px; line-height:1.6; }

/* carte Saint-Raphaël */
.map-sec{ background:var(--cream); border-top:1px solid var(--line); padding:56px 40px; }
.map-head{ text-align:center; max-width:560px; margin:0 auto 30px; }
.map-ey{ font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); margin:0 0 12px; }
.map-head h2{ font-family:var(--serif); font-weight:700; font-size:34px; line-height:1.05; margin:0 0 12px; color:var(--ink); }
.map-head h2 .acc{ color:var(--terra); }
.map-sub{ margin:0; font-size:14px; line-height:1.6; color:var(--ink-soft); }
.map-frame{ position:relative; max-width:1100px; margin:0 auto; border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:0 22px 50px -34px rgba(27,37,49,.5); }
.map-frame iframe{ display:block; width:100%; height:380px; border:0; filter:saturate(.92); }
.map-pin{ position:absolute; left:24px; bottom:24px; display:flex; align-items:center; gap:13px; background:var(--cream); border:1px solid var(--line); border-radius:11px; padding:13px 18px 13px 14px; text-decoration:none; color:var(--ink); box-shadow:0 14px 30px -16px rgba(27,37,49,.5); transition:.15s; }
.map-pin:hover{ transform:translateY(-2px); border-color:var(--terra); }
.map-pin .mp-ic{ width:38px; height:38px; border-radius:50%; background:var(--terra); color:#F7F1E7; display:grid; place-items:center; font-size:17px; flex:none; }
.map-pin span{ display:flex; flex-direction:column; font-size:12.5px; color:var(--ink-soft); line-height:1.35; }
.map-pin b{ font-family:var(--serif); font-weight:700; font-size:16px; color:var(--ink); }
@media (max-width:560px){ .map-pin{ left:14px; right:14px; bottom:14px; } .map-frame iframe{ height:300px; } }
.home-cta .btn.mustard{ background:var(--mustard); color:var(--ink); }

/* assurance & garanties */
.insurance{ max-width:1000px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:start; }
.ins-intro h3{ font-family:var(--serif); font-weight:600; font-size:24px; margin:0 0 12px; }
.ins-intro p{ font-size:14px; color:var(--ink-2); line-height:1.65; margin:0 0 16px; }
.ins-badge{ display:inline-flex; align-items:center; gap:9px; background:var(--avail-soft); color:#2c6b46; border:1px solid #bcdccf; border-radius:30px; padding:9px 16px; font-size:13px; font-weight:600; }
.ins-list{ border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--cream); }
.ins-item{ display:flex; align-items:center; gap:13px; padding:15px 20px; border-bottom:1px solid var(--line); font-size:13.5px; }
.ins-item:last-child{ border-bottom:0; }
.ins-item .ii-ic{ width:32px;height:32px;border-radius:50%; background:var(--sea-soft); color:var(--sea); display:grid; place-items:center; font-size:15px; flex:none; }
.ins-item > div{ flex:1; min-width:0; }
.ins-item b{ display:block; font-size:13.5px; line-height:1.3; }
.ins-item span{ display:block; font-size:12px; color:var(--ink-soft); line-height:1.35; margin-top:1px; }
.ins-item .ii-amt{ margin-left:auto; font-family:var(--mono); font-size:11.5px; color:var(--ink-soft); white-space:nowrap; flex:none; }
@media (max-width:820px){ .insurance{ grid-template-columns:1fr; } }

/* ====================================================
   FOOTER
==================================================== */
.site-footer{ background:var(--cream-2); color:var(--ink-soft); padding:48px 40px 28px; border-top:1px solid var(--line); }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:34px; max-width:1180px; margin:0 auto 32px; }
.footer-col h5{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--terra); margin:0 0 16px; }
.footer-col .fbrand{ font-family:var(--serif); font-weight:600; font-size:21px; color:var(--terra); margin:0 0 12px; }
.footer-col p{ margin:0 0 10px; font-size:13px; line-height:1.6; color:var(--ink-soft); }
.footer-col a{ display:flex; align-items:center; gap:7px; color:var(--ink-2); text-decoration:none; font-size:13px; padding:5px 0; cursor:pointer; }
.footer-col a::before{ content:"\2192"; color:var(--terra); font-size:13px; transform:translateX(-3px); opacity:.55; transition:transform .15s ease, opacity .15s ease; }
.footer-col a:hover{ color:var(--terra); }
.footer-col a:hover::before{ transform:translateX(0); opacity:1; }
.footer-pay{ display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.footer-social{ display:flex; gap:10px; margin-top:14px; }
.footer-social .soc{ display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; padding:0; border-radius:50%; background:var(--terra); color:#fff; transition:background .15s ease, transform .15s ease; }
.footer-social .soc::before{ content:none; }
.footer-social .soc:hover{ background:var(--terra-d); color:#fff; transform:translateY(-2px); }
.footer-pay .pay-chip{ font-family:var(--mono); font-size:10px; letter-spacing:.04em; border:1px solid var(--line-2); border-radius:5px; padding:6px 9px; color:var(--ink-soft); }
.footer-bottom{ max-width:1180px; margin:0 auto; padding-top:22px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12px; }
.footer-bottom .fb-links{ display:flex; gap:18px; flex-wrap:wrap; }
.footer-bottom a{ color:var(--ink-soft); text-decoration:none; }
.footer-bottom a:hover{ color:var(--terra); }
@media (max-width:860px){ .footer-grid{ grid-template-columns:1fr 1fr; } }

/* ====================================================
   GALERIE véhicule (mini-thumbs sur la carte)
==================================================== */
.veh-card .gallery{ display:flex; gap:6px; padding:0 20px; margin-top:-2px; margin-bottom:4px; }
.veh-card .gallery .g{ flex:1; height:46px; border-radius:5px; border:1px solid var(--line); overflow:hidden; background:var(--cream-2); cursor:pointer; transition:.15s; }
.veh-card .gallery .g:hover{ border-color:var(--sea); transform:translateY(-1px); }
.veh-card .gallery .g img{ width:100%; height:100%; object-fit:cover; display:block; }
.veh-card .gallery .g.more{ display:grid; place-items:center; font-family:var(--mono); font-size:11px; color:var(--ink-soft); }

/* ====================================================
   TUNNEL — conditions permis/âge + CGV
==================================================== */
.cond-box{ border:1px solid var(--line); border-radius:10px; background:var(--cream-2); padding:18px 20px; margin-top:14px; }
.cond-box h5{ font-family:var(--mono); font-size:11px; letter-spacing:.04em; color:var(--sea); margin:0 0 13px; text-transform:uppercase; }
.cond-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px 22px; }
.cond-line{ display:flex; gap:11px; align-items:flex-start; font-size:13px; color:var(--ink-2); line-height:1.45; }
.cond-line .ck{ width:20px;height:20px;border-radius:50%; background:var(--avail-soft); color:#2c6b46; display:grid; place-items:center; font-size:12px; flex:none; margin-top:1px; }
@media (max-width:560px){ .cond-grid{ grid-template-columns:1fr; } }

.legal-row{ display:flex; gap:13px; padding:16px 0 4px; align-items:flex-start; }
.legal-row .lbox{ width:22px;height:22px;border:1.5px solid var(--line-2); border-radius:5px; flex:none; cursor:pointer; transition:.12s; display:grid; place-items:center; color:transparent; margin-top:1px; }
.legal-row .lbox.on{ background:var(--avail); border-color:var(--avail); color:#fff; }
.legal-row .ltxt{ font-size:12.5px; color:var(--ink-2); line-height:1.55; }
.legal-row .ltxt a{ color:var(--sea); text-decoration:underline; cursor:pointer; }

/* politique d'annulation (encadré) */
.cancel-policy{ display:flex; gap:13px; align-items:flex-start; border:1px solid #bcdccf; background:var(--avail-soft); border-radius:9px; padding:14px 16px; margin-top:14px; font-size:12.5px; color:#2c6b46; line-height:1.55; }
.cancel-policy .cp-ic{ font-size:16px; flex:none; }
.cancel-policy b{ color:#225537; }

/* ====================================================
   PAIEMENT
==================================================== */
.pay-wrap{ display:grid; grid-template-columns:1.5fr 1fr; gap:0; }
.pay-form{ padding:30px 40px 44px; border-right:1px solid var(--line); }
.pay-aside{ padding:30px 32px 44px; background:var(--cream-2); }
.pay-h{ font-family:var(--serif); font-weight:600; font-size:24px; margin:0 0 6px; }
.pay-sub{ font-size:13.5px; color:var(--ink-soft); margin:0 0 26px; line-height:1.55; }

/* express pay */
.pay-express{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:22px; }
.pay-btn-xl{ display:flex; align-items:center; justify-content:center; gap:9px; padding:15px; border-radius:8px; border:1.5px solid var(--ink); font-size:15px; font-weight:600; cursor:pointer; transition:.15s; background:var(--ink); color:#fff; font-family:var(--sans); }
.pay-btn-xl.gpay{ background:#fff; color:var(--ink); }
.pay-btn-xl:hover{ transform:translateY(-1px); box-shadow:0 8px 20px -10px rgba(27,37,49,.5); }
.pay-or{ display:flex; align-items:center; gap:14px; margin:6px 0 22px; color:var(--ink-soft); font-size:12px; font-family:var(--mono); }
.pay-or::before, .pay-or::after{ content:""; flex:1; height:1px; background:var(--line); }

/* card form */
.pay-method-tabs{ display:flex; gap:8px; margin-bottom:18px; }
.pmt{ display:flex; align-items:center; gap:8px; border:1.5px solid var(--line); border-radius:8px; padding:11px 15px; cursor:pointer; font-size:13px; background:var(--cream); transition:.15s; }
.pmt.on{ border-color:var(--sea); background:var(--sea-soft); font-weight:600; }
.pmt .pmt-logos{ display:flex; gap:4px; }
.pmt .pmt-logos i{ width:26px;height:17px;border-radius:3px; display:block; font-style:normal; }

.pay-field{ margin-bottom:16px; }
.pay-field label{ display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.03em; color:var(--ink-soft); margin-bottom:7px; text-transform:uppercase; }
.pay-input{ width:100%; background:var(--cream); border:1.5px solid var(--line-2); border-radius:7px; padding:13px 15px; font-family:var(--sans); font-size:14px; color:var(--ink); display:flex; align-items:center; justify-content:space-between; }
.pay-input .pi-ic{ color:var(--ink-soft); font-size:15px; display:flex; gap:5px; }
.pay-input .pi-ic i{ width:26px;height:17px;border-radius:3px; display:block; }
.pay-2col{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }

/* card brand swatches */
.cb-visa{ background:linear-gradient(135deg,#1a1f71,#2b3a9e); }
.cb-mc{ background:linear-gradient(135deg,#eb001b,#f79e1b); }
.cb-amex{ background:#2e77bc; }
.cb-cb{ background:linear-gradient(135deg,#0a3d62,#3c9ee0); }

/* caution */
.caution-card{ border:1px solid #d8c485; background:var(--mustard-soft); border-radius:10px; padding:18px 20px; margin-top:8px; }
.caution-card h5{ display:flex; align-items:center; gap:9px; font-family:var(--serif); font-weight:600; font-size:16px; margin:0 0 9px; color:#6a521a; }
.caution-card p{ margin:0; font-size:12.5px; color:#7a5f1d; line-height:1.6; }
.caution-card b{ font-weight:700; }

/* secure note */
.secure-note{ display:flex; align-items:center; gap:10px; margin-top:20px; font-size:12px; color:var(--ink-soft); }
.secure-note .lock{ width:26px;height:26px;border-radius:50%; background:var(--avail-soft); color:#2c6b46; display:grid; place-items:center; font-size:13px; flex:none; }

/* trust badges row */
.trust-badges{ display:flex; gap:8px; flex-wrap:wrap; margin-top:18px; }
.trust-badges .tb{ font-family:var(--mono); font-size:10px; letter-spacing:.03em; border:1px solid var(--line); border-radius:6px; padding:7px 10px; color:var(--ink-soft); display:flex; align-items:center; gap:6px; background:var(--cream); }

/* pay summary aside */
.pay-sum-card{ border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--cream); }
.pay-sum-card .psc-img{ height:120px; }
.pay-sum-card .psc-body{ padding:18px 20px; }
.pay-sum-card h4{ font-family:var(--serif); font-weight:600; font-size:17px; margin:0 0 14px; }
.psc-line{ display:flex; justify-content:space-between; gap:12px; font-size:13px; padding:6px 0; color:var(--ink-2); align-items:baseline; }
.psc-line span:first-child{ flex:1; min-width:0; }
.psc-line span:last-child{ white-space:nowrap; flex:none; font-weight:500; }
.psc-sub{ display:flex; justify-content:space-between; gap:12px; margin-top:10px; padding-top:12px; border-top:1px dashed var(--line); font-size:13px; color:var(--ink-2); }
.psc-sub span:last-child{ white-space:nowrap; flex:none; }
.psc-now{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-top:12px; padding-top:14px; border-top:1.5px solid var(--ink); }
.psc-now .lbl{ font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); flex:1; }
.psc-now b{ font-family:var(--serif); font-weight:600; font-size:27px; }
.psc-later{ font-size:11.5px; color:var(--ink-soft); margin-top:8px; line-height:1.5; }
.psc-pay-btn{ margin-top:18px; }

@media (max-width:920px){ .pay-wrap{ grid-template-columns:1fr; } .pay-form{ border-right:0; border-bottom:1px solid var(--line); } .pay-express,.pay-2col{ grid-template-columns:1fr; } }

/* ====================================================
   HISTOIRE — Quatre marques, une même famille
==================================================== */
.story-sec{ padding:60px 40px 70px; }
.story-head{ max-width:760px; margin:0 auto 48px; text-align:center; }
.story-eyebrow{ display:inline-flex; align-items:center; gap:12px; font-family:var(--mono); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); margin:0 0 22px; }
.story-eyebrow::before, .story-eyebrow::after{ content:""; width:34px; height:1px; background:var(--terra); display:inline-block; }
.story-title{ font-family:var(--serif); font-weight:700; font-size:64px; line-height:.98; letter-spacing:-.01em; margin:0 0 26px; color:var(--ink); text-wrap:balance; }
.story-title .acc{ font-style:italic; color:var(--terra); font-weight:600; }
.story-intro{ font-size:15.5px; line-height:1.7; color:var(--ink-2); margin:0 auto; max-width:620px; }

.story-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; max-width:1240px; margin:0 auto; align-items:stretch; }
.story-card{ border:1px solid var(--line); border-radius:10px; background:var(--cream); padding:26px 24px 22px; display:flex; flex-direction:column; box-shadow:0 18px 40px -30px rgba(27,37,49,.4); }
.story-card.current{ border-color:var(--terra); box-shadow:0 0 0 1px var(--terra), 0 22px 44px -28px rgba(158,107,74,.5); }
.sc-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:18px; }
.sc-num{ font-family:var(--serif); font-weight:600; font-size:26px; color:var(--terra); line-height:1; }
.sc-badge{ font-family:var(--mono); font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; border:1px solid var(--line-2); color:var(--ink-soft); border-radius:3px; padding:5px 9px; white-space:nowrap; }
.sc-badge.dark{ background:var(--terra); color:#fff; border-color:var(--terra); }
.sc-brand{ font-family:var(--serif); font-weight:700; font-size:25px; line-height:1.05; margin:0 0 6px; color:var(--ink); }
.sc-brand .acc{ font-style:italic; color:var(--terra); font-weight:600; }
.sc-tag{ font-family:var(--serif); font-style:italic; font-size:14px; color:var(--ink-2); margin:0 0 14px; }
.sc-loc{ font-family:var(--mono); font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--terra); display:flex; align-items:center; gap:7px; margin-bottom:16px; }
.sc-loc::before{ content:"●"; font-size:7px; }
.sc-div{ border:0; border-top:1px solid var(--line); margin:0 0 15px; }
.sc-founder{ display:flex; align-items:center; gap:11px; margin-bottom:14px; }
.sc-founder .av{ width:36px;height:36px;border-radius:50%; background:var(--terra); color:#F7F1E7; display:grid; place-items:center; font-family:var(--serif); font-weight:600; font-size:15px; flex:none; }
.sc-founder .fr-role{ font-family:var(--mono); font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:2px; }
.sc-founder .fr-name{ font-size:13px; font-weight:600; letter-spacing:.02em; }
.sc-desc{ font-size:13px; line-height:1.62; color:var(--ink-2); margin:0 0 20px; }
.sc-link{ margin-top:auto; font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); text-decoration:none; display:inline-flex; align-items:center; gap:8px; cursor:pointer; transition:.15s; }
.sc-link:hover{ color:var(--terra); gap:12px; }
.sc-link.muted{ color:var(--ink-soft); cursor:default; }
.sc-link.muted em{ font-style:italic; color:var(--terra); margin-left:6px; }

@media (max-width:1080px){ .story-grid{ grid-template-columns:repeat(2,1fr); } .story-title{ font-size:52px; } }
@media (max-width:620px){ .story-grid{ grid-template-columns:1fr; } .story-title{ font-size:40px; } }

/* titres en terracotta (rappel Estérel) */
.resa-head h2,
.contact h3,
.contact-pave h3,
.home-head h2{ color:var(--terra); }

/* ====================================================
   ESPACE PRO — nouvelle réservation + lien acompte
==================================================== */
.ep-sec{ padding:54px 40px 70px; background:var(--cream-2); }
.ep-head{ max-width:880px; margin:0 auto 36px; text-align:center; }
.ep-eyebrow{ font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); margin:0 0 12px; }
.ep-title{ font-family:var(--serif); font-weight:700; font-size:34px; line-height:1.08; margin:0 0 12px; color:var(--ink); }
.ep-lede{ font-size:14.5px; color:var(--ink-soft); line-height:1.6; margin:0 auto; max-width:560px; }
.ep-badge{ font-family:var(--mono); font-size:12px; letter-spacing:.06em; color:var(--terra); }
.ep-grid{ max-width:1060px; margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; gap:26px; align-items:start; }
.ep-form{ background:var(--cream); border:1px solid var(--line); border-radius:14px; padding:28px; display:flex; flex-direction:column; gap:14px; }
.ep-card-title{ font-family:var(--serif); font-weight:700; font-size:17px; color:var(--terra); margin:8px 0 2px; }
.ep-row.two{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ep-form .rx-field span{ font-family:var(--sans); font-size:12px; font-weight:700; color:var(--ink); }
.ep-form input, .ep-form select{ width:100%; background:#fff; border:1px solid var(--line-2); border-radius:8px; padding:11px 13px; font-family:var(--sans); font-size:14px; color:var(--ink); margin-top:6px; }
.ep-form .rx-field{ display:block; }
.ep-generate{ margin-top:8px; font-family:var(--sans); font-size:14px; font-weight:700; letter-spacing:.03em; color:#F7F1E7; background:var(--terra); border:0; border-radius:9px; padding:15px; cursor:pointer; transition:.15s; }
.ep-generate:hover{ background:var(--terra-d); }

.ep-preview{ position:sticky; top:18px; display:flex; flex-direction:column; gap:18px; }
.ep-ref-card{ background:var(--cream); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:0 18px 40px -28px rgba(27,37,49,.45); }
.ep-ref-head{ display:flex; align-items:center; justify-content:space-between; padding:14px 18px; background:var(--ink); color:var(--cream); }
.ep-ref-lab{ font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; opacity:.7; }
.ep-ref-no{ font-family:var(--mono); font-size:13px; color:var(--mustard); }
.ep-ref-img{ height:140px; }
.ep-ref-body{ padding:18px; }
.ep-ref-line{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding:7px 0; font-size:13.5px; color:var(--ink-2); }
.ep-ref-line span{ color:var(--ink-soft); }
.ep-ref-line b{ font-weight:600; text-align:right; }
.ep-ref-sep{ height:1px; background:var(--line); margin:8px 0; }
.ep-ref-now{ display:flex; align-items:center; justify-content:space-between; margin-top:10px; padding:13px 15px; background:#fbf2ec; border:1px solid #e6c8b6; border-radius:9px; }
.ep-ref-now span{ font-size:12.5px; font-weight:600; color:var(--terra-d); letter-spacing:.02em; }
.ep-ref-now b{ font-family:var(--serif); font-size:24px; color:var(--terra); }
.ep-ref-bal{ font-size:12px; color:var(--ink-soft); margin-top:10px; line-height:1.5; }
.ep-ref-bal b{ color:var(--ink-2); }
.ep-ref-legal{ font-family:var(--mono); font-size:10px; letter-spacing:.02em; color:var(--ink-soft); margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }

.ep-link-card{ background:var(--cream); border:1px dashed var(--line-2); border-radius:14px; padding:20px; }
.ep-link-lab{ font-family:var(--sans); font-size:13px; font-weight:700; color:var(--ink); margin:0 0 12px; }
.ep-link-input{ width:100%; background:#fff; border:1px solid var(--line-2); border-radius:8px; padding:11px 14px; font-family:var(--mono); font-size:12.5px; color:var(--ink-2); }
.ep-link-actions{ margin-top:10px; }
.ep-copy{ width:100%; background:var(--ink); color:var(--cream); border:0; border-radius:8px; padding:11px 16px; font-family:var(--sans); font-size:12.5px; font-weight:600; cursor:pointer; transition:.15s; }
.ep-copy:hover{ background:var(--terra); }
.ep-copy.copied{ background:var(--avail); }
.ep-send-row{ display:flex; gap:9px; margin-top:14px; flex-wrap:wrap; }
.ep-send{ flex:1; min-width:120px; text-align:center; text-decoration:none; font-family:var(--sans); font-size:12.5px; font-weight:600; padding:11px 12px; border-radius:8px; cursor:pointer; transition:.15s; border:1px solid var(--line-2); color:var(--ink); background:#fff; white-space:nowrap; }
.ep-send:hover{ border-color:var(--terra); color:var(--terra); }
.ep-send.wa{ background:#25D366; color:#fff; border-color:#25D366; }
.ep-send.wa:hover{ background:#1da851; color:#fff; }
.ep-send-note{ font-size:12px; color:var(--ink-soft); margin:14px 0 0; line-height:1.5; }
.ep-send-note b{ color:var(--avail); }
.ep-stripe-note{ font-size:12px; color:var(--ink-soft); margin:10px 0 0; line-height:1.5; background:#f4eee3; border-radius:8px; padding:10px 12px; }
.ep-stripe-note b{ color:var(--terra-d); }
@media (max-width:820px){ .ep-grid{ grid-template-columns:1fr; } .ep-preview{ position:static; } }

/* fichier client / réservations */
.ep-list-wrap{ max-width:1060px; margin:34px auto 0; background:var(--cream); border:1px solid var(--line); border-radius:14px; padding:24px 26px; }
.ep-list-head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:16px; }
.ep-list-head h3{ font-family:var(--serif); font-weight:700; font-size:19px; color:var(--ink); margin:0; }
.ep-list-count{ font-family:var(--mono); font-size:11px; color:var(--ink-soft); letter-spacing:.04em; }
.ep-table{ width:100%; border-collapse:collapse; }
.ep-table th{ text-align:left; font-family:var(--mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); padding:8px 10px; border-bottom:1px solid var(--line); }
.ep-table td{ padding:13px 10px; border-bottom:1px solid var(--line); font-size:13.5px; color:var(--ink-2); vertical-align:middle; }
.ep-table tbody tr:hover{ background:var(--cream-2); }
.ep-table td b{ display:block; font-weight:600; color:var(--ink); }
.ep-table td span{ font-size:11.5px; color:var(--ink-soft); }
.ep-tag{ display:inline-block; font-family:var(--sans); font-size:11px; font-weight:600; padding:5px 10px; border-radius:20px; white-space:nowrap; }
.ep-tag.ok{ background:var(--avail-soft); color:#2c6b46; }
.ep-tag.wait{ background:#fbe7d6; color:#a8642a; }
.ep-tag.draft{ background:var(--cream-2); color:var(--ink-soft); border:1px solid var(--line-2); }
.ep-list-note{ font-size:12px; color:var(--ink-soft); margin:16px 0 0; line-height:1.5; }

/* login pro */
.prologin-wrap{ display:flex; justify-content:center; padding:70px 40px; background:var(--cream-2); }
.prologin-card{ width:100%; max-width:400px; background:var(--cream); border:1px solid var(--line); border-radius:16px; padding:38px 34px; text-align:center; box-shadow:0 22px 50px -32px rgba(27,37,49,.5); }
.pl-lock{ width:56px; height:56px; border-radius:50%; background:var(--ink); color:var(--mustard); display:grid; place-items:center; font-size:24px; margin:0 auto 18px; }
.prologin-card h2{ font-family:var(--serif); font-weight:700; font-size:24px; color:var(--terra); margin:0 0 8px; }
.prologin-card > p{ font-size:13px; color:var(--ink-soft); line-height:1.55; margin:0 0 22px; }
.prologin-card .rx-field{ display:block; text-align:left; margin-bottom:13px; }
.prologin-card .rx-field span{ font-family:var(--sans); font-size:12px; font-weight:700; color:var(--ink); }
.prologin-card input{ width:100%; background:#fff; border:1px solid var(--line-2); border-radius:8px; padding:11px 13px; font-family:var(--sans); font-size:14px; color:var(--ink); margin-top:6px; }
.pl-btn{ display:block; margin-top:8px; background:var(--terra); color:#F7F1E7; font-family:var(--sans); font-size:14px; font-weight:700; letter-spacing:.03em; padding:14px; border-radius:9px; text-decoration:none; cursor:pointer; transition:.15s; }
.pl-btn:hover{ background:var(--terra-d); }
.pl-note{ font-size:11px; color:var(--ink-soft); line-height:1.5; margin:18px 0 0; }

/* ====================================================
   EMAIL CLIENT — réception du lien d'acompte
==================================================== */
.mail-stage{ padding:40px 34px 60px; background:var(--cream-2); }
.mail-anno{ font-family:var(--mono); font-size:11px; letter-spacing:.02em; color:var(--sea); text-align:center; margin:0 0 22px; }
.mail-card{ max-width:600px; margin:0 auto; background:var(--cream); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:0 22px 54px -30px rgba(27,37,49,.5); }
.mail-head{ display:flex; align-items:center; gap:13px; padding:18px 24px 14px; }
.mail-from-av{ width:42px; height:42px; flex:none; border-radius:50%; background:var(--ink); color:var(--mustard); display:grid; place-items:center; font-family:var(--serif); font-weight:700; font-size:20px; }
.mail-from{ display:flex; flex-direction:column; line-height:1.35; }
.mail-from b{ font-size:14px; color:var(--ink); }
.mail-from span{ font-size:12px; color:var(--ink-soft); }
.mail-date{ margin-left:auto; font-family:var(--mono); font-size:11px; color:var(--ink-soft); }
.mail-subject{ padding:0 24px 18px; border-bottom:1px solid var(--line); }
.mail-subject h3{ font-family:var(--serif); font-weight:600; font-size:20px; line-height:1.25; color:var(--ink); margin:0 0 8px; text-wrap:balance; }
.mail-to{ font-family:var(--mono); font-size:11px; color:var(--ink-soft); }
.mail-body{ padding:26px 24px 28px; }
.mail-hello{ font-size:15px; font-weight:600; color:var(--ink); margin:0 0 12px; }
.mail-p{ font-size:14px; line-height:1.65; color:var(--ink-2); margin:0 0 18px; }
.mail-recap{ display:flex; gap:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; margin:0 0 18px; }
.mail-recap .mr-img{ width:150px; flex:none; border:0; border-radius:0; }
.mail-recap .mr-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.mr-body{ flex:1; padding:15px 18px; }
.mr-ref{ font-family:var(--mono); font-size:10px; letter-spacing:.04em; color:var(--sea); }
.mr-body h4{ font-family:var(--serif); font-weight:600; font-size:17px; color:var(--ink); margin:5px 0 11px; }
.mr-line{ display:flex; justify-content:space-between; gap:14px; font-size:12.5px; color:var(--ink-soft); padding:4px 0; }
.mr-line b{ color:var(--ink-2); font-weight:600; text-align:right; }
.mail-deposit{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; background:var(--ink); color:var(--cream); border-radius:12px; padding:20px 22px; margin:0 0 18px; }
.md-lab{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; opacity:.72; }
.md-amount{ font-family:var(--serif); font-weight:700; font-size:42px; line-height:1.05; color:var(--mustard); white-space:nowrap; }
.md-bal{ font-size:12px; line-height:1.5; opacity:.82; margin-top:4px; }
.md-bal b{ color:var(--mustard); }
.mail-pay-btn{ display:block; text-align:center; background:var(--terra); color:#F7F1E7; font-family:var(--sans); font-size:15px; font-weight:700; letter-spacing:.02em; padding:17px; border-radius:10px; text-decoration:none; cursor:pointer; transition:.15s; }
.mail-pay-btn:hover{ background:var(--terra-d); }
.mail-pay-sub{ text-align:center; font-size:12px; color:var(--ink-soft); margin:11px 0 22px; }
.mail-policy{ display:flex; gap:12px; align-items:flex-start; background:var(--cream-2); border:1px solid var(--line); border-radius:10px; padding:14px 16px; font-size:12.5px; line-height:1.55; color:var(--ink-2); margin:0 0 20px; }
.mail-policy .mp-ic{ font-size:18px; color:var(--terra); flex:none; line-height:1; }
.mail-sign{ font-family:var(--serif); font-style:italic; font-size:14px; color:var(--ink); margin:0 0 22px; }
.mail-footer{ font-family:var(--mono); font-size:10px; line-height:1.6; color:var(--ink-soft); padding-top:16px; border-top:1px solid var(--line); }
.mail-note{ max-width:600px; margin:22px auto 0; font-size:12px; color:var(--ink-soft); line-height:1.5; text-align:center; }
@media (max-width:560px){ .mail-recap{ flex-direction:column; } .mail-recap .mr-img{ width:100%; height:160px; } }

/* ====================================================
   LA MARQUE — éditorial Dallas
==================================================== */
.marque-sec{ padding:64px 40px 70px; }
.marque-wrap{ max-width:820px; margin:0 auto; text-align:center; }
.marque-eyebrow{ display:inline-flex; align-items:center; gap:12px; font-family:var(--mono); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); margin:0 0 24px; }
.marque-eyebrow::before, .marque-eyebrow::after{ content:""; width:30px; height:1px; background:var(--terra); display:inline-block; }
.marque-title{ font-family:var(--serif); font-weight:700; font-size:58px; line-height:1.02; letter-spacing:-.01em; margin:0 0 34px; color:var(--ink); text-wrap:balance; }
.marque-title .acc{ font-style:italic; color:var(--terra); font-weight:600; }
.marque-lead{ font-family:var(--serif); font-size:23px; line-height:1.5; color:var(--ink); margin:0 auto 26px; max-width:680px; }
.marque-lead b{ color:var(--terra); font-weight:600; }
.marque-p{ font-size:15.5px; line-height:1.75; color:var(--ink-2); margin:0 auto 30px; max-width:620px; }
.marque-tag{ font-family:var(--serif); font-style:italic; font-size:20px; line-height:1.5; color:var(--terra); margin:0 auto 8px; max-width:560px; }
.marque-rule{ width:54px; height:2px; background:var(--terra); border:0; margin:30px auto 0; }
.marque-hero{ display:block; margin:50px auto 0; width:100%; max-width:520px; height:auto; border-radius:12px; box-shadow:0 26px 54px -30px rgba(27,37,49,.55); }
@media (max-width:720px){ .marque-title{ font-size:40px; } .marque-lead{ font-size:19px; } .marque-hero{ max-width:100%; } }

/* ====================================================
   RÉSERVATION v2 — choix par type, dispo, options
==================================================== */
/* 1. cartes type de véhicule */
.vtype-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.vtype-card{ border:1.5px solid var(--line); border-radius:10px; overflow:hidden; background:var(--cream); cursor:pointer; transition:.15s; text-align:left; font-family:var(--sans); padding:0; display:flex; flex-direction:column; }
.vtype-card:hover{ border-color:var(--terra); transform:translateY(-2px); box-shadow:0 14px 30px -20px rgba(27,37,49,.5); }
.vtype-card.on{ border-color:var(--terra); box-shadow:0 0 0 2px var(--terra), 0 14px 30px -20px rgba(188,98,64,.6); }
.vtype-card .vt-ph{ aspect-ratio:16/10; background:var(--cream-2); position:relative; }
.vtype-card .vt-ph img{ width:100%; height:100%; object-fit:contain; object-position:center; display:block; }
.vtype-card .vt-units{ position:absolute; top:9px; left:9px; font-family:var(--mono); font-size:9.5px; letter-spacing:.04em; padding:4px 8px; border-radius:3px; background:rgba(245,240,229,.92); color:var(--ink); }
.vtype-card .vt-units.few{ color:#a8543c; }
.vtype-card .vt-check{ position:absolute; top:8px; right:8px; width:24px; height:24px; border-radius:50%; background:var(--terra); color:#fff; display:none; place-items:center; font-size:14px; }
.vtype-card.on .vt-check{ display:grid; }
.vtype-card .vt-body{ padding:13px 15px 15px; display:flex; flex-direction:column; gap:3px; }
.vtype-card .vt-name{ font-family:var(--serif); font-weight:600; font-size:17px; line-height:1.1; }
.vtype-card .vt-spec{ font-size:11px; color:var(--ink-soft); }
.vtype-card .vt-price{ margin-top:7px; font-size:12.5px; color:var(--ink-2); }
.vtype-card .vt-price b{ font-family:var(--serif); font-size:19px; color:var(--terra); }
@media (max-width:720px){ .vtype-grid{ grid-template-columns:1fr; } }

/* bandeau disponibilité (récap) */
.rd-avail{ display:flex; align-items:center; gap:10px; padding:13px 18px; font-size:13px; font-weight:600; line-height:1.3; }
.rd-avail .rda-ic{ width:24px;height:24px;border-radius:50%; display:grid; place-items:center; font-size:14px; flex:none; }
.rd-avail.ok{ background:var(--avail-soft); color:#2c6b46; }
.rd-avail.ok .rda-ic{ background:var(--avail); color:#fff; }
.rd-avail.ko{ background:var(--booked-soft); color:#a8543c; }
.rd-avail.ko .rda-ic{ background:var(--booked); color:#fff; }
.rd-avail.idle{ background:var(--cream-2); color:var(--ink-soft); font-weight:500; }
.rd-avail.idle .rda-ic{ background:var(--line-2); color:#fff; }

/* options (étape 4) */
.opt-list{ display:flex; flex-direction:column; gap:10px; }
.opt-item{ display:flex; align-items:center; gap:13px; padding:13px 16px; border:1.5px solid var(--line); border-radius:9px; background:var(--cream); cursor:pointer; transition:.12s; }
.opt-item:hover{ border-color:var(--terra); }
.opt-item .oi-box{ width:22px;height:22px;border:1.5px solid var(--line-2); border-radius:6px; flex:none; display:grid; place-items:center; color:transparent; font-size:13px; transition:.12s; }
.opt-item.on{ border-color:var(--terra); background:#fbf2ec; }
.opt-item.on .oi-box{ background:var(--terra); border-color:var(--terra); color:#fff; }
.opt-item .oi-txt{ flex:1; min-width:0; }
.opt-item .oi-txt b{ font-size:13.5px; font-weight:600; }
.opt-item .oi-txt span{ display:block; font-size:11.5px; color:var(--ink-soft); margin-top:1px; }
.opt-item .oi-price{ font-family:var(--serif); font-weight:600; font-size:15px; color:var(--terra); white-space:nowrap; }
.rd-pline.opt span:first-child{ color:var(--ink-soft); }

/* ---------- legal / CGL page ---------- */
.legal{ max-width:780px; margin:0 auto; padding:54px 40px 70px; }
.legal-kicker{ font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--terra); margin:0 0 10px; }
.legal .legal-title{ font-family:var(--serif); font-weight:700; font-size:34px; line-height:1.08; letter-spacing:-.01em; margin:0 0 12px; }
.legal .legal-lede{ font-size:14.5px; color:var(--ink-2); max-width:60ch; margin:0 0 14px; }
.legal .legal-meta{ font-family:var(--mono); font-size:11px; letter-spacing:.05em; color:var(--ink-soft); padding-bottom:24px; margin-bottom:34px; border-bottom:2px solid var(--ink); }
.legal article{ margin:0 0 26px; }
.legal h2{ font-family:var(--serif); font-weight:600; font-size:18px; letter-spacing:-.005em; margin:0 0 11px; padding-bottom:7px; border-bottom:1px solid var(--line); display:flex; align-items:baseline; gap:11px; }
.legal h2 .num{ font-family:var(--mono); font-size:12px; font-weight:700; color:var(--terra); }
.legal h3{ font-family:var(--sans); font-weight:600; font-size:13.5px; margin:15px 0 5px; color:var(--ink); }
.legal p{ margin:0 0 10px; font-size:13.5px; line-height:1.62; color:var(--ink-2); }
.legal ul{ margin:0 0 11px; padding-left:0; list-style:none; }
.legal li{ position:relative; padding-left:20px; margin:0 0 6px; font-size:13.5px; line-height:1.55; color:var(--ink-2); }
.legal li::before{ content:"—"; position:absolute; left:0; color:var(--terra); font-weight:600; }
.legal b, .legal strong{ font-weight:600; color:var(--ink); }
.legal .key{ font-family:var(--mono); font-weight:700; color:var(--terra-d); }
.legal .legal-actions{ margin-top:36px; padding-top:22px; border-top:1px solid var(--line); display:flex; gap:14px; align-items:center; }
.legal .legal-note{ font-size:12px; color:var(--ink-soft); }

/* ====================================================
   MOBILE — correctifs téléphone (≤600px)
==================================================== */
@media (max-width:600px){
  html, body{ overflow-x:hidden; }
  .window{ overflow-x:hidden; }

  /* ---------- HERO bannière : texte réorganisé sous le haut de la photo ---------- */
  .banner{
    height:auto; min-height:600px;
    display:flex; flex-direction:column; justify-content:flex-end;
    padding-bottom:32px;
  }
  .banner-bg{ object-position:center 40%; }
  .banner-scrim{
    background:
      linear-gradient(180deg, rgba(15,12,9,.5) 0%, rgba(15,12,9,.06) 24%, rgba(15,12,9,.14) 52%, rgba(15,12,9,.88) 100%);
  }
  .bp-logo{ width:118px; top:34px; }
  .banner-nav{ top:15px; right:13px; gap:14px; }
  .banner-nav a{ font-size:12px; }
  .banner-eyebrow,
  .bp-head, .bp-sub, .bp-note{
    position:static; left:auto; right:auto; top:auto; bottom:auto;
    max-width:100%; padding-left:22px; padding-right:22px;
  }
  .banner-eyebrow{ margin:0 0 8px; }
  .bp-head{ font-size:32px !important; line-height:1.1; margin:0; }
  .bp-head span{ font-size:36px !important; }
  .bp-sub{ margin:14px 0 0; font-size:15px; }
  .bp-note{ margin:14px 0 0; font-size:15px; }

  /* ---------- réservation express : plus de débordement horizontal ---------- */
  .resa-express{ padding:40px 15px; }
  .rx-title span, .rx-title span[style]{ white-space:normal !important; }
  .rx-title{ font-size:30px; }
  .rx-side{ padding:34px 22px; }
  .rx-form{ padding:30px 20px; }
  .rx-form-title{ font-size:26px; text-align:left; }

  /* ---------- tarifs + sections génériques ---------- */
  .tarifs-sec{ padding:44px 15px; }
  .home-sec{ padding:40px 17px; }
  .home-cta{ padding:44px 17px; }
  .map-sec{ padding-left:15px; padding-right:15px; }

  /* ---------- écran Contact ---------- */
  .contact{ grid-template-columns:1fr; }
  .contact .c-left{ border-right:0; border-bottom:1px solid var(--line); }

  /* ---------- titres légaux ---------- */
  .legal{ padding:40px 18px 56px; }

  .seo-content{ padding:46px 20px; }
}

/* ===== Texte SEO référencement local ===== */
.seo-content{ background:var(--cream-2); padding:72px 34px; }
.seo-inner{ max-width:820px; margin:0 auto; }
.seo-content h2{ font-family:var(--serif); font-weight:600; font-size:clamp(26px,3.4vw,34px); line-height:1.12; color:var(--ink); margin:0 0 22px; text-wrap:balance; }
.seo-content h3{ font-family:var(--sans); font-weight:600; font-size:18px; color:var(--ink); margin:30px 0 8px; }
.seo-content p{ font-size:16px; line-height:1.7; color:var(--ink-2); margin:0 0 14px; }
.seo-content strong{ color:var(--ink); font-weight:600; }
.seo-content a{ color:var(--terra-d); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.seo-content a:hover{ color:var(--ink); }

/* ---- Bandeau expérience (sous le hero) ---- */
.xp-band{ background:var(--terra, #CB7C52); padding:16px 24px; }
.xp-inner{ max-width:1120px; margin:0 auto; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px 26px; }
.xp-item{ display:inline-flex; align-items:center; gap:10px; }
.xp-mark{ color:#F3E9D8; font-size:12px; line-height:1; transform:translateY(1px); }
.xp-txt{ font-family:var(--serif, "Bodoni Moda", Georgia, serif); font-weight:500; font-size:17px; letter-spacing:.01em; color:#FFFDF9; white-space:nowrap; }
.xp-sep{ width:5px; height:5px; border-radius:50%; background:rgba(255,253,249,.55); flex:none; }
@media (max-width:680px){
  .xp-inner{ flex-direction:column; gap:10px; }
  .xp-sep{ display:none; }
  .xp-txt{ font-size:16px; white-space:normal; text-align:center; }
}

/* ---------- formulaire réservation : choix, mentions, réassurance ---------- */
.rx-opt-tag{ font-style:normal; font-weight:500; color:var(--ink-soft); opacity:.75; }
.rx-choice{ display:grid; gap:10px; }
.rx-opt{ display:flex; align-items:center; gap:11px; min-height:48px; background:#fff; border:1.5px solid var(--line-2); border-radius:9px; padding:13px 15px; cursor:pointer; font-family:var(--sans); font-size:14px; line-height:1.35; color:var(--ink); transition:border-color .18s ease, background .18s ease; }
.rx-opt:hover{ border-color:var(--terra); }
.rx-opt em{ font-style:normal; color:var(--ink-soft); }
.rx-opt input[type="radio"]{ appearance:none; -webkit-appearance:none; flex:none; width:18px; height:18px; min-width:18px; margin:0; padding:0; border:1.5px solid var(--line-2); border-radius:50%; background:#fff; box-shadow:none; }
.rx-opt input[type="radio"]:checked{ border-color:var(--terra); border-width:5.5px; }
.rx-opt input[type="radio"]:focus-visible{ outline:2px solid var(--terra); outline-offset:2px; }
.rx-opt:has(input:checked){ border-color:var(--terra); background:rgba(203,124,82,.06); }
.rx-reassure{ display:flex; align-items:flex-start; gap:9px; margin:2px 0 0; font-family:var(--sans); font-size:13.5px; line-height:1.5; color:var(--ink-soft); text-wrap:pretty; }
.rx-reassure-ic{ flex:none; line-height:1.4; color:var(--terra-d); font-weight:700; }
@media (max-width:520px){
  .rx-opt{ font-size:13.5px; padding:12px 13px; }
  .rx-reassure{ font-size:13px; }
}
