/*
 Theme Name:   GeneratePress Child — BuildCalc
 Template:     generatepress
 Description:  Child theme for BuildCalc. All theme customizations live here so GeneratePress updates never overwrite them.
 Author:       DB Digital Hub
 Version:      1.2.1
 Text Domain:  generatepress-child
*/

/* Tokens: graphite ink, pine green, safety-yellow tape, chalk-line blue, concrete gray */
:root {
	--bc-ink: #26323A;
	--bc-muted: #5B6770;
	--bc-pine: #3E5C45;
	--bc-pine-dark: #2F4735;
	--bc-tape: #F2C230;
	--bc-chalk: #2F6FB0;
	--bc-concrete: #EEF1F2;
	--bc-rule: #D5DBDF;
	--bc-head: "Barlow Semi Condensed", "Arial Narrow", system-ui, sans-serif;
	--bc-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

body {
	font-family: var(--bc-body);
	font-size: 17px;
	line-height: 1.65;
	color: var(--bc-ink);
	background: #fff;
}
h1, h2, h3, h4, .main-title {
	font-family: var(--bc-head);
	font-weight: 700;
	color: var(--bc-ink);
	letter-spacing: -0.01em;
	line-height: 1.15;
}
h1 { font-size: clamp(2.1rem, 4.5vw, 3.1rem); }
h2 { font-size: clamp(1.55rem, 3vw, 2rem); margin-top: 2.2em; }
h3 { font-size: 1.3rem; }
a { color: var(--bc-chalk); text-underline-offset: 3px; }
a:hover { color: var(--bc-pine); }
:focus-visible { outline: 3px solid var(--bc-chalk); outline-offset: 2px; }

/* Header: the tape blade runs under the site header on every page */
.site-header {
	background: #fff;
	border-bottom: 0;
	position: relative;
}
.site-header::after {
	content: "";
	display: block;
	height: 10px;
	background-color: var(--bc-tape);
	background-image:
		repeating-linear-gradient(90deg, var(--bc-ink) 0 2px, transparent 2px 64px),
		repeating-linear-gradient(90deg, var(--bc-ink) 0 1px, transparent 1px 16px);
	background-size: 100% 100%, 100% 45%;
	background-repeat: no-repeat;
}
.main-title a, .main-title a:hover {
	font-family: var(--bc-head);
	font-size: 1.7rem;
	color: var(--bc-ink);
	text-decoration: none;
}
.site-description { color: var(--bc-muted); font-size: .9rem; }
.main-navigation, .main-navigation ul ul { background: #fff; }
.main-navigation .main-nav ul li a {
	color: var(--bc-ink);
	font-weight: 600;
	font-size: .98rem;
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a {
	color: var(--bc-pine);
	box-shadow: inset 0 -3px 0 var(--bc-tape);
}

/* Content */
.separate-containers .inside-article,
.one-container .container { background: #fff; }
.inside-article { padding-top: 2rem; }
.entry-content > p, .entry-content > ul, .entry-content > ol { max-width: 44rem; }
.entry-content ul li::marker { color: var(--bc-pine); }
.entry-meta { color: var(--bc-muted); font-size: .9rem; }
.entry-title a { color: var(--bc-ink); text-decoration: none; }
.entry-title a:hover { color: var(--bc-pine); }

/* Buttons */
.wp-block-button__link, button, input[type="submit"] {
	background: var(--bc-pine);
	color: #fff;
	border-radius: 4px;
	font-weight: 700;
}
.wp-block-button__link:hover, button:hover, input[type="submit"]:hover { background: var(--bc-pine-dark); color: #fff; }

/* Homepage */
.bc-hero { padding: 2.5rem 0 1.5rem; max-width: 46rem; }
.bc-hero h1 { margin-bottom: .6rem; }
.bc-hero p { font-size: 1.15rem; color: var(--bc-muted); margin-bottom: 0; }
.bc-group { margin: 2.4rem 0 0; }
.bc-group h2 {
	margin: 0 0 .9rem;
	padding-bottom: .4rem;
	border-bottom: 2px solid var(--bc-ink);
	font-size: 1.45rem;
}
.bc-index { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 0 2rem; }
.bc-index li { margin: 0; border-bottom: 1px solid var(--bc-rule); }
.bc-index a {
	display: block;
	padding: .8rem 0 .8rem .9rem;
	border-left: 3px solid transparent;
	color: var(--bc-ink);
	text-decoration: none;
	font-weight: 600;
}
.bc-index a span { display: block; font-weight: 400; font-size: .9rem; color: var(--bc-muted); }
.bc-index a:hover { border-left-color: var(--bc-tape); background: var(--bc-concrete); }
.bc-promise {
	margin-top: 3rem;
	padding: 1.5rem 1.6rem;
	background: var(--bc-concrete);
	border-left: 6px solid var(--bc-pine);
	max-width: 46rem;
}
.bc-promise h2 { margin-top: 0; font-size: 1.35rem; }
.bc-hero, .bc-group, .bc-promise, .bc-feature { box-sizing: border-box; }
.bc-hero h1, .bc-hero p, .bc-group h2, .bc-index, .bc-promise > *, .bc-feature > * { margin-left: 0; }
.bc-feature { margin-top: .5rem; }
.bc-feature .buildcalc { margin-top: 0; max-width: 46rem; }
.bc-promise p { margin-bottom: .4rem; }

/* Footer */
.site-info { background: var(--bc-ink); color: #C9D1D6; font-size: .9rem; }
.site-info a { color: #fff; }
.bc-footer-links a { margin-right: 1.1rem; }

@media (max-width: 768px) {
	body { font-size: 16px; }
	.bc-hero { padding-top: 1.5rem; }
}

/* GeneratePress adds 40px inner padding to group blocks; our homepage sections align to the content edge instead */
.bc-hero > .wp-block-group__inner-container,
.bc-group > .wp-block-group__inner-container,
.bc-feature > .wp-block-group__inner-container,
.bc-promise > .wp-block-group__inner-container { padding: 0; }
.bc-hero { padding-top: 1.5rem; }
