/* ==========================================================================
   Parcelles Bénin — direction « Premium Sobre »
   Reskin des couleurs/typo globales Astra + composants pb-* custom
   ========================================================================== */

:root{
  /* Palette */
  --pb-bg:#F7F4EC;
  --pb-paper:#FBF9F3;
  --pb-paper-2:#EFEAD9;
  --pb-ink:#12213D;
  --pb-ink-soft:#5B6472;
  --pb-ink-faint:#8B92A0;
  --pb-navy:#12213D;
  --pb-navy-deep:#0B1626;
  --pb-gold:#B08D52;
  --pb-gold-strong:#8F6E3A;
  --pb-gold-wash:rgba(176,141,82,0.14);
  --pb-line:rgba(18,33,61,0.14);
  --pb-line-soft:rgba(18,33,61,0.07);
  --pb-shadow:0 1px 2px rgba(18,33,61,0.05), 0 14px 32px rgba(18,33,61,0.07);
  --pb-font-display:"Didot","Bodoni MT",Georgia,"Times New Roman",serif;
  --pb-font-body:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --pb-font-mono:"SF Mono",Consolas,"Roboto Mono",monospace;

  /* Astra global color tokens — reskin the whole theme through these */
  --ast-global-color-0:#8F6E3A;   /* primary accent (links, buttons) */
  --ast-global-color-1:#6E5228;   /* hover accent, darker gold */
  --ast-global-color-2:#12213D;   /* headings */
  --ast-global-color-3:#334155;   /* body text */
  --ast-global-color-4:#FBF9F3;   /* light bg */
  --ast-global-color-5:#EFEAD9;   /* secondary bg */
  --ast-global-color-6:#0B1626;   /* dark bg */
  --ast-global-color-7:#DDD3BC;   /* borders */
  --ast-global-color-8:#0B1626;
}

body, button, input, select, textarea, .ast-button, .ast-custom-button{
  font-family:var(--pb-font-body);
}
body{ background:var(--pb-bg); }
h1,h2,h3,h4,h5,h6,.entry-content :where(h1,h2,h3,h4,h5,h6),.site-title,.site-title a{
  font-family:var(--pb-font-display);
  font-weight:400;
}
a{ text-decoration:none; }

/* ---------- header ---------- */
.site-header{ background:var(--pb-paper); border-bottom:1px solid var(--pb-line-soft); }
.ast-site-identity .site-title a{ letter-spacing:0.02em; }
.main-header-menu .menu-item > .menu-link{
  font-size:0.82rem; letter-spacing:0.08em; text-transform:uppercase;
}

.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post{ background:transparent; box-shadow:none; padding:0; }

.pb-eyebrow{
  font-size:0.72rem; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--pb-gold-strong); display:flex; align-items:center; gap:10px; justify-content:center;
}

/* ==========================================================================
   pb-hero  (homepage-only marketing intro, injected in page content)
   ========================================================================== */
