/* ── PLAN PAGE STYLES — MODERN MINIMAL ── */

/* PLAN HEADER */
.plan-header{
  padding:var(--sp-xxxl) var(--sp-xl);
  background:var(--ink);
  color:var(--white);
  border-bottom:none;
  min-height:35vh;
  display:flex;flex-direction:column;justify-content:center;
}

.plan-title{
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--size-h1);
  line-height:1.1;
  letter-spacing:var(--ls-tight);
  margin-bottom:var(--sp-lg);
}

.plan-subtitle{
  font-size:var(--size-p);
  line-height:var(--lh-relaxed);
  color:rgba(255,255,255,0.65);
  max-width:65ch;
}

/* PLAN SECTIONS */
.plan-section{
  padding:var(--sp-xxxl) var(--sp-xl);
  border-bottom:none;
  max-width:1100px;
  margin:0 auto;
  background:var(--bg-primary);
}

.plan-section:nth-child(odd){background:var(--bg-secondary)}

.section-heading{
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--size-h2);
  line-height:1.15;
  letter-spacing:var(--ls-tight);
  margin-bottom:var(--sp-xxl);
  color:var(--text-primary);
}

.section-text{
  font-size:var(--size-p);
  line-height:var(--lh-relaxed);
  color:var(--text-secondary);
  margin-bottom:var(--sp-lg);
}

/* PROBLEM SECTION */
.problem-block{
  background:transparent;
  border:none;
  border-radius:0;
  padding:var(--sp-xl) 0;
  margin-bottom:var(--sp-xxl);
  box-shadow:none;
  transition:none;
  border-top:1px solid var(--border);
}

.problem-block:first-of-type{border-top:none}

.block-subtitle{
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--size-h3);
  letter-spacing:var(--ls-tight);
  margin-bottom:var(--sp-lg);
  color:var(--text-primary);
}

.problem-list{
  list-style:none;
  padding-left:0;
}

.problem-list li{
  font-size:var(--size-p);
  line-height:var(--lh-relaxed);
  color:var(--text-secondary);
  margin-bottom:var(--sp-md);
  padding-left:var(--sp-lg);
  position:relative;
  transition:all var(--tr-fast);
}

.problem-list li:hover{
  color:var(--text-primary);
  padding-left:var(--sp-xl);
}

.problem-list li::before{
  content:'→';
  position:absolute;
  left:0;
  color:var(--red);
  font-weight:700;
}

/* SOLUTION HIGHLIGHT */
.solution-highlight{
  background:transparent;
  border-left:3px solid var(--blue);
  padding:var(--sp-xxl) var(--sp-xl);
  margin-top:var(--sp-xxl);
  border-radius:var(--border-radius-md);
  transition:all var(--tr-base);
  border:1px solid var(--border);
  border-left:3px solid var(--blue);
}

.solution-highlight:hover{
  background:var(--white);
  box-shadow:var(--shadow-md);
  transform:translateX(4px);
}

.solution-highlight p{
  font-size:var(--size-p);
  line-height:var(--lh-relaxed);
  color:var(--text-primary);
  margin:0;
}

.solution-highlight strong{
  color:var(--blue-dark);
  font-weight:700;
}

/* FEATURES LIST */
.features-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:var(--sp-xxl);
  margin-top:var(--sp-xxl);
}

.feature-item{
  display:flex;
  flex-direction:column;
  gap:var(--sp-lg);
  padding:var(--sp-xxl);
  border-left:none;
  transition:all var(--tr-base);
  border-radius:var(--border-radius-md);
  background:var(--bg-secondary);
  border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  position:relative;
  overflow:hidden;
}

.feature-item::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:var(--red);
  transition:all var(--tr-fast);
}

.feature-item:nth-child(1)::before{background:var(--red)}
.feature-item:nth-child(2)::before{background:var(--blue)}
.feature-item:nth-child(3)::before{background:var(--yellow)}
.feature-item:nth-child(4)::before{background:var(--red)}
.feature-item:nth-child(5)::before{background:var(--blue)}
.feature-item:nth-child(6)::before{background:var(--yellow)}
.feature-item:nth-child(7)::before{background:var(--red)}
.feature-item:nth-child(8)::before{background:var(--blue)}

