/* Swiss Summit — small utilities that theme.json can't express.
   Apply via a block's "Additional CSS Class(es)" field in the editor. */

html {
	scroll-behavior: smooth;
}

/* Offset anchored sections so the sticky header doesn't cover them on scroll */
[id] {
	scroll-margin-top: 110px;
}

.eyebrow {
	color: var(--wp--preset--color--red);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.eyebrow.is-muted {
	color: var(--wp--preset--color--ice);
}

/* Inline SVG icons (core/html blocks referencing the sprite in parts/header.html) */
.icon {
	width: 48px;
	height: 48px;
	fill: currentColor;
	color: var(--wp--preset--color--red);
}

.icon.is-size-small {
	width: 28px;
	height: 28px;
}

/* Sticky translucent site header */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--deep-teal);
	background: rgba(0, 0, 0, 0.94);
}

/* Speaker / team portraits: desaturated until hover */
.portrait img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: bottom center;
	filter: saturate(0.35) contrast(1.08);
	transition: 0.25s ease;
}

.portrait:hover img {
	filter: saturate(0.85) contrast(1);
	transform: scale(1.02);
}

/* Reserve space for two lines of speaker name so cards line up
   whether the name wraps (e.g. "Dr. Elias Vance") or not ("Sarah Chen") */
.speakers-block h3.wp-block-heading {
	min-height: 2em;
}

/* Partner / sponsor logos: grayscale until hover */
.partner-logo img {
	filter: grayscale(1) brightness(1.65);
	opacity: 0.72;
	object-fit: contain;
	transition: 0.2s ease;
}

.partner-logo:hover img {
	filter: grayscale(0);
	opacity: 1;
}

/* Venue map preview: red ring on hover */
.venue-map {
	position: relative;
	display: block;
	overflow: hidden;
	height: 160px;
	margin-top: 48px;
	border: 1px solid rgba(255, 255, 255, 0.12);
}

.venue-map img {
	filter: grayscale(1);
	opacity: 0.52;
	transition: 0.2s ease;
}

.venue-map:hover img {
	opacity: 0.78;
}

.venue-map::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 2px solid transparent;
	transition: 0.2s ease;
	pointer-events: none;
}

.venue-map:hover::after {
	border-color: rgba(230, 38, 34, 0.55);
}

/* All buttons share a consistent height, regardless of style variation
   (core's .is-style-outline rule otherwise wins a specificity tie on padding) */
.wp-block-button__link {
	box-sizing: border-box;
	display: inline-flex;
	min-height: 56px;
	align-items: center;
	justify-content: center;
}

/* Newsletter signup: input and button must match exactly */
.signup-field input[type="email"],
.signup-field button {
	box-sizing: border-box;
	height: 56px;
}

.signup-message {
	margin-top: 16px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.signup-message.is-success {
	color: var(--wp--preset--color--yellow);
}

.signup-message.is-error {
	color: var(--wp--preset--color--red);
}

.signup-field input[type="email"] {
	border: 1px solid rgba(255, 255, 255, 0.22);
	background: rgba(255, 255, 255, 0.04);
	color: var(--wp--preset--color--white);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Secondary "outline" button style (core/button .is-style-outline) */
.wp-block-button.is-style-outline .wp-block-button__link {
	border-color: var(--wp--preset--color--yellow);
	background: transparent;
	color: var(--wp--preset--color--yellow);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--yellow);
	color: var(--wp--preset--color--black);
}

/* Event date badge in the hero meta row */
.event-badge {
	display: inline-flex;
	padding: 9px 13px;
	background: var(--wp--preset--color--red);
	color: var(--wp--preset--color--white);
}

/* Full-bleed section wrapper for the custom section blocks */
.full-bleed {
	width: 100vw;
	margin-left: calc( 50% - 50vw );
	margin-right: calc( 50% - 50vw );
}

/* Decorative rule bars (core/separator with a custom size) */
.rule-bar.wp-block-separator {
	width: 78px;
	height: 7px;
}

.rule-bar-center.wp-block-separator {
	width: 128px;
	height: 4px;
	margin-left: auto;
	margin-right: auto;
}
