/* LOCATION PRO — Frontend CSS — Mobile First */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Lato:wght@300;400;700&display=swap');

:root{
  --lp-primary:#1a3c5e; --lp-accent:#c9a84c; --lp-dark:#0d1b2a;
  --lp-text:#2d3748;    --lp-grey:#718096;    --lp-light:#f7f8fa;
  --lp-radius:12px;     --lp-shadow:0 4px 24px rgba(0,0,0,.10);
  --lp-shadow-lg:0 12px 48px rgba(0,0,0,.18);
  --lp-transition:all .3s ease;
}

*{box-sizing:border-box;}
.lp-vitrine,.lp-bien-page,.lp-planning-public,.lp-contact-form-wrap{font-family:'Lato',sans-serif;color:var(--lp-text);}

/* ── VITRINE GRID ─────────────────────────────────────── */
.lp-vitrine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;}
.lp-bien-card{border-radius:var(--lp-radius);overflow:hidden;box-shadow:var(--lp-shadow);background:#fff;transition:var(--lp-transition);}
.lp-bien-card:hover{transform:translateY(-5px);box-shadow:var(--lp-shadow-lg);}
.lp-bien-card-link{text-decoration:none;color:inherit;display:block;}
.lp-bien-cover{height:210px;background:#ccd0d8 center/cover no-repeat;position:relative;display:flex;align-items:center;justify-content:center;font-size:48px;}
.lp-type-badge{position:absolute;top:12px;left:12px;background:rgba(13,27,42,.7);color:#fff;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:700;text-transform:capitalize;}
.lp-photo-count{position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,.5);color:#fff;border-radius:20px;padding:3px 10px;font-size:12px;}
.lp-bien-card-body{padding:20px;}
.lp-bien-card-body h3{font-family:'Playfair Display',serif;font-size:20px;margin:0 0 6px;color:var(--lp-primary);}
.lp-card-addr{color:var(--lp-grey);font-size:13px;margin:0 0 10px;}
.lp-card-icons{display:flex;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--lp-grey);margin-bottom:10px;}
.lp-card-price{font-size:14px;color:var(--lp-grey);margin-bottom:12px;}<br>.lp-card-price strong{font-size:18px;color:var(--lp-primary);}
.lp-card-cta{display:inline-block;padding:9px 18px;background:var(--lp-primary);color:#fff;border-radius:6px;font-weight:700;font-size:13px;}
.lp-bien-card:hover .lp-card-cta{background:var(--lp-accent);}

/* ── PAGE BIEN avec BG ────────────────────────────────── */
.lp-bien-page{min-height:100vh;padding:0;}
.lp-bien-inner{max-width:1100px;margin:0 auto;padding:20px 16px 60px;}

/* Header */
.lp-bien-header{padding:40px 0 30px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.4);}
.lp-bien-page:not([style]) .lp-bien-header{color:var(--lp-primary);text-shadow:none;}
.lp-bien-header h1{font-family:'Playfair Display',serif;font-size:clamp(28px,5vw,48px);margin:0 0 12px;}
.lp-bien-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;opacity:.9;}

/* Sections */
.lp-bien-section{background:rgba(255,255,255,.95);border-radius:var(--lp-radius);padding:28px;margin-bottom:24px;backdrop-filter:blur(4px);}
.lp-bien-page:not([style]) .lp-bien-section{background:#fff;box-shadow:var(--lp-shadow);}
.lp-bien-section h2{font-family:'Playfair Display',serif;font-size:22px;color:var(--lp-primary);margin:0 0 18px;}

.lp-bien-content-grid{display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start;}

/* ── GALERIE ──────────────────────────────────────────── */
.lp-photo-cat-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.lp-pcat-btn{padding:6px 16px;border-radius:20px;border:2px solid #dde1e8;background:#fff;cursor:pointer;font-size:13px;font-weight:700;transition:var(--lp-transition);}
.lp-pcat-btn:hover,.lp-pcat-btn.active{background:var(--lp-primary);color:#fff;border-color:var(--lp-primary);}
.lp-gallery-main{display:grid;grid-template-columns:1fr;gap:10px;}
.lp-gallery-big{position:relative;border-radius:10px;overflow:hidden;background:#111;}
.lp-gallery-big img{width:100%;height:380px;object-fit:cover;display:block;cursor:pointer;transition:opacity .2s;}
.lp-gallery-big img:hover{opacity:.92;}
.lp-lb-open-btn{position:absolute;bottom:12px;right:12px;background:rgba(0,0,0,.6);color:#fff;border:none;border-radius:6px;padding:7px 14px;cursor:pointer;font-size:13px;font-weight:700;}
.lp-gallery-strip{display:flex;gap:6px;overflow-x:auto;padding:4px 0;scrollbar-width:thin;scrollbar-color:#ccc transparent;}
.lp-strip-thumb{width:80px;height:60px;object-fit:cover;border-radius:6px;cursor:pointer;flex-shrink:0;border:2px solid transparent;opacity:.7;transition:var(--lp-transition);}
.lp-strip-thumb:hover,.lp-strip-thumb.active{opacity:1;border-color:var(--lp-primary);}

/* ── ÉQUIPEMENTS ─────────────────────────────────────── */
.lp-equips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;}
.lp-equip-item{background:var(--lp-light);border-radius:6px;padding:8px 12px;font-size:14px;color:var(--lp-text);}

/* ── TARIFS ──────────────────────────────────────────── */
.lp-tarifs-box{}
.lp-tarif-card{background:var(--lp-light);border-radius:10px;padding:16px;margin-bottom:12px;border-top:4px solid #27ae60;}
.lp-tarif-card-label{font-weight:700;font-size:14px;margin-bottom:4px;}
.lp-tarif-card-dates{font-size:12px;color:var(--lp-grey);margin-bottom:8px;}
.lp-tarif-card-price{font-size:20px;font-weight:700;color:var(--lp-primary);}
.lp-tarif-card-alt{font-size:13px;color:var(--lp-grey);}
.lp-tarif-card-min{font-size:12px;color:var(--lp-grey);margin-top:4px;font-style:italic;}

/* ── PLANNING PUBLIC ─────────────────────────────────── */
.lp-planning-public{}
.lp-planning-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.lp-plan-prev,.lp-plan-next{background:var(--lp-primary);color:#fff;border:none;border-radius:6px;width:34px;height:34px;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.lp-plan-title{font-family:'Playfair Display',serif;font-size:18px;color:var(--lp-primary);font-weight:700;}
.lp-planning-legend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px;font-size:13px;}
.lp-leg-item{display:flex;align-items:center;gap:6px;}
.lp-leg-item::before{content:'';width:16px;height:16px;border-radius:4px;display:inline-block;}
.lp-leg-dispo::before{background:#d1fae5;}
.lp-leg-reserv::before{background:#fee2e2;}
.lp-leg-tarif::before{background:#fef3c7;}
.lp-planning-months{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;}
.lp-month-block h3{font-size:15px;font-weight:700;color:var(--lp-primary);margin:0 0 10px;text-align:center;text-transform:capitalize;}
.lp-cal{width:100%;border-collapse:collapse;}
.lp-cal th{background:var(--lp-primary);color:#fff;padding:6px 3px;font-size:11px;text-align:center;}
.lp-cal td{padding:3px;font-size:12px;text-align:center;border:1px solid #f0f2f5;}
.lp-cal .lp-c-empty{background:#fafafa;}
.lp-cal .lp-c-dispo{background:#d1fae5;color:#065f46;}
.lp-cal .lp-c-reserv{background:#fee2e2;color:#991b1b;}
.lp-cal .lp-c-option{background:#fef3c7;color:#92400e;}
.lp-cal .lp-c-tarif{background:#fef3c7;}
.lp-cal .lp-c-today{outline:2px solid var(--lp-accent);outline-offset:-2px;font-weight:700;}
.lp-cal-price{display:block;font-size:9px;color:#888;}

/* ── FORMULAIRE CONTACT ───────────────────────────────── */
.lp-contact-form-wrap{}
.lp-contact-form{}
.lp-cf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.lp-cf-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;}
.lp-cf-field label{font-size:12px;font-weight:700;color:var(--lp-grey);text-transform:uppercase;letter-spacing:.5px;}
.lp-cf-field input,.lp-cf-field select,.lp-cf-field textarea{padding:11px 14px;border:2px solid #e0e4eb;border-radius:8px;font-size:14px;font-family:'Lato',sans-serif;transition:var(--lp-transition);}
.lp-cf-field input:focus,.lp-cf-field select:focus,.lp-cf-field textarea:focus{border-color:var(--lp-primary);outline:none;}
.lp-cf-field textarea{resize:vertical;min-height:100px;}
.lp-cf-row .lp-cf-field{margin-bottom:0;}
.lp-cf-submit{width:100%;padding:13px;background:var(--lp-primary);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;transition:var(--lp-transition);}
.lp-cf-submit:hover{background:var(--lp-accent);transform:translateY(-1px);}

.lp-alert{padding:16px 20px;border-radius:8px;margin-bottom:16px;font-size:15px;}
.lp-alert-success{background:#d1fae5;color:#065f46;border-left:4px solid #27ae60;}
.lp-alert-error{background:#fee2e2;color:#991b1b;border-left:4px solid #e74c3c;}

/* ── LIGHTBOX ─────────────────────────────────────────── */
.lp-lightbox{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;}
.lp-lb-overlay{position:absolute;inset:0;background:rgba(0,0,0,.92);}
.lp-lb-wrap{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;max-width:90vw;}
.lp-lb-wrap img{max-width:88vw;max-height:72vh;border-radius:6px;box-shadow:0 8px 48px rgba(0,0,0,.5);transition:opacity .2s;}
.lp-lb-close,.lp-lb-prev,.lp-lb-next{position:absolute;background:rgba(255,255,255,.15);border:none;color:#fff;cursor:pointer;border-radius:50%;width:44px;height:44px;font-size:24px;display:flex;align-items:center;justify-content:center;transition:var(--lp-transition);}
.lp-lb-close:hover,.lp-lb-prev:hover,.lp-lb-next:hover{background:rgba(255,255,255,.3);}
.lp-lb-close{top:-52px;right:0;font-size:16px;}
.lp-lb-prev{left:-56px;top:50%;transform:translateY(-50%);}
.lp-lb-next{right:-56px;top:50%;transform:translateY(-50%);}
.lp-lb-info{display:flex;gap:14px;align-items:center;margin-top:10px;color:rgba(255,255,255,.7);font-size:13px;}
.lp-lb-filmstrip{display:flex;gap:6px;overflow-x:auto;max-width:80vw;margin-top:12px;padding:4px;scrollbar-width:thin;scrollbar-color:#555 transparent;}
.lp-lb-fs-img{width:54px;height:40px;object-fit:cover;border-radius:4px;cursor:pointer;opacity:.55;border:2px solid transparent;flex-shrink:0;transition:var(--lp-transition);}
.lp-lb-fs-img:hover{opacity:.85;}
.lp-lb-fs-img.active{opacity:1;border-color:#fff;}

/* ── RESPONSIVE ───────────────────────────────────────── */
@media(max-width:900px){
  .lp-bien-content-grid{grid-template-columns:1fr;}
  .lp-bien-side-col{order:-1;}
  .lp-bien-side-col .lp-tarifs-box{margin-bottom:0;}
}
@media(max-width:640px){
  .lp-vitrine-grid{grid-template-columns:1fr;}
  .lp-gallery-big img{height:240px;}
  .lp-cf-row{grid-template-columns:1fr;}
  .lp-bien-header h1{font-size:26px;}
  .lp-lb-prev,.lp-lb-next{display:none;}
  .lp-lb-wrap img{max-width:96vw;max-height:65vh;}
  .lp-planning-months{grid-template-columns:1fr;}
}
