/* Hallmark · genre: editorial · macrostructure: Marquee Hero · design-system: design.md · designed-as-app */

html,
body {
  overflow-x: hidden;
}

body {
  background-color: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-weight: 400;
  font-size: var(--text-md);
  line-height: 1.6;
  padding-top: var(--nav-height);
}

::selection {
  background-color: var(--color-accent);
  color: var(--color-accent-ink);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 600;
  color: var(--color-ink);
  letter-spacing: -0.02em;
  line-height: 1.15;
  overflow-wrap: break-word;
  min-width: 0;
}

b,
strong {
  font-family: var(--font-body);
  font-weight: 600;
}

a:focus-visible,
button:focus-visible,
.skip-link:focus {
  outline: 2px solid var(--color-focus);
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: -4rem;
  z-index: 3000;
  background: #eb0028;
  color: #fff;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  text-decoration: none;
  padding: 0.75rem 1rem;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
}

.skip-link:focus {
  top: 0.75rem;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ---------- layout primitives ---------- */

.page-wrap,
main {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

.section {
  padding: var(--space-2xl) var(--space-lg);
}

.section-inner,
.prose {
  max-width: min(var(--measure), 100%);
}

.section-title,
body .description h1,
body .description h1 span,
body .description h2.section-title,
body .mission h1,
body .volunteers h1,
body .opsis h1,
body .pastevents h1,
body .speakers h1 {
  color: var(--color-ink);
  font-size: var(--text-display-s);
  padding: 0;
  margin: 0 0 var(--space-md);
  text-align: left;
  font-style: normal;
}

.section-title::before,
body .page-home .description h1::before,
body .page-home .description h2.section-title::before,
body .page-org .description h1::before,
body .page-org .description h2.section-title::before,
body .page-events .description h1::before,
body .page-talks .description h1::before,
body .page-sponsors .description h1::before {
  content: "";
  display: block;
  width: 2.5rem;
  height: 2px;
  background: var(--color-accent);
  margin-bottom: var(--space-sm);
}

.lede,
.section-kicker {
  color: var(--color-ink);
  font-size: var(--text-lg);
  font-weight: 500;
  margin: 0 0 var(--space-md);
}

body .description p,
body .description ul,
body .description li,
body .supporters p,
body .curators p,
body .opsis p,
body .tickets p,
body .pastevents p {
  font-family: var(--font-body);
  font-size: var(--text-md);
  color: var(--color-ink);
  padding: 0;
  text-align: left;
  max-width: none;
}

body .description {
  background: transparent;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding: var(--space-xl) var(--page-pad);
}

body.page-home main > .description {
  width: min(100%, var(--page-max));
  max-width: var(--page-max);
  margin-inline: auto;
  padding: var(--space-xl) var(--space-lg);
}

body .description + .description {
  padding-top: var(--space-md);
}

body .description-content {
  display: block;
}

body .description-content p,
body .description-content ul,
body .description-content li {
  text-align: left;
}

/* ---------- buttons / links ---------- */

.cta,
.getTickets a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 var(--space-md);
  background: #eb0028;
  color: #ffffff;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  border: 0;
  border-radius: var(--radius-pill);
  transition: background-color var(--dur-short) var(--ease-out);
}

.cta:hover,
.getTickets a:hover,
.nav-center .mobile-cta:hover {
  background: #c40022;
  color: #ffffff;
}

a.cta-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 var(--space-md);
  background: transparent;
  color: var(--color-ink);
  border: 1px solid var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  text-decoration: none;
  border-radius: var(--radius-pill);
}

a.cta-link:hover {
  background: var(--color-ink);
  color: var(--color-paper);
  text-decoration: none;
}

body.ithaka a.cta-link {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

body.ithaka a.cta-link:hover {
  background: var(--color-accent);
  color: var(--color-accent-ink);
}

/* ---------- hero ---------- */

body.page-home .hero {
  position: relative;
  min-height: 0;
  width: 100%;
  height: auto;
  color: var(--color-ink);
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  /* Safari drops a whole background shorthand if one layer fails; cover also
     zooms the 1920×300 doodle strip into a hard disc. */
  background-color: #000;
  background-image:
    linear-gradient(to bottom, rgba(0, 0, 0, 0.55) 0%, #000 62%),
    url("resources/banner.png");
  background-position: 0 0, center top;
  background-repeat: no-repeat;
  background-size: auto, 100% auto;
}

.page-home .hero-content {
  display: grid;
  grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
  align-items: center;
  gap: var(--space-xl);
  width: min(100%, var(--page-max));
  max-width: var(--page-max);
  margin: 0 auto;
  padding: var(--space-xl) var(--space-lg);
}

.page-home .hero-content > * {
  min-width: 0;
  min-height: 0;
}

.page-home .side-image {
  width: min(22rem, 100%);
  max-width: 22rem;
  max-height: 22rem;
  height: auto;
  border-radius: var(--radius-card);
  aspect-ratio: 1 / 1;
  object-fit: cover;
  align-self: center;
}

.page-home .text-block {
  max-width: none;
  padding-bottom: 0;
}

.page-home .text-block h1 {
  font-size: var(--text-display);
  margin: 0 0 var(--space-sm);
  color: var(--color-ink);
}

.page-home .text-block p {
  font-size: var(--text-lg);
  color: var(--color-ink);
  margin: 0 0 var(--space-sm);
  max-width: none;
}

.page-home .hero-date {
  font-size: var(--text-sm) !important;
  color: var(--color-ink-2) !important;
  margin: 0 0 var(--space-md) !important;
}

.page-home .hero-event {
  display: grid;
  grid-template-columns: 7.5rem minmax(0, 1fr);
  gap: var(--space-md);
  align-items: center;
  margin: 0 0 var(--space-lg);
}

.page-home .hero-event .event-poster {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: var(--radius-card);
}

.page-home .hero .countdown,
.page-home .hero #countdown {
  margin: 0;
}

.page-home .hero .countdown[hidden] {
  display: none;
}

.page-home .hero-event:has(.countdown[hidden]) {
  display: none;
}

body.page-home main > .home-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: var(--space-xl) var(--space-2xl);
  align-items: start;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--space-3xl) var(--page-pad);
  border-top: var(--rule);
  border-bottom: var(--rule);
  min-height: min(68vh, 34rem);
}

.page-home .home-intro .lede {
  position: sticky;
  top: calc(var(--nav-height) + var(--space-lg));
  max-width: none;
  margin: 0;
  font-size: clamp(1.65rem, 3vw, 2.6rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.22;
  color: var(--color-ink);
}

.page-home .home-intro .lede::before {
  content: "";
  display: block;
  width: 2.5rem;
  height: 2px;
  background: #eb0028;
  margin-bottom: var(--space-sm);
}

.page-home .home-intro-body {
  margin: 0;
  padding-top: calc(2px + var(--space-sm));
  color: var(--color-ink-2);
  font-size: var(--text-md);
  max-width: 36rem;
}

.page-home .home-close {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl);
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding: 0 var(--space-lg) var(--space-2xl);
  border-top: var(--rule);
}