.feature-item:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-md);
  background:rgba(89, 44, 158, 0.05);
}

.feature-item:hover::before{
  height:4px;
}

.feature-number{
  font-family:var(--font-display);
  font-weight:700;
  font-size:32px;
  line-height:1;
  opacity:0.3;
}

.feature-item:nth-child(1) .feature-number{color:var(--red)}
.feature-item:nth-child(2) .feature-number{color:var(--blue)}
.feature-item:nth-child(3) .feature-number{color:var(--yellow)}
.feature-item:nth-child(4) .feature-number{color:var(--red)}
.feature-item:nth-child(5) .feature-number{color:var(--blue)}
.feature-item:nth-child(6) .feature-number{color:var(--yellow)}
.feature-item:nth-child(7) .feature-number{color:var(--red)}
.feature-item:nth-child(8) .feature-number{color:var(--blue)}

.feature-content h3{
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--size-h3);
  letter-spacing:var(--ls-tight);
  margin-bottom:var(--sp-md);
  color:var(--text-primary);
}

.feature-content p{
  font-size:var(--size-sm);
  line-height:var(--lh-relaxed);
  color:var(--text-secondary);
  margin:0;
}

/* USER PERSONA */
.persona-card{
  background:var(--bg-secondary);
  border:1px solid var(--border);
  padding:var(--sp-xxxl) var(--sp-xxl);
  margin-top:var(--sp-xxl);
  border-radius:var(--border-radius-md);
  box-shadow:var(--shadow-md);
  transition:all var(--tr-base);
}

.persona-card:hover{
  box-shadow:var(--shadow-md);
  transform:translateY(-2px);
}

.persona-header{
  margin-bottom:var(--sp-xxl);
  padding-bottom:var(--sp-xxl);
  border-bottom:1px solid var(--border);
}

.persona-name{
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--size-h2);
  line-height:1;
  letter-spacing:var(--ls-tight);
  margin:0 0 var(--sp-sm) 0;
}

.persona-age{
  font-size:var(--size-label);
  color:var(--text-tertiary);
  text-transform:uppercase;
  letter-spacing:var(--ls-caps);
  margin:0;
}

.persona-details{
  margin-bottom:var(--sp-xxl);
}

.persona-detail-row{
  display:flex;gap:var(--sp-lg);
  font-size:var(--size-sm);
  line-height:var(--lh-normal);
  margin-bottom:var(--sp-lg);
  padding-bottom:var(--sp-md);
  border-bottom:1px solid var(--border);
}

.persona-detail-row:last-child{border-bottom:none}

.detail-label{
  font-weight:700;
  color:var(--text-primary);
  min-width:140px;
}

.detail-value{
  color:var(--text-secondary);
  flex:1;
}

.persona-section{
  margin-top:var(--sp-xxl);
  padding-top:var(--sp-xxl);
  border-top:1px solid var(--border);
}

.persona-section-title{
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--size-sm);
  letter-spacing:var(--ls-caps);
  text-transform:uppercase;
  margin-bottom:var(--sp-lg);
  color:var(--text-primary);
}

.persona-pain-list{
  list-style:none;
  padding-left:0;
}

.persona-pain-list li{
  font-size:var(--size-sm);
  line-height:var(--lh-relaxed);
  color:var(--text-secondary);
  margin-bottom:var(--sp-lg);
  padding-left:var(--sp-lg);
  position:relative;
  transition:all var(--tr-fast);
}

.persona-pain-list li:hover{
  color:var(--text-primary);
  padding-left:var(--sp-xl);
}

.persona-pain-list li::before{
  content:'⚠';
  position:absolute;
  left:0;
  color:var(--red);
}

/* BENCHMARKING */
.benchmark-subsection{
  margin-bottom:var(--sp-xxl);
  background:transparent;
  border:none;
  border-radius:0;
  padding:var(--sp-xl) 0;
  box-shadow:none;
  border-top:1px solid var(--border);
  transition:all var(--tr-fast);
}

.benchmark-subsection:hover{
  background:var(--bg-secondary);
  padding:var(--sp-xl);
  border:1px solid var(--border);
  border-top:none;
  border-radius:var(--border-radius-md);
}

.benchmark-box{
  background:transparent;
  border:none;
  padding:var(--sp-xl) 0;
  margin-top:var(--sp-lg);
  border-radius:0;
  box-shadow:none;
}

