/* ============================================================
   VERILIS — page Location de matériel
   Extrait du <style> qui vivait dans location.html : les 136 lignes
   de CSS y étaient mêlées au contenu, invisibles depuis style.css.
   Même principe que style-diogene.css.
   ============================================================ */

    :root { --locx-navy:var(--navy); --locx-navy2:var(--ink); --locx-muted:#54677C; --locx-line:#E6EBF1; --locx-soft:#EEF2F7; --locx-accent:var(--accent); --locx-ok:#0A8A45; --locx-okbg:#E7F6EE; --locx-bad:#B42318; --locx-badbg:#FDECEC; }

    /* Bandeau retour paiement */
    .locx-flash { max-width:960px; margin:16px auto 0; padding:14px 18px; border-radius:12px; font-size:14px; font-weight:600; }
    .locx-flash.ok { background:var(--locx-okbg); color:var(--locx-ok); border:1px solid #B7E3C8; }
    .locx-flash.info { background:#EFF5FD; color:#17518F; border:1px solid #C6DDF5; }

    /* Atouts */
    .locx-usps { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
    .locx-usp { display:flex; gap:12px; align-items:flex-start; background:#fff; border:1px solid var(--locx-line); border-radius:14px; padding:16px 18px; }
    .locx-usp .ic { flex:none; width:38px; height:38px; border-radius:10px; background:var(--locx-soft); color:var(--locx-navy); display:flex; align-items:center; justify-content:center; }
    .locx-usp .ic svg { width:20px; height:20px; }
    .locx-usp h3 { margin:0 0 2px; font-size:14.5px; font-weight:750; color:var(--locx-navy); }
    .locx-usp p { margin:0; font-size:13px; line-height:1.5; color:var(--locx-muted); }

    /* ===== Cartes HORIZONTALES ===== */
    .locx-list { display:flex; flex-direction:column; gap:16px; }
    .locx-card { display:grid; grid-template-columns:260px 1fr; align-items:stretch; text-align:left; background:#fff; border:1px solid var(--locx-line); border-radius:18px; overflow:hidden; cursor:pointer; padding:0; font:inherit; width:100%; transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
    .locx-card:hover { box-shadow:0 16px 38px rgba(12,46,82,.11); transform:translateY(-2px); border-color:#D7E0EA; }
    .locx-card:focus-visible { outline:3px solid rgba(var(--accent-rgb),.4); outline-offset:2px; }
    .locx-media { position:relative; overflow:hidden; background:var(--locx-soft); min-height:180px; }
    .locx-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
    .locx-card:hover .locx-media img { transform:scale(1.04); }
    .locx-media .ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#AEBCCB; }
    .locx-media .ph svg { width:52px; height:52px; }
    .locx-badge { position:absolute; top:12px; left:12px; background:rgba(12,46,82,.9); color:#fff; font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; padding:4px 10px; border-radius:999px; }
    .locx-count { position:absolute; bottom:12px; left:12px; display:flex; align-items:center; gap:5px; background:rgba(0,0,0,.55); color:#fff; font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:999px; }
    .locx-count svg { width:13px; height:13px; }
    .locx-body { display:flex; flex-direction:column; padding:18px 20px; }
    .locx-body h3 { margin:0 0 5px; font-size:19px; font-weight:750; color:var(--locx-navy); line-height:1.25; }
    .locx-body .cat-txt { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#8899AA; margin-bottom:6px; }
    .locx-body p { margin:0 0 14px; font-size:14px; line-height:1.55; color:var(--locx-muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .locx-foot { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
    .locx-price { font-size:21px; font-weight:800; color:var(--locx-navy); white-space:nowrap; }
    .locx-price small { font-size:12.5px; font-weight:600; color:#8899AA; }
    .locx-price.ondemand { font-size:14px; font-weight:700; color:var(--locx-muted); }
    .locx-cta { display:inline-flex; align-items:center; gap:6px; height:42px; padding:0 18px; border-radius:11px; background:var(--locx-accent); color:#fff; font-size:14px; font-weight:700; border:0; }
    .locx-card:hover .locx-cta { background:var(--accent-2); }

    /* Panneau réservation déplié sous la carte */
    .locx-item { display:block; }
    .locx-card.open { border-color:var(--locx-accent); box-shadow:0 12px 30px rgba(var(--accent-rgb),.15); }
    .locx-card.open .locx-cta { background:var(--navy); }
    .locx-resa { margin-top:10px; border:1px solid var(--locx-line); border-radius:16px; background:#fff; overflow:hidden; padding:16px 14px 18px; animation:locxfade .18s ease; }
    .locx-resa > .locx-gallery, .locx-resa > .locx-detail { max-width:620px; margin-left:auto; margin-right:auto; }
    .locx-resa .locx-gallery { border-radius:12px; overflow:hidden; margin-bottom:8px; }
    .locx-reduce { display:block; margin:16px auto 0; background:none; border:0; color:#8899AA; font-size:13px; font-weight:700; cursor:pointer; }
    .locx-reduce:hover { color:var(--locx-navy); }

    .locx-state { text-align:center; padding:44px 16px; color:var(--locx-muted); font-size:14.5px; line-height:1.6; }
    .locx-skel { display:grid; grid-template-columns:260px 1fr; border:1px solid var(--locx-line); border-radius:18px; overflow:hidden; min-height:180px; }
    .locx-skel .b { background:linear-gradient(90deg,#EEF2F7 25%,#F6F8FB 37%,#EEF2F7 63%); background-size:400% 100%; animation:locxsh 1.3s ease infinite; }
    .locx-skel .b2 { height:18px; margin:20px 20px 0; border-radius:6px; } .locx-skel .b3 { height:30px; margin:16px 20px; border-radius:8px; width:50%; }
    @keyframes locxsh { 0%{background-position:100% 0;} 100%{background-position:-100% 0;} }

    /* ===== Modale ===== */
    .locx-modal { position:fixed; inset:0; z-index:1000; display:none; align-items:flex-start; justify-content:center; padding:22px 14px; overflow-y:auto; background:rgba(7,30,56,.55); backdrop-filter:blur(3px); }
    .locx-modal.open { display:flex; animation:locxfade .18s ease; }
    @keyframes locxfade { from{opacity:0;} to{opacity:1;} }
    .locx-panel { position:relative; width:100%; max-width:620px; background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 30px 80px rgba(7,30,56,.35); animation:locxrise .22s ease; }
    @keyframes locxrise { from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);} }
    .locx-panel-grid { display:grid; grid-template-columns:1fr; }
    .locx-gallery { background:var(--navy); }
    .locx-gallery-main { position:relative; aspect-ratio:16/9; max-height:340px; background:#08213D; overflow:hidden; }
    .locx-gallery-main img { width:100%; height:100%; object-fit:cover; display:block; }
    .locx-gallery-main .ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#3B5B7D; }
    .locx-gallery-main .ph svg { width:70px; height:70px; }
    .locx-arw { position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; border:0; background:rgba(255,255,255,.92); color:var(--navy); font-size:24px; line-height:38px; cursor:pointer; z-index:2; box-shadow:0 3px 12px rgba(0,0,0,.25); display:flex; align-items:center; justify-content:center; }
    .locx-arw:hover { background:#fff; }
    .locx-arw.prev { left:12px; } .locx-arw.next { right:12px; }
    .locx-cnt { position:absolute; bottom:12px; right:12px; z-index:2; background:rgba(0,0,0,.6); color:#fff; font-size:12px; font-weight:600; padding:3px 10px; border-radius:999px; }
    .locx-thumbs { display:flex; gap:8px; padding:10px; flex-wrap:wrap; }
    .locx-thumbs img { width:56px; height:56px; object-fit:cover; border-radius:8px; cursor:pointer; opacity:.65; border:2px solid transparent; transition:.15s; }
    .locx-thumbs img:hover { opacity:1; } .locx-thumbs img.active { opacity:1; border-color:var(--locx-accent); }
    .locx-detail { padding:22px 24px 24px; }
    .locx-close { position:absolute; top:14px; right:14px; width:38px; height:38px; border-radius:50%; border:0; background:rgba(255,255,255,.94); color:var(--navy); font-size:22px; line-height:1; cursor:pointer; z-index:5; box-shadow:0 4px 14px rgba(0,0,0,.18); }
    .locx-close:hover { background:#fff; }
    .locx-detail .cat { display:inline-block; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--locx-navy); background:var(--locx-soft); padding:3px 10px; border-radius:999px; }
    .locx-detail h2 { margin:10px 0 6px; font-size:23px; font-weight:800; color:var(--locx-navy); line-height:1.2; }
    .locx-detail .desc { font-size:13.8px; line-height:1.6; color:var(--locx-muted); margin:0 0 12px; }
    .locx-detail .pricebox { display:flex; align-items:baseline; gap:8px; margin-bottom:14px; }
    .locx-detail .pricebox .p { font-size:25px; font-weight:800; color:var(--locx-navy); }
    .locx-detail .pricebox .u { font-size:13px; color:#8899AA; font-weight:600; }
    .locx-step { font-size:11.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--locx-accent); margin:6px 0 8px; }

    /* Calendrier */
    .locx-cal { border:1px solid var(--locx-line); border-radius:14px; padding:12px; }
    .locx-cal-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
    .locx-cal-nav button { width:32px; height:32px; border-radius:8px; border:1px solid var(--locx-line); background:#fff; cursor:pointer; font-size:16px; color:var(--locx-navy); }
    .locx-cal-nav button:disabled { opacity:.35; cursor:not-allowed; }
    .locx-cal-months { display:grid; grid-template-columns:1fr; gap:14px; }
    .locx-cal-title { text-align:center; font-size:13.5px; font-weight:750; color:var(--locx-navy); text-transform:capitalize; margin-bottom:6px; }
    .locx-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
    .locx-cal-grid .dow { font-size:10.5px; font-weight:700; color:#93A5B5; text-align:center; padding:2px 0; }
    .locx-day { aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; font-size:12.5px; border-radius:8px; cursor:pointer; color:var(--locx-navy2); border:1px solid transparent; user-select:none; }
    .locx-day:hover:not(.off):not(.empty) { background:var(--locx-soft); }
    .locx-day.empty { cursor:default; }
    .locx-day.off { color:#C3CDD8; text-decoration:line-through; cursor:not-allowed; background:repeating-linear-gradient(45deg,#F5F7FA,#F5F7FA 4px,#EEF2F7 4px,#EEF2F7 8px); }
    .locx-day.sel { background:var(--locx-accent); color:#fff; font-weight:700; }
    .locx-day.inrange { background:rgba(var(--accent-rgb),.14); color:var(--locx-navy); border-radius:0; }
    .locx-cal-legend { display:flex; gap:14px; margin-top:8px; font-size:11.5px; color:var(--locx-muted); }
    .locx-cal-legend span { display:inline-flex; align-items:center; gap:5px; }
    .locx-cal-legend i { width:12px; height:12px; border-radius:3px; display:inline-block; }

    .locx-summary { margin-top:12px; display:none; background:var(--locx-soft); border-radius:12px; padding:12px 14px; }
    .locx-summary.show { display:block; }
    .locx-summary .r { display:flex; justify-content:space-between; gap:10px; font-size:13px; color:var(--locx-muted); padding:2px 0; }
    .locx-summary .r strong { color:var(--locx-navy); }
    .locx-summary .r.big { font-size:15px; border-top:1px solid #DCE3EB; margin-top:6px; padding-top:8px; }
    .locx-summary .r.big strong { font-size:17px; }

    .locx-form label { display:block; font-size:12px; font-weight:700; color:var(--locx-navy2); margin:12px 0 5px; }
    .locx-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    .locx-form input, .locx-form textarea { width:100%; padding:10px 12px; border:1px solid var(--locx-line); border-radius:9px; font-size:14px; font-family:inherit; color:var(--locx-navy2); background:#fff; }
    .locx-form input:focus, .locx-form textarea:focus { outline:none; border-color:var(--locx-accent); box-shadow:0 0 0 3px rgba(var(--accent-rgb),.14); }
    .locx-form textarea { resize:vertical; min-height:56px; }
    .locx-submit { width:100%; margin-top:14px; height:48px; border:0; border-radius:12px; background:var(--locx-accent); color:#fff; font-size:15px; font-weight:800; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; }
    .locx-submit:hover { background:var(--accent-2); } .locx-submit:disabled { opacity:.5; cursor:not-allowed; }
    .locx-submit svg { width:16px; height:16px; }
    .locx-msg { margin-top:12px; font-size:13.5px; line-height:1.55; padding:11px 14px; border-radius:10px; display:none; }
    .locx-msg.show { display:block; } .locx-msg.err { background:var(--locx-badbg); color:var(--locx-bad); }
    .locx-legal { font-size:11.5px; color:#93A5B5; margin-top:10px; line-height:1.5; }
    .locx-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
    .locx-success { text-align:center; padding:30px 8px; }
    .locx-success .chk { width:64px; height:64px; border-radius:50%; background:var(--locx-okbg); color:var(--locx-ok); font-size:32px; line-height:64px; margin:0 auto 14px; }
    .locx-success h2 { margin:0 0 8px; font-size:21px; color:var(--locx-navy); }
    .locx-success p { color:var(--locx-muted); font-size:14px; line-height:1.6; margin:0; }

    @media (max-width:720px){
      .locx-card { grid-template-columns:1fr; }
      .locx-media { aspect-ratio:16/10; min-height:0; }
      .locx-skel { grid-template-columns:1fr; }
      .locx-panel-grid { grid-template-columns:1fr; }
      .locx-gallery-main { aspect-ratio:16/10; }
    }