.page-home .home-close .description {
  width: 100%;
  max-width: none;
  padding: var(--space-xl) 0 0;
}

.page-home .home-close .description p {
  max-width: none;
}

/* ---------- event card / countdown ---------- */

.hero-announcement {
  margin: var(--space-lg) 0 0;
  width: min(100%, 56rem);
  background: transparent;
  color: var(--color-ink);
  display: block;
}

.hero-announcement-content {
  display: grid;
  grid-template-columns: minmax(0, 16rem) minmax(0, 1fr);
  gap: var(--space-lg);
  align-items: center;
  width: 100%;
  padding: var(--space-lg);
  background: var(--color-paper);
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-card);
}

.hero-announcement-content img,
.hero-announcement-content .event-card img,
.event-poster {
  width: 100%;
  height: auto;
  margin: 0;
  border-radius: var(--radius-card);
  object-fit: cover;
}

.hero-announcement-content .event-card {
  align-items: flex-start;
  gap: var(--space-sm);
  padding: 0;
}

.hero-announcement-content h1,
.hero-announcement-content h2,
.hero-announcement-content p,
.hero-announcement-content a {
  font-size: inherit;
  padding: 0;
  text-align: left;
}

.hero-announcement-content h1 {
  font-size: var(--text-2xl);
  margin: 0;
}

.hero-announcement-content a {
  color: var(--color-ink);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid var(--color-accent);
  font-size: var(--text-sm);
}

.hero-announcement-content a:hover {
  color: var(--color-accent);
}

.countdown,
#countdown {
  display: block;
  width: 100%;
  font-family: var(--font-display);
  color: var(--color-ink);
  font-size: var(--text-xl);
  white-space: normal;
  text-align: left;
}

.countdown:has(.count-cell),
#countdown:has(.count-cell) {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-xs);
}

.count-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border-top: 1px solid var(--color-rule);
  padding-top: var(--space-2xs);
}

.count-num {
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.count-label {
  font-size: var(--text-xs);
  color: var(--color-ink-2);
  text-transform: lowercase;
  letter-spacing: 0.06em;
}

/* ---------- stats ---------- */

.stat-row,
.stat-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
  list-style: none;
  padding: 0;
  margin: var(--space-lg) 0 0;
  max-width: none;
}

.stat-row li,
.stat-list li {
  border-top: 1px solid var(--color-rule);
  padding-top: var(--space-sm);
  max-width: none;
}

.stat-row b,
.stat-list b {
  display: block;
  font-size: var(--text-xl);
  color: var(--color-ink);
  margin-bottom: var(--space-3xs);
  white-space: nowrap;
}

.feature-list {
  list-style: none;
  padding: 0;
  margin: var(--space-md) 0 0;
  max-width: 42rem;
}

.feature-list li {
  padding: var(--space-xs) 0;
  border-top: 1px solid var(--color-rule);
  max-width: none;
}

/* ---------- footer ---------- */

footer.site-footer,
footer {
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  padding: var(--space-2xl) var(--page-pad, var(--space-lg)) var(--space-lg);
  text-align: left;
  color: var(--color-ink-2);
  border-top: var(--rule);
  background: var(--color-paper);
}

footer.site-footer a,
footer.site-footer a:visited,
footer.site-footer a:link {
  color: var(--color-ink);
  text-decoration: none;
}

.site-footer-inner,
footer.site-footer #connect {
  display: grid !important;
  grid-template-columns: minmax(12rem, 0.85fr) minmax(16rem, 1.1fr) minmax(16rem, 1.15fr);
  gap: var(--space-xl);
  align-items: start;
  justify-content: stretch;
  flex-direction: unset;
  flex-wrap: unset;
  width: 100%;
  color: var(--color-ink-2);
}

.site-footer-title {
  margin: 0 0 var(--space-2xs);
  font-family: var(--font-display);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-ink);
}

.site-footer-title::before {
  content: "";
  display: block;
  width: 2.5rem;
  height: 2px;
  background: var(--color-accent);
  margin-bottom: var(--space-sm);
}

.site-footer-wordmark {
  margin: 0 0 var(--space-md);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--color-ink);
}

.site-footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2xs);
  list-style: none;
  margin: 0;
  padding: 0 !important;
}

.site-footer-social a {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-card);
  color: var(--color-ink) !important;
  background: transparent;
  transition:
    color var(--dur-short) var(--ease-out),
    border-color var(--dur-short) var(--ease-out),
    background-color var(--dur-short) var(--ease-out);
}

.site-footer-social a:hover,
.site-footer-social a:focus-visible {
  color: var(--color-accent) !important;
  border-color: var(--color-accent);
  background: transparent;
}

.site-footer-social svg {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}

.site-footer-mails {
  list-style: none;
  margin: 0;
  padding: 0 !important;
  display: grid;
  gap: 0;
}

.site-footer-mails li {
  padding: var(--space-sm) 0;
  border-top: 1px solid var(--color-rule);
}

.site-footer-mails li:last-child {
  border-bottom: 1px solid var(--color-rule);
}

.site-footer-mails span {
  display: block;
  margin: 0 0 var(--space-3xs);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-ink-2);
}

.site-footer-mails a {
  display: inline-block;
  max-width: 100%;
  font-size: var(--text-sm);
  line-height: 1.4;
  color: var(--color-ink) !important;
  text-decoration: underline;
  text-decoration-color: var(--color-rule);
  text-underline-offset: 0.18em;
  overflow-wrap: anywhere;
}

.site-footer-mails a:hover,
.site-footer-mails a:focus-visible {
  color: var(--color-accent) !important;
  text-decoration-color: var(--color-accent);
}

.site-footer-map {
  min-width: 0;
}

.site-footer-map-label {
  margin: 0 0 var(--space-xs);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-ink-2);
}

.site-footer-map-frame {
  overflow: hidden;
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-card);
  background: var(--color-paper-2);
}

.site-footer-map-frame iframe,
footer.site-footer iframe {
  display: block;
  width: 100% !important;
  max-width: none;
  height: 14rem;
  min-height: 14rem;
  padding: 0 !important;
  border: 0;
  filter: grayscale(1) contrast(1.05) brightness(0.82);
  pointer-events: auto;
}

.footer-legal {
  margin-top: var(--space-xl);
  padding-top: var(--space-lg);
  border-top: var(--rule);
  max-width: min(48rem, 100%);
  text-align: left;
}

.footer-legal p {
  margin: 0 0 var(--space-xs);
  font-size: var(--text-xs);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.5;
  color: var(--color-ink-2);
}

.footer-legal p:last-child {
  margin-bottom: 0;
}

.footer-legal a,
.footer-legal a:visited {
  color: var(--color-ink) !important;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.footer-legal a:hover {
  color: var(--color-accent) !important;
}

@media (max-width: 1024px) {
  .site-footer-inner,
  footer.site-footer #connect {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .site-footer-map {
    grid-column: 1 / -1;
  }
}

/* ---------- team ---------- */

.page-team .description {
  padding-bottom: 0;
  padding-top: var(--space-lg);
}

