/* ====================================================================
   Suncoast MIS — Unified Stylesheet
   Shared across all pages. Edit brand colors/fonts here once.
   Design language established in index-redesign.html (dark navy theme)
   ==================================================================== */

/* ===== Custom Brand Fonts ===== */
@font-face { font-family: 'Montserrat'; src: url('Montserrat-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Montserrat'; src: url('Montserrat-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Nexa'; src: url('NexaBold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }

/* ===== Design Tokens ===== */
:root {
    --bg-base: #0b1120;
    --bg-surface: #343741;
    --bg-elevated: #3d4049;
    --text-main: #FFFFFF;
    --text-muted: #acb5cc;
    --brand-orange: #fa4616;
    --brand-orange-hover: #e03e12;
    --brand-orange-readable: #ff8a68;
    --brand-slate: #5c6270;
    --brand-slate-readable: #677080;
    --border-color: #5c6270;
    --border-subtle: rgba(172, 181, 204, 0.14);
    --shadow-color: rgba(0, 0, 0, 0.35);
}

/* ===== Reset ===== */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-y: scroll !important; }
body {
    background-color: var(--bg-base); color: var(--text-main);
    font-family: 'Montserrat', sans-serif; font-weight: 400; line-height: 1.6;
    display: flex; flex-direction: column; min-height: 100vh;
    overflow-wrap: anywhere;
}
img, svg, iframe { max-width: 100%; }
img, svg { display: block; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--brand-orange); outline-offset: 3px; }
.skip-link { position: fixed; top: 0.5rem; left: 0.5rem; z-index: 1000; transform: translateY(-180%); background: var(--brand-orange); color: var(--bg-base); padding: 0.75rem 1rem; border-radius: 6px; font-weight: 700; text-decoration: none; }
.skip-link:focus-visible { transform: translateY(0); }

/* ===== Layout ===== */
.container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 2rem; }
h1, h2, h3, .logo-text, .btn-primary, .btn-secondary { font-family: 'Nexa', sans-serif; font-weight: 700; }
h1 { letter-spacing: -0.5px; }
h2 { letter-spacing: -0.3px; }

/* ===== Sections ===== */
.section { padding: 5.5rem 0; }
.section-alt { background-color: rgba(255,255,255,0.015); border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); }
.section-head { max-width: 700px; margin: 0 auto 3rem; text-align: center; }
.eyebrow { display: inline-block; color: var(--brand-orange); font-family: 'Nexa', sans-serif; font-weight: 700; font-size: 0.8rem; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 0.75rem; }
.section-head h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); margin-bottom: 1rem; }
.section-head p { color: var(--text-muted); font-size: 1.05rem; }

/* ===== Icons (inline SVG) ===== */
.icon { width: 26px; height: 26px; stroke: var(--brand-orange); fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.icon-muted { stroke: var(--text-muted); }

/* ===== Header & Navigation ===== */
header { padding: 0.8rem 0; background-color: rgba(11, 17, 32, 0.92); border-bottom: 1px solid var(--border-color); position: sticky; top: 0; z-index: 100; backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); }
.header-wrap { display: flex; align-items: center; gap: 1rem; }
.logo-wrap { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--text-main); }
.header-logo { width: 42px; height: 42px; }
.logo-text { font-size: 1.4rem; letter-spacing: 0.5px; }
.logo-accent { color: var(--brand-orange); }
.main-nav { display: flex; gap: 15px; align-items: center; margin-left: auto; }
.main-nav a { color: var(--text-muted); text-decoration: none; font-family: 'Montserrat', sans-serif; font-weight: 500; font-size: 0.86rem; transition: color 0.2s; white-space: nowrap; }
.main-nav a:hover, .main-nav a.active { color: var(--brand-orange); }
.nav-support { border: 1px solid var(--border-color); padding: 7px 11px; border-radius: 6px; background: transparent; }
.nav-support:hover { border-color: var(--brand-orange); color: var(--text-main) !important; }

.nav-toggle { display: none; align-items: center; gap: 8px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--border-color); border-radius: 8px; background: var(--bg-surface); color: var(--text-main); font: 500 0.88rem 'Montserrat', sans-serif; cursor: pointer; }
.nav-toggle svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }

/* ===== Buttons ===== */
.btn-primary { background: var(--brand-orange); color: var(--bg-base); border: none; min-height: 44px; padding: 14px 28px; border-radius: 8px; font-size: 1rem; cursor: pointer; transition: box-shadow 0.2s, transform 0.2s; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; letter-spacing: 0.3px; text-align: center; font-family: 'Nexa', sans-serif; font-weight: 700; }
.btn-primary:hover { background: var(--brand-orange); box-shadow: 0 0 0 3px rgba(250, 70, 22, 0.28); transform: translateY(-1px); }
.btn-secondary { background: transparent; color: var(--text-main); border: 1px solid var(--border-color); padding: 14px 28px; border-radius: 8px; font-size: 1rem; cursor: pointer; transition: border-color 0.2s, background 0.2s; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; letter-spacing: 0.3px; font-family: 'Nexa', sans-serif; font-weight: 700; }
.btn-secondary:hover { border-color: var(--brand-orange); background: rgba(250,70,22,0.06); color: var(--brand-orange); }
.btn-primary, .btn-secondary { justify-content: center; text-align: center; }
.btn-primary .icon, .btn-secondary .icon { stroke: currentColor; }
#services { scroll-margin-top: 100px; }
/* ===== Hero (Homepage) ===== */
.hero { padding: 5rem 0 3.5rem; text-align: center; }
.hero-eyebrow { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 2px; color: var(--text-muted); margin-bottom: 1.5rem; font-weight: 500; }
.hero h1 { font-size: clamp(2.3rem, 5.2vw, 3.85rem); line-height: 1.1; margin-bottom: 1.5rem; max-width: 900px; margin-left: auto; margin-right: auto; }
.hero-deck { font-size: 1.2rem; color: var(--text-muted); max-width: 720px; margin: 0 auto 2.5rem; }
.hero-ctas { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-bottom: 3.5rem; }
.hero-primary-action { display: flex; flex-direction: column; align-items: center; gap: 0.65rem; margin: 1.5rem auto 2rem; }
.hero-primary-action .btn-primary { width: auto; justify-content: center; }
.action-note { color: var(--text-muted); font-size: 0.82rem; }
.trust-row { display: flex; justify-content: center; align-items: center; gap: 2.5rem; flex-wrap: wrap; color: var(--text-muted); font-size: 0.9rem; }
.trust-row .trust-item { display: flex; align-items: center; gap: 8px; }
.trust-row .icon { width: 18px; height: 18px; }

