/* =========================================================
   Fiche programme publique — charte Genco Corsica Immobilier
   bleu #22567B · doré #D5A73B · Playfair (nom) · Poppins (titres)
   Préfixe .cpn- pour ne jamais entrer en conflit avec le thème.
   ========================================================= */
.cpn-prog{
  --bleu:#22567B; --bleu-fonce:#1a4361; --bleu-nuit:#143047;
  --dore:#D5A73B; --noir:#0e1419; --blanc:#fff;
  --gris-bg:#F4F6F8; --gris-bord:#E3E8ED; --gris-txt:#5b6b78;
  --titre:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;
  --corps:'Mulish','Poppins',sans-serif;
  --nom:'Playfair Display',Georgia,serif;
  font-family:var(--corps); color:var(--noir); line-height:1.65;
}
.cpn-prog *{box-sizing:border-box}
/* Texte net : on neutralise toute ombre de police héritée du thème,
   partout sur la fiche. Seul le titre du hero garde une ombre douce
   pour rester lisible sur la photo. */
.cpn-prog,.cpn-prog *{text-shadow:none}
/* Lissage de police : sans antialiasing explicite, les textes fins
   paraissent baveux sur Mac/Chrome. On force un rendu net partout. */
.cpn-prog,.cpn-prog *{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
.cpn-prog img{display:block;max-width:100%}
.cpn-wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.cpn-ic-or{width:17px;height:17px;fill:var(--dore);flex:none}
.cpn-ic-bleu{width:18px;height:18px;fill:var(--bleu);flex:none}

/* BANNIÈRE */
.cpn-hero{position:relative;height:78vh;min-height:560px;max-height:760px;display:flex;align-items:flex-end;
  background:var(--bleu-nuit);background-size:cover;background-position:center}
.cpn-hero-in{width:100%;padding-bottom:42px;position:relative;z-index:2}
.cpn-hero-statut{display:inline-block;background:var(--dore);color:var(--noir);font-family:var(--titre);
  font-weight:600;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;padding:7px 16px;margin-bottom:18px;border-radius:999px}
.cpn-hero-title{font-family:var(--nom);font-weight:600;color:#fff;margin:0;
  font-size:clamp(2.3rem,5.2vw,4rem);line-height:1.04;text-shadow:0 2px 24px rgba(0,0,0,.32)}
.cpn-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;margin-top:16px;
  color:#eaf1f6;font-family:var(--titre);font-weight:400;font-size:1.02rem}
.cpn-loc{display:flex;align-items:center;gap:9px}
.cpn-sep{width:1px;height:18px;background:rgba(255,255,255,.35)}
.cpn-prix b{font-weight:600;color:#fff}

/* ONGLETS STICKY */
.cpn-nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);
  backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--gris-bord)}
.cpn-nav-in{display:flex;align-items:center;justify-content:space-between;gap:20px}
.cpn-nav-name{font-family:var(--nom);font-weight:600;font-size:1.18rem;color:var(--bleu);
  white-space:nowrap;opacity:0;transform:translateY(4px);transition:.3s}
.cpn-nav.scrolled .cpn-nav-name{opacity:1;transform:none}
.cpn-tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.cpn-tabs::-webkit-scrollbar{display:none}
.cpn-tabs a{position:relative;font-family:var(--titre);font-weight:500;font-size:.84rem;
  letter-spacing:.04em;text-transform:uppercase;color:var(--gris-txt);text-decoration:none;
  padding:20px 17px;white-space:nowrap;transition:color .2s}
.cpn-tabs a:hover{color:var(--bleu)}
.cpn-tabs a.active{color:var(--bleu)}
.cpn-tabs a.active::after{content:"";position:absolute;left:17px;right:17px;bottom:0;height:3px;background:var(--dore)}
.cpn-nav-cta{font-family:var(--titre);font-weight:600;font-size:.82rem;background:var(--bleu);color:#fff;
  text-decoration:none;padding:11px 24px;white-space:nowrap;border-radius:999px;transition:background .2s}
