/*
 * Encore Modules - shared styles
 * Every rule is scoped to .em so nothing else on encoretours.com changes.
 * Visual language ported from the webinar hub, Taking Your Orchestra on Tour,
 * and Traveling for Impact pages.
 */

/* ------------------------------------------------------------------
 * Tokens and backgrounds
 * --------------------------------------------------------------- */
.em {
	--em-ink: #0b1f3b;
	--em-navy: #071a33;
	--em-blue: #0d4b78;
	--em-deep: #153e5d;
	--em-sky: #9cc8d4;
	--em-gold: #e8b85c;
	--em-gold-hover: #f0c977;
	--em-cream: #f4f0e7;
	--em-paper: #fbfaf7;
	--em-serif: Georgia, "Times New Roman", serif;

	/* Defaults for light backgrounds; dark backgrounds override below. */
	--em-bg: var(--em-paper);
	--em-heading: var(--em-ink);
	--em-text: #4e5b69;
	--em-soft: #6a7480;
	--em-eyebrow: var(--em-blue);
	--em-accent: var(--em-blue);
	--em-rule: rgba(11, 31, 59, 0.16);
	--em-rule-strong: rgba(11, 31, 59, 0.28);
	--em-hover: rgba(11, 31, 59, 0.045);

	background: var(--em-bg);
	color: var(--em-heading);
	font-family: inherit;
}

