/*
Theme Name: Jere Bear
Theme URI: 
Author: MARCOM
Author URI: 
Description: A theme for UGA's President's Annual Report
Requires at least: 7.1
Tested up to: 7.1
Requires PHP: 5.7
Version: 1.0.16
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jere-bear
Tags:
*/

/* Global layout */
/* The root layout puts a block gap on every top-level block
   (:where(.wp-site-blocks) > * { margin-block-start: 24px }), which opens a
   strip of page background under the site header. That gap is wanted between
   the other top-level blocks, so it is cleared only on whichever block follows
   the header -- the page header on the report and page templates, <main> on
   page-home, index and 404. :where() carries no specificity, so a plain class
   selector wins without !important. */
.wp-site-blocks > header.wp-block-template-part + * {
	margin-block-start: 0;
}

/* The site header casts its own shadow onto whatever follows it. Before this,
   the only shadow here was the page header's spread bleeding up under the
   white bar, which read as a faint haze and was missing entirely on pages
   without a page header. Positioning and the z-index lift the header above
   the page header so the photo cannot paint over the shadow. Two layers: a
   tight one that defines the edge, and a wide soft one for depth. */
.wp-site-blocks > header.wp-block-template-part {
	position: relative;
	z-index: 10;
	box-shadow:
		0 2px 5px rgba(0, 0, 0, 0.24),
		0 10px 24px rgba(0, 0, 0, 0.3);
}

/* Hero (Home page) */
.hero {
	position: relative;
}

.hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 5px;
	background-color: var(--wp--preset--color--bulldog-red);
}

/* The Cover block's content-position flex alignment shrink-wraps its child
   to content width; force the content panel to span the full hero width. */
.hero .wp-block-cover__inner-container {
	width: 100%;
}

.hero .wp-block-cover__inner-container > .wp-block-group {
	width: 100%;
	max-width: none;
}

/* Pre-launch placeholder (Coming Soon page) */
/* This template has no header template part, so the rule above can't clear
   the root block gap under the UGA header; clear it on <main> directly. */
.wp-site-blocks > .placeholder-main {
	margin-block-start: 0;
}

.placeholder-hero h1,
.placeholder-hero p {
	text-wrap: balance;
}

.placeholder-hero {
	position: relative;
}

.placeholder-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 5px;
	background-color: var(--wp--preset--color--bulldog-red);
}

/* Same shrink-wrap issue as .hero: give the panel a fixed reading width. */
.placeholder-hero .wp-block-cover__inner-container {
	width: 100%;
	max-width: 860px;
}

/* About the Report (Home page) */
.wp-block-quote cite {
	display: block;
	margin-top: 24px;
	font-family: var(--wp--preset--font-family--merriweather-sans);
	font-size: var(--wp--preset--font-size--medium);
	font-style: normal;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--muted-black);
}

blockquote  {
	margin-left: 0;
	margin-right: 0;
}

.wp-block-quote cite strong {
	color: var(--wp--preset--color--arch-black);
	font-weight: 700;
}

.wp-block-embed.video-embed {
	box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
}

/* By the Numbers (Home page) */
.by-the-numbers-section .is-style-section-title {
	color: var(--wp--preset--color--chapel-bell-white);
}

.by-the-numbers-section .is-style-section-heading {
	color: var(--wp--preset--color--chapel-bell-white);
	font-style: normal;
}

/* Stat font sizes are set in cqi, scaled from the Figma frame (458px columns),
   so each figure keeps the design's proportions at any column width. */
.by-the-numbers-section .wp-block-column {
	container-type: inline-size;
}

/* Figma sets the label text boxes to 342px of the 458px column, which is what
   gives the design its line breaks. */
.by-the-numbers-section .wp-block-column .wp-block-group > p:not(:first-child) {
	max-width: 74.67%;
	margin-inline: auto;
}

/* The 2026 Report (Home page) */
.accomplishments-panel {
	overflow: hidden;
	border-radius: 10px;
}

/* Figma paints the tint as a wide radial gradient rather than a flat overlay,
   which the Cover block's overlay control can't express on its own. */
.accomplishments-panel > .wp-block-cover__background {
	background: radial-gradient(
		ellipse 50% 50% at 50% 50%,
		rgba(186, 12, 47, 0.8) 0%,
		rgba(135, 9, 34, 0.8) 50%,
		rgba(84, 5, 21, 0.8) 100%
	);
	opacity: 1;
}