.page-team .team.container.mt-5 {
  margin-top: 0 !important;
}

.page-team .description h1,
.page-team .description h1 span,
.page-team .description h2.section-title {
  text-align: left;
  font-size: var(--text-display-s);
  padding: 0;
}

.team.container,
.page-team .team {
  max-width: var(--page-max);
  margin-inline: auto;
  padding-inline: var(--space-lg);
}

.page-team .team.container .team.container {
  max-width: none;
  margin: 0;
  padding: 0;
}

.team h1,
.team h2,
.team .team-names {
  font-size: var(--text-xl);
  color: var(--color-ink);
  text-align: left;
  padding-top: var(--space-lg);
  line-height: 1.2;
}

.team h4 {
  max-width: min(var(--measure), 100%);
  font-size: var(--text-md);
  font-weight: 400;
  color: var(--color-ink-2);
  text-align: left;
  padding: 0;
  margin: var(--space-sm) 0 var(--space-lg);
}

.team .members {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: var(--space-lg);
  padding: 0 0 var(--space-xl);
  align-items: start;
  width: 100%;
}

.team .text-center {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  text-align: left;
}

.team .members img,
.team img.img-fluid,
body.page-team img.img-fluid {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 0;
  padding: 0 !important;
}

.team h5,
.team h6 {
  text-align: left;
  padding: var(--space-2xs) 0 0;
}

.team h5 {
  font-size: var(--text-sm);
  color: var(--color-ink);
}

.team h6 {
  font-size: var(--text-xs);
  color: var(--color-ink-2);
  padding-bottom: 0;
}

.linkedinlink {
  color: var(--color-ink);
  text-decoration: none;
}

.linkedinlink:hover {
  color: var(--color-accent);
}

/* ---------- blog ---------- */

.blog-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16rem;
  gap: var(--space-xl);
  max-width: var(--page-max);
  margin: 0 auto;
  padding: var(--space-xl) var(--space-lg);
  width: 100%;
}

.blog-container main {
  display: flex;
  flex-direction: column;
  flex: unset;
  width: 100%;
}

.blog-container article {
  background: var(--color-paper-2);
  color: var(--color-ink);
  border-radius: var(--radius-card);
  border: var(--rule);
  margin: 0;
  padding: var(--space-lg);
}

.blog-container article p {
  text-align: left;
  font-size: var(--text-md);
  color: var(--color-ink);
}

.blog-container h4 {
  font-size: var(--text-2xl);
  color: var(--color-ink);
}

.blog-container .post-meta {
  color: var(--color-ink-2);
  font-size: var(--text-sm);
}

.blog-container a {
  color: var(--color-accent);
}

.blog-container img,
.blog-container .blog-image,
.blog-container .blog-speaker-image {
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-card);
}

.blog-container aside {
  margin: 0;
  color: var(--color-ink);
  background: var(--color-paper-2);
  border: var(--rule);
  border-radius: var(--radius-card);
  padding: var(--space-md);
  height: auto;
}

.studentTalkSpeaker {
  display: grid;
  grid-template-columns: minmax(0, 14rem) minmax(0, 1fr);
  gap: var(--space-md);
  align-items: start;
  margin-top: var(--space-lg);
  padding-top: var(--space-lg);
  border-top: var(--rule);
}

.studentTalkSpeaker:has(p:first-child) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 14rem);
}

.studentTalkSpeaker:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.studentTalkSpeaker img,
.blog-container .studentTalkSpeaker img {
  width: 100%;
  height: auto;
  margin: 0;
}

/* ---------- sponsors ---------- */

.page-sponsors .description {
  padding-bottom: var(--space-lg);
}

.page-sponsors .periferia h1,
.page-sponsors .periferia h2,
.page-sponsors .moeniaSupporters h1,
.page-sponsors .moeniaSupporters h2,
.page-sponsors .moeniaSupporters2 h1,
.page-sponsors .moeniaSupporters2 h2,
.page-sponsors h1 {
  color: var(--color-ink);
  font-size: var(--text-xl);
  text-align: left;
  padding: var(--space-xl) var(--space-lg) var(--space-md);
}

.page-sponsors .img-periferia,
.page-sponsors .img-moeniaSupporters {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: var(--space-md);
  align-items: center;
  justify-items: center;
  padding: 0 var(--space-lg) var(--space-xl);
}

.page-sponsors .img-periferia {
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}

.page-sponsors .img-periferia img,
.page-sponsors .img-moeniaSupporters img,
.page-sponsors .moeniaSupporters img,
.page-sponsors .moeniaSupporters2 img,
.page-sponsors .img-moeniaSupporters a,
.page-sponsors .moeniaSupporters a {
  width: 100%;
  max-width: none;
  height: auto;
  object-fit: contain;
  padding: 0;
}

.page-sponsors .img-moeniaSupporters a,
.page-sponsors .moeniaSupporters2 a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 7rem;
  padding: var(--space-sm);
  background: var(--color-paper-2);
  border-radius: var(--radius-card);
}

.page-sponsors .img-periferia img {
  background: transparent;
  padding: var(--space-sm);
  min-height: 7rem;
}

.page-sponsors .img-moeniaSupporters img,
.page-sponsors .moeniaSupporters2 img {
  width: 100%;
  height: 4.5rem;
  object-fit: contain;
  background: transparent;
}

.page-sponsors .img-periferia img {
  max-width: none;
  height: 8rem;
}

/* ---------- past events / talks ---------- */

.page-events .description,
.page-talks .description {
  padding-bottom: var(--space-md);
}

#eventTabs {
  top: var(--nav-height);
  background: var(--color-paper);
  border-bottom: var(--rule);
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0;
  padding: 0 var(--space-lg);
}

.event-tabs .nav-link {
  background: transparent;
  color: var(--color-ink-2) !important;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  margin: 0;
  min-height: 48px;
  padding: var(--space-sm) var(--space-md);
}

.event-tabs .nav-link.active {
  background: transparent;
  color: var(--color-ink) !important;
  border-bottom-color: var(--color-accent);
}

.event-tabs .nav-link span.year {
  color: inherit !important;
  font-size: inherit;
  font-weight: inherit;
}

.event-tabs .nav-link.active span.year {
  color: var(--color-accent) !important;
  font-family: var(--font-display);
  font-size: var(--text-sm);
}

.event-tabs .nav-link,
.event-tabs .eventName {
  font-size: var(--text-sm);
  font-weight: 600;
}

.tab-content {
  width: min(100%, var(--page-max));
  margin: 0 auto;
  padding: 0 var(--space-lg) var(--space-2xl);
}

.page-talks #gallery,
.page-talks .talk-gallery,
.page-talks .moenia {
  display: block;
  width: 100%;
  max-width: none;
}

.page-talks .galleryrow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
  padding: var(--space-lg) 0;
  justify-content: stretch;
}

.page-talks .galleryrow iframe,
.page-talks .yt-facade {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  background: var(--color-paper-2);
}

.page-talks .yt-facade {
  position: relative;
  cursor: pointer;
  overflow: hidden;
}

