/* Match the compact, downward-expanding mobile header used by the Ruby app. */
.obra-mobile-menu-toggle, .obra-mobile-menu, .obra-mobile-quick-links { display: none; }
.obra-email-signup, .obra-email-signup .obra-form-row { min-width: 0; max-width: 100%; }
.obra-email-signup input:not([type='checkbox']):not([type='radio']), .obra-email-signup select, .obra-email-signup textarea {
	box-sizing: border-box; min-width: 0; max-width: 100%; width: 100%; font-size: 16px !important;
}
.obra-email-signup .obra-form-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; }

@media (max-width: 767px) {
	.obra-header.obra-mobile-ready {
		box-sizing: border-box; display: flex !important; flex-wrap: wrap !important;
		gap: 0 !important; width: 100%; padding: 0 15px 8px !important;
	}
	.obra-mobile-ready > .wp-block-site-logo {
		box-sizing: border-box; flex: 1 1 auto; order: 1; padding-left: 49px; text-align: center;
	}
	.obra-header .wp-block-site-logo img {
		display: block; width: auto !important; height: 67px !important; margin: 0 auto; object-fit: contain;
	}
	.obra-mobile-ready > .obra-header__right { display: none !important; }
	.obra-mobile-menu-toggle {
		box-sizing: content-box; display: flex; flex: 0 0 34px; flex-direction: column;
		justify-content: center; order: 2; width: 34px; height: 44px; margin: 11px 0 12px 15px;
		padding: 0; border: 0; background: transparent; cursor: pointer;
	}
	.obra-mobile-menu-toggle span {
		display: block; width: 34px; height: 3px; margin: 3px 0; border-radius: 1px; background: var(--obra-navy);
	}
	.obra-mobile-menu-toggle:focus-visible { outline: 3px solid var(--obra-blue); outline-offset: 3px; }
	.obra-mobile-menu {
		box-sizing: border-box; flex: 0 0 calc(100% + 30px); order: 3; width: calc(100% + 30px);
		margin: 0 -15px; border-top: 1px solid #e7e7e7; background: #fff;
	}
	.obra-mobile-menu[hidden] { display: none !important; }
	.obra-mobile-menu:not([hidden]) { display: block; }
	.obra-mobile-menu ul { margin: 0; padding: 0; list-style: none; }
	.obra-mobile-menu li { margin: 0; }
	.obra-mobile-menu a, .obra-mobile-menu summary {
		box-sizing: border-box; display: block; min-height: 32px; padding: 8px 23px;
		color: var(--obra-navy); font: 400 14px/16px 'Open Sans', sans-serif;
		text-decoration: none; text-transform: uppercase;
	}
	.obra-mobile-menu summary { cursor: pointer; list-style: none; }
	.obra-mobile-menu summary::-webkit-details-marker { display: none; }
	.obra-mobile-menu summary::after {
		content: ''; display: inline-block; margin-left: 7px; border-top: 5px solid currentColor;
		border-right: 4px solid transparent; border-left: 4px solid transparent; vertical-align: 3px;
	}
	.obra-mobile-menu details[open] > summary::after { transform: rotate(180deg); }
	.obra-mobile-menu details ul { padding: 4px 0 6px; background: #f7f7f7; }
	.obra-mobile-menu details li a { padding-left: 38px; text-transform: none; }
	.obra-mobile-menu a:hover, .obra-mobile-menu summary:hover { background: #f4f4f4; text-decoration: underline; }
	.obra-mobile-menu a:focus-visible, .obra-mobile-menu summary:focus-visible {
		outline: 3px solid var(--obra-blue); outline-offset: -3px;
	}
	.obra-mobile-quick-links {
		display: block; flex: 0 0 100%; order: 4; padding-top: 2px; color: var(--obra-navy);
		font: 400 18px/1.4 'Open Sans', sans-serif; text-align: center; text-transform: uppercase;
	}
	.obra-mobile-quick-links a { color: var(--obra-navy); text-decoration: none; }
	.obra-mobile-quick-links a:hover { text-decoration: underline; }
	.wp-site-blocks footer .wp-block-columns { flex-wrap: wrap !important; gap: 24px !important; }
	.wp-site-blocks footer .wp-block-columns > .wp-block-column { flex-basis: 100% !important; min-width: 0; }
	.wp-site-blocks footer .copyright { text-align: left; font-size: 13px; }
	.wp-block-group.home-hero {
		box-sizing: border-box; padding-top: 64px !important; padding-bottom: 64px !important;
		min-height: 320px; margin-bottom: 24px !important;
	}
	.wp-block-group.home-hero .wp-block-columns { box-sizing: border-box; padding: 0 16px !important; gap: 0; }
	.home-hero .wp-block-column:empty { display: none; }
	.wp-block-group.home-hero h1 { font-size: 28px !important; letter-spacing: 1px; padding: 24px 20px 12px !important; }
	.wp-block-group.home-hero h1:last-child { padding: 24px 20px !important; }
	.wp-block-group.home-hero h3 { font-size: 18px !important; padding: 0 20px 24px !important; letter-spacing: 1px; }
	.wp-block-group.home-hero.white h2, .wp-block-group.home-hero .white h2 { font-size: 26px !important; letter-spacing: 1px; }
	.wp-block-button.obra-hero-btn .wp-block-button__link,
	.wp-block-button.home-donate-button .wp-block-button__link,
	.wp-block-button.home-hero-button.red .wp-block-button__link {
		box-sizing: border-box; max-width: 100%; font-size: 20px !important; line-height: 1.3 !important;
		padding: 14px 20px !important; border-width: 4px !important;
	}
	.obra-interactive-banner { aspect-ratio: 16 / 9; }
	.obra-interactive-banner::before { opacity: 1; background: rgb(6 43 87 / 35%); }
	.obra-banner-title { font-size: 22px; }
}
