/*
Theme Name: The Char Report
Theme URI: https://feedmittens.com/justwingit/
Description: Warm child theme of Twenty Twenty-Five for The Char Report (wings + pizza): cream/red/amber palette, basil green for pizza, Cardo + Inter, card grid with category badges.
Template: twentytwentyfive
Version: 1.1.0
Requires at least: 6.7
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wingblog
*/

:root {
	--wb-red: var(--wp--preset--color--primary);
	--wb-amber: var(--wp--preset--color--amber);
	--wb-cream: var(--wp--preset--color--base);
	--wb-toast: var(--wp--preset--color--tertiary);
	--wb-ink: var(--wp--preset--color--main);
	--wb-muted: var(--wp--preset--color--secondary);
	--wb-crust: var(--wp--preset--color--primary-alt);
	--wb-green: var(--wp--preset--color--pizza-green);
	--wb-green-dark: var(--wp--preset--color--pizza-green-dark);
	--wb-green-tint: var(--wp--preset--color--pizza-green-tint);
	--wb-shadow: 0 3px 14px rgba(43, 33, 24, 0.08);
	--wb-shadow-lift: 0 10px 28px rgba(43, 33, 24, 0.16);
}

/* ---------- Header ---------- */
.wb-header {
	border-bottom: 3px solid var(--wb-amber);
	position: relative;
	z-index: 10;
}
.wb-logo-mark { font-size: 1.6rem; margin: 0; line-height: 1; }
.wb-header .wp-block-site-title a { color: var(--wb-ink); text-decoration: none; }
.wb-cat-nav a { font-weight: 600; text-decoration: none; }
.wb-cat-nav .wb-nav-wings a { color: var(--wb-red); }
.wb-cat-nav .wb-nav-pizza a { color: var(--wb-green-dark); }
.wb-toc-nav .wp-block-navigation__submenu-container {
	background: #fff !important;
	border: 1px solid var(--wb-crust) !important;
	border-radius: 12px;
	box-shadow: var(--wb-shadow-lift);
	padding: 0.4rem 0;
}

/* ---------- Hero ---------- */
.wb-hero {
	background:
		radial-gradient(circle at 85% 20%, rgba(224, 138, 30, 0.28), transparent 45%),
		radial-gradient(circle at 10% 90%, rgba(74, 124, 63, 0.14), transparent 40%),
		linear-gradient(135deg, #fff2df 0%, #fdf6ee 60%, #f7ecdd 100%);
	border-bottom: 1px solid var(--wb-crust);
}
.wb-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--wb-red);
	margin-bottom: 0.5rem;
}
.wb-hero-title {
	font-size: clamp(2.2rem, 5vw, 3.6rem);
	line-height: 1.05;
	margin: 0 0 1rem;
	color: var(--wb-ink);
}
.wb-hero-slim .wb-hero-title { font-size: clamp(2rem, 4vw, 3rem); margin: 0; }
.wb-hero-sub { font-size: 1.15rem; line-height: 1.6; color: #5a4a3a; max-width: 640px; }
.wb-hero-buttons { margin-top: 1.5rem; gap: 0.75rem; }
.wb-hero-buttons .wp-block-button__link {
	border-radius: 999px;
	padding: 0.75rem 1.4rem;
	font-weight: 600;
	box-shadow: 0 4px 12px rgba(43, 33, 24, 0.15);
}
.wb-btn-pizza .wp-block-button__link { background: var(--wb-green); }
.wb-btn-pizza .wp-block-button__link:hover { background: var(--wb-green-dark); }

/* ---------- Home layout: grid + sidebar ---------- */
.wb-home-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 2.5rem;
	align-items: start;
}
@media (max-width: 960px) {
	.wb-home-layout { grid-template-columns: minmax(0, 1fr); }
}
.wb-section-title { font-size: 1.6rem; margin: 0 0 1.25rem; }

