@import url('https://fonts.googleapis.com/css2?family=Didact+Gothic&family=Jost:wght@400;500;600;700&display=swap');

/*
 * Nilson x TheGig
 * Structure and visual grammar follow the supplied TheGig 1.26 theme.
 * Nilson keeps the approved hero and brand accent colors.
 */
:root {
  --tg-bg: #ffffff;
  --tg-text: #060917;
  --tg-muted: #5e6068;
  --tg-light: #85878d;
  --tg-line: #dddddd;
  --tg-dark: #02040b;
  --tg-yellow: #ffd33d;
  --tg-yellow-hover: #e8bc24;
  --tg-coral: #ff6b4a;
  --tg-jost: 'Jost', sans-serif;
  --tg-didact: 'Didact Gothic', sans-serif;
}

body {
  background: var(--tg-bg) !important;
  color: var(--tg-text);
}

.tg-home {
  background: var(--tg-bg);
  color: var(--tg-text);
  font-family: var(--tg-didact);
}

/* Header: TheGig light scheme. */
.nilson-header {
  min-height: 82px;
  padding: 15px clamp(24px, 4vw, 70px);
  background: rgba(255, 255, 255, .98) !important;
  color: var(--tg-text) !important;
  border-bottom: 1px solid var(--tg-line) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
.nilson-header .nilson-brand,
.nilson-header .nilson-nav a { color: var(--tg-text) !important; }
.nilson-header .nilson-brand span { color: var(--tg-yellow) !important; }
.nilson-header .nilson-nav a {
  font-family: var(--tg-jost);
  font-size: 17px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}
.nilson-header .nilson-nav a:hover,
.nilson-header .nilson-nav a:focus-visible { color: var(--tg-coral) !important; }
.nilson-header .nilson-header-cta,
.tg-home .nilson-button--yellow {
  min-height: 48px;
  padding: 14px 23px;
  border: 0;
  border-radius: 0 !important;
  background: var(--tg-yellow) !important;
  color: var(--tg-text) !important;
  box-shadow: none !important;
  font-family: var(--tg-jost);
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.nilson-header .nilson-header-cta:hover,
.tg-home .nilson-button--yellow:hover { background: var(--tg-yellow-hover) !important; transform: none !important; }

/* Approved hero: deliberately preserved. Only the header offset remains aligned. */
.tg-home > .nilson-home-stage { display: block !important; }

/* Common TheGig section rhythm. */
.tg-home > section:not(.nilson-home-stage) {
  box-sizing: border-box;
}
.tg-kicker,
.tg-home .nilson-eyebrow:not(.nilson-home-stage .nilson-eyebrow) {
  margin: 0 0 14px;
  color: var(--tg-muted) !important;
  font-family: var(--tg-jost);
  font-size: 13px !important;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: .13em !important;
  text-transform: uppercase;
}
.tg-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 430px);
  align-items: end;
  gap: 50px;
  max-width: 1290px;
  margin: 0 auto 46px;
}
.tg-section-heading h2,
.tg-manifesto h2,
.tg-universes h2,
.tg-home .nilson-home-schedule h2,
.tg-home .nilson-home-videos h2,
.tg-home > .nilson-show h2,
.tg-home > .nilson-ubuntu h2,
.tg-home .nilson-date-alert__copy h2 {
  margin: 0;
  color: var(--tg-text) !important;
  font-family: var(--tg-jost) !important;
  font-size: clamp(2.65rem, 4.4vw, 4.8rem) !important;
  font-weight: 700 !important;
  line-height: 1.02 !important;
  letter-spacing: -.025em !important;
  text-transform: uppercase;
}
.tg-section-heading > p,
.tg-manifesto-grid > div,
.tg-home > .nilson-show p,
.tg-home > .nilson-ubuntu p,
.tg-home .nilson-date-alert p {
  color: var(--tg-muted) !important;
  font-family: var(--tg-didact);
  font-size: 1.08rem;
  line-height: 1.62;
}
.tg-text-link,
.tg-home .nilson-text-link {
  color: var(--tg-text) !important;
  font-family: var(--tg-jost);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
}

