/* public/assets/css/content-bands.css — landing-page section styles (services, property categories).
   Markup: public/components/public/content_bands.php */
.cx-band{ padding:clamp(48px,7vw,88px) 0; background:var(--color-surface,#fff); }
.cx-band.alt{ background:var(--color-surface-alt,#F1F6F5); }
.cx-band + .cx-band.alt, .cx-band.alt + .cx-band{ border-top:0; }
.cx-kicker{ display:inline-flex; align-items:center; gap:10px; font-size:.74rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--color-primary,#0D9488); margin-bottom:12px; }
.cx-kicker::before{ content:""; width:28px; height:2px; background:var(--color-accent,#E8902C); }
.cx-title{ font-family:var(--font-display,'Montserrat',sans-serif); font-weight:800; font-size:clamp(1.45rem,2.6vw,2.05rem); line-height:1.22; color:var(--color-text-heading,#0A1413); margin:0 0 18px; }
.cx-body{ color:var(--color-text-body,#44524F); font-size:1rem; line-height:1.8; }
.cx-body p{ margin:0 0 14px; }
.cx-body p:last-child{ margin-bottom:0; }
.cx-h3{ font-family:var(--font-display,'Montserrat',sans-serif); font-size:1.08rem; font-weight:700; color:var(--color-text-heading,#0A1413); margin:26px 0 10px; padding-left:14px; border-left:3px solid var(--color-primary,#0D9488); }
.cx-list{ list-style:none; padding:0; margin:6px 0 18px; display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px 18px; }
.cx-list li{ display:flex; gap:10px; align-items:flex-start; line-height:1.55; }
.cx-list li i{ flex:0 0 22px; height:22px; margin-top:1px; border-radius:50%; background:var(--color-surface-mint,#DFF1ED); color:var(--color-primary,#0D9488); font-size:.68rem; display:flex; align-items:center; justify-content:center; }

/* feature: text beside an image */
.cx-feature{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(28px,5vw,64px); align-items:start; }
.cx-feature.flip{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); }
.cx-feature.flip .cx-media{ order:-1; }
.cx-media{ position:sticky; top:calc(var(--nb-h,68px) + 24px); }
.cx-media-frame{ position:relative; border-radius:18px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 22px 50px rgba(6,52,47,.18); background:var(--color-surface-mint,#DFF1ED); }
.cx-media-frame img{ width:100%; height:100%; object-fit:cover; display:block; }
.cx-media::after{ content:""; position:absolute; z-index:-1; right:-14px; bottom:-14px; width:60%; height:60%; border-radius:18px; background:var(--color-surface-mint,#DFF1ED); }
.cx-feature.flip .cx-media::after{ right:auto; left:-14px; }
.cx-num{ position:absolute; left:18px; top:18px; background:rgba(255,255,255,.92); color:var(--color-secondary,#06342F); font-family:var(--font-display,'Montserrat',sans-serif); font-weight:800; font-size:.9rem; padding:8px 12px; border-radius:10px; }
@media(max-width:900px){
  .cx-feature, .cx-feature.flip{ grid-template-columns:1fr; }
  .cx-feature.flip .cx-media{ order:0; }
  .cx-media{ position:relative; top:0; order:-1; }
  .cx-media-frame{ aspect-ratio:16/10; }
  .cx-media::after{ display:none; }
}

/* plain: centred text */
.cx-plain{ max-width:820px; margin:0 auto; }

/* grid: short sections as cards */
.cx-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; }
.cx-card{ background:var(--color-surface,#fff); border:1px solid var(--color-border,#E2EAE8); border-radius:14px; padding:24px; transition:transform .2s, box-shadow .2s; }
.cx-card:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(6,52,47,.09); }
.cx-card-icon{ width:42px; height:42px; border-radius:12px; background:var(--color-primary,#0D9488); color:#fff; display:flex; align-items:center; justify-content:center; margin-bottom:14px; font-weight:800; font-family:var(--font-display,'Montserrat',sans-serif); }
.cx-card h3{ font-family:var(--font-display,'Montserrat',sans-serif); font-size:1.05rem; font-weight:700; color:var(--color-text-heading,#0A1413); margin:0 0 10px; }
.cx-card .cx-body{ font-size:.93rem; line-height:1.7; }
.cx-card .cx-list{ grid-template-columns:1fr; }

/* faq: accordion */
.cx-faq{ max-width:860px; margin:0 auto; }
.cx-faq details{ background:var(--color-surface,#fff); border:1px solid var(--color-border,#E2EAE8); border-radius:12px; margin-bottom:10px; overflow:hidden; }
.cx-faq summary{ list-style:none; cursor:pointer; padding:18px 22px; font-weight:700; color:var(--color-text-heading,#0A1413); display:flex; justify-content:space-between; gap:16px; align-items:center; }
.cx-faq summary::-webkit-details-marker{ display:none; }
.cx-faq summary::after{ content:"+"; flex:0 0 28px; height:28px; border-radius:50%; background:var(--color-surface-mint,#DFF1ED); color:var(--color-primary,#0D9488); display:flex; align-items:center; justify-content:center; font-size:1.1rem; transition:transform .2s; }
.cx-faq details[open] summary::after{ transform:rotate(45deg); }
.cx-faq .cx-body{ padding:0 22px 20px; }
.cx-center{ text-align:center; }
.cx-center .cx-kicker{ justify-content:center; }