/* ---------- Cards ---------- */
.wb-card-grid { gap: 1.5rem !important; }
@media (max-width: 700px) {
	.wb-card-grid { grid-template-columns: minmax(0, 1fr) !important; }
}
.wb-card {
	background: #fff;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: var(--wb-shadow);
	height: 100%;
	display: flex;
	flex-direction: column;
	border-top: 4px solid var(--wb-red);
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.category-pizza .wb-card { border-top-color: var(--wb-green); }
.wb-card:hover { transform: translateY(-3px); box-shadow: var(--wb-shadow-lift); }
.wb-card-image { margin: 0 !important; }
.wb-card-image img { transition: transform 0.4s ease; }
.wb-card:hover .wb-card-image img { transform: scale(1.04); }
.wb-card-image a { display: block; overflow: hidden; }
.wb-card-body { padding: 1rem 1.25rem 1.35rem; }
.wb-card-body > * + * { margin-top: 0.5rem; }
.wb-card-title { font-size: 1.35rem !important; line-height: 1.2; margin-top: 0.6rem !important; }
.wb-card-title a { color: var(--wb-ink); text-decoration: none; }
.wb-card-title a:hover { color: var(--wb-red); }
.wb-card-excerpt { color: #5a4a3a; font-size: 0.95rem; line-height: 1.55; }
.wb-card-excerpt p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: 0; }
.wb-card-excerpt .wp-block-post-excerpt__more-text { display: none; }
.wb-date { color: var(--wb-muted); font-size: 0.82rem; }

/* ---------- Category badges (colored by category link) ---------- */
.wb-badges a {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 0.28rem 0.7rem;
	border-radius: 999px;
	text-decoration: none;
	background: var(--wb-red);
	color: #fff !important;
	margin-right: 0.3rem;
}
.wb-badges a[href*="/category/pizza"] { background: var(--wb-green); }
.wb-badges a:hover { filter: brightness(1.1); }
.wb-badges .wp-block-post-terms__separator { display: none; }

/* ---------- Single post ---------- */
.wb-post-header {
	background: linear-gradient(180deg, #fff2df 0%, var(--wb-cream) 100%);
	border-bottom: 1px solid var(--wb-crust);
}
.wb-post-title { font-size: clamp(2rem, 4.5vw, 3.1rem); line-height: 1.08; margin: 0.75rem 0 0.5rem; }
body.single:has(.wb-post-header .wb-badges a[href*="/category/pizza"]) .wb-post-title { color: var(--wb-green-dark); }
.wb-location, .wb-location a { color: var(--wb-muted); font-size: 0.9rem; text-decoration: none; }
.wb-post-content { font-size: 1.1rem; line-height: 1.75; }
.wb-post-content p { margin-bottom: 1.2em; }
.wb-post-content .wp-block-image img,
.wb-post-content > figure img {
	border-radius: 16px;
	box-shadow: 0 8px 26px rgba(43, 33, 24, 0.18);
	height: auto;
}
.wb-post-content .wp-block-image figcaption {
	font-size: 0.85rem;
	font-style: italic;
	color: var(--wb-muted);
	text-align: center;
}
.wb-post-content em { color: #5a4a3a; }
.wb-post-content blockquote {
	border-left: 4px solid var(--wb-amber);
	padding-left: 1rem;
	font-style: italic;
	color: #5a4a3a;
}
.wb-tags a, .wb-location a {
	display: inline-block;
	background: var(--wp--preset--color--primary-accent);
	color: var(--wb-red) !important;
	border: 1px solid var(--wb-crust);
	border-radius: 999px;
	padding: 3px 12px;
	margin: 2px 4px 2px 0;
	font-size: 0.82rem;
	text-decoration: none;
}
.wb-tags a:hover { background: var(--wb-red); color: #fff !important; border-color: var(--wb-red); }
.wb-tags .wp-block-post-terms__separator { display: none; }
body.single:has(.wb-post-header .wb-badges a[href*="/category/pizza"]) .wb-tags a { background: var(--wb-green-tint); color: var(--wb-green-dark) !important; border-color: #cfe3c2; }
.wb-post-nav {
	margin-top: 1.25rem;
	padding: 0.9rem 1.1rem;
	background: #fff;
	border-radius: 12px;
	box-shadow: var(--wb-shadow);
	font-weight: 600;
}
.wb-post-nav a { text-decoration: none; color: var(--wb-ink); }
.wb-post-nav a:hover { color: var(--wb-red); }

/* ---------- Sidebar widgets ---------- */
.wb-sidebar { position: sticky; top: 1.5rem; }
.wb-widget {
	background: #fff;
	border-radius: 16px;
	padding: 1.1rem 1.25rem;
	box-shadow: var(--wb-shadow);
	width: 100%;
	box-sizing: border-box;
	overflow-wrap: break-word;
}
.wb-widget h3 {
	font-size: 1.15rem;
	margin: 0 0 0.6rem;
	padding-bottom: 0.4rem;
	border-bottom: 2px solid var(--wb-amber);
	display: inline-block;
}
.wb-widget .wp-block-rss { list-style: none; margin: 0; padding: 0; }
.wb-widget .wp-block-rss__item { margin-bottom: 0.7em; padding-bottom: 0.7em; border-bottom: 1px solid #f0e6da; }
.wb-widget .wp-block-rss__item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.wb-widget .wp-block-rss__item-title a { font-size: 0.9rem; font-weight: 600; line-height: 1.35; text-decoration: none; }
.wb-widget .wp-block-rss__item-publish-date { display: block; font-size: 0.75rem; color: #a89a8a; margin-top: 0.15em; }
.wb-widget .wp-block-search__inside-wrapper { border: 1px solid var(--wb-crust); border-radius: 999px; padding: 3px; background: var(--wb-cream); }
.wb-widget .wp-block-search__input { border: none; background: transparent; padding: 0.4em 0.8em; }
.wb-widget .wp-block-search__button { border-radius: 999px; background: var(--wb-red); color: #fff; border: none; }
.wb-tag-cloud a { display: inline-block; margin: 2px 6px 2px 0; text-decoration: none; }

/* ---------- Pagination ---------- */
.wb-pagination { margin-top: 2rem; font-weight: 600; }
.wb-pagination a, .wb-pagination .current {
	padding: 0.4rem 0.8rem;
	border-radius: 999px;
	text-decoration: none;
}
.wb-pagination .current { background: var(--wb-red); color: #fff; }

/* ---------- Footer ---------- */
.wb-footer { border-top: 4px solid var(--wb-amber); }
.wb-footer a { color: #f0d9b8; }
.wb-footer a:hover { color: var(--wb-amber); }
.wb-footer .wp-block-site-title a { color: #fff; text-decoration: none; }
.wb-footer .wp-block-site-tagline { color: var(--wb-amber); font-style: italic; }
.wb-footer-heading { text-transform: uppercase; letter-spacing: 0.12em; font-weight: 700; color: var(--wb-amber); }
.wb-footer p { margin: 0; }

/* ---------- Content components ported from the TT4 Additional CSS ---------- */
.wingblog-places-list { list-style: none; margin: 0; padding: 0; }
.wingblog-places-item {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4em 0.6em;
	background: #fff; border-radius: 12px; padding: 0.9rem 1.1rem; margin-bottom: 0.7rem;
	box-shadow: 0 2px 10px rgba(43, 33, 24, 0.06);
}
.wingblog-place-name { font-weight: 700; color: var(--wb-ink); }
.wingblog-place-name a { color: var(--wb-ink); text-decoration: underline; text-decoration-color: var(--wb-amber); }
.wingblog-place-name a:hover { color: var(--wb-red); }
.wingblog-place-unidentified { font-weight: 400; font-style: italic; color: #a89a8a; }
.wingblog-place-location { color: var(--wb-muted); font-size: 0.9rem; }
.wingblog-place-post-link {
	margin-left: auto; font-size: 0.82rem; background: #fff2df; border: 1px solid var(--wb-crust);
	border-radius: 999px; padding: 3px 12px; text-decoration: none !important; color: var(--wb-red) !important; white-space: nowrap;
}
.wingblog-place-post-link:hover { background: var(--wb-red); color: #fff !important; border-color: var(--wb-red); }

.trail-stop {
	align-items: center; gap: 1rem; background: #fff; border-radius: 12px; padding: 0.9rem;
	margin-bottom: 0.8rem; box-shadow: 0 2px 10px rgba(43, 33, 24, 0.06);
}
.trail-stop-image img { width: 100px; height: 100px; object-fit: cover; border-radius: 10px; }
.trail-stop-text { flex: 1 1 260px; min-width: 0; }
.trail-stop-text p { margin: 0.2em 0; }

.price-hero {
	background: linear-gradient(135deg, var(--wb-red), var(--wb-amber));
	border-radius: 16px; padding: 1.8rem 2rem; color: #fff; margin-bottom: 1.5rem;
}
.price-hero-eyebrow { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; opacity: 0.85; margin-bottom: 0.4rem !important; }
.price-hero p, .price-hero h1, .price-hero h2 { color: #fff; margin-top: 0.3em; }
.price-card { background: #fff; border-radius: 14px; padding: 1.5rem 1.75rem; margin-bottom: 1.5rem; box-shadow: var(--wb-shadow); }
.price-card svg { max-width: 100%; height: auto; display: block; margin: 0.8rem auto; }
.price-card table { border-collapse: collapse; width: 100%; }
.price-card table th, .price-card table td { padding: 0.5rem 0.7rem; border-bottom: 1px solid #f0e6da; text-align: left; }
.price-card table th { color: var(--wb-red); font-weight: 700; }

/* ---------- Spacing fixes: kill block-gap margins inside cards/widgets ---------- */
.wb-card > *, .wb-card-body > * { margin-block-start: 0; }
.wb-card-body > * + * { margin-block-start: 0.5rem; }
.wb-card-body .wb-card-title { margin-block-start: 0.6rem !important; }
.wb-widget > * { margin-block-start: 0; }
.wb-widget > * + * { margin-block-start: 0.6rem; }
.wb-widget .wp-block-search__input { min-width: 0; }
.price-hero a { color: #fff !important; text-decoration-color: rgba(255, 255, 255, 0.7); font-weight: 600; }
.price-hero a:hover { text-decoration-color: #fff; }

/* ---------- Twenty Twenty-Five adjustments ---------- */
.wb-card-image, .wb-card-image a { aspect-ratio: 4 / 3; }
.wb-card-image img { width: 100%; height: 100% !important; object-fit: cover; aspect-ratio: 4 / 3; }
.wb-card { height: auto; }
.wb-card-grid > li { display: flex; }
.wb-card-grid > li > .wb-card { flex: 1; }
strong, b { font-weight: 700; }
.wb-widget .has-small-font-size { font-size: 0.92rem !important; line-height: 1.55; }
.wb-header { padding-left: clamp(1rem, 4vw, 3rem) !important; padding-right: clamp(1rem, 4vw, 3rem) !important; }

/* ---------- Sticky footer on short pages ---------- */
.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > main, .wp-site-blocks > .wp-block-group:has(> main) { flex: 1 0 auto; }
.wp-site-blocks > footer, .wp-site-blocks > .site-footer { margin-top: auto; }

/* ---------- Search + 404 ---------- */
.wb-hero-search { margin-top: 1rem; max-width: 520px; }
.wb-hero-search .wp-block-search__inside-wrapper { border: 1px solid var(--wb-crust); border-radius: 999px; padding: 4px; background: #fff; box-shadow: var(--wb-shadow); }
.wb-hero-search .wp-block-search__input { border: none; background: transparent; padding: 0.5em 1em; min-width: 0; }
.wb-hero-search .wp-block-search__button { border-radius: 999px; background: var(--wb-red); color: #fff; border: none; padding: 0.55em 1.3em; }
.wb-404 { text-align: left; }
.wb-404-mark { font-size: 3.5rem; margin: 0 0 0.5rem; line-height: 1; }
.wb-empty { font-size: 1.1rem; color: #5a4a3a; }

/* ---------- Price ticker (data: charreport_ticker setting, via tools/update_ticker.py) ---------- */
.cr-ticker {
	display: flex;
	align-items: stretch;
	background: var(--wb-ink);
	color: #fdf6ee;
	font-size: 0.82rem;
	line-height: 1;
	border-bottom: 3px solid var(--wb-amber);
	overflow: hidden;
}
.cr-ticker-tag {
	flex: none;
	display: flex;
	align-items: center;
	padding: 0 1rem;
	background: var(--wb-red);
	color: #fff !important;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.7rem;
	text-decoration: none;
	white-space: nowrap;
}
.cr-ticker-tag:hover { background: var(--wb-amber); }
.cr-ticker-viewport { flex: 1; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); }
.cr-ticker-track { display: flex; width: max-content; animation: cr-scroll 60s linear infinite; }
.cr-ticker:hover .cr-ticker-track, .cr-ticker:focus-within .cr-ticker-track { animation-play-state: paused; }
.cr-ticker-list { display: flex; list-style: none; margin: 0; padding: 0; }
.cr-item { display: flex; align-items: center; gap: 0.4rem; padding: 0.6rem 1.4rem; white-space: nowrap; border-right: 1px solid rgba(253, 246, 238, 0.12); }
.cr-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--wb-amber); flex: none; }
.cr-wings .cr-dot { background: #e0544a; }
.cr-pizza .cr-dot { background: #7fb069; }
.cr-label { color: #d9cbb8; }
.cr-value { color: #fff; font-weight: 700; }
.cr-chg { font-weight: 600; font-size: 0.75rem; }
.cr-up { color: #ff8a7a; }
.cr-down { color: #9fd38a; }
.cr-flat { color: #d9cbb8; }
@keyframes cr-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.cr-ticker-track { animation: none; }
	.cr-ticker-viewport { overflow-x: auto; mask-image: none; }
	.cr-ticker-list[aria-hidden="true"] { display: none; }
}
.wb-header + .wp-block-shortcode, .site-header .wp-block-shortcode { margin: 0; }

/* ---------- "Worth Following" link roundup ---------- */
.cr-sites { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; gap: 0.75rem; }
.cr-sites li { background: #fff; border-radius: 14px; padding: 1rem 1.2rem; box-shadow: var(--wb-shadow); border-left: 4px solid var(--wb-amber); line-height: 1.6; }
.cr-sites-pizza li { border-left-color: var(--wb-green); }
.cr-sites-wings li { border-left-color: var(--wb-red); }
.cr-sites li a { text-decoration: none; }
.cr-sites li a strong { color: var(--wb-ink); font-size: 1.05rem; }
.cr-sites li a:hover strong { color: var(--wb-red); }