.page-talks .yt-facade img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.page-talks .yt-facade::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 3.5rem;
  height: 2.5rem;
  margin: -1.25rem 0 0 -1.75rem;
  background: #eb0028;
  clip-path: polygon(32% 20%, 32% 80%, 78% 50%);
}

.page-talks .talk-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  min-width: 0;
  margin: 0;
}

.page-talks .talk-card h3 {
  font-size: var(--text-sm) !important;
  font-weight: 600;
  padding: 0 !important;
  margin: 0;
  text-align: left !important;
  color: var(--color-ink);
}

.page-talks .talk-card p {
  font-size: var(--text-sm);
  color: var(--color-ink-2);
  margin: 0;
  padding: 0 !important;
  max-width: none;
  text-align: left;
}

.page-talks .talk-card p:last-child {
  color: var(--color-ink);
}

.page-talks .gallery-heading {
  font-size: var(--text-2xl) !important;
  font-weight: 600;
  color: var(--color-ink) !important;
  text-align: left !important;
  padding: var(--space-xl) 0 var(--space-md) !important;
  margin: 0;
}

.page-talks .gallery-heading::before {
  content: "";
  display: block;
  width: 2.5rem;
  height: 2px;
  background: var(--color-accent);
  margin-bottom: var(--space-sm);
}

.page-events .moenia > div[style*="background-color"],
.page-events div[style*="background-color: #eb0028"] {
  background: transparent !important;
  border-top: 1px solid #eb0028;
  border-bottom: 1px solid #eb0028;
  padding: var(--space-sm) 0 !important;
  margin: 0 0 var(--space-lg) !important;
  width: min(100%, var(--page-max));
  max-width: var(--page-max);
}

.page-events .moenia > div[style*="background-color"] h3,
.page-events div[style*="background-color: #eb0028"] h3 {
  font-size: var(--text-sm) !important;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--color-ink);
  margin: 0;
}

.page-events .speakers-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: var(--space-lg) 0;
}

.page-events .speakers-container > h3.speakers {
  font-size: var(--text-2xl) !important;
  color: var(--color-ink) !important;
  text-align: left;
  padding: 0;
  margin: 0 0 var(--space-md);
}

.page-events .speakers-container > h3.speakers::before {
  content: "";
  display: block;
  width: 2.5rem;
  height: 2px;
  background: #eb0028;
  margin-bottom: var(--space-sm);
}

.page-events .img-moeniaSupporters {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: var(--space-lg);
  width: 100%;
}

.page-events .speaker-img img,
.page-events .img-fluid.rounded {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  border-radius: 0;
}

.page-events iframe,
.page-events video {
  display: block;
  width: min(100%, 40rem);
  aspect-ratio: 16 / 9;
  height: auto;
  margin: var(--space-lg) 0;
}

.page-events hr {
  opacity: 0.25;
  border-color: var(--color-rule);
  max-width: var(--page-max);
}

/* ---------- organization / carousel ---------- */

.page-org .org-content {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  width: 100%;
  max-width: none;
}

.page-org .org-content p {
  max-width: min(var(--measure), 100%);
  align-self: flex-start;
}

.custom-carousel {
  position: relative;
  width: 100%;
  max-width: 42rem;
  height: auto;
  aspect-ratio: 16 / 10;
  margin: var(--space-lg) 0 0;
  overflow: hidden;
  border: var(--rule);
}

.custom-carousel .slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  cursor: pointer;
}

.custom-carousel .info {
  position: absolute;
  left: var(--space-sm);
  bottom: var(--space-sm);
  color: var(--color-ink);
  font-size: var(--text-sm);
  font-weight: 600;
}

.carousel-controls button {
  background: var(--color-paper);
  border: 1px solid var(--color-ink);
  color: var(--color-ink);
  min-width: 48px;
  min-height: 48px;
  border-radius: 0;
}

/* ---------- ithaka ---------- */

body.ithaka {
  background-color: var(--color-paper);
  background-image: url("resources/ithakabg.png");
  background-repeat: repeat-y;
  background-position: top center;
  background-size: 100% auto;
}

body.ithaka .ithaka.description {
  background-image: none;
  background-color: transparent;
}

.ithaka.description {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-image: none;
  background-color: transparent;
  padding: var(--space-2xl) var(--page-pad);
}

.ithaka.description > video {
  width: min(100%, 28rem);
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  border: 0;
  margin: 0 auto var(--space-xl);
  background: transparent;
}

.ithaka.description > p {
  max-width: min(var(--measure), 100%);
  font-family: var(--font-display);
  font-size: var(--text-md);
  text-align: left;
  margin: 0 auto var(--space-2xl);
}

.page-ithaka .speakers-container,
body.ithaka .speakers-container {
  width: min(100%, var(--measure));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-sm);
  padding: var(--space-xl) 0;
  text-align: left;
}

.page-ithaka .speakers-container > h3,
body.ithaka .speakers-container > h3.speakers {
  font-size: var(--text-2xl) !important;
  color: var(--color-accent) !important;
  text-align: left;
  padding: 0;
  margin: 0 0 var(--space-md);
}

