/*
Theme Name:   Beyond Capital
Description:  Child theme of Twenty Twenty-Five for Beyond Capital Services Inc. Design system lives in theme.json; this file holds only what theme.json cannot express.
Author:       Beyond Capital Services Inc.
Template:     twentytwentyfive
Version:      0.2.0
Requires at least: 6.7
Requires PHP: 8.1
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  beyond-capital
Update URI:   false
*/

/* Headings: avoid single-word orphan lines. */
h1, h2, h3, .wp-block-post-title {
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

/* Section headings in text pages need more air above than the default block gap. */
.wp-block-post-content > :where(h2, h3):not(:first-child) {
	margin-block-start: var(--wp--preset--spacing--50);
}

/* In-page anchors land below the top edge rather than flush against it. */
:where(h2[id]) {
	scroll-margin-top: 2rem;
}

/* ---------- Header ---------- */

/* Header CTA stays on one line; tighten the header row on phones. */
header .wp-block-button__link {
	white-space: nowrap;
}
header .wp-block-site-title {
	white-space: nowrap;
}

/*
 * Core collapses the menu below 600px, but four links + CTA + wordmark do not
 * fit until ~1000px. Show the menu button up to 999px instead.
 */
@media (min-width: 600px) and (max-width: 999px) {
	header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
	header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}
/* On phones the header CTA moves into the menu (see .bcs-nav-cta). */
@media (max-width: 599px) {
	header .bcs-header-cta {
		display: none;
	}
}
header .wp-block-navigation__responsive-container:not(.is-menu-open) .bcs-nav-cta {
	display: none;
}
header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	padding-block: 0.375rem;
	font-size: 1.25rem;
}
header .wp-block-navigation__responsive-container.is-menu-open .bcs-nav-cta .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent);
	font-weight: 700;
}
/* Larger touch target for the menu button. */
header .wp-block-navigation__responsive-container-open,
header .wp-block-navigation__responsive-container-close {
	padding: 0.5rem;
	margin: -0.5rem;
}

/* ---------- Sections & components ---------- */

.bcs-hero {
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--70);
}
.bcs-page-hero {
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
}
.bcs-page-hero h1 {
	margin-block-end: 0;
}
.bcs-section {
	padding-block: var(--wp--preset--spacing--70);
}
.bcs-section-rule {
	border-top: 1px solid var(--wp--preset--color--accent-6);
}
.bcs-section > h2.alignwide {
	margin-block-end: var(--wp--preset--spacing--40);
}

.bcs-eyebrow {
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.bcs-actions {
	margin-block-start: var(--wp--preset--spacing--40);
}

.bcs-grid {
	gap: var(--wp--preset--spacing--30);
}
/*
 * Core's grid layout uses auto-fill, which leaves empty tracks when there are
 * fewer items than slots. auto-fit collapses them so cards span the full row.
 */
.wp-block-group.bcs-grid-3 {
	grid-template-columns: repeat(auto-fit, minmax(min(19rem, 100%), 1fr));
}
.wp-block-group.bcs-grid-4 {
	grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
}
.wp-block-group.bcs-grid-2 {
	grid-template-columns: 1fr;
}
@media (min-width: 700px) {
	.wp-block-group.bcs-grid-2 {
		grid-template-columns: repeat(2, 1fr);
	}
}
.wp-block-group.bcs-grid-2 {
	column-gap: var(--wp--preset--spacing--40);
}
.wp-block-group.bcs-grid-2:has(> .bcs-principle) {
	row-gap: var(--wp--preset--spacing--40);
}

.bcs-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 6px;
	padding: clamp(1.5rem, 3vw, 2rem);
}
.bcs-card > :first-child,
.bcs-principle > :first-child,
.bcs-step > :first-child {
	margin-block-start: 0;
}
.bcs-card h2 {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3;
	letter-spacing: -0.01em;
}
.bcs-card .bcs-actions {
	margin-block-start: var(--wp--preset--spacing--30);
}

.bcs-principle {
	border-top: 2px solid var(--wp--preset--color--primary);
	padding-block-start: var(--wp--preset--spacing--30);
}
.bcs-principle h3,
.bcs-step h3 {
	font-size: 1.1875rem;
}

.bcs-step {
	border-top: 1px solid var(--wp--preset--color--accent-6);
	padding-block-start: var(--wp--preset--spacing--30);
}
.bcs-step-number {
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.08em;
}
.bcs-step h3 {
	margin-block-start: 0.5rem;
}