/* Plain trust claims; intentionally not badge or pill UI. */
.trust-claims { margin-bottom: 4rem; }
.trust-claims .trust-item { display: inline-flex; align-items: center; color: var(--text-muted); font-size: 0.85rem; letter-spacing: 0.5px; font-weight: 500; }
.trust-claims .trust-item strong { color: var(--text-main); }

/* ===== Stats Bar ===== */
.stats-bar { padding: 3rem 0; background: var(--bg-surface); border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; text-align: center; }
.stats-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stat-num { font-family: 'Nexa', sans-serif; font-weight: 700; font-size: clamp(1.9rem, 3.5vw, 2.5rem); color: var(--brand-orange); line-height: 1; margin-bottom: 0.5rem; }
.stat-label { color: var(--text-muted); font-size: 0.9rem; letter-spacing: 0.2px; }

/* ===== Threat Section ===== */
.threat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
.threat-card { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 12px; padding: 1.75rem; display: flex; flex-direction: column; gap: 0.9rem; transition: border-color 0.2s, transform 0.2s; }
.threat-card:hover { border-color: var(--brand-orange); transform: translateY(-2px); }
.threat-top { display: flex; align-items: center; gap: 12px; }
.threat-top .icon { stroke: var(--brand-orange-readable); }
.threat-card h3 { font-size: 1.05rem; }
.threat-stat { color: var(--brand-orange-readable); font-weight: 500; font-size: 0.9rem; }
.threat-card p { color: var(--text-muted); font-size: 0.92rem; }
.threat-solution { display: flex; align-items: center; gap: 8px; padding-top: 0.75rem; border-top: 1px solid var(--border-subtle); font-size: 0.88rem; color: var(--text-main); font-weight: 500; }
.threat-solution .icon { width: 18px; height: 18px; stroke: var(--brand-orange); }

/* ===== Service Cards ===== */
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.home-services-grid { grid-template-columns: repeat(6, 1fr); }
.home-services-grid > .service-card { grid-column: span 2; }
.home-services-grid > .service-card:nth-last-child(2) { grid-column: 2 / span 2; }
.home-services-grid > .service-card:last-child { grid-column: 4 / span 2; }
.service-card { background: var(--bg-surface); padding: 2rem; border-radius: 12px; border: 1px solid var(--border-subtle); transition: transform 0.2s, border-color 0.2s; text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 1rem; }
.service-card:hover { border-color: var(--brand-orange); transform: translateY(-3px); }
.service-card-head { display: flex; align-items: center; gap: 14px; }
.service-card h3 { font-size: 1.1rem; }
.service-card p { color: var(--text-muted); font-size: 0.92rem; flex-grow: 1; }
.service-link { color: var(--brand-orange-readable); font-size: 0.88rem; font-weight: 500; display: inline-flex; align-items: center; gap: 6px; }
.service-link .icon { width: 14px; height: 14px; stroke-width: 2.25; }

/* ===== MIS vs IT Section ===== */
.mis-section { background: var(--bg-surface); padding: 3rem 2.5rem; border-radius: 16px; border: 1px solid var(--border-subtle); }
.mis-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
.mis-col { display: flex; flex-direction: column; gap: 1rem; }
.mis-col-head { display: flex; align-items: center; gap: 12px; }
.mis-col h3 { font-size: 1.2rem; font-family: 'Nexa', sans-serif; font-weight: 700; }
.mis-it { border-right: 1px solid var(--border-subtle); padding-right: 3rem; }
.mis-it .icon { stroke: var(--text-muted); }
.mis-mis h3 { color: var(--brand-orange); }
.mis-col p { color: var(--text-muted); font-size: 0.95rem; }
.mis-list { list-style: none; display: flex; flex-direction: column; gap: 0.6rem; }
.mis-list li { display: flex; align-items: flex-start; gap: 10px; font-size: 0.92rem; color: var(--text-muted); }
.mis-list .icon { width: 16px; height: 16px; margin-top: 3px; }
.mis-it .mis-list .icon { stroke: var(--brand-slate); }

/* ===== How It Works ===== */
.steps-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.step-card { position: relative; padding: 1.75rem 1.5rem 1.5rem; }
.step-num { font-family: 'Nexa', sans-serif; font-weight: 700; font-size: 2.75rem; color: transparent; -webkit-text-stroke: 1.5px var(--brand-slate-readable); line-height: 1; margin-bottom: 1rem; }
.step-card h3 { font-size: 1.05rem; margin-bottom: 0.6rem; display: flex; align-items: center; gap: 10px; }
.step-card h3 .icon { width: 20px; height: 20px; }
.step-card p { color: var(--text-muted); font-size: 0.9rem; }

/* ===== Industry Focus ===== */
.industry-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.industry-card { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 12px; padding: 1.75rem; text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 0.9rem; transition: border-color 0.2s, transform 0.2s; }
.industry-card:hover { border-color: var(--brand-orange); transform: translateY(-3px); }
.industry-card h3 { font-size: 1.05rem; }
.industry-card p { color: var(--text-muted); font-size: 0.88rem; flex-grow: 1; }
.industry-kicker { display: inline-block; align-self: flex-start; color: var(--brand-orange-readable); font-size: 0.72rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }

