/* School Sponsorship Manager — front-end styles */

.ssm-wall, .ssm-tier-pricing, .ssm-signup-form {
	--ssm-ink: #1D2620;
	--ssm-paper: #F6F1E4;
	--ssm-line: rgba(29,38,32,0.14);
	font-family: inherit;
	color: var(--ssm-ink);
}

.ssm-empty {
	padding: 24px;
	text-align: center;
	background: var(--ssm-paper);
	border-radius: 6px;
	color: rgba(29,38,32,0.6);
}

/* ---- Sponsor wall ---- */

.ssm-tier-group {
	margin-bottom: 36px;
}

.ssm-tier-heading {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0 0 14px;
	color: var(--ssm-tier-color, var(--ssm-ink));
}
.ssm-tier-heading::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--ssm-tier-color, var(--ssm-ink));
	flex: none;
}
.ssm-tier-heading::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--ssm-line);
}

.ssm-tier-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 14px;
}

.ssm-plaque {
	background: #fff;
	border: 1px solid var(--ssm-line);
	border-top: 4px solid var(--ssm-tier-color, var(--ssm-ink));
	border-radius: 4px;
	padding: 16px 14px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.ssm-logo img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	border-radius: 6px;
}

.ssm-logo-fallback {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--ssm-tier-color, #4C7A8F);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 20px;
}

/* Logo size variants — set per-tier under Sponsors -> Tiers, or forced via
   the logo_size="small|medium|large" shortcode/widget attribute. */
.ssm-tier-grid.ssm-logo-small .ssm-logo img,
.ssm-tier-grid.ssm-logo-small .ssm-logo-fallback {
	width: 56px;
	height: 56px;
}
.ssm-tier-grid.ssm-logo-medium .ssm-logo img,
.ssm-tier-grid.ssm-logo-medium .ssm-logo-fallback {
	width: 96px;
	height: 96px;
}
.ssm-tier-grid.ssm-logo-large .ssm-logo img,
.ssm-tier-grid.ssm-logo-large .ssm-logo-fallback {
	width: 140px;
	height: 140px;
}
.ssm-tier-grid.ssm-logo-medium .ssm-plaque,
.ssm-tier-grid.ssm-logo-large .ssm-plaque {
	padding: 22px 18px;
}
.ssm-tier-grid.ssm-logo-large .ssm-logo-fallback {
	font-size: 40px;
}
.ssm-tier-grid.ssm-logo-medium .ssm-logo-fallback {
	font-size: 28px;
}

.ssm-logo-link {
	display: inline-block;
}

.ssm-biz-name {
	font-weight: 700;
	font-size: 13.5px;
	text-decoration: none;
	color: var(--ssm-ink);
}
a.ssm-biz-name:hover {
	text-decoration: underline;
}

.ssm-blurb {
	font-size: 11.5px;
	color: rgba(29,38,32,0.6);
	margin: 0;
}

.ssm-visit-link {
	font-size: 12px;
	font-weight: 700;
	color: var(--ssm-tier-color, #A63D2F);
	text-decoration: none;
	margin-top: 2px;
}
.ssm-visit-link:hover {
	text-decoration: underline;
}

.ssm-profile-link {
	font-size: 11px;
	color: rgba(29,38,32,0.55);
	text-decoration: underline;
}
.ssm-profile-link:hover {
	color: var(--ssm-ink);
}

/* ---- Tier pricing cards ---- */

.ssm-tier-pricing {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

.ssm-price-card {
	flex: 1 1 200px;
	background: var(--ssm-tier-color, var(--ssm-ink));
	color: #fff;
	border-radius: 6px;
	padding: 20px 18px;
}

.ssm-price-name {
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 700;
	font-size: 15px;
	margin-bottom: 6px;
}

.ssm-price-amount {
	font-size: 26px;
	font-weight: 700;
}
.ssm-price-amount span {
	font-size: 13px;
	font-weight: 400;
	opacity: 0.8;
}

.ssm-price-annual {
	font-size: 12px;
	opacity: 0.8;
	margin-bottom: 10px;
}

.ssm-perks {
	margin: 10px 0 0;
	padding-left: 18px;
	font-size: 13px;
	line-height: 1.6;
	opacity: 0.95;
}

/* ---- Signup form ---- */

.ssm-signup-form p {
	margin-bottom: 14px;
}

.ssm-signup-form label {
	display: block;
	font-weight: 700;
	font-size: 13px;
	margin-bottom: 4px;
}

.ssm-signup-form input[type="text"],
.ssm-signup-form input[type="email"],
.ssm-signup-form input[type="url"],
.ssm-signup-form select,
.ssm-signup-form textarea {
	width: 100%;
	padding: 9px 10px;
	border: 1px solid var(--ssm-line);
	border-radius: 4px;
	font-size: 14px;
	font-family: inherit;
	background: #fff;
	color: var(--ssm-ink);
}

.ssm-signup-form button {
	background: #A63D2F;
	color: #fff;
	border: none;
	padding: 11px 20px;
	border-radius: 4px;
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
}
.ssm-signup-form button:hover {
	background: #8C3126;
}

.ssm-form-notice {
	padding: 12px 16px;
	border-radius: 4px;
	margin-bottom: 18px;
	font-size: 14px;
}
.ssm-form-notice-success {
	background: #E6F3EA;
	color: #1a7f37;
	border: 1px solid #b8e0c4;
}
.ssm-form-notice-error {
	background: #FBEAEA;
	color: #b32d2e;
	border: 1px solid #f0c2c2;
}

/* ---- Dedicated sponsor page (Gold, by default) ---- */

.ssm-sponsor-page {
	max-width: 720px;
	margin: 0 auto;
	padding: 48px 20px 64px;
}

.ssm-sponsor-hero {
	text-align: center;
	padding: 40px 24px;
	border-radius: 8px;
	background: color-mix(in srgb, var(--ssm-tier-color, #20392F) 12%, #fff);
	border: 1px solid var(--ssm-tier-color, #20392F);
	margin-bottom: 32px;
}

.ssm-sponsor-hero-logo img {
	width: 140px;
	height: 140px;
	object-fit: contain;
	margin: 0 auto 16px;
	border-radius: 8px;
}

.ssm-sponsor-hero-tier {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: 12px;
	font-weight: 700;
	color: var(--ssm-tier-color, #20392F);
	margin-bottom: 8px;
}

.ssm-sponsor-hero-name {
	font-size: 32px;
	margin: 0 0 10px;
	color: #1D2620;
}

.ssm-sponsor-hero-blurb {
	font-size: 16px;
	color: rgba(29,38,32,0.7);
	max-width: 46ch;
	margin: 0 auto 18px;
}

.ssm-sponsor-hero-cta {
	display: inline-block;
	background: var(--ssm-tier-color, #A63D2F);
	color: #fff;
	text-decoration: none;
	padding: 12px 22px;
	border-radius: 4px;
	font-weight: 700;
	font-size: 14px;
}
.ssm-sponsor-hero-cta:hover {
	opacity: 0.9;
}

.ssm-sponsor-body {
	font-size: 16px;
	line-height: 1.7;
	margin-bottom: 32px;
}

.ssm-sponsor-back {
	text-align: center;
}
.ssm-sponsor-back a {
	color: rgba(29,38,32,0.6);
	text-decoration: none;
	font-size: 14px;
}
.ssm-sponsor-back a:hover {
	text-decoration: underline;
}