.benchmark-box p{
  font-size:var(--size-p);
  line-height:var(--lh-relaxed);
  color:var(--text-primary);
  margin:0 0 var(--sp-md) 0;
}

.benchmark-box strong{
  color:var(--red);
  font-weight:700;
}

.benchmark-list{
  list-style:none;
  padding-left:0;
  margin:0;
}

.benchmark-list li{
  font-size:var(--size-sm);
  line-height:var(--lh-relaxed);
  color:var(--text-secondary);
  margin-bottom:var(--sp-md);
  padding-left:var(--sp-lg);
  position:relative;
  transition:all var(--tr-fast);
}

.benchmark-list li:hover{
  color:var(--text-primary);
  padding-left:var(--sp-xl);
}

.benchmark-list li::before{
  content:'✓';
  position:absolute;
  left:0;
  color:var(--blue);
  font-weight:700;
}

/* DESIGN SYSTEM — COLOR SWATCHES */
.ds-swatches{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:var(--sp-lg);
  margin-top:var(--sp-xl);
}

.ds-swatch{
  display:flex;
  flex-direction:column;
  gap:var(--sp-sm);
}

.ds-swatch-color{
  display:block;
  width:100%;
  height:64px;
  border-radius:var(--border-radius-md);
  box-shadow:var(--shadow-sm);
}

.ds-swatch-color--bordered{
  border:1px solid var(--border);
}

.ds-swatch-name{
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--size-sm);
  color:var(--text-primary);
}

.ds-swatch-hex{
  font-family:var(--font-mono);
  font-size:var(--size-xs);
  color:var(--text-tertiary);
  text-transform:uppercase;
}

.ds-color-usage{
  list-style:none;
  padding:0;
  margin-top:var(--sp-xl);
  display:flex;
  flex-direction:column;
  gap:var(--sp-md);
}

.ds-color-usage li{
  font-size:var(--size-p);
  line-height:var(--lh-relaxed);
  color:var(--text-secondary);
  padding-left:var(--sp-lg);
  position:relative;
}

.ds-color-usage li::before{
  content:'';
  position:absolute;
  left:0;
  top:0.6em;
  width:6px;height:6px;
  border-radius:50%;
  background:var(--blue);
}

.ds-color-usage strong{
  color:var(--text-primary);
}

/* DESIGN SYSTEM — TYPE SPECIMENS */
.ds-type-specimens{
  margin-top:var(--sp-xl);
}

.ds-type-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:var(--sp-lg);
  padding:var(--sp-lg) 0;
  border-top:1px solid var(--border);
  flex-wrap:wrap;
}

.ds-type-row:first-child{border-top:none}

.ds-type-label{
  font-size:var(--size-xs);
  letter-spacing:var(--ls-caps);
  text-transform:uppercase;
  color:var(--text-tertiary);
  flex:0 0 auto;
}

.ds-type-sample{
  color:var(--text-primary);
  text-align:right;
}

/* DESIGN SYSTEM — COMPONENT PREVIEWS (paleta real de Cupazo, fiel al archivo de Figma) */
:root{
  --cz-dark:#001C4B;
  --cz-primary:#0159DF;
  --cz-light:#84B2FF;
  --cz-pale:#B6CDFF;
  --cz-canvas:#390981;
  --cz-mint:#7BE3AB;
  --cz-green:#2FBF71;
  --cz-value-text:#294A8F;
  --cz-placeholder-text:#5B7EC9;
  --cz-unselected-text:#0A2050;
  --cz-dropdown-muted:#8FA8DE;
  --cz-chat-text:#DFE9FF;
  --cz-list-bg:#6F96EA;
}

.ds-intro-card{
  padding:0 0 var(--sp-xl) 0;
}

.ds-intro-card .section-text{
  color:var(--cz-pale);
}

.ds-intro-title{
  font-family:var(--font-display);
  font-weight:700;
  font-size:var(--size-h2);
  line-height:1.1;
  letter-spacing:-0.02em;
  color:var(--white);
  margin-bottom:var(--sp-lg);
}

.ds-canvas{
  display:block;
  background:var(--cz-canvas);
  border-radius:var(--border-radius-md);
  box-shadow:var(--shadow-md);
  overflow:hidden;
}