/* ===== Testimonials ===== */
.testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.testimonial-card { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 12px; padding: 1.75rem; display: flex; flex-direction: column; gap: 1rem; }
.testimonial-quote { color: var(--text-muted); font-size: 0.95rem; font-style: italic; flex-grow: 1; }
.testimonial-author { display: flex; align-items: center; gap: 12px; }
.testimonial-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--bg-elevated); border: 1px solid var(--border-color); display: flex; align-items: center; justify-content: center; }
.testimonial-name { font-family: 'Nexa', sans-serif; font-weight: 700; font-size: 0.9rem; }
.testimonial-role { color: var(--text-muted); font-size: 0.8rem; }

/* ===== Partner Logos ===== */
.partners-bar { display: flex; justify-content: center; align-items: center; gap: 2rem; flex-wrap: wrap; padding: 2.5rem 0; }
.partner-logo-slot { display: flex; align-items: center; justify-content: center; height: 64px; width: 130px; padding: 10px 18px; background: rgba(255,255,255,0.08); border-radius: 10px; transition: opacity 0.2s, background 0.3s ease; opacity: 0.7; }
.partner-logo-slot:hover { opacity: 1; background: #fff; }
.partner-logo-slot img { max-height: 44px; max-width: 100%; width: auto; height: auto; object-fit: contain; filter: brightness(0) invert(1); opacity: 0.5; transition: filter 0.3s ease, opacity 0.3s ease; }
.partner-logo-slot:hover img { filter: none; opacity: 1; }

/* ===== Feature Cards (2-col — ad-landing style) ===== */
.features-heading { text-align: center; margin-bottom: 2.5rem; }
.features-heading h2 { font-size: 2rem; letter-spacing: 0.5px; margin-bottom: 0.75rem; }
.features-heading p { color: var(--text-muted); max-width: 650px; margin: 0 auto; }
.features { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; text-align: center; margin-bottom: 5rem; }
.feature-card { background: var(--bg-surface); padding: 2rem; border-radius: 12px; border: 1px solid var(--border-color); transition: transform 0.2s, border-color 0.2s; }
.feature-card:hover { border-color: var(--brand-orange); transform: translateY(-2px); }
.feature-card h2 { font-size: 1.25rem; margin-bottom: 0.75rem; color: var(--text-main); letter-spacing: 0.5px; }
.feature-card p { color: var(--text-muted); font-size: 0.95rem; }

/* ===== Booking Section ===== */
.booking-section { background: var(--bg-surface); border: 1px solid var(--brand-slate); border-radius: 16px; padding: 3rem 2.5rem; max-width: 640px; margin: 0 auto; text-align: center; }
.booking-section h2 { margin-bottom: 0.5rem; letter-spacing: 0.3px; }
.booking-section p { color: var(--text-muted); margin-bottom: 2rem; font-size: 0.95rem; }

/* ===== Contact Section ===== */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; max-width: 950px; margin: 0 auto; }
.contact-info h2 { font-size: 2rem; margin-bottom: 1.25rem; color: var(--text-main); }
.contact-info > p:first-of-type { color: var(--text-muted); margin-bottom: 1.5rem; }
.contact-detail { color: var(--text-muted); margin-bottom: 1rem; font-size: 1.02rem; display: flex; align-items: center; gap: 12px; }
.contact-detail .icon { width: 20px; height: 20px; }
.contact-detail a { color: var(--text-main); text-decoration: none; font-weight: 500; transition: color 0.2s; }
.contact-detail a:hover { color: var(--brand-orange); }

/* ===== Forms (shared across all pages) ===== */
.contact-form { background: var(--bg-surface); padding: 2rem; border-radius: 12px; border: 1px solid var(--border-subtle); }
.contact-form .form-group, .form-group { margin-bottom: 1rem; }
.contact-form label, .sidebar-card label, .lead-magnet-container label, .promo-form-container label { display: block; font-size: 0.82rem; color: var(--text-muted); margin-bottom: 0.4rem; text-align: left; }
.contact-form input, .contact-form textarea, .contact-form select,
input, textarea, select {
    width: 100%; padding: 12px; border-radius: 6px; border: 1px solid var(--border-color);
    background: var(--bg-base); color: var(--text-main); font-family: 'Montserrat', sans-serif; font-size: 0.95rem;
}
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus,
input:focus, textarea:focus, select:focus { outline: 2px solid var(--brand-orange); outline-offset: 2px; border-color: var(--brand-orange); }
.contact-form select, select {
    appearance: none; -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='%23acb5cc' d='M7 10l5 5 5-5z'/%3e%3c/svg%3e");
    background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px;
}
.contact-form form, .sidebar-card form, .lead-magnet-container form, .promo-form-container form { text-align: center; }
.cf-turnstile { display: flex; justify-content: center; margin: 1rem 0; }
.contact-form .btn-primary, .sidebar-card .btn-primary, .lead-magnet-container .btn-primary, .promo-form-container .btn-primary { width: auto; justify-content: center; }
.field-help { margin-top: 0.45rem; color: var(--text-muted); font-size: 0.78rem; line-height: 1.45; }

/* ===== Sidebar Form Card (geo/vertical pages) ===== */
.sidebar-card { background: var(--bg-surface); padding: 2rem; border-radius: 12px; border: 1px solid var(--border-color); height: fit-content; position: sticky; top: 120px; }
.sidebar-card h3 { margin-bottom: 1rem; font-size: 1.4rem; }
.sidebar-card .btn-primary { display: inline-flex; }

