/* HTA Community Suite — front-end (join, portal, account, directory, register).
   Uses the theme's CSS custom properties where available so it blends with the
   light/dark design, with sensible fallbacks. */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&display=swap');

.hta-cs {
	max-width: 960px;
	margin: 0 auto;
	padding: 2rem 1rem 4rem;
	color: hsl(var(--foreground, 222 47% 11%));
	font-size: 0.975rem;
	line-height: 1.6;
}
.hta-cs h2 { font-size: 1.6rem; margin: 0 0 0.5rem; }
.hta-cs h3 { font-size: 1.15rem; margin: 1.75rem 0 0.75rem; }
.hta-cs .hta-cs-lede { color: hsl(var(--muted-foreground, 215 16% 47%)); margin-top: 0; }

/* Banners */
.hta-cs-banner {
	border-radius: 0.6rem;
	padding: 0.85rem 1rem;
	margin-bottom: 1.25rem;
	font-size: 0.9rem;
	border: 1px solid transparent;
}
.hta-cs-banner-ok  { background: rgba(16,185,129,0.12); border-color: rgba(16,185,129,0.4); color: #047857; }
.hta-cs-banner-err { background: rgba(239,68,68,0.10);  border-color: rgba(239,68,68,0.4);  color: #b91c1c; }

/* Forms */
.hta-cs-form { display: flex; flex-direction: column; gap: 0.9rem; max-width: 640px; }
.hta-cs-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
.hta-cs-field { display: flex; flex-direction: column; gap: 0.3rem; font-size: 0.85rem; }
.hta-cs-field > span { font-weight: 600; color: hsl(var(--foreground, 222 47% 11%)); }
.hta-cs-field input:not([type=checkbox]):not([type=radio]),
.hta-cs-field select,
.hta-cs-field textarea {
	width: 100%;
	padding: 0.6rem 0.7rem;
	border: 1px solid hsl(var(--border, 214 32% 91%));
	border-radius: 0.55rem;
	background: hsl(var(--background, 0 0% 100%));
	color: inherit;
	font: inherit;
}
.hta-cs-field input[type=checkbox], .hta-cs-field input[type=radio] { width: auto; }
.hta-cs-field input:focus, .hta-cs-field select:focus, .hta-cs-field textarea:focus { outline: 2px solid hsl(var(--accent, 270 60% 50%)); outline-offset: 1px; }

.hta-cs-card-fields { border: 1px dashed hsl(var(--border, 214 32% 91%)); border-radius: 0.6rem; padding: 1rem; display: flex; flex-direction: column; gap: 0.7rem; }
.hta-cs-card-fields input { width: 100%; padding: 0.6rem 0.7rem; border: 1px solid hsl(var(--border, 214 32% 91%)); border-radius: 0.55rem; background: hsl(var(--background, 0 0% 100%)); color: inherit; font: inherit; }
.hta-cs-card-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.7rem; }

/* Buttons */
.hta-cs-btn, .hta-cs-btn-sm {
	display: inline-block;
	background: hsl(var(--accent, 270 60% 50%));
	color: #fff;
	border: 0;
	border-radius: 0.55rem;
	padding: 0.7rem 1.2rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	font-size: 0.9rem;
	width: fit-content;
}
.hta-cs-btn-sm { padding: 0.35rem 0.7rem; font-size: 0.8rem; }
.hta-cs-btn:hover, .hta-cs-btn-sm:hover { filter: brightness(1.06); }

/* Level grid (join) */
.hta-cs-level-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; margin-top: 1rem; }
.hta-cs-level-card {
	display: flex; flex-direction: column; gap: 0.3rem;
	border: 1px solid hsl(var(--border, 214 32% 91%));
	border-radius: 0.8rem; padding: 1.1rem; text-decoration: none;
	color: inherit; transition: border-color .15s, transform .15s;
}
.hta-cs-level-card:hover { border-color: hsl(var(--accent, 270 60% 50%)); transform: translateY(-2px); }
.hta-cs-level-name { font-weight: 700; }
.hta-cs-level-price { font-size: 1.25rem; font-weight: 700; color: hsl(var(--accent, 270 60% 50%)); }
.hta-cs-level-for { font-size: 0.8rem; color: hsl(var(--muted-foreground, 215 16% 47%)); }

/* Portal */
.hta-cs-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin: 1rem 0 2rem; }
.hta-cs-card-box { border: 1px solid hsl(var(--border, 214 32% 91%)); border-radius: 0.8rem; padding: 1.25rem; }
.hta-cs-card-box h3 { margin-top: 0; }
.hta-cs-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.hta-cs-links a { color: hsl(var(--accent, 270 60% 50%)); text-decoration: none; }

