/* =========================
   VEIL MEMBERSHIPS
   ========================= */

#veil-join {
	max-width: 1100px;
	margin: 0 auto;
	padding: 60px 20px;
	text-align: center;
	background: var(--veil-obsidian, #0a0a0a);
	color: var(--veil-silver, #e5e7eb);
}

#veil-join h1.lv-title {
	color: var(--veil-moonlight, #c7d2fe);
	margin-bottom: 12px;
}

#veil-join .lv-sub {
	max-width: 740px;
	margin: 0 auto 32px;
	opacity: 0.95;
}

/* =========================
   TIER GRID
   ========================= */

.vm-tier-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
	margin: 40px 0 36px;
}

/* Fallback safety */
@supports not (display: grid) {
	.vm-tier-grid {
		display: flex;
		flex-wrap: wrap;
		gap: 24px;
	}

	.vm-tier {
		flex: 1 1 280px;
	}
}

/* =========================
   TIER CARDS
   ========================= */

.vm-tier {
	background: rgba(255,255,255,0.03);
	border: 1px solid rgba(255,255,255,0.08);
	border-radius: 12px;
	padding: 24px;
	box-sizing: border-box;
	box-shadow: 0 6px 18px rgba(0,0,0,0.35);
}

.vm-tier h2 {
	color: var(--veil-crimson, #d63447);
	margin-bottom: 8px;
}

.vm-tier[data-tier="2"] {
	border-color: rgba(199,210,254,0.35);
}

.vm-tier[data-tier="3"] {
	border-color: rgba(214,52,71,0.45);
	box-shadow:
		0 0 0 1px rgba(214,52,71,0.25),
		0 12px 32px rgba(214,52,71,0.35);
}

/* =========================
   PRICING
   ========================= */

.vm-price {
	font-size: 2.2rem;
	font-weight: 900;
	margin: 12px 0 6px;
	letter-spacing: 0.5px;
}

.vm-price small {
	font-size: 0.85rem;
	font-weight: 600;
	opacity: 0.8;
}

.vm-price-free {
	color: #22c55e;
}

.vm-price-acolyte {
	color: var(--veil-moonlight, #c7d2fe);
}

.vm-price-ascendant {
	color: var(--veil-crimson, #d63447);
	text-shadow: 0 0 18px rgba(214,52,71,0.45);
}

/* =========================
   TIER LISTS
   ========================= */

.vm-tier ul {
	list-style: none;
	padding: 0;
	margin: 0 0 16px;
	text-align: left;
}

.vm-tier li {
	padding: 6px 0;
	border-bottom: 1px solid rgba(255,255,255,0.06);
}

.vm-tier li:last-child {
	border-bottom: none;
}

/* =========================
   FOOTER NOTE
   ========================= */

.vm-note {
	opacity: 0.9;
	font-size: 0.9em;
	margin-top: 20px;
}

/* =========================
   VEIL MEMBERSHIP PAGE
   ========================= */

.veil-membership {
	max-width: 1100px;
	margin: 0 auto;
	padding: 60px 20px;
}

.veil-membership-header {
	text-align: center;
	margin-bottom: 40px;
}

.veil-membership-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin: 40px 0;
    align-items: stretch;
}

.veil-membership-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.veil-membership-card {
    background: rgba(10, 15, 25, 0.85);
    border: 1px solid rgba(120, 180, 255, 0.25);
    border-radius: 16px;
    padding: 1.75rem;
    box-shadow:
        0 0 0 1px rgba(120, 180, 255, 0.08),
        0 8px 24px rgba(0, 0, 0, 0.35);
    transition: all 0.3s ease;
}

.veil-membership-card:hover {
    border-color: rgba(120, 180, 255, 0.55);
    transform: translateY(-3px);
    box-shadow:
        0 0 18px rgba(120, 180, 255, 0.15),
        0 12px 30px rgba(0, 0, 0, 0.45);
}

.veil-membership-card p {
    flex-grow: 1;
}

.veil-membership-card .veil-btn {
    margin-top: auto;
}

@media (max-width: 768px) {
    .veil-membership-grid {
        grid-template-columns: 1fr;
    }
}

.veil-membership-card h2,
.veil-membership-card h3 {
	margin-top: 0;
	color: var(--veil-moonlight);
}

.veil-status {
	margin-bottom: 40px;
}

/* Danger zone */
.veil-danger {
	border-color: rgba(220,38,38,0.4);
}

.veil-btn-danger {
	color: #fca5a5;
	border-color: rgba(220,38,38,0.5);
}

/* =========================
   PMPRO INSIDE MEMBERSHIP
   ========================= */

.veil-membership .pmpro_card {
	background: transparent;
	border: none;
	padding: 0;
}

.veil-membership .pmpro_table,
.veil-membership .pmpro_table th,
.veil-membership .pmpro_table td {
	background: transparent !important;
	color: var(--veil-silver);
	border-color: rgba(255,255,255,0.12);
}

.veil-membership .pmpro_table thead th {
	color: var(--veil-moonlight);
}
.veil-table-section td {
background: rgba(130, 30, 30, 0.15);
color: var(--veil-accent);
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
text-align: center;
}

.veil-membership-table {
width: 100%;
border-collapse: collapse;
}

.veil-membership-table th,
.veil-membership-table td {
padding: 12px 16px;
border: 1px solid rgba(255,255,255,.1);
}

.veil-membership-table th {
background: rgba(0,0,0,.35);
}
/* ======================================================
VEIL MEMBERSHIP / MEMBERPRESS / ULTIMATE MEMBER STYLES
====================================================== */

:root {
--veil-panel-bg: rgba(8, 10, 18, 0.88);
--veil-panel-bg-soft: rgba(14, 18, 30, 0.82);
--veil-border: rgba(143, 199, 255, 0.22);
--veil-border-strong: rgba(143, 199, 255, 0.42);
--veil-crimson: #b9354a;
--veil-blood: #ff2f3f;
--veil-gold: #d6b46a;
--veil-text: #f4efe8;
--veil-muted: #c9bdad;
--veil-shadow: 0 22px 70px rgba(0, 0, 0, 0.45);
}

/* ======================================================
SHARED VEIL CARD STYLING
====================================================== */

.veil-card,
.veil-membership-card,
.mepr-account-container,
.mepr-form,
.mp_wrapper,
.um-profile,
.um-directory,
.um,
.um-form {
border: 1px solid var(--veil-border);
border-radius: 22px;
background:
radial-gradient(circle at top left, rgba(143, 199, 255, 0.08), transparent 34%),
linear-gradient(145deg, rgba(10, 12, 22, 0.95), rgba(4, 5, 10, 0.98));
color: var(--veil-text);
box-shadow: var(--veil-shadow);
}

.veil-card:hover,
.veil-membership-card:hover {
border-color: var(--veil-border-strong);
box-shadow:
var(--veil-shadow),
0 0 28px rgba(143, 199, 255, 0.12);
}

/* ======================================================
MEMBERSHIP DASHBOARD
====================================================== */

.veil-membership {
max-width: 1200px;
margin: 0 auto;
padding: clamp(2rem, 5vw, 4rem) 1rem;
}

.veil-membership-header {
text-align: center;
margin-bottom: 2.5rem;
}

.veil-membership-header .lv-title {
color: var(--veil-text);
font-family: "Cinzel Decorative", Cinzel, Georgia, serif;
font-size: clamp(2rem, 5vw, 4rem);
line-height: 1.1;
}

.veil-membership-header .lv-sub {
max-width: 760px;
margin: 1rem auto 0;
color: var(--veil-muted);
font-size: 1.08rem;
line-height: 1.7;
}

.veil-membership-grid {
display: grid !important;
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
gap: 24px;
margin: 40px 0;
align-items: stretch;
}

.veil-membership-card {
padding: clamp(1.5rem, 3vw, 2rem);
display: flex;
flex-direction: column;
height: 100%;
}

.veil-membership-card h2,
.veil-membership-card h3 {
margin-top: 0;
color: var(--veil-gold);
font-family: "Cinzel Decorative", Cinzel, Georgia, serif;
}

.veil-membership-card p {
color: var(--veil-muted);
line-height: 1.75;
flex-grow: 1;
}

.veil-membership-card .veil-btn {
margin-top: auto;
}

.veil-status {
margin-bottom: 2rem;
}

/* ======================================================
BUTTONS
====================================================== */

.veil-btn,
.mepr-submit,
.um-button,
.um .um-button,
.um input[type="submit"],
.mepr-form input[type="submit"] {
display: inline-flex !important;
align-items: center;
justify-content: center;
min-height: 46px;
padding: 0.8rem 1.25rem !important;
border: 1px solid rgba(214, 180, 106, 0.35) !important;
border-radius: 999px !important;
background: rgba(255, 255, 255, 0.06) !important;
color: var(--veil-text) !important;
font-family: Cinzel, Georgia, serif !important;
font-weight: 700 !important;
letter-spacing: 0.08em;
text-transform: uppercase;
text-decoration: none !important;
cursor: pointer;
transition: all 180ms ease;
}

.veil-btn:hover,
.mepr-submit:hover,
.um-button:hover,
.um .um-button:hover,
.um input[type="submit"]:hover,
.mepr-form input[type="submit"]:hover {
transform: translateY(-2px);
border-color: rgba(255, 47, 63, 0.55) !important;
box-shadow: 0 0 24px rgba(255, 47, 63, 0.22);
}

/* ======================================================
MEMBERPRESS GENERAL
====================================================== */

.mp_wrapper,
.mepr-form,
.mepr-account-container {
max-width: 1100px;
margin: 2rem auto;
padding: clamp(1.5rem, 4vw, 2.5rem);
}

.mp_wrapper h1,
.mp_wrapper h2,
.mp_wrapper h3,
.mepr-account-container h1,
.mepr-account-container h2,
.mepr-account-container h3 {
color: var(--veil-gold);
font-family: "Cinzel Decorative", Cinzel, Georgia, serif;
}

.mp_wrapper p,
.mepr-account-container p,
.mepr-form p {
color: var(--veil-muted);
line-height: 1.7;
}

.mp_wrapper label,
.mepr-form label {
color: var(--veil-gold);
font-family: Cinzel, Georgia, serif;
letter-spacing: 0.04em;
}

.mp_wrapper input[type="text"],
.mp_wrapper input[type="email"],
.mp_wrapper input[type="password"],
.mp_wrapper input[type="tel"],
.mp_wrapper input[type="url"],
.mp_wrapper select,
.mp_wrapper textarea,
.mepr-form input[type="text"],
.mepr-form input[type="email"],
.mepr-form input[type="password"],
.mepr-form input[type="tel"],
.mepr-form input[type="url"],
.mepr-form select,
.mepr-form textarea {
width: 100%;
border: 1px solid rgba(143, 199, 255, 0.22) !important;
border-radius: 14px !important;
background: rgba(0, 0, 0, 0.32) !important;
color: var(--veil-text) !important;
padding: 0.85rem 1rem !important;
}

.mp_wrapper input:focus,
.mp_wrapper select:focus,
.mp_wrapper textarea:focus,
.mepr-form input:focus,
.mepr-form select:focus,
.mepr-form textarea:focus {
border-color: rgba(255, 47, 63, 0.55) !important;
box-shadow: 0 0 0 3px rgba(255, 47, 63, 0.12);
outline: none;
}

/* MemberPress account tabs */

.mepr-nav-item a,
.mepr-account-container a,
.mp_wrapper a {
color: var(--veil-gold);
text-decoration: none !important;
}

.mepr-nav-item a:hover,
.mepr-account-container a:hover,
.mp_wrapper a:hover {
color: #fff;
}

.mepr-account-container table,
.mp_wrapper table {
width: 100%;
border-collapse: collapse;
overflow: hidden;
border-radius: 16px;
}

.mepr-account-container th,
.mepr-account-container td,
.mp_wrapper th,
.mp_wrapper td {
padding: 12px 14px;
border: 1px solid rgba(255, 255, 255, 0.1);
color: var(--veil-muted);
}

.mepr-account-container th,
.mp_wrapper th {
background: rgba(0, 0, 0, 0.35);
color: var(--veil-gold);
}

/* ======================================================
PATHS OF ASCENSION TABLE
====================================================== */

.veil-table-wrap {
overflow-x: auto;
margin-top: 2rem;
}

.veil-membership-table {
width: 100%;
border-collapse: collapse;
background: rgba(8, 10, 18, 0.9);
border: 1px solid var(--veil-border);
border-radius: 18px;
overflow: hidden;
}

.veil-membership-table th,
.veil-membership-table td {
padding: 12px 16px;
border: 1px solid rgba(255, 255, 255, 0.1);
color: var(--veil-muted);
text-align: center;
}

.veil-membership-table th:first-child,
.veil-membership-table td:first-child {
text-align: left;
}

.veil-membership-table th {
background: rgba(0, 0, 0, 0.38);
color: var(--veil-gold);
font-family: Cinzel, Georgia, serif;
}

.veil-table-section td {
background: rgba(130, 30, 30, 0.18);
color: var(--veil-gold);
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
text-align: center !important;
}

/* ======================================================
ULTIMATE MEMBER PROFILE
====================================================== */

.um-profile {
max-width: 1100px;
margin: 2rem auto;
padding: clamp(1.5rem, 4vw, 2.5rem);
}

.um-profile,
.um-profile * {
box-sizing: border-box;
}

.um-profile-name a,
.um-name a,
.um-profile-meta a {
color: var(--veil-gold) !important;
text-decoration: none !important;
}

.um-profile-name a:hover,
.um-name a:hover {
color: #fff !important;
}

.um-profile-photo img,
.um-avatar img {
border: 2px solid rgba(214, 180, 106, 0.45) !important;
box-shadow: 0 0 22px rgba(214, 180, 106, 0.18);
}

.um-cover,
.um-cover-e,
.um-cover-overlay {
border-radius: 22px 22px 0 0;
overflow: hidden;
}

.um-profile-body {
color: var(--veil-muted);
}

.um-profile-body h1,
.um-profile-body h2,
.um-profile-body h3,
.um-profile-body .um-field-label label {
color: var(--veil-gold) !important;
font-family: Cinzel, Georgia, serif;
}

.um-field {
margin-bottom: 1.25rem;
}

.um-field-label {
color: var(--veil-gold) !important;
}

.um-field-value {
color: var(--veil-muted) !important;
line-height: 1.7;
}

/* UM profile form inputs */

.um input[type="text"],
.um input[type="email"],
.um input[type="password"],
.um input[type="url"],
.um input[type="tel"],
.um textarea,
.um select {
border: 1px solid rgba(143, 199, 255, 0.22) !important;
border-radius: 14px !important;
background: rgba(0, 0, 0, 0.35) !important;
color: var(--veil-text) !important;
padding: 0.85rem 1rem !important;
}

.um input:focus,
.um textarea:focus,
.um select:focus {
border-color: rgba(255, 47, 63, 0.55) !important;
box-shadow: 0 0 0 3px rgba(255, 47, 63, 0.12);
outline: none;
}

/* UM section dividers */

.um-field-divider,
.um-field-block {
border-top: 1px solid rgba(214, 180, 106, 0.28) !important;
padding-top: 1.25rem;
margin-top: 2rem;
color: var(--veil-gold) !important;
font-family: "Cinzel Decorative", Cinzel, Georgia, serif;
}

/* ======================================================
REGISTRY DIRECTORY
====================================================== */

.um-directory {
max-width: 1200px;
margin: 2rem auto;
padding: clamp(1.25rem, 3vw, 2rem);
}

.um-directory .um-members-wrapper {
display: grid;
gap: 24px;
}

.um-directory .um-member {
border: 1px solid var(--veil-border) !important;
border-radius: 22px !important;
background:
radial-gradient(circle at top right, rgba(255, 47, 63, 0.08), transparent 34%),
linear-gradient(145deg, rgba(10, 12, 22, 0.96), rgba(4, 5, 10, 0.98)) !important;
box-shadow: var(--veil-shadow);
overflow: hidden;
transition: all 220ms ease;
}

.um-directory .um-member:hover {
transform: translateY(-4px);
border-color: rgba(255, 47, 63, 0.42) !important;
box-shadow:
var(--veil-shadow),
0 0 28px rgba(255, 47, 63, 0.16);
}

.um-directory .um-member-name a {
color: var(--veil-gold) !important;
font-family: "Cinzel Decorative", Cinzel, Georgia, serif;
text-decoration: none !important;
}

.um-directory .um-member-name a:hover {
color: #fff !important;
}

.um-directory .um-member-tagline,
.um-directory .um-member-meta,
.um-directory .um-member-metaline,
.um-directory .um-member-card,
.um-directory .um-member-card p {
color: var(--veil-muted) !important;
}

.um-directory .um-member-photo img {
border: 2px solid rgba(214, 180, 106, 0.45) !important;
box-shadow: 0 0 18px rgba(214, 180, 106, 0.16);
}

.um-directory .um-member-cover,
.um-directory .um-member-cover-e {
min-height: 140px;
background-color: rgba(0, 0, 0, 0.35);
}

/* Registry search/filter area */

.um-directory .um-search,
.um-directory .um-search-filter,
.um-directory .um-directory-header {
border: 1px solid rgba(143, 199, 255, 0.16);
border-radius: 18px;
background: rgba(0, 0, 0, 0.28);
padding: 1rem;
margin-bottom: 1.5rem;
}

.um-directory .um-search input,
.um-directory .um-search select {
border: 1px solid rgba(143, 199, 255, 0.22) !important;
border-radius: 12px !important;
background: rgba(0, 0, 0, 0.35) !important;
color: var(--veil-text) !important;
}

/* ======================================================
DEFAULT REGISTRY IMAGE FALLBACKS
====================================================== */

.um-profile-photo a,
.um-member-photo a {
background: rgba(0, 0, 0, 0.25);
border-radius: 999px;
}

.um-cover,
.um-member-cover {
background:
radial-gradient(circle at 50% 0%, rgba(143, 199, 255, 0.14), transparent 32%),
linear-gradient(145deg, rgba(12, 15, 28, 0.96), rgba(3, 4, 8, 0.98));
}

/* ======================================================
RESPONSIVE
====================================================== */

@media (max-width: 900px) {
.veil-membership-grid {
grid-template-columns: 1fr !important;
}

.veil-membership-table {
min-width: 760px;
}
}

@media (max-width: 680px) {
.veil-membership {
padding-inline: 1rem;
}

.veil-membership-card,
.mp_wrapper,
.mepr-form,
.mepr-account-container,
.um-profile,
.um-directory {
border-radius: 18px;
}

.veil-membership-header .lv-title {
font-size: 2rem;
}
}
.mp_wrapper,
.mepr-signup-form,
.mepr-checkout-container {
max-width: 1000px;
margin: 3rem auto;
padding: clamp(1.5rem, 4vw, 2.5rem);
border: 1px solid rgba(143, 199, 255, 0.22);
border-radius: 24px;
background:
radial-gradient(circle at top left, rgba(143, 199, 255, 0.08), transparent 34%),
linear-gradient(145deg, rgba(10, 12, 22, 0.96), rgba(4, 5, 10, 0.98));
color: #f4efe8;
box-shadow: 0 22px 70px rgba(0, 0, 0, 0.45);
}

.mp_wrapper h1,
.mp_wrapper h2,
.mp_wrapper h3,
.mepr-signup-form h1,
.mepr-signup-form h2,
.mepr-signup-form h3 {
color: #d6b46a;
font-family: "Cinzel Decorative", Cinzel, Georgia, serif;
}

.mp_wrapper label,
.mepr-signup-form label {
color: #d6b46a;
font-family: Cinzel, Georgia, serif;
}

.mp_wrapper input,
.mp_wrapper select,
.mp_wrapper textarea,
.mepr-signup-form input,
.mepr-signup-form select,
.mepr-signup-form textarea {
border: 1px solid rgba(143, 199, 255, 0.22) !important;
border-radius: 14px !important;
background: rgba(0, 0, 0, 0.35) !important;
color: #f4efe8 !important;
padding: 0.85rem 1rem !important;
}

.mp_wrapper input[type="submit"],
.mepr-signup-form input[type="submit"],
.mepr-submit {
display: inline-flex !important;
align-items: center;
justify-content: center;
min-height: 46px;
padding: 0.8rem 1.25rem !important;
border: 1px solid rgba(214, 180, 106, 0.35) !important;
border-radius: 999px !important;
background: rgba(255, 255, 255, 0.06) !important;
color: #f4efe8 !important;
font-family: Cinzel, Georgia, serif !important;
font-weight: 700 !important;
letter-spacing: 0.08em;
text-transform: uppercase;
}