.accomplishments-panel__buttons.wp-block-buttons {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

.accomplishments-panel__buttons .wp-block-button,
.accomplishments-panel__buttons .wp-block-button__link {
	width: 100%;
	text-align: center;
}

@media (min-width: 782px) {
	.accomplishments-panel__split > .wp-block-column:last-child {
		padding-left: 48px;
		border-left: 4px solid var(--wp--preset--color--chapel-bell-white);
	}

	.accomplishments-panel__buttons.wp-block-buttons {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Page header (shared by every single template) */
.page-header {
	box-shadow: 0 4px 10px 5px rgba(0, 0, 0, 0.25);
}

/* The design darkens only the lower half of the photo so the title stays
   legible without flattening the image, which a uniform Cover overlay would. */
/* !important is required here: core generates the overlay color utility
   class (e.g. .has-arch-black-background-color) with !important, which
   would otherwise always beat this override and hide the photo. */
.page-header > .wp-block-cover__background {
	background: linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0) 0%,
		rgba(0, 0, 0, 0) 40%,
		rgba(0, 0, 0, 0.45) 62%,
		rgba(0, 0, 0, 0.85) 100%
	) !important;
	opacity: 1 !important;
}

/* Cover's content-position alignment shrink-wraps its child to content width. */
.page-header .wp-block-cover__inner-container {
	width: 100%;
}

.page-header__content {
	width: 100%;
	padding: 25px 5%;
}

.page-header__content p {
	line-height: 1.2;
}

.page-header__breadcrumbs {
	width: 100%;
	padding: 0px 5%;
}

.page-header__eyebrow {
	margin: 0;
	color: rgba(255, 255, 255, 0.75);
	letter-spacing: 0.15em;
	line-height: 1.5;
	text-transform: uppercase;
}

/* 64px sits above the theme's size scale, so it is expressed here rather than
   as a per-block override in the editor.
   The longest section name, ACCOMPLISHMENTS, measures 10.33em in Oswald 700
   with this tracking, and the title has 90vw to sit in, so the size has to
   stay under 8.7vw for the word to fit on one line. 8vw leaves a margin and
   reaches the 64px cap at an 800px viewport. */
.page-header__title {
	margin: 0;
	font-size: clamp(1.5rem, 8vw, 4rem);
	overflow-wrap: break-word;
	font-weight: 700;
	letter-spacing: 0.15em;
	line-height: 1.5;
	text-transform: uppercase;
}

/* Bio Card */
.bio-card {
	margin-block: 0;
}

.bio-card__title {
	position: relative;
	margin: 0;
	padding-bottom: 24px;
	font-family: var(--wp--preset--font-family--merriweather);
	/* ACCOMPLISHMENTS measures 12.95em in Merriweather 700 with this tracking,
	   and the title has 90vw to sit in, so the size has to stay under 6.95vw
	   to keep the word on one line. The break is a last resort for viewports
	   narrower than any current phone. */
	font-size: clamp(1.125rem, 6.5vw, 3rem);
	overflow-wrap: break-word;
	font-weight: 700;
	letter-spacing: 0.15em;
	line-height: 1.1;
	text-transform: uppercase;
}

.bio-card__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100px;
	height: 5px;
	background-color: var(--wp--preset--color--bulldog-red);
}

.bio-card__name,
.bio-card__role,
.bio-card__takeaway-label {
	margin: 0;
}

/* The global quote style is sized for the homepage; the bio card sets it back
   to body scale so it reads as a caption beside the portrait. */
.bio-card .wp-block-quote {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
}

.bio-card .wp-block-quote p {
	margin: 0;
}

.bio-card__photo {
	margin: 0;
}

.bio-card__photo img {
	width: 100%;
	box-shadow: 2px 2px 10px 5px rgba(0, 0, 0, 0.15);
}

/* Single entry body */
.entry__heading {
	margin: 0;
}

/* .entry__content > * + * {
	margin-block-start: 24px;
}

.entry__content p {
	letter-spacing: 0.02em;
	line-height: 1.75;
} */

.entry__signature {
	margin-block: 40px 0;
}

.entry__signature img {
	max-width: 320px;
	height: auto;
}