.ds-canvas img{
  display:block;
}

.ds-preview{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:32px;
  padding:28px;
  margin-bottom:var(--sp-lg);
  background:var(--cz-canvas);
  border-radius:var(--border-radius-md);
}

.ds-preview--stack{
  flex-direction:column;
  align-items:stretch;
  gap:20px;
}

.ds-field-col{
  display:flex;
  flex-direction:column;
  gap:18px;
  min-width:180px;
}

.ds-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.ds-field-label{
  color:var(--white);
  font-size:13px;
  font-weight:600;
}

/* Campos de texto */
.ds-input{
  background:var(--cz-pale);
  border-radius:999px;
  padding:10px 16px;
  font-size:13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.ds-input--placeholder{color:var(--cz-placeholder-text);font-weight:500}
.ds-input--value{color:var(--cz-value-text);font-weight:600}
.ds-input--split .ds-input-dots{color:var(--cz-value-text);font-weight:600;letter-spacing:2px}
.ds-input-eye{opacity:0.8}

.ds-otp{
  display:flex;
  gap:6px;
}

.ds-otp-digit{
  width:30px;height:38px;
  display:flex;align-items:center;justify-content:center;
  background:var(--cz-primary);
  border-radius:10px;
  font-weight:700;
  color:var(--white);
  font-size:16px;
}

.ds-strength{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:2px;
}

.ds-strength-bars{
  display:flex;
  gap:5px;
  flex:1;
}

.ds-strength-bar{
  flex:1;
  height:4px;
  border-radius:3px;
  background:rgba(255,255,255,0.2);
}

.ds-strength-bar--weak{background:var(--cz-dark)}
.ds-strength-bar--strong{background:var(--cz-green)}

.ds-strength-label{font-size:11px;font-weight:600}
.ds-strength-label--weak{color:var(--cz-pale)}
.ds-strength-label--strong{color:var(--cz-mint)}

/* Mensajes */
.ds-chat-row{
  display:flex;
  align-items:center;
  gap:12px;
}

.ds-chat-bubble{
  background:var(--cz-primary);
  color:var(--cz-chat-text);
  padding:10px 16px;
  border-radius:999px;
  font-size:13px;
  font-weight:500;
}

.ds-chat-bubble--long{
  border-radius:20px;
  line-height:1.4;
}

.ds-chat-send{
  width:32px;height:32px;
  flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--cz-light);
  border-radius:50%;
  font-size:13px;
}