/* Intro after hero: mirrors TheGig's editorial intro spacing. */
.tg-manifesto {
  padding: 105px clamp(28px, 5vw, 80px) 115px;
  background: var(--tg-bg);
  border-bottom: 1px solid var(--tg-line);
}
.tg-manifesto > * { max-width: 1290px; margin-left: auto; margin-right: auto; }
.tg-manifesto-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .6fr);
  align-items: end;
  gap: clamp(55px, 8vw, 130px);
}
.tg-manifesto h2 {
  font-size: clamp(3rem, 5.5vw, 6rem) !important;
  text-transform: none;
  letter-spacing: -.045em !important;
}
.tg-manifesto h2 em {
  color: var(--tg-coral);
  font-family: 'Lora', Georgia, serif;
  font-weight: 400;
  text-transform: none;
}
.tg-manifesto-grid p { margin: 0 0 28px; }

/* Upcoming Shows: same information architecture as the validated cards, scaled down. */
.tg-home .nilson-home-schedule {
  display: block !important;
  padding: 110px clamp(28px, 5vw, 80px) 120px !important;
  background: var(--tg-bg) !important;
  color: var(--tg-text) !important;
}
.tg-home .nilson-home-schedule > header {
  max-width: 1290px;
  margin: 0 auto 42px;
  padding: 0;
  border: 0;
}
.tg-home .nilson-home-schedule h2 { font-size: clamp(2.8rem, 4.5vw, 4.8rem) !important; }
.tg-home .nilson-home-schedule__list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 22px !important;
  max-width: 1290px;
  margin: 0 auto;
}
.tg-home .nilson-home-schedule__row {
  min-height: 315px !important;
  padding: 22px !important;
  border: 0 !important;
  color: #fff !important;
  background: var(--tg-dark) !important;
}
.tg-home .nilson-home-schedule__row::after {
  background: linear-gradient(180deg, rgba(2,4,11,.45) 0%, rgba(2,4,11,.06) 42%, rgba(2,4,11,.9) 100%) !important;
}
.tg-home .nilson-home-schedule__row > time {
  padding: 8px 10px !important;
  background: var(--tg-yellow) !important;
  color: var(--tg-text) !important;
  font-family: var(--tg-jost) !important;
  font-size: .78rem !important;
}
.tg-home .nilson-home-schedule__row > time strong {
  color: var(--tg-text) !important;
  font-size: 2rem !important;
}
.tg-home .nilson-home-schedule__show h3 {
  color: #fff !important;
  font-family: var(--tg-jost) !important;
  font-size: clamp(1.65rem, 2.3vw, 2.45rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -.02em !important;
}
.tg-home .nilson-home-schedule__show p {
  color: var(--tg-yellow) !important;
  font-family: var(--tg-jost) !important;
  font-size: .7rem !important;
}
.tg-home .nilson-home-schedule__place strong {
  color: #fff !important;
  font-family: var(--tg-jost) !important;
  font-size: 1rem !important;
}
.tg-home .nilson-home-schedule__place span,
.tg-home .nilson-home-schedule__action p,
.tg-home .nilson-home-schedule__action .nilson-booking-note { color: rgba(255,255,255,.78) !important; }
.tg-home .nilson-home-schedule__action .nilson-button { padding: 9px 12px !important; min-height: 38px !important; font-size: 11px !important; }

/* Our Comedians -> Nilson universes. TheGig-like clean portrait row. */
.tg-universes {
  padding: 110px clamp(28px, 5vw, 80px) 125px;
  background: #f9f9f9;
}
.tg-universe-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
  max-width: 1290px;
  margin: 0 auto;
}
.tg-universe-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  color: var(--tg-text);
  text-decoration: none;
}
.tg-universe-card figure {
  grid-column: 1 / -1;
  margin: 0 0 24px;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--tg-dark);
}
.tg-universe-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}
.tg-universe-card:hover img { transform: scale(1.025); }
.tg-universe-card > span {
  grid-row: 2 / 4;
  padding-top: 5px;
  color: var(--tg-light);
  font-family: var(--tg-jost);
  font-size: 12px;
}
.tg-universe-card h3 {
  margin: 0;
  font-family: var(--tg-jost);
  font-size: clamp(1.6rem, 2.4vw, 2.35rem);
  font-weight: 600;
  line-height: 1.1;
  text-transform: none;
}
.tg-universe-card p { margin: 7px 0 0; color: var(--tg-muted); }