/* Images an editor places in a report item's own content, plus the featured
   image the template shows above it. Scoped by the singular body class, so
   Pages, signatures and the Card block's images in section listings are
   untouched. Bio-card portraits keep their own softer shadow (.bio-card__photo). */
.single-report_item .wp-block-post-content img,
.single-report_item .wp-block-post-featured-image:not(.bio-card__photo) img {
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.6);
}

/* Letters without a signature uploaded yet would otherwise leave an empty
   image box at the end of the body. */
.entry__signature:has(img[src=""]),
.entry__signature:has(img:not([src])) {
	display: none;
}

/* The closing rule exists to separate the article from the report pagination,
   so it goes away when the pagination renders nothing. */
.entry__footer:not(:has(.jere-bear-report-pagination)) {
	display: none;
}

.wp-block-button__link.has-icon-download::after {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin-left: 12px;
	vertical-align: middle;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.5l-5-5 1.41-1.41L11 11.67V3h2v8.67l2.59-2.58L17 10.5l-5 5zM5 19v-2h14v2H5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.5l-5-5 1.41-1.41L11 11.67V3h2v8.67l2.59-2.58L17 10.5l-5 5zM5 19v-2h14v2H5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Buttons — hover and keyboard focus swap red and white across the text and
   background, with a slight grow. The border keeps its resting color. The
   global styles emit their button rules inside :where(), so these plain
   selectors win without !important. */
.wp-block-button__link {
	transition:
		background-color 150ms ease-in-out,
		color 150ms ease-in-out,
		transform 150ms ease-in-out;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus-visible {
	transform: scale(1.01);
}

/* Fill (default). It has no border, so an inset shadow stands in for one: a
   white edge on the red fill. Unlike a real border it doesn't change the
   button's size. The outer shadow repeats the one theme.json gives every
   button. */
.wp-block-button:not(.is-style-outline):not(.is-style-pill-outline) .wp-block-button__link {
	box-shadow:
		inset 0 0 0 3px var(--wp--preset--color--chapel-bell-white),
		5px 5px 10px 0 rgba(0, 0, 0, 0.15);
}

.wp-block-button:not(.is-style-outline):not(.is-style-pill-outline) .wp-block-button__link:hover,
.wp-block-button:not(.is-style-outline):not(.is-style-pill-outline) .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--chapel-bell-white);
	color: var(--wp--preset--color--bulldog-red);
}

/* Outline: white fill, red text and border at rest. */
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--bulldog-red);
	color: var(--wp--preset--color--chapel-bell-white);
}

/* Pill Outline: transparent fill with white text and border, for use on red. */
.wp-block-button.is-style-pill-outline .wp-block-button__link:hover,
.wp-block-button.is-style-pill-outline .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--chapel-bell-white);
	color: var(--wp--preset--color--bulldog-red);
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link {
		transition: none;
	}

	.wp-block-button__link:hover,
	.wp-block-button__link:focus-visible {
		transform: none;
	}
}


/* Honor Roll — rules applied to authored core blocks. The donor lists style
   themselves from blocks/honor-roll-group/honor-roll-group.css. */

/* The heading sits on the left with a rule filling the rest of the row. The
   Roster pages below reuse it, so both names carry the same treatment. */
.honor-roll-rule-heading,
.roster-heading {
	display: flex;
	align-items: center;
	margin-bottom: 0;
	color: var(--wp--preset--color--bulldog-red);
	font-family: var(--wp--preset--font-family--merriweather-sans);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

.honor-roll-rule-heading::after,
.roster-heading::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	margin-left: 1rem;
	background-color: var(--wp--preset--color--arch-black);
}

.honor-roll-intro,
.honor-roll-daterange,
.honor-roll-legend {
	color: var(--wp--preset--color--sanford);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.7;
}

.honor-roll-daterange {
	font-family: var(--wp--preset--font-family--merriweather-sans);
	font-weight: 600;
	letter-spacing: 0.04em;
}

.honor-roll-note {
	padding: 32px;
	border-radius: 2px;
	background-color: color-mix(in srgb, var(--wp--preset--color--creamery) 28%, transparent);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.7;
}

.honor-roll-note__reasons {
	padding-left: 1.5rem;
	font-style: italic;
}

.honor-roll-note__reasons li {
	margin-bottom: 0.5em;
}

