/* Transparent grouping keeps the established mobile geometry unchanged. */
.agrft-footer__social-group,
.agrft-footer__contact-group,
.agrft-footer__meta-group {
  display: contents;
}

/* Programme keeps the reversed footer palette in every layout. */
.agrft-view-program .agrft-footer {
  background: var(--agrft-white);
}

.agrft-view-program .agrft-footer__teeth {
  background: var(--agrft-grey);
}

/* Keep the mobile sheet itself as the only scroll container. */
.agrft-dialog-layer {
  overflow-y: hidden;
}

.agrft-dialog,
.agrft-dialog-layer .agrft-dialog {
  height: 100dvh;
  min-height: 0;
  max-height: 100dvh;
  overflow-y: auto;
}

.agrft-reservation {
  height: auto;
  min-height: 0;
}

@media (max-width: 1279px) {
  .agrft-gallery-carousel .agrft-carousel-arrow {
    display: none;
  }
}

/* Keep mobile programme jumps in three stable WebKit compositing layers. */
@media (max-width: 767px) {
  .agrft-featured__inner,
  .agrft-featured__card {
    background: var(--agrft-violet);
  }

  .agrft-featured__description,
  .agrft-featured__media {
    display: none;
  }

  .agrft-card.agrft-card--featured {
    color: var(--agrft-white);
    background: var(--agrft-pink);
  }

  .agrft-card--featured :is(.agrft-card__date, .agrft-card__type, .agrft-card__venue, .agrft-card__venue-link, .agrft-card__time) {
    color: var(--agrft-white);
  }

  .agrft-card.agrft-card--featured h3 {
    color: var(--agrft-white);
  }

  .agrft-card--featured .agrft-card__date > span[aria-hidden],
  .agrft-card--featured .agrft-card__venue.has-location::before {
    background: var(--agrft-white);
  }

  .agrft-card--featured .agrft-card__badge.is-muted,
  .agrft-card--featured .agrft-card__badge.agrft-no-reservation {
    color: var(--agrft-white);
    background: transparent;
    border: 0;
  }

  .agrft-search-dock,
  .agrft-js .agrft-occurrence-dock {
    border-right: 0;
    border-left: 0;
  }

  .agrft-view-program .agrft-header,
  .agrft-view-program .agrft-days,
  .agrft-view-program .agrft-program__list {
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    isolation: isolate;
  }

  .agrft-view-program .agrft-program__list {
    position: relative;
    z-index: 0;
  }
}

@media (max-width: 360px) {
  .agrft-header:not(.agrft-header--home)::before {
    background-size: 110px auto;
  }

  .agrft-header__brand {
    left: 50%;
    width: 110px;
    transform: translateX(-50%);
  }
}