/* ===== Geo/Vertical Page Layout ===== */
.geo-hero { padding: 5rem 0 3rem; text-align: center; border-bottom: 1px solid var(--border-color); }
.geo-hero h1 { font-size: clamp(2.2rem, 4vw, 3.5rem); line-height: 1.2; margin-bottom: 1.5rem; }
.geo-hero .hero-deck { font-size: 1.15rem; color: var(--text-muted); max-width: 800px; margin: 0 auto; }
.content-split { display: grid; grid-template-columns: 3fr 2fr; gap: 4rem; padding: 4rem 0; }
.geo-content h2 { font-size: 1.8rem; margin-bottom: 1rem; color: var(--brand-orange); }
.geo-content p { color: var(--text-muted); margin-bottom: 1.5rem; font-size: 1.05rem; }
.geo-content ul { color: var(--text-muted); margin-left: 1.5rem; margin-bottom: 2rem; font-size: 1.05rem; }
.geo-content li { margin-bottom: 0.5rem; }
.geo-content strong { color: var(--text-main); }
.geo-content a { color: var(--brand-orange); text-decoration: none; font-weight: 500; }
.geo-content a:hover { text-decoration: underline; }
/* Override geo-content link color for buttons — specificity fix */
.geo-content .btn-primary { color: var(--bg-base) !important; text-decoration: none !important; }
.geo-content .btn-primary:hover { color: var(--bg-base) !important; text-decoration: none !important; }
.geo-content .btn-secondary { color: var(--text-main) !important; text-decoration: none !important; }
.geo-content .btn-secondary:hover { color: var(--brand-orange) !important; text-decoration: none !important; }
/* Partner logos: centered on all pages for consistency with homepage */
.geo-content .partners-bar { justify-content: center; }

/* ===== Hub Page (areas-served) ===== */
.hub-hero { padding: 5rem 0 3rem; text-align: center; border-bottom: 1px solid var(--border-color); }
.hub-hero h1 { font-size: clamp(2.2rem, 4vw, 3.5rem); line-height: 1.2; margin-bottom: 1.5rem; }
.hub-hero .hero-deck { font-size: 1.15rem; color: var(--text-muted); max-width: 800px; margin: 0 auto; }
.silo-section { padding: 4rem 0; }
.silo-section h2 { text-align: center; font-size: 2rem; margin-bottom: 3rem; color: var(--text-main); }
.silo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; }
.silo-card { background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 12px; padding: 2rem; transition: transform 0.2s, border-color 0.2s; }
.silo-card:hover { border-color: var(--brand-orange); transform: translateY(-3px); }
.silo-card h3 { font-size: 1.4rem; color: var(--brand-orange); margin-bottom: 1rem; border-bottom: 1px solid var(--border-color); padding-bottom: 0.5rem; }
.silo-list { list-style: none; }
.silo-list li { margin-bottom: 0.75rem; }
.silo-list a { color: var(--text-main); text-decoration: none; font-weight: 500; display: flex; align-items: center; transition: color 0.2s; }
.silo-list a::before { content: "→"; color: var(--brand-orange); margin-right: 8px; font-size: 1.2rem; transition: transform 0.2s; }
.silo-list a:hover { color: var(--brand-orange); }
.silo-list a:hover::before { transform: translateX(4px); }

/* ===== County Intro (hub page SEO copy) ===== */
.county-intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; margin-bottom: 3.5rem; }
.county-intro h3 { color: var(--brand-orange); font-size: 1.2rem; margin-bottom: 0.75rem; }
.county-intro p { color: var(--text-muted); font-size: 0.98rem; }

/* ===== City Chip Grid (hub page) ===== */
.city-group { margin-bottom: 2rem; }
.city-group h3 { display: flex; align-items: center; gap: 10px; font-size: 1.15rem; color: var(--text-main); margin-bottom: 1.25rem; }
.city-group h3 .icon { width: 20px; height: 20px; }
.city-chip-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 1rem; }
.city-chip { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 10px; padding: 1rem 1.25rem; text-decoration: none; color: var(--text-main); font-weight: 500; display: flex; align-items: center; justify-content: space-between; gap: 8px; transition: border-color 0.2s, transform 0.2s, background 0.2s; }
.city-chip:hover { border-color: var(--brand-orange); transform: translateY(-2px); background: rgba(250,70,22,0.06); color: var(--brand-orange); }
.city-chip .icon { width: 16px; height: 16px; stroke-width: 2.25; flex-shrink: 0; }

/* ===== County Column Layout (hub page) ===== */
.county-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }

