/* ============================================================
   NORTHWEST WEB DEVELOPMENT - styles_custom.css
   Base styles, layout, components, page sections
   Ordered to match DOM hierarchy: html > body > #page > header > footer > main sections
   ============================================================ */


/* ────────────────────────────────────────────
   CSS VARIABLES
──────────────────────────────────────────── */
:root {
	--black:       #0d0d0d;
	--off-white:   #f5f4f0;
	--white:       #ffffff;
	--green-dark:  #005a2d;
	--green-mid:   #00873c;
	--green-light: #2da53c;
	--green-bright:#87c33c;
	--yellow-green:#b4d22d;
	--accent:      #b4d22d;
	--text-primary:#0d0d0d;
	--text-muted:  #5a5a5a;
	--text-light:  #8a8a8a;
	--border:      #e2e0da;
	--section-alt: #f0efe9;
	--hdr-tall:    140px;   /* header height before scroll */
	--hdr-compact: 100px;   /* header height after scroll  */
}


/* ────────────────────────────────────────────
   RESET & BASE
──────────────────────────────────────────── */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: 'DM Sans', sans-serif;
	font-size: 17px;
	line-height: 1.65;
	color: var(--text-primary);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
}
#page,
.site,
#content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.site-main > * {
	margin:0;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	text-decoration: none;
	color: inherit;
}
.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) {
	background:var(--yellow-green);
}
.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) img {
	outline:none;
}

h1, h2, h3, h4, h5 {
	font-family: 'DM Serif Display', serif;
	line-height: 1.15;
	font-weight: 400;
}

p {
	color: var(--text-muted);
}

br.Clear {
	clear: both;
	line-height: 0;
	font-size: 0;
}


/* ────────────────────────────────────────────
   LAYOUT
──────────────────────────────────────────── */
.pad {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 40px;
}


/* ────────────────────────────────────────────
   ACCESSIBILITY
──────────────────────────────────────────── */
.skip-link.screen-reader-text {
	position: absolute;
	left: -9999px;
}
.skip-link.screen-reader-text:focus {
	left: 6px;
	top: 6px;
	z-index: 9999;
	background: var(--yellow-green);
	color: var(--black);
	padding: 8px 16px;
	font-weight: 600;
}


/* ────────────────────────────────────────────
   BUTTONS
──────────────────────────────────────────── */
.btnPrimary {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--yellow-green);
	color: var(--black);
	font-family: 'DM Sans', sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.03em;
	padding: 16px 32px;
	border-radius: 2px;
	transition: background 0.2s, transform 0.15s;
}
.btnPrimary:hover {
	background: #c8e835;
	transform: translateY(-1px);
}
.btnPrimary svg {
	transition: transform 0.2s;
}
.btnPrimary:hover svg {
	transform: translateX(3px);
}

.btnSecondary {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: transparent;
	color: var(--white);
	font-family: 'DM Sans', sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.03em;
	padding: 16px 32px;
	border: 1px solid rgba(255,255,255,0.2);
	border-radius: 2px;
	transition: border-color 0.2s, background 0.2s;
}
.btnSecondary:hover {
	border-color: var(--yellow-green);
	background: rgba(180,210,45,0.06);
}

.btnPrimaryDark {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--black);
	color: var(--white);
	font-family: 'DM Sans', sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.03em;
	padding: 18px 40px;
	border-radius: 2px;
	transition: background 0.2s, transform 0.15s;
}
.btnPrimaryDark:hover {
	background: var(--green-dark);
	transform: translateY(-1px);
}
.btnPrimaryDark svg {
	transition: transform 0.2s;
}
.btnPrimaryDark:hover svg {
	transform: translateX(3px);
}


/* ────────────────────────────────────────────
   SECTION EYEBROW LABELS
──────────────────────────────────────────── */
.sectionEyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: 'DM Sans', sans-serif;
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--green-mid);
	margin-bottom: 20px;
}
.sectionEyebrow::before {
	content: '';
	display: block;
	width: 24px;
	height: 1px;
	background: var(--green-mid);
	flex-shrink: 0;
}
.sectionEyebrowCenter {
	display: flex;
	justify-content: center;
}
.sectionEyebrowLight {
	color: rgba(180,210,45,0.8);
}
.sectionEyebrowLight::before {
	background: rgba(180,210,45,0.5);
}