.page-ithaka .speakers-container > img,
body.ithaka .speakers-container > img {
  width: min(100%, 18rem) !important;
  max-width: 18rem;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.page-ithaka .speakers-container .img-fluid.rounded,
body.ithaka .speakers-container > img.img-fluid {
  width: min(100%, 18rem);
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 0;
}

.page-ithaka .img-moeniaSupporters,
body.ithaka .img-moeniaSupporters,
body.ithaka .container.img-moeniaSupporters {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: var(--space-lg);
  width: 100%;
}

.custom-tooltip {
  position: relative;
  cursor: pointer;
}

.custom-tooltip .tooltiptext {
  visibility: hidden;
  position: static;
  display: none;
  width: auto;
  max-width: none;
  background: var(--color-paper-2);
  color: var(--color-ink);
  text-align: left;
  padding: var(--space-sm) 0 0;
  border-radius: 0;
  font-size: var(--text-sm);
  line-height: 1.55;
  opacity: 1;
  transform: none;
  left: auto;
  top: auto;
}

.custom-tooltip.is-open .tooltiptext,
.custom-tooltip.open .tooltiptext {
  display: block;
  visibility: visible;
}

.custom-tooltip .tooltiptext::after {
  display: none;
}

body.ithaka .speakers-container h5 {
  color: var(--color-ink);
  font-size: var(--text-sm);
  margin-top: var(--space-xs);
}

body.ithaka .speakers-container h6 {
  color: var(--color-ink-2);
  font-size: var(--text-xs);
}

body.ithaka .moeniaSupporters,
body.ithaka .moeniaSupporters2,
body.ithaka .periferia {
  background: transparent;
}

body.ithaka .img-moeniaSupporters img,
body.ithaka .img-periferia img {
  width: 100%;
  max-width: 12rem;
  height: 6.5rem;
  object-fit: contain;
}

/* ---------- schedule ---------- */

.page-schedule {
  background: var(--color-paper);
  color: var(--color-ink);
  max-width: none;
  margin: 0;
  padding: 0;
}

.page-schedule .schedule-wrap {
  width: min(100%, 46rem);
  margin: 0 auto;
  padding: var(--space-2xl) var(--space-lg);
}

.page-schedule header {
  text-align: left;
  margin-bottom: var(--space-xl);
}

.page-schedule header img {
  width: 9rem;
  height: auto;
}

.page-schedule .opsisTitle {
  font-size: var(--text-display-s);
  color: var(--color-ink);
  margin-top: var(--space-md);
}

.page-schedule section {
  margin: var(--space-xl) 0 var(--space-sm);
  border-bottom: 1px solid var(--color-accent);
  padding: 0 0 var(--space-xs);
}

.page-schedule .session1,
.page-schedule .session2,
.page-schedule .session3 {
  color: var(--color-ink) !important;
  font-size: var(--text-xl);
  letter-spacing: 0.06em;
  font-weight: 600;
}

.page-schedule .event {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  column-gap: var(--space-sm);
  margin: 0;
  padding: var(--space-sm) 0;
  border-left: 0;
  border-top: var(--rule);
}

.page-schedule .event .time {
  grid-row: 1 / span 3;
}

.page-schedule .event .live-badge {
  grid-column: 2;
}

.page-schedule .event.active {
  border-left: 2px solid var(--color-accent);
  padding-left: var(--space-sm);
  background: transparent;
}

.page-schedule .time {
  color: var(--color-accent);
  font-weight: 600;
  margin-right: var(--space-sm);
}

.page-schedule .live-event,
.page-schedule .live-badge {
  background: var(--color-accent);
  color: var(--color-accent-ink);
}

.page-schedule .live-badge {
  display: inline-block;
  padding: 0 var(--space-2xs);
  margin-right: var(--space-2xs);
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
}

.page-schedule footer p {
  color: var(--color-ink-2);
}

/* ---------- motion ---------- */

.fade-in-up-on-scroll {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity var(--dur-med) var(--ease-out) var(--reveal-delay, 0ms),
    transform var(--dur-med) var(--ease-out) var(--reveal-delay, 0ms);
}

.fade-in-up-on-scroll.visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .fade-in-up-on-scroll,
  .fade-in-up-on-scroll.visible {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .nav-center,
  .dropdown-menu,
  .slide {
    transition: none;
  }
}

/* ---------- breakpoints ---------- */

@media (max-width: 768px) {
  .navbar {
    display: grid !important;
    grid-template-columns: 1fr auto;
  }

  .navbar .hamburger {
    display: block !important;
    color: transparent;
    font-size: 0;
    z-index: 1300;
    position: relative;
    justify-self: end;
  }

  body.page-home .hero {
    min-height: 0;
    height: auto;
    background-size: auto, 100% auto;
  }

  .page-home .hero-content {
    grid-template-columns: minmax(0, 1fr);
    text-align: left;
    padding: var(--space-xl) var(--space-md) var(--space-lg);
  }

  .page-home .side-image {
    width: 100%;
    max-width: none;
  }

  .page-home .hero-event {
    grid-template-columns: 5.5rem minmax(0, 1fr);
  }

  .page-home .home-close {
    grid-template-columns: minmax(0, 1fr);
    padding: 0 var(--space-md) var(--space-xl);
  }

  .page-home .stat-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-sm);
  }

  .page-home .stat-list b {
    font-size: var(--text-lg);
    white-space: normal;
  }

  .hero-announcement-content {
    grid-template-columns: minmax(0, 1fr);
    padding: var(--space-md);
  }

  .stat-row,
  .stat-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .site-footer-inner,
  footer.site-footer #connect {
    grid-template-columns: minmax(0, 1fr) !important;
    flex-direction: unset !important;
    gap: var(--space-lg);
  }

  footer.site-footer {
    padding-top: var(--space-xl);
    text-align: left !important;
  }

  .site-footer-map-frame iframe,
  footer.site-footer iframe {
    height: 12.5rem;
    min-height: 12.5rem;
  }

  .blog-container {
    grid-template-columns: minmax(0, 1fr);
    padding: var(--space-lg) var(--space-md);
  }

  .blog-container aside {
    display: none;
  }

  .blog-container article {
    border: 0;
    padding: 0;
    background: transparent;
  }

  .blog-container img,
  .blog-container .blog-image {
    width: 100%;
  }

  .studentTalkSpeaker {
    grid-template-columns: minmax(0, 1fr);
  }

  .team .members,
  .page-events .img-moeniaSupporters {
    grid-template-columns: minmax(0, 1fr);
  }

  body .description,
  body .description h1,
  body .description h2 {
    padding-left: var(--space-md);
    padding-right: var(--space-md);
  }

  body .description {
    padding: var(--space-lg) var(--space-md) !important;
  }

  .studentTalkSpeaker,
  .blog-container {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .page-sponsors .img-periferia,
  .page-sponsors .img-moeniaSupporters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .countdown,
  #countdown {
    font-size: var(--text-lg);
  }

  .page-home .hero-event {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-home .cta-link {
    width: 100%;
  }
}

/* ---------- leftover killers (homestyles) ---------- */

body .description p,
body .description ul,
body .description li,
body .supporters p,
body .curators p,
body .opsis p,
body .tickets p,
body .pastevents p {
  padding: 0 !important;
  text-align: left !important;
  max-width: none;
}

body.page-home .feature-list {
  max-width: 42rem;
}

body .description h1,
body .description h1 span,
body .mission h1,
body .volunteers h1,
body .opsis h1,
body .pastevents h1,
body .speakers h1 {
  padding: 0 !important;
  font-size: var(--text-display-s) !important;
}

body.ithaka .ithaka.description,
body.ithaka .description {
  background-image: none;
  background-color: transparent !important;
}

.page-ithaka .ithaka.description {
  width: 100%;
  max-width: none;
}

.page-ithaka .ithaka.description > p {
  padding: 0 !important;
  max-width: min(var(--measure), 100%);
  overflow-wrap: break-word;
}

.page-sponsors .img-periferia img,
.page-sponsors .img-moeniaSupporters img,
.page-sponsors .img-plat img,
.page-sponsors .img-gold img,
.page-sponsors .img-silver img,
.page-sponsors .img-bronze1 img,
.page-sponsors .img-bronze2 img,
.page-sponsors .img-metafora img,
.page-sponsors .img-diamonh1 img,
.page-sponsors .img-diamonh2 img,
.page-sponsors .img-diamonh3 img,
.page-sponsors .img-diamonh4 img,
.page-sponsors .img-epikoinonia img {
  max-width: 100% !important;
}

/* ---------- layout pass: shared gutters, grids, leftover homestyles ---------- */

:root {
  --page-pad: max(var(--space-lg), calc((100vw - var(--page-max)) / 2 + var(--space-lg)));
}

footer.site-footer {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--space-2xl) var(--page-pad) var(--space-lg);
  background: var(--color-paper);
}

#eventTabs {
  width: 100%;
  justify-content: flex-start !important;
  flex-wrap: nowrap;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  padding: 0 var(--page-pad);
  scrollbar-width: thin;
  max-width: 100%;
}

