/* Páginas independientes de disciplinas — IMAKC 2026 */
:root { --discipline: #e11d2a; --discipline-soft: rgba(225,29,42,.15); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:#090909; color:#f5f5f5; font-family:'Archivo',sans-serif; }
.discipline-page { overflow:hidden; }
.discipline-nav { position:fixed; inset:0 0 auto; z-index:100; height:76px; display:flex; align-items:center; justify-content:space-between; padding:14px clamp(20px,5vw,68px); border-bottom:1px solid rgba(255,255,255,.1); background:rgba(8,8,8,.84); backdrop-filter:blur(16px); }
.discipline-nav__brand { color:#f5f5f5; text-decoration:none; display:block; }
.discipline-nav__brand img { display:block; width:auto; height:44px; }
.discipline-nav-toggle { display: none; flex-direction: column; justify-content: center; align-items: center; gap: 5px; width: 38px; height: 38px; background: transparent; border: 1px solid rgba(255, 255, 255, 0.16); cursor: pointer; padding: 0; position: relative; z-index: 101; }
.discipline-nav-toggle__line { display: block; width: 18px; height: 2px; background: #f5f5f5; transition: transform 0.25s ease, opacity 0.25s ease; }
.discipline-nav-menu { display: flex; align-items: center; gap: 28px; }
.discipline-nav-link { color: #bdbdbd; text-decoration: none; font-size: 12px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; transition: color 0.2s; }
.discipline-nav-link:hover { color: #f5f5f5; }
.discipline-nav-cta { display: inline-flex; align-items: center; gap: 6px; background: var(--discipline); color: #fff; text-decoration: none; font-size: 12px; font-weight: 900; letter-spacing: 0.05em; text-transform: uppercase; padding: 11px 20px; clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%); transition: background-color 0.2s; }
.discipline-nav-cta:hover { filter: brightness(1.1); }
@media(max-width: 800px) {
  .discipline-nav-toggle { display: flex; }
  .discipline-nav-menu { position: fixed; inset: 0 0 0 auto; width: 280px; height: 100vh; flex-direction: column; align-items: stretch; justify-content: flex-start; padding: 110px 30px 40px; background: #0d0d0d; border-left: 1px solid rgba(255,255,255,0.1); transform: translateX(100%); transition: transform 0.25s ease; z-index: 99; gap: 24px; }
  .discipline-nav-menu.is-open { transform: translateX(0); }
  .discipline-nav-toggle.is-active .discipline-nav-toggle__line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .discipline-nav-toggle.is-active .discipline-nav-toggle__line:nth-child(2) { opacity: 0; }
  .discipline-nav-toggle.is-active .discipline-nav-toggle__line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}
.discipline-hero { position:relative; min-height:clamp(600px,92vh,850px); display:flex; align-items:end; padding:120px clamp(20px,7vw,112px) 74px; isolation:isolate; }
.discipline-hero__image, .discipline-hero__veil { position:absolute; inset:0; z-index:-2; }
.discipline-hero__image { background:var(--hero-image) center/cover no-repeat; filter:grayscale(.25) contrast(1.1) brightness(.65); transform:scale(1.02); }
.discipline-hero__veil { z-index:-1; background:linear-gradient(90deg,#090909 0%,rgba(9,9,9,.82) 30%,rgba(9,9,9,.18) 78%),linear-gradient(0deg,#090909 0%,transparent 55%),radial-gradient(70% 80% at 84% 15%,var(--discipline-soft),transparent 62%); }
.discipline-hero__content { width:min(760px,100%); }
.discipline-kicker { margin:0 0 22px; color:var(--discipline); font:700 11px 'Space Mono',monospace; letter-spacing:.25em; text-transform:uppercase; }
.discipline-title { margin:0; font:400 clamp(64px,12vw,160px)/.83 'Anton',sans-serif; letter-spacing:.015em; text-transform:uppercase; }
.discipline-title span { display:block; color:transparent; -webkit-text-stroke:2px var(--discipline); }
.discipline-lead { max-width:560px; margin:28px 0 0; color:#d0d0d0; font-size:clamp(16px,2vw,20px); line-height:1.55; }
.discipline-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.discipline-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 23px; color:#fff; border:1px solid var(--discipline); background:var(--discipline); text-decoration:none; font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; clip-path:polygon(7% 0,100% 0,93% 100%,0 100%); }
.discipline-button--ghost { background:rgba(0,0,0,.28); border-color:rgba(255,255,255,.42); }
.discipline-button:hover { filter:brightness(1.15); }
.discipline-section { padding:clamp(72px,10vw,130px) clamp(20px,7vw,112px); }
.discipline-section--dark { background:#0e0e0e; }
.discipline-section__head { display:grid; grid-template-columns:minmax(180px,.55fr) minmax(0,1.3fr); gap:26px; width:min(1180px,100%); margin:0 auto 48px; }
.discipline-section__number { color:var(--discipline); font:400 clamp(58px,7vw,100px)/.8 'Anton',sans-serif; }
.discipline-section__eyebrow { margin:0 0 14px; color:var(--discipline); font:700 11px 'Space Mono',monospace; letter-spacing:.2em; text-transform:uppercase; }
.discipline-section h2 { margin:0; font:400 clamp(40px,5vw,68px)/.95 'Anton',sans-serif; text-transform:uppercase; }
.discipline-section__intro { max-width:530px; margin:17px 0 0; color:#a9a9a9; line-height:1.65; }
.discipline-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; width:min(1180px,100%); margin:auto; }
.discipline-card { min-height:255px; padding:28px; border:1px solid rgba(255,255,255,.11); background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018)); }
.discipline-card--featured { border-color:color-mix(in srgb,var(--discipline) 62%, transparent); box-shadow:inset 0 3px var(--discipline); }
.discipline-card__tag { display:block; margin-bottom:35px; color:var(--discipline); font:700 10px 'Space Mono',monospace; letter-spacing:.16em; text-transform:uppercase; }
.discipline-card h3 { margin:0; font:400 29px/1 'Anton',sans-serif; text-transform:uppercase; }
.discipline-card p { margin:16px 0 0; color:#ababab; font-size:14px; line-height:1.55; }
.discipline-card__note { margin-top:21px!important; color:#777!important; font:11px/1.6 'Space Mono',monospace; }
.discipline-schedule { width:min(1180px,100%); margin:auto; border-top:1px solid rgba(255,255,255,.15); }
.discipline-schedule__day:first-child { padding-top:24px; }
.discipline-schedule__day + .discipline-schedule__day { margin-top:46px; }
.discipline-schedule__day h3 { margin:0; padding:0 0 14px; color:var(--discipline); font:400 clamp(28px,3vw,42px)/1 'Anton',sans-serif; letter-spacing:.01em; text-transform:uppercase; }
.discipline-schedule__row { display:grid; grid-template-columns:180px 1fr; gap:30px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.discipline-schedule__time { color:var(--discipline); font:700 13px 'Space Mono',monospace; letter-spacing:.04em; }
.discipline-schedule__title { font-weight:800; font-size:18px; }
.discipline-schedule__desc { margin-top:7px; color:#979797; font-size:14px; line-height:1.5; }
.discipline-video { width:min(1180px,100%); margin:auto; aspect-ratio:16/7; position:relative; display:grid; place-items:center; overflow:hidden; border:1px solid rgba(255,255,255,.12); background:var(--hero-image) center/cover; }
.discipline-video__media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#050505; }
.discipline-video:before { content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(0,0,0,.52),rgba(0,0,0,.8)),var(--discipline-soft); }
.discipline-video__content { position:relative; text-align:center; padding:30px; }
.discipline-video__play { display:grid; place-items:center; width:70px; height:70px; margin:0 auto 18px; border:1px solid var(--discipline); border-radius:50%; color:#fff; background:var(--discipline); font-size:22px; text-decoration:none; }
.discipline-video h3 { margin:0; font:400 clamp(28px,4vw,46px)/1 'Anton',sans-serif; text-transform:uppercase; }
.discipline-video p { margin:12px 0 0; color:#cacaca; font-size:14px; }
.discipline-footer { padding:38px clamp(20px,7vw,112px); border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; gap:20px; color:#777; font:11px 'Space Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.discipline-footer a { color:#bdbdbd; text-decoration:none; }
@media(max-width:720px) { .discipline-nav { height:68px; } .discipline-nav__brand img { height:36px; } .discipline-hero { min-height:680px; padding-bottom:52px; } .discipline-hero__veil { background:linear-gradient(0deg,#090909 0%,rgba(9,9,9,.55) 65%,rgba(9,9,9,.12)),radial-gradient(80% 70% at 80% 15%,var(--discipline-soft),transparent 70%); } .discipline-section__head { grid-template-columns:1fr; } .discipline-grid { grid-template-columns:1fr; } .discipline-schedule__row { grid-template-columns:1fr; gap:9px; } .discipline-video { aspect-ratio:4/3; } .discipline-footer { flex-direction:column; } }

/* Modal styles copied from components.css and modified for disciplines */
.modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--gutter-mobile);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-base) ease,
              visibility var(--transition-base) ease;
}

.modal.is-open {
  opacity: 1;
  visibility: visible;
}

.modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 4, 4, 0.82);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

.modal__dialog {
  position: relative;
  width: 100%;
  max-width: 440px;
  background: var(--color-bg-elevated);
  border: var(--border-width-thin) solid var(--color-border-light);
  border-top: var(--border-width-thick) solid var(--discipline);
  box-shadow: 0 16px 48px rgba(0,0,0,0.5);
}

/* ---- Selector de idioma ES / EN ---- */
.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding-left: 12px;
  margin-left: 8px;
  border-left: 1px solid rgba(255,255,255,0.15);
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
}

.lang-switch__opt {
  color: #777;
  text-decoration: none;
  padding: 3px 5px;
  transition: color 0.2s;
}

.lang-switch__opt:hover {
  color: #fff;
}

.lang-switch__opt.is-active {
  color: var(--discipline);
  font-weight: 700;
}

.lang-switch__sep {
  color: #444;
}

.modal__dialog {
  padding: var(--space-7xl) var(--space-6xl) var(--space-6xl);
  text-align: center;
  transform: translateY(14px) scale(0.97);
  transition: transform var(--transition-base) var(--transition-easing);
  z-index: 1;
}

.modal.is-open .modal__dialog {
  transform: translateY(0) scale(1);
}

.modal__close {
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: var(--border-width-thin) solid var(--color-border);
  color: var(--color-text-tertiary);
  font-size: var(--font-size-3xl);
  line-height: 1;
  cursor: pointer;
  transition: color var(--transition-fast) ease,
              border-color var(--transition-fast) ease;
}

.modal__close:hover {
  color: var(--color-text-primary);
  border-color: var(--color-border-active);
}

.modal__eyebrow {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  letter-spacing: 0.2em;
  color: var(--discipline);
  margin-bottom: var(--space-md);
}

.modal__title {
  font-family: var(--font-display);
  font-size: var(--font-size-5xl);
  text-transform: uppercase;
  color: var(--color-text-primary);
  margin: 0 0 var(--space-md);
}

.modal__text {
  color: var(--color-text-tertiary);
  font-size: var(--font-size-base);
  line-height: 1.6;
  margin: 0;
}

/* Categories table styles */
.categories-table {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: var(--color-bg-elevated);
}
.categories-row {
  display: grid;
  grid-template-columns: 110px 180px 150px 1fr;
  gap: 16px;
  padding: 12px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.categories-row--head {
  position: sticky;
  top: 0;
  z-index: 1;
  background: rgba(255, 255, 255, 0.02);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-quaternary);
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  font-weight: 700;
}
.categories-row:not(.categories-row--head):hover {
  background: var(--discipline-soft);
}
.categories-row__clave {
  font-family: var(--font-mono);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
}
.categories-row__nombre {
  color: var(--color-text-primary);
  font-weight: var(--font-weight-semibold);
}
.categories-row__edad {
  color: var(--color-text-secondary);
}
.categories-row__grado {
  color: var(--color-text-tertiary);
  text-transform: uppercase;
  font-size: var(--font-size-base);
}

@media (max-width: 600px) {
  .categories-row {
    grid-template-columns: 80px 130px 110px 1fr;
    font-size: 13px;
    padding: 10px 12px;
  }
}

/* Play button overlay for disciplines video */
.discipline-video {
  position: relative;
}
.discipline-video__play-btn {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  cursor: pointer;
  z-index: 2;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
.discipline-video__play-btn::before {
  content: "";
  position: absolute;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: var(--discipline);
  box-shadow: 0 0 16px var(--discipline), 0 12px 36px rgba(0,0,0,0.5);
  transition: transform 0.25s ease, background 0.25s;
  z-index: -1;
}
.discipline-video__play-btn:hover::before {
  transform: scale(1.08);
  filter: brightness(1.1);
}
.discipline-video.is-playing .discipline-video__play-btn {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.discipline-video:before {
  transition: opacity 0.3s ease;
}
.discipline-video.is-playing:before {
  opacity: 0;
}

/* Promoter card styles copied from components.css for disciplines */
.promoter-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: var(--space-2xl) var(--space-3xl) var(--space-3xl);
  background: var(--color-bg-dark);
  border: var(--border-width-thin) solid var(--color-border-light);
  width: min(420px, 100%);
  margin: auto;
  justify-content: center;
}

.promoter-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: var(--discipline);
}

.promoter-card__tag {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-quaternary);
  margin-bottom: var(--space-md);
}

.promoter-card__name {
  font-family: var(--font-display);
  font-size: var(--font-size-3xl);
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--color-text-primary);
  margin-bottom: var(--space-xs);
}

.promoter-card__org {
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  margin-bottom: var(--space-md);
}

.promoter-card__address {
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  line-height: 1.6;
  color: var(--color-text-tertiary);
  padding-bottom: var(--space-lg);
  margin-bottom: var(--space-lg);
  border-bottom: var(--border-width-thin) solid var(--color-border);
}

.promoter-card__contacts {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

.promoter-card__contact {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-size: var(--font-size-base);
  color: var(--color-text-secondary);
  text-decoration: none;
  transition: color 0.2s ease;
  word-break: break-word;
}

a.promoter-card__contact:hover {
  color: var(--discipline);
}

.promoter-card__ico {
  flex-shrink: 0;
  width: 16px;
  color: var(--discipline);
  font-size: var(--font-size-sm);
}

/* Promoter layout container and photo wrapper */
.promoter-container {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 40px;
  max-width: 800px;
  margin: auto;
  align-items: stretch;
}

.promoter-photo-wrapper {
  position: relative;
  background: repeating-linear-gradient(
    135deg,
    #111111,
    #111111 14px,
    #161616 14px,
    #161616 28px
  );
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-bottom: 3px solid var(--discipline);
  overflow: hidden;
  aspect-ratio: 3/4;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.promoter-photo-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

@media (max-width: 720px) {
  .promoter-container {
    grid-template-columns: 1fr;
    gap: 24px;
    max-width: 320px;
  }
}

/* ---- Botón flotante de idioma ---- */
.floating-lang {
  position: fixed;
  bottom: 20px;
  left: 20px;
  z-index: 9999;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: rgba(10, 10, 10, 0.85);
  border: 1px solid var(--discipline);
  opacity: 0.85;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 30px;
  color: #ffffff !important;
  text-decoration: none;
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.6);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.floating-lang:hover {
  background: rgba(10, 10, 10, 0.95);
  opacity: 1;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.8);
}

.floating-lang__flag {
  font-size: 14px;
  line-height: 1;
}



