/* Competition Passes - light, theme-inheriting styles. Colours come from each
   pass via the --cp-accent custom property so themes can override freely. */

.cp-shortcode,.cp-passes{
	--cp-site-primary:var(--e-global-color-primary,#3858e9);
	--cp-fallback:var(--cp-site-primary);
	--cp-tint:#eef2ff;
	--cp-on-accent:#fff;
	--cp-success:#0a7a3f;
	--cp-success-bg:rgba(10,122,63,.10);
	--cp-warning:#7a4b00;
	--cp-warning-bg:#fff8e8;
	--cp-warning-border:#ffd591;
	--cp-danger:#b42323;
	--cp-danger-bg:#fff4f4;
	--cp-danger-border:#cf3e3e;
	--cp-overlay:rgba(15,17,21,.64);
	--cp-focus-ring:var(--cp-site-primary);
	--cp-shadow-modal:0 28px 80px rgba(0,0,0,.28);
	--cp-surface:#fff;
	--cp-surface-muted:#fafbfc;
	--cp-account-panel:#fcfdff;
	--cp-border:#e3e6eb;
	--cp-divider:#e7e9ed;
	--cp-text:#121722;
	--cp-body-text:#3f4755;
	--cp-muted:#667080;
	--cp-subtle:#87909d;
	--cp-member-hero:var(--cp-site-primary);
	--cp-member-hero-text:#fff;
	--cp-member-hero-muted:#c9d0da;
	--cp-radius:12px;
	--cp-shadow:0 1px 3px rgba(0,0,0,.05),0 4px 16px rgba(0,0,0,.04);
	--cp-shadow-hover:0 18px 46px -20px rgba(16,24,40,.3);
	font-family:var(--e-global-typography-text-font-family,inherit);
}
.cp-none{ opacity:.7; }
.cp-grace{ padding:12px 14px; color:var(--cp-warning); background:var(--cp-warning-bg); border:1px solid var(--cp-warning-border); border-radius:10px; margin-bottom:18px !important; }

.cp-shortcode,.cp-shortcode *, .cp-shortcode *::before, .cp-shortcode *::after,
.cp-passes,.cp-passes *, .cp-passes *::before, .cp-passes *::after{ box-sizing:border-box; }

.cp-shortcode :where(a,button):focus-visible,
.cp-passes :where(a,button):focus-visible{
	outline:3px solid var(--cp-focus-ring,var(--cp-fallback));
	outline-offset:3px;
}

.cp-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:22px; align-items:stretch; }
.cp-cols-1 .cp-grid{ grid-template-columns:1fr; max-width:440px; margin:0 auto; }
.cp-cols-2 .cp-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.cp-cols-3 .cp-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.cp-cols-4 .cp-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:860px){ .cp-cols-3 .cp-grid, .cp-cols-4 .cp-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px){ .cp-grid{ grid-template-columns:1fr !important; gap:16px; } }

.cp-card{
	position:relative;
	background:var(--cp-surface);
	border:1px solid var(--cp-border);
	display:flex;
	flex-direction:column;
	min-height:100%; padding:27px 25px 24px; border-color:var(--cp-border);
	border-radius:var(--cp-radius); box-shadow:var(--cp-shadow);
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.cp-card::before{
	content:"";
	position:absolute; top:0;
	background:var(--cp-accent,var(--cp-fallback)); left:25px; right:25px; height:4px; border-radius:0 0 5px 5px;
}
.cp-card:hover{
	border-color:var(--cp-accent,var(--cp-fallback)); transform:translateY(-4px); box-shadow:var(--cp-shadow-hover);
}
.cp-card.is-current{ border-color:var(--cp-accent,var(--cp-fallback)); box-shadow:var(--cp-shadow);
}
.cp-card-image{ overflow:hidden; background:var(--cp-surface-muted); height:156px; margin:-27px -25px 21px; border-radius:calc(var(--cp-radius) - 1px) calc(var(--cp-radius) - 1px) 0 0; }
.cp-card-image img{ display:block; width:100%; height:100%; object-fit:cover; max-height:100%; object-position:center; }
.cp-card.has-pass-image::before{ left:0; right:0; z-index:2; border-radius:0; }

.cp-name{
	margin:0 0 10px !important;
	font-size:.78rem;
	font-weight:850;
	letter-spacing:.09em;
	text-transform:uppercase;
	color:var(--cp-text);
}
.cp-price{ display:flex; align-items:baseline; flex-wrap:wrap; gap:9px; margin-bottom:7px; }
.cp-price .cp-amount{ line-height:1; color:var(--cp-text); font-size:clamp(1.85rem,4vw,2.2rem); font-weight:850; letter-spacing:-.035em; }
.cp-price .cp-amount .amount{ font-weight:800; }
.cp-price .cp-per{ color:var(--cp-muted); font-size:.8rem; font-weight:650; }

.cp-credit{ margin:17px 0 3px; padding:14px 15px; border:1px solid var(--cp-border); border-radius:12px; background:linear-gradient(135deg,var(--cp-surface-muted),var(--cp-surface));
}
.cp-credit-fig{ display:block; font-weight:800; color:var(--cp-text); line-height:1.1; font-size:1.22rem; }
.cp-credit-fig .amount{ font-weight:800; }
.cp-credit-lbl{ color:var(--cp-muted); display:block; margin-top:3px; font-size:.72rem; line-height:1.35; }

.cp-features{ list-style:none; padding:0; display:flex; flex-direction:column; margin:18px 0 22px; gap:11px; }
.cp-features li{ position:relative; min-height:19px; padding-left:29px; color:var(--cp-body-text); font-size:.82rem; line-height:1.45; }
.cp-features li.has-description strong,.cp-features li.has-description span{ display:block; }
.cp-features li.has-description strong{ color:var(--cp-text); font-size:.82rem; font-weight:800; line-height:1.3; }
.cp-features li.has-description span{ margin-top:2px; color:var(--cp-subtle); font-size:.7rem; line-height:1.4; }
.cp-features li::before{
	content:""; position:absolute; left:0; border-radius:50%;
	background:var(--cp-accent,var(--cp-fallback)); width:19px; height:19px; top:50%; transform:translateY(-50%); box-shadow:0 0 0 4px color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 8%,transparent);
}
.cp-features li::after{
	content:"\2713"; position:absolute;
	display:flex; align-items:center; justify-content:center; color:var(--cp-on-accent);
	font-size:11px; font-weight:900; line-height:1;
	transform:translateY(-50%); pointer-events:none; left:0; top:50%; width:19px; height:19px;
}

.cp-cta{
	margin-top:auto;
	display:block;
	text-align:center;
	width:100%;
	padding:13px 18px;
	border-radius:12px;
	background:var(--cp-accent,var(--cp-fallback));
	color:var(--cp-on-accent) !important;
	font-weight:700;
	font-size:.95rem;
	text-decoration:none !important;
	border:1px solid var(--cp-accent,var(--cp-fallback));
	box-shadow:none;
	transition:filter .15s ease;
}
.cp-cta:hover{ filter:brightness(1.08); color:var(--cp-on-accent) !important; }
.cp-cta-current{
	background:transparent;
	color:var(--cp-accent,var(--cp-fallback)) !important;
	cursor:default;
}
.cp-cta-current:hover{ filter:none; }

/* account tab */
.cp-passes{
	--cp-fallback:var(--cp-site-primary);
	--cp-account-panel:#fcfdff; width:100%; max-width:1120px; margin-inline:auto; color:var(--cp-body-text);
}