/* ===== Calendar Section ===== */
.calendar-heading { text-align: center; margin-bottom: 2rem; }
.calendar-heading h2 { font-size: 2rem; letter-spacing: 0.5px; margin-bottom: 0.75rem; }
.calendar-heading p { color: var(--text-muted); max-width: 650px; margin: 0 auto; }
.calendar-container { background: var(--bg-surface); border: 1px solid var(--brand-slate); border-radius: 16px; padding: 1rem; max-width: 1000px; margin: 0 auto 1.5rem; height: 750px; overflow: hidden; }
.calendar-container iframe { width: 100%; height: 100%; border: none; border-radius: 8px; background-color: #fff; }

/* ===== Schedule Page ===== */
.schedule-hero { padding: 2.5rem 0 2rem; text-align: center; flex-grow: 1; }
.schedule-hero h1 { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.2; margin-bottom: 1rem; }
.schedule-deck { font-size: 1.15rem; color: var(--text-muted); max-width: 700px; margin: 0 auto 1.25rem; }
.schedule-assurance { color: var(--text-main); font-weight: 500; max-width: 700px; margin: 0 auto 1.25rem; }
.calendar-status { color: var(--text-muted); font-size: 0.85rem; margin: 0 auto 0.75rem; }
.schedule-support-note { color: var(--text-muted); font-size: 0.95rem; max-width: 700px; margin: 0 auto 5rem; }
.schedule-support-note a { color: var(--text-main); text-decoration: none; font-weight: 500; transition: color 0.2s; }
.schedule-support-note a:hover { color: var(--brand-orange); }
.schedule-support-note .phone-link { white-space: nowrap; }

/* ===== Promo/Lead Magnet (local25) ===== */
.promo-hero { padding: 4rem 0 2rem; text-align: center; }
.promo-deck { font-size: 1.15rem; color: var(--text-muted); max-width: 700px; margin: 0 auto 3rem; }
.lead-magnet-container { background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 12px; padding: 2.5rem; max-width: 700px; margin: 0 auto 4rem; text-align: center; }
.lead-magnet-container h3 { font-size: 1.5rem; margin-bottom: 0.5rem; color: var(--text-main); }
.lead-magnet-container p { color: var(--text-muted); margin-bottom: 1.5rem; font-size: 0.95rem; }
.lead-magnet-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
.lead-magnet-form .form-group { margin-bottom: 0; }
.disclaimer-text { font-size: 0.85rem; color: var(--brand-slate); font-style: italic; text-align: center; margin-top: 1rem; line-height: 1.4; }
.value-prop-container { display: grid; grid-template-columns: 1fr; gap: 2rem; max-width: 800px; margin: 0 auto 4rem; text-align: left; background: var(--bg-surface); padding: 2.5rem; border-radius: 12px; border: 1px solid var(--border-color); }
.value-prop h3 { color: var(--brand-orange); font-size: 1.25rem; margin-bottom: 0.5rem; }
.value-prop p { font-size: 0.95rem; color: var(--text-muted); }
.promo-form-container { background: var(--bg-surface); border: 1px solid var(--brand-slate); border-radius: 16px; padding: 3rem 2rem; max-width: 600px; margin: 0 auto 5rem; text-align: center; }
.promo-form-container h3 { text-align: center; font-size: 1.75rem; margin-bottom: 1.5rem; }
.promo-form-container .cf-turnstile { display: flex; justify-content: center; }
.promo-form-container .btn-primary { display: inline-flex !important; justify-content: center !important; width: auto; }

/* ===== Form Section (ad-landing two-column) ===== */
.form-section { padding: 1rem 0 4rem; }
.form-section-heading { text-align: center; margin-bottom: 2.5rem; }
.form-section-heading h2 { font-size: 2rem; letter-spacing: 0.5px; margin-bottom: 0.75rem; }
.form-section-heading p { color: var(--text-muted); max-width: 650px; margin: 0 auto; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; max-width: 1000px; margin: 0 auto; align-items: start; }
.contact-grid > *, .form-grid > *, .content-split > * { min-width: 0; }
.form-info h3 { font-size: 1.5rem; margin-bottom: 1rem; color: var(--text-main); font-family: 'Nexa', sans-serif; font-weight: 700; letter-spacing: 0.5px; }
.form-info p { color: var(--text-muted); margin-bottom: 1rem; font-size: 1rem; }
.form-info ul { list-style: none; margin-top: 1.5rem; }
.form-info ul li { color: var(--text-muted); margin-bottom: 0.85rem; padding-left: 1.75rem; position: relative; font-size: 0.95rem; }
.form-info ul li::before { content: "\2713"; color: var(--brand-orange); position: absolute; left: 0; font-weight: 700; }

/* ===== Next Steps Callout (ad-success) ===== */
.next-steps { background: var(--bg-surface); border: 1px solid var(--brand-slate); border-radius: 16px; padding: 2.5rem 2rem; max-width: 700px; margin: 0 auto 4rem; text-align: center; }
.next-steps h2 { margin-bottom: 0.75rem; letter-spacing: 0.5px; font-size: 1.5rem; }
.next-steps p { color: var(--text-muted); font-size: 0.95rem; }
.cta-row { display: flex; gap: 1rem; justify-content: center; max-width: 550px; margin: 0 auto 5rem; flex-wrap: wrap; }
.cta-row .btn-primary, .cta-row .btn-secondary { width: auto; min-width: 220px; flex: 1; justify-content: center; }

/* ===== Error Page (404) ===== */
.error-hero { padding: 6rem 0; text-align: center; flex-grow: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.error-code { font-family: 'Nexa', sans-serif; font-weight: 700; font-size: clamp(4rem, 12vw, 8rem); line-height: 1; color: var(--brand-orange); margin-bottom: 1rem; }
.error-deck { font-size: 1.15rem; color: var(--text-muted); max-width: 600px; margin: 0 auto 2.5rem; }
.error-actions { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; }

/* ===== Footer ===== */
footer { text-align: center; padding: 2rem 0; color: var(--text-muted); font-size: 0.875rem; border-top: 1px solid var(--border-color); margin-top: auto; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 1.5rem; margin-bottom: 0.75rem; }
.footer-links a { color: var(--text-muted); text-decoration: none; font-size: 0.85rem; transition: color 0.2s; white-space: nowrap; }
.footer-links a:hover { color: var(--brand-orange); }

/* ===== Legal Pages (Privacy Policy, Terms of Service) ===== */
.legal-content { max-width: 800px; margin: 0 auto; }
.legal-updated { color: var(--text-muted); font-size: 0.9rem; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border-subtle); }
.legal-content h2 { font-size: 1.4rem; margin: 2.5rem 0 1rem; color: var(--text-main); }
.legal-content h3 { font-size: 1.1rem; margin: 2rem 0 0.75rem; color: var(--text-main); }
.legal-content p { margin-bottom: 1rem; line-height: 1.75; color: var(--text-muted); }
.legal-content p strong { color: var(--text-main); }
.legal-content ul { margin: 0.5rem 0 1.5rem 1.5rem; }
.legal-content li { margin-bottom: 0.5rem; line-height: 1.6; color: var(--text-muted); }
.legal-content a { color: var(--brand-orange); text-decoration: none; }
.legal-content a:hover { text-decoration: underline; }

/* ===== Blog System ===== */
.blog-hero { padding: 3.5rem 0 2rem; text-align: center; }
.blog-hero h1 { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 1rem; }
.blog-hero p { color: var(--text-muted); font-size: 1.1rem; max-width: 600px; margin: 0 auto; }

.blog-filters { display: flex; gap: 0.75rem; justify-content: center; flex-wrap: wrap; margin-bottom: 3rem; }
.blog-filter { background: var(--bg-surface); color: var(--text-muted); border: 1px solid var(--border-color); padding: 8px 18px; border-radius: 6px; font-family: 'Montserrat', sans-serif; font-weight: 500; font-size: 0.85rem; cursor: pointer; transition: all 0.2s; text-decoration: none; }
.blog-filter:hover { border-color: var(--brand-orange); color: var(--text-main); }
.blog-filter.active { background: var(--brand-orange); color: var(--bg-base); border-color: var(--brand-orange); }

.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.blog-card { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 12px; overflow: hidden; transition: border-color 0.2s, transform 0.2s; display: flex; flex-direction: column; }
.blog-card:hover { border-color: var(--brand-orange); transform: translateY(-3px); }
.blog-card-body { padding: 1.75rem; flex-grow: 1; display: flex; flex-direction: column; }
.blog-card-cat { color: var(--brand-orange); font-family: 'Nexa', sans-serif; font-weight: 700; font-size: 0.75rem; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 0.5rem; }
.blog-card h3 { font-size: 1.2rem; margin-bottom: 0.75rem; line-height: 1.3; }
.blog-card h3 a { text-decoration: none; color: var(--text-main); }
.blog-card h3 a:hover { color: var(--brand-orange); }
.blog-card-excerpt { color: var(--text-muted); font-size: 0.9rem; line-height: 1.6; margin-bottom: 1.25rem; flex-grow: 1; }
.blog-card-meta { display: flex; gap: 1rem; font-size: 0.8rem; color: var(--text-muted); align-items: center; }
.blog-card-meta svg { width: 14px; height: 14px; stroke: var(--text-muted); fill: none; stroke-width: 1.75; }

.blog-featured { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 12px; padding: 2.5rem; margin-bottom: 3rem; display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center; }
.blog-featured h2 { font-size: 1.6rem; margin-bottom: 1rem; }
.blog-featured p { color: var(--text-muted); margin-bottom: 1.5rem; }
.blog-featured-tag { color: var(--brand-orange); font-family: 'Nexa', sans-serif; font-weight: 700; font-size: 0.75rem; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 0.75rem; }

/* Blog Post Page */
.blog-post { padding: 2rem 0 4rem; }
.blog-post-hero { max-width: 800px; margin: 0 auto 3rem; text-align: center; }
.blog-post-hero .blog-breadcrumb { text-align: left; max-width: 800px; margin: 0 auto 1.5rem; }
.blog-post-hero h1 { font-size: clamp(1.75rem, 4vw, 2.5rem); margin-bottom: 1.5rem; line-height: 1.2; }
.blog-post-meta { display: flex; gap: 1.5rem; justify-content: center; flex-wrap: wrap; font-size: 0.875rem; color: var(--text-muted); margin-bottom: 1rem; }
.blog-post-meta span { display: inline-flex; align-items: center; gap: 6px; }
.blog-post-meta svg { width: 15px; height: 15px; stroke: var(--text-muted); fill: none; stroke-width: 1.75; }
.blog-category-label { display: inline-block; color: var(--brand-orange); font-family: 'Nexa', sans-serif; font-weight: 700; font-size: 0.75rem; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 1rem; }

.blog-breadcrumb { font-size: 0.85rem; color: var(--text-muted); margin-bottom: 2rem; }
.blog-breadcrumb a { color: var(--text-muted); text-decoration: none; }
.blog-breadcrumb a:hover { color: var(--brand-orange); }
.blog-breadcrumb .sep { margin: 0 0.5rem; opacity: 0.5; }

.blog-post-body { max-width: 800px; margin: 0 auto; }
.blog-post-body h2 { font-size: 1.5rem; margin: 2.5rem 0 1rem; color: var(--text-main); }
.blog-post-body h3 { font-size: 1.2rem; margin: 2rem 0 0.75rem; color: var(--text-main); }
.blog-post-body p { margin-bottom: 1.25rem; line-height: 1.8; color: var(--text-muted); }
.blog-post-body p strong { color: var(--text-main); }
.blog-post-body ul, .blog-post-body ol { margin: 0.5rem 0 1.5rem 1.5rem; }
.blog-post-body li { margin-bottom: 0.5rem; line-height: 1.7; color: var(--text-muted); }
.blog-post-body a { color: var(--brand-orange); text-decoration: none; }
.blog-post-body a:hover { text-decoration: underline; }
.blog-post-body blockquote { border-left: 3px solid var(--brand-orange); padding: 1rem 1.5rem; margin: 1.5rem 0; background: var(--bg-surface); border-radius: 0 8px 8px 0; font-style: italic; color: var(--text-muted); }
.blog-post-body .callout { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-left: 3px solid var(--brand-orange); border-radius: 0 8px 8px 0; padding: 1.25rem 1.5rem; margin: 1.5rem 0; }
.blog-post-body .callout p { margin: 0; color: var(--text-muted); }

.blog-author-bio { max-width: 800px; margin: 3rem auto 0; padding: 2rem; background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 12px; display: flex; gap: 1.5rem; align-items: center; }
.blog-author-bio h3 { font-size: 1.1rem; margin-bottom: 0.25rem; color: var(--text-main); }
.blog-author-bio p { font-size: 0.9rem; color: var(--text-muted); margin: 0; line-height: 1.6; }

.blog-related { max-width: 800px; margin: 3rem auto 0; }
.blog-related h2 { font-size: 1.4rem; margin-bottom: 1.5rem; text-align: center; }
.blog-related-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.blog-related-card { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 12px; padding: 1.5rem; transition: border-color 0.2s, transform  0.2s; }
.blog-related-card:hover { border-color: var(--brand-orange); transform: translateY(-2px); }
.blog-related-card .blog-card-cat { margin-bottom: 0.5rem; }
.blog-related-card h3 { font-size: 1.05rem; margin-bottom: 0.5rem; }
.blog-related-card h3 a { text-decoration: none; color: var(--text-main); }
.blog-related-card h3 a:hover { color: var(--brand-orange); }
.blog-related-card p { font-size: 0.85rem; color: var(--text-muted); }

.blog-cta { max-width: 800px; margin: 3rem auto 0; padding: 2.5rem; background: var(--bg-surface); border: 1px solid var(--brand-orange); border-radius: 12px; text-align: center; }
.blog-cta h2 { font-size: 1.5rem; margin-bottom: 1rem; }
.blog-cta p { color: var(--text-muted); margin-bottom: 1.5rem; }

.blog-share { display: flex; gap: 1rem; justify-content: center; max-width: 800px; margin: 2rem auto 0; }
.blog-share a { color: var(--text-muted); font-size: 0.85rem; text-decoration: none; transition: color 0.2s; }
.blog-share a:hover { color: var(--brand-orange); }
.is-hidden { display: none !important; }

/* ===== About / Founder ===== */
.about-hero { padding: 5rem 0; }
.about-hero-grid { display: grid; grid-template-columns: minmax(280px, 440px) 1fr; gap: 4.5rem; align-items: center; }
.founder-photo-frame { border: 1px solid var(--border-color); border-radius: 18px; padding: 10px; background: var(--bg-surface); box-shadow: 0 24px 60px var(--shadow-color); }
.founder-photo-frame picture, .founder-photo-frame img { display: block; width: 100%; }
.founder-photo-frame img { height: auto; border-radius: 12px; }
.about-hero-copy h1 { font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.08; margin-bottom: 1.4rem; }
.about-hero-copy > p { color: var(--text-muted); max-width: 680px; margin-bottom: 1rem; font-size: 1.03rem; }
.about-hero-copy .about-lead { color: var(--text-main); font-size: 1.18rem; }
.about-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.delivery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.delivery-card { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 12px; padding: 2rem; }
.audit-scope-grid .delivery-card { transition: border-color 0.2s, transform 0.2s; }
.audit-scope-grid .delivery-card:hover { border-color: var(--brand-orange); transform: translateY(-2px); }
.delivery-card h3 { margin-bottom: 0.75rem; }
.delivery-card p { color: var(--text-muted); }
.about-story-grid { display: grid; grid-template-columns: 3fr 2fr; gap: 4rem; align-items: start; }
.about-story-grid h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); margin-bottom: 1rem; }
.about-story-grid p { color: var(--text-muted); margin-bottom: 1rem; }
.founder-facts { background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 12px; padding: 1.75rem; }
.founder-facts dl { display: grid; gap: 1rem; }
.founder-facts dl > div { padding-bottom: 1rem; border-bottom: 1px solid var(--border-subtle); }
.founder-facts dl > div:last-child { padding-bottom: 0; border-bottom: 0; }
.founder-facts dt { color: var(--text-muted); font-size: 0.76rem; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 0.25rem; }
.founder-facts dd { color: var(--text-main); font-weight: 500; }