/* Roster — the Administration and board listings. Rules applied to authored
   core blocks, the same way the Honor Roll page styles itself, so the names and
   titles stay editable content rather than a block's hardcoded output. */

.roster-asof {
	margin-block-start: 0;
	color: var(--wp--preset--color--sanford);
	font-family: var(--wp--preset--font-family--merriweather-sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.04em;
}

.roster-name {
	font-family: var(--wp--preset--font-family--merriweather-sans);
	font-weight: 700;
	line-height: 1.3;
}

/* The title reads as a caption under the name: same family, lightest weight the
   face ships, and the muted ink used elsewhere for supporting text. */
.roster-role {
	color: var(--wp--preset--color--sanford);
	font-family: var(--wp--preset--font-family--merriweather-sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 300;
	line-height: 1.5;
}


/* Report navigation
   Rendered by jere-bear/report-nav, which builds itself from the report being
   viewed rather than from a saved menu, so it stays correct across years. */
.jere-bear-report-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1rem, 2.5vw, 2.25rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

/* The nav sits in a header that sets a white link colour for its own elements
   via .wp-elements-N a:where(:not(.wp-element-button)). That selector scores
   (0,1,1), so a bare .jere-bear-report-nav__link rule loses to it and the links
   render white on the white bar. Qualifying with the nav class outscores it and
   lets the links follow the block's own text colour. */
.jere-bear-report-nav a.jere-bear-report-nav__link {
	color: inherit;
	font-family: var(--wp--preset--font-family--oswald, inherit);
	font-size: var(--wp--preset--font-size--small, 0.9rem);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	position: relative;
	display: inline-block;
	padding-bottom: 4px;
	/* Resting links sit back a step; hover, focus and the current section
	   come up to full strength. */
	opacity: 0.65;
	transition: opacity 0.15s ease;
}

/* The underline is a bar scaled from a left-hand origin, so it draws in left
   to right on hover and, with the same origin, retracts right to left when the
   pointer leaves. */
.jere-bear-report-nav a.jere-bear-report-nav__link::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: var(--wp--preset--color--bulldog-red, currentColor);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.25s ease;
}

/* Falls back to Arch Black so the nav is legible even if no text colour is set
   on the block. */
.jere-bear-report-nav {
	color: var(--wp--preset--color--arch-black, #000);
}

.jere-bear-report-nav a.jere-bear-report-nav__link:hover,
.jere-bear-report-nav a.jere-bear-report-nav__link:focus-visible {
	color: var(--wp--preset--color--arch-black, #000);
	opacity: 1;
}

.jere-bear-report-nav a.jere-bear-report-nav__link:hover::after,
.jere-bear-report-nav a.jere-bear-report-nav__link:focus-visible::after,
.jere-bear-report-nav__item.is-current a.jere-bear-report-nav__link::after {
	transform: scaleX(1);
}

.jere-bear-report-nav__item.is-current a.jere-bear-report-nav__link {
	color: var(--wp--preset--color--arch-black, #000);
	opacity: 1;
}

/* Collapsed report navigation
   report-nav.js adds .is-collapsed once the links would no longer fit on one
   line beside the site title, and .is-measuring for the instant it lays them
   out on one line to find out. Without JavaScript neither class is ever set and
   the toggle stays hidden, so the list wraps as before. */
.jere-bear-report-nav.is-measuring .jere-bear-report-nav__list {
	flex-wrap: nowrap;
	white-space: nowrap;
}

.jere-bear-report-nav__toggle[hidden] {
	display: none;
}

.jere-bear-report-nav__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: -10px -10px -10px 0;
	padding: 0;
	border: 0;
	border-radius: 2px;
	background: transparent;
	color: inherit;
	cursor: pointer;
}

.jere-bear-report-nav__toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--bulldog-red, currentColor);
	outline-offset: 2px;
}

.jere-bear-report-nav__toggle-icon {
	position: relative;
	display: block;
	width: 22px;
	height: 16px;
}

.jere-bear-report-nav__toggle-icon span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: currentColor;
	transition: transform 0.2s ease, opacity 0.2s ease, top 0.2s ease;
}

.jere-bear-report-nav__toggle-icon span:nth-child(1) { top: 0; }
.jere-bear-report-nav__toggle-icon span:nth-child(2) { top: 7px; }
.jere-bear-report-nav__toggle-icon span:nth-child(3) { top: 14px; }

