/*
Theme Name: Bryghtpath
Theme URI: https://bryghtpath.com
Description: Child theme of Ollie for bryghtpath.com (mockup). Owns the Bryghtpath brand tokens in theme.json; Ollie supplies the rest.
Author: Bryghtpath LLC
Template: ollie
Version: 0.1.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
Text Domain: bryghtpath
*/

/* Styling lives in theme.json. Keep this file to the few rules theme.json cannot express. */

/* Eyebrow: small uppercase label above a heading. Blue on light, Blue 2 on navy. */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--blue);
	margin-bottom: 0.4rem;
}
.has-navy-background-color .is-style-eyebrow,
.wp-block-cover .is-style-eyebrow { color: var(--wp--preset--color--blue-2); }

/* Card: white panel, light border, top accent, lifts on hover. */
.is-style-bp-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border-light);
	border-top: 4px solid var(--wp--preset--color--blue);
	border-radius: 6px;
	transition: box-shadow .2s ease, transform .2s ease;
	height: 100%;
}
.is-style-bp-card:hover { box-shadow: 0 10px 30px rgba(38, 46, 107, .12); transform: translateY(-2px); }

/* Check list: blue check marks instead of bullets. */
.is-style-bp-checks { list-style: none; padding-left: 0; }
.is-style-bp-checks li { position: relative; padding-left: 1.6em; margin: .35em 0; }
.is-style-bp-checks li::before {
	content: ""; position: absolute; left: 0; top: .45em; width: .9em; height: .5em;
	border-left: 2.5px solid var(--wp--preset--color--blue); border-bottom: 2.5px solid var(--wp--preset--color--blue);
	transform: rotate(-45deg);
}

/* Arrow link: "Explore ... →" links at the foot of cards. */
.is-style-bp-arrow a { font-weight: 600; text-decoration: none; }
.is-style-bp-arrow a:hover { text-decoration: underline; text-underline-offset: .2em; }

/* Cards in a row keep their footers aligned. */
.bp-card-row > .wp-block-column > .wp-block-group { display: flex; flex-direction: column; }
.bp-card-row > .wp-block-column > .wp-block-group > .bp-push { margin-top: auto; }

/* Header: sticky white bar with a thin blue rule. */
.bp-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .bp-header { top: 32px; }

/* Testimonial quotes on navy. */
.bp-quote { border-left: 3px solid var(--wp--preset--color--blue-2); padding-left: 1.1rem; }

/* Footer link lists. */
.bp-footer a { text-decoration: none; color: var(--wp--preset--color--blue-3); }
.bp-footer a:hover { color: var(--wp--preset--color--base); text-decoration: underline; }
.bp-footer .wp-block-list { list-style: none; padding-left: 0; }
.bp-footer .wp-block-list li { margin: .3em 0; }

/* Mega menu panel. */
.bp-mega a { text-decoration: none; color: var(--wp--preset--color--secondary); }
.bp-mega a:hover { color: var(--wp--preset--color--blue); }
.bp-mega .wp-block-list { list-style: none; padding-left: 0; margin: 0; }
.bp-mega .wp-block-list li { margin: .35em 0; font-size: .95rem; }

/* Phone header: smaller logo, Contact button stays on one line. */
.bp-header .wp-block-button__link { white-space: nowrap; }
@media (max-width: 600px) {
	.bp-header .wp-block-image img { width: 132px !important; }
	.bp-header .wp-block-button__link { padding: .55em .9em; font-size: .85rem !important; }
}

/* Category links styled as an eyebrow. */
.bp-terms a { color: inherit; text-decoration: none; }
.bp-terms .wp-block-post-terms__separator { color: var(--wp--preset--color--border-dark); }

/* Post cards: image flush to the card edge, text padded. */
.bp-post-card { overflow: hidden; }
.bp-post-card .wp-block-post-featured-image { margin: 0; }
.bp-post-card .bp-card-pad { padding-left: var(--wp--preset--spacing--medium); padding-right: var(--wp--preset--spacing--medium); }
.bp-post-card .wp-block-post-terms { margin-top: 1rem; }
.bp-post-card .wp-block-post-title a, .bp-featured-post .wp-block-post-title a { color: var(--wp--preset--color--navy); text-decoration: none; }
.bp-post-card .wp-block-post-title a:hover, .bp-featured-post .wp-block-post-title a:hover { color: var(--wp--preset--color--blue); }

