.event-detail-hero {
position: relative;
overflow: hidden;
padding: 62px 0 88px;
color: #fff;
background: var(--navy);
}
.event-detail-hero::after {
content: "";
position: absolute;
right: -110px;
bottom: -190px;
width: 420px;
height: 420px;
border-radius: 50%;
background: rgba(22, 132, 197, .18);
}
.event-title-wrap {
position: relative;
z-index: 1;
max-width: 1050px;
}
.event-detail-meta {
display: flex;
align-items: center;
gap: 15px;
margin-top: 34px;
font-size: 11px;
font-weight: 900;
letter-spacing: .08em;
text-transform: uppercase;
}
.event-detail-meta span {
padding: 8px 11px;
border-radius: 8px;
color: var(--ink);
background: var(--yellow);
}
.event-detail-meta time {
color: rgba(255, 255, 255, .65);
}
.event-detail-hero h1 {
max-width: 920px;
margin: 23px 0 25px;
font-size: clamp(58px, 6.4vw, 90px);
line-height: .98;
letter-spacing: -.06em;
font-weight: 600;
color: #fff;
}
.event-detail-hero .event-title-wrap > p {
max-width: 730px;
margin: 0;
color: rgba(255, 255, 255, .68);
font-size: 18px;
line-height: 1.7;
}
.event-detail-section {
background: #fff;
}
.event-poster {
display: grid;
place-items: center;
min-height: 580px;
margin: 0 0 42px;
padding: 28px;
overflow: hidden;
border-radius: 28px;
background: #f0ede6;
cursor: zoom-in;
}
.event-poster img {
display: block;
width: 100%;
max-height: 900px;
object-fit: contain;
border-radius: 18px;
}
.event-facts {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
margin-bottom: 46px;
}
.event-facts > div {
min-height: 180px;
display: flex;
flex-direction: column;
justify-content: space-between;
padding: 28px;
border-radius: 22px;
background: #e8f1f7;
}
.event-facts > div:last-child {
background: var(--yellow);
}
.event-facts span {
color: var(--blue-text);
font-size: 14px;
font-weight: 900;
letter-spacing: .12em;
text-transform: uppercase;
}
.event-facts > div:last-child span {
color: #8a7000;
}
.event-facts strong,
.event-facts small {
display: block;
}
.event-facts strong {
margin-top: 10px;
font-size: 22px;
line-height: 1.25;
}
.event-facts small {
margin-top: 8px;
color: var(--soft-ink);
font-size: 16px;
line-height: 1.5;
}
.event-facts small a {
color: inherit;
font-weight: 700;
text-decoration: underline;
}
.event-actions {
display: flex;
align-items: center;
gap: 26px;
margin-top: 42px;
padding-top: 34px;
border-top: 1px solid #e4e7e8;
}
.event-calendar-link {
display: inline-flex;
align-items: center;
gap: 8px;
color: var(--ink);
font-size: 13px;
font-weight: 900;
text-decoration: none;
}
.events-list {
display: grid;
gap: 22px;
}
.event-card {
position: relative;
display: grid;
grid-template-columns: 122px minmax(0, 1fr) 54px;
gap: 32px;
align-items: center;
min-height: 245px;
padding: 34px 34px 34px 28px;
border-radius: 28px;
background: #fff;
box-shadow: 0 22px 55px rgba(22, 55, 75, .08);
color: var(--ink);
text-decoration: none;
transition: transform 220ms ease, box-shadow 220ms ease;
}
.event-card:hover {
transform: translateY(-5px);
box-shadow: 0 28px 65px rgba(22, 55, 75, .13);
}
.event-date {
min-height: 150px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
border-radius: 21px;
color: #fff;
background: var(--blue-strong);
}
.event-card-2 .event-date {
color: var(--ink);
background: var(--yellow);
}
.event-date strong {
font-size: 29px;
line-height: 1;
letter-spacing: -.045em;
}
.event-date span {
margin-top: 10px;
font-size: 11px;
font-weight: 900;
letter-spacing: .12em;
}
.event-category {
margin: 0 0 11px;
color: var(--blue-text);
font-size: 11px;
font-weight: 900;
letter-spacing: .12em;
text-transform: uppercase;
}
.event-card-2 .event-category {
color: #14823a;
}
.event-copy h3 {
margin: 0 0 12px;
font-size: clamp(26px, 2.5vw, 35px);
line-height: 1.12;
letter-spacing: -.045em;
}
.event-copy > p:not(.event-category) {
margin: 0 0 20px;
color: var(--soft-ink);
font-size: 14px;
line-height: 1.65;
}
.event-details {
display: flex;
flex-wrap: wrap;
gap: 9px 22px;
color: var(--ink);
font-size: 12px;
font-weight: 850;
}
.event-details span + span {
color: var(--soft-ink);
}
.event-arrow {
width: 48px;
height: 48px;
display: grid;
place-items: center;
border-radius: 50%;
color: #fff;
background: var(--navy);
transition: transform 180ms ease;
}
.event-card:hover .event-arrow {
transform: translateX(4px);
}
.events-upcoming-section {
padding: 100px 0 120px;
background: #fff;
}
.events-page-heading {
display: grid;
grid-template-columns: 1.15fr .85fr;
align-items: end;
gap: 80px;
margin-bottom: 58px;
}
.events-page-heading h2 {
margin: 0;
font-size: clamp(46px, 5vw, 72px);
line-height: 1;
letter-spacing: -.055em;
}
.events-page-heading > p {
max-width: 540px;
margin: 0 0 5px;
color: var(--soft-ink);
font-size: 15px;
line-height: 1.75;
}
.events-upcoming-list {
width: min(980px, 100%);
margin-left: auto;
}
.is-events-extra {
display: none;
}
.events-load-more {
display: block;
margin: 32px auto 0;
padding: 12px 30px;
border: 1px solid var(--line);
border-radius: 999px;
background: #fff;
color: var(--ink);
font-weight: 700;
font-size: 14.5px;
cursor: pointer;
transition: color 160ms ease, background 160ms ease, border-color 160ms ease;
}
.events-load-more:hover {
color: #fff;
background: var(--blue-strong);
border-color: var(--blue-text);
}
.events-empty {
margin: 0;
padding: 34px;
border-radius: 22px;
color: var(--soft-ink);
background: #f0ede6;
}
.events-archive-section {
padding: 110px 0 135px;
color: #fff;
background: var(--navy);
}
.events-archive-heading > p {
color: rgba(255, 255, 255, .64);
}
.events-calendar-layout {
display: grid;
grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
gap: 22px;
align-items: stretch;
}
.events-calendar-component.embedded .events-upcoming-section {
padding: 0;
}
.events-calendar-component.embedded .events-page-heading {
grid-template-columns: 1fr;
gap: 16px;
}
.events-calendar-component.embedded .events-page-heading h2 {
font-size: clamp(38px, 4.2vw, 56px);
}
.events-calendar-component.embedded .events-upcoming-list {
margin: 0;
}
.events-calendar-component.embedded .events-archive-section {
margin-top: 88px;
padding: 55px;
border-radius: 30px;
}
.events-calendar-component.embedded .events-calendar-layout {
grid-template-columns: 1fr;
}
.events-calendar-component.embedded .calendar-day-detail {
min-height: 0;
}
.events-calendar,
.calendar-day-detail {
border-radius: 28px;
}
.events-calendar {
padding: 32px;
color: var(--ink);
background: #fff;
}
.calendar-toolbar {
display: grid;
grid-template-columns: 46px 1fr 46px;
align-items: center;
gap: 18px;
margin-bottom: 28px;
}
.calendar-toolbar h3 {
margin: 0;
font-size: 27px;
line-height: 1.2;
text-align: center;
text-transform: capitalize;
}
.calendar-toolbar button {
width: 46px;
height: 46px;
border: 0;
border-radius: 50%;
color: var(--ink);
background: #eef1f2;
font-size: 20px;
cursor: pointer;
transition: color 160ms ease, background 160ms ease, transform 160ms ease;
}
.calendar-toolbar button:hover:not(:disabled) {
color: #fff;
background: var(--blue-strong);
transform: translateY(-2px);
}
.calendar-toolbar button:disabled {
opacity: .3;
cursor: default;
}
.calendar-today-button {
width: auto !important;
height: auto !important;
margin-top: 5px;
padding: 4px 10px;
border-radius: 999px !important;
color: var(--blue-text) !important;
background: transparent !important;
font-size: 9px !important;
font-weight: 900;
text-transform: uppercase;
min-height: 24px;
}
.calendar-weekdays,
.calendar-grid {
display: grid;
grid-template-columns: repeat(7, 1fr);
}
.calendar-weekdays {
gap: 7px;
margin-bottom: 7px;
}
.calendar-weekdays span {
padding: 9px 0;
color: var(--muted-text);
font-size: 10px;
font-weight: 900;
letter-spacing: .08em;
text-align: center;
text-transform: uppercase;
}
.calendar-weekdays span.weekend {
color: #8a6500;
}
.calendar-grid {
gap: 7px;
}
.calendar-day {
position: relative;
aspect-ratio: 1.08;
min-width: 0;
display: grid;
place-items: center;
border: 0;
border-radius: 15px;
color: var(--ink);
background: #f3f5f5;
font: inherit;
font-size: 13px;
font-weight: 900;
cursor: pointer;
transition: color 150ms ease, background 150ms ease, transform 150ms ease;
}
.calendar-day:hover:not(:disabled) {
transform: translateY(-2px);
background: #e7f3f9;
}
.calendar-day.weekend {
color: #8f6b05;
background: #fff6d7;
}
.calendar-day.outside {
opacity: .2;
}
.calendar-day:disabled {
cursor: default;
}
.calendar-day.has-events {
color: #075f90;
background: #dff2fc;
}
.calendar-day.has-events.weekend {
color: #725600;
background: #ffedaa;
}
.calendar-day.selected {
color: #fff;
background: var(--blue-strong);
box-shadow: 0 12px 24px rgba(22, 132, 197, .24);
}
.calendar-day.today:not(.selected) {
box-shadow: inset 0 0 0 2px var(--green);
}
.calendar-day i {
position: absolute;
left: 50%;
bottom: 8px;
width: 5px;
height: 5px;
translate: -50% 0;
border-radius: 50%;
background: currentColor;
}
.calendar-legend {
display: flex;
flex-wrap: wrap;
gap: 18px;
margin-top: 23px;
color: var(--muted-text);
font-size: 10px;
font-weight: 800;
}
.calendar-legend span {
display: flex;
align-items: center;
gap: 7px;
}
.calendar-legend i {
width: 11px;
height: 11px;
display: inline-block;
border-radius: 4px;
}
.legend-event {
background: #dff2fc;
}
.legend-weekend {
background: #fff0b9;
}
.legend-today {
box-shadow: inset 0 0 0 2px var(--green);
}
.calendar-day-detail {
min-height: 100%;
padding: 36px;
color: var(--ink);
background: #f0ede6;
}
.calendar-day-detail h3 {
margin: 0 0 30px;
font-size: clamp(28px, 3vw, 42px);
line-height: 1.08;
letter-spacing: -.04em;
}
.calendar-day-events {
display: grid;
gap: 10px;
}
.calendar-event-row {
display: grid;
grid-template-columns: 9px 1fr auto;
align-items: start;
gap: 13px;
padding: 19px;
border-radius: 17px;
color: var(--ink);
background: #fff;
text-decoration: none;
transition: transform 160ms ease;
}
.calendar-event-row:hover {
transform: translateY(-2px);
}
.calendar-event-dot {
width: 8px;
height: 8px;
margin-top: 5px;
border-radius: 50%;
background: var(--blue-strong);
}
.calendar-event-row small,
.calendar-event-row strong,
.calendar-event-row p {
display: block;
}
.calendar-event-row small {
margin-bottom: 5px;
color: var(--blue-text);
font-size: 9px;
font-weight: 900;
letter-spacing: .07em;
text-transform: uppercase;
}
.calendar-event-row strong {
font-size: 15px;
line-height: 1.3;
}
.calendar-event-row p {
margin: 8px 0 0;
color: var(--soft-ink);
font-size: 11px;
line-height: 1.55;
}
.calendar-event-row > svg,
.calendar-event-row > i {
margin-top: 4px;
color: var(--blue-text);
}
@media (max-width: 960px) {
.events-calendar-layout {
grid-template-columns: 1fr;
}
.calendar-day-detail {
min-height: 360px;
}
}
@media (max-width: 640px) {
.events-upcoming-section,
.events-archive-section {
padding: 72px 0 84px;
}
.events-page-heading {
grid-template-columns: 1fr;
gap: 22px;
margin-bottom: 38px;
}
.events-page-heading h2 {
font-size: 47px;
}
.events-calendar {
padding: 19px;
border-radius: 22px;
}
.calendar-day {
border-radius: 10px;
font-size: 12px;
}
.calendar-day-detail {
min-height: 320px;
padding: 27px;
}
.event-card {
grid-template-columns: 88px 1fr;
gap: 22px;
min-height: 0;
padding: 24px;
}
.event-date {
min-height: 128px;
}
.event-arrow {
display: none;
}
.events-calendar-component.embedded .events-archive-section {
margin-top: 64px;
padding: 28px 23px;
border-radius: 23px;
}
.events-calendar-component.embedded .events-page-heading {
margin-bottom: 34px;
}
.events-calendar-component.embedded .events-calendar {
padding: 14px;
}
.events-calendar-component.embedded .calendar-day-detail {
padding: 25px 19px;
}
}
