/* Ski Brule Ski Patrol — theme styles beyond theme.json. */

:root {
	--sbsp-red: var(--wp--preset--color--red);
	--sbsp-ink: var(--wp--preset--color--charcoal);
	--sbsp-line: var(--wp--preset--color--line);
	--sbsp-radius: 6px;
	--sbsp-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 8px 24px rgba(16, 24, 40, .06);
}

body { -webkit-font-smoothing: antialiased; }
img { height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.sbsp-main > .wp-block-post-content > *:first-child { margin-block-start: 0; }

/* ---------- Header ---------- */
.sbsp-header { position: sticky; top: 0; z-index: 50; box-shadow: 0 2px 0 var(--sbsp-red); }
.admin-bar .sbsp-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .sbsp-header { top: 46px; } }
.sbsp-header__inner { gap: 1.5rem; }
.sbsp-brand { display: block; line-height: 0; flex: 0 0 auto; }
.sbsp-brand__logo { width: clamp(150px, 16vw, 200px); height: auto; }
.sbsp-header__nav { gap: 1.4rem; }
.sbsp-nav .wp-block-navigation-item__content { padding: .35rem 0; text-decoration: none; }
.sbsp-nav .wp-block-navigation-item__content:hover { color: #fff; box-shadow: inset 0 -2px 0 var(--sbsp-red); }
.sbsp-nav .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--charcoal) !important; border: 0 !important; border-top: 3px solid var(--sbsp-red) !important;
	border-radius: 0 0 var(--sbsp-radius) var(--sbsp-radius); padding: .4rem 0 !important; min-width: 15rem !important;
	font-family: var(--wp--preset--font-family--body); text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 500;
}
.sbsp-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem 1.1rem !important; }
.sbsp-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: rgba(255,255,255,.06); box-shadow: none; }
.sbsp-header__cta .wp-block-button__link { padding: .6rem 1rem; font-size: 1rem; white-space: nowrap; }
/* Mobile menu */
.sbsp-nav .wp-block-navigation__responsive-container-open svg,
.sbsp-nav .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }
.sbsp-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.sbsp-nav .is-menu-open .wp-block-navigation__responsive-container-content { gap: 1rem; padding-top: 3rem; }
.sbsp-nav .is-menu-open .wp-block-navigation__submenu-container { border-top: 0 !important; padding: .25rem 0 .5rem 1rem !important; font-size: 1rem; }
@media (max-width: 599px) {
	.sbsp-header__cta .wp-block-button__link { padding: .5rem .7rem; font-size: .9rem; }
	.sbsp-brand__logo { width: 140px; }
	.sbsp-header__nav { gap: .9rem; }
}