/* Blog topic buttons on navy. */
.bp-topics .wp-block-button__link { font-size: .85rem; padding: .45em 1em; color: var(--wp--preset--color--base); border-color: rgba(255,255,255,.45); }
.bp-topics .wp-block-button__link:hover { background: var(--wp--preset--color--base); color: var(--wp--preset--color--navy); }

/* Article: hero flows into the featured image. */
.bp-article-hero { padding-bottom: 7rem !important; }
.bp-article-image { margin-top: -6rem !important; }
.bp-byline p, .bp-byline .wp-block-post-date, .bp-byline .wp-block-post-time-to-read { margin: 0; font-size: .95rem; }

/* Article body (Classic Editor HTML renders here unchanged). */
.bp-article .wp-block-post-content { font-size: 1.17rem; line-height: 1.75; }
.bp-article .wp-block-post-content h2 { font-size: clamp(1.5rem, 2.4vw, 1.85rem); margin-top: 2.2em; }
.bp-article .wp-block-post-content h3 { font-size: 1.3rem; margin-top: 1.8em; }
.bp-article .wp-block-post-content a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.bp-article .wp-block-post-content li { margin: .4em 0; }
.bp-article .wp-block-post-content table { width: 100%; border-collapse: collapse; font-size: 1rem; line-height: 1.5; margin: 1.8em 0; }
.bp-article .wp-block-post-content th, .bp-article .wp-block-post-content tr:first-child td { background: var(--wp--preset--color--navy); color: #fff; font-family: var(--wp--preset--font-family--display); font-weight: 600; text-align: left; }
.bp-article .wp-block-post-content td, .bp-article .wp-block-post-content th { padding: .75em 1em; border-bottom: 1px solid var(--wp--preset--color--border-light); vertical-align: top; }
.bp-article .wp-block-post-content tr:nth-child(even) td { background: var(--wp--preset--color--tertiary); }

/* Capabilities hub: jump cards and dark cards on navy. */
.bp-jump { transition: background .2s ease, border-color .2s ease; }
.bp-jump:hover { background: rgba(255,255,255,.06); border-color: var(--wp--preset--color--blue-2) !important; }
.bp-jump + .bp-jump { margin-top: .75rem; }
.bp-dark-card { background: rgba(255,255,255,.05); height: 100%; display: flex; flex-direction: column; }
.bp-dark-card > .bp-push { margin-top: auto; }
[id] { scroll-margin-top: 100px; }

/* FAQ (core/details). */
.bp-faq-item { border-bottom: 1px solid var(--wp--preset--color--border-light); padding: 1.1rem 0; }
.bp-faq-item summary { cursor: pointer; font-family: var(--wp--preset--font-family--display); font-weight: 600; color: var(--wp--preset--color--navy); font-size: 1.1rem; list-style: none; position: relative; padding-right: 2rem; }
.bp-faq-item summary::-webkit-details-marker { display: none; }
.bp-faq-item summary::after { content: "+"; position: absolute; right: 0; top: -.1em; font-size: 1.5rem; color: var(--wp--preset--color--blue); }
.bp-faq-item[open] summary::after { content: "–"; }
.bp-faq-item p { margin-top: .75rem; }

/* Team grid and fact list. */
.bp-person a:hover { color: var(--wp--preset--color--blue) !important; }
.bp-facts p { margin: 0; }
.bp-facts .bp-fact-label { font-family: var(--wp--preset--font-family--display); font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--secondary); }

