/*
Theme Name: blueprintTRAIN
Theme URI: https://blueprinttrain.app
Author: Structured Works LLC
Description: Calm Engineering block theme for blueprintTRAIN. Design tokens live in theme.json.
Version: 1.3.0
Requires at least: 6.9
Requires PHP: 8.1
License: Proprietary
Text Domain: blueprinttrain
*/

/* Only what theme.json cannot express: motion, mobile sticky CTA, form states. */
:root { --bpt-motion: var(--wp--custom--motion--duration) var(--wp--custom--motion--easing); }

.wp-element-button,
.wp-block-navigation-item a,
.is-style-card { transition: box-shadow var(--bpt-motion), background-color var(--bpt-motion), color var(--bpt-motion), border-color var(--bpt-motion); }
.is-style-card:hover { box-shadow: var(--wp--custom--shadow--card-hover); }

.bpt-sticky-cta { position: fixed; inset: auto 0 0 0; z-index: 50; padding: var(--wp--preset--spacing--30); background: var(--wp--preset--color--surface); border-top: 1px solid var(--wp--preset--color--line); }
.bpt-sticky-cta .wp-block-buttons { justify-content: center; }
.bpt-sticky-cta .wp-block-button { flex: 1; }
.bpt-sticky-cta .wp-block-button__link { width: 100%; text-align: center; }
@media (min-width: 782px) { .bpt-sticky-cta { display: none; } }
@media (max-width: 781px) { body:has(.bpt-sticky-cta) { padding-bottom: 5rem; } }

.bpt-form__message[role="status"] { min-height: 1.5em; }
.bpt-form__field--hp { position: absolute; left: -9999px; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* Coach directory (block: blueprinttrain/coach-directory) — presets only. */
.bpt-directory__controls { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); margin-bottom: var(--wp--preset--spacing--40); }
.bpt-directory__search { flex: 1 1 16rem; }
.bpt-directory__search, .bpt-directory__controls select { padding: var(--wp--preset--spacing--30); border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius--control); background: var(--wp--preset--color--surface); font: inherit; }
.bpt-directory__grid { display: grid; gap: var(--wp--preset--spacing--40); grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.bpt-coach { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius--card); box-shadow: var(--wp--preset--shadow--card); padding: var(--wp--preset--spacing--50); transition: box-shadow var(--bpt-motion); }
.bpt-coach:hover { box-shadow: var(--wp--custom--shadow--card-hover); }
.bpt-coach[hidden] { display: none; }
.bpt-coach__avatar { width: 72px; height: 72px; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--wp--preset--color--primary); color: var(--wp--preset--color--surface); font-weight: 700; font-size: var(--wp--preset--font-size--large); margin-bottom: var(--wp--preset--spacing--30); }
.bpt-coach__avatar img { width: 100%; height: 100%; object-fit: cover; }
.bpt-coach h3 { margin: 0 0 var(--wp--preset--spacing--20); }
.bpt-not-included { color: var(--wp--preset--color--muted); }

/* ---- Sales redesign: dark bands, product visuals ---- */
.wp-block-cover .is-style-eyebrow,
.has-night-gradient-background .is-style-eyebrow { color: var(--wp--preset--color--primary-bright); }
.wp-block-cover .is-style-score-metric,
.has-night-gradient-background .is-style-score-metric { color: var(--wp--preset--color--primary-bright); }
.wp-block-cover a:not(.wp-element-button),
.has-night-gradient-background a:not(.wp-element-button) { color: var(--wp--preset--color--primary-bright); }
.wp-block-cover .has-muted-color,
.has-night-gradient-background .has-muted-color { color: rgba(255, 255, 255, 0.78); }
.wp-block-cover .wp-block-cover__inner-container { width: 100%; }

.bpt-hero-visual { position: relative; padding-bottom: var(--wp--preset--spacing--50); }
.bpt-hero-visual .bpt-hero-phone { position: absolute; right: -0.5rem; bottom: 0; width: 30%; margin: 0; }
@media (min-width: 1100px) { .bpt-hero-visual .bpt-hero-phone { right: -1.5rem; } }

.bpt-ratio-desktop img { aspect-ratio: 1800 / 1125; width: 100%; height: auto; }
.bpt-ratio-crop img { aspect-ratio: 1600 / 944; width: 100%; height: auto; }
.bpt-ratio-phone img { aspect-ratio: 720 / 1565; width: 100%; height: auto; }
.bpt-phone-row .wp-block-image { margin: 0; }
.bpt-caption { text-align: center; margin-top: var(--wp--preset--spacing--30); }
.bpt-niches { letter-spacing: 0.16em; text-transform: uppercase; font-weight: 600; }
.bpt-check-list { list-style: none; padding-left: 0; }
.bpt-check-list li { position: relative; padding-left: 1.75rem; margin-bottom: var(--wp--preset--spacing--20); }
.bpt-check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--wp--preset--color--primary); font-weight: 700; }
.has-night-gradient-background .bpt-check-list li::before { color: var(--wp--preset--color--primary-bright); }

/* Dark-band text: WordPress marks its colour classes !important, so the override must too. */
.wp-block-cover .has-muted-color,
.has-night-gradient-background .has-muted-color { color: rgba(255, 255, 255, 0.88) !important; }
.is-style-card .wp-block-list { padding-left: 1.25rem; }