.em-bg-paper { --em-bg: var(--em-paper); }
.em-bg-white { --em-bg: #fff; }
.em-bg-cream { --em-bg: var(--em-cream); --em-text: #53606e; }
.em-bg-gold { --em-bg: var(--em-gold); --em-text: rgba(11, 31, 59, 0.82); --em-soft: rgba(11, 31, 59, 0.75); --em-rule: rgba(11, 31, 59, 0.25); --em-rule-strong: rgba(11, 31, 59, 0.4); }
.em-bg-blue { --em-bg: var(--em-blue); --em-text: #c5dce3; }
.em-bg-deep { --em-bg: var(--em-deep); --em-text: #d0dde5; }
.em-bg-navy { --em-bg: var(--em-navy); --em-text: #c6d2df; }
.em-dark {
	--em-heading: #fff;
	--em-soft: #9caec2;
	--em-eyebrow: var(--em-sky);
	--em-accent: var(--em-gold);
	--em-rule: rgba(255, 255, 255, 0.22);
	--em-rule-strong: rgba(255, 255, 255, 0.35);
	--em-hover: rgba(255, 255, 255, 0.08);
}

/* ------------------------------------------------------------------
 * Base and layout
 * --------------------------------------------------------------- */
.em *, .em *::before, .em *::after { box-sizing: border-box; }
.em a { text-decoration: none; }
.em p { line-height: 1.65; margin: 0; }
.em p + p { margin-top: 16px; }
.em h1, .em h2, .em h3, .em h4 { color: var(--em-heading); margin: 0; text-transform: none; }
.em h1, .em h2, .em h3, .em .em-display-copy { font-family: var(--em-serif); }
.em h2 { font-size: clamp(42px, 5vw, 76px); font-weight: 500; letter-spacing: -0.045em; line-height: 0.98; }
.em img { height: auto; max-width: 100%; }

/* Full-bleed sections. On the "Encore Modules - Full Width" template the
 * page is already full width; on any other template, sections break out
 * of the theme's container. */
.em-section {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	overflow: hidden;
	padding-bottom: clamp(76px, 9vw, 130px);
	padding-top: clamp(76px, 9vw, 130px);
	position: relative;
	width: 100vw;
}
.em-full-width .em-section { margin-left: 0; margin-right: 0; width: auto; }
body:has(.em-section) { overflow-x: clip; }
.em-spacing-compact { padding-bottom: clamp(50px, 6vw, 80px); padding-top: clamp(50px, 6vw, 80px); }

.em-container {
	margin: 0 auto;
	max-width: 1440px;
	padding-left: clamp(24px, 8vw, 126px);
	padding-right: clamp(24px, 8vw, 126px);
	width: 100%;
}

/* When a Hero is used on the theme's default template, hide the theme's
 * own featured-image hero and the gap above the content. */
body:not(.em-full-width):has(.em-hero) #main > .container > section.hero.overlay { display: none !important; }
body:not(.em-full-width):has(.em-hero) #main > .container > article.margin-top { margin-top: 0 !important; }
body:not(.em-full-width):has(.em-section) #main > .container > article .entry-content { margin: 0; padding: 0; }

/* ------------------------------------------------------------------
 * Shared text pieces
 * --------------------------------------------------------------- */
.em-eyebrow { color: var(--em-eyebrow); font-size: 12px; font-weight: 750; letter-spacing: 0.19em; margin-bottom: 18px !important; text-transform: uppercase; }
.em-lead { color: var(--em-heading); font-size: 19px; margin-bottom: 18px !important; }
.em-link-cards .em-lead { font-size: clamp(18px, 1.5vw, 21px); margin-bottom: 24px !important; }
.em-body, .em-body p { color: var(--em-text); }
.em-body a, .em-fine-print a, .em-hero-intro a, .em-ledger-note a, .em-cta-note a { border-bottom: 1px solid currentColor; color: inherit; }
.em-fine-print, .em-fine-print p { color: var(--em-text); font-size: 13px; }
.em-fine-print { margin-top: 14px; }

.em-section-heading { align-items: end; display: grid; gap: 60px; grid-template-columns: 1.2fr 0.8fr; margin-bottom: clamp(44px, 5vw, 64px); }
.em-section-heading .em-eyebrow { margin-bottom: 16px !important; }
.em-section-heading-intro, .em-section-heading-intro p { color: var(--em-text); font-size: 16px; max-width: 470px; }

.em-text-link { border-bottom: 1px solid var(--em-accent); color: var(--em-accent); display: inline-block; font-size: 13px; font-weight: 700; margin-top: 24px; padding-bottom: 5px; }
.em-text-link:hover { color: var(--em-accent); opacity: 0.8; }

/* ------------------------------------------------------------------
 * Buttons
 * --------------------------------------------------------------- */
.em-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 18px; margin-top: 32px; }
.em-button {
	align-items: center;
	background: var(--em-gold);
	border: 0;
	border-radius: 0;
	color: var(--em-navy);
	display: inline-flex;
	font-family: inherit;
	font-size: 13px;
	font-weight: 750;
	gap: 34px;
	justify-content: space-between;
	letter-spacing: 0.06em;
	line-height: 1.2;
	min-height: 55px;
	padding: 0 22px;
	text-transform: uppercase;
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.em-button:hover, .em-button:focus { background: var(--em-gold-hover); color: var(--em-navy); transform: translateY(-2px); }
.em-button--full { width: 100%; }
.em-button--quiet { background: transparent; box-shadow: inset 0 0 0 1px var(--em-rule-strong); color: var(--em-heading); }
.em-button--quiet:hover, .em-button--quiet:focus { background: var(--em-hover); box-shadow: inset 0 0 0 1px var(--em-heading); color: var(--em-heading); }
/* Gold buttons disappear on a gold band, so use navy there. */
.em-bg-gold .em-button:not(.em-button--quiet) { background: var(--em-navy); color: #fff; }
.em-bg-gold .em-button:not(.em-button--quiet):hover { background: var(--em-ink); color: #fff; }
.em a:focus-visible, .em summary:focus-visible { outline: 3px solid var(--em-gold); outline-offset: 4px; }
.em-bg-gold a:focus-visible { outline-color: var(--em-navy); }

/* ------------------------------------------------------------------
 * Hero
 * --------------------------------------------------------------- */
.em-hero {
	background-color: var(--em-navy);
	background-position: center, center 38%;
	background-repeat: no-repeat;
	background-size: cover;
	padding-bottom: clamp(64px, 7.5vw, 108px);
	padding-top: clamp(68px, 8.5vw, 120px);
}
.em-hero-grid { align-items: end; display: grid; gap: clamp(44px, 7vw, 110px); grid-template-columns: minmax(0, 1fr); }
.em-hero--panel-links .em-hero-grid, .em-hero--panel-event .em-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(300px, 400px); }
.em-hero--panel-event .em-hero-grid { align-items: center; }
.em-hero-copy { max-width: 820px; position: relative; z-index: 2; }
.em-hero-copy > .em-eyebrow { color: #fff; font-size: 13px; letter-spacing: 0.15em; margin-bottom: 0 !important; }
.em-hero h1 { color: #fff; font-size: clamp(60px, 8.1vw, 124px); font-weight: 500; letter-spacing: -0.055em; line-height: 0.86; margin: 26px 0 30px; }
.em-hero--panel-links h1 { font-size: clamp(56px, 7.4vw, 112px); }
.em-display-copy { color: var(--em-gold); font-size: clamp(21px, 2.2vw, 34px); font-style: italic; line-height: 1.3 !important; max-width: 660px; }
.em-hero-intro { margin-top: 28px; max-width: 660px; }
.em-hero-intro, .em-hero-intro p { color: #cad4e0; font-size: 17px; }
.em-hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 26px; margin-top: 38px; }
.em-hero-actions .em-actions { margin-top: 0; }
.em-hero-actions-note, .em-hero-actions-note p { color: #9caec2; font-size: 12px; line-height: 1.5; }
.em-hero-actions-note strong { color: #fff; font-size: 13px; }

/* Gold highlight strip */
.em-hero-hooks { background: var(--em-gold); color: var(--em-navy); display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; margin-bottom: 30px; max-width: 790px; }
.em-hero-hook { color: var(--em-navy); display: block; padding: 18px 21px 19px; }
.em-hero-hook + .em-hero-hook { border-left: 1px solid rgba(11, 31, 59, 0.28); }
.em-hero-hook--link { transition: background-color 0.2s ease; }
.em-hero-hook--link:hover, .em-hero-hook--link:focus { background: rgba(255, 255, 255, 0.18); color: var(--em-navy); }
.em .em-hero-hook--link:focus-visible { outline: 3px solid #fff; outline-offset: -3px; }
.em-hero-hook span, .em-hero-hook strong, .em-hero-hook small { display: block; }
.em-hero-hook > span { font-size: 11px; font-weight: 800; letter-spacing: 0.13em; line-height: 1.3; text-transform: uppercase; }
.em-hero-hook strong { font-family: var(--em-serif); font-size: clamp(20px, 1.75vw, 27px); font-weight: 500; letter-spacing: -0.02em; line-height: 1.08; margin: 8px 0 6px; }
.em-hero-hook small { font-size: 11px; line-height: 1.35; opacity: 0.8; }
.em-hero-hook small span { display: inline; }

/* Decorative concert-hall arches */
.em-hero-lines { bottom: -90px; left: 5%; opacity: 0.09; pointer-events: none; position: absolute; width: 60vw; }
.em-hero-lines span { border: 1px solid #fff; border-radius: 50% 50% 0 0; display: block; height: 370px; position: absolute; width: 100%; }

/* Side panel card (links or event) */
.em-panel-card { background: rgba(251, 250, 247, 0.98); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.28); color: var(--em-ink); padding: 32px; position: relative; z-index: 3; }
.em-card-label { border-bottom: 1px solid rgba(11, 31, 59, 0.16); color: var(--em-ink); font-size: 11px; font-weight: 750; letter-spacing: 0.18em; padding-bottom: 18px; text-transform: uppercase; }
.em-panel-links { display: grid; }
.em-panel-link { align-items: center; border-bottom: 1px solid rgba(11, 31, 59, 0.16); color: var(--em-ink); display: grid; gap: 16px; grid-template-columns: 40px minmax(0, 1fr) auto; padding: 20px 0; transition: background-color 0.18s ease, padding 0.18s ease; }
.em-panel-link:hover, .em-panel-link:focus { background: rgba(11, 31, 59, 0.045); color: var(--em-ink); padding-left: 10px; padding-right: 10px; }
.em-panel-link-number { color: var(--em-blue); font-family: var(--em-serif); font-size: 25px; line-height: 1; }
.em-panel-link strong { color: var(--em-ink); display: block; font-family: var(--em-serif); font-size: 23px; font-weight: 500; letter-spacing: -0.02em; line-height: 1.12; }
.em-panel-link small { color: #66717d; display: block; font-size: 11px; line-height: 1.4; margin-top: 5px; }
.em-panel-link em { color: var(--em-blue); font-family: var(--em-serif); font-size: 16px; font-style: normal; }
.em-panel-note { color: #66717d; font-size: 11px; line-height: 1.5 !important; margin-top: 18px !important; }

.em-event-card { padding: 34px; }
.em-date-lockup { align-items: center; display: grid; grid-template-columns: auto 1fr auto; margin: 18px 0 22px; }
.em-date-month { color: var(--em-blue); font-size: 18px; font-weight: 850; letter-spacing: 0.16em; line-height: 1; transform: rotate(180deg); writing-mode: vertical-rl; }
.em-date-lockup strong { color: var(--em-ink); font-family: var(--em-serif); font-size: 128px; font-weight: 500; letter-spacing: -0.08em; line-height: 0.88; text-align: center; }
.em-date-year { color: var(--em-ink); font-size: 15px; font-weight: 800; letter-spacing: 0.06em; writing-mode: vertical-rl; }
.em-event-card dl { border-top: 1px solid rgba(11, 31, 59, 0.16); margin: 0 0 26px; }
.em-event-card dl div { border-bottom: 1px solid rgba(11, 31, 59, 0.16); display: flex; gap: 16px; justify-content: space-between; padding: 13px 0; }
.em-event-card dt { color: #5d6977; font-size: 12px; font-weight: 400; }
.em-event-card dd { color: var(--em-ink); font-size: 12px; font-weight: 700; margin: 0; text-align: right; }
.em-event-card-action { display: flex; }
.em-event-card > small { color: #6a7480; display: block; font-size: 10px; margin-top: 13px; text-align: center; }

/* ------------------------------------------------------------------
 * Image + Text
 * --------------------------------------------------------------- */
.em-media-grid { align-items: stretch; display: grid; gap: clamp(40px, 6vw, 96px); }
.em-image-text--image-left.em-image-text--wide .em-media-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
.em-image-text--image-right.em-image-text--wide .em-media-grid { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
.em-image-text--image-left.em-image-text--xwide .em-media-grid { grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr); }
.em-image-text--image-right.em-image-text--xwide .em-media-grid { grid-template-columns: minmax(300px, 0.75fr) minmax(0, 1.25fr); }
.em-image-text--xwide .em-media-figure { min-height: 380px; }
.em-image-text--balanced .em-media-grid { grid-template-columns: 1fr 1fr; }
.em-image-text--image-left.em-image-text--narrow .em-media-grid { grid-template-columns: minmax(240px, 380px) minmax(0, 1fr); }
.em-image-text--image-right.em-image-text--narrow .em-media-grid { grid-template-columns: minmax(0, 1fr) minmax(240px, 380px); }

.em-media-figure { display: flex; flex-direction: column; margin: 0; min-height: 320px; }
.em-spacing-compact .em-media-figure { min-height: 220px; }
.em-media-figure img { display: block; flex: 1; height: 100%; min-height: inherit; object-fit: cover; width: 100%; }
.em-image-text--fit-contain .em-media-grid { align-items: center; }
.em-image-text--fit-contain .em-media-figure, .em-image-text--fit-contain.em-image-text--xwide .em-media-figure { min-height: 0; }
.em-image-text--fit-contain .em-media-figure img { flex: none; height: auto; min-height: 0; object-fit: contain; }
.em-image-text--fit-cover-art .em-media-figure { align-items: center; padding: 8px 0 24px; }
.em-image-text--fit-cover-art .em-media-figure img { box-shadow: 0 2px 4px rgba(17, 17, 17, 0.12), 0 24px 48px rgba(17, 17, 17, 0.22); max-width: 300px; }
.em-media-caption { border-bottom: 1px solid var(--em-rule); color: var(--em-soft); font-size: 11px; letter-spacing: 0.1em; padding: 0 0 12px; text-transform: uppercase; }
.em-media-caption + img, .em-media-caption + .em-media-link { margin-top: 0; }
.em-media-link { display: block; flex: 1; min-height: inherit; overflow: hidden; position: relative; }
.em-media-link img { height: 100%; position: absolute; inset: 0; transition: transform 0.35s ease; }
.em-media-link:hover img { transform: scale(1.025); }
.em-media-overlay { background: linear-gradient(transparent, rgba(7, 26, 51, 0.92)); bottom: 0; left: 0; padding: 44px 30px 26px; position: absolute; right: 0; }
.em-media-overlay strong { color: #fff; display: block; font-family: var(--em-serif); font-size: 28px; font-weight: 500; line-height: 1.15; }
.em-media-overlay small { color: var(--em-sky); display: block; font-size: 10px; font-weight: 750; letter-spacing: 0.12em; margin-top: 7px; text-transform: uppercase; }
.em-media-copy { align-self: center; }
.em-media-copy h2 { margin-bottom: 22px; }
.em-spacing-compact .em-media-copy .em-eyebrow { margin-bottom: 4px !important; }
.em-spacing-compact .em-media-copy .em-body p { font-size: 16px; }

.em-bullets { border-bottom: 1px solid var(--em-rule); list-style: none; margin: 30px 0 2px; padding: 0; }
.em-bullets li { border-top: 1px solid var(--em-rule); color: var(--em-heading); font-size: 14px; line-height: 1.5; margin: 0; padding: 14px 0 14px 25px; position: relative; }
.em-bullets li::before { color: var(--em-gold); content: "+"; font-family: var(--em-serif); font-size: 20px; left: 0; line-height: 1; position: absolute; top: 12px; }
.em-bg-paper .em-bullets li::before, .em-bg-white .em-bullets li::before, .em-bg-cream .em-bullets li::before { color: var(--em-blue); }

.em-perks { border-bottom: 1px solid var(--em-rule); border-top: 1px solid var(--em-rule); display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; margin: 28px 0 0; }
.em-perk { padding: 20px 22px 20px 0; }
.em-perk + .em-perk { border-left: 1px solid var(--em-rule); padding-left: 22px; }
.em-perk span { color: var(--em-accent); display: block; font-size: 10px; font-weight: 800; letter-spacing: 0.13em; line-height: 1.4; text-transform: uppercase; }
.em-perk strong { color: var(--em-heading); display: block; font-family: var(--em-serif); font-size: 22px; font-weight: 500; letter-spacing: -0.02em; line-height: 1.15; margin: 8px 0 5px; }
.em-perk small { color: var(--em-soft); display: block; font-size: 11px; line-height: 1.4; }
.em-perks + .em-actions { margin-top: 28px; }

/* ------------------------------------------------------------------
 * Video + Text
 * --------------------------------------------------------------- */
.em-video-grid { align-items: center; display: grid; gap: clamp(40px, 6vw, 90px); grid-template-columns: minmax(280px, 420px) minmax(0, 1fr); }
.em-video-copy h2 { margin-bottom: 22px; }
.em-video-copy .em-body p { font-size: 17px; }
.em-video-card { background: var(--em-paper); border: 1px solid rgba(11, 31, 59, 0.16); box-shadow: 0 24px 60px rgba(11, 31, 59, 0.16); padding: 22px; position: relative; scroll-margin-top: 40px; }
.em-video-frame { background: #000; overflow: hidden; padding-top: 56.25%; position: relative; width: 100%; }
.em-video-frame iframe, .em-video-frame video { border: 0; height: 100%; left: 0; position: absolute; top: 0; width: 100%; }
.em-video-frame video { background: #000; object-fit: cover; } /* Fills the frame, so a cover image of any shape has no black bars. */
.em-video-caption { color: #6a7480; font-size: 11px; letter-spacing: 0.04em; margin-top: 15px !important; text-align: center; text-transform: uppercase; }

/* ------------------------------------------------------------------
 * People Grid
 * --------------------------------------------------------------- */
.em-people-grid { display: grid; gap: 25px; }
.em-people-grid.em-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.em-people-grid.em-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.em-person-name { font-weight: 500; }
.em-person-role { color: var(--em-soft); }
.em-person-bio, .em-person-bio p { color: var(--em-text); }

/* Cards style */
.em-people--cards .em-person { background: var(--em-paper); border-bottom: 3px solid var(--em-blue); display: flex; flex-direction: column; height: 100%; }
.em-people--cards .em-person-photo { aspect-ratio: 3 / 2; display: block; object-fit: cover; object-position: center; width: 100%; }
.em-people--cards .em-person-copy { display: flex; flex: 1; flex-direction: column; padding: 27px 28px 30px; }
.em-person-label { color: var(--em-blue); font-size: 9px; font-weight: 750; letter-spacing: 0.13em; text-transform: uppercase; }
.em-people--cards .em-person-name { color: var(--em-ink); font-size: 27px; margin-top: 10px; }
.em-people--cards .em-person-role { color: #64707c; font-size: 12px; font-weight: 600; margin: 5px 0 18px; }
.em-people--cards .em-person-bio, .em-people--cards .em-person-bio p { color: #596572; font-size: 13px; }

/* Portrait style */
.em-people--portrait .em-people-grid { gap: clamp(40px, 6vw, 90px); }
.em-people--portrait .em-person-photo { aspect-ratio: 4 / 4.7; display: block; margin-bottom: 22px; max-width: 260px; object-fit: cover; width: 100%; }
.em-people--portrait .em-person-name { font-size: 24px; margin-bottom: 4px; }
.em-people--portrait .em-person-role { color: var(--em-accent); font-size: 13px; font-weight: 650; margin-bottom: 14px; }
.em-people--portrait .em-person-bio, .em-people--portrait .em-person-bio p { font-size: 15px; max-width: 420px; }
.em-people--portrait .em-person-bio a { border-bottom: 1px solid currentColor; color: inherit; }

/* No-photo placeholder */
.em-person-photo--placeholder { align-items: center; background: var(--em-hover); border: 1px dashed var(--em-rule-strong); color: var(--em-soft); display: flex; font-size: 13px; font-weight: 750; justify-content: center; letter-spacing: 0.14em; text-transform: uppercase; }
.em-people--cards .em-person-photo--placeholder { aspect-ratio: 3 / 1; background: linear-gradient(145deg, #9bb8c2, #527a8c); border: 0; color: #fff; display: flex; font-family: var(--em-serif); font-size: 40px; letter-spacing: 0.04em; }
.em-person--placeholder .em-person-name { opacity: 0.75; }
.em-people--portrait .em-person-photo--placeholder { display: flex; }

/* ------------------------------------------------------------------
 * Profile
 * --------------------------------------------------------------- */
.em-profile { padding-bottom: clamp(70px, 7vw, 100px); padding-top: clamp(70px, 7vw, 100px); }
.em-profile-grid { align-items: center; display: grid; gap: clamp(55px, 8vw, 120px); grid-template-columns: minmax(280px, 0.62fr) minmax(0, 1.38fr); }
.em-profile--no-photo .em-profile-grid { grid-template-columns: 1fr; }
.em-profile-photo { aspect-ratio: 4 / 4.7; display: block; max-width: 380px; object-fit: cover; width: 100%; }
.em-profile-copy h2 { margin-bottom: 8px; }
.em-profile-title { color: var(--em-accent); font-family: var(--em-serif); font-size: 23px; font-style: italic; margin-bottom: 30px !important; }
.em-profile-copy .em-body { max-width: 700px; }

/* ------------------------------------------------------------------
 * Numbered List
 * --------------------------------------------------------------- */
.em-list-grid { display: grid; gap: clamp(60px, 10vw, 150px); grid-template-columns: 0.8fr 1.2fr; }
.em-list-copy h2 { margin-bottom: 28px; }
.em-list-copy .em-body { max-width: 500px; }
.em-list-copy .em-actions { margin-top: 34px; }
.em-numbered { list-style: none; margin: 0; padding: 0; }
.em-numbered li { align-items: center; border-top: 1px solid var(--em-rule); display: flex; gap: 26px; margin: 0; padding: 21px 0; }
.em-numbered li:last-child { border-bottom: 1px solid var(--em-rule); }
.em-numbered span { color: var(--em-blue); flex: none; font-family: var(--em-serif); font-size: 13px; }
.em-dark .em-numbered span { color: #87b6c5; }
.em-numbered strong { color: var(--em-heading); font-size: 16px; font-weight: 520; line-height: 1.45; }

/* ------------------------------------------------------------------
 * Offer Band
 * --------------------------------------------------------------- */
.em-offer-grid { align-items: center; display: grid; gap: clamp(35px, 5vw, 76px); grid-template-columns: auto 1fr 0.7fr; }
.em-offer--no-badge .em-offer-grid { grid-template-columns: 1fr 0.7fr; }
.em-roundel { align-items: center; border: 1px solid var(--em-rule-strong); border-radius: 50%; color: var(--em-heading); display: flex; flex-direction: column; height: 126px; justify-content: center; width: 126px; }
.em-roundel span { font-size: 11px; font-weight: 800; letter-spacing: 0.2em; }
.em-roundel strong { font-family: var(--em-serif); font-size: 46px; font-weight: 400; line-height: 0.8; }
.em-offer h2 { font-size: clamp(40px, 4.3vw, 65px); margin-bottom: 22px; }
.em-offer-values { border-left: 1px solid var(--em-rule-strong); padding-left: clamp(30px, 4vw, 60px); }
.em-offer-values > div { align-items: baseline; display: flex; gap: 16px; justify-content: space-between; }
.em-offer-values small { color: var(--em-heading); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.em-offer-values strong { color: var(--em-heading); font-family: var(--em-serif); font-size: 48px; font-weight: 500; }
.em-offer-values p { border-top: 1px solid var(--em-rule); color: var(--em-text); font-size: 10px; margin-top: 14px !important; padding-top: 14px; }

/* ------------------------------------------------------------------
 * Text + Link Cards
 * --------------------------------------------------------------- */
.em-two-column { display: grid; gap: clamp(50px, 9vw, 130px); grid-template-columns: 1fr 1fr; }
.em-link-cards-copy h2 { margin-bottom: 30px; }
.em-cover { box-shadow: 0 20px 45px rgba(11, 31, 59, 0.18); display: block; height: auto; margin-bottom: 28px; width: 200px; }
.em-cards { border-top: 1px solid var(--em-rule); }
.em-card { border-bottom: 1px solid var(--em-rule); color: inherit; display: block; padding: 32px 0; transition: background-color 0.2s ease, padding-left 0.2s ease, padding-right 0.2s ease; }
a.em-card:hover, a.em-card:focus { background: var(--em-hover); color: inherit; padding-left: 18px; padding-right: 18px; }
a.em-card:hover h3, a.em-card:focus h3 { color: var(--em-accent); }
.em-card-kicker { color: var(--em-accent); display: block; font-size: 11px; font-weight: 750; letter-spacing: 0.15em; text-transform: uppercase; }
.em-card h3 { font-size: 29px; font-weight: 500; line-height: 1.15; margin: 13px 0 10px; transition: color 0.2s ease; }
.em-card p { color: var(--em-text); font-size: 14px; }
.em-card-cta { color: var(--em-accent); display: inline-block; font-size: 11px; font-weight: 750; letter-spacing: 0.15em; margin-top: 16px; text-transform: uppercase; }

/* ------------------------------------------------------------------
 * Link Ledger
 * --------------------------------------------------------------- */
.em-ledger-groups { display: grid; gap: clamp(44px, 6vw, 90px) clamp(40px, 6vw, 90px); grid-template-columns: 1fr 1fr; }
.em-ledger--full { grid-column: 1 / -1; }
.em-ledger h3 { border-bottom: 1px solid var(--em-rule-strong); font-family: inherit; font-size: 11px; font-weight: 800; letter-spacing: 0.16em; padding-bottom: 14px; text-transform: uppercase; }
.em-ledger a { align-items: baseline; border-bottom: 1px solid var(--em-rule); color: var(--em-heading); display: grid; gap: 18px; grid-template-columns: 92px 1fr auto; padding: 15px 0; transition: background-color 0.18s ease, padding-left 0.18s ease; }
.em-ledger a:hover, .em-ledger a:focus { background: var(--em-hover); color: var(--em-heading); padding-left: 8px; }
.em-ledger a small { color: var(--em-soft); font-size: 10px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.em-ledger a span { font-size: 15px; line-height: 1.4; }
.em-ledger a em { color: var(--em-accent); font-family: var(--em-serif); font-size: 15px; font-style: normal; }
.em-ledger-note { margin-top: 34px; max-width: 720px; }
.em-ledger-note, .em-ledger-note p { color: var(--em-text); font-size: 13px; }

/* ------------------------------------------------------------------
 * Link Band
 * --------------------------------------------------------------- */
.em-band-grid { align-items: center; display: grid; gap: clamp(40px, 6vw, 96px); grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
.em-band-copy h2 { margin-bottom: 22px; }
.em-band-copy .em-body { max-width: 560px; }
.em-band-links { display: grid; gap: 14px; }
.em-band-links a { border: 1px solid var(--em-rule-strong); color: var(--em-heading); display: block; padding: 20px 22px; transition: background-color 0.2s ease, border-color 0.2s ease; }
.em-band-links a:hover, .em-band-links a:focus { background: var(--em-hover); border-color: var(--em-heading); color: var(--em-heading); }
.em-band-links strong { display: block; font-family: var(--em-serif); font-size: 22px; font-weight: 500; line-height: 1.2; }
.em-band-links small { color: var(--em-eyebrow); display: block; font-size: 11px; letter-spacing: 0.04em; line-height: 1.4; margin-top: 6px; }

/* ------------------------------------------------------------------
 * FAQ
 * --------------------------------------------------------------- */
.em-faq-grid { display: grid; gap: 70px; grid-template-columns: 0.65fr 1.35fr; }
.em-faq-list { border-top: 1px solid var(--em-rule); }
.em-faq details { border-bottom: 1px solid var(--em-rule); padding: 23px 0; }
.em-faq summary { color: var(--em-heading); cursor: pointer; display: flex; font-size: 16px; font-weight: 650; gap: 24px; justify-content: space-between; line-height: 1.45; list-style: none; }
.em-faq summary::-webkit-details-marker { display: none; }
.em-faq summary span { color: var(--em-accent); flex: none; font-family: var(--em-serif); font-size: 25px; font-weight: 400; line-height: 0.7; transition: transform 0.2s ease; }
.em-faq details[open] summary span { transform: rotate(45deg); }
.em-faq-answer { max-width: 690px; padding: 18px 50px 0 0; }
.em-faq-answer, .em-faq-answer p { color: var(--em-text); font-size: 14px; }

/* ------------------------------------------------------------------
 * Closing CTA
 * --------------------------------------------------------------- */
.em-closing-cta { text-align: center; }
.em-closing-cta h2 { margin: 6px auto 38px; max-width: 1020px; }
.em-closing-cta .em-actions { justify-content: center; margin-top: 0; }
.em-cta-note { margin-top: 24px; }
.em-cta-note, .em-cta-note p { color: var(--em-text); font-size: 12px; }
.em-dark .em-cta-note a { border-color: var(--em-gold); color: var(--em-gold); }

/* ------------------------------------------------------------------
 * Hero additions: stat lockup and steps band
 * --------------------------------------------------------------- */
.em-stat-lockup { align-items: flex-end; display: flex; gap: 14px; margin: 24px 0 25px; }
.em-stat-lockup strong { color: var(--em-ink); font-family: var(--em-serif); font-size: 108px; font-weight: 500; letter-spacing: -0.08em; line-height: 0.75; }
.em-stat-lockup span { color: var(--em-blue); font-size: 10px; font-weight: 800; letter-spacing: 0.13em; line-height: 1.45; max-width: 90px; padding-bottom: 3px; text-transform: uppercase; }
.em-hero-steps { background: var(--em-gold); box-shadow: 0 18px 42px rgba(0, 0, 0, 0.18); color: var(--em-navy); display: grid; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; list-style: none; margin: clamp(42px, 5vw, 64px) 0 0; padding: 0; position: relative; z-index: 2; }
.em-hero-steps li { margin: 0; padding: 21px clamp(22px, 3vw, 38px) 22px; }
.em-hero-steps li + li { border-left: 1px solid rgba(11, 31, 59, 0.28); }
.em-hero-steps span, .em-hero-steps strong, .em-hero-steps small { display: block; }
.em-hero-steps span { font-size: 10px; font-weight: 850; letter-spacing: 0.13em; text-transform: uppercase; }
.em-hero-steps strong { font-family: var(--em-serif); font-size: clamp(19px, 1.8vw, 27px); font-weight: 500; line-height: 1.08; margin: 8px 0 6px; }
.em-hero-steps small { font-size: 11px; line-height: 1.45; opacity: 0.88; }
.em-hero-steps small span { display: inline; }
.em-hero-steps a { border-bottom: 1px solid currentColor; color: var(--em-navy); font-weight: 800; }
.em-hero-steps a:hover { color: var(--em-navy); opacity: 0.8; }
/* Experiences: dark glass cards with a gold top edge. */
.em-brand-experiences .em-hero-steps { background: none; box-shadow: none; color: #fff; gap: 18px; }
.em-brand-experiences .em-hero-steps li { -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); background: rgba(12, 12, 12, 0.62); border: 1px solid rgba(255, 255, 255, 0.12); border-top: 2px solid var(--em-gold); box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35); padding: 30px 30px 32px; }
.em-brand-experiences .em-hero-steps li + li { border: 1px solid rgba(255, 255, 255, 0.12); border-top: 2px solid var(--em-gold); }
.em-brand-experiences .em-hero-steps span { color: var(--em-gold); font-size: 11px; font-weight: 800; letter-spacing: 0.18em; }
.em-brand-experiences .em-hero-steps strong { color: #fff; font-size: clamp(26px, 2.3vw, 32px); font-weight: 400; letter-spacing: -0.01em; line-height: 1.05; margin: 12px 0 10px; }
.em-brand-experiences .em-hero-steps small { color: rgba(255, 255, 255, 0.74); font-size: 14px; line-height: 1.55; opacity: 1; }
.em-brand-experiences .em-hero-steps small span { color: inherit; font-size: inherit; font-weight: inherit; letter-spacing: inherit; }
.em-brand-experiences .em-hero-steps a { color: var(--em-gold); }
.em-brand-experiences .em-hero-steps a:hover { color: #90dedd; opacity: 1; }

/* Image + Text additions */
.em-media-figure { position: relative; }
.em-media-overlay--static { pointer-events: none; }
.em-media-overlay--static small { margin: 0 0 9px; }
.em-button-note { color: var(--em-soft); font-size: 11px; line-height: 1.5 !important; margin-top: 14px !important; }

/* ------------------------------------------------------------------
 * Section Nav
 * --------------------------------------------------------------- */
.em-section-nav { background: #fff; border-bottom: 1px solid rgba(11, 31, 59, 0.16); margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); position: relative; width: 100vw; z-index: 50; }
.em-full-width .em-section-nav { margin-left: 0; margin-right: 0; width: auto; }
.em-section-nav--sticky { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); }
/* The theme sets overflow: hidden on <main>, which stops sticky elements inside it. clip hides overflow the same way without breaking sticky. */
main:has(.em-section-nav--sticky), #main:has(.em-section-nav--sticky) { overflow: clip; }
.em-section-nav-inner { display: flex; justify-content: center; margin: 0 auto; max-width: 1180px; overflow-x: auto; scrollbar-width: none; }
.em-section-nav-inner::-webkit-scrollbar { display: none; }
.em-section-nav-link { align-items: center; border-left: 1px solid rgba(11, 31, 59, 0.1); color: var(--em-ink); display: inline-flex; flex: none; font-size: 12px; font-weight: 800; justify-content: center; letter-spacing: 0.06em; line-height: 1; min-height: 54px; padding: 0 24px; text-transform: uppercase; transition: background-color 0.18s ease, color 0.18s ease; white-space: nowrap; }
.em-section-nav-link:last-child { border-right: 1px solid rgba(11, 31, 59, 0.1); }
.em-section-nav-link--plain:hover, .em-section-nav-link--plain:focus { background: var(--em-cream); color: var(--em-blue); }
.em-section-nav-link--blue { background: var(--em-blue); color: #fff; }
.em-section-nav-link--gold { background: var(--em-gold); color: var(--em-navy); }
.em-section-nav-link--navy { background: #242f4b; color: #fff; }
.em-section-nav-link--blue:hover, .em-section-nav-link--navy:hover { background: var(--em-navy); color: #fff; }
.em-section-nav-link--gold:hover { background: var(--em-gold-hover); color: var(--em-navy); }
.em-section-nav-link:focus-visible { outline: 3px solid var(--em-gold); outline-offset: -3px; }
.em-section[id], .em-section-nav ~ .em-section { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + 54px); }

/* ------------------------------------------------------------------
 * Card Grid
 * --------------------------------------------------------------- */
.em-grid-cards { display: grid; gap: 22px; grid-template-columns: repeat(var(--em-cols, 3), minmax(0, 1fr)); }
.em-grid-cards--2 { --em-cols: 2; }
.em-grid-cards--4 { --em-cols: 4; }
.em-grid-card { --em-heading: var(--em-ink); display: flex; flex-direction: column; }
.em-grid-card-body { display: flex; flex: 1; flex-direction: column; }
.em-grid-card-kicker { color: var(--em-blue); font-size: 10px; font-weight: 850; letter-spacing: 0.14em; text-transform: uppercase; }
.em-grid-card h3 { font-size: clamp(24px, 2vw, 29px); font-weight: 500; letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 12px; }
.em-grid-card-text { color: #53606e; font-size: 13px; }
.em-card-grid--covers .em-grid-card-text, .em-card-grid--numbered .em-grid-card-text { flex: 1 0 auto; }
.em-grid-card-meta { border-top: 1px solid rgba(11, 31, 59, 0.16); color: var(--em-blue); font-size: 10px; font-weight: 850; letter-spacing: 0.08em; margin-top: auto !important; padding-top: 14px; text-transform: uppercase; }
.em-grid-card-text + .em-grid-card-meta { margin-top: 22px !important; }
.em-grid-card-action { margin-top: 22px; }
.em-grid-card-action .em-button { background: var(--em-blue); color: #fff; font-size: 12px; min-height: 48px; padding: 0 18px; }
.em-grid-card-action .em-button:hover, .em-grid-card-action .em-button:focus { background: var(--em-navy); color: #fff; }

/* Tiles */
.em-card-grid--tiles .em-grid-card { background: var(--em-cream); border: 1px solid rgba(11, 31, 59, 0.12); border-bottom: 4px solid var(--em-gold); min-height: 245px; padding: 29px; }
.em-card-grid--tiles .em-grid-card:not(:has(.em-grid-card-action)) { min-height: 0; } /* Text-only cards: no empty band at the bottom. */
.em-card-grid--tiles .em-grid-card--photo { display: flex; flex-direction: column; min-height: 0; padding: 0; }
.em-card-grid--tiles .em-grid-card--photo .em-grid-card-body { display: flex; flex: 1 0 auto; flex-direction: column; padding: 26px 29px 29px; }
.em-card-grid--tiles .em-grid-card--photo .em-grid-card-kicker { margin-bottom: 14px; }
.em-card-grid--tiles .em-grid-card--photo .em-grid-card-action { margin-top: auto; padding-top: 22px; }
.em-grid-card-photo { aspect-ratio: 3 / 2; background: #e9edf1; overflow: hidden; }
.em-grid-card-photo img { display: block; height: 100%; object-fit: cover; width: 100%; }
.em-form-panel--photo { background-position: center, center; background-repeat: no-repeat; background-size: cover; }
.em-bg-cream.em-card-grid--tiles .em-grid-card { background: #fff; }
.em-card-grid--tiles .em-grid-card-kicker { margin-bottom: 42px; }
.em-card-grid--tiles .em-grid-card-text + .em-grid-card-meta { margin-top: 22px !important; }
.em-grid-card--highlight { background: #242f4b !important; border-color: #242f4b !important; border-bottom-color: var(--em-gold) !important; }
.em-grid-card--highlight .em-grid-card-kicker { color: var(--em-gold); }
.em-grid-card--highlight h3, .em-grid-card--highlight .em-grid-card-text { color: #fff; }
.em-grid-card--highlight .em-grid-card-meta { border-color: rgba(255, 255, 255, 0.22); color: var(--em-gold); }

/* Covers */
.em-card-grid--covers .em-grid-card { background: var(--em-paper); box-shadow: 0 20px 50px rgba(0, 0, 0, 0.12); }
.em-card-grid--covers .em-grid-card-media { align-items: center; background: #e9edf1; display: flex; height: 230px; justify-content: center; padding: 14px 14px 0; }
.em-card-grid--covers .em-grid-card-media img { box-shadow: 0 10px 24px rgba(0, 0, 0, 0.16); display: block; height: 100%; max-width: 100%; object-fit: contain; width: auto; }
.em-card-grid--covers .em-grid-card-body { padding: 26px 20px 22px; }
.em-card-grid--covers .em-grid-card-kicker { margin-bottom: 12px; }
.em-card-grid--covers .em-grid-card-meta { margin-top: 22px !important; }

/* Numbered */
.em-card-grid--numbered .em-grid-card { background: #fff; border: 1px solid rgba(11, 31, 59, 0.12); border-bottom: 4px solid var(--em-gold); display: grid; gap: 0 20px; grid-template-columns: 40px minmax(0, 1fr); padding: 22px 20px 22px 20px; }
.em-card-grid--numbered .em-grid-card-number { border-right: 1px solid rgba(11, 31, 59, 0.16); color: var(--em-blue); font-family: var(--em-serif); font-size: 18px; line-height: 1.2; }
.em-card-grid--numbered .em-grid-card-kicker { margin-bottom: 10px; }
.em-card-grid--numbered .em-grid-card-meta { color: var(--em-blue); font-size: 11px; letter-spacing: 0; margin-top: 22px !important; text-transform: none; }

/* Callout bar */
.em-grid-callout { align-items: center; background: var(--em-cream); border-left: 4px solid var(--em-gold); display: grid; gap: 20px 40px; grid-template-columns: 1fr 1fr; margin-top: 22px; padding: 26px 22px; }
.em-bg-cream .em-grid-callout { background: #fff; }
.em-grid-callout strong { color: var(--em-ink); font-family: var(--em-serif); font-size: clamp(20px, 1.6vw, 24px); font-weight: 400; line-height: 1.2; }
.em-grid-callout div, .em-grid-callout p { color: #53606e; font-size: 12px; line-height: 1.6; }
.em-grid-callout a { border-bottom: 1px solid currentColor; color: var(--em-blue); font-weight: 750; }
.em-dark .em-grid-callout { background: rgba(255, 255, 255, 0.06); }
.em-dark .em-grid-callout strong { color: #fff; }
.em-dark .em-grid-callout div, .em-dark .em-grid-callout p { color: var(--em-text); }

/* ------------------------------------------------------------------
 * Form + Checklist
 * --------------------------------------------------------------- */
.em-form-grid { align-items: start; display: grid; gap: clamp(44px, 6vw, 70px); grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
.em-form-copy h2, .em-form-copy h1 { margin-bottom: 26px; }
.em-form-copy h1 { font-size: clamp(48px, 5.4vw, 80px); font-weight: 500; letter-spacing: -0.03em; line-height: 1; }
.em-form-copy .em-body p { font-size: 15px; }
.em-checklist { border-bottom: 1px solid var(--em-rule); list-style: none; margin: 4px 0 0; padding: 0; }
.em-checklist li { border-top: 1px solid var(--em-rule); color: var(--em-heading); font-size: 13px; font-weight: 600; line-height: 1.45; margin: 0; padding: 15px 0 15px 22px; position: relative; }
.em-checklist li::before { color: var(--em-gold); content: "\2713"; font-weight: 800; left: 0; position: absolute; top: 15px; }
.em-dark .em-checklist li { color: #fff; }
.em-form-note, .em-form-note p { color: var(--em-text); font-size: 11px; line-height: 1.6; }
.em-form-note { margin-top: 18px; }
.em-form-panel-card { background: var(--em-paper); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.2); color: var(--em-ink); padding: clamp(26px, 3vw, 34px); }
.em-form-panel-head { border-bottom: 1px solid rgba(11, 31, 59, 0.16); margin-bottom: 24px; padding-bottom: 20px; }
.em-form-panel-head h3 { color: var(--em-ink); font-size: clamp(26px, 2.2vw, 32px); font-weight: 500; letter-spacing: -0.02em; line-height: 1.1; }
.em-form-panel-head p { color: #53606e; font-size: 13px; line-height: 1.55; margin-top: 8px; }
.em-form-placeholder { background: #f4f0e7; border: 1px dashed #0d4b78; color: #0d4b78; font-size: 13px; padding: 22px; }
.em-form-panel-card .nf-form-cont .submit-container input[type="button"], .em-form-panel-card .nf-form-cont input[type="submit"] { background: var(--em-gold); border: 0; color: var(--em-navy); font-weight: 750; letter-spacing: 0.06em; min-height: 52px; text-transform: uppercase; width: 100%; }
.em-form-panel-card .nf-form-cont .submit-container input[type="button"]:hover { background: var(--em-gold-hover); }
/* Marketo forms inside a Form panel: full-width fields in the module's type. */
/* One gap per field; hidden Marketo rows take no space; short pairs share a row when there's room. */
:is(.em-form-panel-card, .em-plan-form) { container-type: inline-size; }
:is(.em-form-panel-card, .em-plan-form) .mktoForm { display: grid !important; font-family: inherit !important; gap: 14px 16px; grid-template-columns: minmax(0, 1fr); padding: 0 !important; width: 100% !important; }
:is(.em-form-panel-card, .em-plan-form) .mktoForm > * { grid-column: 1 / -1; }
:is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoFormRow:not(:has(.mktoFieldWrap)) { display: none !important; }
:is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoOffset, :is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoGutter, :is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoAsterix { display: none !important; }
:is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoFormRow, :is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoFormCol, :is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoFieldWrap { float: none !important; margin: 0 !important; width: 100% !important; }
:is(.em-form-panel-card, .em-plan-form) .mktoForm label.mktoLabel { color: var(--em-blue); float: none !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.12em; padding: 0 0 5px !important; text-transform: uppercase; width: auto !important; }
:is(.em-form-panel-card, .em-plan-form) .mktoForm input[type="text"], :is(.em-form-panel-card, .em-plan-form) .mktoForm input[type="email"], :is(.em-form-panel-card, .em-plan-form) .mktoForm input[type="tel"], :is(.em-form-panel-card, .em-plan-form) .mktoForm select, :is(.em-form-panel-card, .em-plan-form) .mktoForm textarea { background: #fff !important; border: 1px solid rgba(17, 17, 17, 0.2) !important; border-radius: 0 !important; box-shadow: none !important; box-sizing: border-box; font: inherit !important; font-size: 15px !important; min-height: 46px; padding: 10px 12px !important; width: 100% !important; }
:is(.em-form-panel-card, .em-plan-form) .mktoForm textarea { min-height: 88px !important; }
@container (min-width: 440px) {
	:is(.em-form-panel-card, .em-plan-form) .mktoForm { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	:is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoFormRow:has(:is([name="FirstName"], [name="LastName"])),
	:is(.em-form-panel-card, .em-plan-form) .mktoForm:has([name="Phone"]) .mktoFormRow:has(:is([name="Email"], [name="Phone"])),
	:is(.em-form-panel-card, .em-plan-form) .mktoForm:has([name="State"]):has([name="Company"]) .mktoFormRow:has(:is([name="State"], [name="Company"])),
	:is(.em-form-panel-card, .em-plan-form) .mktoForm:has([name="new_accountstate_lead"]):has([name="address2_telephone1"]) .mktoFormRow:has(:is([name="new_accountstate_lead"], [name="address2_telephone1"])) { grid-column: auto; }
}
:is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoButtonRow, :is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoButtonWrap { display: block !important; margin: 4px 0 0 !important; width: 100%; }
:is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoButton { background: var(--em-gold) !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; color: var(--em-navy) !important; cursor: pointer; font: inherit !important; font-size: 13px !important; font-weight: 750 !important; letter-spacing: 0.08em; min-height: 52px; padding: 0 22px !important; text-transform: uppercase; width: 100%; }
:is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoButton:hover { background: var(--em-gold-hover) !important; }
.em-brand-experiences :is(.em-form-panel-card, .em-plan-form) .mktoForm .mktoButton:hover { background: #90dedd !important; }
.em-form-panel-card .nf-form-cont .nf-fu-fileinput-button { background: var(--em-blue); border: 0; border-radius: 0; color: #fff; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; }
.em-form-panel-card .nf-form-cont .nf-fu-fileinput-button:hover, .em-form-panel-card .nf-form-cont .nf-fu-fileinput-button:focus { background: var(--em-navy); color: #fff; }

/* ------------------------------------------------------------------
 * Editor placeholder
 * --------------------------------------------------------------- */
.em-empty-notice { background: #f4f0e7; border: 1px dashed #0d4b78; color: #0d4b78; font-size: 14px; padding: 28px; text-align: center; }

/* ------------------------------------------------------------------
 * Responsive
 * --------------------------------------------------------------- */
@media (max-width: 1050px) {
	.em-hero--panel-links .em-hero-grid, .em-hero--panel-event .em-hero-grid { gap: 44px; grid-template-columns: minmax(0, 1fr) 320px; }
	.em-image-text--image-left.em-image-text--wide .em-media-grid, .em-image-text--image-right.em-image-text--wide .em-media-grid,
	.em-image-text--balanced .em-media-grid { grid-template-columns: 1fr; }
	.em-media-figure { min-height: 260px; }
	.em-image-text--fit-contain .em-media-figure { min-height: 0; }
	.em-image-text--fit-cover-art .em-media-figure img { max-width: 240px; }
	.em-band-grid { grid-template-columns: 1fr; }
	.em-offer-grid { grid-template-columns: auto 1fr; }
	.em-offer--no-badge .em-offer-grid { grid-template-columns: 1fr; }
	.em-offer-values { border-left: 0; border-top: 1px solid var(--em-rule-strong); grid-column: 1 / -1; padding-left: 0; padding-top: 28px; }
	.em-people-grid.em-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.em-image-text--image-left.em-image-text--xwide .em-media-grid, .em-image-text--image-right.em-image-text--xwide .em-media-grid { grid-template-columns: 1fr; }
	.em-image-text--xwide .em-media-figure { min-height: 260px; }
}

@media (max-width: 860px) {
	.em-ledger-groups { grid-template-columns: 1fr; }
	.em-people--cards .em-people-grid.em-cols-3 { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
	.em-container { padding-left: 22px; padding-right: 22px; }
	.em-section { padding-bottom: 72px; padding-top: 72px; }
	.em-spacing-compact { padding-bottom: 50px; padding-top: 50px; }
	.em-hero { padding-bottom: 56px; padding-top: 56px; }
	.em-hero-grid, .em-hero--panel-links .em-hero-grid, .em-hero--panel-event .em-hero-grid { display: block; }
	.em-hero h1, .em-hero--panel-links h1 { font-size: clamp(50px, 16vw, 86px); }
	.em-hero-copy > .em-eyebrow { font-size: 12px; }
	.em-hero-intro, .em-hero-intro p { font-size: 15px; }
	.em-hero-hooks { grid-auto-flow: row; }
	.em-hero-hook + .em-hero-hook { border-left: 0; border-top: 1px solid rgba(11, 31, 59, 0.28); }
	.em-hero-hook strong { font-size: 22px; }
	.em-hero-actions, .em-actions { align-items: stretch; flex-direction: column; }
	.em-actions .em-button { width: 100%; }
	.em-panel-card { margin-top: 46px; padding: 26px; }
	.em-panel-link { gap: 12px; grid-template-columns: 34px minmax(0, 1fr) auto; }
	.em-date-lockup strong { font-size: 108px; }

	.em-section-heading, .em-two-column, .em-list-grid, .em-profile-grid, .em-faq-grid, .em-video-grid { gap: 46px; grid-template-columns: 1fr; }
	.em-image-text--narrow .em-media-grid, .em-image-text--image-left.em-image-text--narrow .em-media-grid, .em-image-text--image-right.em-image-text--narrow .em-media-grid { gap: 32px; grid-template-columns: 1fr; }
	.em-section-heading { margin-bottom: 40px; }
	.em-perks { grid-auto-flow: row; }
	.em-perk { padding: 18px 0; }
	.em-perk + .em-perk { border-left: 0; border-top: 1px solid var(--em-rule); padding-left: 0; }
	.em-people-grid.em-cols-3, .em-people-grid.em-cols-2 { grid-template-columns: 1fr; }
	.em-profile-photo { max-width: 450px; }
	.em-offer-grid { grid-template-columns: 1fr; }
	.em-roundel { height: 90px; width: 90px; }
	.em-offer-values { grid-column: auto; }
	.em-ledger a { gap: 4px 14px; grid-template-columns: 78px 1fr; }
	.em-ledger a em { display: none; }
	.em-faq-answer { padding-right: 0; }
}

@media (max-width: 1050px) {
	.em-grid-cards--4 { --em-cols: 2; }
	.em-card-grid--covers .em-grid-cards--3, .em-card-grid--tiles .em-grid-cards--3 { --em-cols: 2; }
	.em-form-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
	.em-hero-steps { grid-auto-flow: row; }
	.em-hero-steps li + li { border-left: 0; border-top: 1px solid rgba(11, 31, 59, 0.28); }
	.em-stat-lockup strong { font-size: 92px; }
	.em-section-nav-inner { justify-content: flex-start; }
	.em-section-nav-link { min-height: 48px; padding: 0 16px; }
	.em-grid-cards, .em-grid-cards--2, .em-grid-cards--4, .em-card-grid--covers .em-grid-cards--3, .em-card-grid--tiles .em-grid-cards--3 { --em-cols: 1; }
	.em-card-grid--tiles .em-grid-card { min-height: 0; }
	.em-card-grid--tiles .em-grid-card-kicker { margin-bottom: 24px; }
	.em-grid-callout { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.em-button, .em-panel-link, .em-ledger a, .em-band-links a, .em-card, .em-media-link img, .em-faq summary span, .em-section-nav-link { transition: none; }
}

/* ------------------------------------------------------------------
 * Card text with simple HTML (links, lists)
 * --------------------------------------------------------------- */
.em-grid-card-text p, .em-grid-card-text li { color: inherit; font-size: inherit; line-height: 1.65; }
.em-grid-card-text ul { margin: 12px 0 0; padding-left: 18px; }
.em-grid-card-text ul + p { margin-top: 12px; }
.em-grid-card-text li + li { margin-top: 6px; }
.em-grid-card-text a { border-bottom: 1px solid currentColor; color: var(--em-blue); font-weight: 700; }
.em-grid-card--highlight .em-grid-card-text a { color: var(--em-gold); }

/* ------------------------------------------------------------------
 * People: pull quote inside a bio
 * --------------------------------------------------------------- */
.em-people--cards .em-person-bio { display: flex; flex: 1; flex-direction: column; }
.em .em-person-bio blockquote { background: var(--em-cream); border: 0; border-left: 3px solid var(--em-gold); margin: auto 0 0; padding: 14px 18px; quotes: none; }
.em .em-person-bio blockquote::before, .em .em-person-bio blockquote::after { content: none; }
.em .em-person-bio blockquote p { color: var(--em-ink); font-family: var(--em-serif); font-size: 16px; font-style: italic; line-height: 1.45; margin: 0; }
.em-people--cards .em-person-bio > p:has(+ blockquote) { margin-bottom: 22px; }

/* Theme blocks (sliders, spotlight) placed between modules */
.em-full-width .em-legacy { padding-bottom: clamp(40px, 5vw, 70px); padding-top: clamp(40px, 5vw, 70px); }
.em-legacy .content-slider img { aspect-ratio: 3 / 2; display: block; object-fit: cover; width: 100%; }
.em-full-width .em-page > .wp-block-group > [id], .em-full-width .em-page > .wp-block-group > .wp-block-group__inner-container > [id] { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + 54px); }

/* ------------------------------------------------------------------
 * Video gallery
 * --------------------------------------------------------------- */
.em-vg-list { display: grid; gap: 28px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.em-vg-item { --em-heading: var(--em-ink); background: var(--em-cream); border-bottom: 4px solid var(--em-gold); display: flex; flex-direction: column; min-width: 0; }
.em-bg-cream .em-vg-item { background: #fff; }
.em-vg-media { align-items: center; aspect-ratio: 16 / 9; background: #0b1f3b; display: flex; justify-content: center; overflow: hidden; position: relative; }
.em-vg-media wistia-player { background-position: center; background-size: cover; display: block; width: 100%; }
.em-vg-media wistia-player:not(:defined) { aspect-ratio: 16 / 9; }
.em-vg-media--vertical wistia-player { width: 31.64%; }
.em-vg-media--vertical wistia-player:not(:defined) { aspect-ratio: 9 / 16; }
.em-vg-media iframe { border: 0; height: 100%; inset: 0; position: absolute; width: 100%; }
.em-vg-body { display: flex; flex: 1; flex-direction: column; padding: 24px 26px 26px; }
.em .em-vg-item h3 { font-size: clamp(22px, 1.8vw, 26px); font-weight: 500; letter-spacing: -0.02em; line-height: 1.15; margin: 0 0 20px; }
.em-vg-details { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: auto 0 0; }
.em-vg-details div { background: #fff; border-top: 2px solid var(--em-gold); padding: 11px 13px 12px; }
.em-bg-cream .em-vg-details div { background: var(--em-cream); }
.em-vg-details dt { color: #6a7480; font-size: 10px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.em-vg-details dd { color: var(--em-ink); font-size: 14px; font-weight: 700; line-height: 1.35; margin: 4px 0 0; }
.em-vg-label { color: var(--em-gold); font-size: 11px; font-weight: 800; letter-spacing: 0.16em; margin-bottom: 14px !important; text-transform: uppercase; }
.em-vg-item--featured { background: var(--em-navy); display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); }
.em-vg-item--featured .em-vg-media { aspect-ratio: auto; min-height: 100%; }
.em-vg-item--featured .em-vg-body { justify-content: center; padding: clamp(28px, 3.5vw, 48px); }
.em .em-vg-item--featured h3 { color: #fff; font-size: clamp(26px, 2.4vw, 36px); margin-bottom: 16px; }
.em-vg-text { color: #c6d2df; font-size: 15px; margin-bottom: 26px !important; }
.em-vg-item--featured .em-vg-details { margin-top: 0; }
.em-vg-item--featured .em-vg-details div { background: rgba(255, 255, 255, 0.07); }
.em-vg-item--featured .em-vg-details dt { color: #9caec2; }
.em-vg-item--featured .em-vg-details dd { color: #fff; }
.em-vg-error { color: #fff; font-size: 13px; padding: 20px; }

/* ------------------------------------------------------------------
 * Embed
 * --------------------------------------------------------------- */
.em-embed-frame--framed { background: var(--em-cream); border: 1px solid rgba(11, 31, 59, 0.12); padding: clamp(10px, 1.4vw, 16px); }
.em-embed-note { margin-top: 18px; }

@media (max-width: 900px) {
	.em-vg-item--featured { grid-template-columns: 1fr; }
	.em-vg-item--featured .em-vg-media { aspect-ratio: 16 / 9; min-height: 0; }
}

@media (max-width: 760px) {
	.em-vg-list { gap: 22px; grid-template-columns: 1fr; }
	.em-vg-body { padding: 20px 20px 22px; }
}

/* ------------------------------------------------------------------
 * Program modules: Booking Panel
 * --------------------------------------------------------------- */
.em-booking-grid { align-items: center; display: grid; gap: clamp(50px, 7vw, 110px); grid-template-columns: minmax(0, 1fr) minmax(340px, 470px); }
.em-booking--panel .em-booking-grid { grid-template-columns: minmax(0, 620px); justify-content: center; }
.em-booking-route { color: var(--em-accent); font-size: 14px; font-weight: 700; letter-spacing: 0.04em; margin-top: 22px !important; }
.em-booking-sep { opacity: 0.7; padding: 0 2px; }
.em-booking-copy .em-body { font-size: 17px; margin-top: 26px; max-width: 560px; }

/* The card is always light, whatever the section background. */
.em-booking-card {
	--em-heading: var(--em-ink);
	--em-text: #4e5b69;
	--em-soft: #6a7480;
	--em-eyebrow: var(--em-blue);
	--em-accent: var(--em-blue);
	--em-rule: rgba(11, 31, 59, 0.14);
	--em-rule-strong: rgba(11, 31, 59, 0.28);
	--em-hover: rgba(11, 31, 59, 0.045);
	background: #fff;
	box-shadow: 0 34px 70px -38px rgba(7, 26, 51, 0.55);
	color: var(--em-heading);
	padding: clamp(28px, 3vw, 44px);
}
.em-dark .em-booking-card { box-shadow: none; }
.em:not(.em-dark) .em-booking-card { box-shadow: 0 0 0 1px var(--em-rule), 0 30px 60px -40px rgba(7, 26, 51, 0.4); }
.em-booking-card-title { font-size: clamp(32px, 3.2vw, 46px) !important; line-height: 1.04 !important; }
.em-booking-card > .em-booking-route { margin: 12px 0 0 !important; }
.em-booking-card > .em-booking-card-title + .em-booking-block,
.em-booking-card > .em-booking-route + .em-booking-block { margin-top: 26px; }
.em-booking-block + .em-booking-block { border-top: 1px solid var(--em-rule); margin-top: 22px; padding-top: 22px; }
.em-booking-label { color: var(--em-soft); font-size: 11px; font-weight: 750; letter-spacing: 0.19em; margin-bottom: 10px !important; text-transform: uppercase; }

.em-booking-departures { list-style: none; margin: 0; padding: 0; }
.em-booking-departures li { align-items: center; border-bottom: 1px solid var(--em-rule); display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 0; padding: 11px 0; }
.em-booking-departures li:last-child { border-bottom: 0; padding-bottom: 0; }
.em-booking-departures li:first-child { padding-top: 0; }
.em-booking-dates { color: var(--em-heading); font-size: 16px; font-weight: 700; }
.em-booking-departures small { color: var(--em-soft); font-size: 13px; width: 100%; }
.em-booking-departures .is-soldout .em-booking-dates { color: var(--em-soft); text-decoration: line-through; }

.em-status { border-radius: 999px; font-size: 10.5px; font-weight: 750; letter-spacing: 0.08em; line-height: 1; padding: 5px 9px 4px; text-transform: uppercase; white-space: nowrap; }
.em-status--open { background: #e2efe5; color: #1d6537; }
.em-status--limited { background: #fbefd4; color: #7a5206; }
.em-status--guaranteed { background: #dcebf2; color: var(--em-blue); }
.em-status--waitlist { background: #eceff2; color: #4e5b69; }
.em-status--soldout { background: #f6e2df; color: #9b2c22; }

.em-booking-prices { margin: 0; }
.em-booking-prices > div { align-items: baseline; display: grid; gap: 0 16px; grid-template-columns: minmax(0, 1fr) auto; padding: 6px 0; }
.em-booking-prices dt { color: var(--em-text); font-size: 14px; font-weight: 600; }
.em-booking-prices dd { color: var(--em-heading); font-family: var(--em-serif); font-size: 34px; letter-spacing: -0.02em; line-height: 1.1; margin: 0; }
.em-booking-prices dd.em-booking-price-note { color: var(--em-soft); font-family: inherit; font-size: 12.5px; grid-column: 1 / -1; letter-spacing: 0; line-height: 1.4; }
.em-booking-fine { color: var(--em-soft); font-size: 12.5px; line-height: 1.5 !important; margin-top: 10px !important; }
.em-booking-deadline { background: var(--em-cream); border-left: 3px solid var(--em-gold); color: var(--em-heading); font-size: 13.5px; font-weight: 600; line-height: 1.45 !important; margin-top: 22px !important; padding: 12px 14px; }
.em-booking-register { margin-top: 26px; }
.em-booking-secondary { gap: 10px; margin-top: 10px; }
.em-booking-secondary .em-button { flex: 1 1 0; font-size: 12px; gap: 12px; letter-spacing: 0.04em; min-height: 50px; padding: 0 16px; white-space: nowrap; }

/* Sticky booking bar (moved to <body> by booking-bar.js). */
.em-booking-bar { animation: em-bar-in 0.25s ease-out; bottom: 0; box-shadow: 0 -12px 34px rgba(7, 26, 51, 0.28); left: 0; padding: 12px 0; position: fixed; right: 0; z-index: 1000; }
.em-booking-bar[hidden] { display: none; }
.em-booking-bar .em-container { padding-left: clamp(16px, 4vw, 60px); padding-right: clamp(16px, 4vw, 60px); }
.em-booking-bar-inner { align-items: center; display: flex; gap: 20px; justify-content: space-between; }
.em-booking-bar-copy { min-width: 0; }
.em-booking-bar-copy strong { color: #fff; display: block; font-family: var(--em-serif); font-size: 19px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.em-booking-bar-copy span { color: var(--em-text); display: block; font-size: 13px; margin-top: 2px; }
.em-booking-bar-actions { align-items: center; display: flex; flex: none; gap: 18px; }
.em-booking-bar-details { border-bottom: 1px solid currentColor; color: var(--em-sky); font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.em-booking-bar-details:hover { color: #fff; }
.em-booking-bar .em-button { min-height: 46px; }
.em-booking-bar-close { background: none; border: 0; color: var(--em-soft); cursor: pointer; font-size: 26px; line-height: 1; padding: 4px 6px; }
.em-booking-bar-close:hover, .em-booking-bar-close:focus { color: #fff; }
@keyframes em-bar-in { from { transform: translateY(100%); } to { transform: translateY(0); } }

/* ------------------------------------------------------------------
 * Program modules: Trip at a Glance
 * --------------------------------------------------------------- */
.em-glance-head { margin-bottom: 30px; }
.em-glance-head .em-eyebrow { margin-bottom: 12px !important; }
.em-glance-head h2 { font-size: clamp(30px, 3vw, 44px); }
.em-glance-frame { overflow: hidden; }
.em-glance-list { display: grid; grid-template-columns: repeat(var(--em-glance-cols, 4), minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; row-gap: 30px; }
.em-glance-item { align-items: flex-start; display: flex; gap: 16px; margin: 0; }
.em-glance-icon { color: var(--em-accent); flex: none; line-height: 0; margin-top: 2px; }
.em-glance-text { min-width: 0; }
.em-glance-text p + p { margin-top: 0; }
.em-glance-text .em-glance-label { color: var(--em-soft); font-size: 11px; font-weight: 750; letter-spacing: 0.17em; margin-bottom: 6px; text-transform: uppercase; }
.em-glance-text .em-glance-value { color: var(--em-heading); font-family: var(--em-serif); font-size: 21px; line-height: 1.25; }
.em-glance-text .em-glance-note { color: var(--em-text); font-size: 12.5px; line-height: 1.45; margin-top: 6px; }
.em-glance-level { display: flex; gap: 4px; margin-top: 10px; }
.em-glance-level i { background: var(--em-rule-strong); border-radius: 2px; display: block; height: 4px; width: 18px; }
.em-glance-level i.is-on { background: var(--em-accent); }

/* Strip: divided row. The negative margin hides the left rule on the first item of each row. */
.em-glance--strip .em-glance-frame { border-bottom: 1px solid var(--em-rule-strong); border-top: 1px solid var(--em-rule-strong); padding: 30px 0; }
.em-glance--strip .em-glance-list { margin-left: -1px; }
.em-glance--strip .em-glance-item { border-left: 1px solid var(--em-rule); padding: 2px clamp(18px, 2vw, 30px); }

/* Tiles */
.em-glance--tiles .em-glance-list { gap: 16px; }
.em-glance--tiles .em-glance-item { background: var(--em-hover); border: 1px solid var(--em-rule); flex-direction: column; gap: 14px; padding: 24px; }

@media (max-width: 1050px) {
	.em-glance-list { grid-template-columns: repeat(min(var(--em-glance-cols, 4), 3), minmax(0, 1fr)); }
	.em-booking-grid { gap: 44px; grid-template-columns: 1fr; }
	.em-booking--band .em-booking-card { max-width: 620px; }
}

@media (max-width: 760px) {
	.em-booking-card { margin-left: -6px; margin-right: -6px; padding: 26px 22px; }
	.em-booking-prices dd { font-size: 30px; }
	.em-booking-secondary { flex-direction: column; }
	.em-booking-bar-details, .em-booking-bar-copy span { display: none; }
	.em-booking-bar-copy strong { font-size: 16px; }
	.em-booking-bar-actions { gap: 6px; }
	.em-booking-bar .em-button { gap: 14px; min-height: 44px; padding: 0 16px; width: auto; }
	.em-glance-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.em-glance--strip .em-glance-item { padding: 2px 16px; }
	.em-glance-text .em-glance-value { font-size: 18px; }
}

@media (max-width: 420px) {
	.em-glance-list { grid-template-columns: 1fr; }
	.em-glance--tiles .em-glance-list { gap: 10px; }
	.em-glance--tiles .em-glance-item { flex-direction: row; gap: 16px; padding: 18px; }
}

@media (prefers-reduced-motion: reduce) {
	.em-booking-bar { animation: none; }
}

/* ------------------------------------------------------------------
 * Program Cards
 * --------------------------------------------------------------- */
.em-pc-head { align-items: end; display: flex; flex-wrap: wrap; gap: 20px 60px; justify-content: space-between; margin-bottom: clamp(36px, 4vw, 52px); }
.em-pc-head-copy { display: flex; flex-direction: column; gap: 0; max-width: 820px; min-width: 0; }
.em-pc-head .em-eyebrow { margin-bottom: 14px !important; }
.em-pc-head h2 { font-size: clamp(40px, 4.4vw, 64px); }
.em-pc-intro { font-size: 16px; margin-top: 18px; max-width: 620px; }
.em-pc-head .em-text-link { margin-top: 0; }
.em-pc-empty { border-top: 1px solid var(--em-rule-strong); color: var(--em-text); font-size: 16px; padding-top: 24px; }
.em-pc-grid { display: grid; gap: 24px; grid-template-columns: repeat(var(--em-pc-cols, 3), minmax(0, 1fr)); }
.em-pc-cols-2 { --em-pc-cols: 2; }
.em-pc-cols-3 { --em-pc-cols: 3; }
.em-pc-cols-4 { --em-pc-cols: 4; }
.em-pc-card { background: #fff; color: var(--em-ink); display: flex; flex-direction: column; min-width: 0; text-decoration: none; }
.em-pc-card:hover .em-pc-title, .em-pc-card:focus-visible .em-pc-title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.em-pc-media { aspect-ratio: 4 / 3; background: var(--em-cream); overflow: hidden; }
.em-pc-media img { display: block; height: 100%; object-fit: cover; transition: transform 0.4s ease; width: 100%; }
.em-pc-card:hover .em-pc-media img { transform: scale(1.03); }
.em-pc-body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 24px 24px 26px; }
.em-pc-body p + p { margin-top: 0; }
.em-pc-meta { align-items: center; display: flex; gap: 12px; justify-content: space-between; min-height: 22px; }
.em-pc-dates { color: var(--em-ink); font-size: 13px; font-variant-numeric: tabular-nums; font-weight: 700; }
.em-pc-badge { border-radius: 999px; font-size: 10px; font-weight: 750; letter-spacing: 0.1em; line-height: 1; padding: 5px 9px 4px; text-transform: uppercase; white-space: nowrap; }
.em-pc-badge--upcoming { background: #dff4f3; color: #1d5f5e; }
.em-pc-badge--past { box-shadow: inset 0 0 0 1px rgba(17, 17, 17, 0.35); color: #474f62; }
.em-pc-badge--sample { background: #eceef1; color: #474f62; }
.em-pc-kicker { color: var(--em-blue); font-size: 10.5px; font-weight: 750; letter-spacing: 0.16em; text-transform: uppercase; }
.em-pc-title { color: var(--em-ink) !important; font-family: var(--em-serif); font-size: 28px; font-weight: 500; letter-spacing: -0.01em; line-height: 1.1; text-wrap: balance; }
.em-pc-places { color: #6d7079; font-size: 13px; }
.em-pc-summary { color: #3a3d44; font-size: 14px; line-height: 1.6 !important; }
.em-pc-foot { align-items: baseline; border-top: 1px solid rgba(17, 17, 17, 0.12); display: flex; gap: 12px; justify-content: space-between; margin-top: auto; padding-top: 16px; }
.em-pc-price { color: #6d7079; font-size: 13px; }
.em-pc-price strong { color: var(--em-ink); font-family: var(--em-serif); font-size: 24px; font-weight: 500; }
.em-pc-cta { color: var(--em-ink); font-size: 12px; font-weight: 750; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; }
.em:not(.em-dark) .em-pc-card { box-shadow: 0 0 0 1px var(--em-rule); }

/* Tiles: dark cards for Showcase items, photo with a short label. */
.em-pc--tiles .em-pc-grid { gap: 2px; }
.em-pc--tiles .em-pc-card { background: rgba(255, 255, 255, 0.06); box-shadow: none; color: #fff; }
.em-pc--tiles:not(.em-dark) .em-pc-card { background: var(--em-ink); }
.em-pc--tiles .em-pc-card:hover { background: rgba(255, 255, 255, 0.1); }
.em-pc--tiles .em-pc-media { aspect-ratio: 3 / 2; background: rgba(255, 255, 255, 0.08); }
.em-pc--tiles .em-pc-body { gap: 10px; padding: 20px 22px 24px; }
.em-pc--tiles .em-pc-kicker { color: var(--em-sky); }
.em-pc--tiles .em-pc-title { color: #fff !important; font-size: 25px; font-weight: 400; }
.em-pc--tiles .em-pc-meta { display: none; }

/* ------------------------------------------------------------------
 * Quote
 * --------------------------------------------------------------- */
.em-quote-inner { align-items: center; display: flex; gap: clamp(32px, 5vw, 72px); margin: 0 auto; max-width: 1180px; }
.em-quote-photo { aspect-ratio: 4 / 5; flex: 0 0 clamp(160px, 22vw, 300px); max-width: 100%; object-fit: cover; }
.em-quote-text { display: flex; flex-direction: column; gap: 26px; min-width: 0; }
.em-quote blockquote { margin: 0; }
.em-quote blockquote p { color: var(--em-heading); font-family: var(--em-serif); font-size: clamp(28px, 3vw, 42px); font-style: italic; line-height: 1.3 !important; text-wrap: balance; }
.em-quote figcaption { background: none !important; bottom: auto; left: auto; margin: 0 !important; padding: 0 !important; position: static !important; color: var(--em-text); display: flex; flex-wrap: wrap; font-size: 13px; gap: 6px 14px; letter-spacing: 0.08em; text-transform: uppercase; }
.em-quote figcaption strong { color: var(--em-heading); font-weight: 700; }
.em-quote--photo blockquote p { font-size: clamp(26px, 2.6vw, 36px); }
/* Large image: a place beside the quote, half and half. */
.em-quote--wide .em-quote-inner { max-width: 1240px; }
.em-quote--wide .em-quote-photo { aspect-ratio: 1 / 1; flex: 0 0 48%; height: auto; width: 48%; }
.em-quote--wide blockquote p { font-size: clamp(20px, 1.75vw, 26px); text-wrap: pretty; }

@media (max-width: 1050px) {
	.em-pc-cols-3, .em-pc-cols-4 { --em-pc-cols: 2; }
}
@media (max-width: 760px) {
	.em-pc-grid { --em-pc-cols: 1 !important; }
	.em-pc--tiles .em-pc-grid { --em-pc-cols: 1 !important; }
	.em-pc--tiles .em-pc-grid > :nth-child(n+4) { display: none; } /* Phones: first three tiles; the section link leads to the rest. */
	.em-pc-title { font-size: 25px; }
	.em-quote-inner { align-items: flex-start; flex-direction: column; }
	.em-quote-photo { flex-basis: auto; width: 180px; }
	.em-quote--wide .em-quote-photo { aspect-ratio: 16 / 10; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.em-pc-media img { transition: none; }
}

/* ------------------------------------------------------------------
 * Program inquiry: "Plan a trip like this" band and popup
 * --------------------------------------------------------------- */
/* The band replaces the theme's ensemble "Customize Your Tour" band on these pages. */
body.em-plan-enabled .block-global-cta { display: none !important; }
.em-plan-band-inner { align-items: center; display: flex; flex-wrap: wrap; gap: 28px 60px; justify-content: space-between; }
.em-plan-band-copy { flex: 1 1 520px; min-width: 0; }
.em-plan-band h2 { font-size: clamp(34px, 3.6vw, 54px); line-height: 1.02; text-wrap: balance; }
.em-plan-band-text { color: var(--em-text); font-size: 16px; margin-top: 16px !important; max-width: 620px; }
.em-plan-band .em-button { flex: none; }

.em-plan-dialog { background: #fff; border: 0; box-shadow: 0 40px 90px rgba(0, 0, 0, 0.45); color: #111; max-height: calc(100vh - 32px); max-width: 600px; overflow: auto; padding: 0; width: calc(100% - 32px); }
.em-plan-dialog::backdrop { background: rgba(17, 17, 17, 0.72); }
html.em-plan-open { overflow: hidden; }
.em-plan-dialog-inner { padding: clamp(26px, 4vw, 44px); position: relative; }
.em-plan-dialog h2 { color: #111; font-size: clamp(32px, 4vw, 44px); line-height: 1.05; margin: 0 0 12px; }
.em-plan-dialog .em-eyebrow { color: #474f62; margin-bottom: 12px !important; }
.em-plan-intro { color: #4a4d55; font-size: 15px; margin-bottom: 22px !important; }
.em-plan-close { align-items: center; background: none; border: 0; color: #474f62; cursor: pointer; display: flex; font-size: 30px; height: 44px; justify-content: center; line-height: 1; position: absolute; right: 10px; top: 10px; width: 44px; }
.em-plan-close:hover, .em-plan-close:focus-visible { color: #111; }
.em-plan-form .emb-marketo { min-height: 320px; }

@media (max-width: 760px) {
	.em-plan-band .em-button { width: 100%; }
}

/* ------------------------------------------------------------------
 * Encore Experiences sub-brand
 * Applied automatically on /experiences/, its child pages, the
 * Experiences Showcase and Programs archives, and every Program.
 * Mirrors the theme: black chrome, charcoal panels, mint hovers,
 * gold buttons with a mint wipe, EB Garamond headings.
 * --------------------------------------------------------------- */
.em-brand-experiences {
	--em-ink: #111;
	--em-navy: #111;
	--em-blue: #474f62;
	--em-deep: #474f62;
	--em-sky: #90dedd;
	--em-gold: #efc168;
	--em-gold-hover: #90dedd;
	--em-cream: #f1f1ef;
	--em-paper: #f8f8f7;
	--em-serif: "EB Garamond", Georgia, "Times New Roman", serif;
	--em-text: #4a4d55;
	--em-soft: #6d7079;
	--em-rule: rgba(17, 17, 17, 0.14);
	--em-rule-strong: rgba(17, 17, 17, 0.28);
	--em-hover: rgba(17, 17, 17, 0.04);
}
.em-brand-experiences.em-bg-cream { --em-text: #4a4d55; }
.em-brand-experiences.em-bg-gold { --em-text: rgba(17, 17, 17, 0.82); --em-soft: rgba(17, 17, 17, 0.72); --em-rule: rgba(17, 17, 17, 0.25); --em-rule-strong: rgba(17, 17, 17, 0.4); }
.em-brand-experiences.em-bg-navy { --em-text: #c9cbd0; }
.em-brand-experiences.em-bg-blue,
.em-brand-experiences.em-bg-deep { --em-text: #dcdee3; }
.em-brand-experiences.em-dark { --em-soft: #a3a7b0; --em-eyebrow: var(--em-sky); --em-rule: rgba(255, 255, 255, 0.2); --em-rule-strong: rgba(255, 255, 255, 0.34); }
.em-brand-experiences .em-booking-card { --em-text: #4a4d55; --em-soft: #6d7079; --em-rule: rgba(17, 17, 17, 0.14); --em-rule-strong: rgba(17, 17, 17, 0.28); --em-hover: rgba(17, 17, 17, 0.04); }

/* Garamond sets tighter than Georgia, so ease the negative tracking. */
.em-brand-experiences h1, .em-brand-experiences h2, .em-brand-experiences h3 { letter-spacing: -0.02em; }
/* The theme's Experiences lockup: emphasis in a heading becomes light sans. */
.em-brand-experiences h1 em, .em-brand-experiences h2 em, .em-brand-experiences h3 em {
	font-family: var(--em-body-font, "Gotham A", "Gotham B", "Gotham-book", "Gotham Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
	font-size: 0.875em;
	font-style: normal;
	font-weight: 300;
	letter-spacing: 0;
}

/* Gold button with the theme's mint wipe on hover. */
.em-brand-experiences .em-button:not(.em-button--quiet) {
	background-color: var(--em-gold);
	background-image: linear-gradient(to right, var(--em-gold) 50%, #90dedd 50%);
	background-size: 200% 100%;
	color: #111;
	transition: background-position 0.6s ease-in-out, transform 0.2s ease;
}
.em-brand-experiences .em-button:not(.em-button--quiet):hover,
.em-brand-experiences .em-button:not(.em-button--quiet):focus { background-position: -100% 0; color: #111; }
.em-brand-experiences.em-bg-gold .em-button:not(.em-button--quiet) { background-color: #111; background-image: none; color: #fff; }
.em-brand-experiences.em-bg-gold .em-button:not(.em-button--quiet):hover { background-color: #474f62; color: #fff; }
.em-brand-experiences .em-button--quiet:hover, .em-brand-experiences .em-button--quiet:focus { background: #90dedd; box-shadow: inset 0 0 0 1px #90dedd; color: #111; }

.em-brand-experiences .em-status--guaranteed { background: #dff4f3; color: #1d5f5e; }
.em-brand-experiences .em-booking-bar-details:hover { color: #90dedd; }

@media (prefers-reduced-motion: reduce) {
	.em-brand-experiences .em-button:not(.em-button--quiet) { transition: none; }
}

/* Core blocks between modules on full-width pages (e.g. the Experiences blog's post grid). */
/* Sits outside .em sections, so it carries the Experiences variables itself. */
.em-blog-grid { --em-ink: #111; --em-serif: "EB Garamond", Georgia, "Times New Roman", serif; --em-rule: rgba(17, 17, 17, 0.14); box-sizing: border-box; margin: 0 auto; max-width: 1240px; padding: clamp(48px, 6vw, 88px) 20px; }
/* Spectra post grid inside .em-blog-grid: styled like Program Cards. */
.em-blog-grid article { background: #fff !important; box-shadow: 0 0 0 1px var(--em-rule) !important; padding: 0 !important; }
.em-blog-grid .uagb-post__image { margin: 0 !important; }
.em-blog-grid .uagb-post__image img { aspect-ratio: 3 / 2; height: auto; object-fit: cover; width: 100%; }
.em-blog-grid .uagb-post__text { padding-left: 22px !important; padding-right: 22px !important; }
.em-blog-grid .uagb-post__title { font-family: var(--em-serif) !important; font-size: 23px !important; font-weight: 400 !important; letter-spacing: -0.01em; line-height: 1.15 !important; margin: 20px 0 10px !important; padding-left: 22px; padding-right: 22px; }
.em-blog-grid .uagb-post__title a { color: var(--em-ink) !important; text-decoration: none; }
.em-blog-grid .uagb-post__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.em-blog-grid .uagb-post-grid-byline, .em-blog-grid .uagb-post-grid-byline a { color: #6b7380 !important; font-size: 11px !important; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.em-blog-grid .uagb-post__excerpt p { color: #4a525d; font-size: 14px !important; line-height: 1.6; }
.em-blog-grid .uagb-post__cta { left: 0 !important; margin: 6px 0 22px !important; }
.em-blog-grid .uagb-post__cta a { background: none !important; border: 0 !important; border-bottom: 1px solid currentColor !important; border-radius: 0 !important; color: var(--em-ink) !important; font-size: 12px !important; font-weight: 800; letter-spacing: 0.1em; padding: 0 0 3px !important; text-transform: uppercase; }
.em-blog-grid .uagb-post__cta a::after { content: " \2192"; }
.em-blog-grid .uagb-post-pagination-wrap { margin-top: 36px; }
.em-blog-grid .uagb-post-pagination-wrap a, .em-blog-grid .uagb-post-pagination-wrap span { border: 1px solid var(--em-rule); color: var(--em-ink); display: inline-block; font-size: 13px; font-weight: 700; margin-right: 6px; padding: 8px 13px; text-decoration: none; }
.em-blog-grid .uagb-post-pagination-wrap .current { background: var(--em-ink); color: #fff; }

/* Programs and Showcase listings */
.em-archive-list .em-pc-head { margin-bottom: 28px; }
.em-filters { border-bottom: 1px solid var(--em-rule); margin-bottom: clamp(32px, 4vw, 48px); padding-bottom: 20px; }
.em-filters-row { align-items: end; display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; }
.em-filter-label { color: var(--em-heading, var(--em-ink)); display: block; font-size: 11px; font-weight: 800; letter-spacing: 0.12em; margin-bottom: 8px; text-transform: uppercase; }
.em-filter .facetwp-facet { margin: 0 !important; }
.em-filter select, .em-filter .fs-label-wrap { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23111' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center; border: 1px solid var(--em-rule-strong); border-radius: 0; color: var(--em-ink); font-size: 15px; height: 50px; padding: 0 40px 0 14px; width: 100%; }
.em-filter--action .em-button { height: 50px; }
.em-filters-status { align-items: center; display: flex; gap: 16px; justify-content: space-between; margin-top: 14px; min-height: 24px; }
.em-filters-status .facetwp-selections ul { margin: 0; padding: 0; }
.em-filters-status .facetwp-reset { background: none; border: 0; border-bottom: 1px solid currentColor; color: var(--em-ink); font-size: 12px; font-weight: 800; letter-spacing: 0.1em; padding: 0 0 2px; text-transform: uppercase; }
.em-archive-pagination { margin-top: clamp(36px, 4vw, 56px); text-align: center; }
.em-archive-pagination .facetwp-page { border: 1px solid var(--em-rule); color: var(--em-ink); display: inline-block; font-size: 13px; font-weight: 700; margin: 0 3px; padding: 8px 13px; text-decoration: none; }
.em-archive-pagination .facetwp-page.active { background: var(--em-ink); border-color: var(--em-ink); color: #fff; }
.em-pc-card--static { cursor: default; }
.em-pc-card--static:hover .em-pc-title { text-decoration: none; }
.em-pc-card--static:hover .em-pc-media img { transform: none; }
.em-archive .block-global-cta { display: none; }
@media (max-width: 900px) {
	.em-filters-row { grid-template-columns: 1fr 1fr; }
	.em-filter--action { grid-column: 1 / -1; }
	.em-filter--action .em-button { justify-content: center; width: 100%; }
}
@media (max-width: 560px) {
	.em-filters-row { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------
 * Program pages (theme single-tour.php): Encore Experiences look.
 * Styling only; the template and its fields are unchanged.
 * ------------------------------------------------------------- */
.single-tour .container:has(> .hero-tour) { max-width: none; padding: 0; }
.single-tour .hero.hero-tour { background-position: center 40%; display: flex; flex-direction: column; height: auto; margin-top: 0; min-height: clamp(520px, 70vh, 700px); padding: 0; }
.single-tour .hero.hero-tour.overlay::before { background: linear-gradient(90deg, rgba(17, 17, 17, 0.97) 0%, rgba(17, 17, 17, 0.8) 46%, rgba(17, 17, 17, 0.35) 100%); opacity: 1; }
.single-tour .hero.hero-tour.overlay::after { display: none; }
.single-tour .hero-tour .content { box-sizing: border-box; display: flex; flex: 1; margin: 0 auto; max-width: 1272px; padding: clamp(72px, 9vw, 120px) 16px 56px; width: 100%; }
.single-tour .hero-tour .content > .row { align-items: flex-end !important; justify-content: flex-start !important; margin: 0; text-align: left !important; width: 100%; }
.single-tour .hero-tour .content .col-md-8 { flex: 0 0 auto; max-width: 860px; padding: 0; width: 100%; }
.single-tour .hero-tour h1 { color: #fff; font-family: "EB Garamond", Georgia, "Times New Roman", serif; font-size: clamp(46px, 6vw, 92px); font-weight: 500; letter-spacing: -0.045em; line-height: 0.92; margin: 0 0 22px; }
.single-tour .hero-tour .content .h4 { color: #90dedd; font-size: 13px; font-weight: 800; letter-spacing: 0.15em; line-height: 1.5; margin: 0; text-transform: uppercase; }
.single-tour .hero-tour > .d-flex { align-items: stretch; background: #1a1a1a; box-sizing: border-box; flex-wrap: wrap; padding: 0 max(16px, calc((100% - 1240px) / 2)); width: 100%; }
.single-tour .hero-tour .nav.bg-white { background: transparent !important; }
.single-tour .hero-tour .nav-link { color: #fff; font-size: 12px; font-weight: 800; letter-spacing: 0.12em; padding: 20px 14px; text-transform: uppercase; }
.single-tour .hero-tour .nav > .nav-link:first-child { padding-left: 0; }
.single-tour .hero-tour a.nav-link:hover { color: #90dedd; }
.single-tour .hero-tour div.nav-link { color: #efc168; }
.single-tour .hero-tour .btn-white { align-items: center; background: #efc168; border: 0; border-radius: 0; color: #111; display: inline-flex; font-size: 12px; font-weight: 800; letter-spacing: 0.12em; padding: 0 26px; text-transform: uppercase; }
.single-tour .hero-tour .btn-white:hover { background: #f4d28f; color: #111; }
.single-tour .whats-included .nav-link.active, .single-tour .whats-included .tab-content.bg-darkgray { background-color: #1a1a1a !important; }
.single-tour .whats-included .nav-link.active { box-shadow: inset 4px 0 0 #efc168; }
.single-tour .whats-included .nav-link:not(.active):hover { color: #1a1a1a; box-shadow: inset 4px 0 0 #90dedd; }
.single-tour .whats-included h2 em { font-family: inherit; font-style: normal; font-weight: inherit; letter-spacing: inherit; }
.single-tour .featured-highlights .entry-title { font-family: "EB Garamond", Georgia, "Times New Roman", serif; font-size: 26px; font-weight: 400; letter-spacing: -0.01em; line-height: 1.12; }
/* Extra .itinerary beats the theme's .accordion#itinerary-accordion rule, which loads later. */
.single-tour .itinerary #itinerary-accordion .accordion-button { background-color: #1a1a1a; color: #fff; }
.single-tour #itinerary-accordion .accordion-button:not(.collapsed) { background-color: #efc168; color: #111; }
.single-tour #itinerary-accordion .accordion-button:hover { background-color: #90dedd; color: #111; }
.single-tour #itinerary-accordion .accordion-button .eyebrow { color: inherit; }
/* Without a leader letter, Ready to Go sits right under the gallery: give it the theme's section spacing. */
.single-tour .block-gallery + .container > .block-cta:first-child { margin-top: 20px; }
@media (min-width: 768px) { .single-tour .block-gallery + .container > .block-cta:first-child { margin-top: 40px; } }
@media (min-width: 992px) { .single-tour .block-gallery + .container > .block-cta:first-child { margin-top: 80px; } }
@media (min-width: 1200px) { .single-tour .block-gallery + .container > .block-cta:first-child { margin-top: 100px; } }
@media (max-width: 767px) {
	.single-tour .hero-tour > .d-flex { padding: 0 16px; }
	.single-tour .hero-tour > .d-flex > .nav { display: none; }
	.single-tour .hero-tour > .d-flex > .d-flex { justify-content: space-between; width: 100%; }
	.single-tour .hero-tour .btn-white { padding: 16px 20px; }
}
/* Experiences home: the theme's "Sign Up for Email Updates" band (footer.php) in the module look. */
body.experiences .sign-up-form.container { background: #f1f1ef; border-top: 1px solid rgba(17, 17, 17, 0.08); margin: 0 !important; max-width: none; padding: clamp(56px, 7vw, 96px) max(16px, calc((100% - 1170px) / 2)); width: 100%; }
body.experiences .sign-up-form > .row { align-items: center; margin: 0; row-gap: 32px; }
body.experiences .sign-up-form > .row > [class*="col-"] { padding: 0; }
@media (min-width: 992px) { body.experiences .sign-up-form > .row > [class*="col-"]:first-child { padding-right: clamp(32px, 5vw, 80px); } }
body.experiences .sign-up-form > .row > [class*="col-"]:first-child::before { color: #474f62; content: "Encore Experiences"; display: block; font-size: 12px; font-weight: 750; letter-spacing: 0.19em; margin-bottom: 18px; text-transform: uppercase; }
body.experiences .sign-up-form h2 { color: #111; font-family: "EB Garamond", Georgia, "Times New Roman", serif; font-size: clamp(34px, 3.4vw, 48px); font-weight: 400; letter-spacing: -0.015em; line-height: 1.08; margin: 0 0 18px; }
body.experiences .sign-up-form h2 + p { color: #4a4d55; font-size: 17px; line-height: 1.6; margin: 0; max-width: 46ch; }
body.experiences .sign-up-form > .row > [class*="col-"]:last-child { background: #fff; box-shadow: 0 24px 60px rgba(17, 17, 17, 0.08); padding: clamp(24px, 3vw, 34px); }
body.experiences .sign-up-form .mktoForm { display: grid !important; font-family: inherit !important; gap: 14px; padding: 0 !important; width: 100% !important; }
body.experiences .sign-up-form .mktoForm .mktoFormRow:not(:has(.mktoFieldWrap)) { display: none !important; }
body.experiences .sign-up-form .mktoForm .mktoFormRow { display: flex; gap: 14px 16px; margin: 0 !important; }
body.experiences .sign-up-form .mktoForm .mktoFormRow > .mktoClear { display: none; }
body.experiences .sign-up-form .mktoForm .mktoFormCol { flex: 1 1 0; float: none !important; margin: 0 !important; min-width: 0; width: auto !important; }
body.experiences .sign-up-form .mktoForm .mktoFieldWrap { float: none !important; margin: 0 !important; width: 100% !important; }
body.experiences .sign-up-form .mktoForm .mktoOffset, body.experiences .sign-up-form .mktoForm .mktoGutter, body.experiences .sign-up-form .mktoForm .mktoAsterix { display: none !important; }
body.experiences .sign-up-form .mktoForm label.mktoLabel { color: #474f62; float: none !important; font-family: inherit !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.12em; padding: 0 0 5px !important; text-transform: uppercase; width: auto !important; }
body.experiences .sign-up-form .mktoForm input[type="text"], body.experiences .sign-up-form .mktoForm input[type="email"] { background: #fff !important; border: 1px solid rgba(17, 17, 17, 0.2) !important; border-radius: 0 !important; box-shadow: none !important; box-sizing: border-box; font: inherit !important; font-size: 15px !important; height: auto !important; min-height: 46px; padding: 10px 12px !important; width: 100% !important; }
body.experiences .sign-up-form .mktoForm input:focus { border-color: #111 !important; outline: 2px solid #90dedd; outline-offset: 0; }
body.experiences .sign-up-form .mktoForm .mktoButtonRow, body.experiences .sign-up-form .mktoForm .mktoButtonWrap { display: block !important; margin: 4px 0 0 !important; width: 100%; }
body.experiences .sign-up-form .mktoForm .mktoButton { background: #efc168 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; color: #111 !important; cursor: pointer; font: inherit !important; font-size: 13px !important; font-weight: 750 !important; letter-spacing: 0.08em; min-height: 52px; padding: 0 22px !important; text-transform: uppercase; width: 100%; }
body.experiences .sign-up-form .mktoForm .mktoButton:hover { background: #90dedd !important; }
@media (max-width: 575px) { body.experiences .sign-up-form .mktoForm .mktoFormRow { flex-direction: column; } }

/* ------------------------------------------------------------------
 * Shared note below a module (Day-by-Day, Place Cards, Table)
 * --------------------------------------------------------------- */
.em-module-note { border-left: 4px solid var(--em-gold); color: var(--em-text); font-size: 15px; margin-top: 44px; max-width: 820px; padding: 4px 0 4px 20px; }
.em-module-note p { color: var(--em-text); }
.em-module-note a, .em-day-item-text a, .em-day-meals a, .em-place-details a { border-bottom: 1px solid currentColor; color: var(--em-accent); }

/* ------------------------------------------------------------------
 * Day-by-Day
 * --------------------------------------------------------------- */
.em-day-nav { display: flex; flex-wrap: wrap; gap: 10px; margin: -12px 0 clamp(36px, 4vw, 52px); }
.em-day-nav a { border: 1px solid var(--em-rule-strong); color: var(--em-heading); font-size: 12px; font-weight: 800; letter-spacing: 0.06em; padding: 11px 18px; text-transform: uppercase; transition: background-color 0.18s ease; }
.em-day-nav a:hover, .em-day-nav a:focus { background: var(--em-hover); }
.em-day { border-top: 1px solid var(--em-rule); display: grid; gap: 28px clamp(36px, 5vw, 80px); grid-template-columns: minmax(220px, 0.34fr) minmax(0, 1fr); padding: clamp(36px, 4vw, 54px) 0; scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + 80px); }
.em-day:first-child { border-top: 0; padding-top: 0; }
.em-day-number { color: var(--em-gold); display: block; font-family: var(--em-serif); font-size: clamp(48px, 5vw, 68px); line-height: 0.9; margin-bottom: 14px; }
.em-day-label h3 { font-size: clamp(26px, 2.4vw, 34px); font-weight: 500; letter-spacing: -0.02em; line-height: 1.08; }
.em-day-date { color: var(--em-eyebrow); font-size: 11px; font-weight: 800; letter-spacing: 0.15em; margin-top: 10px !important; text-transform: uppercase; }
.em-day-meals { color: var(--em-text); font-size: 14px; margin-top: 18px; }
.em-day-meals p { color: var(--em-text); }
.em-day-meals strong { color: var(--em-heading); }
.em-day-timeline { border-left: 2px solid var(--em-rule); list-style: none; margin: 0; padding: 0; }
.em-day-timeline li { margin: 0; padding: 0 0 26px 28px; position: relative; }
.em-day-timeline li:last-child { padding-bottom: 0; }
.em-day-timeline li::before { background: var(--em-bg); border: 2px solid var(--em-accent); border-radius: 50%; content: ""; height: 12px; left: -7px; position: absolute; top: 5px; width: 12px; }
.em-day-timeline li.is-highlight::before { background: var(--em-gold); border-color: var(--em-gold); }
.em-day-time { color: var(--em-eyebrow); display: block; font-size: 11px; font-weight: 800; letter-spacing: 0.13em; margin-bottom: 4px; text-transform: uppercase; }
.em-day-item-title { color: var(--em-heading); display: block; font-size: 17px; font-weight: 700; line-height: 1.35; }
.em-day-item-text, .em-day-item-text p { color: var(--em-text); font-size: 15px; }
.em-day-item-text { margin-top: 4px; }

/* ------------------------------------------------------------------
 * Place Cards
 * --------------------------------------------------------------- */
.em-place-group { font-size: clamp(22px, 2vw, 28px); font-weight: 500; letter-spacing: -0.015em; margin: 44px 0 20px !important; }
.em-place-group:first-child, .em-section-heading + .em-place-group { margin-top: 0 !important; }
.em-places { display: grid; gap: 20px; grid-template-columns: repeat(var(--em-cols, 2), minmax(0, 1fr)); }
.em-places--3 { --em-cols: 3; }
.em-place { --em-heading: var(--em-ink); --em-text: #4e5b69; background: #fff; border: 1px solid rgba(11, 31, 59, 0.12); border-top: 3px solid var(--em-gold); display: flex; flex-direction: column; padding: 24px 26px 22px; }
.em-bg-white .em-place { background: var(--em-paper); }
.em-place-top { align-items: baseline; display: flex; gap: 14px; justify-content: space-between; }
.em-place h4 { color: var(--em-ink); font-family: var(--em-serif); font-size: clamp(22px, 1.8vw, 26px); font-weight: 500; letter-spacing: -0.015em; line-height: 1.12; }
.em-place-price { color: var(--em-blue); flex: none; font-size: 13px; font-weight: 800; letter-spacing: 0.04em; }
.em-place-area { color: var(--em-blue); font-size: 10.5px; font-weight: 850; letter-spacing: 0.14em; margin-top: 8px !important; text-transform: uppercase; }
.em-place-text { color: #4e5b69; font-size: 15px; margin-top: 12px !important; }
.em-place-details { border-top: 1px solid rgba(11, 31, 59, 0.12); color: #5b6672; font-size: 13.5px; margin-top: auto; padding-top: 12px; }
.em-place-text + .em-place-details, .em-place-area + .em-place-details { margin-top: 16px; }
.em-place-details p { color: #5b6672; }
.em-place-details strong { color: var(--em-ink); }
.em-place-links { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 14px !important; }
.em-place-links a { color: var(--em-blue); font-size: 11.5px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.em-place-links a:hover { color: var(--em-navy); }

/* ------------------------------------------------------------------
 * Table
 * --------------------------------------------------------------- */
.em-table-wrap { overflow-x: auto; }
.em-table-grid { background: #fff; border: 1px solid rgba(11, 31, 59, 0.12); border-collapse: collapse; color: #4e5b69; font-size: 15px; margin: 0; width: 100%; }
.em-table-grid th, .em-table-grid td { border: 0; border-top: 1px solid rgba(11, 31, 59, 0.12); line-height: 1.5; padding: 16px 18px; text-align: left; vertical-align: top; }
.em-table-grid thead th { background: #242f4b; border-top: 0; color: #fff; font-size: 11px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.em-table-grid tbody th { color: var(--em-ink); font-weight: 750; white-space: nowrap; }
.em-table-grid a { border-bottom: 1px solid currentColor; color: var(--em-blue); font-weight: 700; }
.em-tag { border-radius: 2px; display: inline-block; font-size: 10px; font-weight: 850; letter-spacing: 0.12em; line-height: 1; margin-bottom: 7px; padding: 5px 8px; text-transform: uppercase; }
.em-tag--included { background: #e3f1ea; color: #1b5a40; }
.em-tag--own { background: #fbefd2; color: #7a5310; }
.em-tag--custom { background: #e2edf5; color: var(--em-blue); }
.em-table-grid td > .em-tag { display: table; }

@media (max-width: 1050px) {
	.em-places--3 { --em-cols: 2; }
}
@media (max-width: 760px) {
	.em-day { grid-template-columns: 1fr; }
	.em-places, .em-places--3 { --em-cols: 1; }
	/* Stack table rows into cards on phones. */
	.em-table-grid thead { display: none; }
	.em-table-grid, .em-table-grid tbody, .em-table-grid tr, .em-table-grid th, .em-table-grid td { display: block; width: 100%; }
	.em-table-grid { border: 0; background: transparent; }
	.em-table-grid tr { background: #fff; border: 1px solid rgba(11, 31, 59, 0.12); margin-bottom: 14px; }
	.em-table-grid tbody th { background: #242f4b; color: #fff; }
	.em-table-grid td[data-label]::before { color: var(--em-blue); content: attr(data-label); display: block; font-size: 10px; font-weight: 850; letter-spacing: 0.14em; margin-bottom: 6px; text-transform: uppercase; }
}

/* ------------------------------------------------------------------
 * Venue cards (Featured Venues + Venue Explorer grid)
 * Cards open the venue dialog: the title button stretches over the card.
 * --------------------------------------------------------------- */
.em-vfeature, .em-vx-grid { display: grid; gap: 22px; grid-template-columns: repeat(var(--em-cols, 3), minmax(0, 1fr)); }
.em-vfeature--4, .em-vx-grid { --em-cols: 4; }
.em-vcard { --em-heading: var(--em-ink); background: #fff; border: 1px solid rgba(11, 31, 59, 0.12); border-bottom: 4px solid var(--em-gold); display: flex; flex-direction: column; position: relative; transition: box-shadow 0.25s ease, transform 0.25s ease; }
.em-vcard[hidden] { display: none; }
.em-bg-white .em-vcard { background: var(--em-paper); }
.em-vcard:hover, .em-vcard:focus-within { box-shadow: 0 22px 44px rgba(11, 31, 59, 0.14); transform: translateY(-3px); }
.em-vcard-photo { aspect-ratio: 3 / 2; background: #dfe5eb; overflow: hidden; position: relative; }
.em-vcard-photo img, .em-vcard-noimg { display: block; height: 100%; object-fit: cover; transition: transform 0.6s ease; width: 100%; }
.em-vcard-noimg { background: linear-gradient(135deg, #153e5d, #071a33); }
.em-vcard:hover .em-vcard-photo img { transform: scale(1.045); }
.em-vcard-body { display: flex; flex: 1 0 auto; flex-direction: column; padding: 20px 22px 22px; }
.em-vcard-kicker { color: var(--em-blue); font-size: 10px; font-weight: 850; letter-spacing: 0.14em; margin-bottom: 10px !important; text-transform: uppercase; }
.em .em-vcard-title { font-family: var(--em-serif); font-size: clamp(20px, 1.5vw, 23px); font-weight: 500; letter-spacing: -0.015em; line-height: 1.15; margin: 0 0 10px; }
.em-vcard-open { background: none; border: 0; color: inherit; cursor: pointer; font: inherit; letter-spacing: inherit; line-height: inherit; padding: 0; text-align: left; }
.em-vcard-open::after { content: ''; inset: 0; position: absolute; z-index: 1; }
.em-vcard-open:focus-visible { outline: none; }
.em-vcard:has(.em-vcard-open:focus-visible) { outline: 3px solid var(--em-gold); outline-offset: 3px; }
.em-vcard:hover .em-vcard-open { color: var(--em-blue); }
.em-vcard-text { -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: #56636f; display: -webkit-box; font-size: 13px; line-height: 1.6 !important; overflow: hidden; white-space: pre-line; }
.em-vcard-types { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto !important; padding-top: 16px; }
.em-vcard-types span { background: var(--em-cream); color: var(--em-deep); font-size: 9.5px; font-weight: 850; letter-spacing: 0.11em; padding: 5px 8px; text-transform: uppercase; }
.em-vcard-link { align-self: flex-start; border-bottom: 1px solid currentColor; color: var(--em-blue); font-size: 11px; font-weight: 800; letter-spacing: 0.12em; margin-top: 16px; padding-bottom: 3px; position: relative; text-transform: uppercase; z-index: 2; }
.em-vcard-link:hover { color: var(--em-navy); }

/* Featured: bigger cards */
.em-vcard--feature .em-vcard-photo { aspect-ratio: 4 / 3; }
.em-vcard--feature .em-vcard-body { padding: 24px 26px 26px; }
.em .em-vcard--feature .em-vcard-title { font-size: clamp(24px, 2vw, 30px); }
.em-vcard--feature .em-vcard-text { -webkit-line-clamp: 4; font-size: 14px; }
.em-venue-more { margin-top: 32px; }

/* ------------------------------------------------------------------
 * Venue Explorer: map band
 * --------------------------------------------------------------- */
.em-vmap-band { padding-bottom: clamp(56px, 6vw, 90px); }
.em-vmap-bar { align-items: center; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 16px; }
.em-vmap-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.em-vmap-tab, .em-vmap-zoom button { background: transparent; border: 1px solid rgba(255, 255, 255, 0.26); color: #fff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 750; letter-spacing: 0.08em; min-height: 40px; padding: 0 16px; text-transform: uppercase; transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease; }
.em-vmap-tab:hover, .em-vmap-zoom button:hover { border-color: #fff; }
.em-vmap-tab.is-active { background: var(--em-gold); border-color: var(--em-gold); color: var(--em-navy); }
.em-vmap-zoom { display: flex; gap: 6px; }
.em-vmap-zoom button { font-size: 20px; font-weight: 400; letter-spacing: 0; line-height: 1; padding: 0; width: 40px; }
.em-vmap-tab:focus-visible, .em-vmap-zoom button:focus-visible, .em-vmap-panel button:focus-visible { outline: 3px solid var(--em-gold); outline-offset: 2px; }

.em-vmap-stage { aspect-ratio: 2 / 1; background: radial-gradient(ellipse at 50% 40%, #0c2a4d 0%, #061629 75%); border: 1px solid rgba(255, 255, 255, 0.12); overflow: hidden; position: relative; }
.em-bg-deep .em-vmap-stage { background: radial-gradient(ellipse at 50% 40%, #1b4a6e 0%, #0e2d47 75%); }
.em-vmap-canvas { cursor: grab; height: 100%; inset: 0; position: absolute; touch-action: none; user-select: none; width: 100%; }
.em-vmap.is-dragging .em-vmap-canvas { cursor: grabbing; }
.em-vmap-canvas svg { display: block; height: 100%; opacity: 0; transition: opacity 0.6s ease; width: 100%; }
.em-vmap.is-ready .em-vmap-canvas svg { opacity: 1; }
.em-vmap-canvas path { fill: #123657; stroke: #24557d; stroke-linejoin: round; stroke-width: 0.6; vector-effect: non-scaling-stroke; }
.em-vmap-canvas path.is-on { fill: #1d4c74; stroke: #3a6e97; }
.em-vmap-pin { cursor: pointer; }
.em-vmap-dot { fill: var(--em-gold); stroke: #071a33; transition: fill 0.15s ease; }
.em-vmap-halo { fill: var(--em-gold); opacity: 0.22; transition: opacity 0.15s ease; }
.em-vmap-pin:hover .em-vmap-dot { fill: var(--em-gold-hover); }
.em-vmap-pin:hover .em-vmap-halo { opacity: 0.4; }
.em-vmap-pin.is-selected .em-vmap-dot { fill: #fff; }
.em-vmap-pin.is-selected .em-vmap-halo { fill: #fff; opacity: 0.35; }
.em-vmap-count { fill: #071a33; font-family: inherit; font-weight: 800; pointer-events: none; text-anchor: middle; }
.em-vmap-tip { background: #fff; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); color: var(--em-ink); padding: 9px 12px; pointer-events: none; position: absolute; transform: translate(-50%, calc(-100% - 16px)); white-space: nowrap; z-index: 3; }
.em-vmap-tip strong { display: block; font-family: var(--em-serif); font-size: 16px; font-weight: 500; }
.em-vmap-tip span { color: var(--em-blue); display: block; font-size: 10px; font-weight: 850; letter-spacing: 0.12em; margin-top: 2px; text-transform: uppercase; }
.em-vmap-hint { background: rgba(7, 26, 51, 0.78); color: rgba(255, 255, 255, 0.7); font-size: 12px; right: 10px; top: 10px; padding: 5px 9px; pointer-events: none; position: absolute; z-index: 1; }
.em-vmap.is-failed .em-vmap-stage, .em-vmap.is-failed .em-vmap-bar { display: none; }

.em-vmap-panel { --em-heading: var(--em-ink); background: var(--em-paper); bottom: 16px; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35); color: var(--em-ink); display: flex; flex-direction: column; padding: 22px 22px 20px; position: absolute; right: 16px; top: 16px; width: min(360px, 42%); z-index: 4; }
.em-vmap-panel[hidden] { display: none; }
.em-vmap-panel .em-eyebrow { color: var(--em-blue); margin-bottom: 6px !important; }
.em .em-vmap-panel h3 { font-family: var(--em-serif); font-size: 30px; font-weight: 500; letter-spacing: -0.02em; line-height: 1.05; margin-bottom: 14px; padding-right: 30px; }
.em-vmap-panel-close { background: none; border: 0; color: var(--em-ink); cursor: pointer; font-size: 28px; line-height: 1; padding: 4px 8px; position: absolute; right: 10px; top: 8px; }
.em-vmap-list { border-top: 1px solid var(--em-rule); flex: 1 1 auto; list-style: none; margin: 0 0 16px; overflow-y: auto; padding: 0; }
.em-vmap-list li { border-bottom: 1px solid var(--em-rule); margin: 0; }
.em-vmap-item { align-items: center; background: none; border: 0; color: var(--em-ink); cursor: pointer; display: grid; font: inherit; gap: 12px; grid-template-columns: 64px minmax(0, 1fr); padding: 10px 4px; text-align: left; transition: background-color 0.15s ease; width: 100%; }
.em-vmap-item:hover { background: rgba(11, 31, 59, 0.05); }
.em-vmap-thumb { aspect-ratio: 4 / 3; background: #dfe5eb; display: block; overflow: hidden; }
.em-vmap-thumb img { display: block; height: 100%; object-fit: cover; width: 100%; }
.em-vmap-thumb.is-empty { background: linear-gradient(135deg, var(--em-deep), var(--em-navy)); }
.em-vmap-item strong { display: block; font-family: var(--em-serif); font-size: 16px; font-weight: 500; line-height: 1.2; }
.em-vmap-item small { color: var(--em-blue); display: block; font-size: 9.5px; font-weight: 850; letter-spacing: 0.1em; margin-top: 4px; text-transform: uppercase; }
.em-vmap-panel .em-button { flex: none; font-size: 12px; min-height: 48px; }

.em-vmap-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 30px 0 0; }
.em-vmap-stats div { border-left: 1px solid rgba(255, 255, 255, 0.18); padding: 4px 0 4px 22px; }
.em-vmap-stats div:first-child { border-left: 0; padding-left: 0; }
.em-vmap-stats dt { color: #9caec2; font-size: 11px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; }
.em-vmap-stats dd { color: var(--em-gold); font-family: var(--em-serif); font-size: clamp(38px, 4vw, 60px); letter-spacing: -0.03em; line-height: 1; margin: 8px 0 0; }

/* ------------------------------------------------------------------
 * Venue Explorer: grid filters
 * --------------------------------------------------------------- */
.em-vx-filters { align-items: center; display: flex; flex-wrap: wrap; gap: 16px 24px; justify-content: space-between; margin: 0; }
.em-vx-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.em-vx-pill { background: transparent; border: 1px solid var(--em-rule-strong); color: var(--em-ink); cursor: pointer; font: inherit; font-size: 12px; font-weight: 750; letter-spacing: 0.08em; min-height: 42px; padding: 0 18px; text-transform: uppercase; transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease; }
.em-vx-pill:hover { border-color: var(--em-ink); }
.em-vx-pill.is-active { background: var(--em-ink); border-color: var(--em-ink); color: #fff; }
.em-vx-fields { display: flex; flex: 1 1 100%; gap: 10px; }
.em-vx-fields select, .em-vx-fields input { appearance: none; background: #fff; border: 1px solid var(--em-rule-strong); border-radius: 0; color: var(--em-ink); font: inherit; font-size: 14px; height: 46px; min-width: 0; padding: 0 14px; }
.em-vx-fields select { background-image: linear-gradient(45deg, transparent 50%, var(--em-ink) 50%), linear-gradient(135deg, var(--em-ink) 50%, transparent 50%); background-position: calc(100% - 20px) 20px, calc(100% - 15px) 20px; background-repeat: no-repeat; background-size: 5px 5px; flex: 0 1 240px; padding-right: 36px; }
.em-vx-fields input { flex: 1 1 260px; }
.em-vx-fields select:focus, .em-vx-fields input:focus { border-color: var(--em-blue); box-shadow: 0 0 0 3px rgba(13, 75, 120, 0.15); outline: 0; }
.em-vx-pill:focus-visible, .em-vx-chip:focus-visible, .em-vx-reset:focus-visible { outline: 3px solid var(--em-gold); outline-offset: 2px; }
.em-vx-status { align-items: center; border-bottom: 2px solid var(--em-ink); display: flex; flex-wrap: wrap; gap: 12px 18px; margin: 30px 0 28px; padding-bottom: 12px; }
.em-vx-count { color: var(--em-ink); font-family: var(--em-serif); font-size: 22px; margin-right: auto !important; }
.em-vx-chip { align-items: center; background: var(--em-blue); border: 0; color: #fff; cursor: pointer; display: inline-flex; font: inherit; font-size: 12px; font-weight: 750; gap: 8px; padding: 7px 12px; }
.em-vx-chip[hidden], .em-vx-reset[hidden] { display: none; }
.em-vx-reset { background: none; border: 0; border-bottom: 1px solid currentColor; color: var(--em-blue); cursor: pointer; font: inherit; font-size: 13px; font-weight: 700; padding: 0 0 2px; }
.em-vx-empty { color: var(--em-text); padding: 30px 0; }
.em-vx-empty a { border-bottom: 1px solid currentColor; color: var(--em-blue); }
.em-vx-more-wrap { display: flex; justify-content: center; margin-top: 40px; }

/* ------------------------------------------------------------------
 * Venue dialog
 * --------------------------------------------------------------- */
html.em-vdialog-open { overflow: hidden; }
.em-vdialog { background: transparent; border: 0; color: var(--em-ink); max-height: calc(100vh - 40px); max-width: min(1040px, calc(100vw - 40px)); padding: 0; width: 100%; }
.em-vdialog::backdrop { backdrop-filter: blur(3px); background: rgba(7, 26, 51, 0.78); }
.em-vdialog[open] { animation: em-vdialog-in 0.28s ease; }
@keyframes em-vdialog-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.em-vdialog-inner { background: var(--em-paper); border-bottom: 5px solid var(--em-gold); display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); max-height: calc(100vh - 40px); position: relative; }
/* The photo keeps its own shape (venue photos are mostly 800px landscape) over a
   blurred copy of itself, instead of being stretched to the height of the text. */
.em-vdialog-photo { align-items: center; background: #0b1f38; display: flex; min-height: 320px; overflow: hidden; position: relative; }
.em-vdialog-photo::before { background: var(--em-vd-bg) center / cover no-repeat; content: ""; filter: blur(22px) brightness(0.6) saturate(1.1); inset: -40px; position: absolute; }
.em-vdialog-photo img { aspect-ratio: 3 / 2; display: block; height: auto; object-fit: cover; position: relative; width: 100%; }
.em-vdialog-body { display: flex; flex-direction: column; overflow-y: auto; padding: clamp(28px, 3.4vw, 46px); }
.em-vdialog .em-eyebrow { color: var(--em-blue); margin-bottom: 12px !important; }
.em .em-vdialog-body h2, .em-vdialog-body h2 { color: var(--em-ink); font-family: var(--em-serif); font-size: clamp(32px, 3.4vw, 48px); font-weight: 500; letter-spacing: -0.035em; line-height: 1.02; margin: 0 0 16px; }
.em-vdialog .em-vcard-types { margin: 0 0 20px !important; padding-top: 0; }
.em-vdialog-text p { color: #4e5b69; font-size: 15px; line-height: 1.7; margin: 0; }
.em-vdialog-text p + p { margin-top: 14px; }
.em-vdialog-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; margin-top: auto; padding-top: 28px; }
.em-vdialog-nav { display: flex; gap: 6px; }
.em-vdialog-nav[hidden] { display: none; }
.em-vdialog-nav button { background: transparent; border: 1px solid var(--em-rule-strong); color: var(--em-ink); cursor: pointer; font-size: 18px; height: 46px; width: 46px; }
.em-vdialog-nav button:hover { border-color: var(--em-ink); }
.em-vdialog-close { align-items: center; background: #fff; border: 0; border-radius: 50%; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2); color: var(--em-ink); cursor: pointer; display: flex; font-size: 26px; height: 44px; justify-content: center; line-height: 1; position: absolute; right: 14px; top: 14px; width: 44px; z-index: 2; }
.em-vdialog button:focus-visible, .em-vdialog a:focus-visible { outline: 3px solid var(--em-gold); outline-offset: 2px; }

@media (max-width: 1200px) {
	.em-vx-grid { --em-cols: 3; }
}
@media (max-width: 1050px) {
	.em-vfeature, .em-vfeature--4 { --em-cols: 2; }
	.em-vmap-stage { aspect-ratio: 16 / 10; }
}
@media (max-width: 900px) {
	.em-vx-grid { --em-cols: 2; }
	.em-vx-fields { max-width: none; }
	.em-vmap-bar { align-items: flex-start; }
	.em-vmap-tab { font-size: 11px; min-height: 36px; padding: 0 12px; }
	.em-vmap-stage { aspect-ratio: 4 / 3; }
	.em-vmap-panel { bottom: 0; left: 0; right: 0; top: auto; max-height: 72%; width: auto; }
	.em-vdialog-inner { grid-template-columns: 1fr; overflow-y: auto; }
	.em-vdialog-photo { min-height: 0; }
	.em-vdialog-body { overflow: visible; }
}
@media (max-width: 600px) {
	.em-vfeature, .em-vfeature--4, .em-vx-grid { --em-cols: 1; }
	.em-vx-fields { flex-direction: column; }
	.em-vx-fields select { flex: none; width: 100%; }
	.em-vx-fields input { flex: none; width: 100%; }
	.em-vmap-stage { aspect-ratio: 1 / 1; }
	.em-vmap-hint { display: none; }
	.em-vmap-bar { flex-direction: column-reverse; gap: 10px; }
	.em-vmap-zoom { align-self: flex-end; }
	.em-vmap-tabs { flex-wrap: nowrap; margin: 0 -22px; overflow-x: auto; padding: 0 22px 4px; scrollbar-width: none; width: calc(100% + 44px); }
	.em-vmap-tabs::-webkit-scrollbar { display: none; }
	.em-vmap-tab { flex: 0 0 auto; white-space: nowrap; }
	.em-vmap-stats div { padding-left: 14px; }
	.em-vdialog { max-height: 100vh; max-width: 100vw; }
	.em-vdialog-inner { max-height: 100vh; }
}
@media (prefers-reduced-motion: reduce) {
	.em-vcard, .em-vcard-photo img, .em-vmap-canvas svg { transition: none; }
	.em-vcard:hover, .em-vcard:focus-within { transform: none; }
	.em-vcard:hover .em-vcard-photo img { transform: none; }
	.em-vdialog[open] { animation: none; }
}

/* ------------------------------------------------------------------
 * Page Hero (Classic): the theme's hero, plus an intro in the theme's text style
 * --------------------------------------------------------------- */
.em-page-hero { background: #fff; padding-bottom: clamp(40px, 6vw, 72px); }
.em-page-hero .hero h1 { margin: 0; }
.em-page-hero-intro { margin-top: clamp(36px, 5vw, 56px); }
.em-page-hero-intro p { font-size: 1rem; line-height: 1.75; }
.em-page-hero-intro p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------------
 * Card Grid: Photo panels
 * --------------------------------------------------------------- */
.em-card-grid--photos .em-grid-cards { gap: 14px; }
.em-photo-panel { aspect-ratio: 3 / 4; background: var(--em-navy); color: #fff; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; padding: 0 !important; position: relative; }
.em-photo-panel-img, .em-photo-panel > img { height: 100%; inset: 0; object-fit: cover; position: absolute; transition: transform 0.6s ease; width: 100%; }
.em-photo-panel::after { background: linear-gradient(180deg, rgba(7, 26, 51, 0) 30%, rgba(7, 26, 51, 0.62) 58%, rgba(7, 26, 51, 0.96) 100%); content: ""; inset: 0; position: absolute; }
.em-photo-panel::before { background: var(--em-gold); bottom: 0; content: ""; height: 4px; left: 0; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform 0.35s ease; width: 100%; z-index: 2; }
.em-photo-panel-body { padding: clamp(20px, 2.2vw, 28px); position: relative; z-index: 1; }
.em-photo-panel-kicker { color: var(--em-gold); font-size: 11px; font-weight: 800; letter-spacing: 0.16em; margin: 0 0 10px; text-transform: uppercase; }
.em-photo-panel h3 { color: #fff; font-family: var(--em-serif); font-size: clamp(24px, 2.2vw, 30px); font-weight: 400; line-height: 1.08; margin: 0; }
.em-photo-panel h3 a { color: inherit; text-decoration: none; }
.em-photo-panel h3 a::after { content: ""; inset: 0; position: absolute; z-index: 3; }
.em-photo-panel-text { color: rgba(255, 255, 255, 0.82); font-size: 14px; line-height: 1.55; margin-top: 12px; }
.em-photo-panel-text p { margin: 0; }
.em-photo-panel-cta { color: var(--em-gold); display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: 0.14em; margin-top: 18px; text-transform: uppercase; }
.em-photo-panel:hover .em-photo-panel-img, .em-photo-panel:focus-within .em-photo-panel-img { transform: scale(1.05); }
.em-photo-panel:hover::before, .em-photo-panel:focus-within::before { transform: scaleX(1); }
.em-photo-panel h3 a:focus-visible { outline: 2px solid var(--em-gold); outline-offset: 4px; }
@media (max-width: 900px) { .em-card-grid--photos .em-grid-cards--4, .em-card-grid--photos .em-grid-cards--3 { --em-cols: 2; } }
@media (max-width: 560px) { .em-card-grid--photos .em-grid-cards--4, .em-card-grid--photos .em-grid-cards--3, .em-card-grid--photos .em-grid-cards--2 { --em-cols: 1; } .em-photo-panel { aspect-ratio: 4 / 3; } }
@media (prefers-reduced-motion: reduce) { .em-photo-panel-img, .em-photo-panel::before { transition: none; } }

/* ------------------------------------------------------------------
 * Venue Teaser
 * --------------------------------------------------------------- */
.em-venue-teaser .em-photo-panel { aspect-ratio: 4 / 5; }
.em-venue-teaser .em-photo-panel h3 { font-size: clamp(22px, 2vw, 28px); }
.em-venue-teaser-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: clamp(28px, 4vw, 44px); }
.em-venue-teaser-stats { color: var(--em-soft); font-size: 13px; font-weight: 700; letter-spacing: 0.12em; margin: 0; text-transform: uppercase; }
.em-dark .em-venue-teaser-stats { color: var(--em-sky); }
@media (max-width: 560px) { .em-venue-teaser .em-photo-panel { aspect-ratio: 16 / 10; } }
.em-venue-teaser-grid { align-items: center; display: grid; gap: clamp(32px, 5vw, 76px); grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.em-venue-teaser-text h2 { margin-bottom: 0; }
.em-venue-teaser-intro { margin-top: 20px; }
.em-venue-teaser-intro p { margin: 0; }
.em-venue-teaser--split .em-venue-teaser-numbers { margin-top: 30px; }
.em-venue-teaser--split .em-venue-teaser-numbers dd { font-size: clamp(34px, 3.4vw, 50px); }
.em-venue-teaser--split .em-grid-cards { gap: 12px; }
.em-venue-teaser--split .em-photo-panel { aspect-ratio: 4 / 3; }
.em-venue-teaser--split .em-photo-panel h3 { font-size: clamp(20px, 1.7vw, 25px); }
.em-venue-teaser--split .em-photo-panel-body { padding: clamp(16px, 1.8vw, 22px); }
.em-venue-teaser:not(.em-dark) .em-venue-teaser-numbers div { border-left-color: var(--em-rule); }
.em-venue-teaser:not(.em-dark) .em-venue-teaser-numbers dt { color: var(--em-soft); }
.em-venue-teaser:not(.em-dark) .em-venue-teaser-numbers dd { color: var(--em-blue); }
@media (max-width: 960px) {
	.em-venue-teaser-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.em-venue-teaser--split .em-grid-cards { --em-cols: 2; }
	.em-venue-teaser--split .em-photo-panel { aspect-ratio: 1 / 1; }
	.em-venue-teaser--split .em-photo-panel-kicker { font-size: 10px; margin-bottom: 6px; }
	.em-venue-teaser--split .em-photo-panel h3 { font-size: 17px; }
}
.em-venue-teaser--split .em-venue-teaser-text h2 { font-size: clamp(36px, 3.9vw, 58px); }
.em-dark .em-photo-panel { background: var(--em-deep); }
.em-venue-teaser-benefits { border-top: 1px solid rgba(255, 255, 255, 0.18); display: grid; gap: 18px 22px; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 30px 0 0; padding: 22px 0 0; }
.em-venue-teaser-benefits li { margin: 0; }
.em-venue-teaser-benefits strong { color: var(--em-gold); display: block; font-family: var(--em-serif); font-size: clamp(19px, 1.6vw, 23px); font-weight: 400; line-height: 1.15; }
.em-venue-teaser-benefits span { color: #c6d2df; display: block; font-size: 13px; line-height: 1.5; margin-top: 6px; }
.em-venue-teaser:not(.em-dark) .em-venue-teaser-benefits { border-top-color: var(--em-rule); }
.em-venue-teaser:not(.em-dark) .em-venue-teaser-benefits strong { color: var(--em-blue); }
.em-venue-teaser:not(.em-dark) .em-venue-teaser-benefits span { color: var(--em-text); }
@media (max-width: 560px) { .em-venue-teaser-benefits { grid-template-columns: 1fr; } }
