/* =====================================================================
   Ticketera COLMED Valparaíso · estilo común de las páginas públicas
   Institucional (navy #1a3a5c, rojo #c0392b) + destacado gala Día del Médico
   Se carga después de Bootstrap 5.3.2.
   ===================================================================== */

@font-face { font-family: "Newsreader"; font-weight: 500; font-display: swap; src: url("../../diadelmedico/assets/fonts/newsreader-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-weight: 400; font-display: swap; src: url("../../diadelmedico/assets/fonts/public-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-weight: 600; font-display: swap; src: url("../../diadelmedico/assets/fonts/public-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Public Sans"; font-weight: 700; font-display: swap; src: url("../../diadelmedico/assets/fonts/public-sans-latin-700-normal.woff2") format("woff2"); }

:root {
  --tk-navy: #1a3a5c;
  --tk-tinta: #0f2438;
  --tk-rojo: #c0392b;
  --tk-rojo-hover: #a5301f;
  --tk-bruma: #eef2f6;
  --tk-linea: #d5dee8;
  --tk-texto: #1d2c3b;
  --tk-suave: #52657a;
  --tk-noche: #0b0913;
  --tk-oro: linear-gradient(180deg, #fff3cf 0%, #f3d58a 38%, #d9a24a 62%, #b37a2c 100%);
  --tk-gala: linear-gradient(120deg, #ff9a3c 0%, #ff4f86 45%, #8b5cf6 100%);
  --tk-serif: "Newsreader", Georgia, serif;
  --tk-sans: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --bs-body-font-family: var(--tk-sans);
  --bs-body-color: var(--tk-texto);
  --bs-link-color-rgb: 26, 58, 92;
  --bs-primary: #1a3a5c;
  --bs-primary-rgb: 26, 58, 92;
}

body.tk { background: #fff; color: var(--tk-texto); font-family: var(--tk-sans); -webkit-font-smoothing: antialiased; }
.tk img { max-width: 100%; }
.tk :focus-visible { outline: 3px solid var(--tk-rojo); outline-offset: 2px; }
.tk-saltar { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--tk-navy); color: #fff; padding: 10px 14px; border-radius: 4px; }
.tk-saltar:focus { top: 10px; color: #fff; }

/* Bootstrap: botones institucionales en páginas existentes (confirmar, ticket) */
.tk .btn-primary, .tk .btn-success { --bs-btn-bg: var(--tk-rojo); --bs-btn-border-color: var(--tk-rojo); --bs-btn-hover-bg: var(--tk-rojo-hover); --bs-btn-hover-border-color: var(--tk-rojo-hover); --bs-btn-active-bg: var(--tk-rojo-hover); --bs-btn-active-border-color: var(--tk-rojo-hover); font-weight: 600; }
.tk .btn { border-radius: 6px; }

/* ------------------------------ Barra (negra, gala) ----------------- */
.tk-barra { position: sticky; top: 0; z-index: 40; background: rgba(11, 9, 19, .95); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.tk-barra::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--tk-gala); opacity: .85; }
.tk-barra__fila { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 72px; }
.tk-barra__marca { display: flex; align-items: center; gap: 12px; text-decoration: none; color: #fff; }
.tk-barra__marca img { width: 42px; height: auto; }
.tk-barra__nombre { display: flex; flex-direction: column; font-weight: 700; font-size: .92rem; letter-spacing: .06em; text-transform: uppercase; line-height: 1.15; color: #fff; }
.tk-barra__nombre small { font-weight: 400; font-size: .72rem; letter-spacing: .04em; text-transform: none; color: rgba(255,255,255,.7); }
.tk-barra__producto { margin-left: 4px; padding-left: 14px; border-left: 1px solid rgba(255,255,255,.25); font-family: var(--tk-serif); font-size: 1.3rem; color: #f3d58a; line-height: 1; }
.tk-barra__nav { display: flex; align-items: center; gap: 6px; }
.tk-barra__nav a { padding: 10px 12px; border-radius: 6px; color: rgba(255,255,255,.82); font-weight: 600; font-size: .95rem; text-decoration: none; }
.tk-barra__nav a:hover, .tk-barra__nav a[aria-current="page"] { color: #f7e7b4; }
.tk-barra__nav a.tk-barra__gala { color: #2a1a05; background: var(--tk-oro); padding: 10px 16px; white-space: nowrap; }
.tk-barra__nav a.tk-barra__gala:hover { color: #2a1a05; filter: brightness(1.06); }
@media (max-width: 760px) {
  .tk-barra__nombre small, .tk-barra__producto { display: none; }
  .tk-barra__nav a:not(.tk-barra__gala) { display: none; }
  .tk-barra__nav a.tk-barra__gala { font-size: .85rem; padding: 9px 12px; }
  .tk-barra__nombre { font-size: .8rem; }
}

/* --------------------------- Destacado gala ------------------------- */
.tk-destacado {
  position: relative; overflow: hidden; isolation: isolate; color: #fff;
  background:
    radial-gradient(55% 70% at 85% 10%, rgba(139, 92, 246, .45), transparent 70%),
    radial-gradient(50% 70% at 60% 100%, rgba(255, 79, 134, .35), transparent 70%),
    var(--tk-noche);
  padding: clamp(28px, 5vw, 56px) 0;
}
.tk-destacado__fondo { position: absolute; inset: 0 0 0 auto; width: min(55%, 820px); z-index: -1; }
.tk-destacado__fondo img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 25%; opacity: .75;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 45%); mask-image: linear-gradient(90deg, transparent, #000 45%); }
.tk-destacado__grilla { display: grid; grid-template-columns: minmax(160px, 260px) minmax(0, 1fr); gap: clamp(20px, 5vw, 56px); align-items: center; }
.tk-destacado__arte img { width: 100%; height: auto; filter: drop-shadow(0 14px 30px rgba(255, 79, 134, .35)); }
.tk-eyebrow { display: inline-block; margin: 0 0 10px; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--tk-rojo); }
.tk-eyebrow--gala { color: #ffb4cb; }
.tk-destacado__titulo { font-family: var(--tk-serif); font-weight: 500; font-size: clamp(1.9rem, 4vw, 3rem); line-height: 1.08; margin: 0 0 12px; max-width: 16ch; }
.tk-destacado__fecha { font-weight: 700; font-size: 1.1rem; margin: 0 0 12px; background: var(--tk-oro); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tk-destacado__bajada { color: rgba(255,255,255,.82); max-width: 34em; margin: 0 0 22px; }
.tk-destacado__acciones { display: flex; flex-wrap: wrap; gap: 10px; }
.tk-btn-oro { background: var(--tk-oro); color: #2a1a05; border: 0; font-weight: 700; padding: 12px 22px; box-shadow: 0 10px 26px -12px rgba(224, 178, 92, .75); }
.tk-btn-oro:hover { color: #2a1a05; filter: brightness(1.07); }
.tk-btn-contorno { border: 2px solid rgba(255,255,255,.7); color: #fff; font-weight: 600; padding: 10px 20px; }
.tk-btn-contorno:hover { background: #fff; color: var(--tk-navy); border-color: #fff; }
@media (max-width: 720px) {
  .tk-destacado__grilla { grid-template-columns: 1fr; text-align: center; }
  .tk-destacado__arte img { max-width: 200px; margin: 0 auto; display: block; }
  .tk-destacado__titulo, .tk-destacado__bajada { margin-left: auto; margin-right: auto; }
  .tk-destacado__acciones { justify-content: center; }
  .tk-destacado__acciones .btn { flex: 1 1 100%; }
  .tk-destacado__fondo { width: 100%; }
  .tk-destacado__fondo img { opacity: .35; -webkit-mask-image: none; mask-image: none; }
}

/* ----------------------------- Secciones ---------------------------- */
.tk-seccion { padding: clamp(40px, 7vw, 80px) 0; }
.tk-seccion--suave { background: var(--tk-bruma); }
.tk-titulo { font-family: var(--tk-serif); font-weight: 500; color: var(--tk-navy); font-size: clamp(1.9rem, 3.6vw, 2.75rem); line-height: 1.08; margin: 0 0 10px; }
.tk-titulo--chico { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-bottom: 20px; }
.tk-lead { color: var(--tk-suave); font-size: 1.075rem; max-width: 40em; margin: 0; }
.tk-cabecera { margin-bottom: 28px; }

/* ------------------------------ Tarjetas ---------------------------- */
.tk-grilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
.tk-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--tk-linea); border-radius: 14px; overflow: hidden; transition: transform .2s, box-shadow .2s; }
.tk-card:hover { transform: translateY(-3px); box-shadow: 0 22px 40px -26px rgba(15, 36, 56, .45); }
.tk-card__media { position: relative; display: block; aspect-ratio: 1 / 1; background: var(--tk-noche); overflow: hidden; }
.tk-card__media > img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.tk-card:hover .tk-card__media > img { transform: scale(1.03); }
.tk-card__sinimg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: radial-gradient(70% 70% at 70% 20%, rgba(139,92,246,.4), transparent 70%), var(--tk-navy); }
.tk-card__fecha { position: absolute; left: 12px; top: 12px; display: flex; flex-direction: column; align-items: center; min-width: 54px; padding: 6px 8px 7px; background: #fff; border-radius: 10px; color: var(--tk-rojo); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1; box-shadow: 0 6px 16px -6px rgba(0,0,0,.4); }
.tk-card__fecha strong { font-family: var(--tk-serif); font-size: 1.6rem; color: var(--tk-navy); letter-spacing: 0; margin-bottom: 2px; }
.tk-card .tk-chip { position: absolute; right: 12px; top: 12px; }
.tk-card__cuerpo { display: flex; flex-direction: column; flex: 1; padding: 18px 18px 20px; }
.tk-card__titulo { font-family: var(--tk-serif); font-weight: 500; font-size: 1.35rem; line-height: 1.2; margin: 0 0 8px; }
.tk-card__titulo a { color: var(--tk-tinta); text-decoration: none; }
.tk-card__titulo a:hover { color: var(--tk-rojo); }
.tk-card__meta { margin: 0 0 4px; font-weight: 600; color: var(--tk-texto); font-size: .95rem; }
.tk-card__meta--suave { font-weight: 400; color: var(--tk-suave); }
.tk-card__datos { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 14px 0 12px; }
.tk-precio { font-weight: 700; font-size: 1.15rem; color: var(--tk-navy); }
.tk-faltan { font-size: .85rem; color: var(--tk-suave); }
.tk-barra-cupos { height: 6px; background: var(--tk-bruma); border-radius: 99px; overflow: hidden; }
.tk-barra-cupos span { display: block; height: 100%; background: var(--tk-gala); border-radius: 99px; }
.tk-cupos { margin: 8px 0 16px; font-size: .9rem; color: var(--tk-suave); }
.tk-cupos strong { color: var(--tk-tinta); }
.tk-card.is-agotado .tk-card__media > img { filter: grayscale(.7); opacity: .7; }

.tk-chip { display: inline-block; padding: 5px 10px; border-radius: 99px; font-size: .75rem; font-weight: 700; letter-spacing: .04em; }
.tk-chip--alerta { background: var(--tk-rojo); color: #fff; }
.tk-chip--gris { background: #e3e8ee; color: var(--tk-suave); }

.tk-btn-primario { background: var(--tk-rojo); border: 0; color: #fff; font-weight: 600; padding: 12px 18px; }
.tk-btn-primario:hover { background: var(--tk-rojo-hover); color: #fff; }
.tk-btn-gris { background: #e3e8ee; color: var(--tk-suave); border: 0; padding: 12px 18px; }

.tk-vacio { text-align: center; padding: clamp(32px, 6vw, 56px) 20px; border: 1.5px dashed var(--tk-linea); border-radius: 14px; background: var(--tk-bruma); }
.tk-vacio h3 { font-family: var(--tk-serif); font-weight: 500; color: var(--tk-navy); font-size: 1.6rem; margin: 0 0 8px; }
.tk-vacio p { color: var(--tk-suave); max-width: 34em; margin: 0 auto 18px; }

/* --------------------------- Realizadas ----------------------------- */
.tk-realizadas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.tk-realizadas li { display: flex; align-items: center; gap: 14px; background: #fff; border-radius: 12px; padding: 10px 14px 10px 10px; }
.tk-realizadas img, .tk-realizadas__sinimg { width: 64px; height: 64px; flex: 0 0 64px; border-radius: 8px; object-fit: cover; filter: grayscale(.4); background: var(--tk-navy); }
.tk-realizadas li > div { flex: 1; min-width: 0; }
.tk-realizadas__nombre { margin: 0; font-weight: 600; color: var(--tk-tinta); line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tk-realizadas__fecha { margin: 0; font-size: .875rem; color: var(--tk-suave); }

/* ------------------------------- Pie -------------------------------- */
.tk-pie { background: var(--tk-tinta); color: rgba(255,255,255,.8); padding: 48px 0 20px; font-size: .95rem; }
.tk-pie__grilla { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 28px; align-items: start; }
.tk-pie__logo { width: 96px; height: auto; }
.tk-pie__titulo { font-family: var(--tk-serif); font-size: 1.2rem; color: #fff; margin: 0 0 8px; }
.tk-pie__lista { list-style: none; margin: 0; padding: 0; }
.tk-pie__lista li { margin: 5px 0; }
.tk-pie a { color: #fff; }
.tk-pie a:hover { color: #f3b4ab; }
.tk-pie__legal { margin: 32px 0 0; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.14); font-size: .85rem; color: rgba(255,255,255,.6); }
@media (max-width: 720px) { .tk-pie__grilla { grid-template-columns: 1fr; } }

/* ------------------------ Página de inscripción --------------------- */
.tk-evento { padding: clamp(28px, 5vw, 56px) 0 clamp(40px, 7vw, 80px); background: var(--tk-bruma); }
.tk-evento__grilla { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
.tk-evento__ficha { background: #fff; border-radius: 14px; overflow: hidden; border: 1px solid var(--tk-linea); position: sticky; top: 96px; }
.tk-evento__ficha > img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: var(--tk-noche); }
.tk-evento__info { padding: 20px 22px 22px; }
.tk-evento__info h1 { font-family: var(--tk-serif); font-weight: 500; color: var(--tk-navy); font-size: clamp(1.6rem, 3vw, 2.1rem); line-height: 1.12; margin: 0 0 14px; }
.tk-evento__datos { margin: 0; display: grid; gap: 10px; }
.tk-evento__datos dt { font-size: .8rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--tk-suave); }
.tk-evento__datos dd { margin: 0; font-weight: 600; }
.tk-evento__desc { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--tk-linea); color: var(--tk-suave); }
.tk-form { background: #fff; border-radius: 14px; padding: clamp(20px, 4vw, 36px); border: 1px solid var(--tk-linea); }
.tk-form h2 { font-family: var(--tk-serif); font-weight: 500; color: var(--tk-navy); font-size: 1.6rem; margin: 0 0 4px; }
.tk-form .form-label { font-weight: 600; font-size: .95rem; }
.tk-form .form-control { min-height: 48px; border-color: #b6c4d2; }
.tk-form .form-control:focus { border-color: var(--tk-navy); box-shadow: 0 0 0 3px rgba(26, 58, 92, .18); }
.tk-ayuda { font-size: .85rem; color: var(--tk-suave); margin-top: 4px; }
.tk-error-form { display: none; margin: 0 0 14px; padding: 12px 14px; border-radius: 8px; background: #fbeceb; color: #6b1d14; border-left: 4px solid var(--tk-rojo); }
.tk-error-form.is-visible { display: block; }
.tk-cerrado { background: #fff; border-radius: 14px; padding: clamp(20px, 4vw, 36px); border: 1px solid var(--tk-linea); border-top: 4px solid var(--tk-navy); }
.tk-cerrado h2 { font-family: var(--tk-serif); font-weight: 500; color: var(--tk-navy); font-size: 1.6rem; margin: 0 0 8px; }
@media (max-width: 860px) { .tk-evento__grilla { grid-template-columns: 1fr; } .tk-evento__ficha { position: static; } }
