/* Region 8 Core blocks. Uses the Region 8 theme's colors when present, with fallbacks. */
:root {
	--r8c-midnight: var(--wp--preset--color--midnight, #1b2650);
	--r8c-midnight-deep: var(--wp--preset--color--midnight-deep, #111938);
	--r8c-red: var(--wp--preset--color--red, #ae2329);
	--r8c-red-tint: var(--wp--preset--color--red-tint, #fbedec);
	--r8c-gold: var(--wp--preset--color--gold, #c99a2e);
	--r8c-gold-tint: var(--wp--preset--color--gold-tint, #fbf4e2);
	--r8c-snow: var(--wp--preset--color--snow, #f3f5f8);
	--r8c-line: var(--wp--preset--color--line, #d8dce4);
	--r8c-granite: var(--wp--preset--color--granite, #4d5466);
	--r8c-ink: var(--wp--preset--color--ink, #1a1e29);
	--r8c-serif: var(--wp--preset--font-family--serif, Georgia, serif);
	--r8c-radius: 4px;
}

.r8-icon { flex: none; vertical-align: -0.2em; }
.r8-empty { color: var(--r8c-granite); font-style: italic; margin: 0; }
.r8-editor-empty { padding: 1rem; border: 1px dashed var(--r8c-line); color: var(--r8c-granite); font-size: 0.875rem; border-radius: var(--r8c-radius); }

/* ----- Event lists ----- */
.r8-events__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.r8-events.is-grid .r8-events__list { grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.r8-event {
	display: grid; grid-template-columns: 4.75rem minmax(0, 1fr); gap: 1.1rem; align-items: start;
	padding: 1rem; margin: 0 !important;
	background: #fff; border: 1px solid var(--r8c-line); border-radius: var(--r8c-radius);
	position: relative;
}
.r8-events.is-list .r8-event { border-width: 0 0 1px; border-radius: 0; padding: 1.1rem 0; background: transparent; }
.r8-events.is-list .r8-event:first-child { border-top: 1px solid var(--r8c-line); }
.r8-event__date {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	min-height: 4.75rem; padding: 0.5rem 0.25rem;
	background: var(--r8c-midnight); color: #fff; border-radius: var(--r8c-radius);
	border-bottom: 4px solid var(--r8c-gold);
	text-align: center; line-height: 1;
}
.r8-event__month { font-size: 0.8125rem; font-weight: 600; opacity: 0.92; }
.r8-event__day { font-family: var(--r8c-serif); font-size: 1.6rem; font-weight: 700; margin: 0.2rem 0 0.15rem; white-space: nowrap; }
.r8-event__day:has(svg) { margin: 0.35rem 0 0; }
.r8-event__year { font-size: 0.75rem; opacity: 0.75; }
.r8-event.is-past .r8-event__date { background: var(--r8c-snow); color: var(--r8c-midnight); border-bottom-color: var(--r8c-line); }
.r8-event.is-cancelled .r8-event__title a { text-decoration: line-through; }
.r8-event__date.is-badge { background: var(--r8c-snow); color: var(--r8c-midnight); border-bottom-color: var(--r8c-red); }
.r8-event__title { margin: 0 !important; font-size: 1.25rem !important; line-height: 1.25 !important; }
.r8-event__title a { color: var(--r8c-midnight); text-decoration: none; }
.r8-event__title a::after { content: ""; position: absolute; inset: 0; } /* whole card is clickable */
.r8-event__title a:hover { color: var(--r8c-red); text-decoration: underline; }
.r8-event__title a:focus-visible { outline: none; }
.r8-event:has(.r8-event__title a:focus-visible) { outline: 3px solid var(--r8c-gold); outline-offset: 2px; }
.r8-event__meta { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; margin: 0.4rem 0 0 !important; color: var(--r8c-granite); font-size: 0.9375rem; }
.r8-event__meta > span { display: inline-flex; gap: 0.35rem; align-items: center; }
.r8-event__badges { margin: 0.5rem 0 0 !important; display: flex; gap: 0.4rem; flex-wrap: wrap; }
.r8-event__excerpt { margin: 0.5rem 0 0 !important; font-size: 0.9375rem; }
.r8-badge { display: inline-block; font-size: 0.75rem; font-weight: 650; padding: 0.15rem 0.5rem; border-radius: 999px; background: var(--r8c-gold-tint); color: #6b4f0e; }
.r8-badge.is-alert { background: var(--r8c-red-tint); color: var(--r8c-red); }
.r8-events__more { margin: 1rem 0 0 !important; }
.r8-more-link { display: inline-flex; gap: 0.4rem; align-items: center; font-weight: 600; }

/* ----- Event page ----- */
.r8-event-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin: 0.75rem 0 0 !important; font-size: 1.0625rem; }
.r8-event-meta > span { display: inline-flex; gap: 0.45rem; align-items: center; }
.r8-details { position: sticky; top: 1.5rem; padding: 1.4rem; border: 1px solid var(--r8c-line); border-top: 4px solid var(--r8c-midnight); border-radius: var(--r8c-radius); background: #fff; }
.admin-bar .r8-details { top: calc(1.5rem + 32px); }
.r8-details__note { margin: 0 0 1rem !important; padding: 0.6rem 0.8rem; background: var(--r8c-snow); border-radius: var(--r8c-radius); font-size: 0.9375rem; }
.r8-details__note.is-alert { background: var(--r8c-red-tint); color: var(--r8c-red); font-weight: 600; }
.r8-details__list { margin: 0; display: grid; gap: 1rem; }
.r8-details__list dt { display: flex; gap: 0.4rem; align-items: center; font-weight: 700; font-size: 0.875rem; color: var(--r8c-midnight); }
.r8-details__list dd { margin: 0.2rem 0 0 1.65rem; }
.r8-details__buttons { margin-top: 1.25rem !important; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.r8-details__cal { margin: 1rem 0 0 !important; font-size: 0.875rem; color: var(--r8c-granite); }
@media (max-width: 781px) { .r8-details { position: static; } }

/* ----- Schools ----- */
.r8-schools__state + .r8-schools__state { margin-top: 2.5rem; }
.r8-schools__state-name { border-bottom: 2px solid var(--r8c-midnight); padding-bottom: 0.35rem; margin-bottom: 1rem !important; }
.r8-schools__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); }
.r8-school { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1rem; padding: 1.1rem; border: 1px solid var(--r8c-line); border-radius: var(--r8c-radius); background: #fff; scroll-margin-top: 6rem; }
.r8-school:target { border-color: var(--r8c-gold); box-shadow: 0 0 0 3px var(--r8c-gold-tint); }
.r8-school__logo { width: 5.5rem; height: 5.5rem; object-fit: contain; display: grid; place-items: center; border-radius: var(--r8c-radius); background: #fff; }
.r8-school__logo.is-placeholder, .r8-org__logo.is-placeholder { background: var(--r8c-snow); color: var(--r8c-midnight); font-family: var(--r8c-serif); font-size: 2rem; font-weight: 700; }
.r8-school__name { margin: 0 !important; font-size: 1.2rem !important; line-height: 1.25 !important; }
.r8-school__name a { color: var(--r8c-midnight); }
.r8-school__instructor { margin: 0.35rem 0 0 !important; font-weight: 600; }
.r8-school__instructor a { color: var(--r8c-ink); text-decoration-color: var(--r8c-line); }
.r8-school__instructor a:hover { color: var(--r8c-red); }
.r8-school__address { margin: 0.5rem 0 0 !important; font-size: 0.9375rem; line-height: 1.5; }
.r8-school__links { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; margin: 0.6rem 0 0 !important; font-size: 0.875rem; font-weight: 600; }
.r8-school-details .r8-school { grid-template-columns: 8rem minmax(0, 1fr); border-top: 4px solid var(--r8c-midnight); padding: 1.5rem; }
.r8-school-details .r8-school__logo { width: 8rem; height: 8rem; }
.r8-school-details .r8-school__name { font-size: 1.5rem !important; }
@media (max-width: 600px) { .r8-school-details .r8-school { grid-template-columns: 1fr; } }

/* Home: one card per school name */
.r8-orgs { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }
.r8-orgs > li { margin: 0 !important; }
.r8-org__link { display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: 0.9rem; align-items: center; height: 100%; padding: 0.9rem; border: 1px solid var(--r8c-line); border-radius: var(--r8c-radius); background: #fff; color: inherit; text-decoration: none !important; transition: border-color 0.15s ease; }
.r8-org__link:hover { border-color: var(--r8c-midnight); }
.r8-org__link:hover .r8-org__name { color: var(--r8c-red); }
.r8-org__logo { width: 4rem; height: 4rem; object-fit: contain; display: grid; place-items: center; border-radius: var(--r8c-radius); }
.r8-org__name { margin: 0 !important; font-size: 1.0625rem !important; line-height: 1.25 !important; color: var(--r8c-midnight); }
.r8-org__places { display: flex; flex-wrap: wrap; gap: 0.15rem 0.75rem; margin-top: 0.25rem; font-size: 0.875rem; color: var(--r8c-granite); }

/* ----- Social feeds ----- */
.r8-feeds { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); align-items: start; }
.r8-feeds.is-single { grid-template-columns: minmax(0, 32rem); }
.r8-feed { border: 1px solid var(--r8c-line); border-radius: var(--r8c-radius); background: #fff; overflow: hidden; }
.r8-feed__head { padding: 0.85rem 1rem; border-bottom: 1px solid var(--r8c-line); }
.r8-feed__name { margin: 0 !important; font-size: 1.0625rem !important; }
.r8-feed__place { margin: 0.15rem 0 0 !important; font-size: 0.8125rem; color: var(--r8c-granite); }
.r8-feed__frame { min-height: var(--r8-feed-h, 560px); display: grid; place-items: center; background: var(--r8c-snow); }
.r8-feed__frame iframe { width: 100%; max-width: 500px; height: var(--r8-feed-h, 560px); display: block; }
.r8-feed .instagram-media { margin: 0.75rem auto !important; }
.r8-feed__follow { display: flex; gap: 1rem; flex-wrap: wrap; padding: 0.75rem 1rem; margin: 0 !important; border-top: 1px solid var(--r8c-line); font-size: 0.875rem; font-weight: 600; }

/* ----- Contact form ----- */
.r8-contact { scroll-margin-top: 6rem; }
.r8-contact__form { display: grid; gap: 0.25rem; max-width: 42rem; }
.r8-contact__row { display: grid; gap: 0 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.r8-field { margin: 0 0 0.9rem !important; display: grid; gap: 0.3rem; }
.r8-field label { font-weight: 600; font-size: 0.9375rem; }
.r8-req { font-weight: 400; color: var(--r8c-granite); font-size: 0.8125rem; }
.r8-field :is(input, textarea, select) { font: inherit; width: 100%; padding: 0.6rem 0.75rem; border: 1px solid #9aa1b1; border-radius: var(--r8c-radius); background: #fff; color: var(--r8c-ink); box-sizing: border-box; }
.r8-field :is(input, textarea, select):focus { outline: 3px solid var(--r8c-gold); outline-offset: 1px; border-color: var(--r8c-midnight); }
.r8-contact__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.r8-contact__notice { padding: 0.8rem 1rem; border-radius: var(--r8c-radius); margin-bottom: 1rem; font-weight: 600; }
.r8-contact__notice.is-success { background: #e9f6ec; color: #1e5c2f; border-left: 4px solid #2e7d43; }
.r8-contact__notice.is-error { background: var(--r8c-red-tint); color: var(--r8c-red); border-left: 4px solid var(--r8c-red); }

/* ----- Breadcrumbs ----- */
.r8-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem; font-size: 0.875rem; }
.r8-breadcrumbs li { display: inline-flex; align-items: center; gap: 0.25rem; margin: 0 !important; }
.r8-breadcrumbs li + li::before { content: "/"; opacity: 0.55; margin-right: 0.15rem; }
.r8-breadcrumbs a { color: inherit; text-decoration: none; }
.r8-breadcrumbs a:hover { text-decoration: underline; }
.r8-breadcrumbs [aria-current] span { opacity: 0.75; }

/* ----- Guide sidebar: section menu, table of contents, documents ----- */
.r8-aside-title { font-size: 0.8125rem; font-weight: 700; color: var(--r8c-granite); margin: 0 0 0.5rem !important; letter-spacing: 0.01em; }
.r8-section-nav, .r8-toc, .r8-doclinks { font-size: 0.9375rem; }
.r8-section-nav + .r8-toc, .r8-toc + .r8-doclinks, .r8-section-nav + .r8-doclinks { margin-top: 1.5rem; }
.r8-section-nav ul, .r8-toc ol, .r8-doclinks ul { list-style: none; margin: 0; padding: 0; }
.r8-section-nav li, .r8-toc li, .r8-doclinks li { margin: 0 !important; }
.r8-section-nav a { display: block; padding: 0.45rem 0.75rem; border-radius: var(--r8c-radius); color: var(--r8c-ink); text-decoration: none; font-weight: 600; }
.r8-section-nav a:hover { background: var(--r8c-snow); color: var(--r8c-red); }
.r8-section-nav .is-current a { background: var(--r8c-midnight); color: #fff; }
.r8-toc ol { border-left: 2px solid var(--r8c-line); }
.r8-toc a { display: block; padding: 0.3rem 0 0.3rem 0.85rem; margin-left: -2px; border-left: 2px solid transparent; color: var(--r8c-granite); text-decoration: none; line-height: 1.35; }
.r8-toc .is-level-3 a { padding-left: 1.6rem; font-size: 0.875rem; }
.r8-toc a:hover { color: var(--r8c-red); }
.r8-toc a[aria-current] { color: var(--r8c-midnight); border-left-color: var(--r8c-red); font-weight: 650; }
.r8-toc summary { cursor: pointer; list-style: none; }
.r8-toc summary::-webkit-details-marker { display: none; }
@media (max-width: 959px) {
	.r8-toc__details { border: 1px solid var(--r8c-line); border-radius: var(--r8c-radius); padding: 0.75rem 1rem; background: #fff; }
	.r8-toc summary { margin: 0 !important; display: flex; justify-content: space-between; align-items: center; color: var(--r8c-midnight); font-size: 1rem; }
	.r8-toc summary::after { content: "+"; font-size: 1.4rem; line-height: 1; }
	.r8-toc details[open] summary::after { content: "–"; }
	.r8-toc details[open] summary { margin-bottom: 0.6rem !important; }
}
@media (min-width: 960px) { .r8-toc summary { pointer-events: none; } }
.r8-doclinks a { display: flex; gap: 0.5rem; align-items: flex-start; padding: 0.35rem 0; text-decoration: none; line-height: 1.35; }
.r8-doclinks a:hover span { text-decoration: underline; }
.r8-doclinks .r8-icon { margin-top: 0.1rem; color: var(--r8c-red); }

/* ----- Embeds from the old site ----- */
.r8-map { position: relative; width: 100%; max-width: 46rem; margin-block: 1rem; border: 1px solid var(--r8c-line); border-radius: var(--r8c-radius); overflow: hidden; }
.r8-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.r8-embed-form iframe { min-height: 500px; }