.event-tabs .nav-item {
  flex: 0 0 auto;
}

.event-tabs .nav-link {
  text-align: left;
}

.tab-content {
  width: 100%;
  max-width: none;
  padding: 0 var(--page-pad) var(--space-2xl);
}

.page-events .moenia > div[style*="background-color"],
.page-events div[style*="background-color: #eb0028"] {
  width: 100%;
  max-width: none;
  margin: 0 0 var(--space-lg) !important;
  padding: var(--space-sm) 0 !important;
}

.page-events .speakers-container {
  width: 100%;
  max-width: none;
}

.page-events .description video,
.page-events video {
  width: min(100%, 36rem) !important;
  max-width: 100%;
}

.page-talks .galleryrow {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  justify-items: stretch;
}

@media (max-width: 1024px) {
  .page-talks .galleryrow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.page-talks .galleryrow iframe,
.page-talks .galleryrow .yt-facade {
  width: 100% !important;
  max-width: none;
  min-width: 0;
  min-height: 0;
  height: auto;
  aspect-ratio: 16 / 9;
  background: var(--color-paper-2);
}

.blog-container .blog-image {
  width: 100%;
  max-width: 22rem;
  justify-self: start;
}

.blog-container .blog-speaker-image,
.blog-container .studentTalkSpeaker img {
  width: 100%;
  max-width: 12rem;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  justify-self: start;
}

.studentTalkSpeaker {
  display: grid;
  grid-template-columns: 12rem minmax(0, 1fr);
  gap: var(--space-md);
  align-items: start;
}

.studentTalkSpeaker:has(p:first-child) {
  grid-template-columns: minmax(0, 1fr) 12rem;
}

.studentTalkSpeaker:first-child {
  grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
}

.studentTalkSpeaker:first-child img,
.studentTalkSpeaker:first-child .blog-image {
  max-width: 22rem;
  aspect-ratio: auto;
  object-fit: contain;
}

body.ithaka .img-moeniaSupporters img,
body.ithaka .container.img-moeniaSupporters img,
.page-ithaka .speakers-container .img-fluid.rounded {
  width: 100% !important;
  max-width: none;
  height: auto !important;
  aspect-ratio: auto;
  object-fit: contain;
  border-radius: 0;
}

body.page-team .team .text-center,
body.page-team .members > * {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
}

.team .members img,
.team img.img-fluid,
body.page-team img.img-fluid {
  height: unset !important;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

body.page-team .team.container {
  max-width: none !important;
  width: 100%;
  padding-inline: var(--page-pad) !important;
}

.page-team .team.container .team.container {
  padding-inline: 0 !important;
}

.page-team .team.container.mt-5 .team.container.mt-5 {
  margin-top: var(--space-xl) !important;
}

body.page-blog .studentTalkSpeaker,
body.page-blog .blog-container {
  width: 100%;
  max-width: none;
}

.blog-container {
  width: 100%;
  max-width: none;
  padding: var(--space-xl) var(--page-pad);
}

.blog-container aside {
  align-self: start;
  position: sticky;
  top: calc(var(--nav-height) + var(--space-md));
}

.page-sponsors .periferia h1,
.page-sponsors .periferia h2,
.page-sponsors .moeniaSupporters h1,
.page-sponsors .moeniaSupporters h2,
.page-sponsors .moeniaSupporters2 h1,
.page-sponsors .moeniaSupporters2 h2 {
  padding: var(--space-xl) 0 var(--space-md) !important;
}

.page-sponsors .img-periferia,
.page-sponsors .img-moeniaSupporters {
  padding-inline: 0;
}

.page-home .hero-content {
  padding-inline: var(--space-lg);
}

.ithaka.description {
  width: 100%;
  padding: var(--space-xl) var(--page-pad) var(--space-2xl);
}

.ithaka.description > video {
  width: min(100%, 24rem);
  margin: 0 auto var(--space-lg);
}

.page-ithaka .ithaka.description .speakers-container,
body.ithaka .ithaka.description .speakers-container {
  width: min(100%, 22rem);
}

.page-ithaka > .speakers-container,
.page-ithaka main > .speakers-container,
body.ithaka > .speakers-container,
body.ithaka main > .speakers-container {
  width: 100%;
  max-width: none;
  padding: var(--space-xl) var(--page-pad);
}

.page-ithaka .img-moeniaSupporters,
body.ithaka .img-moeniaSupporters,
body.ithaka .container.img-moeniaSupporters {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: var(--space-lg);
  width: 100%;
  max-width: none;
  padding: 0;
}

body.ithaka .aigidaOpsis,
body.ithaka .platOpsis,
body.ithaka .goldOpsis,
body.ithaka .silverOpsis,
body.ithaka .bronzeOpsis,
body.ithaka .supportersOpsis {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
  gap: var(--space-md);
  align-items: center;
  justify-items: center;
  width: 100%;
  padding: 0 var(--page-pad) var(--space-xl);
}

body.ithaka .aigidaOpsis img,
body.ithaka .platOpsis img,
body.ithaka .goldOpsis img,
body.ithaka .silverOpsis img,
body.ithaka .bronzeOpsis img,
body.ithaka .supportersOpsis img {
  width: 100% !important;
  max-width: 8.5rem;
  height: 5.5rem !important;
  object-fit: contain;
  background: #ffffff;
  padding: var(--space-2xs);
}

body.ithaka h3[style*="color: #eb0028"] {
  color: var(--color-accent) !important;
  font-size: var(--text-xl) !important;
  width: 100%;
  padding: var(--space-lg) var(--page-pad) var(--space-sm);
  text-align: left;
}

.page-schedule header {
  text-align: left;
}

.page-schedule header img,
.page-schedule .opsisTitle {
  text-align: left;
}

.page-schedule .event {
  align-items: start;
}

.page-schedule .event .time {
  grid-row: 1 / -1;
}

.custom-carousel .slide {
  inset: 0;
  height: 100%;
}

@media (max-width: 768px) {
  :root {
    --page-pad: var(--space-md);
  }

  body .description,
  body .description h1,
  body .description h2 {
    padding-left: 0;
    padding-right: 0;
  }

  body .description {
    padding: var(--space-lg) var(--space-md) !important;
  }

  .page-home .hero-content {
    padding: var(--space-xl) var(--space-md);
  }

  .page-home .home-close .description {
    padding: var(--space-lg) 0 0 !important;
  }

  .team .members,
  .page-events .img-moeniaSupporters,
  .page-ithaka .img-moeniaSupporters,
  body.ithaka .img-moeniaSupporters,
  body.ithaka .container.img-moeniaSupporters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-md);
  }

  body.page-blog .studentTalkSpeaker {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-content: start !important;
  }

  .page-talks .galleryrow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  footer.site-footer,
  .footer-legal,
  .site-footer-mails,
  .site-footer-title,
  .site-footer-wordmark {
    text-align: left;
  }
}