/* ===== Free Systems Audit Offer ===== */
.offer-hero { padding: 4.5rem 0; text-align: center; }
.offer-hero h1 { max-width: 920px; margin: 0 auto 1.25rem; font-size: clamp(2.25rem, 5vw, 4rem); line-height: 1.08; }
.offer-deck { max-width: 780px; margin: 0 auto 2rem; color: var(--text-muted); font-size: 1.12rem; }
.offer-hero .hero-ctas { margin-bottom: 1rem; }
.audit-scope-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.audit-deliverable-grid { display: grid; grid-template-columns: 3fr 2fr; gap: 4rem; align-items: start; }
.audit-deliverable-grid h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); margin-bottom: 1rem; }
.audit-deliverable-grid p { color: var(--text-muted); margin-bottom: 1rem; }
.check-list { list-style: none; margin: 1.5rem 0 2rem; display: grid; gap: 0.7rem; }
.check-list li { color: var(--text-muted); padding-left: 1.6rem; position: relative; }
.check-list li::before { content: "✓"; color: var(--brand-orange); position: absolute; left: 0; font-weight: 700; }
.sample-note { background: var(--bg-surface); border: 1px solid var(--border-color); border-radius: 12px; padding: 2rem; }
.sample-note h3 { margin-bottom: 0.75rem; }
.faq-wrap { max-width: 900px; }
.faq-list { display: grid; gap: 0.85rem; }
.faq-list details { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 10px; padding: 0 1.25rem; }
.faq-list details[open] { border-color: var(--brand-slate); }
.faq-list summary { cursor: pointer; color: var(--text-main); font-weight: 600; padding: 1rem 2rem 1rem 0; position: relative; }
.faq-list summary::marker { color: var(--brand-orange); }
.faq-list details p { color: var(--text-muted); padding: 0 0 1.25rem; }

