/*
Theme Name: TurnUpCity
Theme URI: https://turnupvip.gov
Author: TurnUpVIP
Author URI: https://turnupvip.gov
Description: Enterprise-grade WordPress Full Site Editing theme for government websites. Built entirely with native core blocks.
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
Version: 1.0.5
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: govsecure
Tags: block-themes, full-site-editing, government, accessibility-ready
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,300..800;1,300..800&display=swap');

:root {
    --gs-container-width: 1240px;
    --gs-content-width: 860px;
    --gs-layout-gutter: clamp(24px, 4vw, 48px);
    --wp--style--global--wide-size: min(var(--gs-container-width), calc(100vw - (var(--gs-layout-gutter) * 2)));
    --wp--style--global--content-size: min(var(--gs-content-width), calc(100vw - (var(--gs-layout-gutter) * 2)));
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 16px; }

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: #0f172a;
    background: #ffffff;
    line-height: 1.65;
    margin: 0;
}

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

/* Skip link */
.skip-link {
    position: absolute; top: -120px; left: 1rem; z-index: 99999;
    background: #2563eb; color: #fff; padding: 0.75rem 1.5rem;
    font-weight: 700; border-radius: 0 0 8px 8px; text-decoration: none;
    transition: top 0.15s;
}
.skip-link:focus { top: 0; }

*:focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; border-radius: 3px; }

/* ==========================================================================
   TYPOGRAPHY
   ========================================================================== */

h1, h2, h3, h4, h5, h6,
.wp-block-heading {
    font-family: 'Inter', system-ui, sans-serif;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.18;
    color: #0f172a;
    margin-top: 0;
    margin-bottom: 0;
}

