/*
Theme Name: Gigantic Music Child
Theme URI: https://example.com/
Description: Child theme for Gigantic Music. Customize via this stylesheet, theme.json, or by adding templates/parts under templates/ and parts/.
Author: Your name
Author URI: https://example.com/
Template: gigantic-music
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 5.6
License: GPLv3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Text Domain: gigantic-music-child
*/

/* Parent loads its own CSS (handle: gigantic-music-styles). Add overrides here. */

/* --- Hero: full-width + responsive (PHP injects .gm-hero-media into .gm-hero-video-wrap) --- */

.wp-site-blocks > .wp-block-group.alignfull.gm-hero-video-wrap {
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	box-sizing: border-box;
}

main.wp-block-group .alignfull.gm-hero-video-wrap,
.is-layout-constrained > .alignfull.gm-hero-video-wrap {
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	margin-left: -50vw;
	margin-right: -50vw;
	box-sizing: border-box;
}

.gm-hero-video-wrap {
	position: relative;
	overflow: hidden;
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	margin-bottom: -20px !important;
	/* Track viewport on resize; dvh/svh follow mobile URL bar */
	min-height: 100vh;
	min-height: 100dvh;
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	/* Default behind poster / iframe so nothing flashes light before YouTube paints */
	background-color: #000;
}

.gm-hero-media {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 0;
	min-height: 100%;
	pointer-events: none;
	background-color: #000;
}

.gm-hero-video-bg {
	position: absolute;
	inset: 0;
	overflow: hidden;
	z-index: 1;
	background-color: #000;
}

/* Always cover hero: height never shorter than viewport; width scales for 16:9 */
.gm-hero-video-iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 0;
	width: max(100vw, 177.78vh);
	width: max(100dvw, 177.78dvh);
	height: max(56.25vw, 100vh);
	height: max(56.25dvw, 100dvh);
	max-width: none;
	transform: translate(-50%, -50%);
	border: 0;
	background-color: #000;
}

@keyframes gm-hero-poster-fade-in {
	from {
		opacity: 0;
	}

	to {
		opacity: 0.62;
	}
}

.gm-hero-poster {
	position: absolute;
	inset: 0;
	z-index: 2;
	background-size: cover;
	background-position: center;
	background-color: #000;
	/* Fades in immediately on load; sits above .gm-hero-video-bg so YouTube delay cover doesn’t hide it */
	animation: gm-hero-poster-fade-in 0.85s ease-out both;
}

/*
 * Inside .gm-hero-video-bg only (above iframe, below poster). Delays visible YouTube; iframe parent stays opaque.
 */
@keyframes gm-hero-video-cover-reveal {
	0%,
	68.9655% {
		opacity: 1;
	}

	100% {
		opacity: 0;
		visibility: hidden;
	}
}

.gm-hero-video-loading-cover {
	--gm-hero-video-cover-hold: 2s;
	--gm-hero-video-cover-fade: 0.9s;
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: #000;
	pointer-events: none;
	animation: gm-hero-video-cover-reveal calc(var(--gm-hero-video-cover-hold) + var(--gm-hero-video-cover-fade)) ease-out forwards;
}

/* Dark veil (replaces light white haze) for contrast with light/white hero copy */
.gm-hero-scrim {
	position: absolute;
	inset: 0;
	z-index: 3;
	background-color: rgba(0, 0, 0, 0.5);
}

.gm-hero-video-content {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	padding-top: clamp(1.25rem, 4vw, 2.5rem);
	padding-bottom: clamp(1.25rem, 4vw, 2.5rem);
	padding-left: clamp(0.75rem, 3vw, var(--wp--preset--spacing--small, 1rem));
	padding-right: clamp(0.75rem, 3vw, var(--wp--preset--spacing--small, 1rem));
}

/* Hero: one text color for all copy (overrides block / palette colors on headings, paragraphs, links) */
.gm-hero-video-wrap {
	color: #ccc;
}

