/*
 * CPCalasanz Landing — scoped styles.
 * Every rule is namespaced under .cpcalasanz-landing-wrap so the plugin
 * never leaks styles into (or inherits styles from) the active theme.
 */

.cpcalasanz-landing-wrap {
  --navy: #122A4B;
  --navy-deep: #0C1F38;
  --navy-soft: #1E3B63;
  --gold: #C79A3C;
  --gold-light: #E4C374;
  --gold-dim: rgba(199,154,60,0.14);
  --cream: #FAF7F1;
  --cream-alt: #F1EBDD;
  --ink: #1D2733;
  --muted: #5C6B7A;
  --green: #2F7D5D;
  --green-dim: rgba(47,125,93,0.12);
  --red: #B5462F;
  --red-dim: rgba(181,70,47,0.1);
  --line: rgba(18,42,75,0.1);

  background: var(--cream);
  color: var(--ink);
  font-family: 'Inter', sans-serif;
  line-height: 1.5;
  overflow-x: hidden;
}
.cpcalasanz-landing-wrap, .cpcalasanz-landing-wrap * { box-sizing: border-box; }
.cpcalasanz-landing-wrap h1, .cpcalasanz-landing-wrap h2, .cpcalasanz-landing-wrap h3, .cpcalasanz-landing-wrap h4 { font-family: 'Fraunces', serif; margin: 0; }
.cpcalasanz-landing-wrap p { margin: 0; }
.cpcalasanz-landing-wrap a { color: inherit; }
.cpcalasanz-landing-wrap img { max-width: 100%; display: block; }
.cpcalasanz-landing-wrap ul, .cpcalasanz-landing-wrap ol { margin: 0; }

