/*
Theme Name: Daily Bowl
Theme URI: https://dailybowl.org
Description: Daily Bowl's brand on top of Twenty Twenty-Five. Holds only tokens (theme.json), fonts, block patterns and templates. No page builder, no PHP hooks in content.
Author: Daily Bowl
Template: twentytwentyfive
Version: 0.3.9
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: daily-bowl
*/

/* Everything visual lives in theme.json. This file exists for the header above and for the few things theme.json cannot express. */

/* Tagline in the brand script, used once in the footer. */
.db-script {
	font-family: var(--wp--preset--font-family--homemade-apple);
	line-height: 1.6;
}

/* Impact numbers: tabular figures so columns line up. */
.db-stat {
	font-variant-numeric: tabular-nums;
}

/* Partner logos: greyscale at rest, colour on hover. Respects reduced motion. */
.db-logos img {
	filter: grayscale(1);
	opacity: 0.8;
	transition: filter 0.2s ease, opacity 0.2s ease;
}
.db-logos img:hover,
.db-logos a:focus-visible img {
	filter: none;
	opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
	.db-logos img { transition: none; }
}

/* Visible keyboard focus everywhere, in brand gold on dark and deep red on light. */
:where(a, button, [role="button"], input, select, textarea):focus-visible {
	outline: 3px solid var(--wp--preset--color--gold);
	outline-offset: 2px;
}

/* Plain lists (footer link lists): no bullets, no indent. */
.wp-block-list.is-style-plain {
	list-style: none;
	padding-left: 0;
}

/* Hero video: the poster (set as the group's background) shows while the video loads,
   and instead of the video for anyone who prefers reduced motion. */
.db-hero > .wp-block-cover { background: transparent; }
@media (prefers-reduced-motion: reduce) {
	.db-hero .wp-block-cover__video-background { display: none; }
}

/* Partner profiles: hide the impact box when a partner has no impact line (funders). */
.wp-block-group:has(> .db-stat:empty) {
	display: none;
}

/* Card grids (Stories, Partners): cards in the same row share a height. */
.wp-block-post-template.is-layout-grid > li {
	display: flex;
}
.wp-block-post-template.is-layout-grid > li > .wp-block-group {
	flex: 1 1 auto;
}

/* Cards in query grids are links: say so on hover and focus. */
.wp-block-post-template.is-layout-grid > li > .wp-block-group {
	transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.wp-block-post-template.is-layout-grid > li > .wp-block-group:hover,
.wp-block-post-template.is-layout-grid > li > .wp-block-group:focus-within {
	border-color: var(--wp--preset--color--accent-1) !important;
	box-shadow: 0 10px 28px rgba(35, 31, 32, 0.10);
	transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
	.wp-block-post-template.is-layout-grid > li > .wp-block-group { transition: none; }
	.wp-block-post-template.is-layout-grid > li > .wp-block-group:hover { transform: none; }
}
.wp-block-read-more {
	font-weight: 700;
	text-decoration: none;
	color: var(--wp--preset--color--accent-1);
}
.wp-block-read-more:hover { text-decoration: underline; }