.gm-hero-video-wrap .gm-hero-video-content,
.gm-hero-video-wrap .gm-hero-video-content * {
	color: #ccc !important;
}

/* Hero logo intro: oversized, then scale + fade to final size (wrap animates; img runs horizontal twitch) */
@keyframes gm-hero-logo-intro {
	from {
		opacity: 0;
		transform: scale(2.35);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes gm-hero-logo-fade-in {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

/* Horizontal-only twitch (10s loop); translateX only so intro scale on wrap stays independent */
@keyframes gm-hero-logo-twitch {
	0%,
	9.2%,
	10.1%,
	39.2%,
	40.1%,
	69.2%,
	70.1%,
	100% {
		transform: translateX(0);
	}

	9.35% {
		transform: translateX(5px);
	}

	9.5% {
		transform: translateX(-4px);
	}

	9.65% {
		transform: translateX(3px);
	}

	39.35% {
		transform: translateX(-5px);
	}

	39.5% {
		transform: translateX(4px);
	}

	39.65% {
		transform: translateX(-3px);
	}

	69.35% {
		transform: translateX(4px);
	}

	69.5% {
		transform: translateX(-5px);
	}

	69.65% {
		transform: translateX(3px);
	}
}

/* Hero logo (Appearance → Hero media) — sits above the h6 kicker row */
.gm-hero-logo-wrap {
	--gm-hero-logo-gutter: clamp(0.75rem, 5vw, 2rem);
	--gm-hero-logo-intro-dur: 1.15s;
	display: flex;
	justify-content: center;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding-left: var(--gm-hero-logo-gutter);
	padding-right: var(--gm-hero-logo-gutter);
	margin: 0 0 var(--wp--preset--spacing--small, 1rem);
	transform-origin: center center;
	backface-visibility: hidden;
	animation: gm-hero-logo-intro var(--gm-hero-logo-intro-dur) cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* Admin max width, but never wider than the content box or the viewport minus padding */
.gm-hero-logo {
	display: block;
	width: auto;
	height: auto;
	max-width: min(
		var(--gm-hero-logo-max, 220px),
		100%,
		calc(100vw - 2 * var(--gm-hero-logo-gutter, 1rem))
	);
	object-fit: contain;
	transform-origin: center center;
	backface-visibility: hidden;
	animation: gm-hero-logo-twitch 10s linear var(--gm-hero-logo-intro-dur, 1.15s) infinite;
}

/* Three columns: middle column holds the kicker h6 */
.gm-hero-video-content.gm-hero-hide-kicker .wp-block-columns > .wp-block-column:nth-child(2) > h6.wp-block-heading:first-of-type {
	display: none !important;
}

.gm-hero-video-content h1 {
	font-size: clamp(1.65rem, 4.5vw, 2.75rem);
	line-height: 1.15;
	word-wrap: break-word;
}

.gm-hero-video-content h6 {
	font-size: clamp(0.65rem, 2vw, 0.875rem);
}

.gm-hero-video-content .wp-block-group.is-layout-flex {
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--wp--preset--spacing--xx-small, 0.5rem);
}

.gm-hero-video-content .wp-block-image img {
	max-width: 100%;
	height: auto;
}

@media (max-width: 781px) {
	.gm-hero-video-content .wp-block-columns {
		gap: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gm-hero-video-bg {
		display: none;
	}

	.gm-hero-video-loading-cover {
		animation: none !important;
		opacity: 0 !important;
		visibility: hidden !important;
	}

	.gm-hero-poster {
		animation: none;
		opacity: 1;
	}

	.gm-hero-logo-wrap {
		animation: gm-hero-logo-fade-in 0.35s ease-out both;
	}

	.gm-hero-logo {
		animation: none;
		transform: none;
	}
}

/* Music Biography: half of default bottom padding (saved markup may still use full xx-large). */
body.gm-theme-front .gm-music-about {
	padding-bottom: calc(var(--wp--preset--spacing--xx-large, 3rem) * 0.5) !important;
}

/* Gigantic Child Music Biography pattern (gigantic-music-child/music-about): mobile — three biography images stack, each full width; desktop layout unchanged. */
@media (max-width: 782px) {
	.gm-music-about > .wp-block-columns > .wp-block-column:first-child .wp-block-columns {
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		gap: var(--wp--preset--spacing--small, 1rem);
	}

	.gm-music-about > .wp-block-columns > .wp-block-column:first-child .wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.gm-music-about > .wp-block-columns > .wp-block-column:first-child .wp-block-image,
	.gm-music-about > .wp-block-columns > .wp-block-column:first-child .wp-block-image img {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	.gm-music-about > .wp-block-columns > .wp-block-column:first-child .wp-block-image.is-resized,
	.gm-music-about > .wp-block-columns > .wp-block-column:first-child .wp-block-image.is-resized img {
		width: 100% !important;
		max-width: 100% !important;
		height: auto;
	}
}

/*
 * Music Biography: hide the default stats box (150+ / MUSIC TRACKS, etc.).
 * The child pattern no longer includes it, but customized templates or the parent
 * gigantic-music/music-about pattern still render this inner group from saved HTML.
 */
body.gm-theme-front .alignfull.has-surface-background-color > .wp-block-columns > .wp-block-column:nth-child(2) > .wp-block-group.has-background-background-color.has-background {
	display: none !important;
}

/* --- Meet the Band pattern (gigantic-music-child/meet-the-band) --- */

.gm-meet-the-band .gm-meet-band__strip {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--medium, 1.25rem);
	min-height: 10rem;
}

.gm-meet-the-band .gm-meet-band__photos-row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	width: 100%;
	gap: 0.35rem;
	min-height: 0;
	transition: gap 0.35s ease;
}

.gm-meet-the-band .gm-meet-band__member {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	flex: 1 1 0;
	min-width: 0;
	max-width: 100%;
	min-height: 0;
	cursor: pointer;
	transition:
		flex 0.4s ease,
		opacity 0.35s ease,
		box-shadow 0.35s ease,
		transform 0.35s ease;
	border-radius: 10px;
}

.gm-meet-the-band .gm-meet-band__member:focus {
	outline: none;
}

.gm-meet-the-band .gm-meet-band__member:focus-visible {
	outline: 2px solid #d71362;
	outline-offset: 3px;
}

.gm-meet-the-band .gm-meet-band__photo {
	margin: 0;
}

.gm-meet-the-band .gm-meet-band__photo figure {
	position: relative;
	margin: 0;
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: 10px;
}

.gm-meet-the-band .gm-meet-band__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	vertical-align: middle;
}

/* Grain on thumbnail hover only (gm-meet-band.js); no grain on enlarged photo */
.gm-meet-band__noise-canvas {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 10;
	pointer-events: none;
	border-radius: inherit;
	mix-blend-mode: overlay;
	opacity: 0;
	transition: opacity 0.55s ease-out;
	filter: contrast(1.12);
}

.gm-meet-band__noise-canvas.gm-meet-band__noise-canvas--visible {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.gm-meet-band__noise-canvas {
		transition: none;
	}
}

/* Live site: bios live in the reading area (filled by JS); keep source panels for the editor only. */
body.gm-theme-front .gm-meet-the-band .gm-meet-band__panel {
	border: 0;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	white-space: nowrap;
}

body.gm-theme-front .gm-meet-the-band .gm-meet-band__member {
	position: relative;
}

.editor-styles-wrapper .gm-meet-the-band .gm-meet-band__panel,
.block-editor-block-list__layout .gm-meet-the-band .gm-meet-band__panel {
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	clip-path: none !important;
	overflow: visible !important;
	margin: 0 !important;
	white-space: normal !important;
}

.gm-meet-the-band .gm-meet-band__reading-area {
	border-radius: 10px;
	padding: var(--wp--preset--spacing--medium, 1.25rem);
	background: #fbeff4;
	border: 3px solid #fbeff4;
	min-height: 6rem;
}

.gm-meet-the-band .gm-meet-band__reading-area .wp-block-heading {
	color: #1a1a1a;
	margin-top: 0;
}

body.gm-theme-front .gm-meet-the-band .gm-meet-band__strip:not(.has-active) .gm-meet-band__reading-area {
	display: none;
}

.gm-meet-the-band .gm-meet-band__strip.has-active .gm-meet-band__photos-row .gm-meet-band__member.is-active {
	flex: 2.35 1 0%;
	order: -1;
	min-width: 0;
	box-shadow: 0 10px 28px rgba(215, 19, 98, 0.18);
	transform: translateZ(0);
	z-index: 2;
}

.gm-meet-the-band .gm-meet-band__strip.has-active .gm-meet-band__photos-row .gm-meet-band__member:not(.is-active) {
	flex: 0.52 1 0%;
	min-width: 0;
	opacity: 0.88;
	z-index: 1;
}

.gm-meet-the-band .gm-meet-band__strip.has-active .gm-meet-band__reading-area {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	position: absolute;
	left: 36%;
	right: 0;
	/* Same vertical inset for every member (matches the look of the first slot). */
	top: var(--wp--preset--spacing--x-small, 0.5rem);
	bottom: var(--wp--preset--spacing--x-small, 0.5rem);
	z-index: 4;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	background: rgba(255, 255, 255, 0.96);
	border: 3px solid #fbeff4;
	box-shadow: 0 6px 28px rgba(0, 0, 0, 0.07);
}

/*
 * Meet the Band — layout follows viewport width only (WP column stack breakpoint).
 * No body/JS class. !important so theme global CSS after this file cannot keep the reading area absolute.
 */
@media (max-width: 782px) {
	.gm-meet-the-band .gm-meet-band__photos-row {
		flex-wrap: wrap;
		justify-content: center;
		row-gap: 0.5rem;
	}

	.gm-meet-the-band .gm-meet-band__member {
		flex: 0 0 calc(33.333% - 0.35rem);
		max-width: calc(33.333% - 0.35rem);
	}

	.gm-meet-the-band .gm-meet-band__strip.has-active {
		gap: var(--wp--preset--spacing--xx-small, 0.5rem);
	}

	.gm-meet-the-band .gm-meet-band__strip.has-active .gm-meet-band__photos-row {
		flex-wrap: nowrap !important;
		flex-direction: column !important;
		align-items: stretch !important;
		row-gap: 0 !important;
		width: 100% !important;
	}

	.gm-meet-the-band .gm-meet-band__strip.has-active .gm-meet-band__photos-row .gm-meet-band__member.is-active {
		flex: 0 0 auto !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		order: 0 !important;
		box-shadow: 0 10px 28px rgba(215, 19, 98, 0.18);
		transform: translateZ(0);
		z-index: 2;
	}

	.gm-meet-the-band .gm-meet-band__strip.has-active .gm-meet-band__photos-row .gm-meet-band__member:not(.is-active) {
		display: none !important;
	}

	.gm-meet-the-band .gm-meet-band__strip.has-active .gm-meet-band__reading-area {
		display: flex !important;
		flex-direction: column !important;
		box-sizing: border-box !important;
		position: relative !important;
		inset: auto !important;
		left: auto !important;
		right: auto !important;
		top: auto !important;
		bottom: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-top: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		min-height: 8rem;
		flex: none !important;
		z-index: 4;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		background: rgba(255, 255, 255, 0.96);
		border: 3px solid #fbeff4;
		box-shadow: 0 6px 28px rgba(0, 0, 0, 0.07);
	}
}

@media (prefers-reduced-motion: reduce) {
	.gm-meet-the-band .gm-meet-band__member,
	.gm-meet-the-band .gm-meet-band__photos-row {
		transition: none;
	}

}

/* --- Dynamic events: parent music-events layout via [gm_child_events] --- */

.gm-events-dynamic .gm-event-dateline-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2rem;
	margin: 0 0 0.35rem;
	text-align: center;
}

.gm-events-dynamic .gm-event-dateline-wrap .gm-event-day {
	font-size: clamp(1.65rem, 4vw, 2.15rem);
	font-weight: 500;
	line-height: 1;
	color: inherit;
}

.gm-events-dynamic .gm-event-dateline-wrap .gm-event-month {
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.2;
	color: #d71362;
	text-transform: uppercase;
}

.gm-events-dynamic .gm-event-time-line,
.gm-events-dynamic .gm-event-year-line {
	margin: 0.15rem 0 0;
	line-height: 1.25;
}

.gm-events-dynamic .gm-event-year-line {
	margin-bottom: 0;
	color: #6b6b6b;
}

/* Desktop: larger day, pull month up tight under the number */
@media (min-width: 783px) {
	.gm-events-dynamic .gm-event-date-column {
		padding-top: calc(var(--wp--preset--spacing--x-small, 0.75rem) + 5px) !important;
	}

	.gm-events-dynamic .gm-event-dateline-wrap {
		gap: 0;
		margin: 0 0 0.3rem;
	}

	.gm-events-dynamic .gm-event-dateline-wrap .gm-event-day {
		display: block;
		font-size: clamp(2.35rem, 5.5vw, 3.1rem);
		line-height: 0.8;
		margin-bottom: -0.22em;
	}

	.gm-events-dynamic .gm-event-dateline-wrap .gm-event-month {
		margin-top: -6px;
		line-height: 1.1;
	}

	.gm-events-dynamic .gm-event-year-line {
		margin-top: 0.65rem;
		padding-top: 0.35rem;
		color: #6b6b6b;
	}
}

.gm-events-dynamic .gm-event-title {
	width: 100%;
	box-sizing: border-box;
	padding-top: var(--wp--preset--spacing--x-small, 0.75rem);
	margin-top: 0;
	margin-bottom: 0.35rem;
}

.gm-events-dynamic .gm-event-location {
	font-size: 1.0625rem;
	line-height: 1.4;
}

.gm-events-dynamic .gm-event-location-row {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.4rem;
	flex-wrap: wrap;
	margin: 0.25rem 0 0;
	width: 100%;
	box-sizing: border-box;
}

.gm-events-dynamic .gm-events-dynamic__row {
	margin-bottom: var(--wp--preset--spacing--small, 1rem);
	align-items: center;
}

.gm-events-dynamic .gm-events-dynamic__row:last-child {
	margin-bottom: 0;
}

/* Scroll viewport height set in JS: two rows on mobile (≤782px), three on desktop. Touch scroll; scrollbar hidden. */
/* position: relative so row offsetTop is relative to this scroll box (fixes scroll snaps). */
.gm-events-dynamic--scrollable .gm-events-dynamic__viewport {
	position: relative;
	overflow-y: auto;
	overflow-x: hidden;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
	scrollbar-width: none;
	-ms-overflow-style: none;
	scroll-snap-type: y mandatory;
	scroll-padding: 0;
}

.gm-events-dynamic--scrollable .gm-events-dynamic__viewport::-webkit-scrollbar {
	display: none;
}

.gm-events-dynamic--scrollable .gm-events-dynamic__viewport .gm-events-dynamic__row {
	scroll-snap-align: start;
	scroll-snap-stop: normal;
}

/* Let JS arrow tween run; mandatory snap would snap every frame (no visible motion). */
.gm-events-dynamic--scrollable .gm-events-dynamic__viewport.gm-events-dynamic__viewport--no-snap {
	scroll-snap-type: none;
}

.gm-events-dynamic--scrollable .gm-events-dynamic__viewport .gm-events-dynamic__row:last-child {
	margin-bottom: var(--wp--preset--spacing--small, 1rem);
}

@media (prefers-reduced-motion: reduce) {
	.gm-events-dynamic--scrollable .gm-events-dynamic__viewport {
		scroll-snap-type: none;
	}
}

.gm-events-dynamic__controls {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	margin-top: var(--wp--preset--spacing--small, 1rem);
}

.gm-events-dynamic__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0;
	border: 2px solid #d71362;
	border-radius: 999px;
	background: transparent;
	color: #d71362;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, opacity 0.15s ease;
}