/* Mock form (stands in for Gravity Forms). */
.bp-mock-form label { display: block; font-weight: 700; color: var(--wp--preset--color--navy); margin: .9rem 0 .3rem; font-size: .95rem; }
.bp-mock-form input, .bp-mock-form textarea, .bp-mock-form select { width: 100%; box-sizing: border-box; padding: .7rem .8rem; border: 1px solid var(--wp--preset--color--border-dark); border-radius: 4px; font: inherit; background: #fff; }
.bp-mock-form .bp-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
@media (max-width: 600px) { .bp-mock-form .bp-row { grid-template-columns: 1fr; } }
.bp-mock-form button { margin-top: 1.2rem; background: var(--wp--preset--color--blue); color: #fff; border: 0; border-radius: 4px; padding: .8em 1.6em; font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: 1rem; }

/* Default pages (legal, simple About pages): readable prose. */
.bp-prose { font-size: 1.12rem; line-height: 1.7; }
.bp-prose h2 { font-size: clamp(1.4rem, 2.4vw, 1.7rem); margin-top: 2em; }

/* Search box on navy (search results and 404). */
.bp-search .wp-block-search__inside-wrapper { max-width: 640px; }
.bp-search .wp-block-search__input { border-radius: 4px; border: 0; padding: .8em 1em; font-size: 1.05rem; }
.bp-search .wp-block-search__button { background: var(--wp--preset--color--blue); color: #fff; border: 0; border-radius: 4px; font-weight: 600; margin-left: .5rem; }
.bp-search-results { list-style: none; padding: 0; }
.bp-search-item { border-bottom: 1px solid var(--wp--preset--color--border-light); }
.bp-search-item .wp-block-post-title a { color: var(--wp--preset--color--navy); text-decoration: none; }
.bp-search-item .wp-block-post-title a:hover { color: var(--wp--preset--color--blue); }
.bp-on-dark .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.45); }
.bp-on-dark .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--navy); }

/* Podcast player card (stand-in for Seriously Simple Podcasting's player). */
.bp-player { background: var(--wp--preset--color--tertiary); border-top: 4px solid var(--wp--preset--color--blue); border-radius: 8px; padding: 1.25rem 1.5rem; margin-bottom: 2rem; }
.bp-player audio { width: 100%; margin: .4rem 0; }
.bp-player .bp-player-links { font-size: .95rem; margin: 0; color: var(--wp--preset--color--secondary); }

/* Exercise ladder: price line. */
.bp-ladder h3 + h3 { margin-top: .2rem; }

/* Converted pages (migrate/convert.php). */
.bp-hero .bp-hero-title { color: var(--wp--preset--color--base); font-size: clamp(2.2rem, 4.4vw, 3.3rem); line-height: 1.12; }
.bp-hero .bp-lead { font-size: 1.2rem; }
.bp-crumbs { font-size: .9rem; margin-bottom: .5rem; }
.bp-crumbs a { color: var(--wp--preset--color--blue-2); }
.bp-dark :where(h1, h2, h3, h4, h5, h6) { color: var(--wp--preset--color--base); }
.bp-dark :where(p, li) a:not(.wp-block-button__link) { color: var(--wp--preset--color--base); }
.bp-dark .is-style-eyebrow { color: var(--wp--preset--color--blue-2); }
.bp-dark .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.6); }
.bp-dark .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--navy); }
.bp-dark .is-style-bp-checks li::before, .bp-dark ul li::marker { color: var(--wp--preset--color--blue-2); }
.bp-center { text-align: center; }
.bp-center .wp-block-buttons { justify-content: center; }
.bp-center :where(ul, ol) { text-align: left; display: inline-block; }
/* White cards inside dark bands keep normal colours. */
.bp-dark .is-style-bp-card :where(h1, h2, h3, h4, h5, h6) { color: var(--wp--preset--color--navy); }
.bp-dark .is-style-bp-card { color: var(--wp--preset--color--main); }
.bp-dark .is-style-bp-card :where(p, li) a:not(.wp-block-button__link) { color: var(--wp--preset--color--blue); }
.bp-price { font-family: var(--wp--preset--font-family--display); font-weight: 600; color: var(--wp--preset--color--navy); font-size: 1.2rem; }
.bp-post-card .wp-block-read-more { font-weight: 600; text-decoration: none; display: inline-block; }