p { margin: 0; }
a { color: #2563eb; text-decoration: underline; }
a:hover { color: #1d4ed8; }

/* ==========================================================================
   HEADER
   ========================================================================== */

/* No top gap on page */
.wp-site-blocks { padding-top: 0 !important; }

header.wp-block-template-part {
    position: sticky;
    top: 0;
    z-index: 9000;
    box-shadow: 0 1px 0 #e2e8f0;
    will-change: box-shadow;
    margin-top: 0 !important;
}

/* Shift sticky header below WP admin bar when logged in */
.admin-bar header.wp-block-template-part { top: 32px !important; }
@media screen and (max-width: 782px) {
    .admin-bar header.wp-block-template-part { top: 46px !important; }
}

.wp-block-site-title a {
    font-weight: 800;
    font-size: 1.125rem !important;
    letter-spacing: -0.04em !important;
    color: #0a1628 !important;
    text-decoration: none !important;
    transition: opacity 0.15s;
}
.wp-block-site-title a:hover { opacity: 0.8; }

.wp-block-site-logo img { border-radius: 6px; }

/* ==========================================================================
   NAVIGATION
   ========================================================================== */

.wp-block-navigation a,
.wp-block-navigation .wp-block-navigation-item__content {
    font-weight: 600;
    font-size: 0.9375rem !important;
    color: #0f172a !important;
    text-decoration: none !important;
    padding: 0.35rem 0.6rem !important;
    border-radius: 6px;
    transition: color 0.15s, background 0.15s;
}
.wp-block-navigation a:hover,
.wp-block-navigation .wp-block-navigation-item__content:hover {
    color: #2563eb !important;
    background: rgba(37,99,235,0.06) !important;
}

/* Mobile hamburger overlay */
.wp-block-navigation__responsive-container.is-menu-open {
    background: #0a1628 !important;
}
.wp-block-navigation__responsive-container.is-menu-open a {
    color: rgba(255,255,255,0.9) !important;
    font-size: 1.125rem !important;
    padding: 0.75rem 1.25rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open a:hover {
    color: #ffffff !important;
    background: rgba(255,255,255,0.08) !important;
}

/* Hamburger button color on white header */
.wp-block-navigation__responsive-container-open svg { color: #0a1628 !important; }

/* ─── FOOTER NAV: override any palette color \2013 must come after global nav rules ─── */
footer .wp-block-navigation a,
footer .wp-block-navigation .wp-block-navigation-item__content,
footer .wp-block-navigation-item a {
    color: rgba(255,255,255,0.7) !important;
    font-size: 0.9375rem !important;
    line-height: 2.1 !important;
    font-weight: 400 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}
footer .wp-block-navigation a:hover,
footer .wp-block-navigation .wp-block-navigation-item__content:hover {
    color: #ffffff !important;
    background: transparent !important;
}

/* ==========================================================================
   BUTTONS
   ========================================================================== */

.wp-block-button__link,
.wp-element-button {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em;
    border-radius: 8px !important;
    text-decoration: none !important;
    transition: filter 0.15s, transform 0.12s, box-shadow 0.15s !important;
    padding: 0.75rem 1.5rem !important;
}

/* Accent / primary CTA */
.has-accent-background-color.wp-block-button__link,
.has-accent-background-color.wp-element-button {
    background: #2563eb !important;
    color: #ffffff !important;
    box-shadow: 0 2px 8px rgba(37,99,235,0.28);
}
.has-accent-background-color.wp-block-button__link:hover,
.has-accent-background-color.wp-element-button:hover {
    background: #1d4ed8 !important;
    box-shadow: 0 6px 20px rgba(37,99,235,0.4) !important;
    transform: translateY(-2px) !important;
}

/* White CTA on dark sections */
.has-primary-background-color .wp-block-button__link,
.has-dark-background-color .wp-block-button__link {
    box-shadow: none;
}

/* Outline variant on dark backgrounds */
.is-style-outline .wp-block-button__link {
    background: transparent !important;
    border-width: 1.5px !important;
}
.is-style-outline .has-white-color.wp-block-button__link {
    border-color: rgba(255,255,255,0.45) !important;
}
.is-style-outline .has-white-color.wp-block-button__link:hover {
    background: rgba(255,255,255,0.1) !important;
    border-color: rgba(255,255,255,0.8) !important;
    transform: translateY(-2px);
}

/* Outline on light backgrounds */
.is-style-outline .has-primary-color.wp-block-button__link {
    border-color: #0a1628 !important;
    color: #0a1628 !important;
}
.is-style-outline .has-primary-color.wp-block-button__link:hover {
    background: #0a1628 !important;
    color: #ffffff !important;
    transform: translateY(-2px);
}

/* Small button size when fontSize is set */
.has-small-font-size .wp-block-button__link,
.has-small-font-size.wp-block-button__link {
    padding: 0.575rem 1.125rem !important;
    font-size: 0.875rem !important;
}

/* ==========================================================================
   SECTION GAPS â€” Remove stacking gaps between full-width sections
   ========================================================================== */

.wp-block-group.alignfull {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.wp-block-post-content > .wp-block-group.alignfull + .wp-block-group.alignfull {
    margin-top: 0 !important;
}

.site-main .wp-block-group.alignfull,
.site-main .wp-block-cover.alignfull,
.site-main .wp-block-columns.alignfull {
    padding-left: var(--gs-layout-gutter);
    padding-right: var(--gs-layout-gutter);
}

.site-main .alignwide,
.site-main .wp-block-group.alignwide,
.site-main .wp-block-columns.alignwide,
.site-main .wp-block-cover.alignwide,
.site-main .wp-block-media-text.alignwide {
    width: 100%;
    max-width: var(--wp--style--global--wide-size) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.page-entry > :not(.alignfull):not(.alignwide),
.page-entry .wp-block-group:not(.alignfull):not(.alignwide):not(.is-layout-flex),
.page-entry .wp-block-columns:not(.alignfull):not(.alignwide),
.page-entry .wp-block-media-text:not(.alignfull):not(.alignwide),
.page-entry .wp-block-table,
.page-entry .wp-block-quote,
.page-entry .wp-block-buttons,
.page-entry .wp-block-search,
.page-entry .wp-block-social-links {
    width: 100%;
    max-width: var(--wp--style--global--content-size);
    margin-left: auto;
    margin-right: auto;
}

/* ==========================================================================
   PAGE CONTENT ALIGNMENT
   ========================================================================== */

.page-entry > *,
.page-entry .wp-block-group.alignwide,
.page-entry .wp-block-group.alignfull,
.page-entry .wp-block-columns.alignwide,
.page-entry .wp-block-columns.alignfull,
.page-entry .wp-block-cover.alignwide,
.page-entry .wp-block-cover.alignfull,
.page-entry .wp-block-media-text.alignwide,
.page-entry .wp-block-media-text.alignfull {
    margin-left: auto;
    margin-right: auto;
}

.page-entry,
.page-entry .wp-block-group,
.page-entry .wp-block-column,
.page-entry .wp-block-cover__inner-container,
.page-entry .wp-block-media-text__content,
.page-entry .wp-block-paragraph,
.page-entry p {
    text-align: left;
}

.page-entry .wp-block-image,
.page-entry figure,
.page-entry img,
.page-entry .gs-rounded-img,
.page-entry .gs-city-img {
    margin-left: auto;
    margin-right: auto;
}

.page-entry .wp-block-heading,
.page-entry .wp-block-post-title,
.page-entry .wp-block-pullquote,
.page-entry .has-text-align-center {
    text-align: center;
}

.page-entry .wp-block-buttons.is-layout-flex,
.page-entry .wp-block-buttons,
.page-entry .wp-block-social-links.is-layout-flex {
    justify-content: center;
}

.page-entry .wp-block-list {
    display: table;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
}

.page-entry .wp-block-columns {
    align-items: stretch;
}

.page-entry .wp-block-column > .wp-block-image,
.page-entry .wp-block-column > .wp-block-buttons,
.page-entry .wp-block-column > .wp-block-social-links,
.page-entry .wp-block-column > .wp-block-heading.has-text-align-center,
.page-entry .wp-block-column > .has-text-align-center {
    margin-left: auto;
    margin-right: auto;
}

/* Fix: color palette bg overrides */
.has-primary-background-color  { background-color: #0a1628 !important; }
.has-secondary-background-color { background-color: #1e3a5f !important; }
.has-dark-background-color      { background-color: #0f172a !important; }
.has-light-gray-background-color { background-color: #f8fafc !important; }
.has-white-background-color     { background-color: #ffffff !important; }
.has-accent-background-color:not(.wp-block-button__link):not(.wp-element-button) {
    background-color: #2563eb !important;
}

/* Text color overrides */
.has-white-color, .has-white-color a { color: #ffffff !important; }
.has-primary-color   { color: #0a1628 !important; }
.has-accent-color    { color: #2563eb !important; }
.has-medium-gray-color { color: #64748b !important; }

/* ==========================================================================
   PATTERN CARDS (.gs-card)
   ========================================================================== */

.gs-card {
    border-radius: 16px !important;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e8edf3;
    box-shadow: 0 1px 4px rgba(15,23,42,0.06), 0 2px 8px rgba(15,23,42,0.04);
    transition: box-shadow 0.22s ease, transform 0.22s ease;
}
.gs-card:hover {
    box-shadow: 0 6px 24px rgba(15,23,42,0.1), 0 2px 8px rgba(15,23,42,0.06) !important;
    transform: translateY(-3px);
}

/* Card on primary (dark) bg â€” invert */
.has-primary-background-color.gs-card,
.has-dark-background-color.gs-card {
    background: rgba(255,255,255,0.07) !important;
    border-color: rgba(255,255,255,0.08) !important;
    box-shadow: none !important;
}
.has-primary-background-color.gs-card:hover,
.has-dark-background-color.gs-card:hover {
    background: rgba(255,255,255,0.10) !important;
    transform: translateY(-2px);
}

/* ==========================================================================
   CITY LOGO CARDS (.gs-city-logo)
   ========================================================================== */

.gs-city-logo-grid {
    align-items: stretch;
}

.gs-city-logo-grid > .gs-city-logo,
.wp-block-group.alignwide.is-layout-flex.wp-block-group-is-layout-flex > .gs-city-logo {
    flex: 1 1 calc((100% - 4rem) / 5);
    max-width: calc((100% - 4rem) / 5);
}

.gs-city-logo {
    cursor: default;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
    min-width: 0 !important;
}
.gs-city-logo:hover {
    border-color: #2563eb !important;
    box-shadow: 0 4px 16px rgba(37,99,235,0.12) !important;
    transform: translateY(-2px);
}
.gs-city-logo .gs-city-img img,
.gs-city-logo img {
    border-radius: 50% !important;
    width: 52px !important;
    height: 52px !important;
    object-fit: cover !important;
    display: block !important;
    margin: 0 auto 0.5rem !important;
    border: 2px solid #e2e8f0;
}

@media (max-width: 1100px) {
    .gs-city-logo-grid > .gs-city-logo,
    .wp-block-group.alignwide.is-layout-flex.wp-block-group-is-layout-flex > .gs-city-logo {
        flex-basis: calc((100% - 2rem) / 3);
        max-width: calc((100% - 2rem) / 3);
    }
}

@media (max-width: 782px) {
    .gs-city-logo-grid > .gs-city-logo,
    .wp-block-group.alignwide.is-layout-flex.wp-block-group-is-layout-flex > .gs-city-logo {
        flex-basis: calc((100% - 1rem) / 2);
        max-width: calc((100% - 1rem) / 2);
    }
}

@media (max-width: 520px) {
    .gs-city-logo-grid > .gs-city-logo,
    .wp-block-group.alignwide.is-layout-flex.wp-block-group-is-layout-flex > .gs-city-logo {
        flex-basis: 100%;
        max-width: 100%;
    }
}

/* ==========================================================================
   IMAGES (.gs-rounded-img)
   ========================================================================== */

.gs-rounded-img {
    border-radius: 16px;
    overflow: hidden;
}
.gs-rounded-img img {
    border-radius: 16px;
    display: block;
    width: 100%;
    height: auto;
}

figure.wp-block-image img {
    display: block;
    max-width: 100%;
    height: auto;
}

/* ==========================================================================
   COLUMNS
   ========================================================================== */

.wp-block-columns { gap: 1.75rem; }
.wp-block-column  { min-width: 0; }

/* ==========================================================================
   BLOCKQUOTES â€” case studies
   ========================================================================== */

.wp-block-quote {
    border-left: 3px solid #2563eb !important;
    padding: 1.25rem 1.5rem !important;
    margin: 0;
    background: rgba(37,99,235,0.04);
    border-radius: 0 12px 12px 0;
}
.wp-block-quote p {
    font-style: italic;
    color: #1e293b;
    line-height: 1.7;
    margin: 0;
}
.wp-block-quote cite {
    display: block;
    margin-top: 0.75rem;
    font-style: normal;
    font-weight: 600;
    font-size: 0.875rem;
    color: #64748b;
}

/* ==========================================================================
   SEPARATOR
   ========================================================================== */

hr.wp-block-separator {
    border: none;
    border-top: 1px solid #e2e8f0;
    opacity: 1 !important;
    margin: 0;
}

/* ==========================================================================
   LISTS
   ========================================================================== */

.wp-block-list {
    list-style: none;
    padding-left: 0;
}
.wp-block-list li {
    margin-bottom: 0.65rem;
    line-height: 1.7;
    padding-left: 1.75rem;
    position: relative;
}
.wp-block-list li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: #2563eb;
    font-weight: 800;
    font-size: 0.9rem;
}

/* On dark backgrounds \2013 checkmark goes white */
.has-primary-background-color .wp-block-list li::before,
.has-dark-background-color .wp-block-list li::before {
    color: rgba(255,255,255,0.6);
}

/* Footer navigation list reset \2013 must NOT have checkmarks */
.wp-block-navigation .wp-block-navigation__container {
    list-style: none !important;
    padding: 0 !important;
}
.wp-block-navigation .wp-block-navigation__container li {
    padding-left: 0 !important;
}
.wp-block-navigation .wp-block-navigation__container li::before {
    content: none !important;
}

/* ==========================================================================
   CONTACT FORM
   ========================================================================== */

.govsecure-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.govsecure-form .form-notice {
    padding: 0.875rem 1rem;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}
.govsecure-form .form-notice.success {
    background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7;
}
.govsecure-form .form-notice.error {
    background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5;
}
.govsecure-form label {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 0.3rem;
}
.govsecure-form input[type="text"],
.govsecure-form input[type="email"],
.govsecure-form select,
.govsecure-form textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1.5px solid #d1d5db;
    border-radius: 8px;
    font-size: 0.9375rem;
    background: #fff;
    color: #111827;
    font-family: 'Inter', sans-serif;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.govsecure-form input:focus,
.govsecure-form select:focus,
.govsecure-form textarea:focus {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37,99,235,0.12);
}
.govsecure-form .form-row-two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.govsecure-form .govsecure-hp { display: none !important; visibility: hidden; }
.govsecure-form .gs-submit-btn {
    background: #2563eb;
    color: #fff;
    border: none;
    padding: 0.9rem 2rem;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    width: 100%;
    font-family: 'Inter', sans-serif;
    transition: background 0.15s, box-shadow 0.15s;
    box-shadow: 0 2px 8px rgba(37,99,235,0.3);
}
.govsecure-form .gs-submit-btn:hover {
    background: #1d4ed8;
    box-shadow: 0 6px 20px rgba(37,99,235,0.42);
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

footer.wp-block-template-part { margin: 0 !important; padding-bottom: 0 !important; }

footer .wp-block-heading {
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,0.55) !important;
    margin-bottom: 1rem !important;
}
footer a {
    text-decoration: none !important;
    transition: color 0.15s;
}
footer .wp-block-site-title a { color: #ffffff !important; }
footer p { color: rgba(255,255,255,0.65); font-size: 0.9375rem; }

/* Full-width separator inside footer \2013 escape constrained layout */
footer .wp-block-separator.is-style-wide,
footer hr.wp-block-separator {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    border: none;
    border-top: 1px solid rgba(255,255,255,0.08) !important;
    opacity: 1 !important;
}

/* ==========================================================================
   TABLES
   ========================================================================== */

.wp-block-table table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.wp-block-table th, .wp-block-table td {
    padding: 0.8rem 1rem; border: 1px solid #e2e8f0; text-align: left;
}
.wp-block-table thead th { background: #0a1628; color: #fff; font-weight: 600; }
.wp-block-table tbody tr:nth-child(even) { background: #f8fafc; }

/* ==========================================================================
   SEARCH
   ========================================================================== */

.wp-block-search__input {
    border: 1.5px solid #e2e8f0; border-right: none;
    border-radius: 8px 0 0 8px; padding: 0.7rem 1rem;
    font-family: 'Inter', sans-serif; font-size: 1rem;
    transition: border-color 0.15s;
}
.wp-block-search__input:focus { border-color: #2563eb; outline: none; }
.wp-block-search__button {
    background: #2563eb; color: #fff; border: 1.5px solid #2563eb;
    border-radius: 0 8px 8px 0; padding: 0.7rem 1.25rem;
    font-weight: 600; cursor: pointer; font-family: 'Inter', sans-serif;
    transition: background 0.15s;
}
.wp-block-search__button:hover { background: #1d4ed8; }

/* ==========================================================================
   PAGINATION
   ========================================================================== */

.wp-block-query-pagination {
    display: flex; justify-content: center; gap: 0.375rem; flex-wrap: wrap; margin: 2.5rem 0;
}
.wp-block-query-pagination a,
.wp-block-query-pagination span.page-numbers {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 2.5rem; height: 2.5rem; padding: 0 0.75rem;
    border: 1px solid #e2e8f0; border-radius: 8px;
    font-weight: 500; color: #0f172a; background: #fff;
    text-decoration: none; transition: all 0.15s;
}
.wp-block-query-pagination a:hover,
.wp-block-query-pagination .current { background: #2563eb; color: #fff; border-color: #2563eb; }

/* ==========================================================================
   ANNOUNCEMENTS BAR
   ========================================================================== */

/* ==========================================================================
   STAT CARDS (.gs-stat-card)
   ========================================================================== */
.gs-stat-card {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    border-top: 3px solid #2563eb;
    text-align: center;
    box-shadow: 0 2px 10px rgba(15,23,42,0.06);
    transition: box-shadow 0.22s ease, transform 0.22s ease;
    height: 100%;
}
.gs-stat-card:hover {
    box-shadow: 0 8px 28px rgba(15,23,42,0.12);
    transform: translateY(-3px);
}

/* ==========================================================================
   BLOG CARDS (.gs-blog-card)
   ========================================================================== */
.gs-blog-card {
    overflow: hidden;
    transition: box-shadow 0.22s ease, transform 0.22s ease;
}
.gs-blog-card:hover {
    box-shadow: 0 8px 28px rgba(15,23,42,0.12);
    transform: translateY(-3px);
}
.gs-blog-card img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
}

/* Announcement bar at top */
.wp-block-group.has-secondary-background-color p { font-size: 0.8125rem !important; }

/* ==========================================================================
   HERO SECTIONS
   ========================================================================== */

/* Make hero headings break properly on small screens */
.has-primary-background-color .wp-block-heading,
.has-dark-background-color .wp-block-heading {
    color: #ffffff;
    letter-spacing: -0.035em;
}

/* Large hero heading */
.has-mega-font-size {
    font-size: clamp(2rem, 5vw, 4rem) !important;
    line-height: 1.1 !important;
}
.has-huge-font-size {
    font-size: clamp(1.75rem, 3.5vw, 3rem) !important;
    line-height: 1.15 !important;
}

/* ==========================================================================
   STAT SECTIONS
   ========================================================================== */

/* Big stat numbers */
.wp-block-group.is-layout-flow h3.wp-block-heading[style*="font-size:3rem"],
.wp-block-group.is-layout-flow h3.wp-block-heading[style*="font-size:2rem"] {
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 782px) {
    /* Stack columns */
    .wp-block-columns.is-layout-flex {
        flex-direction: column !important;
    }
    .wp-block-column {
        flex-basis: 100% !important;
        min-width: 0 !important;
    }
    /* Reduce section padding on mobile */
    .wp-block-group.alignfull[style*="padding-top:6rem"] {
        padding-top: 3.5rem !important;
        padding-bottom: 3.5rem !important;
    }
    .wp-block-group.alignfull[style*="padding-top:5rem"] {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
    }
}

@media (max-width: 600px) {
    .govsecure-form .form-row-two { grid-template-columns: 1fr; }
    .has-mega-font-size { font-size: 2rem !important; }
    .has-huge-font-size { font-size: 1.625rem !important; }
    .wp-block-buttons.is-layout-flex { flex-direction: column; }
    .wp-block-buttons.is-layout-flex .wp-block-button { width: 100%; }
    .wp-block-buttons.is-layout-flex .wp-block-button__link { width: 100%; text-align: center; }
}

/* ==========================================================================
   EDITOR STYLES
   ========================================================================== */

.editor-styles-wrapper body {
    font-family: 'Inter', system-ui, sans-serif;
}

/* ==========================================================================
   WORDPRESS EDITOR ALIGNMENT OVERRIDES
   These rules ensure editor alignment settings take priority
   ========================================================================== */

/* Text Alignment - Applied to blocks with alignment classes */
.has-text-align-left {
    text-align: left !important;
}

.has-text-align-center {
    text-align: center !important;
}

.has-text-align-right {
    text-align: right !important;
}

.has-text-align-justify {
    text-align: justify !important;
}

/* Heading Alignment */
.wp-block-heading.has-text-align-left,
h1.has-text-align-left,
h2.has-text-align-left,
h3.has-text-align-left,
h4.has-text-align-left,
h5.has-text-align-left,
h6.has-text-align-left {
    text-align: left !important;
}

.wp-block-heading.has-text-align-center,
h1.has-text-align-center,
h2.has-text-align-center,
h3.has-text-align-center,
h4.has-text-align-center,
h5.has-text-align-center,
h6.has-text-align-center {
    text-align: center !important;
}

.wp-block-heading.has-text-align-right,
h1.has-text-align-right,
h2.has-text-align-right,
h3.has-text-align-right,
h4.has-text-align-right,
h5.has-text-align-right,
h6.has-text-align-right {
    text-align: right !important;
}

/* Paragraph Alignment */
p.has-text-align-left {
    text-align: left !important;
}

p.has-text-align-center {
    text-align: center !important;
}

p.has-text-align-right {
    text-align: right !important;
}

p.has-text-align-justify {
    text-align: justify !important;
}

/* Block Alignment (alignleft, aligncenter, alignright) */
.alignleft {
    float: left !important;
    margin-right: 1.5rem !important;
    margin-bottom: 1rem !important;
}

.alignright {
    float: right !important;
    margin-left: 1.5rem !important;
    margin-bottom: 1rem !important;
}

.aligncenter {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

/* Wide and Full Alignment */
.alignwide {
    max-width: var(--wp--style--global--wide-size) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.alignfull {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Image Alignment */
figure.alignleft,
.wp-block-image.alignleft {
    float: left !important;
    margin-right: 1.5rem !important;
    margin-bottom: 1rem !important;
}

figure.alignright,
.wp-block-image.alignright {
    float: right !important;
    margin-left: 1.5rem !important;
    margin-bottom: 1rem !important;
}

figure.aligncenter,
.wp-block-image.aligncenter {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

figure.aligncenter img,
.wp-block-image.aligncenter img {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* List Alignment */
ul.has-text-align-left,
ol.has-text-align-left {
    text-align: left !important;
}

ul.has-text-align-center,
ol.has-text-align-center {
    text-align: center !important;
    list-style-position: inside !important;
}

ul.has-text-align-right,
ol.has-text-align-right {
    text-align: right !important;
    list-style-position: inside !important;
}

/* Button Alignment */
.wp-block-button.alignleft {
    float: left !important;
    margin-right: 1.5rem !important;
}

.wp-block-button.alignright {
    float: right !important;
    margin-left: 1.5rem !important;
}

.wp-block-button.aligncenter {
    display: flex !important;
    justify-content: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Buttons Group Alignment */
.wp-block-buttons.is-content-justification-left,
.wp-block-buttons.is-layout-flex.is-content-justification-left {
    justify-content: flex-start !important;
}

.wp-block-buttons.is-content-justification-center,
.wp-block-buttons.is-layout-flex.is-content-justification-center {
    justify-content: center !important;
}

.wp-block-buttons.is-content-justification-right,
.wp-block-buttons.is-layout-flex.is-content-justification-right {
    justify-content: flex-end !important;
}

.wp-block-buttons.is-content-justification-space-between,
.wp-block-buttons.is-layout-flex.is-content-justification-space-between {
    justify-content: space-between !important;
}

/* Individual button alignment within groups */
.wp-block-buttons .wp-block-button.alignleft {
    margin-right: auto !important;
}

.wp-block-buttons .wp-block-button.aligncenter {
    margin-left: auto !important;
    margin-right: auto !important;
}

.wp-block-buttons .wp-block-button.alignright {
    margin-left: auto !important;
}

/* Ensure content inside aligned blocks also respects alignment */
.has-text-align-left * {
    text-align: left !important;
}

.has-text-align-center * {
    text-align: center !important;
}

.has-text-align-right * {
    text-align: right !important;
}

.has-text-align-justify * {
    text-align: justify !important;
}