@media (max-width: 480px) {
  .page-sponsors .img-periferia {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-sponsors .img-moeniaSupporters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---------- blog + past events layout ---------- */

body.page-blog .blog-container {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 14rem !important;
  gap: var(--space-xl);
  align-items: start;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--space-xl) var(--page-pad);
}

body.page-blog .blog-container main,
body.page-blog .blog-container article {
  display: block;
  width: 100%;
  background: transparent;
  border: 0;
  border-radius: 0;
  margin: 0;
  padding: 0;
  color: var(--color-ink);
}

body.page-blog .blog-container h1 {
  font-size: var(--text-display-s) !important;
  padding: 0 !important;
  margin: 0 0 var(--space-sm);
}

body.page-blog .post-meta {
  color: var(--color-ink-2);
  font-size: var(--text-sm);
  margin: 0 0 var(--space-lg);
}

body.page-blog .blog-image {
  display: block;
  width: min(100%, 28rem);
  max-width: 100%;
  height: auto;
  margin: 0 0 var(--space-lg);
  border-radius: 0;
}

body.page-blog .blog-content p,
body.page-blog .blog-content li,
body.page-blog .studentTalkSpeaker p {
  max-width: min(var(--measure), 100%);
  font-size: var(--text-md) !important;
  color: var(--color-ink);
  text-align: left;
}

body.page-blog .blog-content h2 {
  font-size: var(--text-xl);
  margin: var(--space-lg) 0 var(--space-sm);
  padding: 0;
}

body.page-blog .blog-meta-list {
  list-style: none;
  padding: 0;
  margin: var(--space-md) 0 var(--space-lg);
  border-top: var(--rule);
}

body.page-blog .blog-meta-list li {
  padding: var(--space-xs) 0;
  border-bottom: var(--rule);
  max-width: min(var(--measure), 100%);
}

body.page-blog .studentTalkSpeaker {
  display: grid !important;
  grid-template-columns: 10rem minmax(0, 1fr) !important;
  gap: var(--space-md);
  align-items: start;
  margin: 0;
  padding: var(--space-lg) 0;
  border-top: var(--rule);
  flex-direction: unset;
}

body.page-blog .studentTalkSpeaker img,
body.page-blog .blog-speaker-image {
  width: 100%;
  max-width: 10rem;
  aspect-ratio: 1;
  object-fit: cover;
  justify-self: start;
}

body.page-blog .studentTalkSpeaker h3 {
  font-size: var(--text-lg);
  margin: 0 0 var(--space-xs);
}

body.page-blog aside {
  position: sticky;
  top: calc(var(--nav-height) + var(--space-md));
  background: transparent;
  border: 0;
  border-top: 1px solid var(--color-accent);
  border-radius: 0;
  padding: var(--space-sm) 0 0;
}

body.page-blog aside h4 {
  font-size: var(--text-sm);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 var(--space-sm);
}

body.page-blog aside ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

body.page-blog aside a {
  color: var(--color-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--color-accent);
}

.page-events .event-tabs,
.page-talks .event-tabs,
#eventTabs.event-tabs {
  align-items: stretch;
}

.page-events .event-tabs .nav-item,
.page-talks .event-tabs .nav-item,
.page-events .event-tabs .nav-link,
.page-talks .event-tabs .nav-link {
  display: flex;
  align-items: center;
  white-space: nowrap;
}

.page-events .eventName,
.page-talks .eventName {
  font-size: var(--text-sm) !important;
  font-weight: 600;
  line-height: 1.2;
}

.page-events .event-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-md);
  width: 100%;
  max-width: none;
  margin: 0 0 var(--space-lg);
  padding: var(--space-sm) 0;
  background: transparent !important;
  border-top: 1px solid var(--color-accent);
  border-bottom: 1px solid var(--color-accent);
}

.page-events .event-meta h3 {
  font-size: var(--text-sm) !important;
  font-weight: 600;
  color: var(--color-ink);
  margin: 0;
  text-align: left;
}

.page-events .tab-content .description {
  width: 100%;
  max-width: none;
  padding: 0 0 var(--space-lg) !important;
}

.page-events .tab-content .description img {
  height: 4.5rem;
  width: auto;
  max-width: 100%;
  margin: 0 var(--space-sm) var(--space-md) 0;
}

.page-events .event-video {
  width: min(100%, 36rem);
  margin: var(--space-lg) 0;
}

.page-events .event-video video,
.page-events .tab-content video {
  display: block;
  width: 100% !important;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

.page-events .speakers-container .container {
  max-width: none !important;
  width: 100%;
  padding: 0;
  margin: 0;
}

.page-events .speaker-img img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain !important;
  background: transparent;
  border-radius: 0;
}

.page-events .speakers-container .img-moeniaSupporters > div:not(.speaker-img) > img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  background: transparent;
}

.page-events .speakers-container h5,
.page-events .speakers-container h6,
#opsis h5,
#moenia h5,
#kinesis h5,
#echoes h5,
#eunoia h5,
#destinations h5,
#opsis h6,
#moenia h6,
#kinesis h6,
#echoes h6,
#eunoia h6,
#destinations h6 {
  text-align: left !important;
  padding: var(--space-2xs) 0 0;
}

.page-events .speakers-container h5 {
  font-size: var(--text-sm);
  color: var(--color-ink);
}

.page-events .speakers-container h6 {
  font-size: var(--text-xs);
  color: var(--color-ink-2);
}

body.page-blog h1,
body.page-blog h2,
body.page-blog h3,
body.page-blog p,
body.page-blog li,
body.page-blog .post-meta,
body.page-blog .studentTalkSpeaker h3 {
  text-align: left !important;
}

body.page-blog .studentTalkSpeaker {
  justify-content: start !important;
  justify-items: start;
  align-items: start !important;
}

body.page-blog .blog-container p,
body.page-blog .blog-container h4 {
  font-size: var(--text-md) !important;
}

body.page-blog aside h4 {
  font-size: var(--text-sm) !important;
}

.page-events main > .description {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--space-xl) var(--page-pad) var(--space-lg);
}

.page-events .event-tabs .nav-link,
.page-talks .event-tabs .nav-link {
  padding-left: 0;
  padding-right: var(--space-md);
}

.page-events .speakers-container {
  scroll-margin-top: calc(var(--nav-height) + 3.5rem);
}

.page-events .speakers-container img {
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
}