/* ---------- Header and mega menus (generated by build_header.py from the live menu) ---------- */
.bp-mega { border-top: 3px solid var(--wp--preset--color--blue); border-radius: 0 0 6px 6px; box-shadow: 0 18px 40px rgba(38, 46, 107, .14); }
.bp-mega .bp-mega-head { font-size: .95rem; margin: 0 0 .6rem; }
.bp-mega .bp-mega-head a { color: var(--wp--preset--color--navy); }
.bp-mega .bp-mega-head a:hover { color: var(--wp--preset--color--blue); }
.bp-mega .bp-mega-list { list-style: none; padding-left: 0; margin: 0; }
.bp-mega .bp-mega-list li { margin: .4em 0; font-size: .93rem; line-height: 1.35; }
.bp-mega-feature { background: var(--wp--preset--color--light-blue); border-radius: 6px; padding: 1rem 1.1rem; }
.bp-mega-note { font-size: .85rem; color: var(--wp--preset--color--secondary); margin: 0 0 .4rem; }
.bp-nav .wp-block-navigation-item__content { font-weight: 500; }
.bp-nav .wp-block-navigation__submenu-container { border: 0 !important; border-top: 3px solid var(--wp--preset--color--blue) !important; border-radius: 0 0 6px 6px; box-shadow: 0 18px 40px rgba(38, 46, 107, .14); padding: .6rem 0 !important; min-width: 270px !important; }
.bp-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .45rem 1.1rem !important; font-size: .93rem; color: var(--wp--preset--color--secondary); }
.bp-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--blue); }
.bp-header-search .wp-block-search__button { background: none !important; border: 0; color: var(--wp--preset--color--navy); padding: 6px; }
.bp-header-search .wp-block-search__button svg { width: 22px; height: 22px; fill: currentColor; }
.bp-header-cart .wc-block-mini-cart__button { color: var(--wp--preset--color--navy); padding: 4px; }
.bp-header-cart .wc-block-mini-cart__badge { background: var(--wp--preset--color--orange); color: #fff; }

/* Phone menu (Menu Designer mobile menu, below 1080px). */
.bp-mobile-menu .bp-mob-section { border-bottom: 1px solid var(--wp--preset--color--border-light); padding: .9rem 0; }
.bp-mobile-menu .bp-mob-section > summary { font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: 1.15rem; color: var(--wp--preset--color--navy); cursor: pointer; list-style: none; position: relative; }
.bp-mobile-menu .bp-mob-section > summary::-webkit-details-marker { display: none; }
.bp-mobile-menu .bp-mob-section > summary::after { content: "+"; position: absolute; right: 0; color: var(--wp--preset--color--blue); font-size: 1.4rem; line-height: 1; }
.bp-mobile-menu .bp-mob-section[open] > summary::after { content: "–"; }
.bp-mobile-menu a { color: var(--wp--preset--color--main); text-decoration: none; }
.bp-mobile-menu .bp-mob-overview { margin: .8rem 0 .2rem; font-weight: 600; }
.bp-mobile-menu .bp-mob-overview a { color: var(--wp--preset--color--blue); }
.bp-mobile-menu .bp-mob-head { margin: 1rem 0 .3rem; font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.bp-mobile-menu .bp-mob-head a { color: var(--wp--preset--color--secondary); }
.bp-mobile-menu .bp-mob-list { list-style: none; padding: 0; margin: 0; }
.bp-mobile-menu .bp-mob-list li { padding: .4rem 0; font-size: 1.02rem; }
.bp-mobile-menu .bp-mob-search { margin-top: 1.2rem; }
.bp-mobile-menu .bp-mob-cta { margin-top: 1rem; }
@media (max-width: 1079px) {
	.bp-header-search { display: none; } /* Search lives in the phone menu. */
}

/* Blog: the featured "Latest" post shows on page 1 only, and the grid hides its copy of it there. */
body.paged .bp-featured-post, body.paged .bp-featured-post + .wp-block-separator { display: none; }
body.blog:not(.paged) .bp-blog-grid .wp-block-post-template > li:first-child { display: none; }
/* Every archive page number is linked (keeps old posts a few clicks from the homepage). */
.bp-pagination { gap: .4rem; row-gap: .6rem; }
.bp-pagination .page-numbers { display: inline-block; min-width: 2.2em; padding: .35em .5em; text-align: center; border-radius: 4px; border: 1px solid var(--wp--preset--color--border-light); text-decoration: none; }
.bp-pagination .page-numbers.current { background: var(--wp--preset--color--navy); color: #fff; border-color: var(--wp--preset--color--navy); }

/* Shop grids: product images carry their own text, so show the whole image in a square frame instead of Ollie's tall crop. */
.wc-block-product .wc-block-components-product-image img,
.wp-block-woocommerce-product-image img { aspect-ratio: 1 / 1 !important; object-fit: contain !important; background: #fff; }