.gm-events-dynamic__arrow:hover:not(:disabled) {
	background-color: #d71362;
	color: #fff;
}

.gm-events-dynamic__arrow:focus-visible {
	outline: 2px solid #d71362;
	outline-offset: 2px;
}

.gm-events-dynamic__arrow:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.gm-events-dynamic__arrow-icon {
	display: block;
	flex-shrink: 0;
}

.gm-events__empty {
	text-align: center;
	margin: 1.25em 0;
}

/* Upcoming events (shortcode): compact mobile + date on one line, hide empty rail */
@media (max-width: 782px) {
	.gm-events-dynamic .gm-events-dynamic__row {
		margin-bottom: calc(var(--wp--preset--spacing--small, 1rem) * 0.5) !important;
		padding-top: 0.3rem !important;
		padding-right: 0.3rem !important;
		padding-bottom: 0.3rem !important;
		padding-left: 0.3rem !important;
	}

	.gm-events-dynamic--scrollable .gm-events-dynamic__viewport .gm-events-dynamic__row:last-child {
		margin-bottom: calc(var(--wp--preset--spacing--small, 1rem) * 0.5) !important;
	}

	.gm-events-dynamic .gm-events-dynamic__row > .wp-block-column {
		padding-top: 0.35rem !important;
		padding-bottom: 0.35rem !important;
		padding-left: 0.35rem !important;
		padding-right: 0.35rem !important;
	}

	.gm-events-dynamic .gm-events-dynamic__row .gm-event-tail-spacer {
		display: none !important;
	}

	.gm-events-dynamic .gm-event-date-column {
		border-radius: 10px;
		overflow: hidden;
	}

	/* Day + month one line; time; then year */
	.gm-events-dynamic .gm-event-dateline-wrap {
		flex-direction: row !important;
		flex-wrap: wrap;
		justify-content: center !important;
		align-items: baseline !important;
		gap: 0.35em !important;
		margin-bottom: 0.2rem !important;
	}

	.gm-events-dynamic .gm-event-dateline-wrap .gm-event-day {
		font-size: 1.75rem !important;
	}

	.gm-events-dynamic .gm-event-dateline-wrap .gm-event-month {
		font-size: 0.95rem !important;
		line-height: 1.15 !important;
		margin: 0 !important;
	}

	.gm-events-dynamic .gm-event-time-line {
		font-size: 0.95rem !important;
		margin: 0.15rem 0 0 !important;
		line-height: 1.3 !important;
	}

	.gm-events-dynamic .gm-event-year-line {
		font-size: 0.82rem !important;
		margin: 0.1rem 0 0 !important;
		line-height: 1.25 !important;
	}

	.gm-events-dynamic .gm-event-title {
		padding-top: calc(var(--wp--preset--spacing--x-small, 0.75rem) + 0.35rem) !important;
		margin-bottom: 0.15rem !important;
		line-height: 1.15 !important;
	}

	.gm-events-dynamic .gm-events-dynamic__row .gm-event-title.has-x-large-font-size {
		font-size: clamp(1.28rem, 5vw, 1.55rem) !important;
	}

	.gm-events-dynamic .gm-event-location-row {
		font-size: 0.62rem !important;
		line-height: 1.3 !important;
		margin-top: 0.15rem !important;
	}

	.gm-events-dynamic .gm-event-location-icon {
		width: 11px !important;
		height: 11px !important;
		vertical-align: middle;
	}
}