.pb-hero{ position:relative; margin:0 -3em 0; overflow:hidden; }
.pb-hero-visual{ position:relative; height:300px; overflow:hidden; }
.pb-hero-visual svg{ width:100%; height:100%; display:block; }
.pb-hero-caption{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; text-align:center; padding:0 24px;
  background:linear-gradient(180deg, rgba(11,22,38,0.2), rgba(11,22,38,0.6));
}
.pb-hero-caption .pb-eyebrow{ color:#DBBE85; margin-bottom:14px; }
.pb-hero-caption h1{ color:#F7F4EC; font-size:clamp(1.7rem,4vw,2.7rem); line-height:1.08; margin:0; }
.pb-hero-caption p{ color:#D6D9E2; max-width:460px; margin:14px auto 0; font-size:0.95rem; font-weight:300; }

.pb-stats-band{ padding:18px 0; background:var(--pb-paper-2); border-top:1px solid var(--pb-line-soft); border-bottom:1px solid var(--pb-line-soft); margin-bottom:40px; }
.pb-stats-row{ display:flex; justify-content:center; gap:0; margin:0 auto; max-width:460px; flex-wrap:wrap; }
.pb-stat{ flex:1; text-align:center; padding:0 14px; border-right:1px solid var(--pb-line); min-width:100px; }
.pb-stat:last-child{ border-right:none; }
.pb-stat b{ display:block; font-family:var(--pb-font-display); font-size:1.05rem; color:var(--pb-navy); font-weight:600; }
.pb-stat span{ font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--pb-ink-faint); }

/* ==========================================================================
   pb-listing-search  (Zone + Budget max only)
   ========================================================================== */
.pb-listing-search{
  max-width:680px; margin:0 auto 40px; background:var(--pb-paper); border:1px solid var(--pb-line);
  box-shadow:var(--pb-shadow); display:grid; grid-template-columns:1fr 1fr auto;
}
.pb-search-field{ padding:20px 22px; border-right:1px solid var(--pb-line-soft); }
.pb-search-field:last-of-type{ border-right:none; }
.pb-search-field label{ display:block; font-size:0.62rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--pb-ink-faint); margin-bottom:6px; }
.pb-search-field select, .pb-search-field input{
  border:none; background:transparent; font-family:var(--pb-font-body); font-size:0.92rem;
  color:var(--pb-ink); padding:0; outline:none; width:100%; height:auto; box-shadow:none;
}
.pb-search-submit{
  border:none; background:var(--pb-navy); color:#F7F4EC; font-size:0.74rem; letter-spacing:0.1em;
  text-transform:uppercase; padding:0 26px; cursor:pointer; height:auto;
}
.pb-search-submit:hover{ background:var(--pb-gold-strong); }
@media (max-width:640px){
  .pb-listing-search{ grid-template-columns:1fr 1fr; }
  .pb-search-submit{ grid-column:1/-1; padding:14px; }
}

/* ==========================================================================
   pb-carousel  (« Annonces récentes », défilement automatique)
   ========================================================================== */
.pb-carousel-head{ text-align:center; max-width:600px; margin:0 auto 10px; }
.pb-carousel-head h2{ font-size:1.1rem; margin:0; }
.pb-carousel-rail{
  position:relative; margin:0 -3em; padding:0 3em 20px; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, black 48px, black calc(100% - 48px), transparent);
  mask-image:linear-gradient(90deg, transparent, black 48px, black calc(100% - 48px), transparent);
}
.pb-carousel-track{ display:flex; gap:20px; width:max-content; animation:pb-marquee 30s linear infinite; }
.pb-carousel-rail:hover .pb-carousel-track,
.pb-carousel-rail:focus-within .pb-carousel-track{ animation-play-state:paused; }
@keyframes pb-marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){
  .pb-carousel-rail{ overflow-x:auto; -webkit-mask-image:none; mask-image:none; }
  .pb-carousel-track{ animation:none; }
  .pb-carousel-track .pb-dup{ display:none; }
}
.pb-carousel-card{ background:var(--pb-paper); border:1px solid var(--pb-line); flex:0 0 210px; text-decoration:none; color:inherit; display:block; }
.pb-carousel-thumb{ aspect-ratio:4/2.4; overflow:hidden; background:var(--pb-paper-2); }
.pb-carousel-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.pb-carousel-body{ padding:14px 16px 16px; }
.pb-carousel-type{ font-size:0.58rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--pb-gold-strong); }
.pb-carousel-title{ font-family:var(--pb-font-display); font-size:0.92rem; margin:6px 0 0; font-weight:400; color:var(--pb-ink); }
.pb-carousel-loc{ font-size:0.72rem; color:var(--pb-ink-faint); margin-top:4px; }
.pb-carousel-price{ font-size:0.82rem; color:var(--pb-ink); margin-top:10px; padding-top:10px; border-top:1px solid var(--pb-line-soft); }

/* ==========================================================================
   pb-listings  (liste verticale complète + photo à droite)
   ========================================================================== */
.pb-listings-head{ text-align:center; max-width:600px; margin:0 auto 24px; }
.pb-listings-head h2{ font-size:clamp(1.6rem,2.8vw,2.1rem); margin:0; }
.pb-listings-head p{ color:var(--pb-ink-soft); margin-top:10px; font-weight:300; }

.pb-listings-wrap.pb-has-photo-rail{ position:relative; padding-right:260px; }
.pb-photo-rail{ position:absolute; top:0; right:0; width:230px; height:100%; overflow:hidden; }
.pb-photo-rail img{ width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.pb-photo-rail::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(90deg, var(--pb-bg) 0%, transparent 60px),
    linear-gradient(180deg, rgba(11,22,38,0.3), rgba(11,22,38,0.02) 25%, rgba(11,22,38,0.02) 70%, rgba(11,22,38,0.45));
}
@media (max-width:900px){
  .pb-listings-wrap.pb-has-photo-rail{ padding-right:0; }
  .pb-photo-rail{ display:none; }
}