.cp-pass-card{
	position:relative;
	border:1px solid var(--cp-border);
	padding:24px; margin-bottom:22px; border-color:color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 16%,var(--cp-border));
	border-radius:12px; background:var(--cp-surface); box-shadow:var(--cp-shadow); overflow:hidden;
}
.cp-pass-card::before{
	content:""; position:absolute; top:0; background:var(--cp-accent,var(--cp-fallback)); left:0; right:0; height:4px; border-radius:0;
}
.cp-pass-image{ overflow:hidden; background:var(--cp-account-panel); height:230px; margin:-24px -24px 22px; border-radius:0; position:relative; }
.cp-pass-image img{ display:block; width:100%; height:100%; object-fit:cover; max-height:100%; object-position:center; }
.cp-pass-image::after{ content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(180deg,rgba(8,17,25,.12) 10%,rgba(8,17,25,.66) 52%,rgba(8,17,25,.96) 100%); pointer-events:none; }
.cp-pass-image-overlay{ position:absolute; z-index:2; inset:0; display:flex; flex-direction:column; justify-content:flex-end; gap:12px; padding:18px 20px; color:#fff; }
.cp-pass-image-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; min-width:0; }
.cp-pass-image-overlay .cp-pass-eyebrow{ color:rgba(255,255,255,.82) !important; }
.cp-pass-image-overlay .cp-pass-name{ color:#fff !important; font-size:clamp(1.22rem,2.8vw,1.55rem); text-shadow:0 2px 14px rgba(0,0,0,.7); }
.cp-pass-image-overlay .cp-status,.cp-sub-image-overlay .cp-status{ margin-bottom:1px; color:#fff !important; box-shadow:0 4px 16px rgba(0,0,0,.16); }
.cp-pass-image-overlay .cp-status-active,.cp-sub-image-overlay .cp-status-active{ border-color:color-mix(in srgb,var(--cp-success) 70%,#fff) !important; background:var(--cp-success) !important; }
.cp-pass-image-overlay .cp-status-pending-cancel,.cp-pass-image-overlay .cp-status-on-hold,.cp-sub-image-overlay .cp-status-pending-cancel,.cp-sub-image-overlay .cp-status-on-hold{ border-color:color-mix(in srgb,var(--cp-warning) 70%,#fff) !important; background:var(--cp-warning) !important; }
.cp-pass-image-overlay .cp-status-cancelled,.cp-pass-image-overlay .cp-status-expired,.cp-sub-image-overlay .cp-status-cancelled,.cp-sub-image-overlay .cp-status-expired{ border-color:color-mix(in srgb,var(--cp-danger) 70%,#fff) !important; background:var(--cp-danger) !important; }
.cp-pass-image-loyalty{ display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:11px; min-width:0; padding:9px 11px; border:1px solid color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 42%,rgba(255,255,255,.42)); border-radius:11px; background:linear-gradient(135deg,color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 24%,rgba(8,17,25,.62)),rgba(8,17,25,.52)); box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 8px 24px rgba(0,0,0,.16); -webkit-backdrop-filter:blur(14px) saturate(145%); backdrop-filter:blur(14px) saturate(145%); }
.cp-pass-image-level{ display:grid; place-items:center; align-content:center; width:44px; height:44px; border:1px solid color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 55%,rgba(255,255,255,.35)); border-radius:9px; background:color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 18%,rgba(8,17,25,.78)); }
.cp-pass-image-level span,.cp-pass-image-loyalty-copy > span,.cp-pass-image-tenure span{ color:rgba(255,255,255,.72) !important; font-size:.49rem; font-weight:850; line-height:1.15; letter-spacing:.1em; text-transform:uppercase; }
.cp-pass-image-level strong{ margin-top:2px; color:#fff !important; font-size:1.12rem; font-weight:900; line-height:1; }
.cp-pass-image-loyalty-copy{ min-width:0; }
.cp-pass-image-loyalty-copy strong{ display:block; margin-top:2px; color:#fff !important; font-size:.76rem; font-weight:850; line-height:1.25; }
.cp-pass-image-loyalty-copy p{ margin:2px 0 0 !important; overflow:hidden; color:rgba(255,255,255,.84) !important; font-size:.60rem; font-weight:600; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.cp-pass-image-tenure{ min-width:92px; padding-left:11px; border-left:1px solid rgba(255,255,255,.18); text-align:right; }
.cp-pass-image-tenure span,.cp-pass-image-tenure strong{ display:block; }
.cp-pass-image-tenure strong{ margin-top:3px; color:#fff !important; font-size:.7rem; font-weight:850; line-height:1.2; }
.cp-pass-card.has-pass-image::before{ left:0; right:0; z-index:3; border-radius:13px 13px 0 0; }
.cp-pass-head{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-bottom:18px; }
.cp-pass-name{ min-width:0; overflow-wrap:anywhere; color:var(--cp-text); font-size:clamp(1.08rem,2.7vw,1.3rem); font-weight:850; letter-spacing:-.02em; line-height:1.15; }
.cp-status{
	margin-left:auto; font-weight:800; text-transform:uppercase; border-radius:20px;
	background:var(--cp-surface-muted); color:var(--cp-muted); white-space:nowrap; padding:6px 10px; border:1px solid transparent; font-size:.58rem; letter-spacing:.08em;
}
.cp-status-active{ color:var(--cp-success); background:var(--cp-success-bg); border-color:color-mix(in srgb,var(--cp-success) 18%,transparent); }
.cp-status-pending-cancel, .cp-status-on-hold{ color:var(--cp-warning); background:var(--cp-warning-bg); }
.cp-status-cancelled, .cp-status-expired{ color:var(--cp-danger); background:var(--cp-danger-bg); }

.cp-hero{
	display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; margin-bottom:13px; border:0; border-radius:0; overflow:visible; background:transparent;
}
.cp-hero > div{ min-width:0; padding:16px 17px; border:1px solid var(--cp-border); border-radius:14px; background:linear-gradient(145deg,var(--cp-account-panel),var(--cp-surface)); }
.cp-hero > .cp-payment-summary:only-child{ grid-column:1/-1; }
.cp-payment-summary{ display:flex; flex-direction:column; }
.cp-payment-head{ display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.cp-payment-date{ min-width:0; }
.cp-pass-value-badge{ display:grid; flex:0 0 auto; min-width:138px; max-width:175px; margin-left:auto; padding:10px 12px; border:1px solid color-mix(in srgb,var(--cp-success) 28%,var(--cp-border)); border-radius:10px; background:color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 5%,var(--cp-surface)); text-align:right; }
.cp-pass-value-badge span{ color:var(--cp-subtle); font-size:.52rem; font-weight:900; line-height:1.2; letter-spacing:.09em; text-transform:uppercase; }
.cp-pass-value-badge strong{ margin-top:5px; color:var(--cp-success); font-size:1.18rem; font-weight:900; line-height:1.05; letter-spacing:-.03em; }
.cp-pass-value-badge strong,.cp-pass-value-badge strong .amount,.cp-pass-value-badge strong bdi,.cp-pass-value-badge strong .woocommerce-Price-currencySymbol{ color:var(--cp-success) !important; }
.cp-pass-value-badge .amount{ font-size:inherit !important; font-weight:900; }
.cp-pass-value-badge .woocommerce-Price-amount.amount{ letter-spacing:normal !important; }
.cp-hc-lbl{
	display:block; text-transform:uppercase;
	color:var(--cp-subtle); margin-bottom:7px; font-size:.58rem; font-weight:850; letter-spacing:.1em;
}
.cp-hc-val{ display:block; color:var(--cp-text); line-height:1.12; overflow-wrap:anywhere; font-size:20px !important; font-weight:850; letter-spacing:-.035em; }
.cp-hc-val .amount{ font-weight:800; }
.cp-hc-sub{ display:block; color:var(--cp-muted); margin-top:4px; font-size:.68rem; }
.cp-wallet-recent{ margin-top:12px; padding-top:10px; border-top:1px solid var(--cp-divider); }
.cp-wallet-recent-title{ display:block; margin-bottom:5px; color:var(--cp-subtle); font-size:.56rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.cp-wallet-recent ul{ display:grid; gap:0; margin:0; padding:0; list-style:none; }
.cp-wallet-recent ul.is-scrollable{ max-height:90px; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; -ms-overflow-style:none; }
.cp-wallet-recent ul.is-scrollable::-webkit-scrollbar{ display:none; width:0; height:0; }
.cp-wallet-recent ul.is-scrollable:focus-visible{ outline:2px solid var(--cp-accent,var(--cp-fallback)); outline-offset:3px; }
.cp-wallet-recent li{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:7px; min-width:0; height:30px; margin:0; padding:6px 0; border-top:1px solid color-mix(in srgb,var(--cp-divider) 72%,transparent); font-size:.62rem; line-height:1.25; }
.cp-wallet-recent li:first-child{ border-top:0; }
.cp-wallet-recent li > strong{ white-space:nowrap; font-size:.66rem; font-weight:850; }
.cp-wallet-recent li.is-credit > strong{ color:var(--cp-success); }
.cp-wallet-recent li.is-debit > strong{ color:var(--cp-danger); }
.cp-wallet-recent li.is-tickets > strong{ color:var(--cp-accent,var(--cp-fallback)); }
.cp-wallet-recent li > span{ min-width:0; overflow:hidden; color:var(--cp-body-text); text-overflow:ellipsis; white-space:nowrap; }
.cp-wallet-recent time{ color:var(--cp-subtle); font-size:.57rem; white-space:nowrap; }

.cp-drops{ margin:0 0 20px !important; color:var(--cp-body-text); line-height:1.45; padding:11px 13px; border:1px solid color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 18%,var(--cp-border)); border-left:3px solid var(--cp-accent,var(--cp-fallback)); border-radius:0 7px 7px 0; background:color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 5%,var(--cp-surface)); font-size:.77rem;
}
.cp-drops.is-connected{ margin-bottom:0 !important; border-bottom:0; border-radius:5px 5px 0 0; }

.cp-stats{
	list-style:none; margin:13px 0 0; padding:12px 0 0;
	display:grid; overflow:visible; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 0; border:0; border-top:1px solid var(--cp-divider); border-radius:0; background:transparent;
}
.cp-stats li{ margin:0; min-width:0; padding:0 12px 0 0; background:transparent; }
.cp-stats li:nth-child(even){ padding-right:0; padding-left:14px; border-left:1px solid var(--cp-divider); }
.cp-stats li:only-child{ grid-column:1/-1; padding-right:0; padding-left:0; border-left:0; }
.cp-stats .cp-k{
	display:block; text-transform:uppercase;
	color:var(--cp-subtle); margin-bottom:4px; font-size:.56rem; font-weight:850; letter-spacing:.09em;
}
.cp-stats .cp-v{ color:var(--cp-text); font-size:1rem; font-weight:850; letter-spacing:-.02em; }
.cp-stats .cp-v .amount{ font-weight:800; }
.cp-stat-growth{ display:block; margin-top:3px; color:var(--cp-success); font-size:.56rem; font-weight:800; line-height:1.3; }
.cp-manage{ margin-top:2px; display:flex; align-items:center; justify-content:flex-end; gap:12px; padding-top:2px; }
.cp-manage-btn{
	display:inline-block; padding:9px 15px; border-radius:9px;
	border:1px solid var(--cp-accent,var(--cp-fallback));
	color:var(--cp-accent,var(--cp-fallback)) !important;
	background:var(--cp-surface); font-size:.84rem; font-weight:700; text-decoration:none !important;
	transition:background .15s ease, color .15s ease; cursor:pointer; font:inherit;
}
.cp-manage-btn:hover{
	background:var(--cp-accent,var(--cp-fallback));
	color:var(--cp-on-accent) !important;
}

.cp-empty{
	position:relative; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr); gap:clamp(24px,5vw,58px); align-items:center;
	margin:0 0 20px; padding:clamp(26px,4vw,42px); overflow:hidden; border:1px solid color-mix(in srgb,var(--cp-fallback) 18%,var(--cp-border)); border-radius:14px;
	background:linear-gradient(135deg,color-mix(in srgb,var(--cp-fallback) 7%,var(--cp-surface)) 0%,var(--cp-surface) 58%); text-align:left; box-shadow:0 16px 42px -34px rgba(15,23,42,.46);
	    margin: 10px;
    top: 5px;
}
.cp-empty::before{ content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--cp-fallback); }
.cp-empty::after{ content:""; position:absolute; z-index:0; width:210px; height:210px; top:-145px; left:38%; border:1px solid color-mix(in srgb,var(--cp-fallback) 14%,transparent); border-radius:50%; pointer-events:none; }
.cp-empty-main,.cp-empty-benefits{ position:relative; z-index:1; min-width:0; }
.cp-empty-eyebrow{ display:block; margin:0 0 7px; color:var(--cp-fallback); font-size:.62rem; font-weight:900; line-height:1.2; letter-spacing:.14em; text-transform:uppercase; }
.cp-empty h2{ max-width:560px; margin:0 0 10px !important; color:var(--cp-text); font-size:clamp(1.45rem,3.2vw,2rem); font-weight:850; line-height:1.08 !important; letter-spacing:-.03em; }
.cp-empty-main > p{ max-width:540px; margin:0 !important; color:var(--cp-muted); font-size:.84rem; line-height:1.55 !important; }
.cp-empty-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:11px 17px; border:1px solid var(--cp-fallback); border-radius:9px;
	background:var(--cp-fallback); color:var(--cp-on-accent) !important; font-size:.8rem; font-weight:800; line-height:1.25;
	text-decoration:none !important; transition:filter .15s ease, transform .15s ease;
}
.cp-empty-btn span{ font-size:1rem; line-height:1; transition:transform .15s ease; }
.cp-empty-btn:hover{ filter:brightness(1.06); color:var(--cp-on-accent) !important; }
.cp-empty-btn:hover span{ transform:translateX(2px); }
.cp-empty-benefits{ padding:4px 0 4px clamp(22px,4vw,38px); border-left:1px solid var(--cp-divider); }
.cp-empty-benefits-title{ display:block; margin:0 0 11px; color:var(--cp-text); font-size:.7rem; font-weight:850; letter-spacing:.02em; }
.cp-empty-benefits ul{ display:grid; gap:9px; margin:0 !important; padding:0 !important; list-style:none !important; }
.cp-empty-benefits li{ display:grid; grid-template-columns:25px minmax(0,1fr); gap:9px; align-items:start; margin:0 !important; padding:0 !important; }
.cp-empty-benefits li > span:last-child{ min-width:0; }
.cp-empty-benefits strong,.cp-empty-benefits small{ display:block; }
.cp-empty-benefits strong{ color:var(--cp-text); font-size:.73rem; font-weight:850; line-height:1.3; }
.cp-empty-benefits li small{ margin-top:1px; color:var(--cp-muted); font-size:.64rem; line-height:1.4; }
.cp-empty-check{ position:relative; width:25px; height:25px; border-radius:7px; background:color-mix(in srgb,var(--cp-fallback) 10%,var(--cp-surface)); color:var(--cp-fallback); }
.cp-empty-check::before{ content:"\2713"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:.7rem; font-weight:900; line-height:1; }
.cp-empty-note{ display:block; margin:11px 0 0 34px; color:var(--cp-subtle); font-size:.6rem; line-height:1.35; }
.cp-account-pass-options{ margin-top:22px; }
.cp-account-pass-options .cp-shortcode{ padding-block:0; }
.cp-account-pass-options .cp-grid{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
@media(min-width:701px){ .cp-empty::after{ display:none; } }
.cp-processing{ display:flex; align-items:center; gap:16px; width:min(720px,100%); min-height:116px; margin:0 auto; padding:22px 24px; border:1px solid color-mix(in srgb,var(--cp-fallback) 28%,var(--cp-border)); border-radius:12px; background:color-mix(in srgb,var(--cp-fallback) 5%,var(--cp-surface)); box-shadow:0 12px 32px -28px rgba(16,24,40,.55); }
.cp-processing-mark{ position:relative; flex:0 0 42px; width:42px; height:42px; border:3px solid color-mix(in srgb,var(--cp-fallback) 18%,var(--cp-surface)); border-top-color:var(--cp-fallback); border-radius:50%; animation:cp-processing-spin .9s linear infinite; }
.cp-processing h2{ margin:0 0 5px !important; color:var(--cp-text); font-size:1rem; font-weight:850; line-height:1.3 !important; }
.cp-processing p{ margin:0 !important; color:var(--cp-muted); font-size:.75rem; line-height:1.45 !important; }
.cp-payment-recovery{ align-items:flex-start; border-left:4px solid var(--cp-danger); background:color-mix(in srgb,var(--cp-danger) 4%,var(--cp-surface)); }
.cp-processing-mark.is-payment{ display:flex; align-items:center; justify-content:center; border:0; background:var(--cp-danger-bg); color:var(--cp-danger); animation:none; }
.cp-processing-mark.is-payment::before{ content:"!"; font-size:1rem; font-weight:900; line-height:1; }
.cp-payment-recovery-copy{ flex:1 1 auto; min-width:0; }
.cp-payment-recovery-label{ display:block; margin-bottom:3px; color:var(--cp-danger); font-size:.62rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.cp-payment-recovery-actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.cp-payment-recovery-change{ background:var(--cp-surface) !important; border-color:var(--cp-border) !important; color:var(--cp-text) !important; }
.cp-payment-recovery-change:hover{ background:var(--cp-soft) !important; color:var(--cp-text) !important; }
@keyframes cp-processing-spin{ to{ transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce){ .cp-processing-mark{ animation:none; border-color:var(--cp-fallback); opacity:.75; } }

.cp-pass-alert{ margin:14px 0 0; padding:10px 12px; border:1px solid var(--cp-warning-border); border-radius:10px; background:var(--cp-warning-bg); color:var(--cp-warning); font-size:.86rem; }

/* complete active-pass benefits */
.cp-perks{ border:1px solid var(--cp-border); overflow:hidden; margin:14px 0; padding:12px; border-radius:12px; background:var(--cp-account-panel); }
.cp-perks-heading{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 1px 9px; border:0; background:transparent; }
.cp-perks-heading span{ color:var(--cp-text); font-weight:800; font-size:.75rem; }
.cp-perks-heading small{ color:var(--cp-subtle); padding:3px 7px; border:1px solid var(--cp-border); border-radius:999px; background:var(--cp-surface); font-size:.56rem; }
.cp-perks-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; background:transparent; }
.cp-perk{ display:grid; grid-template-columns:28px minmax(0,1fr); align-items:start; min-width:0; height:100%; gap:8px; padding:9px; border:1px solid var(--cp-border); border-radius:9px; background:var(--cp-surface); }
.cp-perk-icon{ display:flex; align-items:center; justify-content:center; width:28px; height:28px; padding:0; border:1px solid color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 15%,transparent); border-radius:8px; background:color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 8%,var(--cp-surface)); color:var(--cp-accent,var(--cp-fallback)); line-height:1; }
.cp-perk-icon svg{ display:block; width:15px; height:15px; overflow:visible; fill:currentColor; }
.cp-perk strong,.cp-perk span{ display:block; overflow-wrap:anywhere; }
.cp-perk strong{ color:var(--cp-text); font-size:.7rem; line-height:1.25; }
.cp-perk div span{ margin-top:2px; color:var(--cp-subtle); font-size:.61rem; line-height:1.32; }

/* Account sections keep the Pass summary primary while updates remain one click away. */
.cp-account-tabs-shell{ min-width:0; }
.cp-account-tabs{ display:flex; align-items:flex-end; gap:5px; margin:0 0 18px; padding:0 3px; border-bottom:1px solid var(--cp-border); }
.cp-passes .cp-account-tab{ appearance:none !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:8px !important; min-height:42px !important; margin:0 0 -1px !important; padding:10px 15px 9px !important; border:0 !important; border-bottom:3px solid transparent !important; border-radius:0 !important; background:transparent !important; color:var(--cp-muted) !important; box-shadow:none !important; font:inherit !important; font-size:.79rem !important; font-weight:800 !important; line-height:1.2 !important; cursor:pointer !important; }
.cp-passes .cp-account-tab:hover{ color:var(--cp-text) !important; background:color-mix(in srgb,var(--cp-site-primary) 4%,transparent) !important; }
.cp-passes .cp-account-tab.is-active{ border-bottom-color:var(--cp-site-primary) !important; color:var(--cp-site-primary) !important; }
.cp-passes .cp-account-tab:focus-visible{ outline:2px solid var(--cp-site-primary) !important; outline-offset:2px !important; }
.cp-account-tab-badge{ display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--cp-site-primary); color:var(--cp-on-accent); font-size:.62rem; font-weight:900; line-height:1; }
.cp-account-tab-badge[hidden],.cp-account-panel[hidden]{ display:none !important; }
.cp-account-panel{ min-width:0; }

/* Members Updates */
.cp-board{ position:relative; padding:0;
	margin:0 0 25px; border:1px solid color-mix(in srgb,var(--cp-member-hero) 18%,var(--cp-border));
	border-radius:12px; background:var(--cp-surface); box-shadow:var(--cp-shadow); overflow:hidden; }
.cp-board::before{ content:""; position:absolute; z-index:2; top:0; left:0; bottom:0; width:4px; background:var(--cp-fallback); display:none; }
.cp-board-hero{ display:grid; align-items:center; margin:0 !important;
	position:relative; grid-template-columns:minmax(0,1fr) auto; gap:24px;
	padding:26px 28px 24px; overflow:hidden; isolation:isolate;
	background:linear-gradient(145deg,color-mix(in srgb,var(--cp-site-primary) 86%,#fff 14%),var(--cp-site-primary),color-mix(in srgb,var(--cp-site-primary) 88%,#000 12%)); }
.cp-board-hero > div{ min-width:0; }
.cp-board-eyebrow{ display:block; margin:0 0 4px !important; font-weight:900; line-height:1.2; text-transform:uppercase; margin-bottom:7px !important; color:color-mix(in srgb,var(--cp-fallback) 55%,#fff); font-size:.64rem; letter-spacing:.17em; }
.cp-board-hero h2{ margin:0 !important; line-height:1.08 !important; color:var(--cp-member-hero-text); font-size:clamp(1.55rem,4vw,2.05rem); font-weight:850; letter-spacing:-.035em; }
.cp-board-hero p{ margin:5px 0 0 !important; max-width:610px; margin-top:8px !important; color:var(--cp-member-hero-muted); font-size:.82rem; font-weight:500 !important; line-height:1.5 !important; }
.cp-board-count{ align-self:center; flex:0 0 auto; padding:6px 10px; border:1px solid color-mix(in srgb,var(--cp-fallback) 22%,var(--cp-border)); border-radius:999px; background:var(--cp-surface); color:var(--cp-muted); font-size:.65rem; font-weight:800; line-height:1.2; white-space:nowrap; }
.cp-board-content{ padding:17px 24px 21px; }
.cp-member-pulse{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0 0 20px; overflow:hidden; border:1px solid var(--cp-border); border-radius:11px; background:var(--cp-surface); }
.cp-member-pulse > div{ display:grid; min-width:0; padding:13px 14px 12px; border-right:1px solid var(--cp-divider); gap:2px; }
.cp-member-pulse > div:last-child{ border-right:0; }
.cp-member-pulse span{ color:var(--cp-subtle); font-size:.57rem; font-weight:900; line-height:1.2; text-transform:uppercase; letter-spacing:.09em; }
.cp-member-pulse strong{ color:var(--cp-text); font-size:1.24rem; font-weight:900; line-height:1.15; }
.cp-member-pulse small{ overflow:hidden; color:var(--cp-muted); font-size:.62rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.cp-next-event{ --cp-post-accent:var(--cp-success); display:grid; grid-template-columns:70px minmax(0,1fr) auto; align-items:center; gap:17px; margin:0 0 23px; padding:15px 17px; border:1px solid color-mix(in srgb,var(--cp-success) 24%,var(--cp-border)); border-radius:12px; background:linear-gradient(120deg,color-mix(in srgb,var(--cp-success) 6%,var(--cp-surface)),var(--cp-surface)); }
.cp-next-event-date{ display:grid; place-items:center; align-content:center; width:66px; min-height:66px; padding:7px; border-radius:10px; background:var(--cp-success); color:#fff; box-shadow:0 8px 20px color-mix(in srgb,var(--cp-success) 18%,transparent); }
.cp-next-event-date span{ font-size:.6rem; font-weight:900; line-height:1.1; text-transform:uppercase; letter-spacing:.12em; }
.cp-next-event-date strong{ font-size:1.55rem; font-weight:900; line-height:1.05; }
.cp-passes .cp-next-event-date span,.cp-passes .cp-next-event-date strong{ color:#fff !important; opacity:1 !important; }
.cp-next-event-copy{ min-width:0; }
.cp-next-event-eyebrow{ display:block; margin-bottom:4px; color:var(--cp-success); font-size:.58rem; font-weight:900; line-height:1.2; text-transform:uppercase; letter-spacing:.1em; }
.cp-next-event h3{ margin:0 0 4px !important; color:var(--cp-text); font-size:1.08rem; font-weight:850; line-height:1.2 !important; letter-spacing:-.015em; }
.cp-next-event p{ margin:0 !important; color:var(--cp-muted); font-size:.7rem; font-weight:650; line-height:1.4 !important; }
.cp-next-event-actions{ display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.cp-next-event-actions .cp-board-read{ margin:0 !important; padding:8px 11px !important; border:1px solid var(--cp-success) !important; border-radius:8px !important; background:var(--cp-success) !important; color:#fff !important; }
.cp-board-toolbar{ display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:0 0 13px; }
.cp-board-toolbar > div:first-child{ display:grid; gap:2px; }
.cp-board-toolbar > div:first-child > span{ color:var(--cp-fallback); font-size:.56rem; font-weight:900; line-height:1.2; text-transform:uppercase; letter-spacing:.1em; }
.cp-board-toolbar h3{ margin:0 !important; color:var(--cp-text); font-size:1.08rem; font-weight:850; line-height:1.2 !important; letter-spacing:-.02em; }
.cp-board-toolbar .cp-board-filters{ justify-content:flex-end; padding:0; }
.cp-board-filters{ display:flex; flex-wrap:wrap; margin:0 !important; padding:0 0 13px; gap:7px; }
.cp-board-filter{ border:1px solid var(--cp-border); background:var(--cp-surface); color:var(--cp-muted); border-radius:999px; padding:6px 11px; font:inherit; font-size:.7rem; font-weight:800; cursor:pointer; box-shadow:none; }
.cp-board-filter:hover,.cp-board-filter.is-active{ border-color:var(--cp-fallback); background:var(--cp-fallback); color:var(--cp-on-accent); }
.cp-board-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.cp-board-item{ --cp-post-accent:var(--cp-fallback); display:flex; flex-direction:column; min-width:0; overflow:hidden; box-shadow:none; padding:0 14px; border:1px solid color-mix(in srgb,var(--cp-post-accent) 16%,var(--cp-border)); border-top:3px solid var(--cp-post-accent); border-radius:10px; background:var(--cp-surface); }
.cp-board-events{ --cp-post-accent:var(--cp-success); }
.cp-board-meetings{ --cp-post-accent:color-mix(in srgb,var(--cp-success) 72%,#2673df); }
.cp-board-offers{ --cp-post-accent:var(--cp-fallback); }
.cp-board-guides{ --cp-post-accent:color-mix(in srgb,var(--cp-fallback) 70%,#6d5dfc); }
.cp-board-notices{ --cp-post-accent:var(--cp-danger); }
.cp-board-item.is-featured{ grid-column:1/-1; margin:0; padding:0 15px; border-color:color-mix(in srgb,var(--cp-post-accent) 16%,var(--cp-border)); border-top-color:var(--cp-post-accent); border-radius:14px; background:linear-gradient(135deg,color-mix(in srgb,var(--cp-post-accent) 5%,var(--cp-surface)),var(--cp-surface)); }
.cp-board-item.is-featured.has-thumb{ display:grid; grid-template-columns:minmax(145px,.45fr) minmax(0,1.55fr); align-items:stretch; }
.cp-board-thumb{ position:relative; overflow:hidden; background:var(--cp-surface-muted); min-height:122px; margin:14px 0; border-radius:10px; }
.cp-board-thumb img{ display:block; width:100%; height:100%; min-height:112px; aspect-ratio:16/9; object-fit:cover; transition:transform .25s ease; }
.cp-board-item:hover .cp-board-thumb img{ transform:scale(1.02); }
.cp-board-item.is-featured .cp-board-thumb img{ min-height:100%; aspect-ratio:auto; }
.cp-board-visual-shade{ position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 72%,rgba(0,0,0,.12)); }
.cp-board-card-body{ display:flex; flex:1; flex-direction:column; min-width:0; padding:15px 0; }
.cp-board-item.is-featured .cp-board-card-body{ justify-content:center; padding:18px 0 18px 20px; }
.cp-board-item.is-featured:not(.has-thumb) .cp-board-card-body{ padding:20px 10px; }
.cp-board-meta,.cp-board-modal-meta{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 7px !important; }
.cp-board-meta time,.cp-board-modal-meta time{ color:var(--cp-subtle); font-size:.67rem; white-space:nowrap; }
.cp-board-type{ display:inline-flex; align-items:center; gap:5px; border-radius:999px; color:var(--cp-post-accent,var(--cp-fallback)); font-weight:900; line-height:1.2; text-transform:uppercase; padding:4px 8px; background:color-mix(in srgb,var(--cp-post-accent,var(--cp-fallback)) 7%,var(--cp-surface)); font-size:.56rem; letter-spacing:.1em; }
.cp-board-type svg,.cp-board-modal-meta svg{ width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.cp-board-item h3{ margin:0 0 6px !important; color:var(--cp-text); line-height:1.2 !important; font-weight:800; font-size:1rem; letter-spacing:-.015em; }
.cp-board-item.is-featured h3{ font-size:clamp(1.12rem,2.5vw,1.38rem); }
.cp-board-eventline{ display:flex; align-items:flex-start; gap:7px; margin:1px 0 7px; color:var(--cp-text); font-size:.73rem; font-weight:700; line-height:1.4; }
.cp-board-eventline span{ flex:0 0 6px; width:6px; height:6px; margin-top:4px; border-radius:50%; background:var(--cp-fallback); box-shadow:0 0 0 3px var(--cp-tint); }
.cp-board-excerpt,.cp-board-body{ color:var(--cp-body-text); font-size:.8rem; line-height:1.45; }
.cp-board-excerpt{ flex:1; margin:0 !important; color:var(--cp-muted); font-size:.77rem; line-height:1.52; }
.cp-board-highlight{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:14px; min-width:0; border:1px solid color-mix(in srgb,var(--cp-post-accent,var(--cp-fallback)) 24%,var(--cp-border)); border-radius:9px; background:color-mix(in srgb,var(--cp-post-accent,var(--cp-fallback)) 5%,var(--cp-surface)); }
.cp-board-highlight > div{ display:grid; min-width:0; gap:2px; }
.cp-board-highlight > div > span{ color:var(--cp-post-accent,var(--cp-fallback)); font-size:.56rem; font-weight:900; line-height:1.2; text-transform:uppercase; letter-spacing:.09em; }
.cp-board-highlight strong{ overflow-wrap:anywhere; color:var(--cp-text); font-size:.92rem; line-height:1.25; }
.cp-board-highlight small{ color:var(--cp-muted); font-size:.65rem; line-height:1.35; }
.cp-board-card-highlight{ margin:11px 0 1px; padding:10px 11px; }
.cp-board-copy{ display:inline-flex; align-items:center; flex:0 0 auto; gap:5px; min-height:32px; margin:0 !important; padding:6px 9px !important; border:1px solid color-mix(in srgb,var(--cp-post-accent,var(--cp-fallback)) 35%,var(--cp-border)) !important; border-radius:7px !important; background:var(--cp-surface) !important; box-shadow:none !important; color:var(--cp-post-accent,var(--cp-fallback)) !important; font:inherit !important; font-size:.66rem !important; font-weight:850 !important; line-height:1.2 !important; cursor:pointer; }
.cp-board-copy:hover,.cp-board-copy:focus-visible{ border-color:var(--cp-post-accent,var(--cp-fallback)) !important; background:color-mix(in srgb,var(--cp-post-accent,var(--cp-fallback)) 8%,var(--cp-surface)) !important; transform:none !important; }
.cp-board-copy svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.cp-board-copy-status{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.cp-board-item.is-coupon-offer{ border-color:color-mix(in srgb,var(--cp-post-accent) 22%,var(--cp-border)); background:var(--cp-surface); }
.is-coupon-offer .cp-board-highlight{ border-color:color-mix(in srgb,var(--cp-post-accent) 22%,var(--cp-border)); background:color-mix(in srgb,var(--cp-post-accent) 6%,var(--cp-surface)); }
.is-coupon-offer .cp-board-highlight strong{ color:var(--cp-post-accent); font-size:1rem; letter-spacing:.015em; }
.is-coupon-offer .cp-board-copy{ display:flex; border-color:var(--cp-post-accent) !important; background:var(--cp-post-accent) !important; color:var(--cp-on-accent) !important; }
.is-coupon-offer .cp-board-copy:hover,.is-coupon-offer .cp-board-copy:focus-visible{ background:color-mix(in srgb,var(--cp-post-accent) 86%,#000) !important; color:var(--cp-on-accent) !important; }
.cp-board-read{ display:inline-flex; align-items:center; gap:7px; align-self:flex-start; margin:9px 0 0 !important; padding:0; border:0; background:transparent; color:var(--cp-fallback); font:inherit; font-size:.72rem; font-weight:900; line-height:1.3; cursor:pointer; }
.cp-board-read span{ transition:transform .15s ease; }
.cp-board-read:hover span{ transform:translateX(3px); }
.cp-board-card-actions{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:9px; }
.cp-board-calendar{ display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:34px; padding:7px 10px; border:1px solid color-mix(in srgb,var(--cp-success) 32%,var(--cp-border)); border-radius:8px; background:color-mix(in srgb,var(--cp-success) 5%,var(--cp-surface)); color:var(--cp-success) !important; text-decoration:none !important; font-size:.66rem; font-weight:850; line-height:1.2; white-space:nowrap; }
.cp-board-calendar svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.cp-board-calendar:hover,.cp-board-calendar:focus-visible{ border-color:var(--cp-success); background:color-mix(in srgb,var(--cp-success) 10%,var(--cp-surface)); color:var(--cp-success) !important; }
.cp-board-calendar-compact{ min-height:28px; margin-top:9px; padding:5px 8px; font-size:.62rem; }
.cp-event-rsvp{ display:grid; gap:10px; min-width:0; padding:12px; border:1px solid color-mix(in srgb,var(--cp-success) 22%,var(--cp-border)); border-radius:10px; background:color-mix(in srgb,var(--cp-success) 4%,var(--cp-surface)); }
.cp-rsvp-summary{ display:flex; align-items:center; justify-content:space-between; gap:14px; }
.cp-rsvp-summary > div{ display:grid; gap:2px; min-width:0; }
.cp-rsvp-summary span{ color:var(--cp-subtle); font-size:.55rem; font-weight:850; line-height:1.2; letter-spacing:.08em; text-transform:uppercase; }
.cp-rsvp-summary strong{ color:var(--cp-text); font-size:.75rem; font-weight:850; line-height:1.25; }
.cp-rsvp-summary strong b{ color:var(--cp-success); font:inherit; }
.cp-rsvp-availability{ text-align:right; }
.cp-rsvp-availability strong{ color:var(--cp-success); }
.cp-rsvp-controls{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:9px; border-top:1px solid color-mix(in srgb,var(--cp-success) 14%,var(--cp-divider)); }
.cp-rsvp-controls > span{ color:var(--cp-text); font-size:.68rem; font-weight:850; line-height:1.3; }
.cp-rsvp-controls > div{ display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:6px; }
.cp-passes .cp-rsvp-choice{ appearance:none !important; min-height:31px !important; margin:0 !important; padding:6px 10px !important; border:1px solid var(--cp-border) !important; border-radius:7px !important; background:var(--cp-surface) !important; color:var(--cp-muted) !important; box-shadow:none !important; font-size:.63rem !important; font-weight:800 !important; line-height:1.2 !important; cursor:pointer !important; }
.cp-passes .cp-rsvp-choice:hover,.cp-passes .cp-rsvp-choice:focus-visible{ border-color:var(--cp-success) !important; color:var(--cp-success) !important; transform:none !important; }
.cp-passes .cp-rsvp-choice.is-selected{ border-color:var(--cp-success) !important; background:var(--cp-success) !important; color:#fff !important; }
.cp-passes .cp-rsvp-choice.cp-rsvp-not_going.is-selected{ border-color:var(--cp-danger) !important; background:var(--cp-danger) !important; }
.cp-passes .cp-rsvp-choice:disabled{ cursor:wait !important; opacity:.68; }
.cp-rsvp-status{ min-height:0; color:var(--cp-muted); font-size:.61rem; font-weight:700; line-height:1.35; }
.cp-rsvp-status.has-error{ color:var(--cp-danger); }
.cp-rsvp-closed{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:9px; border-top:1px solid var(--cp-divider); color:var(--cp-muted); font-size:.66rem; }
.cp-rsvp-closed strong{ color:var(--cp-text); font-weight:800; }
.cp-event-rsvp-spotlight{ grid-column:1/-1; }
.cp-event-rsvp-card{ margin-top:11px; padding:10px; }
.cp-event-rsvp-card .cp-rsvp-summary > div:first-child > span,.cp-event-rsvp-card .cp-rsvp-availability span{ display:none; }
.cp-event-rsvp-card .cp-rsvp-summary strong{ font-size:.68rem; }
.cp-event-rsvp-card .cp-rsvp-controls{ align-items:flex-start; flex-direction:column; gap:7px; }
.cp-event-rsvp-card .cp-rsvp-controls > div{ justify-content:flex-start; }
.cp-board-modal-rsvp{ margin:0 28px 18px; }
.cp-board-modal-rsvp:empty{ display:none; }
.cp-board-modal-rsvp .cp-event-rsvp{ padding:14px; }
.cp-board-reactions{ display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin-top:12px; padding-top:10px; border-top:1px solid var(--cp-divider); }
.cp-reaction-label{ color:var(--cp-subtle); font-size:.57rem; font-weight:900; line-height:1.2; text-transform:uppercase; letter-spacing:.09em; }
.cp-reaction-options{ display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.cp-passes .cp-reaction{ display:inline-flex; align-items:center; justify-content:center; gap:4px; min-width:43px; min-height:29px; margin:0 !important; padding:3px 7px !important; border:1px solid var(--cp-border) !important; border-radius:999px !important; background:var(--cp-surface) !important; box-shadow:none !important; color:var(--cp-text) !important; font:inherit !important; line-height:1 !important; cursor:pointer; }
.cp-passes .cp-reaction > span{ font-size:.92rem; line-height:1; }
.cp-passes .cp-reaction strong{ min-width:9px; color:var(--cp-muted); font-size:.62rem; font-weight:850; line-height:1; }
.cp-passes .cp-reaction:hover,.cp-passes .cp-reaction:focus-visible{ border-color:color-mix(in srgb,var(--cp-post-accent,var(--cp-fallback)) 52%,var(--cp-border)) !important; background:color-mix(in srgb,var(--cp-post-accent,var(--cp-fallback)) 5%,var(--cp-surface)) !important; transform:none !important; }
.cp-passes .cp-reaction.is-selected{ border-color:var(--cp-post-accent,var(--cp-fallback)) !important; background:color-mix(in srgb,var(--cp-post-accent,var(--cp-fallback)) 10%,var(--cp-surface)) !important; box-shadow:0 0 0 2px color-mix(in srgb,var(--cp-post-accent,var(--cp-fallback)) 10%,transparent) !important; }
.cp-passes .cp-reaction.is-selected strong{ color:var(--cp-post-accent,var(--cp-fallback)); }
.cp-passes .cp-reaction[aria-busy="true"]{ opacity:.58; cursor:wait; }
.cp-reaction-status{ flex:1 0 100%; min-height:12px; color:var(--cp-success); font-size:.61rem; font-weight:700; line-height:1.2; }
.cp-reaction-status:empty{ display:none; }
.cp-reaction-status.has-error{ color:var(--cp-danger); }
.cp-board-body p:last-child{ margin-bottom:0; }
.cp-board-body :where(img,video,iframe){ max-width:100%; }
.cp-board-body iframe{ width:100%; }
.cp-board-body :where(img,video){ height:auto; }
.cp-board-dialog{ width:min(740px,100%); padding:0; overflow:hidden auto; box-shadow:0 30px 90px rgba(0,0,0,.32); border-top:4px solid var(--cp-fallback); }
.cp-board-dialog .cp-sub-close{ z-index:2; top:14px; right:16px; background:var(--cp-danger-bg); color:var(--cp-danger); }
.cp-board-modal-thumb img{ width:100%; max-height:360px; object-fit:cover; display:block; margin:0; }
.cp-board-modal-header{ padding:27px clamp(24px,4vw,32px) 17px; }
.cp-board-modal-meta{ padding-right:44px; }
.cp-board-modal-meta span{ display:inline-flex; align-items:center; gap:6px; padding:5px 9px; border-radius:999px; background:var(--cp-tint); color:var(--cp-fallback); font-size:.61rem; font-weight:600 !important; line-height:1.2; text-transform:uppercase; letter-spacing:.09em; }
.cp-board-dialog h3{ margin:0 !important; color:var(--cp-text); line-height:1.12 !important; font-weight:850; letter-spacing:-.025em; font-size:clamp(1.48rem,4vw,2rem); }
.cp-board-modal-event{ margin:14px 0 0 !important; padding:11px 13px; border-left:3px solid var(--cp-fallback); border-radius:0 9px 9px 0; background:var(--cp-tint); color:var(--cp-text); font-size:.8rem; font-weight:750; line-height:1.4; }
.cp-board-modal-highlight{ margin:0 clamp(24px,4vw,32px) 16px; padding:13px 14px; }
.cp-board-modal-highlight strong{ font-size:1.05rem; }
.cp-board-body{ padding:17px 18px; border:1px solid var(--cp-border); color:var(--cp-body-text); font-size:.86rem; line-height:1.55; margin:0 clamp(24px,4vw,32px) 28px !important; border-radius:12px; background:var(--cp-surface-muted); }
.cp-board-body > :first-child{ margin-top:0 !important; }
.cp-board-body > :last-child{ margin-bottom:0 !important; }
.cp-board-body:has(+ .cp-board-cta){ margin-bottom:14px !important; }
.cp-board-modal-reactions{ margin:0 clamp(24px,4vw,32px) 20px; }
.cp-board-modal-reactions .cp-board-reactions{ margin:0; padding:13px 14px; border:1px solid var(--cp-border); border-radius:10px; background:var(--cp-surface); }
.cp-board-modal-reactions .cp-reaction-label{ margin-right:auto; }
.cp-board-modal-actions{ display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin:0 clamp(24px,4vw,32px) 26px; }
.cp-board-modal-actions .cp-board-cta{ margin:0 !important; }
.cp-board-modal-actions .cp-board-calendar{ min-height:40px; padding:10px 14px; }
.cp-board-cta{ display:inline-flex; margin:0 clamp(22px,4vw,30px) 26px !important; padding:11px 17px; border-radius:10px; background:var(--cp-fallback); color:var(--cp-on-accent) !important; text-decoration:none !important; font-size:.82rem; font-weight:800; }
.cp-account-panel-updates .cp-board{ margin:0; box-shadow:var(--cp-shadow); }
.cp-account-panel-updates .cp-board-hero{ gap:28px; padding:31px 34px 29px; }
.cp-account-panel-updates .cp-board-eyebrow{ margin-bottom:7px !important; font-size:.64rem; }
.cp-account-panel-updates .cp-board-hero h2{ font-size:clamp(1.65rem,4vw,2.15rem); }
.cp-account-panel-updates .cp-board-hero p{ max-width:720px; margin-top:9px !important; font-size:.84rem; line-height:1.55 !important; }
.cp-account-panel-updates .cp-board-summary{ min-width:142px; padding:11px 15px; }
.cp-account-panel-updates .cp-board-content{ padding:24px 28px 30px; }
.cp-account-panel-updates .cp-board-filters{ padding-bottom:17px; gap:9px; }
.cp-account-panel-updates .cp-board-grid{ gap:16px; }
.cp-account-panel-updates .cp-board-item{ padding:0 18px; }
.cp-account-panel-updates .cp-board-item.is-featured{ padding:0 18px; }
.cp-account-panel-updates .cp-board-item.is-featured.has-thumb{ grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr); }
.cp-account-panel-updates .cp-board-thumb{ min-height:150px; margin:18px 0; }
.cp-account-panel-updates .cp-board-card-body{ padding:19px 0; }
.cp-account-panel-updates .cp-board-item.is-featured .cp-board-card-body{ padding:25px 0 25px 25px; }
.cp-account-panel-updates .cp-board-item.is-featured:not(.has-thumb) .cp-board-card-body{ padding:22px 12px; }
.cp-account-panel-updates .cp-board-item h3{ font-size:1.08rem; }
.cp-account-panel-updates .cp-board-item.is-featured h3{ font-size:clamp(1.32rem,3vw,1.62rem); }
.cp-account-panel-updates .cp-board-item.is-featured.is-coupon-offer h3{ margin-bottom:0 !important; font-size:22px; }
.cp-account-panel-updates .cp-board-item.is-featured.is-coupon-offer .cp-board-excerpt{ margin-top:4px !important; }
.cp-account-panel-updates .cp-board-excerpt{ font-size:.82rem; line-height:1.58; }
.cp-account-panel-updates .cp-board-read{ margin-top:13px !important; font-size:.76rem; }
.cp-board-empty-state{ display:grid; justify-items:start; gap:4px; padding:18px; border:1px solid var(--cp-border); border-radius:9px; background:var(--cp-surface); }
.cp-board-empty-state strong{ color:var(--cp-text); font-size:.82rem; }
.cp-board-empty-state span{ color:var(--cp-muted); font-size:.72rem; line-height:1.45; }
/* live competitions */
.cp-section-title{ color:var(--cp-text); margin:0 !important; margin-bottom:0 !important; font-size:1.12rem; font-weight:850; letter-spacing:-.02em; }
.cp-comp-row{
	display:flex; align-items:center; flex-wrap:wrap;
	background:var(--cp-surface); border:1px solid var(--cp-border); margin-bottom:12px; gap:15px; padding:12px 13px; border-radius:10px; box-shadow:none; transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.cp-comp-thumb img{ object-fit:cover; display:block; width:64px; height:64px; border-radius:11px; }
.cp-comp-main{ flex:1; min-width:160px; }
.cp-comp-name{ display:block; color:var(--cp-text); font-size:.86rem; font-weight:800; }
.cp-comp-meta{ display:block; color:var(--cp-subtle); margin-top:2px; font-size:.69rem; }
.cp-entries-pill{ font-weight:700; color:var(--cp-fallback); background:var(--cp-tint); border-radius:20px; white-space:nowrap; padding:6px 10px; border:1px solid color-mix(in srgb,var(--cp-fallback) 13%,transparent); font-size:.68rem;
}
.cp-comp-price{ font-weight:700; color:var(--cp-text); white-space:nowrap; font-size:.8rem; }
.cp-comp-price del{ opacity:.5; font-weight:500; margin-right:4px; }
.cp-comp-pricing{ display:grid; justify-items:end; gap:3px; white-space:nowrap; }
.cp-price-reason{ display:block; font-size:.57rem; font-weight:850; line-height:1.2; letter-spacing:.04em; }
.cp-price-reason.is-pass{ color:var(--cp-fallback); }
.cp-price-reason.is-flash{ color:var(--cp-success); }
.cp-price-reason.is-sale{ color:var(--cp-subtle); }
.cp-member-flash-price-label{ display:block; margin-top:3px; color:var(--cp-success,#087f4b); font-size:.68em; font-weight:800; line-height:1.25; }
.cp-enter-btn{
	padding:10px 20px; border-radius:10px; background:var(--cp-fallback);
	color:var(--cp-on-accent) !important; font-weight:700; text-decoration:none !important;
	transition:filter .15s ease; white-space:nowrap;
}
.cp-enter-btn:hover{ filter:brightness(1.08); color:var(--cp-on-accent) !important; }
@media(max-width:600px){
	.cp-comp-row{ align-items:flex-start; }
	.cp-comp-pricing{ justify-items:start; }
	.cp-enter-btn{ width:100%; text-align:center; }
}

/* unified subscription management */
.cp-history{ margin-top:30px; }
.cp-history-row{
	display:flex; align-items:center; gap:14px; flex-wrap:wrap;
	background:var(--cp-surface); border:1px solid var(--cp-border); margin-bottom:10px; padding:13px 14px; border-radius:13px;
}
.cp-history-row > div{ flex:1; min-width:180px; }
.cp-history-row strong{ display:block; color:var(--cp-text); }
.cp-history-row > div span{ display:block; margin-top:2px; color:var(--cp-subtle); font-size:.8rem; }
.cp-history-row .cp-status{ margin-left:0; }
.cp-manage-btn-small{ padding:8px 14px; font-size:.82rem; }

.cp-sub-modal[hidden]{ display:none !important; }
.cp-sub-modal{ position:fixed; inset:0; z-index:999999; display:flex; align-items:center; justify-content:center; padding:20px; }
.cp-sub-backdrop{ position:absolute; inset:0; background:rgba(10,14,22,.7); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.cp-sub-dialog{
	position:relative; z-index:1;
	max-height:min(760px,calc(100dvh - 40px)); overflow:auto; overscroll-behavior:contain;
	background:var(--cp-surface); color:var(--cp-text); outline:none; width:min(600px,100%); border:1px solid rgba(255,255,255,.28); border-radius:18px; padding:20px; box-shadow:0 32px 90px rgba(0,0,0,.34);
}
.cp-sub-close{
	position:absolute; top:12px; right:14px; display:flex; align-items:center; justify-content:center;
	width:36px; height:36px; max-height:36px; padding:0; border:1px solid var(--cp-danger-border);
	border-radius:50%; background:var(--cp-danger-bg); color:var(--cp-danger); cursor:pointer;
	font-size:25px; line-height:1; transition:background-color .15s ease,color .15s ease;
}
.cp-sub-close:hover{ background:var(--cp-danger); color:#fff; transform:none; }
.cp-sub-close::before,.cp-sub-close::after{ pointer-events:none; }
.cp-sub-pass-image{ position:relative; overflow:hidden; background:var(--cp-surface-muted); height:150px; margin:-20px -20px 14px; border-radius:18px 18px 0 0; }
.cp-sub-pass-image img{ display:block; width:100%; height:100%; object-fit:cover; max-height:100%; object-position:center; }
.cp-sub-pass-image::after{ content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(180deg,rgba(8,17,25,.06) 20%,rgba(8,17,25,.34) 55%,rgba(8,17,25,.88) 100%); pointer-events:none; }
.cp-sub-image-overlay{ position:absolute; z-index:2; inset:0; display:flex; align-items:flex-end; justify-content:space-between; gap:14px; padding:16px 20px; color:#fff; }
.cp-sub-image-overlay > div{ min-width:0; }
.cp-sub-image-overlay .cp-sub-eyebrow{ color:rgba(255,255,255,.72); }
.cp-sub-image-overlay h3{ margin:3px 0 0 !important; color:#fff !important; font-size:1.28rem; font-weight:850; line-height:1.15 !important; letter-spacing:-.02em; text-shadow:0 1px 12px rgba(0,0,0,.3); }
.cp-sub-image-overlay .cp-status{ flex:0 0 auto; margin:0 0 1px; box-shadow:0 4px 16px rgba(0,0,0,.16); }
.cp-sub-heading{ position:relative; padding-right:42px; margin-bottom:11px; }
.cp-sub-eyebrow{ display:block; color:var(--cp-subtle); text-transform:uppercase; letter-spacing:.04em; margin-bottom:3px; font-size:.67rem; }
.cp-sub-heading h3{ margin:0 0 8px !important; line-height:1.2 !important; color:var(--cp-text); margin-bottom:6px !important; font-size:1.28rem; font-weight:850; letter-spacing:-.02em; }
.cp-sub-heading .cp-status{ display:inline-block; margin:0; }
.cp-sub-details{ display:grid; margin:0; overflow:hidden; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:6px; border:0; border-radius:0; background:transparent; }
.cp-sub-details > div{ min-width:0; padding:9px 11px; border:1px solid var(--cp-border); border-radius:8px; background:var(--cp-surface-muted); }
.cp-sub-details > div:last-child:nth-child(odd){ grid-column:auto; }
.cp-sub-details dt{ color:var(--cp-subtle); text-transform:uppercase; margin-bottom:4px; font-size:.61rem; font-weight:850; letter-spacing:.08em; }
.cp-sub-details dd{ margin:0; color:var(--cp-text); font-weight:700; overflow-wrap:anywhere; font-size:.76rem; line-height:1.3; }
.cp-switcher{ margin-top:16px; padding:14px; border:1px solid var(--cp-border); border-radius:14px; background:var(--cp-surface-muted); }
.cp-switcher-heading strong,.cp-switcher-heading span{ display:block; }
.cp-switcher-heading strong{ color:var(--cp-text); font-size:.9rem; }
.cp-switcher-heading span{ margin-top:3px; color:var(--cp-subtle); font-size:.75rem; line-height:1.4; }
.cp-switch-options{ display:grid; gap:6px; margin-top:0; }
.cp-switch-option{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 12px; border:1px solid var(--cp-border); border-radius:11px; background:var(--cp-surface); color:var(--cp-text) !important; text-decoration:none !important; }
.cp-switch-option:hover{ border-color:var(--cp-fallback); box-shadow:var(--cp-shadow); }
.cp-switch-option > span,.cp-switch-option > span > strong,.cp-switch-option > span > small{ min-width:0; }
.cp-switch-option > span,.cp-switch-option > span > strong{ display:block; }
.cp-switch-option > span > strong{ font-size:.83rem; }
.cp-switch-option > span > small{ display:flex; align-items:baseline; flex-wrap:nowrap; gap:3px; margin-top:3px; color:var(--cp-muted); font-size:.73rem; white-space:nowrap; }
.cp-switch-option > span > small :is(span,bdi){ display:inline; }
.cp-switch-option em{ flex:0 0 auto; padding:4px 8px; border-radius:999px; background:var(--cp-tint); color:var(--cp-fallback); font-size:.64rem; font-style:normal; font-weight:900; text-transform:uppercase; letter-spacing:.05em; }
.cp-switch-downgrade em{ background:var(--cp-surface-muted); color:var(--cp-muted); }
.cp-sub-actions{ display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.cp-sub-action{
	display:inline-block; border-radius:10px; padding:10px 15px; background:var(--cp-fallback);
	border:1px solid var(--cp-fallback); color:var(--cp-on-accent) !important; text-decoration:none !important; font-weight:700; font-size:.88rem;
}
.cp-sub-action:hover{ filter:brightness(1.08); color:var(--cp-on-accent) !important; }
.cp-sub-action.is-busy{ opacity:.62; pointer-events:none; cursor:wait; }
.cp-sub-action-cancel{ background:var(--cp-surface); border-color:var(--cp-danger-border); color:var(--cp-danger) !important; }
.cp-sub-action-cancel:hover{ background:var(--cp-danger-bg); color:var(--cp-danger) !important; }
.cp-sub-note{ margin:14px 0 0; color:var(--cp-muted); line-height:1.45; margin-top:8px; font-size:.7rem; }
.cp-cancel-dialog{ width:min(540px,100%); padding:0; overflow:hidden; border-color:rgba(255,255,255,.48); border-radius:16px; }
.cp-cancel-heading{ position:relative; display:flex; align-items:center; gap:13px; min-height:94px; padding:22px 66px 20px 22px; margin:0; border-bottom:1px solid var(--cp-border); background:linear-gradient(135deg,var(--cp-surface),color-mix(in srgb,var(--cp-danger) 4%,var(--cp-surface))); }
.cp-cancel-heading > div:last-child{ min-width:0; }
.cp-cancel-dialog h3{ margin:2px 0 0 !important; color:var(--cp-text); font-size:1.42rem; line-height:1.16 !important; letter-spacing:-.025em; }
.cp-cancel-symbol{ display:flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; padding:0; border:1px solid color-mix(in srgb,var(--cp-danger) 22%,var(--cp-border)); border-radius:12px; background:var(--cp-danger-bg); color:var(--cp-danger); }
.cp-cancel-symbol svg{ display:block; width:25px; height:25px; }
.cp-cancel-dialog > :not(.cp-sub-close,.cp-cancel-heading){ margin-left:22px; margin-right:22px; }
.cp-cancel-overview{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; margin-top:20px; }
.cp-cancel-summary{ min-width:0; padding:14px 15px; border:1px solid var(--cp-border); border-radius:10px; background:var(--cp-surface-muted); }
.cp-cancel-summary > span,.cp-cancel-section-label{ display:block; margin-bottom:5px; color:var(--cp-subtle); font-size:.59rem; font-weight:850; line-height:1.2; letter-spacing:.075em; text-transform:uppercase; }
.cp-cancel-message{ margin:0 !important; padding:0; color:var(--cp-text); font-size:.81rem; font-weight:750; line-height:1.45; }
.cp-cancel-saving{ display:grid; align-content:center; min-width:154px; padding:12px 14px; border:1px solid color-mix(in srgb,var(--cp-site-primary) 22%,var(--cp-border)); border-radius:10px; background:color-mix(in srgb,var(--cp-site-primary) 5%,var(--cp-surface)); }
.cp-cancel-saving[hidden]{ display:none !important; }
.cp-cancel-saving span{ color:var(--cp-muted); font-size:.58rem; font-weight:850; line-height:1.3; letter-spacing:.065em; text-transform:uppercase; }
.cp-cancel-saving strong{ margin-top:5px; color:var(--cp-success); font-size:1.28rem; font-weight:900; line-height:1.05; letter-spacing:-.02em; }
.cp-cancel-impact{ margin-top:10px; padding:13px 15px; border:1px solid var(--cp-border); border-radius:10px; background:var(--cp-surface); color:var(--cp-body-text); font-size:.76rem; line-height:1.45; }
.cp-cancel-impact ul{ display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.cp-cancel-impact li{ position:relative; padding-left:20px; }
.cp-cancel-impact li::before{ content:"\2713"; position:absolute; top:0; left:0; color:var(--cp-success); font-weight:900; }
.cp-cancel-impact li:first-child::before{ content:"\2212"; color:var(--cp-danger); }
.cp-cancel-check-row{ display:flex; align-items:flex-start; gap:11px; margin-top:10px; padding:13px 14px; border:1px solid var(--cp-border); border-radius:10px; background:var(--cp-surface-muted); color:var(--cp-text); font-size:.82rem; line-height:1.4; cursor:pointer; transition:border-color .15s ease,background-color .15s ease; }
.cp-cancel-check-row:focus-within{ border-color:var(--cp-fallback); box-shadow:var(--cp-focus-ring); }
.cp-cancel-check-row:has(input:checked){ border-color:color-mix(in srgb,var(--cp-fallback) 42%,var(--cp-border)); background:color-mix(in srgb,var(--cp-fallback) 4%,var(--cp-surface)); }
.cp-cancel-check-row input{ flex:0 0 auto; width:19px; height:19px; margin:1px 0 0; accent-color:var(--cp-fallback); }
.cp-cancel-check-row > span{ display:grid; gap:1px; min-width:0; }
.cp-cancel-check-row strong{ color:var(--cp-text); font-size:.81rem; font-weight:850; }
.cp-cancel-check-row small{ color:var(--cp-muted); font-size:.72rem; font-weight:550; line-height:1.4; }
.cp-cancel-actions{ display:flex; gap:9px; margin-top:16px; margin-bottom:22px; }
.cp-cancel-actions button{ flex:1; min-height:43px; border-radius:9px; padding:11px 15px; cursor:pointer; font-weight:800; }
.cp-cancel-confirm{ border:1px solid var(--cp-danger); background:var(--cp-surface); color:var(--cp-danger); }
.cp-cancel-confirm:not(:disabled):hover{ background:var(--cp-danger); color:#fff; }
.cp-cancel-confirm:disabled{ border-color:var(--cp-border); background:var(--cp-surface-muted); color:var(--cp-subtle); opacity:1; cursor:not-allowed; }
.cp-cancel-confirm.is-busy{ opacity:.62; cursor:wait; }
.cp-cancel-keep{ border:1px solid var(--cp-fallback); background:var(--cp-fallback); color:var(--cp-on-accent); }
.cp-cancel-keep:hover{ filter:brightness(1.06); }
body.cp-sub-modal-open{ overflow:hidden; }

@media(prefers-reduced-motion:reduce){
	.cp-shortcode *, .cp-passes *{ scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
	.cp-card:hover, .cp-board-item:hover{ transform:none; }
}

/* Elementor kits apply broad button rules late in the cascade. Keep Passes
   controls visually consistent while still inheriting the site's primary
   colour from --e-global-color-primary. */
.cp-shortcode :is(.cp-cta),
.cp-passes :is(.cp-manage-btn,.cp-empty-btn,.cp-board-filter,.cp-board-read,.cp-board-cta,.cp-enter-btn,.cp-sub-action,.cp-sub-close,.cp-switch-option,.cp-cancel-confirm,.cp-cancel-keep,.cp-reaction){
	-webkit-appearance:none !important;
	appearance:none !important;
	font-family:inherit !important;
	font-style:normal !important;
	text-transform:none !important;
	letter-spacing:normal !important;
	text-shadow:none !important;
	box-shadow:none !important;
}
.cp-shortcode .cp-cta{
	display:block !important; width:100% !important;
	border:1px solid var(--cp-accent,var(--cp-fallback)) !important;
	background:var(--cp-accent,var(--cp-fallback)) !important; color:var(--cp-on-accent) !important; line-height:1.25 !important;
	text-align:center !important; text-decoration:none !important;
	min-height:46px !important; padding:13px 18px !important; border-radius:11px !important;
	font-size:.88rem !important; font-weight:800 !important;
	box-shadow:0 8px 20px -12px color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 75%,transparent) !important;
}
.cp-shortcode .cp-cta-current{
	background:transparent !important; color:var(--cp-accent,var(--cp-fallback)) !important; box-shadow:none !important;
}
.cp-passes .cp-manage-btn{
	border:1px solid var(--cp-accent,var(--cp-fallback)) !important; line-height:1.25 !important;
	text-align:center !important; text-decoration:none !important;
	display:inline-flex !important; align-items:center !important; justify-content:space-between !important; gap:28px !important;
	min-height:43px !important; padding:11px 14px !important;
	border-radius:10px !important; background:var(--cp-accent,var(--cp-fallback)) !important;
	color:var(--cp-on-accent) !important; font-size:.78rem !important; font-weight:800 !important;
	box-shadow:0 9px 22px -14px color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 80%,transparent) !important;
}
.cp-passes .cp-manage-btn:hover{
	background:var(--cp-accent,var(--cp-fallback)) !important; color:var(--cp-on-accent) !important; filter:brightness(1.06);
}
.cp-passes .cp-manage-btn-small{ padding:8px 14px !important; font-size:.82rem !important; }
.cp-passes .cp-empty-btn,
.cp-passes .cp-enter-btn,
.cp-passes .cp-sub-action,
.cp-passes .cp-board-cta{
	display:inline-block !important; border:1px solid var(--cp-fallback) !important;
	background:var(--cp-fallback) !important; color:var(--cp-on-accent) !important;
	font-weight:700 !important; line-height:1.25 !important; text-align:center !important;
	text-decoration:none !important;
}
.cp-passes .cp-empty-btn{ display:inline-flex !important; padding:11px 17px !important; border-radius:9px !important; }
.cp-passes .cp-enter-btn{ min-width:82px; padding:10px 16px !important; border-radius:9px !important; font-size:.76rem !important; }
.cp-passes .cp-sub-action{ padding:8px 12px !important; border-radius:8px !important; font-size:.78rem !important; }
.cp-passes .cp-board-cta{ padding:12px 18px !important; border-radius:11px !important; }
.cp-passes .cp-sub-action-cancel{
	background:var(--cp-surface) !important; border-color:var(--cp-danger-border) !important; color:var(--cp-danger) !important;
}
.cp-passes .cp-sub-action-cancel:hover{ background:var(--cp-danger-bg) !important; color:var(--cp-danger) !important; }
.cp-passes .cp-board-filter{ border:1px solid var(--cp-border) !important; border-radius:999px !important;
	background:var(--cp-surface) !important; color:var(--cp-muted) !important; line-height:1.25 !important; padding:6px 11px !important; font-size:.67rem !important; font-weight:800 !important;
}
.cp-passes .cp-board-filter:hover,
.cp-passes .cp-board-filter.is-active{
	border-color:var(--cp-fallback) !important; background:var(--cp-fallback) !important; color:var(--cp-on-accent) !important;
}
.cp-passes .cp-board-read{
	padding:0 !important; border:0 !important; border-radius:0 !important;
	background:transparent !important; color:var(--cp-fallback) !important; font-weight:850 !important; line-height:1.3 !important; margin-top:11px !important; font-size:.72rem !important;
}
.cp-passes .cp-sub-close{
	position:absolute !important; display:flex !important; align-items:center !important; justify-content:center !important;
	z-index:30 !important; pointer-events:auto !important;
	box-sizing:border-box !important; width:36px !important; height:36px !important;
	min-height:36px !important; max-height:36px !important; padding:0 !important;
	border:1px solid var(--cp-danger-border) !important; border-radius:50% !important;
	background:var(--cp-danger-bg) !important; color:var(--cp-danger) !important;
	font-size:0 !important; line-height:0 !important; cursor:pointer !important; touch-action:manipulation;
	transform:none !important;
}
.cp-passes .cp-sub-close:hover{ background:var(--cp-danger) !important; color:#fff !important; cursor:pointer !important; transform:none !important; }
.cp-passes .cp-sub-close::before,.cp-passes .cp-sub-close::after{
	content:"" !important; position:absolute !important; top:50% !important; left:50% !important;
	width:14px !important; height:2px !important; border-radius:2px !important;
	background:currentColor !important; pointer-events:none !important; transform-origin:center !important;
}
.cp-passes .cp-sub-close::before{ transform:translate(-50%,-50%) rotate(45deg) !important; }
.cp-passes .cp-sub-close::after{ transform:translate(-50%,-50%) rotate(-45deg) !important; }
.cp-passes .cp-switch-option{
	display:flex !important; align-items:center !important; justify-content:space-between !important; width:100% !important;
	border:1px solid var(--cp-border) !important;
	background:var(--cp-surface) !important; color:var(--cp-text) !important;
	font-size:1rem !important; font-weight:400 !important; line-height:1.25 !important;
	text-align:left !important; text-decoration:none !important; gap:10px !important; padding:9px 10px !important; border-radius:8px !important;
}
.cp-passes .cp-switch-option:hover{ border-color:var(--cp-fallback) !important; }
.cp-passes .cp-switch-option > span > small,
.cp-passes .cp-switch-option > span > small :is(span,bdi){
	display:inline-flex !important; align-items:baseline !important; white-space:nowrap !important;
}
.cp-passes .cp-perk-icon{
	display:flex !important; align-items:center !important; justify-content:center !important;
	padding:0 !important; line-height:1 !important; text-align:center !important;
}
.cp-passes .cp-perk-icon svg{ display:block !important; width:15px !important; height:15px !important; fill:currentColor !important; }
.cp-passes .cp-perk strong{ line-height:1.25 !important; font-size:.7rem !important; }
.cp-passes .cp-perk div span{ margin-top:2px; font-size:.61rem !important; line-height:1.32 !important; }
.cp-passes .cp-cancel-confirm,
.cp-passes .cp-cancel-keep{
	display:inline-block !important; padding:11px 15px !important; border-radius:10px !important;
	font-size:.88rem !important; font-weight:800 !important; line-height:1.25 !important;
	text-align:center !important; text-decoration:none !important;
}
.cp-passes .cp-cancel-confirm{ border:1px solid var(--cp-danger) !important; background:var(--cp-surface) !important; color:var(--cp-danger) !important; }
.cp-passes .cp-cancel-confirm:not(:disabled):hover{ background:var(--cp-danger) !important; color:#fff !important; }
.cp-passes .cp-cancel-confirm:disabled{ border-color:var(--cp-border) !important; background:var(--cp-surface-muted) !important; color:var(--cp-subtle) !important; opacity:1 !important; cursor:not-allowed !important; }
.cp-passes .cp-cancel-keep{ border:1px solid var(--cp-fallback) !important; background:var(--cp-fallback) !important; color:var(--cp-on-accent) !important; }

/* Classic checkout: explain native switch proration without relying on theme UI. */
.woocommerce-checkout-review-order-table .cp-switch-checkout-note td{
	padding:16px 0 4px !important; border:0 !important; background:transparent !important;
}
.cp-switch-checkout-note-box{
	display:block !important; padding:16px 17px !important;
	border:1px solid #dfe4ea !important; border-left:4px solid var(--e-global-color-primary,#009c6b) !important;
	border-radius:8px !important; background:#f7f9fb !important; color:#202a37 !important;
	font-size:.86rem !important; line-height:1.55 !important; text-align:left !important;
}
.cp-switch-checkout-kicker{
	display:block !important; margin:0 0 3px !important; color:var(--e-global-color-primary,#007f58) !important;
	font-size:.69rem !important; font-weight:850 !important; line-height:1.3 !important; letter-spacing:.075em !important; text-transform:uppercase !important;
}
.cp-switch-checkout-title{
	display:block !important; margin:0 0 7px !important; color:#111827 !important;
	font-size:.97rem !important; font-weight:850 !important; line-height:1.35 !important;
}
.cp-switch-checkout-note-box p{ margin:6px 0 0 !important; color:#4b5563 !important; font:inherit !important; }
.cp-switch-checkout-note-box p:first-of-type{ margin-top:0 !important; }
.cp-switch-date-highlight{
	display:grid !important; gap:5px !important; margin:15px 0 0 !important; padding:14px !important;
	border:1px solid #a8dac9 !important; border-radius:7px !important; background:#ecf9f4 !important;
}
.cp-switch-date-kicker{
	display:block !important; color:#087655 !important; font-size:.67rem !important; font-weight:850 !important;
	line-height:1.3 !important; letter-spacing:.07em !important; text-transform:uppercase !important;
}
.cp-switch-date-title{
	display:block !important; margin:0 !important; color:#102a22 !important; font-size:.95rem !important;
	font-weight:850 !important; line-height:1.35 !important;
}
.cp-switch-date-comparison{
	display:grid !important; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important;
	align-items:center !important; gap:10px !important; margin-top:5px !important;
}
.cp-switch-date-comparison > span{
	display:grid !important; gap:2px !important; padding:9px 10px !important; border:1px solid #d4dfdb !important;
	border-radius:6px !important; background:#fff !important;
}
.cp-switch-date-comparison small{
	color:#6b7280 !important; font-size:.62rem !important; font-weight:800 !important; line-height:1.2 !important;
	letter-spacing:.065em !important; text-transform:uppercase !important;
}
.cp-switch-date-comparison b{ color:#26352f !important; font-size:.83rem !important; line-height:1.35 !important; }
.cp-switch-date-comparison i{ color:#087655 !important; font-size:1.12rem !important; font-style:normal !important; line-height:1 !important; }
.cp-switch-date-comparison .cp-switch-date-new{ border-color:#70c5a8 !important; background:#f8fffc !important; }
.cp-switch-date-comparison .cp-switch-date-new small,
.cp-switch-date-comparison .cp-switch-date-new b{ color:#006b4c !important; }
.cp-switch-date-highlight > p{ margin-top:4px !important; color:#334b43 !important; }

/* Extended presentation for the join page, account components and dialogs. */

/* Join page cards */
.cp-shortcode{ padding-block:clamp(28px,4vw,48px); }
.cp-card.has-pass-image{ overflow:hidden; }
.cp-shortcode .cp-cta-unavailable{ border-color:var(--cp-border) !important; color:var(--cp-muted) !important; }

/* Members Updates hero */
.cp-board-hero::before{
	content:""; position:absolute; z-index:-1; width:260px; height:260px; top:-175px; right:80px;
	border-radius:50%; background:color-mix(in srgb,var(--cp-fallback) 34%,transparent); filter:blur(2px); opacity:.7;
}
.cp-board-hero::after{
	content:""; position:absolute; z-index:-1; width:150px; height:150px; right:-80px; bottom:-90px;
	border:1px solid color-mix(in srgb,var(--cp-fallback) 55%,transparent); border-radius:50%; opacity:.6;
}
.cp-passes .cp-board-hero .cp-board-eyebrow{ color:color-mix(in srgb,var(--cp-fallback) 55%,#fff) !important; }
.cp-passes .cp-board-hero h2{ color:var(--cp-member-hero-text) !important; }
.cp-passes .cp-board-hero p{ color:#f7f7f7 !important; }
.cp-board-summary{ display:flex; align-items:center; justify-content:center; min-width:126px; padding:10px 13px; border:1px solid rgba(255,255,255,.2); border-radius:9px; background:rgba(255,255,255,.09); color:#fff !important; -webkit-backdrop-filter:blur(7px); backdrop-filter:blur(7px); gap:8px; }
.cp-board-summary > svg{ flex:0 0 19px; width:19px; height:19px; fill:none; stroke:#fff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.cp-board-summary > span{ color:#fff !important; font-size:.68rem; font-weight:750; line-height:1.25; white-space:nowrap; }
.cp-passes .cp-next-event-actions .cp-board-read{ margin:0 !important; padding:8px 11px !important; border:1px solid var(--cp-success) !important; border-radius:8px !important; background:var(--cp-success) !important; color:#fff !important; }
.cp-passes .cp-board-calendar{ border-color:color-mix(in srgb,var(--cp-success) 32%,var(--cp-border)) !important; border-radius:8px !important; background:color-mix(in srgb,var(--cp-success) 5%,var(--cp-surface)) !important; color:var(--cp-success) !important; box-shadow:none !important; text-decoration:none !important; }
.cp-passes .cp-board-calendar:hover,.cp-passes .cp-board-calendar:focus-visible{ border-color:var(--cp-success) !important; background:color-mix(in srgb,var(--cp-success) 10%,var(--cp-surface)) !important; color:var(--cp-success) !important; }
.cp-board-meta{ margin-bottom:8px !important; }

/* Active membership credential */
.cp-pass-identity{ min-width:0; flex:1; display:grid; gap:4px; }
.cp-pass-identity > div{ display:flex; align-items:center; gap:9px; min-width:0; }
.cp-pass-eyebrow{ color:var(--cp-subtle); font-size:.59rem; font-weight:850; letter-spacing:.13em; line-height:1.2; text-transform:uppercase; }
.cp-loyalty{ position:relative; display:grid; grid-template-columns:54px minmax(0,1fr) auto; align-items:center; gap:14px; margin:0 0 13px; padding:14px 15px 14px 17px; overflow:hidden; border:1px solid var(--cp-border); border-radius:12px; background:var(--cp-surface); box-shadow:0 8px 24px -22px rgba(16,24,40,.45); }
.cp-loyalty::before{ content:""; position:absolute; inset:10px auto 10px 0; width:3px; border-radius:0 3px 3px 0; background:var(--cp-accent,var(--cp-fallback)); }
.cp-drops.is-connected + .cp-loyalty{ border-radius:0 0 12px 12px; }
.cp-drops.is-connected + .cp-loyalty::before{ inset:0 auto 10px 0; }
.cp-loyalty-lap{ display:flex; flex-direction:column; align-items:center; justify-content:center; width:52px; height:52px; border:1px solid color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 30%,var(--cp-border)); border-radius:12px; background:color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 7%,var(--cp-surface)); }
.cp-loyalty-lap span,.cp-loyalty-progress > span,.cp-loyalty-tenure span{ color:var(--cp-subtle); font-size:.54rem; font-weight:850; line-height:1.2; letter-spacing:.1em; text-transform:uppercase; }
.cp-loyalty-lap strong{ margin-top:3px; color:var(--cp-accent,var(--cp-fallback)); font-size:1.25rem; font-weight:900; line-height:1; }
.cp-loyalty-progress{ min-width:0; }
.cp-loyalty-progress strong{ display:block; margin-top:3px; color:var(--cp-text); font-size:.82rem; font-weight:850; line-height:1.3; }
.cp-loyalty-progress p{ margin:3px 0 0 !important; color:var(--cp-muted); font-size:.68rem; font-weight:600; line-height:1.42; }
.cp-loyalty-tenure{ min-width:100px; padding:9px 11px; border:1px solid var(--cp-border); border-radius:10px; background:var(--cp-account-panel); text-align:right; }
.cp-loyalty-tenure span{ display:block; }
.cp-loyalty-tenure strong{ display:block; margin-top:4px; color:var(--cp-text); font-size:.77rem; font-weight:850; line-height:1.25; }
.cp-quick-reward{ display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:15px; margin:0 0 13px; padding:13px 14px; border:1px solid var(--cp-border); border-radius:12px; background:var(--cp-account-panel); transition:border-color .18s ease,background-color .18s ease,opacity .18s ease; }
.cp-quick-reward.is-enabled{ border-color:color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 30%,var(--cp-border)); background:color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 5%,var(--cp-surface)); }
.cp-quick-reward.is-saving{ opacity:.68; }
.cp-quick-reward-copy{ display:grid; gap:3px; min-width:0; }
.cp-quick-reward-copy > span{ color:var(--cp-subtle); font-size:.55rem; font-weight:850; line-height:1.2; letter-spacing:.1em; text-transform:uppercase; }
.cp-quick-reward-copy strong{ color:var(--cp-text); font-size:.79rem; font-weight:850; line-height:1.3; }
.cp-quick-reward-copy small{ color:var(--cp-muted); font-size:.65rem; font-weight:600; line-height:1.42; }
.cp-quick-reward-control{ display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.cp-quick-reward-status{ max-width:130px; color:var(--cp-muted); font-size:.62rem; font-weight:750; line-height:1.3; text-align:right; }
.cp-quick-reward.is-enabled .cp-quick-reward-status{ color:var(--cp-accent,var(--cp-fallback)); }
.cp-quick-reward.has-error .cp-quick-reward-status{ color:var(--cp-danger); }
.cp-toggle{ position:relative; display:inline-flex; flex:0 0 auto; margin:0 !important; cursor:pointer; }
.cp-toggle input{ position:absolute !important; width:1px !important; height:1px !important; margin:0 !important; padding:0 !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; opacity:0 !important; }
.cp-toggle-track{ position:relative; display:block; width:44px; height:24px; border:1px solid #c4c9d0; border-radius:999px; background:#dfe2e6; transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease; }
.cp-toggle-track > span{ position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(16,24,40,.25); transition:transform .18s ease; }
.cp-toggle input:checked + .cp-toggle-track{ border-color:var(--cp-accent,var(--cp-fallback)); background:var(--cp-accent,var(--cp-fallback)); }
.cp-toggle input:checked + .cp-toggle-track > span{ transform:translateX(20px); }
.cp-toggle input:focus-visible + .cp-toggle-track{ box-shadow:0 0 0 3px color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 20%,transparent); }
.cp-toggle input:disabled + .cp-toggle-track{ cursor:wait; }
.cp-passes .cp-quick-reward-save{ appearance:none !important; min-height:34px !important; margin:0 !important; padding:7px 10px !important; border:1px solid var(--cp-accent,var(--cp-fallback)) !important; border-radius:8px !important; background:var(--cp-surface) !important; color:var(--cp-accent,var(--cp-fallback)) !important; font-size:.64rem !important; font-weight:800 !important; cursor:pointer !important; }
.cp-quick-reward.is-enhanced .cp-quick-reward-save{ display:none !important; }
.cp-renewal-cards{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0 0 12px; }
.cp-renewal-cards > :only-child{ grid-column:1 / -1; }
.cp-renewal-cards .cp-quick-reward{ height:100%; margin:0; }
.cp-ledger{ display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:15px; min-width:0; margin:0; padding:13px 14px; border:1px solid color-mix(in srgb,var(--cp-accent,var(--cp-fallback)) 18%,var(--cp-border)); border-radius:12px; background:var(--cp-account-panel); }
.cp-ledger-copy{ display:grid; gap:3px; min-width:0; }
.cp-ledger-title{ color:var(--cp-subtle); font-size:.55rem; font-weight:850; line-height:1.2; letter-spacing:.1em; text-transform:uppercase; }
.cp-ledger-copy > strong{ color:var(--cp-text); font-size:.92rem; font-weight:850; line-height:1.3; }
.cp-ledger-copy > small{ color:var(--cp-muted); font-size:.65rem; font-weight:600; line-height:1.42; }
.cp-ledger-expiries{ display:grid; gap:5px; min-width:0; }
.cp-ledger-row{ display:flex; align-items:center; justify-content:flex-end; gap:8px; min-width:0; }
.cp-ledger-row > span:not(.cp-exp){ color:var(--cp-text); font-size:.66rem; font-weight:800; white-space:nowrap; }
.cp-ledger-row .cp-exp{ display:grid; gap:1px; min-width:142px; padding:7px 9px; border:1px solid var(--cp-border); border-radius:9px; background:var(--cp-surface); text-align:right; }
.cp-ledger-row .cp-exp small{ color:var(--cp-subtle); font-size:.52rem; font-weight:850; letter-spacing:.08em; line-height:1.2; text-transform:uppercase; }
.cp-ledger-row .cp-exp strong{ color:var(--cp-text); font-size:.64rem; font-weight:800; line-height:1.3; }
.cp-ledger-more{ display:block; color:var(--cp-muted); font-size:.61rem; font-weight:750; line-height:1.3; text-align:right; }
.cp-quick-reward-inline{ width:100%; max-width:none; margin:0; }
.cp-manage .cp-manage-btn{ flex:0 0 auto; }
.cp-manage-btn > span:last-child{ font-size:1rem; transition:transform .16s ease; }
.cp-manage-btn:hover > span:last-child{ transform:translateX(3px); }

/* Competition and history sections */
.cp-comps{ margin-top:18px; padding:18px; border:1px solid var(--cp-border); border-radius:12px; background:var(--cp-surface); box-shadow:var(--cp-shadow); }
.cp-section-heading{ display:flex; align-items:self-end; justify-content:space-between; gap:18px; margin:0 0 13px; }
.cp-section-heading > div{ display:grid; gap:2px; min-width:0; }
.cp-section-heading > div > span{ display:block; margin-bottom:3px; color:var(--cp-fallback); font-size:.59rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.cp-section-heading p{ margin:0 !important; color:var(--cp-subtle); font-size:.7rem; text-align:right; }
.cp-comps .cp-comp-row:last-child{ margin-bottom:0; }
.cp-comp-row:hover{ transform:translateY(-1px); border-color:color-mix(in srgb,var(--cp-fallback) 25%,var(--cp-border)); box-shadow:var(--cp-shadow); }
.cp-history > .cp-section-title{ margin-bottom:12px !important; }

.cp-switcher-note{ border-left:3px solid var(--cp-site-primary); border-radius:0 7px 7px 0; background:var(--cp-surface); color:var(--cp-muted); line-height:1.45; margin:8px 1px 0 !important; padding:8px 9px; font-size:.65rem; }
.cp-switch-cooldown{ display:grid; gap:4px; margin-top:10px; padding:10px 11px; border:1px solid color-mix(in srgb,var(--cp-site-primary) 30%,var(--cp-border)); border-left:3px solid var(--cp-site-primary); border-radius:0 8px 8px 0; background:color-mix(in srgb,var(--cp-site-primary) 5%,var(--cp-surface)); }
.cp-switch-cooldown strong{ color:var(--cp-text); font-size:.76rem; }
.cp-switch-cooldown span{ color:var(--cp-muted); font-size:.68rem; line-height:1.45; }
.cp-switch-cooldown-banner{ margin:0 0 16px !important; padding:11px 13px; border:1px solid color-mix(in srgb,var(--cp-site-primary) 30%,var(--cp-border)); border-left:3px solid var(--cp-site-primary); border-radius:0 8px 8px 0; background:color-mix(in srgb,var(--cp-site-primary) 5%,var(--cp-surface)); color:var(--cp-muted); font-size:.78rem; line-height:1.5; }
.cp-reward-update-notice{ display:grid; gap:2px; margin:0 0 14px; padding:11px 13px; border:1px solid color-mix(in srgb,var(--cp-site-primary) 28%,var(--cp-border)); border-left:3px solid var(--cp-site-primary); border-radius:0 7px 7px 0; background:color-mix(in srgb,var(--cp-site-primary) 5%,var(--cp-surface)); color:var(--cp-muted); font-size:.78rem; line-height:1.45; }
.cp-reward-update-notice strong{ color:var(--cp-text); font-size:.82rem; }

/* Renewal reward choice */
.cp-reward-choice{ margin:16px 0 0; padding:15px; border:1px solid var(--cp-border); border-radius:14px; background:var(--cp-surface-muted); }
.cp-reward-choice-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:11px; }
.cp-reward-choice-head > div{ display:grid; gap:3px; }
.cp-reward-choice-head strong{ color:var(--cp-text); font-size:.8rem; font-weight:850; }
.cp-reward-choice-head span{ color:var(--cp-muted); font-size:.67rem; line-height:1.4; }
.cp-reward-options{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.cp-reward-option{ position:relative; display:flex; align-items:flex-start; min-width:0; margin:0 !important; border:1px solid var(--cp-border); background:var(--cp-surface); cursor:pointer; gap:8px; padding:9px; border-radius:8px; }
.cp-reward-option:has(input:checked){ border-color:var(--cp-site-primary); box-shadow:0 0 0 2px color-mix(in srgb,var(--cp-site-primary) 11%,transparent); }
.cp-reward-option input{ flex:0 0 auto; width:17px !important; height:17px !important; min-width:17px !important; margin:1px 0 0 !important; padding:0 !important; accent-color:var(--cp-site-primary); cursor:pointer; }
.cp-reward-option > span{ display:grid; gap:3px; min-width:0; }
.cp-reward-option strong{ color:var(--cp-text); font-size:.73rem; font-weight:850; line-height:1.25; }
.cp-reward-option small{ color:var(--cp-muted); font-size:.62rem; line-height:1.4; }
.cp-reward-choice > p{ margin:10px 1px 12px !important; color:var(--cp-muted); font-size:.64rem; line-height:1.48; }
.cp-passes .cp-reward-save{ appearance:none !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; min-height:39px !important; margin:0 !important; padding:9px 14px !important; border:1px solid var(--cp-site-primary) !important; border-radius:9px !important; background:var(--cp-site-primary) !important; color:var(--cp-on-accent) !important; font-size:.7rem !important; font-weight:850 !important; line-height:1.2 !important; cursor:pointer !important; box-shadow:none !important; }
.cp-passes .cp-reward-save:hover{ filter:brightness(1.06); }

/* Refined dialogs */
.cp-manage-panel{ margin:10px 0 0; padding:0; overflow:hidden; border:1px solid var(--cp-border); border-radius:10px; background:var(--cp-surface-muted); }
.cp-manage-panel > summary{ display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:9px 11px; list-style:none; cursor:pointer; }
.cp-manage-panel > summary::-webkit-details-marker{ display:none; }
.cp-manage-panel > summary > span{ display:grid; gap:2px; min-width:0; }
.cp-manage-panel > summary strong{ color:var(--cp-text); font-size:.76rem; font-weight:850; line-height:1.25; }
.cp-manage-panel > summary small{ color:var(--cp-muted); font-size:.65rem; line-height:1.35; }
.cp-manage-panel > summary i{ position:relative; flex:0 0 24px; width:24px; height:24px; border-radius:50%; background:var(--cp-surface); border:1px solid var(--cp-border); }
.cp-manage-panel > summary i::before,.cp-manage-panel > summary i::after{ content:""; position:absolute; top:50%; left:50%; width:9px; height:1.5px; border-radius:2px; background:var(--cp-muted); transform:translate(-50%,-50%); }
.cp-manage-panel > summary i::after{ transform:translate(-50%,-50%) rotate(90deg); }
.cp-manage-panel[open] > summary{ border-bottom:1px solid var(--cp-border); background:var(--cp-surface); }
.cp-manage-panel[open] > summary i::after{ display:none; }
.cp-manage-panel > summary:focus-visible{ outline:2px solid var(--cp-site-primary); outline-offset:-3px; }
.cp-reward-choice,.cp-switcher{ margin-top:10px; padding:0; border-radius:10px; }
.cp-reward-choice-form,.cp-switcher-body{ padding:10px; }
.cp-reward-choice-form > p{ margin:8px 1px 9px !important; color:var(--cp-muted); font-size:.62rem; line-height:1.42; }

/* Canonical responsive layer. Keep these rules after the refined desktop
   presentation so mobile values cannot be overwritten by later base rules. */
@media(max-width:700px){
	.cp-account-tabs{ margin-bottom:14px; }
	.cp-passes .cp-account-tab{ flex:1 1 50%; padding-inline:9px !important; }
	.cp-renewal-cards{ grid-template-columns:1fr; }
	.cp-renewal-cards > :only-child{ grid-column:auto; }
	.cp-empty{ grid-template-columns:1fr; gap:22px; padding:27px 23px; }
	.cp-empty::after{ left:auto; right:-90px; }
	.cp-empty-benefits{ padding:19px 0 0; border-top:1px solid var(--cp-divider); border-left:0; }
	.cp-board-grid{ grid-template-columns:1fr; }
	.cp-board-hero{ grid-template-columns:1fr; gap:16px; padding:24px 21px 22px; }
	.cp-account-panel-updates .cp-board-hero{ gap:14px; padding:23px 20px 21px; }
	.cp-account-panel-updates .cp-board-hero h2{ font-size:clamp(1.45rem,7vw,1.8rem); }
	.cp-account-panel-updates .cp-board-content{ padding:18px 17px 21px; }
	.cp-member-pulse{ grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:16px; }
	.cp-member-pulse > div:nth-child(2){ border-right:0; }
	.cp-member-pulse > div:nth-child(-n+2){ border-bottom:1px solid var(--cp-divider); }
	.cp-next-event{ grid-template-columns:60px minmax(0,1fr); gap:13px; padding:13px; }
	.cp-next-event-date{ width:58px; min-height:58px; }
	.cp-next-event-actions{ grid-column:1/-1; justify-content:flex-start; }
	.cp-event-rsvp-spotlight{ grid-column:1/-1; }
	.cp-rsvp-controls{ align-items:flex-start; flex-direction:column; gap:8px; }
	.cp-rsvp-controls > div{ justify-content:flex-start; }
	.cp-board-toolbar{ align-items:flex-start; flex-direction:column; gap:10px; }
	.cp-board-toolbar .cp-board-filters{ justify-content:flex-start; }
	.cp-account-panel-updates .cp-board-grid{ gap:12px; }
	.cp-account-panel-updates .cp-board-item,.cp-account-panel-updates .cp-board-item.is-featured{ padding:0 14px; }
	.cp-account-panel-updates .cp-board-thumb{ min-height:130px; margin:14px 0; }
	.cp-account-panel-updates .cp-board-item.is-featured .cp-board-card-body{ padding:17px 0; }
	.cp-board-count{ justify-self:start; }
	.cp-board-summary{ width:100%; min-width:0; }
	.cp-board-content{ padding:14px 17px 18px; }
	.cp-board-item.is-featured{ grid-column:auto; display:flex; padding:0 13px; }
	.cp-board-item.is-featured .cp-board-thumb{ margin-bottom:0; }
	.cp-board-item.is-featured .cp-board-thumb img{ min-height:130px; aspect-ratio:16/9; }
	.cp-board-item.is-featured .cp-board-card-body{ padding:15px 0; }
	.cp-board-item.is-featured.has-thumb{ display:flex; }
	.cp-board-item:not(.is-featured) .cp-board-card-body{ padding:12px 0; }
	.cp-board-item:not(.is-featured) .cp-board-excerpt{ display:none; }
	.cp-board-item:not(.is-featured) .cp-board-read{ margin-top:7px !important; }
	.cp-board-modal-header{ padding:21px 18px 13px !important; }
	.cp-board-modal-meta{ flex-direction:column; }
	.cp-board-modal-highlight{ margin:0 18px 14px; }
	.cp-board-body{ margin:0 18px 20px !important; padding:15px; }
	.cp-board-modal-rsvp,.cp-board-modal-reactions,.cp-board-modal-actions{ margin-right:18px; margin-left:18px; }
	.cp-board-cta{ margin:0 18px 20px !important; }
	.cp-pass-card{ padding:19px; border-radius:17px; }
	.cp-pass-image{ height:230px; margin:-19px -19px 19px; border-radius:0; }
	.cp-pass-image-overlay{ gap:10px; padding:14px 15px; }
	.cp-pass-image-head{ align-items:center; }
	.cp-pass-image-loyalty{ grid-template-columns:44px minmax(0,1fr); gap:9px; padding:8px 9px; }
	.cp-pass-image-level{ width:42px; height:42px; }
	.cp-pass-image-tenure{ grid-column:2; display:flex; align-items:baseline; gap:5px; min-width:0; padding:0; border-left:0; text-align:left; }
	.cp-pass-image-tenure strong{ margin-top:0; }
	.cp-hero{ grid-template-columns:1fr; }
	.cp-loyalty{ grid-template-columns:52px minmax(0,1fr); gap:12px; padding:13px 13px 13px 16px; }
	.cp-loyalty-lap{ width:50px; height:50px; }
	.cp-loyalty-tenure{ grid-column:2; width:max-content; min-width:0; padding:6px 9px; text-align:left; }
	.cp-loyalty-tenure span,.cp-loyalty-tenure strong{ display:inline; }
	.cp-loyalty-tenure strong{ margin-left:5px; }
	.cp-perks-grid{ grid-template-columns:1fr; }
	.cp-section-heading{ align-items:start; flex-direction:column; gap:5px; }
	.cp-section-heading p{ text-align:left; }
	.cp-comps{ padding:15px; }
	.cp-comp-row{ align-items:center; }
	.cp-manage{ display:grid; grid-template-columns:1fr; gap:10px; }
	.cp-quick-reward-inline{ width:100%; max-width:none; }
	.cp-passes .cp-manage-btn{ width:100% !important; }
}
@media(max-width:560px){
	.cp-empty{ padding:24px 19px 22px; border-radius:12px; }
	.cp-empty h2{ font-size:1.45rem; }
	.cp-empty-main > p{ font-size:.8rem; }
	.cp-passes .cp-empty-btn{ width:100% !important; }
	.cp-shortcode{ padding-block:24px; }
	.cp-card{ padding:24px 20px 20px; }
	.cp-card-image{ margin:-24px -20px 19px; }
	.cp-pass-head{ align-items:flex-start; }
	.cp-status{ margin-top:2px; }
	.cp-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
	.cp-quick-reward{ grid-template-columns:1fr; gap:10px; }
	.cp-quick-reward-control{ justify-content:space-between; }
	.cp-quick-reward-status{ max-width:none; text-align:left; }
	.cp-sub-modal{ padding:10px; align-items:center; }
	.cp-sub-dialog{ padding:16px; max-height:calc(100vh - 20px); max-height:calc(100dvh - 20px); }
	.cp-sub-pass-image{ height:130px; margin:-16px -16px 12px; }
	.cp-sub-image-overlay{ gap:9px; padding:13px 15px; }
	.cp-sub-image-overlay .cp-status{ margin-right:0; }
	.cp-board-dialog{ padding:0; }
	.cp-member-pulse small{ white-space:normal; }
	.cp-next-event-actions > *{ flex:1 1 auto; }
	.cp-board-card-actions{ align-items:flex-start; flex-direction:column; }
	.cp-board-calendar-compact{ margin-top:0; }
	.cp-board-modal-actions{ align-items:stretch; flex-direction:column; }
	.cp-board-modal-actions > *{ width:100%; }
	.cp-sub-details{ grid-template-columns:repeat(2,minmax(0,1fr)); }
	.cp-sub-details > div:last-child:nth-child(odd){ grid-column:auto; }
	.cp-sub-actions{ flex-direction:row; }
	.cp-sub-action{ flex:1 1 calc(50% - 4px); text-align:center; }
	.cp-cancel-actions{ flex-direction:column; }
	.cp-cancel-overview{ grid-template-columns:1fr; }
	.cp-cancel-saving{ min-width:0; }
	.cp-reward-options{ grid-template-columns:1fr; }
	.cp-passes .cp-reward-save{ width:100% !important; }
}
@media(max-width:380px){
	.cp-sub-details{ grid-template-columns:1fr 1fr !important; }
}

/* Pass order confirmation on the WooCommerce thank-you page. WCS sanitises
   its message markup, so the stable link title identifies this one panel. */
.woocommerce-order-received .woocommerce-order > p:has(a[title="Manage your Pass"]),
.woocommerce-order-received .woocommerce-order-received > p:has(a[title="Manage your Pass"]){
	max-width:680px; margin:24px auto !important; padding:22px 24px !important;
	border:1px solid color-mix(in srgb,var(--e-global-color-primary,#3858e9) 22%,#e3e6eb);
	border-top:4px solid var(--e-global-color-primary,#3858e9); border-radius:15px;
	background:linear-gradient(145deg,color-mix(in srgb,var(--e-global-color-primary,#3858e9) 5%,#fff),#fff);
	box-shadow:0 12px 34px -24px rgba(16,24,40,.4); color:#4b5563;
	font-size:.88rem; line-height:1.55; text-align:center !important;
}
.woocommerce-order-received p:has(a[title="Manage your Pass"]) > strong{
	display:block; margin-bottom:5px; color:#121722; font-size:1.08rem; font-weight:850; line-height:1.25;
}
.woocommerce-order-received p:has(a[title="Manage your Pass"]) > a{
	display:flex; align-items:center; justify-content:center; width:max-content; min-height:42px;
	margin:14px auto 0; padding:10px 18px; border:1px solid var(--e-global-color-primary,#3858e9);
	border-radius:10px; background:var(--e-global-color-primary,#3858e9); color:#fff !important;
	font-size:.8rem; font-weight:800; line-height:1.25; text-align:center; text-decoration:none !important;
}
.woocommerce-order-received p:has(a[title="Manage your Pass"]) > a:hover{ filter:brightness(1.06); }
@media(max-width:560px){
	.woocommerce-order-received .woocommerce-order > p:has(a[title="Manage your Pass"]),
	.woocommerce-order-received .woocommerce-order-received > p:has(a[title="Manage your Pass"]){ padding:19px 17px !important; }
	.woocommerce-order-received p:has(a[title="Manage your Pass"]) > a{ width:100%; }
}