.cpcalasanz-landing-wrap .cpl-wrap { max-width: 1180px; margin: 0 auto; padding: 0 32px; }
.cpcalasanz-landing-wrap .cpl-eyebrow {
  font-size: 12px; letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--gold); font-weight: 700; margin-bottom: 14px;
  display: flex; align-items: center; gap: 10px;
}
.cpcalasanz-landing-wrap .cpl-eyebrow::before { content:''; width: 26px; height: 2px; background: var(--gold); }
.cpcalasanz-landing-wrap .cpl-section-title { font-size: clamp(28px,3.6vw,44px); font-weight: 700; letter-spacing: -0.5px; line-height: 1.15; margin-bottom: 18px; }
.cpcalasanz-landing-wrap .cpl-section-title em { font-style: normal; color: var(--navy-soft); border-bottom: 3px solid var(--gold); }
.cpcalasanz-landing-wrap .cpl-section-desc { font-size: 16px; color: var(--muted); max-width: 620px; line-height: 1.7; margin-bottom: 48px; }
.cpcalasanz-landing-wrap section { padding: 96px 0; position: relative; }
.cpcalasanz-landing-wrap .cpl-btn-gold, .cpcalasanz-landing-wrap .cpl-btn-navy, .cpcalasanz-landing-wrap .cpl-btn-outline {
  display: inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14px;
  padding: 14px 26px; border-radius: 8px; text-decoration:none; cursor:pointer; border:none;
  font-family:'Inter',sans-serif; transition: all .2s;
}
.cpcalasanz-landing-wrap .cpl-btn-gold { background: var(--gold); color: var(--navy-deep); }
.cpcalasanz-landing-wrap .cpl-btn-gold:hover { background: var(--gold-light); box-shadow: 0 10px 24px rgba(199,154,60,0.35); transform: translateY(-1px); }
.cpcalasanz-landing-wrap .cpl-btn-navy { background: var(--navy); color: #fff; }
.cpcalasanz-landing-wrap .cpl-btn-navy:hover { background: var(--navy-soft); }
.cpcalasanz-landing-wrap .cpl-btn-outline { border: 1.5px solid rgba(255,255,255,0.35); color:#fff; }
.cpcalasanz-landing-wrap .cpl-btn-outline:hover { border-color: var(--gold); color: var(--gold-light); }

/* ── HEADER ── */
.cpcalasanz-landing-wrap .cpl-header {
  position: sticky; top:0; z-index:200;
  background: rgba(250,247,241,0.92); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.cpcalasanz-landing-wrap .cpl-nav-inner { display:flex; align-items:center; justify-content:space-between; padding: 16px 32px; max-width:1180px; margin:0 auto; }
.cpcalasanz-landing-wrap .cpl-brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.cpcalasanz-landing-wrap .cpl-brand-badge {
  width:44px; height:44px; border-radius:10px; background: var(--navy);
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-weight:800; color: var(--gold-light); font-size:16px;
}
.cpcalasanz-landing-wrap .cpl-brand-name { font-family:'Fraunces',serif; font-weight:700; font-size:18px; color:var(--navy-deep); line-height:1.1; }
.cpcalasanz-landing-wrap .cpl-brand-sub { font-size:11px; color:var(--muted); letter-spacing:0.5px; }
.cpcalasanz-landing-wrap .cpl-links { display:flex; gap:28px; align-items:center; }
.cpcalasanz-landing-wrap .cpl-links a { font-size:14px; font-weight:600; text-decoration:none; color: var(--ink); }
.cpcalasanz-landing-wrap .cpl-links a:hover { color: var(--navy-soft); }
.cpcalasanz-landing-wrap .cpl-header-actions { display:flex; gap:12px; align-items:center; }
.cpcalasanz-landing-wrap .cpl-btn-small { padding:10px 18px; font-size:13px; }
@media (max-width: 980px) {
  .cpcalasanz-landing-wrap .cpl-links { display:none; }
}

/* ── HERO ── */
.cpcalasanz-landing-wrap #cpl-inicio {
  background: radial-gradient(ellipse at top right, var(--navy-soft) 0%, var(--navy) 45%, var(--navy-deep) 100%);
  color: #fff; padding: 110px 0 90px; position:relative; overflow:hidden;
}
.cpcalasanz-landing-wrap #cpl-inicio::after {
  content:''; position:absolute; inset:0; opacity:0.5; pointer-events:none;
  background-image: radial-gradient(circle, rgba(228,195,116,0.14) 1px, transparent 1px);
  background-size: 26px 26px;
}
.cpcalasanz-landing-wrap .cpl-hero-grid { display:grid; grid-template-columns: 1.15fr 0.85fr; gap:56px; align-items:center; position:relative; }
.cpcalasanz-landing-wrap .cpl-hero-eyebrow { color: var(--gold-light); font-size:12px; letter-spacing:2.5px; text-transform:uppercase; font-weight:700; margin-bottom:20px; display:flex; align-items:center; gap:10px; }
.cpcalasanz-landing-wrap .cpl-hero-eyebrow::before { content:''; width:26px; height:2px; background: var(--gold-light); }
.cpcalasanz-landing-wrap .cpl-hero-title { font-size: clamp(36px,5vw,58px); font-weight:800; line-height:1.08; letter-spacing:-1px; margin-bottom:22px; }
.cpcalasanz-landing-wrap .cpl-hero-title em { font-style:normal; color: var(--gold-light); }
.cpcalasanz-landing-wrap .cpl-hero-sub { font-size:17px; color:rgba(255,255,255,0.78); max-width:520px; line-height:1.7; margin-bottom:36px; font-weight:300; }
.cpcalasanz-landing-wrap .cpl-hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:48px; }
.cpcalasanz-landing-wrap .cpl-hero-stats { display:flex; gap:36px; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,0.15); padding-top:28px; }
.cpcalasanz-landing-wrap .cpl-hstat-num { font-family:'Fraunces',serif; font-weight:800; font-size:28px; color: var(--gold-light); display:block; }
.cpcalasanz-landing-wrap .cpl-hstat-lbl { font-size:11px; color:rgba(255,255,255,0.6); text-transform:uppercase; letter-spacing:1px; margin-top:2px; }
.cpcalasanz-landing-wrap .cpl-hero-card {
  background: rgba(255,255,255,0.06); border:1px solid rgba(228,195,116,0.25);
  border-radius:16px; padding:30px; backdrop-filter: blur(6px);
}
.cpcalasanz-landing-wrap .cpl-hero-card-title { font-family:'Fraunces',serif; font-weight:700; font-size:19px; margin-bottom:6px; color:#fff; }
.cpcalasanz-landing-wrap .cpl-hero-card-sub { font-size:13px; color:rgba(255,255,255,0.65); margin-bottom:22px; }
.cpcalasanz-landing-wrap .cpl-hero-portal-item { display:flex; gap:12px; align-items:flex-start; padding:12px 0; border-bottom:1px solid rgba(255,255,255,0.1); }
.cpcalasanz-landing-wrap .cpl-hero-portal-item:last-of-type { border-bottom:none; }
.cpcalasanz-landing-wrap .cpl-hero-portal-icon { font-size:18px; flex-shrink:0; }
.cpcalasanz-landing-wrap .cpl-hero-portal-text b { display:block; font-size:13.5px; color:#fff; margin-bottom:2px; }
.cpcalasanz-landing-wrap .cpl-hero-portal-text span { font-size:12.5px; color:rgba(255,255,255,0.6); }

/* ── QUIENES SOMOS ── */
.cpcalasanz-landing-wrap #cpl-quienes { background: var(--cream); }
.cpcalasanz-landing-wrap .cpl-about-grid { display:grid; grid-template-columns: 1fr 1fr; gap:56px; align-items:start; }
.cpcalasanz-landing-wrap .cpl-about-text p { font-size:15.5px; color: var(--muted); line-height:1.8; margin-bottom:16px; }
.cpcalasanz-landing-wrap .cpl-board-grid { display:grid; grid-template-columns: repeat(2,1fr); gap:14px; }
.cpcalasanz-landing-wrap .cpl-board-card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:18px; }
.cpcalasanz-landing-wrap .cpl-board-role { font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--gold); font-weight:700; margin-bottom:6px; }
.cpcalasanz-landing-wrap .cpl-board-desc { font-size:13px; color:var(--muted); line-height:1.5; }

