/* Shared polish overrides */
.hero-title-mobile,
.hero-copy-mobile { display: none; }
.hero-title-desktop,
.hero-copy-desktop { display: block; }

.floating-socials {
  transition: opacity .22s ease, visibility .22s ease;
}
.floating-socials.is-footer-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* Agenda already has a strong page title; keep only the small programming label before cards. */
.agenda-programs { padding-top: 30px; }
.agenda-programs .section-head { margin-bottom: 20px; }
.agenda-programs .section-title,
.agenda-programs .section-note { display: none; }

/* Responsive */
@media (min-width: 700px) {
  .container { width: min(calc(100% - 48px), var(--max)); }
  .about-grid { grid-template-columns: minmax(0, 1.03fr) minmax(320px, .97fr); gap: clamp(34px, 6vw, 78px); }
  .about-photo {
    width: min(100%, 460px);
    min-height: 0;
    aspect-ratio: 3 / 4;
    justify-self: end;
  }
  .about-photo img { object-position: center 42%; }
  .podium { grid-template-columns: repeat(3, 1fr); }
  .podium-card.first { transform: translateY(-8px); }
  .ranking-tools { flex-direction: row; align-items: center; justify-content: space-between; }
  .ranking-tools .search-field { max-width: 420px; }
  .ranking-mobile { display: none; }
  .regulation-grid.two { grid-template-columns: repeat(2, 1fr); }
  .prize-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .house-grid { grid-template-columns: 1.08fr .92fr; }
  .house-photo { min-height: 480px; }
  .location-panel { grid-template-columns: .72fr 1.28fr; align-items: stretch; }
  .location-copy { padding: 26px; }
  .home-location { grid-template-columns: .72fr 1.28fr; align-items: stretch; }
  .home-location-copy { padding: 28px; }
  .events-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cps-hero-grid { grid-template-columns: minmax(320px, .78fr) minmax(0, 1.22fr); }
  .footer-main { grid-template-columns: minmax(180px, .55fr) minmax(0, 1fr); align-items: start; }
  .footer-contact { justify-self: end; width: min(100%, 520px); }
}

@media (min-width: 940px) {
  .site-header { inset: 16px 0 auto; }
  .nav-shell { height: 62px; padding-left: 18px; }
  .nav-logo img { width: 145px; }
  .desktop-nav { display: flex; }
  .menu-btn { display: none; }
  .section { padding: 92px 0; }
  .section-tight { padding: 64px 0; }
  .page-hero { padding: 154px 0 68px; }

  .home-hero-inner {
    width: min(calc(100% - 46px), 1120px);
    padding: 140px 0 180px;
    justify-content: center;
  }
  .home-hero-title {
    max-width: 1100px;
    font-size: clamp(3rem, 4.15vw, 4.7rem);
    line-height: .98;
  }
  .home-hero-copy { max-width: 830px; }

  .program-grid { gap: 20px; }
  .cps-home { min-height: 590px; }
  .events-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .cps-hero-grid { grid-template-columns: minmax(360px, .72fr) minmax(0, 1.28fr); }
  .cps-main-poster { max-height: 690px; }
  .gallery-page .page-hero { padding-bottom: 42px; }
}

@media (max-width: 939px) {
  .home-page .site-header.header-revealed .nav-shell,
  .nav-shell { background: rgba(9, 9, 8, .93); }
  .hero-logo-flight { width: clamp(190px, 45vw, 300px); }
  .program-grid { grid-template-columns: 1fr; }
  .program-card { display: grid; grid-template-columns: minmax(0, 42%) minmax(0, 58%); }
  .program-poster,
  .program-placeholder { height: 100%; min-height: 340px; aspect-ratio: 4 / 5; }
  .program-body { padding: 20px; }
  .program-body h3 { font-size: 1.55rem; }
  .program-specs > div { grid-template-columns: 70px minmax(0, 1fr); padding: 10px 0; }
}