@media (min-width: 768px) {
  :root {
    --agrft-nav-max: 1088px;
    --agrft-program-max: 812px;
    --agrft-event-max: 812px;
    --agrft-copy-max: 536px;
    --agrft-gallery-max: 1038px;
    --agrft-page-gutter: 16px;
    --agrft-card-height: max(409px, 22.722222rem);
  }

  .agrft-stage {
    display: block;
  }

  .agrft-column {
    width: calc(100vw - 2 * var(--agrft-page-gutter));
    margin-inline: auto;
    overflow: visible;
  }

  .agrft-rail {
    display: none;
  }

  .agrft-header {
    background-image: none;
  }

  .agrft-header::before {
    background-position: center 23px !important;
    background-size: 150px 50px !important;
  }

  .agrft-header--home {
    /* Match the desktop JS state before its first run to prevent a 24px paint shift. */
    --agrft-home-mark-offset: 0px;
    margin-bottom: 0;
    overflow: visible;
  }

  .agrft-header__inner,
  .agrft-hero__nav,
  .agrft-hero__nav.is-docked {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(90px, max-content) 150px minmax(90px, max-content) minmax(0, 1fr);
    column-gap: clamp(24px, 2vw, 32px);
    align-items: center;
    width: min(calc(100vw - 2 * var(--agrft-page-gutter)), var(--agrft-nav-max));
    height: var(--agrft-header);
    margin-inline: auto;
  }

  .agrft-header__inner {
    position: relative;
  }

  .agrft-header__brand {
    position: relative;
    left: auto;
    top: auto;
    grid-column: 3;
    width: 150px;
    height: 48px;
    justify-self: center;
    align-self: start;
    margin-top: 24px;
  }

  .agrft-header__program,
  .agrft-header__contact,
  .agrft-hero__nav a,
  .agrft-hero__nav.is-docked a {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    max-width: none;
    align-self: start;
    margin-top: var(--agrft-header-link-top);
    overflow-wrap: normal;
    white-space: nowrap;
  }

  .agrft-header__program,
  .agrft-hero__program,
  .agrft-hero__nav.is-docked .agrft-hero__program {
    grid-column: 2;
    justify-self: end;
  }

  .agrft-hero__nav.is-docked .agrft-hero__program {
    left: auto;
  }

  .agrft-header__contact,
  .agrft-hero__contact,
  .agrft-hero__nav.is-docked .agrft-hero__contact {
    grid-column: 4;
    justify-self: start;
  }

  .agrft-hero__nav.is-docked .agrft-hero__contact {
    right: auto;
  }

  .agrft-hero__nav,
  .agrft-hero__nav.is-docked {
    position: fixed;
    top: var(--agrft-admin-bar-offset);
    left: 50%;
    z-index: 41;
    padding: 0;
    transform: translateX(-50%);
    pointer-events: none;
  }

  .agrft-hero__nav a,
  .agrft-hero__nav.is-docked a {
    pointer-events: auto;
  }

  .agrft-hero__nav-slot {
    grid-column: 1 / -1;
    grid-row: 1;
    height: 0;
  }

  .agrft-expanded-nav .agrft-header__inner,
  .agrft-expanded-nav .agrft-hero__nav,
  .agrft-expanded-nav .agrft-hero__nav.is-docked {
    grid-template-rows: 72px minmax(0, 1fr);
    align-items: start;
  }

  .agrft-expanded-nav .agrft-header__brand {
    grid-row: 1;
    align-self: center;
    margin-top: 0;
  }

  .agrft-expanded-nav .agrft-header__program,
  .agrft-expanded-nav .agrft-header__contact,
  .agrft-expanded-nav .agrft-hero__nav a,
  .agrft-expanded-nav .agrft-hero__nav.is-docked a {
    grid-row: 2;
    top: auto;
    align-self: start;
    margin-top: 0;
  }

  .agrft-home-lead {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    width: min(100%, var(--agrft-program-max));
    margin-inline: auto;
  }

  .agrft-home-lead > .agrft-hero,
  .agrft-home-lead > .agrft-intro {
    display: contents;
  }

  .agrft-hero > img {
    position: relative;
    z-index: auto;
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    aspect-ratio: 1;
  }

  .agrft-intro h1 {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    min-height: 0;
    aspect-ratio: 1;
    padding: 24px;
    font-size: clamp(42px, 5vw, 60px);
    white-space: nowrap;
  }

  .agrft-intro__range-group {
    gap: 8px;
  }

  .agrft-intro__directions {
    width: 100%;
    margin-top: 0;
  }

  .agrft-intro__body {
    display: flex;
    grid-column: 1 / -1;
    grid-row: 2;
    flex-direction: column;
    justify-content: center;
    min-height: 252px;
    background: var(--agrft-grey);
  }

  .agrft-intro__copy,
  .agrft-intro__welcome {
    width: min(100%, var(--agrft-copy-max));
    height: auto;
    min-height: 0;
    margin-inline: auto;
    background: transparent;
  }

  .agrft-intro__copy {
    padding: 32px 24px 0;
  }

  .agrft-intro__welcome {
    padding: 24px 24px 32px;
  }

  .agrft-upcoming__track {
    align-items: stretch;
    gap: 16px;
    width: min(100%, var(--agrft-program-max));
    height: auto;
    margin-inline: auto;
  }

  .agrft-featured__inner {
    width: min(100%, var(--agrft-program-max));
    margin-inline: auto;
  }

  .agrft-featured__card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
  }

  .agrft-featured__description {
    border-top: 0;
  }

  .agrft-card--featured .agrft-card__date > span[aria-hidden] {
    display: none;
  }

  .agrft-empty-state--carousel,
  .agrft-program__list--empty .agrft-empty-state--program {
    width: min(100%, var(--agrft-program-max));
    margin-inline: auto;
  }

  .agrft-empty-state--carousel {
    min-height: var(--agrft-card-height);
  }

  .agrft-upcoming__track::after {
    display: none;
  }

  .agrft-upcoming__slide {
    display: flex;
    flex: 0 0 calc((100% - 16px) / 2);
  }

  .agrft-upcoming__slide:not(:last-child)::after {
    right: -8px;
  }

  .agrft-upcoming .agrft-card,
  .agrft-program__list .agrft-card,
  .agrft-card.agrft-card--featured,
  .agrft-featured__description {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: var(--agrft-card-height);
    min-height: var(--agrft-card-height);
  }

  .agrft-upcoming .agrft-card h3,
  .agrft-program__list .agrft-card h3,
  .agrft-card--featured h3 {
    display: -webkit-box;
    height: calc(7.5rem + 5px);
    min-height: calc(7.5rem + 5px);
    max-height: calc(7.5rem + 5px);
    margin: 0 -4px 16px;
    padding: 0 4px 5px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .agrft-upcoming .agrft-card__venue,
  .agrft-card--featured .agrft-card__venue {
    margin-top: 0;
  }

  .agrft-upcoming .agrft-card__time,
  .agrft-card--featured .agrft-card__time {
    margin-top: auto;
    margin-bottom: 0;
  }

  .agrft-program__list .agrft-card__time {
    margin-top: auto;
  }

  .agrft-program__list .agrft-card__summary {
    max-height: calc(2rem + 18px);
    overflow: hidden;
  }

  .agrft-all-events,
  .agrft-upcoming__note {
    width: min(100%, var(--agrft-copy-max));
    margin-inline: auto;
  }

  .agrft-days {
    width: 100%;
    margin-inline: auto;
    padding-left: 0;
    justify-content: center;
  }

  .agrft-program__list {
    width: min(calc(100% - 2 * var(--agrft-page-gutter)), var(--agrft-program-max));
    margin-inline: auto;
    padding-top: 16px;
    padding-inline: 0;
  }

  .agrft-view-program .agrft-program,
  .agrft-view-program .agrft-program__list {
    background: var(--agrft-grey);
  }

  .agrft-program__day {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .agrft-program__day + .agrft-program__day {
    margin-top: 16px;
  }

  .agrft-program__date-title,
  .agrft-program__day > .agrft-empty-state {
    grid-column: 1 / -1;
  }

  .agrft-program__date-title {
    margin-bottom: 0;
  }

  .agrft-program__list .agrft-card {
    margin: 0;
  }

  .agrft-event-nav {
    width: min(calc(100vw - 2 * var(--agrft-page-gutter)), var(--agrft-event-max));
    margin-inline: auto;
  }

  .agrft-event__intro,
  .agrft-event__content,
  .agrft-event > .agrft-empty-state--event {
    width: min(100%, var(--agrft-copy-max));
    margin-inline: auto;
  }

  .agrft-event__intro h1 {
    font-size: 60px;
  }

  .agrft-gallery {
    width: min(calc(100vw - 2 * var(--agrft-page-gutter)), var(--agrft-gallery-max));
    margin-inline: auto;
    padding-inline: 0;
    scroll-padding-inline: 0;
  }

  .agrft-gallery figure {
    flex: 0 0 min(var(--agrft-gallery-width, 330px), 100%);
  }

  .agrft-gallery-carousel .agrft-carousel-arrow--previous {
    left: max(0px, calc((100% - min(calc(100vw - 2 * var(--agrft-page-gutter)), var(--agrft-gallery-max))) / 2 - 64px));
  }

  .agrft-gallery-carousel .agrft-carousel-arrow--next {
    right: max(0px, calc((100% - min(calc(100vw - 2 * var(--agrft-page-gutter)), var(--agrft-gallery-max))) / 2 - 64px));
  }

  .agrft-event-schedule {
    width: min(100%, var(--agrft-copy-max));
    margin-inline: auto;
  }

  .agrft-related {
    width: min(100%, var(--agrft-copy-max));
    margin-inline: auto;
  }

  .agrft-js .agrft-occurrence-dock {
    width: min(calc(100vw - 2 * var(--agrft-page-gutter)), var(--agrft-event-max));
  }

  .agrft-dialog-layer {
    place-items: center;
    padding: 0 24px;
    overflow-y: auto;
  }

  .agrft-dialog,
  .agrft-dialog-layer .agrft-dialog {
    width: min(100%, var(--agrft-copy-max));
    height: auto;
    min-height: 0;
    max-height: 100dvh;
    overflow-y: auto;
  }

  .agrft-dialog__header {
    min-height: 330px;
    background-size: 536px auto;
  }

  .agrft-reservation {
    display: flex;
    flex-direction: column;
    gap: 12px;
    height: auto;
    min-height: 0;
    padding: 18px 24px 24px;
  }

  .agrft-basic-page {
    width: min(100%, var(--agrft-event-max));
    margin-inline: auto;
  }

  .agrft-search-dock {
    width: min(calc(100vw - 2 * var(--agrft-page-gutter)), var(--agrft-event-max));
    background: var(--agrft-grey);
  }

}

@media (min-width: 768px) and (max-width: 1279px) {
  .agrft-featured__media {
    display: block;
    order: 2;
    height: var(--agrft-card-height);
    min-height: var(--agrft-card-height);
  }

  .agrft-card.agrft-card--featured {
    display: flex;
    order: 1;
  }

  .agrft-featured__description {
    display: none;
  }

  .agrft-featured__media::after {
    display: block;
  }

  .agrft-footer__teeth {
    -webkit-mask-repeat: repeat-x;
    mask-repeat: repeat-x;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .agrft-column {
    width: 100%;
  }

  .agrft-view-home .agrft-footer,
  .page-template-page-dostopnost .agrft-footer {
    width: 100vw;
    margin-inline: calc(50% - 50vw);
  }

  .agrft-view-event .agrft-stage,
  .page-template-page-dostopnost .agrft-stage {
    background: var(--agrft-white);
  }

  .agrft-view-event .agrft-column,
  .page-template-page-dostopnost .agrft-column {
    box-shadow: none;
  }

  .agrft-view-program .agrft-column {
    width: 100%;
  }
}

@media (min-width: 1024px) {
  :root {
    --agrft-page-gutter: 24px;
  }

  .agrft-column {
    width: 100vw;
  }

  .agrft-footer__nav {
    gap: 24px;
  }
}

@media (min-width: 1280px) {
  :root {
    --agrft-program-max: 1226px;
  }

  /* Short event pages end the first viewport at the foot of the footer teeth. */
  .agrft-view-event .agrft-event {
    min-height: max(0px, calc(100svh - var(--agrft-admin-bar-offset) - var(--agrft-header) - 195px));
  }

  .agrft-home-lead {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(100%, var(--agrft-program-max));
  }

  .agrft-upcoming__slide {
    flex-basis: calc((100% - 32px) / 3);
  }

  .agrft-featured__card {
    grid-template-columns:
      calc((100% - 8px) / 3)
      calc((100% + 16px) / 3)
      calc((100% - 8px) / 3);
  }

  .agrft-featured__media {
    display: block;
    order: 3;
    height: var(--agrft-card-height);
    min-height: var(--agrft-card-height);
  }

  .agrft-featured__description {
    order: 2;
    align-items: center;
    justify-content: center;
    padding-block: 0;
    padding-inline: 40px;
  }

  .agrft-featured__media::after {
    display: block;
  }

  .agrft-featured__summary {
    width: 100%;
    max-height: 100%;
    min-height: 4.2rem;
    overflow: hidden;
    font-size: 1.166667rem;
    line-height: 1.4rem;
  }

  .agrft-card.agrft-card--featured {
    order: 1;
  }

  .agrft-intro h1 {
    grid-column: 1;
    grid-row: 1;
    font-size: 60px;
  }

  .agrft-hero > img {
    grid-column: 2;
    grid-row: 1;
  }

  .agrft-intro__body {
    grid-column: 3;
    grid-row: 1;
    min-height: 0;
    aspect-ratio: 1;
  }

  .agrft-intro__copy,
  .agrft-intro__welcome {
    width: 100%;
    padding-inline: 40px;
  }

  .agrft-intro__copy {
    padding-top: 0;
  }

  .agrft-intro__welcome {
    padding-top: 24px;
    padding-bottom: 0;
  }

  .agrft-program__day {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .agrft-footer {
    display: grid;
    grid-template-columns: 260px minmax(0, 536px) 260px;
    gap: 24px 16px;
    height: auto;
    min-height: 0;
    padding: 222px max(var(--agrft-page-gutter), calc((100% - var(--agrft-nav-max)) / 2)) 40px;
    overflow: hidden;
    text-align: left;
  }

  .agrft-footer__teeth {
    -webkit-mask-repeat: repeat-x;
    mask-repeat: repeat-x;
  }

  .agrft-footer__logo,
  .agrft-footer hr:first-of-type,
  .agrft-footer__editor-row {
    grid-column: 1 / -1;
  }

  .agrft-footer__logo {
    grid-row: 1;
    justify-self: center;
    width: 200px;
    height: 90px;
    margin: 0;
  }

  .agrft-footer hr {
    position: static;
    width: 100%;
    margin: 0;
  }

  .agrft-footer hr:first-of-type {
    grid-row: 2;
  }

  .agrft-footer hr:nth-of-type(2),
  .agrft-footer hr:nth-of-type(3) {
    display: none;
  }

  .agrft-footer__social-group,
  .agrft-footer__contact-group,
  .agrft-footer__meta-group {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .agrft-footer__social-group {
    grid-column: 3;
    grid-row: 3;
    align-items: flex-end;
    text-align: right;
  }

  .agrft-footer__contact-group {
    grid-column: 2;
    grid-row: 3;
    text-align: center;
  }

  .agrft-footer__meta-group {
    grid-column: 1;
    grid-row: 3;
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left;
  }

  .agrft-footer .agrft-footer__follow,
  .agrft-footer .agrft-footer__social,
  .agrft-footer .agrft-footer__reservation,
  .agrft-footer .agrft-footer__question,
  .agrft-footer .agrft-footer__email,
  .agrft-footer .agrft-footer__copyright,
  .agrft-footer__nav {
    position: static;
  }

  .agrft-footer__nav {
    flex-wrap: nowrap;
    margin-bottom: 0;
    white-space: nowrap;
  }

  .agrft-footer__nav--reservation {
    order: 1;
    margin-bottom: 24px;
  }

  .agrft-footer .agrft-footer__copyright {
    order: 2;
  }

  .agrft-footer__university-logo {
    order: 3;
  }

  .agrft-footer__nav--legal {
    order: 4;
    margin-top: 10px;
    font-size: .777778rem;
    line-height: .933333rem;
  }

  .agrft-footer .agrft-footer__copyright {
    margin-top: 0;
  }

  .agrft-footer .agrft-footer__email {
    margin-bottom: 0;
  }

  .agrft-footer .agrft-footer__editor-row {
    grid-row: 4;
    justify-self: center;
    width: 100%;
    margin-top: 2px;
    text-align: center;
  }

  .agrft-footer__university-logo {
    align-self: flex-start;
    margin-top: 12px;
  }
}

/* Keep the established desktop home header when browser zoom shortens the viewport. */
@media (min-width: 768px) and (max-height: 480px) {
  .agrft-header.agrft-header--home {
    display: block;
    position: sticky;
    top: var(--agrft-admin-bar-offset);
  }
}

@media print {
  .agrft-view-event .agrft-event {
    min-height: 0;
  }

  .agrft-column,
  .agrft-basic-page,
  .agrft-event__intro,
  .agrft-event__content {
    width: 100%;
    max-width: none;
  }
}
