/* ════════════════════════════════════════════════════════
   CliniCare Funnel — estilos (Línea Gráfica Wegovy)
   ════════════════════════════════════════════════════════ */
.kc-funnel-wrap, .kc-idle-modal {
  --kura-navy:#0546B4;     /* Assurance Blue (Primario) */
  --kura-blue:#189CD8;     /* Spirited Magenta (Acción/Highlight) */
  --kura-mid:#440099;      /* Confidence Violet (Acento) */
  --kura-light:#33a8c9;    /* Assurance Blue 80% Tint */
  --kura-sky:#ccebf0;      /* Assurance Blue 20% Tint */
  --kura-pale:#f0f9fb;     /* Assurance Blue 10% Tint (Fondos suaves) */
  --kura-white:#FFFFFF; 
  --kura-border:#C1C6C8;   /* Dependable Grey (Bordes neutrales) */
  --kura-text:#2D3748;
  --kura-muted:#666666; 
  --kura-success:#10b981;  /* Verde éxito refinado */
  --kura-error:#ef4444;    /* Rojo error refinado */
  --kura-turq:#189CD8;     /* Spirited Magenta */
  --radius:12px; 
  --transition:0.22s ease;
}

.kc-funnel-wrap, .kc-funnel-wrap * { box-sizing:border-box; }
.kc-funnel-wrap {
  /* Fondo exterior degradado al estilo del Chevron Wegovy */
  background:linear-gradient(180deg, #0092BC 0%, #A6DAE6 100%); 
  display:flex; 
  flex-direction:column;
  min-height:100vh; 
  position:relative;
}

.kc-top-bar { position:absolute; top:0; left:0; width:100%; height:64px; display:flex; align-items:center; padding:0 20px; z-index:10; transition:opacity .3s ease; }
.kc-btn-back { background:none; border:none; font-size:30px; color:var(--kura-navy); cursor:pointer; padding:9px 14px; display:flex; align-items:center; justify-content:center; gap:8px; transition:transform var(--transition); }
.kc-btn-back:hover { transform:translateX(-3px); }
.kc-back-label { font-size:16px; font-weight:700; letter-spacing:.2px; }
@media(max-width:600px){ .kc-btn-back{ font-size:26px; padding:8px; gap:0; } .kc-back-label{ display:none; } }
.kc-progress-container { flex:1; height:6px; background:#E2E8F0; border-radius:3px; margin-left:15px; margin-right:10px; overflow:hidden; }
.kc-progress-bar { height:100%; background:var(--kura-blue); width:0%; transition:width .4s ease; }

.kc-funnel-content { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:60px 20px 40px; width:100%; }
.kc-card { background:#fff; border-radius:20px; padding:40px 32px; width:100%; max-width:600px; box-shadow:0 10px 40px rgba(0,146,188,.08); position:relative; overflow:visible; }
@media(max-width:600px){ .kc-funnel-content{padding:50px 16px 20px;} .kc-card{padding:30px 20px;border-radius:16px;} }

/* Pantallas ancladas arriba (bienvenida, cirugía, pregunta GLP-1): tarjeta más arriba en vez de centrada */
.kc-funnel-wrap.kc-align-top .kc-funnel-content { justify-content:flex-start; padding-top:44px; }
@media(max-width:600px){ .kc-funnel-wrap.kc-align-top .kc-funnel-content{ padding-top:30px; }
  #screen-cirugia > div:first-child, #screen-glp1-q { padding-top:28px; }
}

.kc-screen { display:none; animation:kcFadeInUp .4s ease forwards; }
.kc-screen.active { display:block; }
@keyframes kcFadeInUp { from{opacity:0;transform:translateY(15px);} to{opacity:1;transform:translateY(0);} }
@keyframes kcSpin { from{transform:rotate(0);} to{transform:rotate(360deg);} }
.kc-spin { animation:kcSpin 1.2s linear infinite; }

.kc-h2 { font-size:24px; font-weight:700; color:var(--kura-navy); margin:0 0 12px; text-align:center; line-height:1.3; }
.kc-p { font-size:14px; line-height:1.6; color:var(--kura-text); text-align:center; margin:0 0 24px; }

.kc-btn-large { width:100%; padding:18px 20px; font-size:19px; font-weight:700; border-radius:12px; background:var(--kura-navy); color:#fff; border:none; cursor:pointer; transition:all .2s; text-align:center; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.kc-btn-large:hover { background:#007EA3; transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,146,188,.3); }
.kc-btn-large:disabled { opacity:.7; cursor:not-allowed; transform:none; box-shadow:none; }

/* CTA de "continuar" siempre visible (superpuesto sobre el contenido) */
.kc-btn-sticky { position:sticky; bottom:14px; z-index:30; box-shadow:0 12px 28px rgba(5,70,180,.32); }
@media(max-width:600px){ .kc-btn-sticky{ bottom:10px; } }

.kc-radio-card-group { display:flex; flex-direction:column; gap:12px; margin-bottom:24px; }
.kc-radio-card { border:2px solid var(--kura-border); border-radius:12px; padding:16px 20px; cursor:pointer; display:flex; align-items:center; gap:14px; transition:all .2s; font-weight:600; color:var(--kura-navy); font-size:15px; }
.kc-radio-card:hover { border-color:var(--kura-blue); background:var(--kura-pale); }
.kc-radio-card.selected { border-color:var(--kura-blue); background:var(--kura-pale); box-shadow:0 4px 12px rgba(198,0,126,.15); }
.kc-radio-card input { display:none; }
.kc-radio-circle { width:22px; height:22px; border-radius:50%; border:2px solid var(--kura-border); position:relative; transition:all .2s; display:flex; align-items:center; justify-content:center; }
.kc-radio-card.selected .kc-radio-circle { border-color:var(--kura-blue); background:var(--kura-blue); }
.kc-radio-card.selected .kc-radio-circle::after { content:''; width:8px; height:8px; border-radius:50%; background:#fff; }

.kc-section-title { font-size:16px; font-weight:600; color:var(--kura-navy); margin-bottom:16px; padding-bottom:10px; border-bottom:2px solid var(--kura-sky); display:flex; align-items:center; gap:8px; }
.kc-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
.kc-grid.cols-1 { grid-template-columns:1fr; }
@media(max-width:500px){ .kc-grid{grid-template-columns:1fr;} }
.kc-full { grid-column:1/-1; }

.kc-field { display:flex; flex-direction:column; gap:6px; }
.kc-label { font-size:13px; font-weight:600; color:var(--kura-navy); display:flex; align-items:center; gap:4px; }
.kc-required { color:var(--kura-mid); font-size:14px; line-height:1; }
.kc-hint { font-size:12px; color:var(--kura-muted); font-weight:500; margin-top:-2px; }
.kc-privacy { font-size:12px; color:var(--kura-blue); font-weight:400; margin-top:12px; }

.kc-input, .kc-select, .kc-textarea { font-size:14px; color:var(--kura-text); background:var(--kura-white); border:1.5px solid var(--kura-border); border-radius:10px; padding:12px 14px; outline:none; transition:border-color var(--transition),box-shadow var(--transition); width:100%; appearance:none; -webkit-appearance:none; }
.kc-select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23C6007E' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px; cursor:pointer; }
.kc-textarea { resize:vertical; min-height:90px; }
.kc-input:focus, .kc-select:focus, .kc-textarea:focus { border-color:var(--kura-blue); box-shadow:0 0 0 3px rgba(198,0,126,.12); }
.kc-input.error, .kc-select.error { border-color:var(--kura-error); }
.kc-error-msg { font-size:12px; color:var(--kura-error); font-weight:600; display:none; margin-top:4px; }
.kc-error-msg.show { display:block; }

.kc-input-unit { position:relative; display:flex; align-items:center; }
.kc-input-unit .kc-input { padding-right:46px; }
.kc-unit { position:absolute; right:14px; font-size:13px; font-weight:700; color:var(--kura-blue); pointer-events:none; }

/* ── Selector de fecha de nacimiento (calendario táctil) ──── */
.kc-date-input-wrap { position:relative; display:flex; align-items:center; }
.kc-date-input-wrap .kc-date-display { padding-right:42px; cursor:pointer; caret-color:transparent; }
.kc-date-icon { position:absolute; right:14px; color:var(--kura-blue); font-size:16px; cursor:pointer; }

.kc-datepicker { display:none; position:absolute; top:calc(100% + 8px); left:0; z-index:40; background:#fff; border:1.5px solid var(--kura-border); border-radius:14px; box-shadow:0 14px 34px rgba(5,70,180,.2); padding:14px; width:290px; max-width:90vw; }
.kc-datepicker.open { display:block; animation:kcFadeInUp .18s ease; }
.kc-dp-header { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:10px; }
.kc-dp-nav { width:36px; height:36px; border-radius:50%; border:1.5px solid var(--kura-border); background:#fff; color:var(--kura-navy); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; transition:var(--transition); touch-action:manipulation; }
.kc-dp-nav:hover, .kc-dp-nav:active { background:var(--kura-pale); border-color:var(--kura-blue); }
.kc-dp-selects { display:flex; gap:6px; flex:1; }
.kc-dp-select { flex:1; min-width:0; font-size:13px; font-weight:600; color:var(--kura-navy); border:1.5px solid var(--kura-border); border-radius:8px; padding:8px 6px; background:#fff; appearance:none; -webkit-appearance:none; cursor:pointer; text-align:center; }
.kc-dp-weekdays { display:grid; grid-template-columns:repeat(7,1fr); text-align:center; font-size:11px; font-weight:700; color:var(--kura-muted); margin-bottom:4px; }
.kc-dp-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; touch-action:pan-y; }
.kc-dp-day { width:100%; aspect-ratio:1; border:none; background:transparent; border-radius:50%; font-size:13px; font-weight:600; color:var(--kura-text); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:var(--transition); touch-action:manipulation; padding:0; }
.kc-dp-day:hover:not(:disabled) { background:var(--kura-pale); }
.kc-dp-day.selected { background:var(--kura-blue); color:#fff; }
.kc-dp-day.kc-dp-disabled, .kc-dp-day:disabled { color:#d5d5d5; cursor:not-allowed; }
.kc-dp-pad { visibility:hidden; }
@media(max-width:600px){ .kc-datepicker{ width:100%; left:0; right:0; } }

.kc-option-group { display:flex; flex-wrap:wrap; gap:10px; margin-top:6px; }
.kc-option-group input[type="radio"], .kc-option-group input[type="checkbox"] { display:none; }
.kc-option-label { display:inline-flex; align-items:center; gap:6px; padding:10px 16px; border:1.5px solid var(--kura-border); border-radius:8px; font-size:13px; font-weight:600; color:var(--kura-blue); background:var(--kura-white); cursor:pointer; transition:var(--transition); user-select:none; }
.kc-option-group input:checked + .kc-option-label { background:var(--kura-blue); border-color:var(--kura-blue); color:#fff; box-shadow:0 3px 10px rgba(198,0,126,.22); }
.kc-option-label:hover { border-color:var(--kura-blue); background:var(--kura-pale); }

/* Respuestas como botones (2x2) */
.kc-btn-answers { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:6px; }
.kc-btn-answers label { display:block; }
.kc-btn-answers .kc-option-label { display:flex; justify-content:center; text-align:center; width:100%; padding:14px 12px; }
@media(max-width:500px){ .kc-btn-answers{ grid-template-columns:1fr; } }

/* Respuestas como botones (3 columnas, ej. motivación) */
.kc-btn-answers-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:6px; }
.kc-btn-answers-3 label { display:block; }
.kc-btn-answers-3 .kc-option-label { display:flex; justify-content:center; text-align:center; width:100%; padding:14px 8px; }
@media(max-width:480px){ .kc-btn-answers-3{ grid-template-columns:1fr; } }

.kc-divider { height:1px; background:var(--kura-border); margin:24px 0; }

/* ── Medidas: tarjeta de inputs (más grande) ────────────── */
.kura-inputs-card { background:#fff; border:2px solid var(--kura-blue); border-radius:14px; padding:28px 26px; margin-top:10px; }
.input-group { margin-bottom:28px; }
.input-label { font-size:15px; font-weight:700; color:var(--kura-navy); margin-bottom:14px; display:flex; align-items:center; gap:7px; }
.input-label i { color:var(--kura-blue); font-size:15px; }
.slider-row { display:flex; align-items:center; gap:16px; }
.slider-row input[type=range] { flex:1; -webkit-appearance:none; height:6px; border-radius:4px; background:linear-gradient(to right,var(--kura-blue) 0%,var(--kura-blue) var(--val,40%),#dce7f7 var(--val,40%),#dce7f7 100%); outline:none; cursor:pointer; }
.slider-row input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:24px; height:24px; border-radius:50%; background:var(--kura-navy); border:3px solid #fff; box-shadow:0 0 0 2px var(--kura-navy); cursor:pointer; }
.slider-row input[type=range]::-moz-range-thumb { width:24px; height:24px; border-radius:50%; background:var(--kura-navy); border:3px solid #fff; box-shadow:0 0 0 2px var(--kura-navy); cursor:pointer; }

/* CONTENEDOR DE NÚMEROS */
.val-box { background:#f9f9f9; border:2px solid var(--kura-blue); border-radius:12px; padding:12px 16px; min-width:118px; text-align:center; display:flex; align-items:center; justify-content:center; gap:8px; transition:border-color .2s; }
.val-box:focus-within { border-color:var(--kura-navy); box-shadow:0 0 0 3px rgba(0,146,188,.12); }
.val-box input[type=number] { border:none; outline:none; background:transparent; width:64px; font-size:24px; font-weight:700; color:var(--kura-navy); text-align:center; -moz-appearance:textfield; }
.val-box input[type=number]::-webkit-inner-spin-button { -webkit-appearance:none; }
.val-box span { font-size:16px; color:var(--kura-blue); font-weight:600; }

/* ── Resultado IMC (con curva) ───────────── */
.kc-imc-card { background:#fff; border:2px solid var(--kura-blue); border-radius:16px; overflow:hidden; margin-top:8px; }
.kc-imc-gauge-wrap { padding:28px 24px 12px; text-align:center; }
.kc-imc-gauge { width:100%; max-width:320px; height:auto; }
.kc-imc-readout { margin-top:4px; }
.kc-imc-num { font-size:56px; font-weight:800; line-height:1; color:var(--kura-navy); }
.kc-imc-cls { font-size:14px; color:#555; margin-top:6px; }
.kc-imc-cls strong { color:var(--kura-navy); }
.kc-imc-note { font-size:14px; line-height:1.6; color:var(--kura-text); background:var(--kura-pale); border-left:4px solid var(--kura-navy); border-radius:0 8px 8px 0; padding:14px 16px; margin-top:18px; }

.kura-scale { padding:16px 24px 20px; }
.scale-bars { display:grid; grid-template-columns:repeat(6,1fr); gap:3px; }
.scale-bar { border-radius:4px; padding:8px 4px; text-align:center; transition:transform .2s; }
.scale-bar.active { outline:2.5px solid var(--kura-navy); outline-offset:2px; transform:translateY(-2px); }
.bar-range { font-size:11px; font-weight:700; color:#fff; margin-bottom:4px; }
.bar-name { font-size:11px; font-weight:600; color:#fff; line-height:1.2; }
.b1 { background:#b0c4de; } .b1 .bar-range,.b1 .bar-name { color:#1a2e50; }
.b2 { background:#5cb85c; } .b3 { background:#f0ad4e; } .b4 { background:#e67e22; } .b5 { background:#e05520; } .b6 { background:#d9534f; }

/* ── Consentimiento ─────────────────────────────────────── */
.kc-consent { display:flex; align-items:flex-start; gap:12px; padding:16px; background:#fff; border:2px solid var(--kura-border); border-radius:12px; cursor:pointer; margin-bottom:12px; transition:border-color .2s; }
.kc-consent:hover { border-color:var(--kura-turq); }
.kc-consent input[type="checkbox"] { display:none; }
.kc-checkbox-box { width:22px; height:22px; border:2px solid var(--kura-border); border-radius:6px; flex-shrink:0; display:flex; align-items:center; justify-content:center; margin-top:2px; transition:var(--transition); background:#f9f9f9; }
.kc-consent input:checked ~ .kc-checkbox-box { background:var(--kura-turq); border-color:var(--kura-turq); }
.kc-consent-text { font: size 11px !important; color:var(--kura-text); font-weight:400; }
.kc-consent-text strong { font: size 11px !important; color:var(--kura-turq); }
.kc-consent-text a { font: size 11px !important; color:var(--kura-blue); }

.kc-result-list { padding-left:20px; font-size:14px; line-height:1.6; color:var(--kura-text); text-align:left; }
.kc-result-list li { margin-bottom:10px; }

/* ── Modal Inactividad ──────────────────────────────────── */
.kc-idle-modal { display:none; position:fixed; inset:0; width:100%; height:100%; background:rgba(0,0,0,.4); z-index:9999; align-items:center; justify-content:center; opacity:0; transition:opacity .3s ease; }
.kc-idle-box { background:#fff; border-radius:20px; padding:30px 20px; width:90%; max-width:440px; text-align:center; box-shadow:0 20px 40px rgba(0,0,0,.15); position:relative; transform:translateY(20px); transition:transform .3s ease; }
.kc-idle-close { position:absolute; top:10px; right:16px; background:#f9f9f9; border:none; font-size:20px; color:#000; cursor:pointer; }
.kc-idle-icon { display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; background:var(--kura-pale); color:var(--kura-blue); border-radius:50%; font-size:28px; margin-bottom:10px; }
.kc-idle-title { font-size:22px; color:var(--kura-navy); margin-bottom:8px; font-weight:700; }
.kc-idle-sub { font-size:15px; color:var(--kura-muted); margin-bottom:20px; }
.kc-idle-list { display:flex; flex-direction:column; gap:10px; margin-bottom:20px; }
.kc-idle-option { display:flex; align-items:center; gap:12px; padding:16px 20px; border:2px solid var(--kura-border); border-radius:12px; font-size:14px; font-weight:600; color:var(--kura-text); cursor:pointer; transition:all .2s; text-align:left; }
.kc-idle-option i:first-child { width:20px; }
.kc-idle-chev { margin-left:auto; color:var(--kura-border); }
.kc-idle-option:hover, .kc-idle-option.selected { border-color:var(--kura-blue); background:var(--kura-pale); color:var(--kura-navy); }
.kc-idle-option.selected .kc-idle-chev { color:var(--kura-blue); }
.kc-idle-wa { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; margin-top:12px; padding:14px; border-radius:12px; background:#0546B4; color:#fff!important; font-size:15px; font-weight:600; text-decoration:none; transition:background var(--transition),transform var(--transition); }
.kc-idle-wa:hover { background:#1EBE5A; transform:translateY(-2px); color:#fff; }
.kc-idle-wa i { font-size:18px; }

/* ── WhatsApp button styling (Magenta with Cyan Hover) ── */
#ccf-btn-result-whatsapp {
  background-color: var(--kura-blue) !important;
  transition: background-color var(--transition), transform var(--transition) !important;
}
#ccf-btn-result-whatsapp:hover {
  background-color: #00D2FF !important;
  transform: translateY(-2px);
}