/* ---------- Type helpers ---------- */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--display); font-weight: 700; text-transform: uppercase;
	letter-spacing: .14em; font-size: .95rem; color: var(--sbsp-red); margin-bottom: .25rem !important;
}
.is-style-eyebrow a { color: inherit; text-decoration: none; }
.is-style-lead { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--slate); }
.has-charcoal-background-color .is-style-lead, .has-night-background-color .is-style-lead, .sbsp-hero .is-style-lead { color: rgba(255,255,255,.88); }
.has-charcoal-background-color :where(h1,h2,h3,h4), .has-night-background-color :where(h1,h2,h3,h4), .sbsp-hero :where(h1,h2,h3) { color: #fff; }
.has-charcoal-background-color a:where(:not(.wp-element-button)), .has-night-background-color a:where(:not(.wp-element-button)) { color: #fff; }

/* ---------- Page head band ---------- */
.sbsp-pagehead { border-bottom: 1px solid var(--sbsp-line); position: relative; }
.sbsp-pagehead::before {
	content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--sbsp-red);
}
.sbsp-pagehead .wp-block-post-title { margin: 0; }
.sbsp-pagehead .wp-block-post-date { margin-top: .5rem; }
.sbsp-home-only { display: none; }
.blog .sbsp-home-only { display: block; color: var(--wp--preset--color--slate); margin-top: .75rem; }

/* ---------- Buttons ---------- */
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,.85); }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { background: #fff; color: var(--sbsp-ink); }
.wp-block-button.is-style-dark .wp-block-button__link { background: var(--sbsp-ink); color: #fff; }
.wp-block-button.is-style-dark .wp-block-button__link:hover { background: #000; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--sbsp-red); box-shadow: inset 0 0 0 2px currentColor; border: 0; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--sbsp-red); color: #fff; }

/* ---------- Hero ---------- */
.sbsp-hero { position: relative; isolation: isolate; }
.sbsp-hero.wp-block-cover { min-height: min(78vh, 720px); }
.sbsp-hero .wp-block-cover__inner-container { max-width: 1200px; width: 100%; margin-inline: auto; }
.sbsp-hero .wp-block-cover__inner-container > * { max-width: 40rem; margin-left: 0 !important; }
.sbsp-hero h1 { font-size: clamp(3rem, 8vw, 6rem); line-height: .92; margin: .25rem 0 1rem; text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.sbsp-hero .is-style-eyebrow { color: #fff; opacity: .92; }
.sbsp-hero .is-style-eyebrow::before { content: ""; display: inline-block; width: 2rem; height: 3px; background: var(--sbsp-red); vertical-align: middle; margin-right: .6rem; }
.sbsp-hero .is-style-lead { max-width: 34rem; }

/* ---------- Cards ---------- */
.is-style-card, .sbsp-card {
	background: #fff; border: 1px solid var(--sbsp-line); border-radius: var(--sbsp-radius);
	padding: clamp(1.25rem, 3vw, 1.75rem); box-shadow: var(--sbsp-shadow);
}
.sbsp-card { display: flex; flex-direction: column; gap: .5rem; height: 100%; border-top: 4px solid var(--sbsp-red); }
.sbsp-card .wp-block-post-title { margin: 0; line-height: 1.1; }
.sbsp-card .wp-block-post-title a { color: var(--sbsp-ink); text-decoration: none; }
.sbsp-card .wp-block-post-title a:hover { color: var(--sbsp-red); }
.sbsp-card .wp-block-post-excerpt { margin: 0; color: var(--wp--preset--color--slate); font-size: .975rem; }
.sbsp-card .wp-block-post-excerpt__more-link { font-weight: 600; }
.sbsp-cards { gap: 1.5rem !important; }

/* Stat / benefit tiles */
.sbsp-benefits { gap: 1rem !important; }
.sbsp-benefit { border-left: 4px solid var(--sbsp-red); padding: .25rem 0 .25rem 1rem; }
.sbsp-benefit h3 { margin: 0 0 .25rem; font-size: 1.4rem; }
.sbsp-benefit p { margin: 0; color: var(--wp--preset--color--slate); font-size: .975rem; }

/* ---------- Lists ---------- */
.is-style-checks { list-style: none; padding-left: 0; }
.is-style-checks li { position: relative; padding-left: 1.9rem; margin-bottom: .5rem; }
.is-style-checks li::before {
	content: "+"; position: absolute; left: 0; top: .1em; width: 1.25rem; height: 1.25rem; border-radius: 50%;
	background: var(--sbsp-red); color: #fff; font-weight: 700; font-size: .95rem; line-height: 1.25rem; text-align: center;
}
.is-style-links { list-style: none; padding-left: 0; }
.is-style-links li { margin-bottom: .4rem; }
.is-style-links a { text-decoration: none; }
.is-style-links a:hover { text-decoration: underline; }

/* Resource link list (documents) */
.sbsp-doclist { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--sbsp-line); }
.sbsp-doclist li { border-bottom: 1px solid var(--sbsp-line); margin: 0; }
.sbsp-doclist a { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem .25rem; text-decoration: none; color: var(--sbsp-ink); font-weight: 500; }
.sbsp-doclist a::after { content: "→"; color: var(--sbsp-red); font-weight: 700; }
.sbsp-doclist a[href$=".pdf"]::after { content: "PDF"; font-size: .75rem; letter-spacing: .08em; border: 1px solid currentColor; border-radius: 3px; padding: .1rem .35rem; align-self: center; }
.sbsp-doclist a[href$=".xlsx"]::after, .sbsp-doclist a[href$=".docx"]::after { content: "DOC"; font-size: .75rem; letter-spacing: .08em; border: 1px solid currentColor; border-radius: 3px; padding: .1rem .35rem; align-self: center; }
.sbsp-doclist a:hover { background: var(--wp--preset--color--snow); color: var(--sbsp-red); }

/* ---------- Details / FAQ ---------- */
.wp-block-details { margin-block-start: 0 !important; }
.wp-block-details + .wp-block-details { border-top: 1px solid var(--sbsp-line); }
.wp-block-details:last-of-type { border-bottom: 1px solid var(--sbsp-line); }
.wp-block-details summary {
	cursor: pointer; list-style: none; position: relative; padding-right: 2rem;
	font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 1.35rem; text-transform: uppercase; letter-spacing: .02em;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+"; position: absolute; right: .25rem; top: 50%; transform: translateY(-50%);
	color: var(--sbsp-red); font-size: 1.6rem; line-height: 1; transition: transform .2s;
}
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details summary:hover { color: var(--sbsp-red); }
.wp-block-details > :not(summary) { margin-top: .75rem; }

/* ---------- Tables ---------- */
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table td, .wp-block-table th { border: 0; border-bottom: 1px solid var(--sbsp-line); padding: .7rem .5rem; text-align: left; vertical-align: top; }
.wp-block-table thead { border: 0; }
.wp-block-table th { font-family: var(--wp--preset--font-family--display); text-transform: uppercase; letter-spacing: .04em; }
.is-style-roster td:first-child { font-weight: 600; width: 50%; }
.is-style-roster td:last-child { color: var(--wp--preset--color--slate); }

/* ---------- Leadership ---------- */
.sbsp-team-table { max-width: 920px; margin-left: 0 !important; }
.sbsp-team { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1px; background: var(--sbsp-line); border: 1px solid var(--sbsp-line); border-radius: var(--sbsp-radius); overflow: hidden; }
.sbsp-team > div { background: #fff; padding: 1rem 1.15rem; }
.sbsp-team dt { font-family: var(--wp--preset--font-family--display); text-transform: uppercase; font-weight: 700; letter-spacing: .03em; font-size: 1.05rem; color: var(--sbsp-red); }
.sbsp-team dd { margin: .2rem 0 0; font-weight: 500; }
.sbsp-team dd.is-open { color: var(--wp--preset--color--slate); font-style: italic; font-weight: 400; }

/* ---------- Upcoming events (sbsp_upcoming_events shortcode) ---------- */
.sbsp-events__list { list-style: none; margin: 0 0 1rem; padding: 0; }
.sbsp-events__item { display: flex; gap: 1rem; align-items: center; padding: .9rem 0; border-bottom: 1px solid var(--sbsp-line); }
.sbsp-events__item:first-child { border-top: 1px solid var(--sbsp-line); }
.sbsp-events__date {
	flex: 0 0 4.25rem; text-align: center; background: var(--sbsp-ink); color: #fff; border-radius: var(--sbsp-radius);
	padding: .5rem .25rem; line-height: 1; font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 1.35rem; text-transform: uppercase;
}
.sbsp-events__body { flex: 1; min-width: 0; line-height: 1.4; }
.sbsp-events__body a { color: var(--sbsp-ink); text-decoration: none; }
.sbsp-events__body a:hover { color: var(--sbsp-red); }
.sbsp-events__body small { color: var(--wp--preset--color--slate); }
.sbsp-events__btn { font-weight: 600; }
.has-charcoal-background-color .sbsp-events__date { background: var(--sbsp-red); }
.has-charcoal-background-color .sbsp-events__item { border-color: rgba(255,255,255,.14); }
.has-charcoal-background-color .sbsp-events__body a { color: #fff; }
.has-charcoal-background-color .sbsp-events__body a:hover { color: #ffb4ad; }
.has-charcoal-background-color .sbsp-events__body small { color: rgba(255,255,255,.7); }

/* ---------- PatrollerHQ band ---------- */
.sbsp-phq { position: relative; overflow: hidden; }
.sbsp-phq::after {
	content: ""; position: absolute; right: -4rem; top: 50%; width: 18rem; height: 18rem; transform: translateY(-50%);
	background:
		linear-gradient(var(--sbsp-red), var(--sbsp-red)) center / 30% 80% no-repeat,
		linear-gradient(var(--sbsp-red), var(--sbsp-red)) center / 80% 30% no-repeat;
	opacity: .14; pointer-events: none;
}
.sbsp-phq > * { position: relative; z-index: 1; }

/* ---------- Media ---------- */
.sbsp-photo img { border-radius: var(--sbsp-radius); box-shadow: var(--sbsp-shadow); }
.wp-block-image.is-style-rounded img { border-radius: var(--sbsp-radius); }

/* ---------- Gravity Forms ---------- */
.gform_wrapper.gravity-theme .gfield_label { font-weight: 600; }
.gform_wrapper.gravity-theme input[type=text], .gform_wrapper.gravity-theme input[type=email], .gform_wrapper.gravity-theme input[type=tel],
.gform_wrapper.gravity-theme input[type=number], .gform_wrapper.gravity-theme select, .gform_wrapper.gravity-theme textarea {
	border: 1px solid #c5ced8; border-radius: var(--sbsp-radius); padding: .65rem .75rem; font-size: 1rem; background: #fff;
}
.gform_wrapper.gravity-theme input:focus, .gform_wrapper.gravity-theme textarea:focus, .gform_wrapper.gravity-theme select:focus {
	outline: 2px solid var(--wp--preset--color--sky); outline-offset: 1px; border-color: transparent;
}
.gform_wrapper.gravity-theme .gform_footer input[type=submit], .gform_wrapper .gform_button {
	background: var(--sbsp-red) !important; color: #fff !important; border: 0 !important; border-radius: 4px !important;
	font-family: var(--wp--preset--font-family--display) !important; font-weight: 700 !important; font-size: 1.125rem !important;
	text-transform: uppercase; letter-spacing: .04em; padding: .85rem 1.6rem !important; cursor: pointer;
}
.gform_wrapper .gform_button:hover { background: var(--wp--preset--color--red-dark) !important; }
.gform_wrapper.gravity-theme .gform_validation_errors { border-radius: var(--sbsp-radius); }

/* ---------- The Events Calendar ---------- */
body .tribe-common, body .tribe-events, :root { --tec-color-accent-primary: #c4170c; --tec-color-accent-primary-hover: #9c1209; --tec-color-button-primary: #c4170c; --tec-color-button-primary-hover: #9c1209; --tec-color-accent-primary-background: rgba(196,23,12,.07); --tec-color-background-events-bar-submit-button: #c4170c; --tec-color-background-events-bar-submit-button-hover: #9c1209; --tec-color-accent-primary-multiday: rgba(196,23,12,.24); --tec-color-accent-primary-multiday-hover: rgba(196,23,12,.34); --tec-color-accent-primary-background-datepicker: #c4170c; --tec-color-border-active-month-grid-hover: #c4170c; --tec-font-family-sans-serif: Inter, sans-serif; --tec-font-family-sans-serif: Inter, sans-serif; }
.tribe-common .tribe-common-h1, .tribe-common .tribe-common-h2, .tribe-common .tribe-common-h3,
.tribe-events .tribe-events-calendar-list__event-title, .tribe-events-single-event-title {
	font-family: var(--wp--preset--font-family--display) !important; text-transform: uppercase;
}
.tribe-events-pg-template, .tribe-common-l-container { padding-top: var(--wp--preset--spacing--50) !important; }

/* ---------- Footer ---------- */
.sbsp-footer { font-size: .975rem; }
.sbsp-footer a { color: var(--wp--preset--color--ice); }
.sbsp-footer a:hover { color: #fff; }
.sbsp-brand--footer img { width: 210px; margin-bottom: .5rem; }
.sbsp-footer__h { font-size: 1.15rem !important; letter-spacing: .08em; margin-bottom: .75rem; }
.sbsp-footer__rule { width: 100% !important; max-width: none !important; margin: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--30) !important; opacity: .5; height: 1px; border: 0; }
.sbsp-footer__base p { opacity: .75; margin: 0; }

/* ---------- Misc ---------- */
.sbsp-content .wp-block-embed { margin-block: 2rem; }
.sbsp-split { gap: clamp(1.5rem, 5vw, 4rem) !important; align-items: center !important; }
.has-snow-background-color { color: var(--sbsp-ink); }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* T-shirt order quantity grid (GF 8) — moved here from inline page CSS. */
.sbsp-qty .instruction { display: none !important; }
.sbsp-qty input { width: 100% !important; text-align: center; }
#gform_fields_8 .sbsp-qty { grid-column: span 2 !important; }
@media (max-width: 640px) { #gform_fields_8 .sbsp-qty { grid-column: span 4 !important; } }

/* Callouts converted from Divi inline-styled paragraphs. */
.sbsp-callout { border-left: 5px solid var(--sbsp-red); background: var(--wp--preset--color--snow); box-shadow: none; }
.sbsp-callout p { margin: 0; }

/* Events page heading (TEC "HTML before calendar" setting). */
.sbsp-events-head { max-width: 1200px; margin: 0 auto; padding: var(--wp--preset--spacing--50) 0 0; }
.sbsp-events-head h1 { font-size: var(--wp--preset--font-size--xx-large); margin: 0 0 .5rem; }
.sbsp-events-head p { color: var(--wp--preset--color--slate); margin: 0; max-width: 46rem; }
.tribe-events-before-html + .tribe-events-header, .tribe-events-before-html { margin-bottom: 1rem; }
.sbsp-events-head { margin-bottom: 1.5rem; }
.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner { background-color: rgba(196, 23, 12, .14) !important; }
.tribe-events .tribe-events-calendar-month__multiday-event-bar-inner:hover,
.tribe-events .tribe-events-calendar-month__multiday-event--hover .tribe-events-calendar-month__multiday-event-bar-inner { background-color: rgba(196, 23, 12, .26) !important; }
.tribe-events .tribe-events-calendar-month__calendar-event-datetime, .tribe-events .tribe-events-calendar-list__event-datetime { color: var(--wp--preset--color--slate); }