.cpn-nav-cta:hover{background:var(--bleu-fonce);color:#fff}
@media(max-width:880px){.cpn-nav-cta,.cpn-nav-name{display:none}}

/* SECTIONS */
.cpn-prog section{scroll-margin-top:66px}
.cpn-sec{padding:74px 0}
.cpn-alt{background:var(--gris-bg)}
.cpn-eyebrow{font-family:var(--titre);font-weight:600;font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--bleu);margin-bottom:14px}
.cpn-h2{font-family:var(--titre);font-weight:600;font-size:clamp(1.5rem,3vw,2.05rem);
  color:var(--bleu-nuit);line-height:1.15;margin:0}
.cpn-lead{max-width:760px;margin-top:18px;color:#3c4a55;font-size:1.06rem}
.cpn-lead p+p{margin-top:14px}

.cpn-pres{display:grid;grid-template-columns:1.55fr 1fr;gap:48px;align-items:start;margin-top:18px}
@media(max-width:840px){.cpn-pres{grid-template-columns:1fr;gap:34px}}
.cpn-points{border-left:2px solid var(--dore);padding-left:24px}
.cpn-points h3{font-family:var(--titre);font-weight:600;font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--bleu);margin:0 0 18px}
.cpn-points ul{margin:0;padding:0}
.cpn-points li{list-style:none;display:flex;gap:12px;align-items:flex-start;padding:11px 0;
  border-bottom:1px solid var(--gris-bord);font-size:1rem;color:#2c3942}
.cpn-points li:last-child{border-bottom:0}
.cpn-points svg{width:18px;height:18px;fill:none;stroke:var(--dore);stroke-width:2.4;flex:none;margin-top:3px}

/* caractéristiques clés */
.cpn-specs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--gris-bord);
  border:1px solid var(--gris-bord);margin-top:42px}
@media(max-width:840px){.cpn-specs{grid-template-columns:repeat(2,1fr)}}
.cpn-spec{background:#fff;padding:26px 24px}
.cpn-spec .k{font-family:var(--titre);font-weight:400;font-size:.74rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--gris-txt);margin-bottom:9px}
.cpn-spec .v{font-family:var(--titre);font-weight:600;font-size:1.34rem;color:var(--bleu-nuit)}