@media (max-width: 699px) {
  .glass,
  .nav-shell,
  .mobile-nav,
  .floating-social { backdrop-filter: none; -webkit-backdrop-filter: none; }
  .section { padding: 66px 0; }
  .section-tight { padding: 48px 0; }

  .hero-title-desktop,
  .hero-copy-desktop { display: none; }
  .hero-title-mobile,
  .hero-copy-mobile { display: block; }

  .hero-logo-flight {
    top: clamp(72px, 9vh, 96px);
  }
  .home-hero-inner {
    min-height: 100svh;
    padding: clamp(250px, 27vh, 320px) 0 84px;
    justify-content: flex-start;
  }
  .home-hero-media img { object-position: 48% 38%; filter: saturate(.74) contrast(1.04) brightness(.60); }
  .home-hero-kicker { margin-bottom: 13px; font-size: .55rem; letter-spacing: .2em; }
  .home-hero-title {
    max-width: 330px;
    font-size: clamp(1.9rem, 8.9vw, 2.28rem);
    line-height: 1.04;
    letter-spacing: -.035em;
  }
  .home-hero-copy {
    max-width: 300px;
    margin-top: 16px;
    font-size: .75rem;
    line-height: 1.55;
  }
  .home-hero-action { min-width: min(100%, 300px); min-height: 48px; margin-top: 20px; }
  .home-about { padding-block: 58px 44px; }
  .about-photo {
    width: min(100%, 380px);
    min-height: 0;
    aspect-ratio: 3 / 4;
    margin-inline: auto;
  }
  .about-photo img { object-position: center 42%; }

  /* Home and CPS program material follows the old official-material strip behavior. */
  .home-page #programacoes .program-grid,
  .cps-program-section .program-grid {
    width: calc(100vw - 14px);
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding: 2px 14px 10px 0;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .home-page #programacoes .program-grid::-webkit-scrollbar,
  .cps-program-section .program-grid::-webkit-scrollbar { display: none; }
  .home-page #programacoes .program-card,
  .cps-program-section .program-card {
    flex: 0 0 min(78vw, 310px);
    display: block;
    scroll-snap-align: start;
  }
  .home-page #programacoes .program-poster,
  .home-page #programacoes .program-placeholder,
  .cps-program-section .program-poster,
  .cps-program-section .program-placeholder {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 5;
  }

  /* Agenda stays vertical but starts immediately after its single small label. */
  .agenda-programs { padding-top: 24px; }
  .agenda-programs .section-head { margin-bottom: 16px; }
  .agenda-programs .program-card { display: block; }
  .agenda-programs .program-poster,
  .agenda-programs .program-placeholder { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 5; }

  .program-body { padding: 20px 18px 22px; }
  .program-body h3 { font-size: 1.65rem; margin-bottom: 16px; }
  .program-specs > div { grid-template-columns: 76px minmax(0, 1fr); }
  .cps-home { min-height: 540px; }
  .cps-home-media img { object-position: 65% 50%; }
  .cps-home::before { background: linear-gradient(180deg, rgba(6, 6, 5, .42), rgba(6, 6, 5, .9) 56%, rgba(6, 6, 5, .98)); }
  .cps-home-copy { align-self: end; padding: 26px 22px 30px; }
  .cps-statement { font-size: clamp(2.1rem, 10.8vw, 3.35rem); line-height: .98; }
  .ranking-table-wrap { display: none; }
  .page-hero { padding: 116px 0 42px; }
  .gallery-page .page-hero { padding-bottom: 30px; }
  .gallery-section { padding-top: 26px; }
  .gallery-intro { margin-bottom: 20px; }
  .cps-callout { min-height: 360px; align-items: end; }
  .cps-callout::after { background: linear-gradient(180deg, rgba(8, 8, 7, .35), rgba(8, 8, 7, .94) 58%, rgba(8, 8, 7, .99)); }
  .cps-callout > img { width: 100%; height: 100%; inset: 0; transform: none; opacity: .28; }
  .cps-callout-title { font-size: clamp(1.95rem, 9.5vw, 2.9rem); line-height: .99; }
  .cps-callout-meta { flex-wrap: wrap; }
  .gallery-grid { gap: 10px; }
  .events-grid { gap: 8px; }

  /* Mobile shortcuts stay out of the left edge and stack vertically for thumb reach. */
  .floating-socials {
    left: auto;
    right: 10px;
    top: auto;
    bottom: 18px;
    transform: none;
    grid-template-columns: 1fr;
    grid-auto-flow: row;
    gap: 8px;
  }
  .floating-social { width: 43px; height: 43px; background: rgba(8, 8, 7, .94); }

  .footer-main { gap: 26px; }
  .footer-logo { width: 132px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .creator-credit { margin-top: 2px; }
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

@media (max-width: 430px) {
  .mobile-nav { grid-template-columns: 1fr; }
  .mobile-meta { flex-direction: column; }
  .hero-logo-flight { width: 190px; top: 72px; }
  .home-hero-inner { padding-top: 240px; }
  .home-hero-title { max-width: 320px; font-size: clamp(1.82rem, 8.7vw, 2.08rem); }
  .home-hero-copy { max-width: 286px; font-size: .72rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  [data-reveal] { opacity: 1; transform: none; }
  .hero-logo-flight { display: none; }
  .home-page .site-header .nav-logo img { opacity: 1; }
}
