/* Reset básico */
* { box-sizing: border-box; margin: 0; padding: 0; }
:root{
  --ptx-gray:#575756;
  --ptx-gray-2:#9d9c9c;
  --ptx-orange:#f83b1d;
  --bg:#ffffff;
  --border:#ececec;
}

/* Body */
body{
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
  background: var(--bg);
  color: var(--ptx-gray);
  line-height: 1.45;
}

/* Header minimalista */
.site-header{
  display:flex; align-items:center; justify-content:center;
  padding:10px 0; background:#fff; border-bottom:1px solid var(--border);
}
.brand__logo--sm{ height:56px; width:auto; max-width:90vw; }

/* Contenedor */
.container{ max-width: 980px; margin: 16px auto 40px; padding: 0 16px; }
.page-title{ font-size: 1.6rem; font-weight: 700; margin: 8px 0 16px; }

/* Bloques */
.section{ background:#fff; border:1px solid var(--border); border-radius:12px; padding:16px; margin: 14px 0; }
.section__title{ font-size:1.1rem; margin-bottom:10px; color:#333; }

.card{ border:1px solid var(--border); border-radius:10px; padding:12px; background:#fff; }
.card__title{ font-size:1rem; margin-bottom:8px; }

/* Grids */
.grid-2{ display:grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.grid-3{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 800px){
  .grid-2,.grid-3{ grid-template-columns: 1fr; }
}

/* Campos */
.form-group{ display:flex; flex-direction:column; gap:6px; }
label{ font-weight:600; font-size:0.95rem; }
input[type="text"], input[type="email"], input[type="number"], select{
  border:1px solid var(--border); border-radius:10px; padding:10px 12px; font-size:1rem; outline:none;
}
input:focus, select:focus{ border-color: var(--ptx-orange); box-shadow: 0 0 0 3px rgba(248,59,29,.15); }

/* Radios */
.radio-group{ display:flex; gap:12px; flex-wrap:wrap; }
.radio-label{ display:flex; align-items:center; gap:6px; cursor:pointer; }

/* Botones */
.add-buttons{ display:flex; gap:10px; margin:12px 0; flex-wrap:wrap; }
.btn-primary, .btn-secondary{
  border:none; border-radius:12px; padding:10px 14px; cursor:pointer; font-weight:600;
}
.btn-primary{ background: var(--ptx-orange); color:#fff; width:100%; margin-top:10px; }
.btn-secondary{ background: var(--ptx-gray-2); color:#fff; }

/* Status */
.status{ margin-top:10px; padding:10px 12px; border-radius:10px; }
.status.loading{ background:#fff7e6; color:#8a6d3b; border:1px solid #ffe2b6; }
.status.success{ background:#e9f9ef; color:#116b3d; border:1px solid #b6e7c9; }
.status.error{ background:#fdecec; color:#b42318; border:1px solid #f7b9b9; }
.hidden{ display:none; }

/* ===== Resultados ===== */
.results-container{ max-width:1200px; margin:0 auto; padding: 12px 16px 32px; }
.results-actions{ display:flex; justify-content:flex-end; gap:8px; margin:12px 0 16px; }
.btn{ border:none; border-radius:10px; padding:8px 12px; cursor:pointer; }
.btn--print{ background:#575756; color:#fff; }
.btn--back{ background:#9d9c9c; color:#fff; }

.results-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap:16px; }
.insurer-col{ border:1px solid var(--border); border-radius:12px; padding:12px; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.04); }
.insurer-col h2{ margin:0 0 8px; font-size:1.1rem; color: var(--ptx-orange); }
.plan-card{ border:1px solid #f0f0f0; border-radius:10px; padding:10px; margin-bottom:10px; }
.plan-card h3{ margin:0 0 6px; font-size:1rem; color:#333; }
.badges{ display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 8px; }
.badge{ font-size:.85rem; padding:2px 8px; border-radius:999px; background:#9d9c9c; color:#fff; }
.badge--accent{ background:#f83b1d; }
.prima-list{ margin:6px 0 0; padding-left:16px; font-size:.95rem; }

/* ===== META contratante ===== */
.quote-meta{
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  padding:12px;
  margin: 6px 0 14px;
}
.meta-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap:8px;
}
.meta-label{
  font-weight:600;
  color:#555;
  margin-right:4px;
}

/* ===== Disclaimer ===== */
.disclaimer{
  margin-top: 18px;
  padding-top: 12px;
  border-top: 1px dashed var(--border);
  color:#444;
}
.disclaimer h3{
  font-size:1rem;
  margin-bottom:8px;
}
.disclaimer ul{
  padding-left: 18px;
  display: grid;
  gap: 6px;
}

@media print{
  .results-actions, .site-header{ display:none !important; }
  .insurer-col{ break-inside: avoid; }
  .disclaimer{ font-size: 12px; }
}