/* ────────────────────────────────────────────
   SITE HEADER
   header#masthead > .pad > #hdrLogo + #hdrNav
──────────────────────────────────────────── */

/* Override Twenty Twenty-One header defaults */
.site-header,
header#masthead {
	display: block !important;          /* kill TT1 flex-start alignment */
	align-items: unset !important;
	flex-wrap: unset !important;
	row-gap: 0 !important;
	position: fixed !important;
	top: 0;
	left: 0;
	width: 100% !important;
	max-width:100%;
	z-index: 100;
	height: var(--hdr-tall);
	background:#0d0d0d !important;
	border: none !important;
	margin: 0 !important;
	padding: 0 !important;
	transition: height 0.35s ease, background 0.35s ease, box-shadow 0.35s ease;
}

/* Account for WP admin bar when logged in */
.admin-bar .site-header,
.admin-bar header#masthead {
	top: 32px;
}
@media only screen and (max-width: 782px) {
	.admin-bar .site-header,
	.admin-bar header#masthead {
		top: 46px;
	}
}

/* Neutralize TT1 max-width rule on header descendants */
.site-header *,
.site-header *::before,
.site-header *::after {
	max-width: none !important;
}

/* Prevent TT1 padding-top on .site-header from media queries */
@media only screen and (min-width: 482px) {
	.site-header {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}
}

/* Inner container - logo left, nav right */
.site-header .pad {
	height: 100%;
	max-width: 1180px !important;
	margin: 0 auto;
	padding: 0 40px;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
}

/* Sticky / scrolled state */
.site-header.sticky {
	height: var(--hdr-compact) !important;
	background:#0d0d0d !important;
	box-shadow: 0 1px 0 rgba(255,255,255,0.08);
}

/* Logo */
#hdrLogo a {
    display: flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
}
#hdrLogoImg {
    width:150px;
    height: auto;
    flex-shrink: 0;
    transition: width 0.35s ease;
}
.site-header.sticky #hdrLogoImg {
    width: 40px;
}
#hdrLogoText {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}
.hdrLogoName {
    font-family: 'DM Serif Display', serif;
    font-size:28px;
    font-weight: 400;
    color: var(--white);
    letter-spacing: 0.01em;
    transition: width 0.35s ease;
}
.hdrLogoSub {
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--yellow-green);
    transition: width 0.35s ease;
}
.site-header.sticky #hdrLogoImg {
	width: 100px;
}
.site-header.sticky .hdrLogoName {
	font-size:18px
}
.site-header.sticky .hdrLogoSub {
	font-size:10px
}


/* ────────────────────────────────────────────
   SITE FOOTER
   #siteFooter > .pad > .ftrInner
──────────────────────────────────────────── */
#siteFooter {
	background: var(--black);
	padding: 48px 0;
	border-top: 1px solid rgba(255,255,255,0.06);
}

.ftrInner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}

.ftrLogo {
	display: flex;
	align-items: center;
	gap: 12px;
}
.ftrLogo img {
	height: 32px;
	width: auto;
	opacity: 0.7;
	transition: opacity 0.2s;
}
.ftrLogo:hover img {
	opacity: 1;
}
.ftrLogoText {
	font-family: 'DM Serif Display', serif;
	font-size: 16px;
	color: var(--white);
	opacity: 0.7;
}

.ftrNav {
	list-style: none;
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
}
.ftrNav a {
	font-family: 'DM Sans', sans-serif;
	font-size: 13.5px;
	font-weight: 500;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.5);
	transition: color 0.2s;
}
.ftrNav a:hover {
	color: var(--yellow-green);
}

.ftrCopy {
	font-size: 13px;
	color: rgba(255,255,255,0.3);
}




.grecaptcha-badge {
	display:none !important;
}