/* ── SERVICIOS ── */
.cpcalasanz-landing-wrap #cpl-servicios { background: var(--cream-alt); }
.cpcalasanz-landing-wrap .cpl-services-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(270px,1fr)); gap:22px; }
.cpcalasanz-landing-wrap .cpl-service-card {
  background:#fff; border:1px solid var(--line); border-radius:14px; padding:28px;
  transition: all .2s; position:relative;
}
.cpcalasanz-landing-wrap .cpl-service-card:hover { border-color: var(--gold); transform: translateY(-4px); box-shadow: 0 16px 32px rgba(18,42,75,0.08); }
.cpcalasanz-landing-wrap .cpl-service-icon { font-size:30px; margin-bottom:16px; display:block; }
.cpcalasanz-landing-wrap .cpl-service-name { font-family:'Fraunces',serif; font-weight:700; font-size:17px; margin-bottom:8px; }
.cpcalasanz-landing-wrap .cpl-service-desc { font-size:13.5px; color:var(--muted); line-height:1.6; }

/* ── COMISIONES ── */
.cpcalasanz-landing-wrap #cpl-comisiones { background: var(--navy-deep); color:#fff; }
.cpcalasanz-landing-wrap #cpl-comisiones .cpl-section-desc { color: rgba(255,255,255,0.65); }
.cpcalasanz-landing-wrap #cpl-comisiones .cpl-section-title em { color: var(--gold-light); border-bottom-color: var(--gold); }
.cpcalasanz-landing-wrap .cpl-comm-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap:20px; }
.cpcalasanz-landing-wrap .cpl-comm-card {
  background: rgba(255,255,255,0.05); border:1px solid rgba(228,195,116,0.15);
  border-radius:14px; padding:26px; display:flex; flex-direction:column; gap:14px;
}
.cpcalasanz-landing-wrap .cpl-comm-top { display:flex; gap:14px; align-items:flex-start; }
.cpcalasanz-landing-wrap .cpl-comm-icon { font-size:24px; }
.cpcalasanz-landing-wrap .cpl-comm-name { font-family:'Fraunces',serif; font-weight:700; font-size:16px; margin-bottom:4px; }
.cpcalasanz-landing-wrap .cpl-comm-desc { font-size:13px; color:rgba(255,255,255,0.6); line-height:1.55; }
.cpcalasanz-landing-wrap .cpl-comm-join {
  align-self:flex-start; font-size:12.5px; font-weight:700; color: var(--gold-light);
  text-decoration:none; display:flex; align-items:center; gap:6px; margin-top:auto;
  border-top:1px solid rgba(255,255,255,0.1); padding-top:14px; width:100%;
}
.cpcalasanz-landing-wrap .cpl-comm-join:hover { color:#fff; }

/* ── TIMELINE ── */
.cpcalasanz-landing-wrap #cpl-actividades { background: var(--cream); }
.cpcalasanz-landing-wrap .cpl-timeline-note { font-size:12.5px; color:var(--muted); margin-bottom:32px; display:flex; gap:8px; align-items:center; }
.cpcalasanz-landing-wrap .cpl-timeline-grid { display:grid; grid-template-columns: repeat(4,1fr); gap:18px; }
.cpcalasanz-landing-wrap .cpl-tl-card {
  background:#fff; border:1px solid var(--line); border-radius:12px; padding:20px;
  position:relative; transition: border-color .2s;
}
.cpcalasanz-landing-wrap .cpl-tl-card:hover { border-color: var(--gold); }
.cpcalasanz-landing-wrap .cpl-tl-card.cpl-confirmed { border-left:4px solid var(--gold); }
.cpcalasanz-landing-wrap .cpl-tl-month { font-family:'Fraunces',serif; font-weight:700; font-size:14px; color:var(--navy); letter-spacing:0.5px; text-transform:uppercase; margin-bottom:10px; display:flex; justify-content:space-between; align-items:center; }
.cpcalasanz-landing-wrap .cpl-tl-badge { font-size:9px; padding:3px 7px; border-radius:4px; font-weight:700; letter-spacing:0.5px; }
.cpcalasanz-landing-wrap .cpl-tl-badge.cpl-on { background: var(--green-dim); color: var(--green); }
.cpcalasanz-landing-wrap .cpl-tl-badge.cpl-tent { background: rgba(92,107,122,0.12); color: var(--muted); }
.cpcalasanz-landing-wrap .cpl-tl-item { font-size:12.5px; color: var(--ink); line-height:1.5; padding:5px 0; }
.cpcalasanz-landing-wrap .cpl-tl-item b { font-weight:600; }
.cpcalasanz-landing-wrap .cpl-tl-amt { display:inline-block; margin-top:2px; font-size:11.5px; color: var(--muted); }

/* ── CUOTAS ── */
.cpcalasanz-landing-wrap #cpl-cuotas { background: var(--cream-alt); }
.cpcalasanz-landing-wrap .cpl-fees-grid { display:grid; grid-template-columns: repeat(2,1fr); gap:24px; }
.cpcalasanz-landing-wrap .cpl-fee-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:32px; }
.cpcalasanz-landing-wrap .cpl-fee-top { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:18px; }
.cpcalasanz-landing-wrap .cpl-fee-name { font-family:'Fraunces',serif; font-weight:700; font-size:19px; }
.cpcalasanz-landing-wrap .cpl-fee-when { font-size:11.5px; color:var(--gold); text-transform:uppercase; letter-spacing:1px; font-weight:700; margin-top:4px; }
.cpcalasanz-landing-wrap .cpl-fee-amount { font-family:'Fraunces',serif; font-weight:800; font-size:34px; color: var(--navy); }
.cpcalasanz-landing-wrap .cpl-fee-amount span { font-size:15px; font-weight:500; color:var(--muted); }
.cpcalasanz-landing-wrap .cpl-fee-desc { font-size:14px; color:var(--muted); line-height:1.7; margin-top:14px; border-top:1px solid var(--line); padding-top:16px; }
.cpcalasanz-landing-wrap .cpl-fee-split { display:flex; gap:16px; margin-top:14px; }
.cpcalasanz-landing-wrap .cpl-fee-split div { flex:1; background: var(--cream-alt); border-radius:8px; padding:12px; text-align:center; }
.cpcalasanz-landing-wrap .cpl-fee-split b { display:block; font-family:'Fraunces',serif; font-size:18px; color:var(--navy); }
.cpcalasanz-landing-wrap .cpl-fee-split span { font-size:11px; color:var(--muted); }