/* ===== Service Pillars / Article Authority ===== */
.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; padding-top: 1.25rem; color: var(--text-muted); font-size: 0.85rem; }
.breadcrumb a { color: var(--text-muted); text-decoration: none; }
.breadcrumb a:hover, .breadcrumb a:focus-visible { color: var(--brand-orange); }
.breadcrumb span[aria-hidden="true"] { opacity: 0.55; }
.service-prose { max-width: 900px; }
.service-prose > p { color: var(--text-muted); font-size: 1.03rem; line-height: 1.8; margin-bottom: 1.25rem; }
.service-prose > p a { color: var(--brand-orange-readable); text-decoration: none; font-weight: 500; transition: color 0.2s; }
.service-prose > p a:hover, .service-prose > p a:focus-visible { color: var(--brand-orange); }
.service-pillar-grid .service-card, .service-vertical-grid .service-card { height: 100%; }
.faq-section { max-width: 900px; }
.faq-item { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 10px; margin-bottom: 0.85rem; padding: 0 1.25rem; }
.faq-item[open] { border-color: var(--brand-slate); }
.faq-item summary { cursor: pointer; color: var(--text-main); font-weight: 600; padding: 1rem 1.5rem 1rem 0; }
.faq-item summary::marker { color: var(--brand-orange); }
.faq-item p { color: var(--text-muted); padding: 0 0 1.25rem; }
.article-byline { color: var(--text-muted); font-size: 0.9rem; margin-bottom: 2rem; }
.article-byline a { color: var(--text-main); font-weight: 600; }
.author-review { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 1.5rem; align-items: center; margin-top: 3rem; padding: 1.75rem; background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: 12px; }
.author-review picture, .author-review img { display: block; width: 160px; }
.author-review img { height: 160px; border-radius: 10px; object-fit: cover; }
.author-review h2 { margin: 0.25rem 0 0.6rem; font-size: 1.35rem; }
.author-review h2 a { color: var(--text-main); text-decoration: none; }
.author-review p { color: var(--text-muted); margin-bottom: 0; }

