/**
 * WP GEvents frontend.
 *
 * Los tokens toman primero los colores configurados por el tema (incluido
 * Astra) y conservan fallbacks con contraste suficiente para otros temas.
 */
.sr-single-event,
.sr-countdown,
.sr-form-wrap,
.sr-event-meta,
.sr-upcoming,
.sr-map {
	--sr-accent: var(--ast-global-color-0, var(--wp--preset--color--primary, #805b05));
	--sr-accent-hover: var(--ast-global-color-1, var(--wp--preset--color--secondary, #a86501));
	--sr-heading: var(--ast-global-color-2, var(--wp--preset--color--contrast, #0f172a));
	--sr-text: var(--ast-global-color-3, var(--wp--preset--color--contrast, #334155));
	--sr-surface: var(--ast-global-color-5, var(--wp--preset--color--base, #fff));
	--sr-soft: var(--ast-global-color-7, #f6f3ef);
	--sr-border: color-mix(in srgb, var(--sr-text) 18%, transparent);
	--sr-shadow: 0 18px 45px rgb(15 23 42 / 9%);
	box-sizing: border-box;
}

.sr-single-event *,
.sr-countdown *,
.sr-form-wrap *,
.sr-event-meta *,
.sr-upcoming *,
.sr-map * {
	box-sizing: border-box;
}

.sr-elementor-placeholder {
	margin: 0;
	padding: 1rem 1.1rem;
	border: 1px dashed var(--sr-border);
	border-radius: 0.75rem;
	background: var(--sr-soft);
	color: var(--sr-text);
	font-size: 0.95rem;
	line-height: 1.55;
}

body.single-sr_event .entry-header {
	max-width: 75rem !important;
	margin-inline: auto !important;
}

body.single-sr_event.sr-gevents-template-editorial .entry-header {
	max-width: 58rem !important;
}

body.single-sr_event .entry-header .entry-meta {
	display: none;
}

body.single-sr_event .entry-title {
	margin-bottom: clamp(1rem, 2vw, 1.75rem);
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.12;
	text-wrap: balance;
}

.sr-single-event {
	max-width: 75rem !important;
	margin-inline: auto !important;
	color: var(--sr-text);
}

.sr-single-event__thumbnail {
	position: relative;
	overflow: hidden;
	margin-bottom: clamp(2rem, 5vw, 4rem);
	border-radius: clamp(0.5rem, 1.2vw, 1rem);
	background: var(--sr-soft);
	box-shadow: var(--sr-shadow);
}

.sr-single-event__img {
	display: block;
	width: 100%;
	margin: 0;
	object-fit: cover;
	object-position: center top;
	aspect-ratio: 16 / 9;
}

.sr-single-event__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(19rem, 0.8fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}

.sr-single-event__main,
.sr-single-event__sidebar {
	min-width: 0;
}

.sr-single-event__sidebar {
	display: grid;
	gap: 1.25rem;
	position: sticky;
	top: 2rem;
}

.admin-bar .sr-single-event__sidebar {
	top: calc(2rem + 32px);
}

.sr-single-event__content {
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.sr-single-event__body {
	font-size: clamp(1.05rem, 1.5vw, 1.2rem);
	line-height: 1.75;
}

.sr-single-event__body > :first-child {
	margin-top: 0;
}

.sr-single-event__body > :last-child {
	margin-bottom: 0;
}

.sr-single-event__video {
	overflow: hidden;
	margin-bottom: 2rem;
	border-radius: 0.75rem;
}

.sr-single-event__video--embed iframe,
.sr-single-event__video--embed video {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
}

.sr-single-event__details {
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.sr-single-event__section-title,
.sr-form__title {
	margin: 0;
	color: var(--sr-heading);
	font-family: inherit;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	line-height: 1.25;
}

.sr-single-event__section-title {
	margin-bottom: 1.25rem;
}

.sr-single-event__meta-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.875rem;
}

.sr-single-event__dates {
	grid-column: 1 / -1;
}

.sr-single-event__dates-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.875rem;
	margin: 0;
}

.sr-single-event__dates-item,
.sr-single-event__mode,
.sr-single-event__venue {
	min-height: 7.25rem;
	margin: 0;
	padding: 1.125rem 1.25rem;
	border: 1px solid var(--sr-border);
	border-radius: 0.75rem;
	background: var(--sr-surface);
}

.sr-single-event__dates-key,
.sr-single-event__mode-label,
.sr-single-event__venue-label {
	display: block;
	margin-bottom: 0.45rem;
	color: var(--sr-accent);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.sr-single-event__dates-val,
.sr-single-event__mode-value,
.sr-single-event__venue-address {
	display: block;
	margin: 0;
	color: var(--sr-heading);
	font-size: 1rem;
	font-style: normal;
	font-weight: 650;
	line-height: 1.5;
}

.sr-map {
	overflow: hidden;
	margin-top: 1rem;
	border: 1px solid var(--sr-border);
	border-radius: 0.75rem;
	background: var(--sr-soft);
}

.sr-map__iframe {
	display: block;
	width: 100%;
	min-height: 22rem;
	border: 0;
}

.sr-upcoming {
	display: grid;
	grid-template-columns: repeat(var(--sr-upcoming-columns, 1), minmax(0, 1fr));
	gap: 1.25rem;
	align-items: start;
}

.sr-upcoming--columns-1 {
	--sr-upcoming-columns: 1;
}

.sr-upcoming--columns-2 {
	--sr-upcoming-columns: 2;
}

.sr-upcoming--columns-3 {
	--sr-upcoming-columns: 3;
}

.sr-upcoming--columns-4 {
	--sr-upcoming-columns: 4;
}

.sr-upcoming__item {
	display: grid;
	gap: 0.9rem;
	min-width: 0;
	padding: 1.15rem;
	border: 1px solid var(--sr-border);
	border-radius: 1rem;
	background: var(--sr-surface);
	box-shadow: var(--sr-shadow);
}

.sr-upcoming__item:last-child {
	margin-bottom: 0;
}

.sr-upcoming__thumbnail {
	display: block;
	overflow: hidden;
	border-radius: 0.8rem;
	background: var(--sr-soft);
}

.sr-upcoming__img {
	display: block;
	width: 100%;
	margin: 0;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	object-position: center;
}

.sr-upcoming__body {
	display: grid;
	gap: 0.55rem;
	min-width: 0;
	align-content: start;
}

.sr-upcoming__title {
	margin: 0;
	color: var(--sr-heading);
	font-family: inherit;
	font-size: clamp(1.1rem, 1.8vw, 1.45rem);
	line-height: 1.22;
	text-wrap: balance;
}

.sr-upcoming__title a {
	color: inherit;
	text-decoration: none;
}

.sr-upcoming__title a:hover,
.sr-upcoming__title a:focus-visible {
	color: var(--sr-accent);
}

.sr-upcoming__date,
.sr-upcoming__mode,
.sr-upcoming__venue,
.sr-upcoming__excerpt {
	display: block;
	margin: 0;
	color: var(--sr-text);
	line-height: 1.55;
}

.sr-upcoming__date-wrap {
	display: grid;
	gap: 0.2rem;
}

.sr-archive__date-wrap,
.sr-archive-events__date-wrap {
	display: grid;
	gap: 0.2rem;
}

.sr-upcoming__date-label {
	color: var(--sr-accent);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.sr-archive__date-label,
.sr-archive-events__date-label {
	color: var(--sr-accent);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.sr-upcoming__date {
	font-size: 1rem;
	font-weight: 650;
	letter-spacing: 0.01em;
}

.sr-archive__date,
.sr-archive-events__date {
	color: var(--sr-heading);
	font-size: 1rem;
	font-weight: 650;
	line-height: 1.5;
}

.sr-upcoming__mode,
.sr-upcoming__venue {
	font-size: 0.92rem;
}

.sr-upcoming__mode {
	align-self: start;
	width: fit-content;
	padding: 0.32rem 0.68rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--sr-accent) 10%, transparent);
	color: var(--sr-accent);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-transform: uppercase;
}

.sr-upcoming__mode--virtual {
	background: color-mix(in srgb, #2563eb 12%, transparent);
	color: #1d4ed8;
}

.sr-upcoming__mode--presencial {
	background: color-mix(in srgb, var(--sr-accent) 10%, transparent);
	color: var(--sr-accent);
}

.sr-upcoming__excerpt {
	font-size: 0.95rem;
}

.sr-upcoming__availability {
	display: inline-flex;
	align-items: center;
	align-self: start;
	padding: 0.35rem 0.7rem;
	border-radius: 999px;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.2;
}

.sr-upcoming__availability--open {
	background: color-mix(in srgb, var(--sr-accent) 10%, transparent);
	color: var(--sr-accent);
}

.sr-upcoming__availability--full {
	background: #fef3f2;
	color: #9f1d13;
}

.sr-upcoming__cta {
	align-self: start;
	margin-top: 0.15rem;
}

.sr-upcoming__cta.sr-btn,
.sr-upcoming__cta.sr-btn:hover,
.sr-upcoming__cta.sr-btn:focus-visible {
	text-decoration: none !important;
}

.sr-upcoming__cta--coming-soon {
	display: inline-flex;
	padding: 0.35rem 0;
	color: var(--sr-text);
	font-size: 0.92rem;
	font-weight: 600;
}

.sr-upcoming--template-lista .sr-upcoming__item {
	padding: 1rem;
	box-shadow: none;
}

.sr-upcoming--template-agenda .sr-upcoming__item {
	border-inline-start-width: 4px;
	border-inline-start-color: var(--sr-accent);
}

.sr-upcoming--template-featured .sr-upcoming__item:first-child {
	grid-column: 1 / -1;
}

.sr-countdown {
	padding: 1.25rem;
	border: 1px solid var(--sr-border);
	border-radius: 0.875rem;
	background: var(--sr-soft);
}

.sr-countdown__eyebrow,
.sr-form__eyebrow {
	margin: 0 0 0.7rem;
	color: var(--sr-accent);
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.09em;
	line-height: 1.35;
	text-transform: uppercase;
}

.sr-countdown__units {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.4rem;
}

.sr-countdown__unit {
	display: grid;
	gap: 0.15rem;
	min-width: 0;
	text-align: center;
}

.sr-countdown__unit strong {
	color: var(--sr-heading);
	font-size: clamp(1.35rem, 3vw, 1.85rem);
	font-variant-numeric: tabular-nums;
	font-weight: 750;
	line-height: 1.15;
}

.sr-countdown__unit span {
	color: var(--sr-text);
	font-size: 0.68rem;
	line-height: 1.3;
	text-transform: uppercase;
}

.sr-countdown--ongoing,
.sr-countdown--finished {
	font-weight: 700;
	text-align: center;
}

.sr-form-wrap {
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border: 1px solid var(--sr-border);
	border-radius: 0.875rem;
	background: var(--sr-surface);
	box-shadow: var(--sr-shadow);
}

.sr-form__header {
	margin-bottom: 1.4rem;
}

.sr-form__intro {
	margin: 0.65rem 0 0;
	color: var(--sr-text);
	font-size: 0.94rem;
	line-height: 1.55;
}

.sr-form {
	display: grid;
	gap: 1rem;
}

.sr-form__required-note {
	margin: 0;
	color: var(--sr-text);
	font-size: 0.78rem;
}

.sr-form__required,
.sr-form__required-note span {
	margin-inline-start: 0.15rem;
	color: #b42318;
}

.sr-form__field {
	display: grid;
	gap: 0.35rem;
}

.sr-form__label {
	color: var(--sr-heading);
	font-family: inherit;
	font-size: 0.85rem;
	font-weight: 650;
	line-height: 1.4;
}

.sr-form .sr-form__input,
.sr-form .sr-form__textarea {
	width: 100%;
	min-height: 2.85rem;
	margin: 0;
	padding: 0.7rem 0.8rem;
	border: 1px solid var(--sr-border);
	border-radius: 0.4rem;
	background: var(--sr-surface);
	color: var(--sr-heading);
	font: inherit;
	line-height: 1.4;
}

.sr-form .sr-form__textarea {
	min-height: 7rem;
	resize: vertical;
}

.sr-form .sr-form__input:focus,
.sr-form .sr-form__textarea:focus {
	border-color: var(--sr-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--sr-accent) 20%, transparent);
	outline: 2px solid transparent;
}

.sr-form [aria-invalid="true"] {
	border-color: #b42318;
}

.sr-form__error {
	min-height: 0;
	color: #b42318;
	font-size: 0.78rem;
	line-height: 1.35;
}

.sr-form__error:empty {
	display: none;
}

.sr-form__submit,
.sr-form-wrap__cta {
	justify-content: center;
	width: 100%;
	margin-top: 0.25rem;
	cursor: pointer;
	text-align: center;
	text-decoration: none !important;
}

.sr-btn.sr-btn--primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: var(--sr-theme-button-padding, 0.625rem 1.25rem);
	border: 0;
	border-radius: var(--sr-theme-button-radius, 0.4rem);
	background: var(--sr-theme-button-bg, var(--sr-accent));
	box-shadow: none;
	color: var(--sr-theme-button-color, #fff);
	font-family: inherit;
	font-size: var(--sr-theme-button-font-size, 1rem);
	font-weight: var(--sr-theme-button-font-weight, 600);
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.sr-btn.sr-btn--primary:hover,
.sr-btn.sr-btn--primary:focus-visible {
	background: var(--sr-theme-button-bg-hover, var(--sr-accent-hover));
	color: var(--sr-theme-button-color-hover, #fff);
	transform: translateY(-1px);
}

.sr-btn.sr-btn--primary:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--sr-theme-button-bg, var(--sr-accent)) 35%, transparent);
	outline-offset: 3px;
}

.sr-form__submit:disabled {
	cursor: wait;
	opacity: 0.7;
}

.sr-form__response {
	display: none;
	margin-bottom: 1rem;
	padding: 0.85rem 1rem;
	border-radius: 0.5rem;
	font-size: 0.9rem;
	line-height: 1.45;
}

.sr-form__response--success,
.sr-form__response--error {
	display: block;
}

.sr-form__response--success,
.sr-form__notice--success {
	border: 1px solid #86c89a;
	background: #edf9f0;
	color: #17612e;
}

.sr-form__response--error {
	border: 1px solid #f0aaa4;
	background: #fff1f0;
	color: #8f2119;
}

.sr-form__notice {
	margin: 0;
	padding: 1rem;
	border-radius: 0.5rem;
	background: var(--sr-soft);
	line-height: 1.55;
}

.sr-form-wrap--virtual {
	display: grid;
	gap: 1rem;
}

.sr-form-wrap__capacity-info {
	color: var(--sr-accent);
	font-size: 0.8rem;
	font-weight: 700;
	text-align: center;
	text-transform: uppercase;
}

/*
 * Variantes del single event. Comparten el mismo HTML para conservar la
 * semántica, el orden de tabulación y la paridad entre componentes.
 */
@media (min-width: 901px) {
	.sr-single-event--template-split {
		display: grid;
		grid-template-columns: minmax(0, 1.45fr) minmax(20rem, 0.72fr);
		gap: clamp(2rem, 4vw, 4rem);
		align-items: start;
	}

	.sr-single-event--template-split .sr-single-event__thumbnail {
		grid-column: 1;
		grid-row: 1;
		margin-bottom: 0;
	}

	.sr-single-event--template-split .sr-single-event__img {
		aspect-ratio: 3 / 2;
	}

	.sr-single-event--template-split .sr-single-event__layout {
		display: contents;
	}

	.sr-single-event--template-split .sr-single-event__main {
		grid-column: 1;
		grid-row: 2;
	}

	.sr-single-event--template-split .sr-single-event__sidebar {
		grid-column: 2;
		grid-row: 1 / span 2;
	}

	body.single-sr_event .entry-content > .sr-single-event--template-editorial {
		max-width: 58rem !important;
	}

	.sr-single-event--template-editorial .sr-single-event__layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}

	.sr-single-event--template-editorial .sr-single-event__sidebar {
		position: static;
		grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1.28fr);
		align-items: start;
	}

	.sr-single-event--template-editorial .sr-single-event__thumbnail {
		margin-bottom: 2.5rem;
	}

	.sr-single-event--template-editorial .sr-single-event__img {
		aspect-ratio: 3 / 2;
	}
}

@media (max-width: 900px) {
	.sr-upcoming {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sr-single-event__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.sr-single-event__sidebar {
		position: static;
		grid-template-columns: minmax(0, 1fr);
	}

	.admin-bar .sr-single-event__sidebar {
		top: auto;
	}
}

@media (max-width: 600px) {
	.sr-upcoming {
		grid-template-columns: minmax(0, 1fr);
	}

	.sr-single-event__thumbnail {
		margin-inline: -0.75rem;
		border-radius: 0;
	}

	.sr-single-event__img {
		aspect-ratio: 3 / 2;
	}

	.sr-single-event__meta-grid,
	.sr-single-event__dates-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.sr-single-event__dates-item,
	.sr-single-event__mode,
	.sr-single-event__venue {
		min-height: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sr-single-event *,
	.sr-form-wrap * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