/* The bars fold into a close mark while the menu is open. */
.jere-bear-report-nav.is-open .jere-bear-report-nav__toggle-icon span:nth-child(1) {
	top: 7px;
	transform: rotate(45deg);
}

.jere-bear-report-nav.is-open .jere-bear-report-nav__toggle-icon span:nth-child(2) {
	opacity: 0;
}

.jere-bear-report-nav.is-open .jere-bear-report-nav__toggle-icon span:nth-child(3) {
	top: 7px;
	transform: rotate(-45deg);
}

.jere-bear-report-nav .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* The open menu drops as a full-width panel from the bottom of the header row,
   over the page rather than pushing it down. The row is the positioning
   context so the panel spans it edge to edge whatever the nav's own width. */
*:has(> .jere-bear-report-nav.is-collapsed) {
	position: relative;
}

.jere-bear-report-nav.is-collapsed .jere-bear-report-nav__list {
	display: none;
}

.jere-bear-report-nav.is-collapsed.is-open .jere-bear-report-nav__list {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 100;
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 0.5rem var(--wp--preset--spacing--50, 1.5rem) 1rem;
	background: var(--wp--preset--color--chapel-bell-white, #fff);
	border-top: 3px solid var(--wp--preset--color--bulldog-red, currentColor);
	box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
}

.jere-bear-report-nav.is-collapsed .jere-bear-report-nav__item + .jere-bear-report-nav__item {
	border-top: 1px solid rgba(0, 0, 0, 0.1);
}

/* Full-width rows with a 44px minimum height make each link an easy tap. The
   underline used in the bar gives way to a red rule at the start of the row. */
.jere-bear-report-nav.is-collapsed a.jere-bear-report-nav__link {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0.5rem 0 0.5rem 0.75rem;
	border-left: 3px solid transparent;
}

.jere-bear-report-nav.is-collapsed a.jere-bear-report-nav__link::after {
	display: none;
}

.jere-bear-report-nav.is-collapsed a.jere-bear-report-nav__link:hover,
.jere-bear-report-nav.is-collapsed a.jere-bear-report-nav__link:focus-visible,
.jere-bear-report-nav.is-collapsed .jere-bear-report-nav__item.is-current a.jere-bear-report-nav__link {
	border-left-color: var(--wp--preset--color--bulldog-red, currentColor);
}

@media (prefers-reduced-motion: reduce) {
	.jere-bear-report-nav__toggle-icon span,
	.jere-bear-report-nav a.jere-bear-report-nav__link,
	.jere-bear-report-nav a.jere-bear-report-nav__link::after {
		transition: none;
	}
}

/* Breadcrumbs
   Ported from the custom jere-bear/breadcrumbs block that core/breadcrumbs
   replaced once the report became a real post hierarchy. Core supplies the
   layout and the separator — emitted as content: var(--separator)/"" so the
   slash carries empty alt text and is not read aloud — and this is the UGA
   typography and colour on top of it. */
.wp-block-breadcrumbs ol {
	font-family: var(--wp--preset--font-family--oswald);
	font-size: var(--wp--preset--font-size--caption);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	line-height: 1.6;
}

.wp-block-breadcrumbs li {
	color: var(--wp--preset--color--bulldog-red);
}

/* Core dims the separator to 0.7; the design carries it at full strength. */
.wp-block-breadcrumbs li:not(:last-child)::after {
	color: var(--wp--preset--color--bulldog-red);
	opacity: 1;
}

.wp-block-breadcrumbs li:last-child,
.wp-block-breadcrumbs [aria-current="page"] {
	color: var(--wp--preset--color--stegeman);
}

.wp-block-breadcrumbs a {
	color: inherit;
	text-decoration: none;
}

.wp-block-breadcrumbs a:hover,
.wp-block-breadcrumbs a:focus-visible {
	text-decoration: underline;
}

/* Page header breadcrumbs
   The bar sits on Bulldog Red, where the red-on-red above it is invisible, so
   the colours are restated for that context. Matches uga.edu/about/facts:
   every crumb white, the slash undimmed and a little smaller than the text,
   and the current page the only thing carried at reduced opacity. Oswald,
   uppercase and the 12px caption size already come from the rules above and
   are what that page uses too. Scoped to the bar so the breadcrumbs still
   rendering inside <main> keep the red treatment. */
.page-header__breadcrumbs .wp-block-breadcrumbs ol {
	letter-spacing: 0.1em;
	line-height: 1;
}

.page-header__breadcrumbs .wp-block-breadcrumbs li,
.page-header__breadcrumbs .wp-block-breadcrumbs a {
	color: var(--wp--preset--color--chapel-bell-white);
}

.page-header__breadcrumbs .wp-block-breadcrumbs li:not(:last-child)::after {
	color: var(--wp--preset--color--chapel-bell-white);
	font-size: 0.6rem;
	margin: 0 0.5rem;
	opacity: 1;
}

/* Reduced opacity on the current page only -- uga.edu's hsla(0, 0%, 100%, .5),
   written as rgba to match .page-header__eyebrow above. */
.page-header__breadcrumbs .wp-block-breadcrumbs li:last-child,
.page-header__breadcrumbs .wp-block-breadcrumbs [aria-current="page"] {
	color: rgba(255, 255, 255, 0.5);
}

/* Coming Soon page only: remove the root block gap (2rem) above the footer. */
.page-id-579 .wp-site-blocks > .wp-block-jere-bear-uga-footer {
	margin-block-start: 0;
}

/* Back to top
   Printed on every page from inc/back-to-top.php. A Bulldog Red disc with a
   white arrow, ringed by a hairline that fills as the page is read. It rests
   just below its final position and fades up once the reader has scrolled a
   screen; until then it is visibility: hidden so it cannot take focus. */
.jere-bear-back-to-top {
	--btt-size: 48px;
	--btt-red: var(--wp--preset--color--bulldog-red, #ba0c2f);

	position: fixed;
	right: max(20px, env(safe-area-inset-right));
	bottom: max(20px, env(safe-area-inset-bottom));
	z-index: 90;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--btt-size);
	height: var(--btt-size);
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--btt-red);
	color: var(--wp--preset--color--chapel-bell-white, #fff);
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.18),
		0 6px 16px -4px rgba(186, 12, 47, 0.45);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px) scale(0.9);
	transition:
		opacity 0.3s ease,
		transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1),
		visibility 0s linear 0.3s,
		background-color 0.2s ease,
		box-shadow 0.2s ease;
}

