/* ===================== Tokens — UNIMAYOR + Google Forms blend ===================== */
:root{
  --gf-primary:#0055A5;        /* azul institucional general (inputs/botones) */
  --gf-primary-600:#004a94;
  --gf-primary-700:#00417f;
  --gf-accent:#EFC729;         /* amarillo institucional */
  --gf-ink:#202124;
  --gf-muted:#5f6368;
  --gf-bg:#f4f6f8;
  --gf-surface:#ffffff;
  --gf-border:#e0e3e7;
  --gf-radius:12px;
  --gf-shadow:0 2px 10px rgba(0,0,0,.08);
  --gf-shadow-lg:0 8px 24px rgba(0,0,0,.10);
  --gf-container-w:920px;
}

/* ===================== Scope ===================== */
.gform-theme{
  font-family:'Roboto', system-ui, -apple-system, Segoe UI, Arial, sans-serif;
  color:var(--gf-ink);
  background:var(--gf-bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.gform-skip{position:absolute;left:-9999px;top:auto;background:#fff;color:#000;padding:.5rem .75rem;border-radius:8px}
.gform-skip:focus{left:1rem;top:1rem;z-index:9999;outline:3px solid var(--gf-primary)}

/* ===================== Layout ===================== */
.gform-container{ max-width:var(--gf-container-w); margin:2rem auto; padding:1.5rem; }
@media (min-width:768px){ .gform-container{ padding:2rem 2.25rem } }

/* ====== Encabezado (banner azul sólido con título compacto) ====== */
.gform-header{
  border-radius:var(--gf-radius); overflow:hidden;
  box-shadow:var(--gf-shadow); border:1px solid var(--gf-border);
  margin-bottom:1.2rem; background:var(--gf-surface);
}
.gform-header__band{
  position:relative;
  height:112px; /* compactado */
  background:#235C9B !important;
  background-image: linear-gradient(90deg, #235C9B, #1f4f86) !important; /* leve gradiente */
  border-bottom:4px solid var(--gf-accent);
}
.gform-header__band::before,
.gform-header__band::after{ content:none !important; } /* sin hero por imagen */

.gform-hero-inner{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:0 24px; text-align:center; }
.gform-hero-title{
  color:#EFC729;
  font-weight:800;                 /* más elegante que 900 */
  letter-spacing:.06em;
  text-transform:uppercase;
  text-wrap:balance;
  max-width:92%;
  margin:0 auto;

  /* tamaño más pequeño y proporcionado */
  font-size: clamp(0.95rem, 0.6rem + 1.6vw, 1.35rem);
  line-height:1.2;

  /* contraste contenido y limpio */
  text-shadow:0 1px 3px rgba(0,0,0,.45);
  -webkit-text-stroke:0.4px rgba(0,0,0,.28);
}
@media (max-width:520px){
  .gform-header__band{ height:124px; }
  .gform-hero-title{
    font-size: clamp(0.95rem, 0.8rem + 3vw, 1.25rem);
    letter-spacing:.055em;
  }
}

.gform-header__content{ padding:22px 28px 24px; }
.gform-title{ font-weight:700; font-size:clamp(1.25rem, 1.05rem + 1vw, 1.7rem); margin:0 0 6px; color:#1f1f1f; }
.gform-sub{ font-size:1rem; color:var(--gf-muted); line-height:1.55; margin:0; }

/* ====== Tarjetas y preguntas ====== */
.gform-card{
  background:var(--gf-surface); border-radius:var(--gf-radius);
  border:1px solid var(--gf-border); box-shadow:var(--gf-shadow);
}
.gform-qa{ padding:12px 0; }
.gform-content{ padding:14px 18px 18px; }

.gform-qa .question-container{
  background:var(--gf-surface);
  border-radius:var(--gf-radius);
  border:1px solid var(--gf-border);
  box-shadow:var(--gf-shadow);
  padding:24px 28px;
  margin-bottom:16px;
}

/* Intro card (solo primera página) */
.intro-card{
  background:#235C9B; color:#fff; border:0; margin-bottom:16px;
  padding:24px 28px; border-radius:12px; box-shadow:var(--gf-shadow-lg);
}
.intro-title{
  margin:0 0 12px; font-weight:800; letter-spacing:.02em;
  color:#EFC729; font-size:clamp(1.1rem, .9rem + 1vw, 1.5rem);
}

/* Elimina restricciones Bootstrap internas para ancho completo */
.gform-qa .question-container .row{ margin-left:0; margin-right:0; }
.gform-qa .question-container [class^="col-"], .gform-qa .question-container [class*=" col-"]{
  float:none; width:100%; max-width:none; padding-left:0; padding-right:0;
}
.gform-qa .question-container .form-group,
.gform-qa .question-container .answer-container,
.gform-qa .question-container .answers-list,
.gform-qa .question-container .subquestion-list,
.gform-qa .question-container .ls-input,
.gform-qa .question-container .control-label{ max-width:100%; }

/* Títulos y ayudas de pregunta */
.gform-qa .question-title-container h3{
  font-size:clamp(1.18rem, 1.02rem + .6vw, 1.35rem);
  line-height:1.35; margin:0 0 .4rem; color:var(--gf-primary); font-weight:500; text-wrap:balance;
}
.gform-qa .ls-question-help, .gform-qa .question-help,
.gform-qa .question-title-container .mandatory, .gform-qa .question-title-container .question-number{
  font-size:1rem; color:var(--gf-muted);
}

/* Inputs subrayados tipo Google Forms */
.gform-theme input[type], .gform-theme select, .gform-theme textarea{
  display:block; width:100%;
  font-size:clamp(1.05rem, 1rem + .3vw, 1.18rem);
  background:transparent; border:none; border-bottom:2px solid #d8dee7;
  padding:.78rem .1rem .62rem; min-height:48px;
  transition:border-color .18s ease, box-shadow .18s ease; border-radius:0;
}
.gform-theme textarea{ min-height:140px }
.gform-theme input:focus, .gform-theme textarea:focus, .gform-theme select:focus{
  border-bottom-color:var(--gf-primary); box-shadow:0 1px 0 0 var(--gf-primary); outline:none;
}
.gform-theme input::placeholder, .gform-theme textarea::placeholder{ font-size:.98em; color:#9aa3af }

/* Fix input-group (fecha/hora) */
.gform-qa .input-group{ display:flex; align-items:center; width:100%; gap:.5rem; }
.gform-qa .input-group .form-control{ flex:1 1 auto; width:1%; }
.gform-qa .input-group-addon, .gform-qa .addon,
.gform-qa .input-group-btn > .btn, .gform-qa .input-group .btn{
  background:transparent !important; border:none !important; box-shadow:none !important;
  padding:.25rem .25rem !important; line-height:1; min-width:auto;
  color:var(--gf-primary); display:inline-flex; align-items:center; justify-content:center;
}
.gform-qa .input-group-addon svg, .gform-qa .input-group .btn svg{ width:20px; height:20px; }

/* Radios / Checkboxes */
.answers-list li, .list-unstyled li{ display:flex; gap:.65rem; align-items:flex-start; padding:.35rem 0; }
.answers-list input[type="radio"], .answers-list input[type="checkbox"]{ width:22px; height:22px; margin-top:.18rem; accent-color:var(--gf-primary); }
.answers-list label, .list-unstyled label, label.answertext{ font-size:clamp(1.02rem, .98rem + .3vw, 1.15rem); line-height:1.45; color:#1f1f1f; }

/* Matrices / Arrays */
.gform-theme table.ls-answers{
  table-layout:fixed; width:100%; border-collapse:separate; border-spacing:0;
  border:1px solid var(--gf-border); border-radius:10px; overflow:hidden; background:#fff;
}
.gform-theme table.ls-answers thead th{
  background:#f8f9fb; color:#3e4653; font-weight:600;
  font-size:clamp(1rem, .96rem + .3vw, 1.12rem);
  text-align:center; padding:.7rem .6rem; border-bottom:1px solid var(--gf-border);
}
.gform-theme table.ls-answers thead th:first-child,
.gform-theme table.ls-answers tbody th.answertext{
  text-align:left; width:44% !important; color:#1f1f1f; background:#fff;
  font-size:clamp(1.02rem, .98rem + .3vw, 1.14rem);
}
.gform-theme table.ls-answers tbody td{ text-align:center; padding:.65rem .5rem; border-top:1px solid #eef1f6; }
.gform-theme table.ls-answers input[type="radio"], .gform-theme table.ls-answers input[type="checkbox"]{ width:22px; height:22px; }

/* Progreso */
#progress-wrapper, .progress{ background:#e9eaf0; height:6px; border-radius:999px; overflow:hidden; }
#progressbar, .progress-bar{ background:var(--gf-accent); }

/* Botones */
.gform-theme .btn-primary{
  background:var(--gf-primary); border-color:var(--gf-primary);
  font-weight:600; border-radius:999px; padding:.7rem 1.45rem; color:#fff; font-size:1rem;
}
.gform-theme .btn-primary:hover{ background:var(--gf-primary-700); border-color:var(--gf-primary-700); }
.gform-theme .btn-default, .gform-theme .btn-secondary{
  background:#fff; border:1px solid var(--gf-border); color:#1f1f1f;
  border-radius:999px; padding:.7rem 1.35rem; font-weight:500; font-size:1rem;
}
.gform-theme .btn-default:hover, .gform-theme .btn-secondary:hover{ background:#f8f9fb; }

/* Footer */
.gform-footer{ text-align:center; color:var(--gf-muted); font-size:.9rem; margin-top:1rem; }

/* Responsive */
@media (max-width:768px){
  .gform-container{ padding:1rem; }
  .gform-qa .question-container{ padding:20px 18px; }
  .gform-title{ font-size:1.35rem; }
  .gform-theme table.ls-answers{
    display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; min-width:720px;
    mask-image:linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%);
  }
  .gform-theme table.ls-answers thead th{ white-space:nowrap; }
}

/* ==== Títulos de grupos más pequeños y compactos ==== */
.ls-group-heading h2,
.group-title h2,
#group-container h2{
  font-size: clamp(0.95rem, 0.6rem + 1.0vw, 1.20rem) !important; /* ↓ tamaño */
  line-height: 1.25 !important;
  font-weight: 600 !important;
  margin: 0 0 8px !important;      /* menos espacio inferior */
  letter-spacing: .01em !important;
  text-wrap: balance;
}

/* En pantallas muy pequeñas, aún más discreto */
@media (max-width: 480px){
  .ls-group-heading h2,
  .group-title h2,
  #group-container h2{
    font-size: 1.05rem !important;
  }
}

/* ===== Título de GRUPO compacto (cuando es <div class="group-title">) ===== */
#group-container .group-title,
.ls-group-heading .group-title,
.gform-theme .group-title{
  font-size: clamp(1rem, 0.7rem + 1.0vw, 1.35rem) !important;  /* ↓ tamaño */
  line-height: 1.25 !important;
  font-weight: 700 !important;
  margin: 0 0 10px !important;
  letter-spacing: .01em !important;
}

/* Si el título viene dentro de un heading, también lo reducimos */
#group-container h1.group-title,
#group-container h2.group-title,
#group-container h3.group-title{
  font-size: clamp(1rem, 0.7rem + 1.0vw, 1.35rem) !important;
  line-height: 1.25 !important;
  margin: 0 0 10px !important;
}

/* Opcional: descripción del grupo un poco más discreta */
.group-desc, .group-description{
  font-size: .98rem !important;
  color: #5f6368 !important;
  margin-bottom: 12px !important;
}