/* galerie */
.cpn-gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:160px 160px;gap:10px;margin-top:42px}
.cpn-gal a{overflow:hidden;display:block;background:#dde4ea;cursor:zoom-in}
.cpn-gal a:first-child{grid-row:1/3}
.cpn-gal img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.cpn-gal a:hover img{transform:scale(1.05)}
@media(max-width:840px){.cpn-gal{grid-template-columns:1fr 1fr;grid-template-rows:130px 130px}
  .cpn-gal a:first-child{grid-row:auto;grid-column:1/3;height:200px}}

/* lots — accordéon */
.cpn-bat{margin-top:26px;border:1px solid var(--gris-bord);background:#fff}
.cpn-bat-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  background:var(--bleu-nuit);color:#fff;padding:16px 22px;cursor:pointer;user-select:none;transition:background .2s}
.cpn-bat-head:hover{background:var(--bleu-fonce)}
.cpn-bat-head h3{font-family:var(--titre);font-weight:600;font-size:1.05rem;margin:0;display:flex;align-items:center;gap:11px}
.cpn-bat-right{display:flex;align-items:center;gap:20px}
.cpn-bat-meta{font-family:var(--titre);font-weight:400;font-size:.85rem;color:#bcd0df;display:flex;gap:18px}
.cpn-bat-meta b{color:#fff;font-weight:500}
.cpn-chev{width:20px;height:20px;flex:none;stroke:var(--dore);stroke-width:2.6;fill:none;transition:transform .3s}
.cpn-bat.open .cpn-chev{transform:rotate(180deg)}
.cpn-bat-body{display:none}
.cpn-bat.open .cpn-bat-body{display:block}
@media(max-width:560px){.cpn-bat-meta{display:none}}

.cpn-table-wrap{overflow-x:auto}
.cpn-table{width:100%;border-collapse:collapse;background:#fff}
.cpn-table thead th{font-family:var(--titre);font-weight:600;font-size:.68rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--gris-txt);text-align:left;padding:13px 18px;
  border-bottom:1px solid var(--gris-bord);white-space:nowrap}
.cpn-table th.r,.cpn-table td.r{text-align:right}
.cpn-table tbody td{padding:15px 18px;border-bottom:1px solid #eef2f5;font-size:.96rem;color:#2c3942;white-space:nowrap}
.cpn-table tbody tr:last-child td{border-bottom:0}
.cpn-table tbody tr:hover{background:#fafbfc}
.cpn-lot-type{font-family:var(--titre);font-weight:600;color:var(--bleu-nuit)}
.cpn-lot-prix{font-family:var(--titre);font-weight:600;color:var(--bleu)}
.cpn-tag{display:inline-block;font-family:var(--titre);font-weight:600;font-size:.72rem;padding:5px 15px;border-radius:999px;color:#fff}
.cpn-tag.dispo{background:#1f9d57;color:#fff}
.cpn-tag.reserve{background:#d4493f;color:#fff}
.cpn-tag.optionne{background:#e0992a;color:#fff}
.cpn-tag.vendu{background:#d4493f;color:#fff}
.cpn-table tr.cpn-indispo td:not(.cpn-s){opacity:.45}
.cpn-empty{padding:22px;color:var(--gris-txt);font-size:.95rem}

/* fiscal */
.cpn-blocs{display:grid;grid-template-columns:1fr 1fr;gap:42px;margin-top:42px}
@media(max-width:840px){.cpn-blocs{grid-template-columns:1fr}}
.cpn-bloc h3{font-family:var(--titre);font-weight:600;font-size:.78rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--bleu);margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--gris-bord)}
.cpn-chips{display:flex;flex-wrap:wrap;gap:9px}
.cpn-chip{font-family:var(--titre);font-weight:500;font-size:.86rem;padding:8px 18px;background:#fff;
  border:1px solid var(--gris-bord);color:#33424d;border-radius:999px}
.cpn-chip.or{border:none;background:var(--dore);color:#fff}
.cpn-kvs{margin-top:22px}
.cpn-kv{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--gris-bord);font-size:.97rem}
.cpn-kv:last-child{border-bottom:0}
.cpn-kv .k{color:var(--gris-txt)}
.cpn-kv .v{font-family:var(--titre);font-weight:500;color:var(--bleu-nuit)}

/* localisation */
.cpn-prox{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:42px}
@media(max-width:840px){.cpn-prox{grid-template-columns:1fr}}
.cpn-prox-item{display:flex;align-items:center;gap:15px;background:#fff;border:1px solid var(--gris-bord);padding:17px 19px}
.cpn-prox-ic{width:42px;height:42px;flex:none;border-radius:50%;background:#eef3f7;display:flex;align-items:center;justify-content:center}
.cpn-prox-ic svg{width:20px;height:20px;fill:none;stroke:var(--bleu);stroke-width:1.9}
.cpn-prox-item .n{font-family:var(--titre);font-weight:500;font-size:.97rem;color:var(--bleu-nuit)}
.cpn-prox-item .d{font-size:.82rem;color:var(--gris-txt)}
.cpn-map{height:400px;margin-top:42px;border:1px solid var(--gris-bord);background:#dbe5ec;z-index:0}
.cpn-adr{display:flex;align-items:center;gap:10px;margin-top:30px;font-family:var(--titre);font-weight:500;color:var(--bleu-nuit)}

/* contact */
.cpn-contact{background:var(--bleu-nuit);color:#fff}
.cpn-contact .cpn-eyebrow{color:var(--dore)}
.cpn-contact .cpn-h2{color:#fff}
.cpn-lead-w{max-width:680px;margin-top:18px;color:#cfe0ec;font-size:1.04rem}
.cpn-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:34px;max-width:720px}
.cpn-form .full{grid-column:1/3}
@media(max-width:680px){.cpn-form{grid-template-columns:1fr}.cpn-form .full{grid-column:1}}
.cpn-form input,.cpn-form textarea{width:100%;font-family:var(--corps);font-size:.97rem;padding:14px 16px;
  border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff;border-radius:0}
.cpn-form input::placeholder,.cpn-form textarea::placeholder{color:#9fb4c4}
.cpn-form input:focus,.cpn-form textarea:focus{outline:none;border-color:var(--dore)}
.cpn-form button{grid-column:1/3;justify-self:start;font-family:var(--titre);font-weight:600;font-size:.9rem;
  letter-spacing:.04em;background:#fff;color:var(--bleu-nuit);border:0;padding:15px 38px;cursor:pointer;border-radius:999px;transition:transform .15s}
.cpn-form button:hover{transform:translateY(-2px)}
@media(max-width:680px){.cpn-form button{grid-column:1}}

/* carte Google Maps (iframe) */
.cpn-map-embed{margin-top:42px;border:1px solid var(--gris-bord);line-height:0}
.cpn-map-embed iframe{display:block;width:100%;height:400px;border:0}

/* =========================================================
   FAQ — accordéon (réutilise le mécanisme .open des bâtiments)
   v0.6.8
   ========================================================= */
.cpn-faq{margin-top:42px;border:1px solid var(--gris-bord);background:#fff}
.cpn-faq-item{border-bottom:1px solid var(--gris-bord)}
.cpn-faq-item:last-child{border-bottom:0}
.cpn-faq-q{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 24px;cursor:pointer;user-select:none;font-family:var(--titre);font-weight:600;
  font-size:1.02rem;color:var(--bleu-nuit);transition:color .2s}
.cpn-faq-q:hover{color:var(--bleu)}
.cpn-faq-q>span{flex:1}
.cpn-faq-q .cpn-chev{stroke:var(--dore)}
.cpn-faq-item.open .cpn-chev{transform:rotate(180deg)}
.cpn-faq-a{display:none;padding:0 24px 22px;color:#3c4a55;font-size:1rem;line-height:1.7}
.cpn-faq-a p{margin:0 0 10px}
.cpn-faq-a p:last-child{margin-bottom:0}
.cpn-faq-item.open .cpn-faq-a{display:block}

/* =========================================================
   CORRECTIF SCROLL HORIZONTAL MOBILE (v0.6.7)
   La barre d'onglets est un enfant flex : sans min-width:0 elle
   refuse de retrecir et pousse toute la page au-dela de l'ecran.
   On la laisse defiler en interne et on borne sa largeur.
   ========================================================= */
.cpn-nav-in{min-width:0}
.cpn-tabs{min-width:0;max-width:100%;-webkit-overflow-scrolling:touch}

/* =========================================================
   VISIONNEUSE GALERIE (lightbox plein écran avec navigation)
   ========================================================= */
.cpn-lb{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;
  background:rgba(10,20,28,.92);padding:40px}
.cpn-lb.open{display:flex}
.cpn-lb-fig{margin:0;max-width:92vw;max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:14px}
.cpn-lb-img{max-width:92vw;max-height:80vh;object-fit:contain;border-radius:4px;box-shadow:0 10px 50px rgba(0,0,0,.5)}
.cpn-lb-count{font-family:var(--titre);font-weight:400;font-size:.9rem;color:#dfe8ef;letter-spacing:.05em}
.cpn-lb-close{position:absolute;top:22px;right:26px;width:44px;height:44px;border:0;border-radius:50%;
  background:rgba(255,255,255,.12);color:#fff;font-size:1.9rem;line-height:1;cursor:pointer;transition:background .2s}
.cpn-lb-close:hover{background:rgba(255,255,255,.24)}
.cpn-lb-prev,.cpn-lb-next{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:0;
  border-radius:50%;background:rgba(255,255,255,.12);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.cpn-lb-prev:hover,.cpn-lb-next:hover{background:rgba(255,255,255,.24)}
.cpn-lb-prev{left:26px}
.cpn-lb-next{right:26px}
.cpn-lb-prev svg,.cpn-lb-next svg{width:26px;height:26px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
/* Neutralise le fond + la bordure rouge injectés par le thème sur focus/clic. */
.cpn-lb-close,.cpn-lb-prev,.cpn-lb-next{-webkit-appearance:none;appearance:none;box-shadow:none;outline:none;border:0 solid transparent!important}
.cpn-lb-close:hover,.cpn-lb-close:focus,.cpn-lb-close:focus-visible,.cpn-lb-close:active,
.cpn-lb-prev:hover,.cpn-lb-prev:focus,.cpn-lb-prev:focus-visible,.cpn-lb-prev:active,
.cpn-lb-next:hover,.cpn-lb-next:focus,.cpn-lb-next:focus-visible,.cpn-lb-next:active{background:rgba(255,255,255,.24)!important;border-color:transparent!important;box-shadow:none!important;outline:none!important;color:#fff!important}
@media(max-width:560px){
  .cpn-lb{padding:16px}
  .cpn-lb-prev,.cpn-lb-next{width:42px;height:42px}
  .cpn-lb-prev{left:10px}.cpn-lb-next{right:10px}
  .cpn-lb-close{top:12px;right:12px}
}