@media (max-width: 768px) {
  body.page-blog .blog-container {
    grid-template-columns: minmax(0, 1fr) !important;
    padding: var(--space-lg) var(--space-md) !important;
  }

  body.page-blog .blog-container aside {
    display: none;
  }

  body.page-blog .studentTalkSpeaker {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-content: start !important;
  }

  body.page-blog .studentTalkSpeaker img,
  body.page-blog .blog-speaker-image {
    max-width: 12rem;
    justify-self: start;
  }

  .page-events main > .description {
    padding: var(--space-lg) var(--space-md) var(--space-xl) !important;
  }

  #eventTabs {
    position: static;
    top: auto;
    overflow-x: auto;
  }

  .page-events .event-meta {
    flex-direction: column;
    gap: var(--space-2xs);
  }

  .page-events .img-moeniaSupporters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-talks .galleryrow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-talks .galleryrow iframe,
  .page-talks .galleryrow .yt-facade {
    width: 100% !important;
    max-width: 100%;
    height: auto;
  }

  body.ithaka .ithaka.description {
    padding: var(--space-lg) var(--page-pad) var(--space-xl) !important;
  }

  body.ithaka .ithaka.description > p,
  .page-ithaka .speakers-container,
  body.ithaka .speakers-container {
    width: 100%;
    max-width: 100%;
  }

  .page-ithaka .ithaka.description .speakers-container,
  body.ithaka .ithaka.description .speakers-container {
    width: 100%;
  }

  .page-team .team.container.mt-5 .team.container.mt-5 {
    margin-top: var(--space-lg) !important;
  }

  .site-footer-mails a {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 480px) {
  .team .members,
  .page-events .img-moeniaSupporters,
  .page-ithaka .img-moeniaSupporters,
  body.ithaka .img-moeniaSupporters,
  body.ithaka .container.img-moeniaSupporters {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: var(--space-sm);
  }

  body.ithaka .aigidaOpsis,
  body.ithaka .platOpsis,
  body.ithaka .goldOpsis,
  body.ithaka .silverOpsis,
  body.ithaka .bronzeOpsis,
  body.ithaka .supportersOpsis {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .page-ithaka .speakers-container .img-fluid.rounded,
  body.ithaka .speakers-container > img.img-fluid {
    width: min(100%, 22rem);
    max-width: 22rem;
  }

  .page-schedule .schedule-wrap {
    padding: var(--space-xl) var(--space-md);
  }

  .page-schedule .event {
    grid-template-columns: 3.5rem minmax(0, 1fr);
    gap: var(--space-sm);
  }
}

img,
video,
iframe {
  max-width: 100%;
}

iframe {
  min-width: 0;
}

.container,
.container-fluid {
  max-width: 100%;
}

.page-talks .galleryrow iframe[width],
.page-talks iframe {
  width: 100% !important;
  max-width: 100%;
}

/* ---------- mobile editorial pass ---------- */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

@media (max-width: 768px) {
  body.page-home .hero {
    background-image:
      linear-gradient(to bottom, rgba(0, 0, 0, 0.12) 0%, #000 38%),
      url("resources/banner.png");
    background-size: auto, 170% auto;
    background-position: 0 0, center top;
    background-repeat: no-repeat;
  }

  .page-home .hero-content {
    padding-top: var(--space-2xl);
    gap: var(--space-lg);
  }

  .page-home .side-image {
    width: 100%;
    max-width: none;
    max-height: none;
    margin-bottom: 0;
  }

  .page-home .text-block h1 {
    font-size: var(--text-display);
  }

  .page-home .stat-list,
  .stat-row,
  .stat-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-sm);
  }

  .stat-list li,
  .stat-row li {
    min-width: 0;
  }

  .stat-list b,
  .stat-row b {
    white-space: nowrap;
    font-size: clamp(1.05rem, 4.2vw, var(--text-lg));
  }

  .site-footer-map-frame iframe,
  footer.site-footer iframe {
    width: 100% !important;
    max-width: none;
    height: 12.5rem;
    min-height: 12.5rem;
  }

  .ithaka.description > video {
    width: 100%;
    max-width: 100%;
  }

  .page-ithaka .ithaka.description .speakers-container > img,
  body.ithaka .ithaka.description .speakers-container > img.img-fluid {
    width: 100%;
    max-width: 22rem;
    aspect-ratio: 3 / 4;
    object-fit: cover;
  }

  body.ithaka .aigidaOpsis,
  body.ithaka .platOpsis,
  body.ithaka .goldOpsis,
  body.ithaka .silverOpsis,
  body.ithaka .bronzeOpsis,
  body.ithaka .supportersOpsis {
    grid-template-columns: repeat(auto-fit, minmax(5.75rem, 1fr)) !important;
    justify-items: stretch;
  }

  body.ithaka .aigidaOpsis img,
  body.ithaka .platOpsis img,
  body.ithaka .goldOpsis img,
  body.ithaka .silverOpsis img,
  body.ithaka .bronzeOpsis img,
  body.ithaka .supportersOpsis img {
    width: 100% !important;
    max-width: none;
    height: 4.25rem !important;
  }

  .page-sponsors .img-periferia img,
  .page-sponsors .img-moeniaSupporters img,
  .img-periferia img,
  .img-plat img,
  .img-gold img,
  .img-silver img,
  .img-bronze1 img,
  .img-bronze2 img,
  .img-metafora img,
  .img-diamonh1 img,
  .img-diamonh2 img,
  .img-diamonh3 img,
  .img-diamonh4 img,
  .img-moeniaSupporters img,
  .img-epikoinonia img {
    max-width: 100% !important;
  }

  body.page-blog .blog-image {
    width: 100%;
    max-width: 100%;
  }

  .custom-carousel {
    max-width: 100%;
    aspect-ratio: 16 / 10;
    height: auto;
  }

  .page-org .org-content {
    width: 100%;
    max-width: none;
    padding-inline: 0;
    align-items: stretch;
  }
}

@media (max-width: 480px) {
  body.ithaka .aigidaOpsis,
  body.ithaka .platOpsis,
  body.ithaka .goldOpsis,
  body.ithaka .silverOpsis,
  body.ithaka .bronzeOpsis,
  body.ithaka .supportersOpsis {
    grid-template-columns: repeat(auto-fit, minmax(5.5rem, 1fr)) !important;
  }
}

/* Team page: page title sits directly on the first group */
body.page-team .description {
  padding: var(--space-lg) var(--page-pad) 0 !important;
}

body.page-team .description .section-title {
  margin-bottom: var(--space-md);
}

body.page-team main > .team.container.mt-5 {
  margin-top: 0 !important;
  padding-top: 0;
}

body.page-team main > .team.container > .team-names:first-of-type {
  padding-top: 0;
}

body.page-team .team h2.team-names,
body.page-team h2.team-names {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  width: 100%;
  margin: var(--space-lg) 0 var(--space-sm);
  padding: var(--space-sm) 0 0;
  border-top: 1px solid var(--color-rule);
  text-align: left !important;
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--color-ink);
  line-height: 1.2;
}

body.page-team main > .team.container > h2.team-names:first-of-type {
  margin-top: 0;
  padding-top: var(--space-xs);
}

body.page-team .team h2.team-names::before {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  flex: 0 0 auto;
  background: #eb0028;
}

body.page-team .team h2.team-names::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  min-width: 1.5rem;
  background: var(--color-rule);
}

body.page-team .team h4 {
  text-align: left !important;
}

@media (max-width: 768px) {
  body.page-home main > .home-intro {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-lg);
    min-height: 0;
    padding: var(--space-2xl) var(--page-pad) !important;
  }

  .page-home .home-intro .lede {
    position: static;
    font-size: clamp(1.55rem, 7.2vw, 2.05rem);
  }

  .page-home .home-intro-body {
    padding-top: 0;
  }
}