/* YouTube: wide visual row, not SaaS cards. */
.tg-home .nilson-home-videos {
  display: block !important;
  padding: 110px clamp(28px, 5vw, 80px) 120px !important;
  background: var(--tg-bg) !important;
  color: var(--tg-text) !important;
  border: 0 !important;
}
.tg-home .nilson-home-videos > header {
  max-width: 1290px;
  margin: 0 auto 42px;
  padding: 0;
  border: 0;
}
.tg-home .nilson-home-video-grid {
  grid-template-columns: 1.55fr .72fr !important;
  grid-template-rows: repeat(2, minmax(190px, 1fr)) !important;
  gap: 18px !important;
  min-height: 560px !important;
  max-width: 1290px;
  margin: 0 auto;
}
.tg-home .nilson-home-video-card { background: var(--tg-dark) !important; }
.tg-home .nilson-home-video-card .nilson-video-card__play {
  width: 52px !important;
  height: 52px !important;
  border: 0 !important;
  background: var(--tg-yellow) !important;
  color: var(--tg-text) !important;
}

/* Featured show: white editorial split like a TheGig promo block. */
.tg-home > .nilson-show {
  display: grid !important;
  grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr) !important;
  gap: clamp(55px, 9vw, 140px) !important;
  min-height: 0 !important;
  padding: 120px max(28px, calc((100vw - 1290px) / 2)) !important;
  background: #f9f9f9 !important;
  color: var(--tg-text) !important;
}
.tg-home > .nilson-show::after { display: none !important; }
.tg-home > .nilson-show figure {
  max-width: 410px !important;
  margin: 0 !important;
  transform: none !important;
  box-shadow: none !important;
}
.tg-home > .nilson-show > div { align-self: center; }
.tg-home > .nilson-show .nilson-tag {
  display: inline-block;
  margin: 8px 0 22px;
  padding: 7px 10px;
  background: var(--tg-yellow) !important;
  color: var(--tg-text) !important;
  font-family: var(--tg-jost);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
}
.tg-home > .nilson-show .nilson-external-proof {
  margin-top: 28px;
  padding: 15px 0 0;
  border: 0 !important;
  border-top: 1px solid var(--tg-line) !important;
  background: transparent !important;
}
.tg-home > .nilson-show .nilson-external-proof strong { color: var(--tg-muted) !important; }
.tg-home > .nilson-show .nilson-external-proof a { color: var(--tg-text) !important; }

/* Ubuntu: image + copy, white background; no colored brick. */
.tg-home > .nilson-ubuntu {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr) !important;
  gap: clamp(50px, 8vw, 120px) !important;
  min-height: 0 !important;
  padding: 0 max(28px, calc((100vw - 1290px) / 2)) 0 0 !important;
  background: var(--tg-bg) !important;
  color: var(--tg-text) !important;
  border-bottom: 1px solid var(--tg-line);
}
.tg-home > .nilson-ubuntu .nilson-ubuntu__mark {
  min-height: 650px !important;
  padding: 45px !important;
  color: #fff !important;
  font-family: var(--tg-jost) !important;
  font-size: clamp(2.4rem, 4.5vw, 4.6rem) !important;
  line-height: .95 !important;
  background: linear-gradient(0deg, rgba(2,4,11,.75), rgba(2,4,11,.05)), url('/assets/nilson-ubuntu-scene.jpg') center 34% / cover no-repeat !important;
}
.tg-home > .nilson-ubuntu > div:last-child { padding: 95px 0 !important; }
.tg-home > .nilson-ubuntu blockquote {
  margin: 28px 0;
  padding: 0;
  border: 0 !important;
  color: var(--tg-coral) !important;
  font-family: 'Lora', Georgia, serif;
  font-size: clamp(1.5rem, 2.2vw, 2.25rem) !important;
  font-weight: 400;
}

