/* ============================================================================
   VIDMV Membership + Events — ported "gem cut" design system.
   Self-contained, scoped under .vidmv-root to avoid clashing with the active
   WordPress theme. Hand-written CSS (no Tailwind build step) reproducing the
   subset of utilities actually used by the [vidmv_membership] / [vidmv_events]
   shortcode templates. Source of truth: the static site's
   assets/css/site.css (compiled) and _source/input.css + tailwind.config.js.
   ========================================================================== */

.vidmv-root {
	--vidmv-abyss: #041B44;
	--vidmv-midnight: #082450;
	--vidmv-deep: #02102B;
	--vidmv-gold: #FFBF00;
	--vidmv-gold-deep: #D99F00;
	--vidmv-royal: #00428C;
	--vidmv-emerald: #02603E;
	--vidmv-leaf: #5EA102;
	--vidmv-shell: #F1F4F9;
	--vidmv-ink: #0B1526;
	--vidmv-gem-c: 20px;

	background: var(--vidmv-abyss);
	color: #fff;
	font-family: 'Karla', system-ui, -apple-system, 'Segoe UI', sans-serif;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

.vidmv-root * { box-sizing: border-box; }

.vidmv-root h1, .vidmv-root h2, .vidmv-root h3 {
	font-family: 'Anton', Impact, Haettenschweiler, sans-serif;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: -0.012em;
	line-height: 0.92;
	margin: 0;
}

.vidmv-root a { color: inherit; text-decoration: none; }
.vidmv-root ul, .vidmv-root ol { margin: 0; padding: 0; list-style: none; }
.vidmv-root p { margin: 0; }
.vidmv-root ::selection { background: var(--vidmv-gold); color: var(--vidmv-abyss); }

/* ------------------------------------------------------------------ Shell */
.vidmv-wrap { margin: 0 auto; width: 100%; max-width: 78rem; padding-left: clamp(1.25rem, 5vw, 4rem); padding-right: clamp(1.25rem, 5vw, 4rem); }
.vidmv-band { padding-top: 5rem; padding-bottom: 5rem; }
@media (min-width: 768px) { .vidmv-band { padding-top: 7rem; padding-bottom: 7rem; } }

/* ------------------------------------------------------------------ Gem cut */
.vidmv-gem {
	clip-path: polygon(
		var(--vidmv-gem-c) 0, 100% 0,
		100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%,
		0 100%, 0 var(--vidmv-gem-c)
	);
}
.vidmv-gem-sm { --vidmv-gem-c: 10px; }
.vidmv-gem-xs { --vidmv-gem-c: 6px; }
.vidmv-gem-lg { --vidmv-gem-c: 34px; }

.vidmv-gem-ring { clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c)); padding: 1px; }
.vidmv-gem-ring > .vidmv-gem-body {
	clip-path: polygon(
		var(--vidmv-gem-c) 0, 100% 0,
		100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%,
		0 100%, 0 var(--vidmv-gem-c)
	);
	height: 100%;
}

/* ------------------------------------------------------------------ Facets bg */
.vidmv-facets {
	background-image:
		linear-gradient(45deg, rgba(255,255,255,.028) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.028) 75%),
		linear-gradient(-45deg, rgba(255,255,255,.028) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.028) 75%);
	background-size: 46px 46px;
	background-position: 0 0, 23px 23px;
	position: absolute; inset: 0; opacity: .5; pointer-events: none;
}

/* ------------------------------------------------------------------ Type */
.vidmv-eyebrow { font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .22em; line-height: 1; color: var(--vidmv-gold); }
.vidmv-h-band { font-size: clamp(2rem, 4.6vw, 3.6rem); line-height: .92; text-transform: uppercase; }
.vidmv-h-card { font-size: 1.25rem; text-transform: uppercase; }
@media (min-width: 768px) { .vidmv-h-card { font-size: 1.5rem; } }
.vidmv-lede { font-size: 1.05rem; line-height: 1.6; color: rgba(255,255,255,.55); }