/* ===== Responsive ===== */
@media (max-width: 900px) {
    header { padding: 0.65rem 0; }
    .header-wrap { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem 0.75rem; }
    .logo-wrap { grid-column: 1; grid-row: 1; justify-self: start; }
    .header-logo { width: 36px; height: 36px; }
    .logo-text { font-size: 1.2rem; }
    .nav-toggle { grid-column: 2; grid-row: 1; justify-self: end; }
    .js .nav-toggle { display: inline-flex; }
    .main-nav { grid-column: 1 / -1; grid-row: 2; width: 100%; margin: 0; padding: 0.5rem; flex-direction: column; align-items: stretch; gap: 0; background: var(--bg-base); border: 1px solid var(--border-subtle); border-radius: 10px; }
    .js .main-nav { display: none; }
    .js .main-nav[data-open="true"] { display: flex; }
    .main-nav a { display: flex; align-items: center; justify-content: center; min-height: 44px; font-size: 0.92rem; }
    .main-nav .nav-support { margin-top: 0.25rem; background: transparent; }
    .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 2rem 1rem; }
    .stats-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .threat-grid { grid-template-columns: 1fr; }
    .services-grid { grid-template-columns: repeat(2, 1fr); }
    .home-services-grid { grid-template-columns: repeat(2, 1fr); }
    .home-services-grid > .service-card,
    .home-services-grid > .service-card:nth-last-child(2),
    .home-services-grid > .service-card:last-child { grid-column: auto; }
    .steps-grid { grid-template-columns: repeat(2, 1fr); }
    .industry-grid { grid-template-columns: repeat(2, 1fr); }
    .testimonials-grid { grid-template-columns: 1fr; }
    .mis-grid { grid-template-columns: 1fr; gap: 2rem; }
    .mis-it { border-right: none; padding-right: 0; border-bottom: 1px solid var(--border-subtle); padding-bottom: 2rem; }
    .content-split { grid-template-columns: 1fr; gap: 3rem; }
    .content-split > aside { order: -1; }
    .sidebar-card { position: relative; top: 0; }
    .form-grid { grid-template-columns: 1fr; gap: 2rem; }
    .features { grid-template-columns: 1fr; }
    .county-intro-grid { grid-template-columns: 1fr; gap: 1.5rem; }
    .county-columns { grid-template-columns: 1fr; gap: 2rem; }
    .blog-grid { grid-template-columns: repeat(2, 1fr); }
    .blog-featured { grid-template-columns: 1fr; gap: 1.5rem; }
    .about-hero { padding: 3rem 0; }
    .about-hero-grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .about-hero-copy { order: -1; text-align: center; }
    .about-hero-copy > p { margin-left: auto; margin-right: auto; }
    .about-actions { justify-content: center; }
    .founder-photo-frame { width: min(100%, 480px); margin: 0 auto; }
    .delivery-grid, .about-story-grid, .audit-scope-grid, .audit-deliverable-grid { grid-template-columns: 1fr; gap: 1.5rem; }
}

@media (max-width: 768px) {
    .section { padding: 3.5rem 0; }
    .hero { padding: 3rem 0 2.5rem; }
    .offer-hero { padding: 3rem 0; }
    .hero-deck { font-size: 1.05rem; }
    .hero-ctas { flex-direction: column; align-items: stretch; }
    .hero-ctas a { justify-content: center; }
    .mis-section { padding: 2rem 1.5rem; }
    .booking-section { padding: 2rem 1.5rem; }
    .contact-grid { grid-template-columns: 1fr; gap: 2rem; }
    .contact-section { scroll-margin-top: 130px; }
    .services-grid { grid-template-columns: 1fr; }
    .home-services-grid { grid-template-columns: 1fr; }
    .industry-grid { grid-template-columns: 1fr; }
    .partners-bar { gap: 1.25rem; }
    .lead-magnet-form { grid-template-columns: 1fr; }
    .value-prop-container { padding: 1.5rem; }
    .promo-form-container { padding: 2rem 1.5rem; }
    .calendar-container { height: 650px; padding: 0.5rem; }
    .cta-row { flex-direction: column; }
    .cta-row .btn-primary, .cta-row .btn-secondary { width: 100%; }
    .next-steps { padding: 2rem 1.5rem; }
    .error-hero { padding: 3rem 0; }
    .error-actions { flex-direction: column; width: 100%; max-width: 320px; }
    .blog-grid { grid-template-columns: 1fr; }
    .blog-related-grid { grid-template-columns: 1fr; }
    .blog-author-bio { flex-direction: column; text-align: center; }
    .author-review { grid-template-columns: 1fr; text-align: center; }
    .author-review picture, .author-review img { margin: 0 auto; }
}

@media (max-width: 500px) {
    .container { padding: 0 0.75rem; }
    .content-split { padding: 3rem 0.75rem; }
    .contact-form, .sidebar-card { padding: 1rem; }
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .stats-grid-three { grid-template-columns: 1fr; }
    .steps-grid { grid-template-columns: 1fr; }
    .calendar-container { height: 1000px; }
}
