/*
Theme Name: Blueberry Railroad
Theme URI: https://blueberryrailroad.com/
Description: Child theme of Twenty Twenty-Four for the Blueberry Railroad, Geneva, Ohio.
Template: twentytwentyfour
Version: 1.0.4
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: blueberry-railroad
License: GPLv2 or later
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(a):focus-visible,
:where(.wp-element-button):focus-visible { outline: 3px solid var(--wp--preset--color--accent-3); outline-offset: 3px; border-radius: 4px; }
img { height: auto; }

/* Eyebrow labels */
.bbr-eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-size: 0.8rem !important;
	margin-bottom: 0.4rem !important;
}

/* ---------- Header ---------- */
.bbr-topbar p { margin: 0; }
.bbr-topbar a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.4); }
.bbr-topbar a:hover { border-bottom-color: #fff; }
.bbr-header { position: sticky; top: 0; z-index: 50; backdrop-filter: saturate(1.4) blur(8px); background: rgba(251, 248, 241, 0.92) !important; border-bottom: 1px solid rgba(27, 37, 71, 0.08); }
.admin-bar .bbr-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .bbr-header { top: 46px; } }
.bbr-logo img { display: block; width: auto; height: 66px; }
@media (max-width: 600px) { .bbr-logo img { height: 50px; } .bbr-call-btn { display: none !important; } }
.bbr-header .wp-block-navigation a { text-decoration: none; }
.bbr-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent); }
.bbr-header .current-menu-item > a,
.bbr-header .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content { color: var(--wp--preset--color--accent); text-decoration: underline; text-underline-offset: 0.4em; text-decoration-thickness: 2px; }

/* ---------- Hero ---------- */
.bbr-hero h1 { text-wrap: balance; text-shadow: 0 2px 18px rgba(10, 16, 40, 0.35); }
.bbr-hero p { text-shadow: 0 1px 10px rgba(10, 16, 40, 0.35); }
.bbr-hero .wp-block-cover__inner-container { max-width: var(--wp--style--global--wide-size); }

/* ---------- Cards ---------- */
.bbr-card { border: 1px solid rgba(27, 37, 71, 0.08); box-shadow: 0 1px 2px rgba(27, 37, 71, 0.04), 0 8px 24px -12px rgba(27, 37, 71, 0.18); transition: transform .2s ease, box-shadow .2s ease; height: 100%; }
.bbr-card:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(27, 37, 71, 0.06), 0 16px 32px -14px rgba(27, 37, 71, 0.28); }
.bbr-facts > .wp-block-column { display: flex; }
.bbr-facts > .wp-block-column > .bbr-card { flex: 1; }
.bbr-stat { font-family: var(--wp--preset--font-family--heading); font-weight: 600; line-height: 1.05; }

/* Season-update list */
.bbr-updates .wp-block-post-template > li { padding: 1.1rem 0; border-bottom: 1px solid rgba(27, 37, 71, 0.12); margin: 0; }
.bbr-updates .wp-block-post-template > li:first-child { padding-top: 0; }
.bbr-updates .wp-block-post-title a { text-decoration: none; }
.bbr-updates .wp-block-post-title a:hover { color: var(--wp--preset--color--accent); }
.bbr-updates .wp-block-post-excerpt__more-link { display: none; }

/* Reviews */
.bbr-stars { color: #E8A317; letter-spacing: 0.12em; font-size: 1.05rem; margin: 0; line-height: 1; }
.bbr-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; }
.bbr-rating .bbr-rating-num { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 2rem; line-height: 1; color: var(--wp--preset--color--contrast); }
.bbr-rating .bbr-stars { font-size: 1.25rem; }
.bbr-quote-card { display: flex; flex-direction: column; padding: 1.6rem 1.5rem !important; }
.bbr-quote-card > p:nth-child(2) { font-size: 1.05rem; line-height: 1.55; flex: 1; }
.bbr-quote-by { margin-top: auto !important; }
.bbr-review-ask a { font-weight: 600; }
@media (max-width: 1024px) and (min-width: 782px) { .bbr-quotes { flex-wrap: wrap !important; } .bbr-quotes > .wp-block-column { flex-basis: calc(50% - 1rem) !important; } }
.bbr-footer .bbr-footer-stars { color: #F2C14E; }

/* Images */
.bbr-rounded img, img.bbr-rounded { border-radius: 18px; }
.bbr-map-card { background: #fff; border-radius: 18px; padding: 14px; box-shadow: 0 18px 40px -20px rgba(0,0,0,0.45); }
.bbr-map-card img { border-radius: 8px; }
.bbr-map iframe { width: 100%; min-height: 360px; border: 0; border-radius: 18px; display: block; box-shadow: 0 12px 30px -18px rgba(27, 37, 71, 0.45); }

/* Railroad band: tracks motif */
.bbr-rail-band { position: relative; overflow: hidden; }
.bbr-rail-band::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 14px; opacity: .22; pointer-events: none;
	background:
		linear-gradient(#fff, #fff) 0 2px / 100% 2px no-repeat,
		linear-gradient(#fff, #fff) 0 10px / 100% 2px no-repeat,
		repeating-linear-gradient(90deg, #fff 0 4px, transparent 4px 22px) 0 0 / 100% 14px no-repeat;
}

/* Ramble schedule table */
.bbr-schedule table { border-collapse: collapse; width: 100%; font-size: 0.98rem; border: 0; }
.bbr-schedule th, .bbr-schedule td { padding: 0.7rem 0.8rem; border: 0; border-bottom: 1px solid rgba(27,37,71,.12); text-align: left; vertical-align: top; }
@media (max-width: 600px) { .bbr-schedule th, .bbr-schedule td { padding: 0.6rem 0.4rem; font-size: 0.9rem; } }

/* Four-up stat cards (railroad page) */
.bbr-stats-4 .bbr-stat { font-size: clamp(1.45rem, 2.3vw, 1.85rem) !important; white-space: nowrap; }
@media (max-width: 781px) { .bbr-stats-4 { flex-wrap: wrap !important; } .bbr-stats-4 > .wp-block-column { flex-basis: calc(50% - 0.75rem) !important; } }
.bbr-schedule thead th { font-family: var(--wp--preset--font-family--heading); font-weight: 600; border-bottom: 2px solid var(--wp--preset--color--contrast); }
.bbr-schedule tr.bbr-us td { background: var(--wp--preset--color--base-3); font-weight: 600; }

/* Footer */
.bbr-footer a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.3); }
.bbr-footer a:hover { border-bottom-color: #fff; }
.bbr-footer .bbr-footer-logo { border-bottom: 0 !important; display: inline-block; }
.bbr-footer .bbr-footer-logo img { width: 220px; height: auto; display: block; }
.bbr-footer .wp-block-column { min-width: 0; }
.bbr-footer h2 { letter-spacing: .14em; text-transform: uppercase; }

/* Single post */
.bbr-post-nav a { text-decoration: none; }

/* Motion preference */
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .bbr-card { transition: none; } .bbr-card:hover { transform: none; } }