/* Botones */
.ds-btn-col{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.ds-btn-label{
  color:var(--cz-light);
  font-size:12px;
  font-weight:600;
}

.ds-btn{
  border:none;
  border-radius:999px;
  padding:9px 22px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:13px;
  cursor:default;
  text-align:center;
}

.ds-btn--primary{background:var(--cz-primary);color:var(--white);font-size:16px;padding:11px 28px}
.ds-btn--waiting{background:var(--white);color:var(--cz-primary)}
.ds-btn--secondary{background:var(--cz-primary);color:var(--white)}

.ds-btn-icon{
  width:36px;height:36px;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:15px;
}

.ds-btn-icon--outline{
  border-radius:50%;
  border:2px dashed rgba(255,255,255,0.4);
  color:var(--cz-mint);
}

.ds-btn-icon--filled{
  border-radius:50%;
  background:var(--cz-primary);
  color:var(--white);
}

.ds-btn-icon--square{
  border-radius:10px;
  background:var(--cz-dark);
  border:1px solid rgba(255,255,255,0.2);
}

/* Chips */
.ds-chip-group{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.ds-chip-group-label{
  color:var(--cz-pale);
  font-size:12px;
  font-weight:600;
}

.ds-chip-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.ds-chip-row--grid2{display:grid;grid-template-columns:1fr 1fr}
.ds-chip-row--grid3{display:grid;grid-template-columns:repeat(3,1fr)}

.ds-chip-cols{
  display:flex;
  flex-wrap:wrap;
  gap:32px;
  width:100%;
}

.ds-chip-col{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.ds-chip{
  display:inline-block;
  padding:7px 14px;
  border-radius:999px;
  background:var(--cz-light);
  color:var(--cz-unselected-text);
  font-size:12px;
  font-weight:600;
  text-align:center;
}

.ds-chip--selected{
  background:var(--cz-primary);
  color:var(--white);
  font-weight:700;
}

.ds-chip--disabled{
  background:var(--cz-dark);
  border:1px solid rgba(255,255,255,0.2);
  color:var(--white);
}

.ds-chip--blue{
  background:var(--cz-primary);
  color:var(--white);
  font-weight:600;
}

/* Dropdowns */
.ds-dropdown{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 16px;
  border-radius:999px;
  background:var(--cz-pale);
  font-size:13px;
  min-width:160px;
}

.ds-dropdown--top{border-radius:16px 16px 0 0}
.ds-dropdown-placeholder{color:var(--cz-dropdown-muted);font-weight:500}
.ds-dropdown-value{color:var(--cz-unselected-text);font-weight:600}
.ds-dropdown-arrow{color:var(--cz-unselected-text)}

.ds-dropdown-open{
  min-width:200px;
}

.ds-dropdown-list{
  background:var(--cz-list-bg);
  border-radius:0 0 10px 10px;
  padding:12px 0;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.ds-dropdown-list span{
  color:var(--cz-unselected-text);
  font-size:12px;
  font-weight:500;
  text-align:center;
}

/* Tarjetas y modales */
.ds-card{
  background:var(--cz-dark);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:20px;
  padding:20px;
  min-width:260px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.ds-card--ghost{
  background:rgba(255,255,255,0.06);
}

.ds-btn--full{
  width:100%;
  margin-top:4px;
}

.ds-card-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-family:var(--font-display);
  font-weight:700;
  color:var(--white);
  font-size:15px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,0.2);
}

.ds-card-header span{color:var(--cz-light)}

.ds-card-label{
  color:var(--cz-light);
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
}

/* Calendario */
.ds-calendar{
  background:var(--white);
  border:10px solid var(--cz-canvas);
  border-radius:14px;
  padding:16px;
  min-width:260px;
  box-sizing:border-box;
}

.ds-calendar-header{
  text-align:center;
  font-family:var(--font-display);
  font-weight:700;
  color:var(--cz-unselected-text);
  font-size:14px;
  margin-bottom:10px;
}

.ds-calendar-weekdays{
  display:grid;
  grid-template-columns:repeat(7,1fr);
}

.ds-cal-weekday{
  color:var(--cz-dropdown-muted);
  font-size:10px;
  font-weight:600;
  text-align:center;
  padding:4px 0;
}

.ds-cal-weekday--weekend{color:var(--cz-unselected-text);font-weight:700}

.ds-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  border-top:1px solid var(--border);
  border-left:1px solid var(--border);
}

.ds-cal-day{
  aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;
  font-weight:600;
  color:var(--cz-unselected-text);
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
}

.ds-cal-day--muted{color:var(--cz-pale)}
.ds-cal-day--active{background:var(--cz-primary);color:var(--white);border-radius:8px}

/* Marca — mascota */
.ds-mascots.ds-preview{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
}

.ds-mascot{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--sp-sm);
  text-align:center;
}

.ds-mascot img{
  width:100%;
  max-width:110px;
  height:auto;
}

.ds-mascot-label{
  font-size:var(--size-xs);
  letter-spacing:var(--ls-caps);
  text-transform:uppercase;
  color:var(--cz-light);
}

/* PLAN FOOTER */
.plan-footer{
  padding:var(--sp-xxxl) var(--sp-xl);
  background:var(--ink);
  color:rgba(255,255,255,0.45);
  text-align:center;
  font-size:var(--size-label);
  letter-spacing:var(--ls-caps);
  text-transform:uppercase;
  border-top:none;
}

/* RESPONSIVE */
@media(max-width:720px){
  .plan-header{padding:var(--sp-xxl) var(--sp-lg);min-height:auto}
  .plan-section{padding:var(--sp-xxl) var(--sp-lg)}
  .features-list{grid-template-columns:1fr;gap:var(--sp-xl)}
  .feature-item{padding:var(--sp-xl)}
  .persona-detail-row{flex-direction:column;gap:var(--sp-xs)}
  .detail-label{min-width:auto}
  .ds-type-row{flex-direction:column;align-items:flex-start;gap:var(--sp-sm)}
  .ds-type-sample{text-align:left}
}