/* ── PORTAL PRIVADO (teaser) ── */
.cpcalasanz-landing-wrap #cpl-portal-privado { padding: 0; }
.cpcalasanz-landing-wrap #cpl-portal { background: linear-gradient(135deg, var(--navy) 0%, var(--navy-deep) 100%); color:#fff; }
.cpcalasanz-landing-wrap #cpl-portal .cpl-section-desc { color:rgba(255,255,255,0.65); }
.cpcalasanz-landing-wrap #cpl-portal .cpl-section-title em { color: var(--gold-light); border-bottom-color: var(--gold); }
.cpcalasanz-landing-wrap .cpl-portal-grid { display:grid; grid-template-columns: 1fr 1fr; gap:56px; align-items:center; }
.cpcalasanz-landing-wrap .cpl-portal-feature { display:flex; gap:16px; margin-bottom:24px; align-items:flex-start; }
.cpcalasanz-landing-wrap .cpl-pf-icon { width:40px; height:40px; border-radius:10px; background: rgba(228,195,116,0.15); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.cpcalasanz-landing-wrap .cpl-pf-title { font-weight:700; font-size:15px; margin-bottom:4px; }
.cpcalasanz-landing-wrap .cpl-pf-desc { font-size:13.5px; color:rgba(255,255,255,0.6); line-height:1.6; }
.cpcalasanz-landing-wrap .cpl-portal-mock {
  background: rgba(255,255,255,0.05); border:1px solid rgba(228,195,116,0.2); border-radius:18px; padding:28px;
}
.cpcalasanz-landing-wrap .cpl-pm-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.cpcalasanz-landing-wrap .cpl-pm-title { font-family:'Fraunces',serif; font-weight:700; font-size:16px; }
.cpcalasanz-landing-wrap .cpl-pm-tag { font-size:10px; background: var(--green-dim); color:#7CD9AE; padding:4px 8px; border-radius:5px; font-weight:700; }
.cpcalasanz-landing-wrap .cpl-pm-row { display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid rgba(255,255,255,0.08); font-size:13px; }
.cpcalasanz-landing-wrap .cpl-pm-row:last-child { border-bottom:none; }
.cpcalasanz-landing-wrap .cpl-pm-status { font-size:11px; padding:4px 9px; border-radius:5px; font-weight:700; }
.cpcalasanz-landing-wrap .cpl-pm-status.cpl-paid { background: var(--green-dim); color:#7CD9AE; }
.cpcalasanz-landing-wrap .cpl-pm-status.cpl-pending { background: rgba(181,70,47,0.18); color:#E8917A; }
.cpcalasanz-landing-wrap .cpl-pm-cta { margin-top:20px; width:100%; text-align:center; }

/* ── CONTACTO / FOOTER ── */
.cpcalasanz-landing-wrap #cpl-contacto { background: var(--cream); }
.cpcalasanz-landing-wrap .cpl-contact-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
.cpcalasanz-landing-wrap .cpl-contact-card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:26px; }
.cpcalasanz-landing-wrap .cpl-contact-icon { font-size:26px; margin-bottom:12px; }
.cpcalasanz-landing-wrap .cpl-contact-label { font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--gold); font-weight:700; margin-bottom:6px; }
.cpcalasanz-landing-wrap .cpl-contact-val { font-family:'Fraunces',serif; font-weight:700; font-size:16px; margin-bottom:4px; }
.cpcalasanz-landing-wrap .cpl-contact-detail { font-size:13px; color:var(--muted); }
.cpcalasanz-landing-wrap .cpl-footer { background: var(--navy-deep); color: rgba(255,255,255,0.55); padding:32px 0; font-size:13px; }
.cpcalasanz-landing-wrap .cpl-footer-inner { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.cpcalasanz-landing-wrap .cpl-footer a { text-decoration:none; color:rgba(255,255,255,0.55); }
.cpcalasanz-landing-wrap .cpl-footer a:hover { color: var(--gold-light); }

@media (max-width: 900px) {
  .cpcalasanz-landing-wrap .cpl-hero-grid,
  .cpcalasanz-landing-wrap .cpl-about-grid,
  .cpcalasanz-landing-wrap .cpl-portal-grid { grid-template-columns: 1fr; }
  .cpcalasanz-landing-wrap .cpl-fees-grid,
  .cpcalasanz-landing-wrap .cpl-contact-grid { grid-template-columns: 1fr; }
  .cpcalasanz-landing-wrap .cpl-timeline-grid { grid-template-columns: repeat(2,1fr); }
  .cpcalasanz-landing-wrap .cpl-board-grid { grid-template-columns: 1fr; }
  .cpcalasanz-landing-wrap section { padding: 64px 0; }
}