/* Newsletter at the end: TheGig subscribe section, no card. */
.tg-home .nilson-date-alert {
  display: grid !important;
  grid-template-columns: minmax(300px, .7fr) minmax(0, 1.1fr) !important;
  gap: clamp(55px, 8vw, 120px) !important;
  padding: 110px max(28px, calc((100vw - 1290px) / 2)) 120px !important;
  background: var(--tg-bg) !important;
  color: var(--tg-text) !important;
  border: 0 !important;
}
.tg-home .nilson-date-alert::before { display: none !important; }
.tg-home .nilson-date-alert__copy { align-self: center; }
.tg-home .nilson-date-alert__form {
  gap: 18px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--tg-text) !important;
  box-shadow: none !important;
}
.tg-home .nilson-date-alert__fields { gap: 16px; }
.tg-home .nilson-date-alert__form input:not([type='checkbox']) {
  min-height: 56px;
  border: 1px solid var(--tg-line) !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: var(--tg-text) !important;
  font-family: var(--tg-didact);
}
.tg-home .nilson-date-alert__consent {
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: var(--tg-muted) !important;
}
.tg-home .nilson-date-alert__privacy { color: var(--tg-light) !important; }

/* Footer: explicit user direction. */
.nilson-social-strip { display: none !important; }
.nilson-footer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  gap: 45px;
  padding: 65px max(28px, calc((100vw - 1290px) / 2)) !important;
  background: #000 !important;
  color: #fff !important;
  font-family: var(--tg-didact);
}
.nilson-footer .nilson-brand,
.nilson-footer a,
.nilson-footer p,
.nilson-footer button { color: #fff !important; }
.nilson-footer .nilson-brand span { color: var(--tg-yellow) !important; }
.nilson-footer ul { gap: 20px !important; }
.nilson-footer__legal { border-color: rgba(255,255,255,.22) !important; color: rgba(255,255,255,.7) !important; }

@media (max-width: 1100px) {
  .tg-home .nilson-home-schedule__list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .tg-universe-grid { gap: 20px; }
  .tg-home > .nilson-show { gap: 60px !important; }
}

@media (max-width: 820px) {
  .nilson-header { padding: 14px 22px; }
  .nilson-header .nilson-menu-button { border-color: var(--tg-text); color: var(--tg-text); }
  .nilson-nav { background: #fff !important; color: var(--tg-text) !important; }
  .tg-section-heading,
  .tg-manifesto-grid,
  .tg-home > .nilson-show,
  .tg-home > .nilson-ubuntu,
  .tg-home .nilson-date-alert { grid-template-columns: 1fr !important; }
  .tg-section-heading { gap: 18px; }
  .tg-manifesto { padding: 75px 24px 80px; }
  .tg-home .nilson-home-schedule,
  .tg-universes,
  .tg-home .nilson-home-videos { padding: 80px 24px 88px !important; }
  .tg-universe-grid { grid-template-columns: 1fr 1fr; }
  .tg-home .nilson-home-video-grid { min-height: 480px !important; }
  .tg-home > .nilson-show { padding: 80px 24px !important; }
  .tg-home > .nilson-show figure { max-width: 340px !important; }
  .tg-home > .nilson-ubuntu { padding: 0 !important; }
  .tg-home > .nilson-ubuntu .nilson-ubuntu__mark { min-height: 520px !important; }
  .tg-home > .nilson-ubuntu > div:last-child { padding: 75px 24px !important; }
  .tg-home .nilson-date-alert { padding: 80px 24px 90px !important; }
  .nilson-footer { grid-template-columns: 1fr !important; padding: 55px 24px !important; }
}

@media (max-width: 620px) {
  .tg-manifesto h2 { font-size: 2.7rem !important; }
  .tg-home .nilson-home-schedule__list { grid-template-columns: 1fr !important; }
  .tg-home .nilson-home-schedule__row { min-height: 300px !important; }
  .tg-universe-grid { grid-template-columns: 1fr; }
  .tg-universe-card figure { aspect-ratio: 5 / 4; }
  .tg-home .nilson-home-video-grid {
    grid-template-columns: 1fr !important;
    grid-template-rows: repeat(3, 230px) !important;
    min-height: 0 !important;
  }
  .tg-home .nilson-home-video-card:first-child { grid-row: auto !important; }
  .tg-home > .nilson-ubuntu .nilson-ubuntu__mark { min-height: 430px !important; font-size: 2.7rem !important; }
  .tg-home .nilson-date-alert__fields { grid-template-columns: 1fr !important; }
}