.hta-cs-status { display: inline-block; font-weight: 700; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.05em; padding: 0.2rem 0.6rem; border-radius: 999px; }
.hta-cs-status-active    { background: rgba(16,185,129,0.15); color: #047857; }
.hta-cs-status-pending   { background: rgba(234,179,8,0.18);  color: #a16207; }
.hta-cs-status-lapsed    { background: rgba(239,68,68,0.14);  color: #b91c1c; }
.hta-cs-status-suspended { background: rgba(107,114,128,0.18);color: #374151; }

/* Tables */
.hta-cs-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; margin-top: 0.5rem; }
.hta-cs-table th, .hta-cs-table td { text-align: left; padding: 0.6rem 0.7rem; border-bottom: 1px solid hsl(var(--border, 214 32% 91%)); }
.hta-cs-table th { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: hsl(var(--muted-foreground, 215 16% 47%)); }
.hta-cs-pill { display: inline-block; padding: 0.15rem 0.55rem; border-radius: 999px; font-size: 0.72rem; font-weight: 600; }
.hta-cs-pill-paid     { background: rgba(16,185,129,0.15); color: #047857; }
.hta-cs-pill-unpaid   { background: rgba(234,179,8,0.18);  color: #a16207; }
.hta-cs-pill-pending_renewal { background: rgba(234,179,8,0.18); color: #a16207; }
.hta-cs-pill-refunded { background: rgba(107,114,128,0.18);color: #374151; }

/* Directory */
.hta-cs-search { display: flex; gap: 0.5rem; margin-bottom: 1rem; max-width: 480px; }
.hta-cs-search input { flex: 1; padding: 0.6rem 0.7rem; border: 1px solid hsl(var(--border, 214 32% 91%)); border-radius: 0.55rem; background: hsl(var(--background, 0 0% 100%)); color: inherit; }
.hta-cs-count { color: hsl(var(--muted-foreground, 215 16% 47%)); font-size: 0.85rem; }
.hta-cs-dir-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0.85rem; }
.hta-cs-dir-card { border: 1px solid hsl(var(--border, 214 32% 91%)); border-radius: 0.7rem; padding: 1rem; display: flex; flex-direction: column; gap: 0.25rem; }
.hta-cs-dir-name { font-weight: 700; }
.hta-cs-dir-org { font-size: 0.82rem; color: hsl(var(--muted-foreground, 215 16% 47%)); }
.hta-cs-dir-level { font-size: 0.72rem; font-weight: 600; color: hsl(var(--accent, 270 60% 50%)); margin-top: 0.2rem; }

/* Tickets (event register) */
.hta-cs-tickets { border: 1px solid hsl(var(--border, 214 32% 91%)); border-radius: 0.7rem; padding: 1rem; display: flex; flex-direction: column; gap: 0.5rem; }
.hta-cs-tickets legend { font-weight: 700; padding: 0 0.4rem; }
.hta-cs-ticket { display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem; border-radius: 0.5rem; }
.hta-cs-ticket:hover { background: hsl(var(--muted, 210 40% 96%) / 0.5); }
.hta-cs-ticket-name { font-weight: 600; }
.hta-cs-ticket-price { color: hsl(var(--accent, 270 60% 50%)); font-weight: 600; }
.hta-cs-ticket-left { margin-left: auto; font-size: 0.78rem; color: hsl(var(--muted-foreground, 215 16% 47%)); }
.hta-cs-ticket.is-soldout { opacity: 0.6; }

@media (max-width: 560px) {
	.hta-cs-grid2, .hta-cs-card-row { grid-template-columns: 1fr; }
}

/* Stripe Elements checkout field. */
.hta-cs-stripe-wrap { margin: 10px 0 4px; }
.hta-cs-stripe-card {
	padding: 12px 14px;
	border: 1px solid var(--border, #d8dee4);
	border-radius: 8px;
	background: var(--background, #fff);
}
.hta-cs-stripe-error { color: #dc2626; font-size: 13px; margin: 6px 0 0; min-height: 1em; }

/* =========================================================================
   HTA Community Suite — front-end modern polish (Console-aligned).
   Additive layer; consumes the theme tokens so it blends with light/dark.
   ========================================================================= */

.hta-cs { max-width: 1040px; }
.hta-cs h2 { letter-spacing: -0.01em; font-weight: 800; }

/* Soft, flat surfaces with a subtle lift instead of flat-bordered boxes. */
.hta-cs-card-box,
.hta-cs-level-card,
.hta-cs-dir-card,
.hta-cs-tickets {
	border-radius: 14px;
	background: hsl(var(--card, 0 0% 100%));
	box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 8px 24px -16px rgba(15,23,42,.18);
	transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.hta-cs-card-box { padding: 1.4rem; }
.hta-cs-level-card:hover,
.hta-cs-dir-card:hover { box-shadow: 0 6px 20px -6px rgba(15,23,42,.16); transform: translateY(-2px); }

/* Portal: a cleaner dashboard rhythm. */
.hta-cs-card-box h3 {
	display: flex; align-items: center; gap: .5rem;
	font-size: 1rem; margin: 0 0 .9rem; padding-bottom: .7rem;
	border-bottom: 1px solid hsl(var(--border, 214 32% 91%));
}

/* Tables: lift into a rounded, surface-backed panel. */
.hta-cs-table { border: 1px solid hsl(var(--border, 214 32% 91%)); border-radius: 12px; overflow: hidden; border-collapse: separate; border-spacing: 0; }
.hta-cs-table thead th { background: hsl(var(--muted, 210 40% 96%) / .6); }
.hta-cs-table th, .hta-cs-table td { padding: .7rem .85rem; }
.hta-cs-table tbody tr:last-child td { border-bottom: 0; }
.hta-cs-table tbody tr:hover td { background: hsl(var(--muted, 210 40% 96%) / .4); }

/* Buttons: a touch more presence + clear focus ring. */
.hta-cs-btn, .hta-cs-btn-sm { border-radius: 10px; box-shadow: 0 1px 2px rgba(15,23,42,.12); }
.hta-cs-btn:focus-visible, .hta-cs-btn-sm:focus-visible { outline: 2px solid hsl(var(--accent, 270 60% 50%)); outline-offset: 2px; }

/* Level price + directory level use the accent consistently. */
.hta-cs-level-card { padding: 1.25rem; }
.hta-cs-level-price { letter-spacing: -0.02em; }

/* Fieldset inputs: match the rounded, focus-ring style. */
.hta-cs-field input:focus, .hta-cs-field select:focus, .hta-cs-field textarea:focus,
.hta-cs-card-fields input:focus {
	outline: none;
	border-color: hsl(var(--accent, 270 60% 50%));
	box-shadow: 0 0 0 3px hsl(var(--accent, 270 60% 50%) / .15);
}

@media (max-width: 640px) {
	.hta-cs { padding: 1.25rem 1rem 3rem; }
}

/* Members-only content gate. */
.hta-cs-gate { padding: 1rem 0; }
.hta-cs-gate-card {
	border: 1px solid hsl(var(--border, 214 32% 91%));
	border-radius: 14px; padding: 2rem 1.5rem; text-align: center;
	background: hsl(var(--muted, 210 40% 96%) / .4);
	max-width: 420px; margin: 0 auto;
}
.hta-cs-gate-ico { font-size: 1.6rem; display: block; margin-bottom: .5rem; }
.hta-cs-gate-card p { margin: .25rem 0 1rem; color: hsl(var(--foreground, 222 47% 11%)); font-weight: 600; }
.hta-cs-gate-sub { font-weight: 400 !important; font-size: .85rem; color: hsl(var(--muted-foreground, 215 16% 47%)); }
.hta-cs-gate-sub a { color: hsl(var(--accent, 270 60% 50%)); }

/* Custom field groups. */
.hta-cs-check-group, .hta-cs-radio-group { display: flex; flex-direction: column; gap: .35rem; margin-top: .35rem; }
.hta-cs-field label[style*="display:flex"] { font-size: .85rem; cursor: pointer; }
.hta-cs-field label[style*="display:flex"] input[type=checkbox],
.hta-cs-field label[style*="display:flex"] input[type=radio] { width: 16px; height: 16px; flex-shrink: 0; margin: 0; }
.hta-cs-address { display: flex; flex-direction: column; gap: .5rem; }
.hta-cs-address .hta-form-pair { display: flex; gap: .5rem; }
.hta-cs-address .hta-form-pair input { flex: 1; }

/* Membership add-ons. */
.hta-cs-addons { display: flex; flex-direction: column; gap: .5rem; }
.hta-cs-addon-card { display: flex; align-items: center; gap: .75rem; border: 1px solid hsl(var(--border, 214 32% 91%)); border-radius: 10px; padding: .85rem 1rem; cursor: pointer; transition: border-color .2s; }
.hta-cs-addon-card:hover { border-color: hsl(var(--primary, 224 71% 40%)); }
.hta-cs-addon-card input[type=checkbox] { flex-shrink: 0; width: 18px; height: 18px; }
.hta-cs-addon-body { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.hta-cs-addon-body strong { font-size: .95rem; }
.hta-cs-addon-body small { font-size: .8rem; color: hsl(var(--muted-foreground, 215 16% 47%)); }
.hta-cs-addon-price { font-weight: 700; font-size: .9rem; color: hsl(var(--accent, 270 60% 50%)); white-space: nowrap; }

/* Donate. */
.hta-cs-donate-amounts { display: flex; flex-wrap: wrap; gap: .6rem; }
.hta-cs-donate-chip {
	display: inline-flex; align-items: center; gap: .4rem;
	border: 1px solid hsl(var(--border, 214 32% 91%)); border-radius: 999px;
	padding: .5rem 1rem; font-weight: 700; cursor: pointer; transition: border-color .15s, background .15s;
}
.hta-cs-donate-chip:hover { border-color: hsl(var(--accent, 270 60% 50%)); }
.hta-cs-donate-chip input { accent-color: hsl(var(--accent, 270 60% 50%)); }

/* =========================================================================
   Event registration — editorial HTA experience.
   ========================================================================= */
.hta-cs-event-register {
	max-width: none;
	margin: 0;
	font-family: "Sora", ui-sans-serif, system-ui, -apple-system, sans-serif;
	font-size: 1rem;
	padding: clamp(5.75rem, 8vw, 7rem) 1.5rem 6rem;
	background:
		linear-gradient(to bottom, hsl(222 76% 16%) 0, hsl(222 76% 16%) 65px, transparent 65px),
		linear-gradient(hsl(var(--border) / .32) 1px, transparent 1px),
		linear-gradient(90deg, hsl(var(--border) / .32) 1px, transparent 1px),
		hsl(var(--background));
	background-size: auto, 64px 64px, 64px 64px, auto;
	background-repeat: no-repeat, repeat, repeat, no-repeat;
	color: hsl(var(--foreground));
}
.hta-reg-shell { width: min(1180px, 100%); margin: 0 auto; }
.hta-reg-featured-img { margin-bottom: 1.5rem; border-radius: 12px; overflow: hidden; }
.hta-reg-featured-img img { display: block; width: 100%; height: auto; max-height: 400px; object-fit: cover; }
.hta-reg-description { margin: 0 -2rem; padding: 2.5rem 2rem; background: #ffffff; border-radius: 16px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.hta-reg-description-inner { max-width: 800px; margin: 0 auto; color: #1a1a2e; font-size: 1rem; line-height: 1.75; }
.hta-reg-description-inner img { max-width: 100%; height: auto; border-radius: 10px; margin: 1rem auto; display: block; }
.hta-reg-description-inner h2,.hta-reg-description-inner h3 { margin: 1.5rem 0 0.75rem; color: #111; font-weight: 700; }
.hta-reg-description-inner p { margin-bottom: 1rem; }
.hta-reg-description-inner a { color: hsl(var(--primary)); text-decoration: underline; }
@media (max-width: 600px) { .hta-reg-description { margin: 0 -1rem; padding: 1.5rem 1rem; border-radius: 12px; } }
.hta-reg-icon { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; }
.hta-reg-back {
	display: inline-flex; align-items: center; gap: .55rem; margin-bottom: 1rem;
	font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .68rem;
	font-weight: 600; text-transform: uppercase; letter-spacing: .16em;
	color: hsl(var(--muted-foreground)); text-decoration: none;
}
.hta-reg-back svg { transform: rotate(180deg); transition: transform .18s ease; }
.hta-reg-back:hover { color: hsl(var(--primary)); }
.hta-reg-back:hover svg { transform: rotate(180deg) translateX(3px); }
.hta-reg-hero {
	position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0,1fr) 152px;
	gap: clamp(2rem, 6vw, 5.5rem); align-items: end; padding: clamp(2rem, 5vw, 4.5rem);
	background: hsl(222 76% 20%); color: hsl(var(--primary-foreground));
	box-shadow: 0 24px 70px -50px rgba(7,18,46,.8);
}
.hta-reg-hero::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(600px circle at 90% 10%, hsl(var(--accent) / .18), transparent 58%),
		linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
		linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px);
	background-size: auto, 64px 64px, 64px 64px;
}
.hta-reg-hero-copy, .hta-reg-date-block { position: relative; z-index: 1; }
.hta-reg-meta-line { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; margin-bottom: 1.15rem; }
.hta-reg-meta-line > span:first-child,
.hta-reg-kicker {
	margin: 0; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .67rem;
	font-weight: 600; line-height: 1.4; text-transform: uppercase; letter-spacing: .2em;
	color: hsl(var(--accent));
}
.hta-reg-status { padding: .28rem .55rem; border: 1px solid rgba(255,255,255,.2); font-size: .68rem; line-height: 1; }
.hta-reg-status.is-open { color: #a7f3d0; border-color: rgba(167,243,208,.35); background: rgba(16,185,129,.12); }
.hta-reg-status.is-closed { color: rgba(255,255,255,.72); background: rgba(255,255,255,.06); }
.hta-reg-hero h1 {
	max-width: 820px; margin: 0; color: inherit; font-family: Fraunces, Georgia, serif;
	font-size: clamp(2.45rem, 5.8vw, 5rem); font-weight: 300; line-height: 1.01; letter-spacing: -.035em;
}
.hta-reg-intro { max-width: 760px; margin-top: 1.35rem; color: hsl(var(--primary-foreground) / .72); font-size: 1rem; line-height: 1.75; }
.hta-reg-intro p { margin: 0; }
.hta-reg-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-top: 2.25rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.16); }
.hta-reg-fact { display: flex; gap: .7rem; align-items: flex-start; min-width: 0; }
.hta-reg-fact svg { margin-top: .15rem; color: hsl(var(--accent)); }
.hta-reg-fact span { display: flex; flex-direction: column; min-width: 0; }
.hta-reg-fact small { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: .58rem; text-transform: uppercase; letter-spacing: .16em; color: hsl(var(--primary-foreground) / .5); }
.hta-reg-fact strong { margin-top: .18rem; color: hsl(var(--primary-foreground) / .9); font-size: .78rem; font-weight: 500; line-height: 1.45; }
.hta-reg-date-block { display: flex; flex-direction: column; align-items: center; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.055); backdrop-filter: blur(8px); text-align: center; }
.hta-reg-date-block > span { width: 100%; padding: .55rem; background: hsl(var(--accent)); color: hsl(var(--accent-foreground)); font-family: "IBM Plex Mono",ui-monospace,monospace; font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; }
.hta-reg-date-block > strong { padding-top: .8rem; font-family: Fraunces,Georgia,serif; font-size: 3.8rem; font-weight: 300; line-height: 1; }
.hta-reg-date-block > small { padding: .15rem 0 .85rem; color: hsl(var(--primary-foreground) / .6); font-family: "IBM Plex Mono",ui-monospace,monospace; font-size: .64rem; }
.hta-reg-date-block > em { width: calc(100% - 1.2rem); padding: .75rem .25rem; border-top: 1px solid rgba(255,255,255,.14); color: hsl(var(--primary-foreground)); font-style: normal; font-weight: 700; }
.hta-reg-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 2rem; align-items: start; margin-top: 2rem; }
.hta-reg-main { min-width: 0; }
.hta-reg-steps { display: grid; grid-template-columns: repeat(3,1fr); margin-bottom: 1rem; border: 1px solid hsl(var(--border)); background: hsl(var(--card)); scroll-margin-top: 7.5rem; }
.hta-reg-steps button { display: flex; align-items: center; gap: .55rem; padding: .7rem .9rem; border: 0; border-right: 1px solid hsl(var(--border)); background: transparent; color: hsl(var(--muted-foreground)); font-family: "IBM Plex Mono",ui-monospace,monospace; font-size: .62rem; text-transform: uppercase; letter-spacing: .1em; text-align: left; }
.hta-reg-steps button:last-child { border-right: 0; }
.hta-reg-steps button:disabled { cursor: default; opacity: 1; }
.hta-reg-steps b { display: grid; place-items: center; width: 1.35rem; height: 1.35rem; border: 1px solid hsl(var(--border)); border-radius: 50%; font-size: .6rem; }
.hta-reg-steps .is-current { background: hsl(var(--primary) / .06); color: hsl(var(--primary)); font-weight: 700; }
.hta-reg-steps .is-current b { border-color: hsl(var(--primary)); background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.hta-reg-steps .is-complete { color: hsl(160 55% 32%); }
.hta-reg-steps .is-complete b { border-color: hsl(160 50% 38%); background: hsl(160 50% 94%); color: hsl(160 55% 28%); }
.hta-reg-form { max-width: none; gap: 1rem; }
.hta-reg-panel { padding: clamp(1.2rem,3vw,2rem); border: 1px solid hsl(var(--border)); background: hsl(var(--card)); box-shadow: 0 16px 40px -38px rgba(15,23,42,.75); }
.hta-reg-panel[hidden] { display: none; }
.hta-reg-panel-head { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.35rem; }
.hta-reg-panel-head > span { padding-top: .18rem; color: hsl(var(--accent)); font-family: "IBM Plex Mono",ui-monospace,monospace; font-size: .65rem; font-weight: 700; letter-spacing: .14em; }
.hta-reg-panel h2, .hta-reg-state h2, .hta-reg-summary h2 { margin: .15rem 0 0; color: hsl(var(--foreground)); font-family: Fraunces,Georgia,serif; font-size: clamp(1.55rem,3vw,2rem); font-weight: 400; line-height: 1.2; }
.hta-reg-panel .hta-cs-grid2 { gap: 1rem; }
.hta-reg-panel .hta-cs-field { gap: .45rem; color: hsl(var(--foreground)); }
.hta-reg-panel .hta-cs-field > span { font-size: .78rem; }
.hta-reg-panel .hta-cs-field > span em { color: hsl(var(--accent)); font-style: normal; }
.hta-reg-panel .hta-cs-field > small { color: hsl(var(--muted-foreground)); font-size: .7rem; }
.hta-reg-panel .hta-cs-field input { min-height: 3rem; border-radius: 2px; padding: .72rem .85rem; border-color: hsl(var(--input)); background: hsl(var(--background)); }
.hta-reg-panel .hta-cs-field input:hover { border-color: hsl(var(--foreground) / .35); }
.hta-cs-event-register .hta-cs-tickets { gap: .7rem; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.hta-cs-event-register .hta-cs-ticket { position: relative; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .8rem; align-items: center; padding: 1rem; border: 1px solid hsl(var(--border)); border-radius: 2px; background: hsl(var(--background)); cursor: pointer; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.hta-cs-event-register .hta-cs-ticket.is-locked { border-style: dashed; background: #f7f8fa; cursor: not-allowed; opacity: .78; }
.hta-cs-event-register .hta-cs-ticket.is-locked .hta-cs-ticket-marker { border-color: #8a92a8; }
.hta-cs-event-register .hta-cs-ticket-name em { display: inline-block; margin-left: .4rem; padding: .15rem .35rem; background: #eef0f5; color: #5f6880; font-family: var(--hta-font-sans,Arial,sans-serif); font-size: .62rem; font-style: normal; letter-spacing: .06em; text-transform: uppercase; }
.hta-cs-event-register .hta-cs-ticket:hover { border-color: hsl(var(--primary) / .55); background: hsl(var(--primary) / .025); }
.hta-cs-event-register .hta-cs-ticket:has(input:checked) { border-color: hsl(var(--primary)); background: hsl(var(--primary) / .045); box-shadow: inset 3px 0 0 hsl(var(--accent)); }
.hta-cs-event-register .hta-cs-ticket input { position: absolute; opacity: 0; pointer-events: none; }
.hta-cs-ticket-marker { display: grid; place-items: center; width: 1.15rem; height: 1.15rem; border: 1px solid hsl(var(--input)); border-radius: 50%; }
.hta-cs-ticket input:checked + .hta-cs-ticket-marker { border: 4px solid hsl(var(--primary)); background: hsl(var(--card)); }
.hta-cs-ticket-copy { display: flex; flex-direction: column; min-width: 0; }
.hta-cs-event-register .hta-cs-ticket-name { color: hsl(var(--foreground)); font-size: .9rem; }
.hta-cs-ticket-copy small { color: hsl(var(--muted-foreground)); font-size: .7rem; }
.hta-cs-event-register .hta-cs-ticket-price { color: hsl(var(--primary)); font-family: "IBM Plex Mono",ui-monospace,monospace; font-size: .78rem; }
.hta-cs-event-register .hta-cs-ticket-left { grid-column: 2 / -1; margin: -.45rem 0 0; color: hsl(var(--muted-foreground)); font-size: .66rem; }
.hta-cs-event-register .hta-cs-ticket.is-soldout { cursor: not-allowed; opacity: .58; }
.hta-reg-signed-in { display: flex; gap: .8rem; align-items: center; padding: 1rem; border: 1px solid hsl(var(--border)); background: hsl(var(--primary) / .035); }
.hta-reg-signed-in svg { color: hsl(var(--primary)); }
.hta-reg-signed-in span { display: grid; }
.hta-reg-signed-in small, .hta-reg-signed-in em { color: hsl(var(--muted-foreground)); font-size: .7rem; font-style: normal; }
.hta-reg-signed-in strong { color: hsl(var(--foreground)); }
.hta-reg-panel .hta-cs-banner { margin: 0; }
.hta-reg-panel-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid hsl(var(--border)); }
.hta-reg-panel-actions.is-end { justify-content: flex-end; }
.hta-reg-secondary { display: inline-flex; align-items: center; gap: .45rem; min-height: 42px; padding: .6rem .9rem; border: 1px solid hsl(var(--border)); color: hsl(var(--foreground)); font-size: .78rem; font-weight: 600; }
.hta-reg-secondary svg { transform: rotate(180deg); }
.hta-reg-confirm { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid hsl(var(--border)); }
.hta-reg-confirm > div { min-width: 0; padding: 1rem; border-right: 1px solid hsl(var(--border)); }
.hta-reg-confirm > div:last-child { border-right: 0; }
.hta-reg-confirm small,.hta-reg-confirm strong,.hta-reg-confirm span { display: block; }
.hta-reg-confirm small { margin-bottom: .45rem; font-family: "IBM Plex Mono",monospace; font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; color: hsl(var(--muted-foreground)); }
.hta-reg-confirm strong { font-size: .82rem; line-height: 1.4; color: hsl(var(--foreground)); }
.hta-reg-confirm span { margin-top: .25rem; font-size: .7rem; line-height: 1.4; color: hsl(var(--muted-foreground)); }
.hta-reg-payment { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid hsl(var(--border)); }
.hta-reg-payment h3 { margin: 0 0 1rem; font-family: Fraunces,Georgia,serif; font-size: 1.35rem; }
.hta-reg-submit { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: .4rem 0 0; }
.hta-reg-submit > p { display: flex; align-items: flex-start; gap: .5rem; max-width: 390px; margin: 0; color: hsl(var(--muted-foreground)); font-size: .7rem; line-height: 1.55; }
.hta-reg-submit > p svg { margin-top: .12rem; color: hsl(var(--primary)); }
.hta-cs-event-register .hta-cs-btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 2.9rem; border-radius: 2px; padding: .75rem 1.15rem; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); box-shadow: none; font-size: .78rem; }
.hta-cs-event-register .hta-cs-btn:hover { filter: none; background: hsl(var(--primary) / .9); }
.hta-cs-event-register .hta-cs-btn:disabled { cursor: not-allowed; opacity: .48; }
.hta-reg-summary { position: sticky; top: 6rem; }
.hta-reg-summary-card { padding: 1.5rem; border-top: 3px solid hsl(var(--accent)); background: hsl(var(--card)); box-shadow: 0 20px 50px -42px rgba(15,23,42,.8); }
.hta-reg-summary h2 { margin-top: .45rem; font-size: 1.35rem; }
.hta-reg-summary dl { display: grid; gap: 0; margin: 1.3rem 0 0; }
.hta-reg-summary dl > div { padding: .85rem 0; border-top: 1px solid hsl(var(--border)); }
.hta-reg-summary dt { display: flex; align-items: center; gap: .45rem; color: hsl(var(--muted-foreground)); font-family: "IBM Plex Mono",ui-monospace,monospace; font-size: .58rem; text-transform: uppercase; letter-spacing: .12em; }
.hta-reg-summary dd { margin: .3rem 0 0 1.55rem; color: hsl(var(--foreground)); font-size: .78rem; font-weight: 600; line-height: 1.45; }
.hta-reg-summary-ticket { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-top: 1px solid hsl(var(--border)); color: hsl(var(--foreground)); font-size: .78rem; }
.hta-reg-summary-ticket strong { color: hsl(var(--primary)); font-family: "IBM Plex Mono",ui-monospace,monospace; }
.hta-reg-trust { display: grid; gap: .55rem; padding-top: 1rem; border-top: 1px solid hsl(var(--border)); }
.hta-reg-trust span { display: flex; align-items: center; gap: .5rem; color: hsl(var(--muted-foreground)); font-size: .68rem; }
.hta-reg-trust svg { color: hsl(var(--primary)); }
.hta-reg-help { display: block; margin-top: .8rem; color: hsl(var(--muted-foreground)); font-size: .7rem; text-align: center; text-decoration: none; }
.hta-reg-help:hover { color: hsl(var(--primary)); text-decoration: underline; }
.hta-reg-state { padding: clamp(2rem,5vw,4rem); border: 1px solid hsl(var(--border)); background: hsl(var(--card)); text-align: center; }
.hta-reg-state-icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; margin: 0 auto 1rem; border: 1px solid hsl(var(--border)); background: hsl(var(--primary) / .055); color: hsl(var(--primary)); }
.hta-reg-state-icon svg { width: 1.45rem; height: 1.45rem; }
.hta-reg-state .hta-reg-kicker { display: block; }
.hta-reg-state h1, .hta-reg-state h2 { margin: .4rem 0 .75rem; font-family: Fraunces,Georgia,serif; font-size: clamp(2rem,4vw,3.25rem); font-weight: 300; line-height: 1.08; }
.hta-reg-state > p:not(.hta-reg-kicker) { max-width: 520px; margin: 0 auto 1.5rem; color: hsl(var(--muted-foreground)); }
.hta-reg-state-actions { display: flex; justify-content: center; align-items: center; gap: 1rem; }
.hta-reg-link { color: hsl(var(--primary)); font-size: .78rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 900px) {
	.hta-reg-hero { grid-template-columns: minmax(0,1fr) 124px; gap: 2rem; }
	.hta-reg-facts { grid-template-columns: 1fr 1fr; }
	.hta-reg-fact:last-child { grid-column: 1 / -1; }
	.hta-reg-layout { grid-template-columns: 1fr; }
	.hta-reg-summary { position: static; order: -1; }
	.hta-reg-summary-card { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
	.hta-reg-summary-card > .hta-reg-kicker, .hta-reg-summary-card > h2 { grid-column: 1 / -1; }
	.hta-reg-summary dl { margin-top: 1rem; }
	.hta-reg-summary-ticket { align-self: end; }
}
@media (max-width: 640px) {
	.hta-cs-event-register { padding: 5.25rem 1rem 3.5rem; background-size: auto, 48px 48px, 48px 48px, auto; }
	.hta-reg-back { margin-bottom: .75rem; }
	.hta-reg-hero { grid-template-columns: 1fr; padding: 1.5rem; }
	.hta-reg-hero h1 { font-size: clamp(2.25rem,12vw,3.4rem); }
	.hta-reg-intro { font-size: .88rem; }
	.hta-reg-facts { grid-template-columns: 1fr; gap: .85rem; margin-top: 1.5rem; }
	.hta-reg-fact:last-child { grid-column: auto; }
	.hta-reg-date-block { display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; }
	.hta-reg-date-block > span { width: auto; align-self: stretch; display: grid; place-items: center; padding: .7rem; }
	.hta-reg-date-block > strong { padding: .6rem 0 .6rem .8rem; font-size: 2.2rem; }
	.hta-reg-date-block > small { padding: .7rem; }
	.hta-reg-date-block > em { width: auto; padding: .8rem; border-top: 0; border-left: 1px solid rgba(255,255,255,.14); }
	.hta-reg-layout { margin-top: 1rem; gap: 1rem; }
	.hta-reg-summary-card { display: block; padding: 1.2rem; }
	.hta-reg-steps button { justify-content: center; padding: .65rem .2rem; font-size: .55rem; letter-spacing: .05em; }
	.hta-reg-steps b { display: none; }
	.hta-reg-panel { padding: 1.15rem; }
	.hta-reg-panel-head { margin-bottom: 1rem; }
	.hta-reg-submit { align-items: stretch; flex-direction: column; }
	.hta-reg-submit .hta-cs-btn { width: 100%; }
	.hta-reg-panel-actions { align-items: stretch; flex-direction: column-reverse; }
	.hta-reg-panel-actions.is-end { align-items: stretch; }
	.hta-reg-panel-actions .hta-cs-btn,.hta-reg-secondary { width: 100%; justify-content: center; }
	.hta-reg-confirm { grid-template-columns: 1fr; }
	.hta-reg-confirm > div { border-right: 0; border-bottom: 1px solid hsl(var(--border)); }
	.hta-reg-confirm > div:last-child { border-bottom: 0; }
	.hta-reg-state { padding: 2rem 1.25rem; }
	.hta-reg-state-actions { flex-direction: column; }
}

/* Membership application ------------------------------------------------ */
.hta-join-page {
	max-width: none;
	margin: 0;
	min-height: 100vh;
	padding: clamp(5.75rem, 8vw, 7rem) 0 5rem;
	background: linear-gradient(to bottom,hsl(222 76% 16%) 0,hsl(222 76% 16%) 65px,transparent 65px),linear-gradient(to right,hsl(221 25% 88%/.55) 1px,transparent 1px),linear-gradient(to bottom,hsl(221 25% 88%/.55) 1px,transparent 1px),hsl(42 32% 98%);
	background-size: auto,64px 64px,64px 64px,auto;
}
.hta-join-shell { width: min(1180px,calc(100% - 2rem)); margin: 0 auto; }
.hta-join-hero {
	display: grid; grid-template-columns: minmax(0,1fr) 260px; gap: clamp(2rem,6vw,5rem); align-items: end;
	padding: clamp(2rem,5vw,4.5rem); color: #fff;
	background: radial-gradient(circle at 86% 12%,hsl(270 55% 55%/.22),transparent 32%),hsl(222 76% 16%);
	border-bottom: 4px solid hsl(270 55% 55%);
}
.hta-join-chooser-hero { grid-template-columns: minmax(0,760px); }
.hta-join-back { display:inline-flex;align-items:center;gap:.5rem;margin-bottom:2.75rem;color:hsl(0 0% 100%/.74);font-family:"IBM Plex Mono",monospace;font-size:.68rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase; }
.hta-join-back:hover { color:#fff; }
.hta-join-back svg { transform:rotate(180deg); }
.hta-join-icon { width:1rem;height:1rem;flex:0 0 auto; }
.hta-join-kicker { margin:0 0 .7rem!important;font-family:"IBM Plex Mono",monospace;font-size:.67rem!important;font-weight:600;letter-spacing:.18em;line-height:1.3!important;text-transform:uppercase;color:hsl(270 60% 60%); }
.hta-join-hero h1 { max-width:820px;margin:0;font-family:'Sora',sans-serif;font-size:clamp(2.6rem,6vw,5.5rem);font-weight:400;letter-spacing:-.045em;line-height:.98;color:#fff; }
.hta-join-hero-copy>p:not(.hta-join-kicker),.hta-join-chooser-hero>div>p:last-child { max-width:650px;margin:1.25rem 0 0;font-size:1rem;line-height:1.7;color:hsl(0 0% 100%/.72); }
.hta-join-trust { display:flex;flex-wrap:wrap;gap:.7rem 1.25rem;margin-top:2rem; }
.hta-join-trust span { display:inline-flex;align-items:center;gap:.45rem;font-size:.76rem;color:hsl(0 0% 100%/.72); }
.hta-join-price-card { padding:1.75rem;border:1px solid hsl(0 0% 100%/.18);background:hsl(0 0% 100%/.07); }
.hta-join-price-card small,.hta-join-price-card span { display:block;font-size:.7rem;color:hsl(0 0% 100%/.62); }
.hta-join-price-card small { font-family:"IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase; }
.hta-join-price-card strong { display:block;margin:.65rem 0 .35rem;font-family:'Sora',sans-serif;font-size:3rem;font-weight:500;line-height:1; }
.hta-join-layout { display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:2rem;align-items:start;padding:2rem 0 0; }
.hta-join-main,.hta-join-summary-card,.hta-join-level-card { border:1px solid hsl(221 25% 85%);background:#fff;box-shadow:0 18px 50px hsl(222 50% 14%/.06); }
.hta-join-main { padding:clamp(1.4rem,4vw,3rem); }
.hta-join-section-heading,.hta-join-payment-heading { display:block!important;grid-template-columns:none!important; }
.hta-join-section-heading { margin-bottom:2rem; }
.hta-join-payment-heading { margin:2.5rem 0 1.25rem; }
.hta-join-section-heading h2,.hta-join-payment-heading h3 { margin:0;font-family:'Sora',sans-serif;font-weight:600;color:hsl(222 48% 16%); }
.hta-join-section-heading h2 { font-size:clamp(1.6rem,3vw,2.15rem); }
.hta-join-payment-heading h3 { font-size:1.5rem; }
.hta-join-section-heading div>p:last-child { margin:.4rem 0 0;color:hsl(220 12% 46%);font-size:.84rem; }
.hta-join-form { max-width:none; }
.hta-join-form .hta-cs-field { gap:.45rem; }
.hta-join-form .hta-cs-field>span { display:flex;justify-content:space-between;font-family:"IBM Plex Mono",monospace;font-size:.69rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:hsl(222 34% 24%); }
.hta-join-form .hta-cs-field>span em { font-style:normal;font-size:.58rem;color:hsl(220 10% 58%); }
.hta-join-form .hta-cs-field>small { color:hsl(220 10% 50%); }
.hta-join-form input[type=text],.hta-join-form input[type=email],.hta-join-form input[type=password],.hta-join-form input[type=tel],.hta-join-form select,.hta-join-form textarea { min-height:46px;border-radius:2px;border-color:hsl(221 20% 80%);background:hsl(42 32% 99%); }
.hta-join-form input:focus,.hta-join-form select:focus,.hta-join-form textarea:focus { border-color:hsl(222 65% 32%);box-shadow:0 0 0 3px hsl(222 65% 32%/.1);outline:none; }
.hta-join-free-note { display:flex;gap:.85rem;margin:2rem 0;padding:1rem;border:1px solid hsl(160 40% 78%);background:hsl(160 45% 96%);color:hsl(160 60% 25%); }
.hta-join-free-note svg { margin-top:.1rem; }
.hta-join-free-note strong,.hta-join-free-note span { display:block; }
.hta-join-free-note span { margin-top:.25rem;font-size:.78rem;line-height:1.5;color:hsl(160 30% 35%); }
.hta-join-consent { display:flex;gap:.7rem;align-items:flex-start;margin:1.5rem 0;font-size:.78rem;line-height:1.5;color:hsl(220 12% 43%); }
.hta-join-consent input { margin-top:.18rem;accent-color:hsl(222 65% 32%); }
.hta-join-consent a { color:hsl(222 65% 32%);text-decoration:underline; }
.hta-join-submit { display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid hsl(221 25% 88%); }
.hta-join-submit p { display:flex;gap:.5rem;align-items:flex-start;max-width:310px;margin:0;font-size:.7rem;line-height:1.45;color:hsl(220 10% 50%); }
.hta-join-submit .hta-cs-btn { min-height:46px;border-radius:2px; }
.hta-join-summary { position:sticky;top:5.5rem; }
.hta-join-summary-card { padding:1.65rem; }
.hta-join-summary-card h2 { margin:0;font-family:'Sora',sans-serif;font-size:1.7rem;font-weight:500;color:hsl(222 48% 16%); }
.hta-join-summary-card>p:not(.hta-join-kicker) { margin:.5rem 0 1.35rem;font-size:.78rem;line-height:1.55;color:hsl(220 10% 48%); }
.hta-join-summary-price { display:flex;align-items:baseline;justify-content:space-between;padding:1rem 0;border-block:1px solid hsl(221 25% 88%); }
.hta-join-summary-price span { font-size:.75rem;color:hsl(220 10% 45%); }
.hta-join-summary-price strong { font-family:'Sora',sans-serif;font-size:1.6rem;color:hsl(222 48% 16%); }
.hta-join-summary-card h3 { margin:1.35rem 0 .8rem;font-family:"IBM Plex Mono",monospace;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:hsl(220 10% 45%); }
.hta-join-summary-card ul { display:grid;gap:.7rem;margin:0;padding:0;list-style:none; }
.hta-join-summary-card li { display:flex;gap:.55rem;align-items:flex-start;font-size:.78rem;line-height:1.45;color:hsl(222 25% 28%); }
.hta-join-summary-card li svg { margin-top:.1rem;color:hsl(160 60% 32%); }
.hta-join-change { display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.5rem;padding-top:1.1rem;border-top:1px solid hsl(221 25% 88%);font-size:.75rem;font-weight:600;color:hsl(222 65% 32%); }
.hta-join-help { display:block;margin-top:.85rem;text-align:center;font-size:.72rem;color:hsl(220 10% 48%); }
.hta-join-level-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:2rem 0; }
.hta-join-level-card { display:flex;min-height:210px;flex-direction:column;padding:1.5rem;color:hsl(222 48% 16%);transition:border-color .2s,transform .2s,box-shadow .2s; }
.hta-join-level-card:hover { transform:translateY(-3px);border-color:hsl(222 65% 32%);box-shadow:0 22px 55px hsl(222 50% 14%/.11); }
.hta-join-level-top { display:flex;align-items:flex-start;justify-content:space-between;gap:1rem; }
.hta-join-level-top strong { font-family:'Sora',sans-serif;font-size:1.25rem;font-weight:500; }
.hta-join-level-price { margin-top:auto;font-family:'Sora',sans-serif;font-size:2rem;color:hsl(222 65% 32%); }
.hta-join-level-price small { margin-left:.3rem;font-family:Inter,sans-serif;font-size:.68rem;color:hsl(220 10% 48%); }
.hta-join-level-for { margin-top:.5rem;font-size:.76rem;line-height:1.5;color:hsl(220 10% 48%); }
@media(max-width:900px){.hta-join-hero,.hta-join-layout{grid-template-columns:1fr}.hta-join-price-card{width:min(100%,320px)}.hta-join-summary{position:static}.hta-join-level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.hta-join-page{padding-top:5.25rem;background-size:auto,40px 40px,40px 40px,auto}.hta-join-shell{width:min(100% - 1rem,1180px)}.hta-join-hero{gap:1.5rem;padding:1.5rem}.hta-join-back{margin-bottom:2rem}.hta-join-hero h1{font-size:clamp(2.25rem,13vw,3.4rem)}.hta-join-trust{display:grid}.hta-join-layout{gap:1rem;padding-top:1rem}.hta-join-main{padding:1.2rem}.hta-join-submit{align-items:stretch;flex-direction:column}.hta-join-submit .hta-cs-btn{width:100%}.hta-join-level-grid{grid-template-columns:1fr;gap:.75rem;padding-top:1rem}.hta-join-level-card{min-height:175px}}

/* Multi-gateway checkout. */
.hta-payment-choice { display:grid; gap:16px; }
.hta-payment-processors,.hta-affinipay-methods { display:flex; gap:9px; margin:0; padding:0; border:0; }
.hta-payment-processors legend,.hta-affinipay-methods legend { width:100%; margin-bottom:8px; color:var(--hta-muted,#667085); font-size:12px; font-weight:700; }
.hta-payment-processors label,.hta-affinipay-methods label { display:flex; align-items:center; gap:7px; padding:11px 14px; border:1px solid #d7dce4; border-radius:9px; background:#fff; cursor:pointer; }
.hta-payment-panel { display:none; padding:16px; border:1px solid #dfe3e9; border-radius:10px; background:#fff; }
.hta-payment-panel.is-active { display:block; }
.hta-affinipay-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.hta-affinipay-grid label,.hta-payment-panel > label { display:grid; gap:6px; color:#344054; font-size:12px; font-weight:650; }
.hta-hosted-field { min-height:44px; overflow:hidden; border:1px solid #cfd5df; border-radius:8px; background:#fff; }
.hta-hosted-field iframe { width:100% !important; min-height:42px !important; border:0 !important; }
.hta-save-method,.hta-directory-consent { display:flex; align-items:flex-start; gap:9px; color:#475467; font-size:13px; }
.hta-directory-consent span,.hta-directory-consent small { display:block; }
.hta-directory-consent small { margin-top:3px; color:#667085; }
@media(max-width:640px){.hta-payment-processors,.hta-affinipay-methods{flex-direction:column}.hta-affinipay-grid{grid-template-columns:1fr}}

/* Ticket type description on registration page. */
.hta-cs-ticket-desc { display: block; margin-top: 4px; color: hsl(var(--muted-foreground)); font-size: 0.8rem; line-height: 1.4; white-space: pre-wrap; }