.jere-bear-back-to-top[hidden] {
	display: none;
}

.jere-bear-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}

.jere-bear-back-to-top.is-visible:hover {
	background: color-mix(in srgb, var(--btt-red) 85%, #000);
	box-shadow:
		0 2px 4px rgba(0, 0, 0, 0.2),
		0 12px 24px -6px rgba(186, 12, 47, 0.55);
	transform: translateY(-3px);
}

.jere-bear-back-to-top:focus-visible {
	outline: 2px solid var(--btt-red);
	outline-offset: 3px;
}

/* The ring sits just inside the disc's edge; the track is a faint white
   hairline and the progress stroke draws over it from twelve o'clock. */
.jere-bear-back-to-top__ring {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
	pointer-events: none;
}

.jere-bear-back-to-top__track,
.jere-bear-back-to-top__progress {
	fill: none;
	stroke-width: 1.5;
	transform: scale(0.84);
	transform-origin: center;
}

.jere-bear-back-to-top__track {
	stroke: rgba(255, 255, 255, 0.22);
}

.jere-bear-back-to-top__progress {
	stroke: currentColor;
	stroke-linecap: round;
	stroke-dasharray: 138.23;
	stroke-dashoffset: 138.23;
	transition: stroke-dashoffset 0.1s linear;
}

.jere-bear-back-to-top__arrow {
	position: relative;
	transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.jere-bear-back-to-top:hover .jere-bear-back-to-top__arrow {
	transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
	.jere-bear-back-to-top,
	.jere-bear-back-to-top.is-visible:hover,
	.jere-bear-back-to-top:hover .jere-bear-back-to-top__arrow {
		transform: none;
	}

	.jere-bear-back-to-top,
	.jere-bear-back-to-top__arrow,
	.jere-bear-back-to-top__progress {
		transition: opacity 0.2s ease, visibility 0s linear 0.2s;
	}

	.jere-bear-back-to-top.is-visible {
		transition-delay: 0s;
	}
}

@media print {
	.jere-bear-back-to-top {
		display: none;
	}
}