/* ------------------------------------------------------------------ Buttons */
.vidmv-btn {
	--vidmv-gem-c: 10px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
	position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	padding: .9rem 1.5rem; font-size: .875rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em;
	line-height: 1; border: 0; cursor: pointer; transition: all .2s; overflow: hidden; text-align: center;
}
.vidmv-btn-gold { background: var(--vidmv-gold); color: var(--vidmv-abyss); box-shadow: 0 10px 30px -12px rgba(255,191,0,.75); }
.vidmv-btn-gold:hover { background: #fff; transform: translateY(-2px); box-shadow: 0 16px 38px -12px rgba(255,191,0,.9); }
.vidmv-btn-ghost { background: rgba(255,255,255,.04); color: #fff; border: 1px solid rgba(255,255,255,.3); }
.vidmv-btn-ghost:hover { border-color: rgba(255,191,0,.7); background: rgba(255,191,0,.1); color: var(--vidmv-gold); }
.vidmv-btn-sm { padding: .65rem 1rem; font-size: .75rem; --vidmv-gem-c: 7px; }
.vidmv-btn-wide { width: 100%; }
.vidmv-btn[disabled] { opacity: .6; cursor: not-allowed; }

/* ------------------------------------------------------------------ Cards */
.vidmv-card {
	--vidmv-gem-c: 20px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
	position: relative; overflow: hidden;
	background: linear-gradient(158deg, rgba(255,255,255,.075), rgba(255,255,255,.02) 55%, rgba(255,255,255,0));
	transition: transform .35s cubic-bezier(.2,.9,.3,1), background .35s;
}

/* ------------------------------------------------------------------ Forms */
.vidmv-field {
	--vidmv-gem-c: 6px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
	width: 100%; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.05);
	padding: .75rem 1rem; color: #fff; transition: all .2s; font-family: inherit; font-size: 1rem;
}
.vidmv-field::placeholder { color: rgba(255,255,255,.35); }
.vidmv-field:focus { outline: none; border-color: rgba(255,191,0,.6); background: rgba(255,255,255,.08); }
.vidmv-field.vidmv-invalid { border-color: #f87171 !important; }
.vidmv-field.vidmv-field-highlight { border-color: rgba(255,191,0,.6); }
.vidmv-label { display: block; margin-bottom: .5rem; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .16em; color: rgba(255,255,255,.55); }
.vidmv-checkbox-row { display: flex; align-items: flex-start; gap: .75rem; cursor: pointer; }
.vidmv-checkbox-row input { margin-top: .25rem; width: 1rem; height: 1rem; accent-color: var(--vidmv-gold); flex-shrink: 0; }
.vidmv-checkbox-row span { font-size: .875rem; color: rgba(255,255,255,.5); }

/* ------------------------------------------------------------------ Links */
.vidmv-link-u {
	background-image: linear-gradient(var(--vidmv-gold), var(--vidmv-gold));
	background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%;
	transition: background-size .35s;
}
.vidmv-link-u:hover { background-size: 100% 1px; }

/* ------------------------------------------------------------------ Layout helpers */
.vidmv-grid { display: grid; gap: 1.25rem; }
.vidmv-grid-2 { grid-template-columns: 1fr; }
.vidmv-grid-4 { grid-template-columns: 1fr; }
@media (min-width: 640px) { .vidmv-grid-2 { grid-template-columns: repeat(2, 1fr); } .vidmv-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .vidmv-grid-4 { grid-template-columns: repeat(4, 1fr); } }
.vidmv-grid-events { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 1280px) { .vidmv-grid-events { grid-template-columns: repeat(2, 1fr); } }
.vidmv-gallery-grid { display: grid; gap: .75rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 640px) { .vidmv-gallery-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .vidmv-gallery-grid { grid-template-columns: repeat(4, 1fr); } }

.vidmv-flex { display: flex; }
.vidmv-flex-wrap { flex-wrap: wrap; }
.vidmv-items-center { align-items: center; }
.vidmv-justify-between { justify-content: space-between; }
.vidmv-gap-3 { gap: .75rem; }
.vidmv-text-center { text-align: center; }
.vidmv-mt-1 { margin-top: .25rem; }
.vidmv-mt-2 { margin-top: .5rem; }
.vidmv-mt-3 { margin-top: .75rem; }
.vidmv-mt-4 { margin-top: 1rem; }
.vidmv-mt-5 { margin-top: 1.25rem; }
.vidmv-mt-6 { margin-top: 1.5rem; }
.vidmv-mt-8 { margin-top: 2rem; }
.vidmv-mt-10 { margin-top: 2.5rem; }
.vidmv-mt-12 { margin-top: 3rem; }
.vidmv-mt-14 { margin-top: 3.5rem; }
.vidmv-hidden { display: none !important; }
.vidmv-muted-40 { color: rgba(255,255,255,.4); }
.vidmv-muted-50 { color: rgba(255,255,255,.5); }
.vidmv-muted-55 { color: rgba(255,255,255,.55); }
.vidmv-text-gold { color: var(--vidmv-gold); }
.vidmv-text-leaf { color: var(--vidmv-leaf); }
.vidmv-text-sm { font-size: .875rem; }
.vidmv-text-xs { font-size: .75rem; }

/* ------------------------------------------------------------------ Reveal */
.vidmv-root [data-vidmv-reveal] { opacity: 0; transform: translateY(26px); }
.vidmv-root [data-vidmv-reveal].in { opacity: 1; transform: none; transition: opacity .8s cubic-bezier(.2,.9,.3,1), transform .8s cubic-bezier(.2,.9,.3,1); }
@media (prefers-reduced-motion: reduce) { .vidmv-root [data-vidmv-reveal] { opacity: 1; transform: none; } }

/* ------------------------------------------------------------------ Urgency / countdown rail */
.vidmv-urgency {
	background: var(--vidmv-gold); color: var(--vidmv-abyss);
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 1.5rem; padding: 1.25rem 0;
}
.vidmv-countdown { display: flex; align-items: center; gap: .625rem; }
.vidmv-countdown .vidmv-cd-box {
	--vidmv-gem-c: 6px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
	min-width: 3rem; background: var(--vidmv-abyss); color: var(--vidmv-gold);
	padding: .5rem .65rem; text-align: center; font-family: 'Anton', Impact, sans-serif; font-size: 1.25rem; line-height: 1;
}
.vidmv-countdown .vidmv-cd-unit { font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; opacity: .6; }

/* ------------------------------------------------------------------ Tier cards */
.vidmv-tier {
	position: relative; display: flex; flex-direction: column; height: 100%;
	background: rgba(255,255,255,.1);
	--vidmv-gem-c: 20px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
	padding: 1px;
}
.vidmv-tier.vidmv-tier-gold { background: linear-gradient(to bottom, var(--vidmv-gold), rgba(255,191,0,.2)); }
.vidmv-tier-body {
	--vidmv-gem-c: 20px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
	background: var(--vidmv-abyss); padding: 1.75rem; display: flex; flex-direction: column; height: 100%; position: relative;
}
.vidmv-tier.vidmv-tier-gold .vidmv-tier-body { background: linear-gradient(to bottom, #0a2b62, var(--vidmv-abyss)); }
.vidmv-tier-badge {
	position: absolute; top: -1px; right: 0; background: var(--vidmv-gold); color: var(--vidmv-abyss);
	padding: .35rem 1rem; font-size: .56rem; font-weight: 800; text-transform: uppercase; letter-spacing: .16em;
	--vidmv-gem-c: 6px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
}
.vidmv-tier-price-row { margin-top: 1.75rem; border-top: 1px solid rgba(255,255,255,.1); border-bottom: 1px solid rgba(255,255,255,.1); padding: 1.5rem 0; }
.vidmv-tier-price { display: flex; align-items: flex-end; gap: .625rem; }
.vidmv-tier-price-now { font-family: 'Anton', Impact, sans-serif; font-size: 2.75rem; line-height: 1; color: var(--vidmv-gold); }
.vidmv-tier-price-note { padding-bottom: .25rem; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: rgba(255,255,255,.35); }
.vidmv-tier-future { margin-top: .75rem; font-size: .75rem; color: rgba(255,255,255,.35); }
.vidmv-tier-benefits { margin-top: 1.5rem; flex: 1 1 auto; display: flex; flex-direction: column; gap: .75rem; }
.vidmv-tier-benefits li { display: flex; gap: .75rem; font-size: .875rem; color: rgba(255,255,255,.65); }
.vidmv-tier-benefits li svg { flex-shrink: 0; margin-top: .35rem; width: 8px; height: 8px; }

/* ------------------------------------------------------------------ Event cards */
.vidmv-event-card { display: grid; grid-template-columns: 1fr; }
@media (min-width: 768px) { .vidmv-event-card { grid-template-columns: .85fr 1fr; } }
.vidmv-event-media { position: relative; overflow: hidden; min-height: 15rem; background: var(--vidmv-midnight); }
.vidmv-event-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vidmv-event-date-chip {
	position: absolute; left: 1.25rem; top: 1.25rem; background: var(--vidmv-gold); color: var(--vidmv-abyss);
	padding: .6rem .9rem; text-align: center;
	--vidmv-gem-c: 6px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
}
.vidmv-event-date-chip .vidmv-day { display: block; font-family: 'Anton', Impact, sans-serif; font-size: 1.75rem; line-height: 1; }
.vidmv-event-date-chip .vidmv-mon { display: block; font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; }
.vidmv-event-body { display: flex; flex-direction: column; padding: 1.5rem; }
@media (min-width: 768px) { .vidmv-event-body { padding: 2rem; } }
.vidmv-event-badge { display: inline-block; background: rgba(94,161,2,.15); color: var(--vidmv-leaf); padding: .25rem .625rem; font-size: .56rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; --vidmv-gem-c: 4px; clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c)); }
.vidmv-event-progress-track { margin-top: .5rem; height: .25rem; width: 100%; overflow: hidden; background: rgba(255,255,255,.1); }
.vidmv-event-progress-fill { height: 100%; background: linear-gradient(to right, var(--vidmv-leaf), var(--vidmv-gold)); }
.vidmv-event-footer { margin-top: 1.5rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; border-top: 1px solid rgba(255,255,255,.1); padding-top: 1.5rem; }

/* ------------------------------------------------------------------ FAQ accordion */
.vidmv-faq { border-bottom: 1px solid rgba(255,255,255,.1); padding: 1.25rem 0; }
.vidmv-faq summary { display: flex; cursor: pointer; list-style: none; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.vidmv-faq summary::-webkit-details-marker { display: none; }
.vidmv-faq summary .vidmv-faq-q { font-size: 1.05rem; font-weight: 800; line-height: 1.35; color: #fff; }
.vidmv-faq summary .vidmv-faq-icon { position: relative; margin-top: .35rem; height: .75rem; width: .75rem; flex-shrink: 0; }
.vidmv-faq summary .vidmv-faq-icon::before,
.vidmv-faq summary .vidmv-faq-icon::after { content: ''; position: absolute; background: var(--vidmv-gold); }
.vidmv-faq summary .vidmv-faq-icon::before { left: 0; top: 50%; height: 2px; width: .75rem; transform: translateY(-50%); }
.vidmv-faq summary .vidmv-faq-icon::after { left: 50%; top: 0; height: .75rem; width: 2px; transform: translateX(-50%); transition: transform .3s, opacity .3s; }
.vidmv-faq[open] summary .vidmv-faq-icon::after { transform: translateX(-50%) rotate(90deg); opacity: 0; }
.vidmv-faq p { margin-top: 1rem; max-width: 48rem; line-height: 1.6; color: rgba(255,255,255,.5); }

/* ------------------------------------------------------------------ Year tabs / gallery */
.vidmv-year-tabs { display: flex; gap: .75rem; overflow-x: auto; padding-bottom: .25rem; }
.vidmv-year-tabs::-webkit-scrollbar { display: none; }
.vidmv-year-tab {
	flex-shrink: 0; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.05); color: rgba(255,255,255,.45);
	padding: .75rem 1.5rem; font-family: 'Anton', Impact, sans-serif; font-size: 1.5rem; line-height: 1; cursor: pointer; transition: all .2s;
	--vidmv-gem-c: 6px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
}
.vidmv-year-tab:hover { border-color: rgba(255,255,255,.3); color: #fff; }
.vidmv-year-tab.vidmv-active { border-color: var(--vidmv-gold); background: var(--vidmv-gold); color: var(--vidmv-abyss); }
.vidmv-year-panel { display: none; }
.vidmv-year-panel.vidmv-active { display: block; }
.vidmv-gallery-figure { position: relative; overflow: hidden; background: var(--vidmv-midnight); aspect-ratio: 1 / 1; }
.vidmv-gallery-figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.vidmv-gallery-figure:hover img { transform: scale(1.1); }
.vidmv-gallery-caption {
	position: absolute; inset-inline: 0; bottom: 0; background: linear-gradient(to top, var(--vidmv-deep), rgba(2,16,43,.8), transparent);
	padding: 2.25rem 1rem 1rem; opacity: 0; transform: translateY(.5rem); transition: all .3s;
}
.vidmv-gallery-figure:hover .vidmv-gallery-caption { opacity: 1; transform: none; }
.vidmv-gallery-caption .vidmv-gallery-title { display: block; font-size: .8rem; font-weight: 800; line-height: 1.3; color: #fff; }
.vidmv-gallery-caption .vidmv-gallery-loc { display: block; margin-top: .1rem; font-size: .66rem; color: rgba(255,255,255,.5); }

/* ------------------------------------------------------------------ Messages */
.vidmv-msg { margin-top: .75rem; font-size: .875rem; }
.vidmv-msg-success { color: var(--vidmv-leaf); }
.vidmv-msg-error { color: #f87171; }

/* ------------------------------------------------------------------ Notice box */
.vidmv-notice {
	--vidmv-gem-c: 6px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
	display: flex; align-items: flex-start; gap: .75rem; border: 1px solid rgba(94,161,2,.3); background: rgba(94,161,2,.07); padding: 1rem;
}
.vidmv-notice svg { margin-top: .1rem; height: 1.25rem; width: 1.25rem; flex-shrink: 0; color: var(--vidmv-leaf); }
.vidmv-notice p { font-size: .875rem; color: rgba(255,255,255,.6); }
.vidmv-notice strong { color: var(--vidmv-leaf); font-weight: 800; }

/* ------------------------------------------------------------------ Members-only join box */
.vidmv-members-only-box {
	--vidmv-gem-c: 10px;
	clip-path: polygon(var(--vidmv-gem-c) 0, 100% 0, 100% calc(100% - var(--vidmv-gem-c)), calc(100% - var(--vidmv-gem-c)) 100%, 0 100%, 0 var(--vidmv-gem-c));
	border: 1px solid rgba(255,191,0,.25); background: rgba(255,191,0,.05); padding: 1.25rem; margin-top: 2.25rem;
}
.vidmv-members-only-box p { font-size: .875rem; color: rgba(255,255,255,.6); }
