* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-weight: 700;
}

body {
  height: 100%;
  margin: 0;
  background-color: #919191;
  color: #d0ff8e;
  padding: 20px;
}

/* GRID: 6 cols on mobile, 12 cols on desktop */
.grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr)); /* mobile */
  gap: 10px; /* mobile gap */
}

@media (min-width: 768px) {
  .grid {
    grid-template-columns: repeat(12, minmax(0, 1fr)); /* desktop */
    gap: 20px; /* desktop gap */
  }
}

/* Spans */
.col-3 {
  grid-column: span 3;
} /* half width on 6-col mobile, quarter on 12-col desktop */
.col-6 {
  grid-column: span 6;
} /* full width on 6-col mobile, half on 12-col desktop */

/* Mobile default */
#header {
  padding-bottom: 20px;
}

/* Desktop (≥768px) */
@media (min-width: 768px) {
  #header {
    padding-bottom: 30px;
  }
}

/* --- GLOBAL PARAGRAPHS --- */
p,
li {
  font-size: 24px; /* mobile */
  line-height: 100%;
  letter-spacing: -0.64px;
}

@media (min-width: 768px) {
  p,
  li {
    font-size: 40px; /* desktop */
    line-height: 100%;
    letter-spacing: -0.75px;
  }
}

/* --- HEADER PARAGRAPHS --- */
header p {
  font-size: 16px; /* mobile */
  line-height: 100%;
  letter-spacing: -0.24px;
}

@media (min-width: 768px) {
  header p {
    font-size: 21.15px; /* desktop */
    line-height: 90%;
    letter-spacing: -0.64px;
  }
}

.hero-logo {
  width: 100%;
  padding-bottom: 20px;
}

.pb-80 {
  padding-bottom: 80px;
}

.pb-20 {
  padding-bottom: 20px;
}

.mb-200 {
  margin-bottom: 200px;
}

.mb-100 {
  margin-bottom: 100px;
}

@media (min-width: 768px) {
  .hero-logo {
    padding-bottom: 35px; /* desktop */
  }
}

.hero-logo svg {
  display: block; /* removes inline whitespace */
  width: 100%; /* stretch to container */
  height: auto; /* keep proportions */
}

/* Visibility helpers */
.only-mobile {
  display: none;
}
.only-desktop {
  display: block;
}

@media (max-width: 767.98px) {
  .only-mobile {
    display: block;
  }
  .only-desktop {
    display: none;
  }
}

/* Match header paragraph styling */
.only-mobile p {
  font-size: 16px; /* mobile */
  line-height: 100%;
  letter-spacing: -0.04em; /* ~ -4% */
  font-weight: inherit; /* inherits global bold */
}

@media (min-width: 768px) {
  .only-mobile p {
    font-size: 21.15px; /* desktop */
    line-height: 90%;
    letter-spacing: -0.04em;
  }
}

a {
  color: #d0ff8e; /* same as primary text */
  text-decoration: underline;
}

a:hover,
a:focus {
  text-decoration: none; /* optional: remove underline on hover/focus */
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.text-right {
  text-align: right;
}

ul,
li {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Day header */
#shedule .day-head {
  margin-bottom: 12px;
}
#shedule .day-name,
#shedule .day-date {
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.04em;
  font-size: 48px; /* mobile */
}
@media (min-width: 768px) {
  #shedule .day-name,
  #shedule .day-date {
    font-size: 120px;
  } /* desktop big type */
}

/* Table on desktop, cards on mobile */
#shedule .schedule-table {
  display: grid;
  gap: 8px; /* row gutters between cards */
}

/* Row */
#shedule .event {
  display: grid;
  background: #d0ff8e; /* lime card bg */
  color: #919191; /* readable dark-on-lime (vs page gray) */
  border: 2px solid #919191; /* divider look like mock */
  padding: 40px 16px;
  grid-template-columns: 1fr; /* mobile = stacked card */
  row-gap: 1px;
}

/* Cell text scales a bit smaller than main paragraphs */
#shedule .event .time,
#shedule .event .who,
#shedule .event .what {
  font-size: 16px;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

/* Desktop: 3 columns (Time | Speaker | Title) */
@media (min-width: 768px) {
  #shedule .event {
    grid-template-columns: 2fr 5fr 5fr;
    align-items: center;
    row-gap: 0;
  }
  #shedule .event .time,
  #shedule .event .who,
  #shedule .event .what {
    font-size: 18px;
  }
}

/* Optional: tighten title tracking, keep long titles from overflowing */
#shedule .event .what {
  text-transform: none; /* keep quotes/case as entered */
  word-break: break-word;
}

/* If you want mobile header to keep one line spacing */
@media (max-width: 767.98px) {
  #shedule .day-head {
    align-items: baseline;
  }
}

.schedule__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end; /* keeps baseline aligned nicely */
  margin-bottom: 12px;
}

.schedule__day,
.schedule__date {
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.04em;
  font-size: 48px; /* mobile */
}

@media (min-width: 768px) {
  .schedule__day,
  .schedule__date {
    font-size: 120px; /* desktop big */
  }
}

@media (max-width: 767.98px) {
  .time {
    padding-bottom: 40px;
  }
}

@media (max-width: 767.98px) {
  #shedule .event {
    padding: 20px 16px;
  }
}

.custom-kerning {
  letter-spacing: 2px; /* Adjust this value as needed */
}

.floating-btn {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);

  /* match your paragraph styling */
  font-size: 24px; /* mobile default */
  line-height: 100%;
  letter-spacing: -0.64px;
  font-weight: inherit;

  background: #000; /* black background */
  color: #fff; /* white text */
  padding: 20px 32px; /* ⬅️ increased padding */
  border-radius: 50px;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
  z-index: 1000;
}

.floating-btn:hover,
.floating-btn:focus {
  background: #ffffff; /* lime hover */
  color: #000; /* black text on hover */
}

@media (min-width: 768px) {
  .floating-btn {
    font-size: 40px; /* match desktop p */
    letter-spacing: -0.75px;
    padding: 28px 44px; /* ⬅️ more generous on desktop */
  }
}

@media (max-width: 767.98px) {
  .floating-btn.hidden-mobile-end {
    display: none;
  }
}

/* only affect .text-right inside footer */
@media (max-width: 767.98px) {
  footer .text-right {
    text-align: left;
  }
}

@media (min-width: 768px) {
  footer .text-right {
    text-align: right;
  }
}