.pb-rows{ display:flex; flex-direction:column; }
.pb-row{
  display:grid; grid-template-columns:150px 1fr auto; gap:24px; align-items:center;
  padding:22px 0; border-top:1px solid var(--pb-line-soft); text-decoration:none; color:inherit;
}
.pb-row:first-child{ border-top:none; padding-top:0; }
.pb-row-thumb{ width:150px; aspect-ratio:4/3; overflow:hidden; flex:none; background:var(--pb-paper-2); }
.pb-row-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.pb-row-tag{ font-size:0.62rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--pb-gold-strong); }
.pb-row h3{ font-family:var(--pb-font-display); font-size:1.15rem; font-weight:400; margin:8px 0 0; color:var(--pb-ink); }
.pb-row-loc{ font-size:0.82rem; color:var(--pb-ink-faint); margin-top:6px; }
.pb-row-price-col{ text-align:right; }
.pb-row-price{ display:block; font-size:1rem; color:var(--pb-ink); }
.pb-row-area{ display:block; font-size:0.76rem; color:var(--pb-ink-faint); margin-top:4px; }
@media (max-width:640px){
  .pb-row{ grid-template-columns:80px 1fr; }
  .pb-row-price-col{ grid-column:1/-1; text-align:left; padding-top:6px; }
}

.pb-pagination{ margin-top:32px; text-align:center; }
.pb-pagination .page-numbers{
  display:inline-block; margin:0 4px; padding:8px 14px; border:1px solid var(--pb-line);
  color:var(--pb-ink-soft); font-size:0.85rem; text-decoration:none;
}
.pb-pagination .page-numbers.current{ background:var(--pb-navy); border-color:var(--pb-navy); color:#F7F4EC; }

.pb-empty{ text-align:center; color:var(--pb-ink-soft); padding:40px 0; }

/* ==========================================================================
   pb-why  (bloc confiance, homepage-only)
   ========================================================================== */
.pb-why{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; margin:64px 0; }
.pb-why-illus{ aspect-ratio:5/4; background:var(--pb-paper-2); }
.pb-why-illus svg{ width:100%; height:100%; display:block; }
.pb-why ul{ list-style:none; margin:24px 0 0; padding:0; display:flex; flex-direction:column; gap:24px; }
.pb-why li{ display:flex; gap:20px; border-top:1px solid var(--pb-line-soft); padding-top:22px; }
.pb-why li:first-child{ border-top:none; padding-top:0; }
.pb-why-num{ font-family:var(--pb-font-display); font-size:1rem; color:var(--pb-gold-strong); flex:none; width:28px; }
.pb-why h4{ font-family:var(--pb-font-body); font-size:1rem; font-weight:600; margin:0 0 6px; color:var(--pb-ink); }
.pb-why p{ margin:0; color:var(--pb-ink-soft); font-size:0.9rem; font-weight:300; max-width:44ch; }
@media (max-width:800px){ .pb-why{ grid-template-columns:1fr; gap:32px; } }

/* ==========================================================================
   pb-cta  (bande CTA avec motif doré, homepage-only)
   ========================================================================== */
.pb-cta{
  background-image:
    linear-gradient(160deg, rgba(11,22,38,0.84), rgba(11,22,38,0.7)),
    url('https://parcellesbenin.com/wp-content/uploads/parcellesbenin-theme/motif-bande.jpg');
  background-size:cover; background-position:center; background-repeat:no-repeat;
  color:#F7F4EC; text-align:center; padding:70px 32px; margin:0 -3em;
}
.pb-cta .pb-eyebrow{ color:var(--pb-gold); }
.pb-cta h3{ font-size:clamp(1.5rem,3vw,2.1rem); max-width:600px; margin:16px auto 0; color:#F7F4EC; font-family:var(--pb-font-display); font-weight:400; }
.pb-cta .pb-actions{ margin-top:28px; display:flex; justify-content:center; gap:16px; flex-wrap:wrap; }
.pb-btn-gold{ background:var(--pb-gold); color:var(--pb-navy-deep); padding:14px 28px; text-decoration:none; font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase; }
.pb-btn-outline{ border:1px solid rgba(247,244,236,0.5); color:#F7F4EC; padding:14px 28px; text-decoration:none; font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase; }

/* ==========================================================================
   Fiche annonce individuelle (gabarit EPL par défaut, léger habillage)
   ========================================================================== */
.epl-property-single{ background:var(--pb-paper); }
.page-price{ color:var(--pb-navy); font-weight:700; }
.epl-property-address{ font-family:var(--pb-font-display); color:var(--pb-ink); }
.epl-property-meta, .epl-property-details{ color:var(--pb-ink-soft); }
.pb-whatsapp-button{
  display:inline-block; background:var(--pb-navy); color:#F7F4EC; padding:13px 24px;
  text-decoration:none; font-weight:600; font-size:0.92rem;
}
.pb-whatsapp-button:hover{ background:var(--pb-gold-strong); }
.pb-whatsapp-locked{ color:var(--pb-ink-soft); font-style:italic; }