/* Two-up list cards stack at the same point as core columns. */
.bcs-list-columns {
	margin-block-start: var(--wp--preset--spacing--50);
	gap: var(--wp--preset--spacing--30);
}

/* Check-mark list; multi-column on wide screens unless -single. */
.bcs-checklist {
	list-style: none;
	padding-left: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	column-gap: var(--wp--preset--spacing--40);
}
.bcs-checklist-single {
	grid-template-columns: 1fr;
}
.bcs-checklist li {
	position: relative;
	padding: 0.625rem 0 0.625rem 1.75rem;
	margin: 0;
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
}
.bcs-checklist li::before {
	content: "";
	position: absolute;
	left: 0.125rem;
	top: 1.05rem;
	width: 0.7rem;
	height: 0.4rem;
	border-left: 2px solid var(--wp--preset--color--accent);
	border-bottom: 2px solid var(--wp--preset--color--accent);
	transform: rotate(-45deg);
}

/* Navy call-to-action band. */
.bcs-cta-band p {
	color: #D5DBE2;
}

/* Inverse button for dark backgrounds (registered in functions.php). */
.wp-block-button.is-style-bcs-inverse .wp-block-button__link {
	background-color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--primary);
}
.wp-block-button.is-style-bcs-inverse .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--accent-5);
	border-color: var(--wp--preset--color--accent-5);
	color: var(--wp--preset--color--primary);
}
.bcs-cta-band :where(a, .wp-block-button__link):focus-visible {
	outline-color: var(--wp--preset--color--white);
}

/* ---------- Forms (WPForms modern markup) ---------- */

.bcs-form-card {
	margin-block-start: var(--wp--preset--spacing--30);
}
.bcs-form-card .wpforms-container {
	--wpforms-field-border-color: #B8C0C8;
	--wpforms-field-border-radius: 4px;
	--wpforms-field-text-color: var(--wp--preset--color--contrast);
	--wpforms-field-background-color: var(--wp--preset--color--white);
	--wpforms-label-color: var(--wp--preset--color--contrast);
	--wpforms-label-sublabel-color: var(--wp--preset--color--accent-4);
	--wpforms-button-background-color: var(--wp--preset--color--primary);
	--wpforms-button-text-color: var(--wp--preset--color--white);
	--wpforms-button-border-radius: 4px;
	--wpforms-field-size-font-size: 1rem;
	--wpforms-label-size-font-size: 0.9375rem;
	margin: 0;
}
.bcs-form-card > *,
.bcs-form-card .wpforms-form .wpforms-field-container > .wpforms-field:first-child {
	margin-block-start: 0;
	padding-block-start: 0;
}
.bcs-form-card .wpforms-container .wpforms-field-label {
	font-weight: 600;
}
.bcs-form-card .wpforms-container .wpforms-submit {
	font-family: var(--wp--preset--font-family--manrope);
	font-weight: 600;
}
.bcs-form-card .wpforms-container .wpforms-submit:hover {
	background-color: var(--wp--preset--color--accent);
}
.bcs-form-card .wpforms-container :is(input, select, textarea):focus-visible,
.bcs-form-card .wpforms-container .wpforms-submit:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}
.bcs-form-card .wpforms-confirmation-container-full {
	background: var(--wp--preset--color--accent-5);
	border: 1px solid var(--wp--preset--color--accent-6);
	border-left: 3px solid var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

/* ---------- Global ---------- */

/* Visible, restrained keyboard focus. */
:where(a, button, input, select, textarea, .wp-block-button__link):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

/* Links in running text: thin underline with breathing room. */
:where(.wp-block-post-content, .wp-block-group) p a {
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
}

/* Footer links sit on navy; keep them quiet until hovered. */
.bcs-footer a {
	text-decoration: none;
}
.bcs-footer a:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.bcs-footer .bcs-footer-links {
	list-style: none;
	padding-left: 0;
}
.bcs-footer .bcs-footer-links li {
	margin-top: 0.5rem;
}
.bcs-footer :where(a):focus-visible {
	outline-color: var(--wp--preset--color--white);
}

/* ---------- Draft markers (legal pages; remove with the copy) ---------- */

.bcs-draft-notice {
	background: var(--wp--preset--color--accent-5);
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 4px;
	padding: 0.75rem 1rem;
}
.bcs-placeholder-note {
	border-left: 3px solid #B26A00;
	background: #FFF8EC;
	padding: 0.625rem 0.875rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--contrast);
}
