/*
Theme Name:   DS Blocks
Theme URI:    https://digisavvy.com
Description:  Block theme (FSE) port of the GeneratePress-based design for The Weed Solution / San Jose Yard Clean-Up. Dark design: black background, white text, green accent.
Author:       DigiSavvy
Author URI:   https://digisavvy.com
Version:      0.1.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  ds-blocks
Tags:         block-theme, full-site-editing, dark
*/

/* ==========================================================================
   1. Base / reset (ported GP essentials)
   ========================================================================== */
/* NOTE: GeneratePress does NOT apply a global border-box reset — component
   geometry (e.g. .service-button circles) depends on content-box sizing. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; }

body {
	margin: 0;
	background-color: #000000;
	color: #ffffff;
	font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
	font-size: 20px;
	line-height: 1.5;
	overflow-x: hidden; /* alignfull uses the 100vw negative-margin trick */
}

img { height: auto; max-width: 100%; border: 0; vertical-align: middle; }
hr { background-color: rgba(0, 0, 0, .1); border: 0; height: 1px; margin-top: 40px; margin-bottom: 40px; }
figure { margin: 0; }
p { margin-top: 0; margin-bottom: 1.5em; }

h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 20px; line-height: 1.2em; text-transform: none; }
h1 { font-family: Helvetica; font-weight: 400; font-size: 60px; margin-bottom: 40px; color: #ffffff; }
h2 { font-weight: 400; font-size: 40px; color: #ffffff; }
h3 { font-size: 30px; font-weight: 400; color: #ffffff; }
h4 { font-size: 30px; line-height: 1.2em; font-weight: 400; color: #000000; }
h5 { font-size: inherit; }

a { color: #ffffff; text-decoration: none; background-color: transparent; }
a:hover, a:focus, a:active { color: #5ddee8; }

/* Hide image captions (site-wide, ported from child theme) */
figcaption { display: none; }

/* ==========================================================================
   2. GP global color / gradient utility classes (ported so existing content
      classes keep resolving)
   ========================================================================== */
:root {
	--contrast: #222222;
	--contrast-2: #575760;
	--contrast-3: #b2b2be;
	--base: #f0f0f0;
	--base-2: #f7f8f9;
	--base-3: #ffffff;
	--accent: #1e73be;
}
:root .has-contrast-color { color: var(--contrast); }
:root .has-contrast-background-color { background-color: var(--contrast); }
:root .has-contrast-2-color { color: var(--contrast-2); }
:root .has-contrast-2-background-color { background-color: var(--contrast-2); }
:root .has-contrast-3-color { color: var(--contrast-3); }
:root .has-contrast-3-background-color { background-color: var(--contrast-3); }
:root .has-base-color { color: var(--base); }
:root .has-base-background-color { background-color: var(--base); }
:root .has-base-2-color { color: var(--base-2); }
:root .has-base-2-background-color { background-color: var(--base-2); }
:root .has-base-3-color { color: var(--base-3); }
:root .has-base-3-background-color { background-color: var(--base-3); }
:root .has-accent-color { color: var(--accent); }
:root .has-accent-background-color { background-color: var(--accent); }
/* Legacy (classic-palette) classes used in content */
:root .has-very-dark-gray-color { color: #313131; }
:root .has-very-dark-gray-background-color { background-color: #313131; }
:root .has-very-light-gray-color { color: #eee; }
:root .has-very-light-gray-background-color { background-color: #eee; }

/* ==========================================================================
   3. Layout: container / content area (GP one-container, no-sidebar)
   ========================================================================== */
.grid-container { max-width: 800px; margin-left: auto; margin-right: auto; }
/* Home uses a wider container (ported from child theme) */
.home .grid-container:not(.inside-navigation) { max-width: 1100px; }

.site-content { padding: 0; color: #c4c4c4; background-color: #000000; }
.inside-article { padding: 0; }
.home.one-container .inside-article,
.home .inside-article { padding: 0; }

/* Content links (GP + child override: hover green in article) */
.inside-article a, .paging-navigation a, .comments-area a, .page-header a { color: #ffffff; }
.inside-article a:hover, .paging-navigation a:hover, .comments-area a:hover, .page-header a:hover { color: #5ddee8; }
.inside-article a:hover { color: #7cd152; text-decoration: underline; }

.entry-title a { color: #ffffff; }
.entry-title a:hover { color: #5ddee8; }
.entry-meta { color: #ffffff; }
.entry-meta a { color: #ffffff; }
.entry-meta a:hover { color: #5ddee8; }

/* Block spacing inside content (ported GP rule). GP did not opt into the
   opinionated block-library "theme" styles, so nested blocks had NO default
   margins — neutralize the block-theme defaults, then re-apply GP's rule
   (which has higher specificity and wins for direct children). */
.entry-content .wp-block-columns,
.entry-content .wp-block-image,
.entry-content .wp-block-gallery,
.entry-content .wp-block-quote,
.entry-content .wp-block-buttons,
.entry-content .wp-block-group { margin-top: 0; margin-bottom: 0; }
.entry-content { margin-top: 0; }
.entry-content > [class*="wp-block-"]:not(:last-child):not(.wp-block-heading) { margin-bottom: 1.5em; }

/* Legacy group inner containers are constrained like the GP container */
.wp-block-group__inner-container { max-width: 800px; margin-left: auto; margin-right: auto; }
.site-content .wp-block-group__inner-container { padding: 0; }
.full-width-block .wp-block-group__inner-container { max-width: initial; }

/* alignfull / alignwide (GP no-sidebar behavior) */
.entry-content .alignfull,
.site-content .alignfull {
	margin-left: calc(-100vw / 2 + 100% / 2);
	margin-right: calc(-100vw / 2 + 100% / 2);
	max-width: 100vw;
	width: auto;
}
.alignright { float: right; margin-left: 1.5em; }
.alignleft { float: left; margin-right: 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }

/* ==========================================================================
   4. Forms + buttons (GP customizer values)
   ========================================================================== */
input[type="text"], input[type="email"], input[type="url"], input[type="password"],
input[type="search"], input[type="tel"], input[type="number"], textarea, select {
	color: #c9c9c9;
	background-color: #424242;
	border: 1px solid transparent;
	padding: 10px;
	max-width: 100%;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus,
input[type="search"]:focus, input[type="tel"]:focus, input[type="number"]:focus, textarea:focus, select:focus {
	color: #c9c9c9;
	background-color: #424242;
	border-color: #bfbfbf;
}
button, html input[type="button"], input[type="reset"], input[type="submit"],
a.button, a.wp-block-button__link:not(.has-background) {
	color: #000000;
	background-color: #ffffff;
	border-color: inherit;
	cursor: pointer;
	padding: 10px 20px;
}
button:hover, html input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover, a.button:hover,
button:focus, html input[type="button"]:focus, input[type="reset"]:focus, input[type="submit"]:focus, a.button:focus,
a.wp-block-button__link:not(.has-background):active,
a.wp-block-button__link:not(.has-background):focus,
a.wp-block-button__link:not(.has-background):hover {
	color: #201f1d;
	background-color: #ffffff;
}
a.button, .sidebar .widget a.button { border-width: 1px; border-style: solid; border-color: inherit; }

.wp-block-button a.wp-block-button__link {
	background-color: #ffffff;
	border-radius: 6px;
	color: #000;
	font-weight: bold;
	font-size: 2em;
}
.wp-block-button a:hover.wp-block-button__link { background-color: #ffffff; }

/* ==========================================================================
   5. Header bar + navigation
   ========================================================================== */
.site-header-bar {
	background-color: #000000;
	box-shadow: 0px 1px 0px 0px rgba(51, 51, 51, 1);
	position: relative;
	z-index: 100;
}
.site-header-bar .inside-navigation {
	max-width: 1250px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	min-height: 60px;
}
.site-header-bar .navigation-branding { order: 1; flex: 0 0 auto; }
.site-header-bar .ds-main-nav { order: 2; }
.site-header-bar div.main-nav.phone-number { order: 6; }
.navigation-branding { line-height: 0; }
.navigation-branding img { width: 150px; height: auto; }
.wp-block-site-logo a { display: block; line-height: 0; }

/* Base list styles so GP Element markup (phone number) renders like GP */
.main-navigation ul { list-style: none; margin: 0; padding: 0; }
.main-navigation .main-nav ul li a {
	display: block;
	color: #ffffff;
	font-family: Arial, Helvetica, sans-serif;
	text-transform: uppercase;
	font-size: 12px;
	line-height: normal;
	padding: 0 12px;
	text-decoration: none;
}

/* Phone number button (GP Element "Phone number in nav" + child CSS)
   2026-08-25: more top padding, rounded corners, dark text for contrast */
.main-navigation:not(.slideout-navigation) div.main-nav.phone-number {
	background-color: #7cd152;
	order: 6;
	padding: 7px 2px 5px;
	border-radius: 8px;
	position: relative;
	top: 3px;
}
.main-navigation div.main-nav.phone-number ul li a {
	font-size: 18px;
	color: #0a0a0a;
	font-weight: 700;
	text-shadow: none;
}
.main-navigation div.main-nav.phone-number ul li:hover > a,
.main-navigation div.main-nav.phone-number ul li:focus > a {
	background-color: #7cd152;
	color: #0a0a0a;
	text-shadow: none;
}

/* Core Navigation block styled to match the GP menu */
.ds-main-nav {
	margin-left: auto;
	margin-top: 10px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	text-transform: uppercase;
	font-weight: normal;
}
.ds-main-nav .wp-block-navigation__container { gap: 0; align-items: center; }
.ds-main-nav .wp-block-navigation-item__content {
	color: #ffffff;
	padding: 6px 12px;
	line-height: normal;
	text-align: center;
	display: block;
}
.ds-main-nav .wp-block-navigation-item__content:hover,
.ds-main-nav .wp-block-navigation-item__content:focus { text-decoration: none; }
.ds-main-nav .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.ds-main-nav .wp-block-navigation__container > .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content,
.ds-main-nav .wp-block-navigation__container > .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.ds-main-nav .wp-block-navigation__container > .wp-block-navigation-item.current-menu-ancestor > .wp-block-navigation-item__content {
	color: #7cd152;
}
/* Dropdowns (GP subnavigation colors) */
.ds-main-nav .wp-block-navigation__submenu-container {
	background-color: #3f3f3f !important;
	border: 0;
	border-radius: 0;
	width: 300px;
	min-width: 300px !important;
	padding-top: 15px;
	z-index: 999;
}
.ds-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: #ffffff;
	font-size: 11px;
	padding: 8px 20px;
	text-align: left;
}
.ds-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.ds-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
	color: #ffffff;
	background-color: #4f4f4f;
}
/* Mobile overlay tweaks — dark panel, brand-green links */
.ds-main-nav .wp-block-navigation__responsive-container-open { color: #ffffff; }
.ds-main-nav .wp-block-navigation__responsive-container-close { color: #7cd152; }
.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open {
	background-color: #0a0a0a !important; /* core sets background-color via inline/inherit */
	color: #7cd152;
}
.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: #7cd152;
	font-size: 25px;
	font-weight: 200;
	text-transform: uppercase;
	text-align: left;
	padding: 8px 0;
}
.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background-color: transparent !important;
	width: auto;
	min-width: 0 !important;
	padding-top: 0;
}

/* ==========================================================================
   6. Footer (GP footer widgets + footer bar)
   ========================================================================== */
.site-footer { margin-top: 20px; background-color: #2f2f2e; }
.footer-widgets { background-color: #2f2f2e; padding: 10px; font-size: 16px; }
.footer-widgets a { color: #ffffff; }
.footer-widgets a:hover { color: #5ddee8; }
.footer-widgets .widget-title { color: #ffffff; }
.widget-title, h2.widget-title { font-size: 20px; margin-bottom: 10px; text-align: center; font-weight: 400; }
.footer-widgets .widget { margin: 0; }
.site-info { color: #ffffff; background-color: #2f2f2e; padding: 20px; padding-top: 0; text-align: center; font-size: 16px; }
.site-info a { color: #ffffff; }
.site-info a:hover { color: #606060; }
.site-info p { margin: 0; }
.footer-bar .widget { margin: 0; }
div.copyright-bar { display: none; }
@media (max-width: 1130px) {
	.footer-widgets .textwidget { text-align: center; }
}
@media (min-width: 1131px) {
	.footer-widgets .footer-widget-3 .textwidget { text-align: right; }
	.footer-widgets .footer-widget-1 .textwidget,
	.footer-widgets .footer-widget-3 .textwidget { padding-top: 12px; }
}

/* Mobile-only business info block above the footer (GP Element) */
.footer-biz-info { display: none; }
@media (max-width: 768px) {
	div.footer-biz-info { background-color: #606060; padding: 20px; display: block; }
	div.footer-biz-info p { margin: 0px; font-size: 16px; text-align: center; text-shadow: 1px 1px black; }
	div.footer-biz-info p:nth-child(2) { margin-top: 16px; }
}

/* ==========================================================================
   7. Site-specific components (ported from child theme style.css)
   ========================================================================== */
/* Home page hero styles */
.page-hero .wp-show-posts .wp-show-posts-entry-title { padding: 20px; }
.page-hero .wp-show-posts-image { margin-bottom: 0; }
.home-hero-description {
	padding: 40px 0;
	text-align: center;
	border-top: 1px solid #5ddee8;
	border-bottom: 1px solid #5ddee8;
}
.narrow-container { max-width: 600px; margin: auto; }
.home .quote-form div.grid-container { max-width: 800px; background-color: #fff; color: #000; }

h2.entry-title { margin-bottom: 5px; }
h1.entry-title { margin-bottom: 5px; }

/* Entry meta styles */
.byline img { width: 25px; height: 25px; border-radius: 50%; position: relative; vertical-align: middle; margin: 0 10px 0 0; }
.byline, .comments-link, .posted-on { display: inline-block; }
.comments-link, .posted-on { border-left: 1px solid rgba(255, 255, 255, 0.5); padding-left: 10px; margin-left: 10px; }
.comments-link:before { display: none; }

/* Comments */
.comment-content { border-color: rgba(255, 255, 255, 0.05); }

/* Service Button Styling */
.service-button {
	display: block;
	width: 250px;
	height: 250px;
	background-size: cover;
	background-color: #ffffff;
	border: 8px solid #7cd152;
	border-radius: 50%;
	text-decoration: none;
	margin-left: auto;
	margin-right: auto;
}
.service-button:hover { border: 8px solid #dddddd; color: #eeeeee; text-shadow: 1px 1px #000000; }
.service-button p { text-align: center; margin-top: 75%; font-size: .9em; font-weight: bold; color: #111111; }
.service-button:hover p { color: #7cd152; }
div.service-buttons {
	margin-bottom: 28px;
	margin-left: calc(-100vw / 2 + 100% / 2);
	margin-right: calc(-100vw / 2 + 100% / 2);
	max-width: 100vw;
	width: auto;
}
div.service-buttons > div {
	margin-left: auto;
	margin-right: auto;
	max-width: 1000px;
	width: auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
div.service-buttons > div > div { width: 300px; }
.service-buttons img:hover { outline: 30px solid #7cd152; outline-offset: -30px; opacity: .7; }

@media (max-width: 599px) {
	div.wp-block-column:not(:last-child) { margin-bottom: 28px; }
	div.service-buttons > div > div:not(:first-child) { margin-top: 20px; }
}

/* Gallery Button styles */
.gallery-button { color: white; font-size: .9em; font-weight: normal; text-align: center; text-shadow: 1px 1px black; }
.gallery-buttons {
	background-color: #7cd152;
	border-radius: 6px;
	height: 50px;
	line-height: 50px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	width: 275px;
}
.inside-article .gallery-buttons p a:hover { color: white; text-decoration: underline; text-shadow: initial; }

div.entry-content figure.wp-block-image.home-nobottommargin { line-height: 0; margin-bottom: 0; }
h3.home-nobottommargin { padding-top: .5em; padding-bottom: .5em; margin-bottom: 0; }
h3.nobottommargin, p.nobottommargin { margin-bottom: 0; }

/* Contact form styling */
.biz-info { width: 45%; float: left; padding-top: 30px; }
.biz-info p { font-size: 16px; margin-bottom: .5em; }
/* NOTE: the old child theme set `.wsf-form { background:#ccc }` but WS Form's
   own stylesheet loaded later and overrode it to transparent under GP — the
   rendered site shows the form on the page background, so we keep it that way. */
.wsf-form .wsf-tile { padding-left: 0 !important; padding-right: 0 !important; }
.wsf-form .wps-form-state-field { padding-left: 10px !important; }
.wsf-form .wsf-grid, form.wsf-form { margin-left: auto; margin-right: auto; }
.wpforms-title, .wpforms-description, .wsf-form h2 { color: #000; }
div.wpforms-container-full .wpforms-form .wpforms-description { font-size: 16px; padding-left: 20px; }
.flex-form-div { display: flex; }
.left-form { flex-basis: 60%; }
.wsf-form .wsf-sections { flex-wrap: nowrap; }
.wsf-form .wsf-sections fieldset:first-child { flex-grow: 1 !important; flex-shrink: 1 !important; }
.wsf-form .wsf-sections fieldset:last-child { flex-shrink: 2 !important; }
div.wpforms-container-full form.wpforms-form div.flex-form-div .right-info,
.wsf-form .right-info {
	background-color: #606060;
	flex-grow: 1;
	margin: 10px 0 10px 20px;
	padding: 20px;
	text-shadow: 1px 1px black;
}
.wsf-form .right-info { margin-top: 0; }
div.wpforms-container-full div.flex-form-div .right-info p,
.wsf-form .right-info p { color: #ffffff; font-size: 14px; text-align: right; text-shadow: 1px 1px black; }
div.wpforms-container-full div.flex-form-div .right-info b,
.wsf-form .right-info b { text-shadow: 1px 1px black; }
div.wpforms-container-full .wpforms-form p.biz-contact { margin-bottom: 40px; }
div.wpforms-container-full form.wpforms-form div.wpforms-title,
.wsf-form h2 { font-weight: bold; font-size: 36px; text-align: center; text-shadow: 1px 1px white; }
@media (max-width: 768px) {
	div.wpforms-container-full form.wpforms-form div.flex-form-div .right-info,
	.wsf-form .wps-form-contact-info { display: none; }
	.left-form { flex-basis: initial; }
	div#wpforms-190-field_8-container { overflow-x: initial; }
}
@media (max-width: 768px) {
	div.contact-form, form.wsf-form { max-width: 95%; }
}
@media (min-width: 769px) {
	div.contact-form, form.wsf-form { max-width: 765px; }
}
div.wpforms-container-full.contact-form div.wpforms-field-checkbox,
.wsf-form div[data-type="checkbox"] { padding: 6px 10px !important; background-color: #fff; color: #666; }
div.wpforms-container-full.contact-form div.wpforms-field-checkbox label.wpforms-field-label { font-weight: 400; }
div.wpforms-container-full .wpforms-form span.wpforms-required-label { color: #333; }
div.wpforms-container-full .wpforms-form div.wpforms-submit-container button.submit-orange,
.wsf-form button.submit-orange { background-color: orange !important; border: 1px solid #eee !important; }
.wsf-form button.submit-orange {
	color: #333 !important;
	display: inline-block;
	font-size: 20px !important;
	padding: 10px 15px;
	width: auto !important;
}

/* Request a quote banner (GP Element) */
div.request-quote {
	background-color: #7cd152;
	margin-bottom: 1.5em;
	margin-left: calc(-100vw / 2 + 100% / 2);
	margin-right: calc(-100vw / 2 + 100% / 2);
	max-width: 100vw;
	padding-top: 10px;
	padding-bottom: 10px;
	width: auto;
}
.request-quote h2 { font-weight: 500; margin: 0; }

/* Galleries */
li.blocks-gallery-item:last-child { flex-grow: initial; }
.gallery-align-center ul.blocks-gallery-grid { align-items: center; }
.gallery-align-center li.blocks-gallery-item { flex-grow: initial; }

div.entry-content div.return-home { padding: 20px; margin-bottom: 10px; }
div.return-home h3 { margin: 0; text-shadow: 1px 1px black; }
div.return-home h3 a:hover { color: white; }

.page-id-186 #page, .page-id-631 #page { margin-top: 1px; }

/* ==========================================================================
   8. Ported Customizer "Additional CSS" (was theme-scoped to the GP child)
   ========================================================================== */
div.inside-article h4.green-underlined-link a,
.inside-article h4.green-underlined-link a { text-decoration: underline; color: #7CD152; }
.weed-abatement { background-image: url(https://theweedsolution.com/wp-content/uploads/2020/03/weed-abatement-160x160-1.png); }
.weed-abatement:hover { background-image: url(https://theweedsolution.com/wp-content/uploads/2020/03/Fire-Break-2-640x640-1.jpg); }
.weed-control { background-image: url(https://theweedsolution.com/wp-content/uploads/2020/03/weed-control-760x760-1.png); }
.weed-control:hover { background-image: url(https://theweedsolution.com/wp-content/uploads/2020/06/weed-control-576x576-1.jpg); }
.weed-removal { background-image: url(https://theweedsolution.com/wp-content/uploads/2020/03/weed-removal-640x640-1.png); }
.weed-removal:hover { background-image: url(https://theweedsolution.com/wp-content/uploads/2020/03/weed-removal-840x840-1.jpg); }
.fire-safety { background-image: url(https://theweedsolution.com/wp-content/uploads/2020/03/fire-safety-640x640-1.png); }
.fire-safety:hover { background-image: url(https://theweedsolution.com/wp-content/uploads/2020/03/fire-safety-840x840-1.jpg); }
/* Gallery Button Styling */
.service-buttons.service-buttons-weed > div > div { width: 250px; }
.gallery-buttons.gallery-buttons-weed { width: 200px; }
h3#weed-abatement::before, h3#weed-control::before, h3#weed-removal::before, h3#fire-safety::before {
	display: block;
	content: " ";
	margin-top: -90px;
	height: 90px;
	visibility: hidden;
}
body.page-id-1237 {
	background-image: url("https://theweedsolution.com/wp-content/uploads/2020/04/weed-abatement-full-size.jpg");
	background-repeat: no-repeat;
	background-color: #cccccc;
	background-size: cover;
}
body.page-id-1237 div#page, body.page-id-1237 .site-content { background-color: initial; }
p.thank-you { color: #ffffff; font-size: 24px; margin-bottom: 0; }

/* ==========================================================================
   9. Mobile (GP breakpoint: 768px)
   ========================================================================== */
@media (max-width: 768px) {
	h1 { font-size: 30px; }
	h2 { font-size: 25px; }
	.site-content { padding: 0 20px; }
	.entry-content .alignfull,
	.site-content .alignfull {
		margin-left: -20px;
		margin-right: -20px;
		width: calc(100% + 40px);
		max-width: calc(100% + 40px);
	}
	.footer-widgets .widget ul li { padding-bottom: 20px; }
	.main-navigation div.main-nav.phone-number ul { display: block; padding-right: 6px; }
	.ds-main-nav { margin-top: 0; }
	.site-header-bar .inside-navigation { min-height: 50px; }
}
@media (min-width: 769px) {
	.footer-widgets .widget ul li { padding-bottom: 0; }
}

/* ============================================================
   Backported fixes (found during sanjoseyardcleanup QA)
   ============================================================ */
/* GP list normalize: zero top margin, 3em indent via margin (not padding) */
ul, ol { margin: 0 0 1.5em 3em; padding: 0; }
ul { list-style: disc; }
ul ul, ol ol, ul ol, ol ul { margin-bottom: 0; }

/* GP fired generate_after_content OUTSIDE .entry-content; our bridge appends
   inside it — strip preceding block's margin to match GP. */
.entry-content > [class*="wp-block-"]:has(+ h3:not(.wp-block-heading)) { margin-bottom: 0 !important; }

/* Template wp:shortcode renders get autop'd — hide stray empty <p> artifacts. */
.request-quote p:empty,
.site-content > p:empty { display: none; }

/* 404 search form sized like GP's get_search_form() output */
.wp-block-search__inside-wrapper { justify-content: flex-start; }
.wp-block-search .wp-block-search__input { flex-grow: 0; width: 230px; }
.wp-block-search { margin-bottom: 1.5em; }

/* ==========================================================================
   Mobile refinements (2026-08-25)
   ========================================================================== */
/* 3-line hamburger icon (core SVG is 2 lines) */
.ds-main-nav .wp-block-navigation__responsive-container-open svg { display: none; }
.ds-main-nav .wp-block-navigation__responsive-container-open::before {
	content: "";
	display: block;
	width: 26px;
	height: 20px;
	background: linear-gradient(
		#ffffff 0 3px, transparent 3px 8px,
		#ffffff 8px 11px, transparent 11px 17px,
		#ffffff 17px 20px);
}
/* Overlay: breathing room around the open menu panel */
.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 32px 24px;
}
/* Close button: white circle, black X (svg uses currentColor) */
.ds-main-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	width: 40px;
	height: 40px;
	padding: 0;
	border-radius: 50%;
	background-color: #ffffff;
	color: #0a0a0a;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* Hamburger + overlay menu up to 1280px (core hardcodes the 600px switch) */
@media (min-width: 600px) and (max-width: 1280px) {
	.ds-main-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ds-main-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	/* only the phone pill keeps margin-left:auto, so pill + hamburger sit together at the right */
	.site-header-bar .ds-main-nav { margin-left: 0; }
}
/* Header order up to 1280px: logo left; phone CTA + hamburger pushed right */
@media (max-width: 1280px) {
	.site-header-bar .ds-main-nav { order: 7; flex: 0 0 auto; }
	.site-header-bar .inside-navigation {
		flex-wrap: nowrap;
		justify-content: space-between;
		column-gap: 16px;
	}
	.site-header-bar .navigation-branding { min-width: 0; }
	.site-header-bar div.main-nav.phone-number { margin-left: auto; }
}
/* Compact sizing below 600px only */
@media (max-width: 599px) {
	.site-header-bar .inside-navigation { column-gap: 8px; padding-inline: 12px; }
	.site-header-bar .navigation-branding img { width: 110px; }
	.main-navigation div.main-nav.phone-number ul li a { font-size: 15px; padding: 0 8px; }
	.ds-main-nav .wp-block-navigation__responsive-container-open { padding: 4px 2px; }
}
/* Content inline padding on small screens */
@media (max-width: 768px) {
	.site-main article { padding-inline: 24px; }
	.site-main article .alignfull { margin-inline: -24px; }
	.request-quote { padding-inline: 24px; }
	.request-quote .alignfull,
	.request-quote .full-width-block { margin-inline: -24px; }
}
/* Full-width hero image first in content sits flush against what follows */
.entry-content > figure.wp-block-image.alignfull:first-child {
	margin-bottom: 0;
	line-height: 0;
}

/* Hamburger hover: global button:hover paints the bg white — invert the bars
   to dark so they stay visible */
.ds-main-nav .wp-block-navigation__responsive-container-open:hover::before,
.ds-main-nav .wp-block-navigation__responsive-container-open:focus::before {
	background: linear-gradient(
		#0a0a0a 0 3px, transparent 3px 8px,
		#0a0a0a 8px 11px, transparent 11px 17px,
		#0a0a0a 17px 20px);
}
