/* Blinn's Fence: component styles that theme.json can't express. */

html { scroll-behavior: smooth; scroll-padding-top: 90px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
:where(h1, h2, h3) { text-wrap: balance; }
:focus-visible { outline: 3px solid var(--wp--preset--color--accent); outline-offset: 2px; }

/* Utility bar */
.bf-utility p { margin: 0; }
.bf-emerg { display: flex; align-items: center; gap: 8px; }
.bf-emerg::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wp--preset--color--accent); box-shadow: 0 0 0 4px rgba(242, 183, 5, .25); flex: none; }
.bf-utility .cllfs-phone { color: var(--wp--preset--color--base); font-weight: 700; text-decoration: none; }

/* Header */
.bf-header { z-index: 50; }
.bf-brand__mark { width: 44px; height: 44px; background: var(--wp--preset--color--primary); border-radius: 8px; display: grid; place-items: center; flex: none; }
.bf-header .wp-block-site-title { white-space: nowrap; }
.bf-header .bf-tagline { margin: 0; white-space: nowrap; }
.bf-nav .wp-block-navigation-item__content { text-decoration: none; color: var(--wp--preset--color--ink); white-space: nowrap; }
.bf-nav .wp-block-navigation-item__content:hover { text-decoration: underline; text-underline-offset: 5px; color: var(--wp--preset--color--primary-2); }
.bf-header__phone { margin: 0; white-space: nowrap; }
.bf-header__phone a { font-weight: 700; color: var(--wp--preset--color--primary); text-decoration: none; }
.bf-header__cta .wp-block-button__link { white-space: nowrap; }
@media (max-width: 1180px) {
	.bf-header .bf-nav .wp-block-navigation__container { display: none; }
	.bf-header .bf-nav .wp-block-navigation__responsive-container-open { display: flex; }
	.bf-header .bf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { display: flex; }
}
@media (max-width: 820px) {
	.bf-utility__call, .bf-header__phone, .bf-header__cta, .bf-header .bf-tagline { display: none !important; }
	.bf-utility .wp-block-group { justify-content: center !important; }
	.bf-header .wp-block-site-title { font-size: 24px !important; }
}

/* Fence-picket edge along the bottom of spruce bands */
.is-style-fence-edge { position: relative; overflow: hidden; }
.is-style-fence-edge::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 56px; pointer-events: none;
	background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .07) 0 14px, transparent 14px 28px); }
.is-style-fence-edge > * { position: relative; z-index: 1; }

/* Hero */
.bf-hero h1 { margin-bottom: 20px; }
.bf-hero .has-large-font-size { max-width: 34em; }
.bf-hero__ctas { margin-bottom: 30px; }
.bf-btn-light .wp-block-button__link { border: 2px solid rgba(255, 255, 255, .6); color: var(--wp--preset--color--base); background: transparent; padding: 12px 20px; }
.bf-btn-light .wp-block-button__link:hover { background: rgba(255, 255, 255, .08); color: var(--wp--preset--color--base); }

/* Check-mark lists */
ul.is-style-checks { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; }
ul.is-style-checks li { display: flex; align-items: center; gap: 8px; margin: 0; }
ul.is-style-checks li::before { content: ""; width: 18px; height: 18px; flex: none;
	background: no-repeat center / 18px 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F2B705' stroke-width='2.5'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E"); }
.bf-proof { font-size: 15px; color: #e8f0ec; margin: 0; }

/* Years band */
.bf-band p { margin: 0; }
.bf-band__figure { font-family: var(--wp--preset--font-family--display); font-weight: 900; font-size: var(--wp--preset--font-size--huge); line-height: .8; color: var(--wp--preset--color--primary); }
.bf-band__text { max-width: 46em; flex: 1 1 320px; }
.bf-band__text strong { color: var(--wp--preset--color--primary); }

/* Section intros */
.bf-section > h2 { margin-bottom: 14px; }
.bf-lede { max-width: 40em; margin-top: 0 !important; margin-bottom: 44px !important; }

/* Services */
.bf-svc { border-top: 1px solid var(--wp--preset--color--line); padding: 24px 0; }
.bf-svc__img { margin: 0; flex: none; }
.bf-svc__img img { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; display: block; }
.bf-svc h3 { margin: 2px 0 4px; }
.bf-svc p { margin: 0; font-size: 15.5px; }
@media (max-width: 420px) { .bf-services { grid-template-columns: 1fr !important; } .bf-svc__img img { width: 72px; height: 72px; } }

/* Process steps */
.bf-steps { counter-reset: bfstep; }
.bf-step { border-top: 3px solid var(--wp--preset--color--accent); padding-top: 18px; counter-increment: bfstep; }
.bf-step::before { content: counter(bfstep); display: block; font-family: var(--wp--preset--font-family--display); font-weight: 900; font-size: 48px; line-height: 1; color: var(--wp--preset--color--accent); margin-bottom: 10px; }
.bf-step h3 { margin: 0; font-size: 19px; }
.bf-step p { margin: 0; font-size: 15.5px; }

/* Page and town heroes */
.bf-page-hero h1 { margin: 0 0 16px; }
.bf-page-hero__lede { max-width: 40em; }
.bf-page-hero__lede p { margin: 0 0 24px; }
.bf-town-body .cllfs-est { max-width: 560px; margin-inline: auto; }

/* Footer */
.bf-footer .wp-block-site-title { font-size: 26px; }
.bf-footer ul.bf-plain { list-style: none; padding: 0; margin: 0; }
.bf-footer ul.bf-plain li { margin: 4px 0; }
.bf-footer a { text-decoration: none; }
.bf-footer a:hover { text-decoration: underline; }
.bf-footer__bottom p { margin: 0; }
.bf-credit a { color: var(--wp--preset--color--accent) !important; }
@media (max-width: 781px) { .bf-footer .wp-block-columns { gap: 28px; } }

/* Layout resets: sections sit flush, intros align left with their headings */
.wp-site-blocks > * { margin-block-start: 0; }
.bf-section .bf-lede, .bf-page-hero__lede { margin-left: max(0px, calc((100% - 1180px) / 2)) !important; margin-right: auto !important; }
