:root { font-family: Arial, Helvetica, sans-serif; color: #595959; background: #fff; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 280px; }
body.home-page { background: url('/images/bg_top.jpg') repeat-x top left; }
body.sub-page { background: url('/images/bg_top_sub2.jpg') repeat-x top left; }
img { max-width: 100%; height: auto; border: 0; }
a { color: #00727b; text-decoration: none; }
a:hover { color: #84c4c8; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid #ffbf47; outline-offset: 3px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 20; background: #fff; color: #000; padding: 12px; }
.skip-link:focus { left: 12px; }

/* The desktop header keeps the original dimensions; navigation is live text on one teal band. */
.site-header { background: transparent; }
.header-inner, .nav-inner, .site-main, .footer-information-inner, .footer-bottom-inner { width: 950px; max-width: 100%; margin: 0 auto; }
.header-inner { height: 78px; position: relative; }
.brand { position: absolute; top: 0; left: 0; width: 250px; display: block; }
.brand img { display: block; width: 250px; }
.quote-link { position: absolute; left: 340px; top: 0; width: 250px; height: 62px; display: block; background: url('/images/quote_button.jpg') no-repeat 0 0; }
.quote-link:hover, .quote-link:focus-visible { background-position: -250px 0; }
.header-contact { position: absolute; right: 0; top: 0; text-align: right; color: #cfcfcf; }
.header-contact p { margin: 11px 0 0; color: #cfcfcf; font-size: 12px; line-height: 18px; }
.header-contact a { color: #fff; font-weight: 700; }
.header-contact .ftp-prompt { margin-top: 7px; color: #fff; font: italic 13px/20px Georgia, 'Times New Roman', serif; }
.ftp-prompt a { display: inline-block; vertical-align: middle; margin-left: 4px; }
.ftp-prompt img { display: block; }
.nav-wrap { min-height: 86px; background: #006f78; }
.nav-inner { height: 86px; }
.menu-toggle { display: none; }
.primary-nav { display: grid; grid-template-columns: 97px 137px 130px 203px 160px 118px 105px; height: 86px; }
.primary-nav a { display: block; min-width: 0; padding: 16px 6px 8px 0; color: #fff; background: transparent; }
.primary-nav a:hover, .primary-nav a:focus-visible { color: #fff; }
.primary-nav a:hover .nav-label, .primary-nav a:focus-visible .nav-label { text-decoration: underline; text-underline-offset: 3px; }
.nav-label { display: block; font-size: 17px; line-height: 21px; font-weight: 700; white-space: nowrap; }
.nav-description { display: block; max-width: 19ch; color: #c3dfe0; font: 12px/14px Georgia, 'Times New Roman', serif; }

/* Main content keeps the original 950px composition at desktop widths. */
.site-main { background: #fff; min-height: 380px; }
.home-feature { display: grid; grid-template-columns: 590px 360px; min-height: 250px; padding-top: 15px; background: url('/images/bg_top.jpg') repeat-x 0 -164px; color: #fff; }
.feature-quote { padding-right: 70px; max-height: 230px; overflow: hidden; }
.feature-quote h1 { margin: 0 0 14px; color: #fff; font: normal 32px/1 Verdana, Arial, sans-serif; }
.feature-quote blockquote { margin: 0; }
.feature-quote p { margin: 0; color: #fff; font: italic 700 16px/20px Georgia, 'Times New Roman', serif; }
.feature-quote footer { margin-top: 10px; color: #fff; font: bold 11px/1.5 Arial, sans-serif; }
.feature-services { min-height: 235px; padding: 20px 12px 12px 30px; background: url('/images/services_bg.jpg') repeat-x #58aa22; background-size: auto 100%; }
.feature-services h2 { margin: 0 0 10px; color: #fff; font: normal 28px/1 Helvetica, Arial, sans-serif; }
.feature-services ul { margin: 0; padding: 0; list-style: none; }
.feature-services li { line-height: 26px; padding-left: 15px; background: url('/images/bullet_whitedot.gif') no-repeat left 6px; }
.feature-services a { color: #fff; font-size: 13px; font-weight: bold; }
.feature-services a:hover { text-decoration: underline; }
.feature-services small { font-size: 10px; }
.page-grid { display: grid; grid-template-columns: 701px 249px; align-items: start; position: relative; }
.article-card { min-width: 0; padding: 20px 12px 20px 0; background: transparent; }
.article-card h1 { margin: 0 0 22px; color: #00727d; font-size: 32px; line-height: 1.15; }
.article-card h2 { margin: 8px 0; color: #77c93b; font-size: 21px; line-height: 1.15; font-weight: 400; }
.article-card h3 { line-height: 1.3; }
.article-card p, .article-card li, .article-card td { color: #595959; font-size: 12px; line-height: 18px; }
.article-card p { margin: 0 0 10px; }
.article-card ul, .article-card ol { padding-left: 30px; }
.article-card hr { border: 0; border-bottom: 1px solid #ccc; margin: 16px 0; }
.article-card .photo { float: left; max-width: 210px; margin: 0 10px 10px 0; }
.home-grid .article-card { padding-top: 20px; }
.home-grid .article-card h2:first-of-type { color: #00727d; font-size: 24px; font-weight: bold; line-height: 1.15; }
.sidebar { width: 249px; margin: 20px 0 10px; padding: 14px; background: #def1d2; border-left: 7px solid #edf8e7; font-size: 12px; }
.home-grid .sidebar { margin-top: 32px; }
.sidebar-section { margin: 0 0 20px; }
.sidebar-section:last-child { margin-bottom: 0; }
.sidebar-section + .sidebar-section { padding-top: 16px; border-top: 1px solid #bad9a8; }
.sidebar-section h2 { margin: 0 0 10px; padding: 8px 10px; border-radius: 3px; background: #70bd36; color: #fff; font-size: 17px; font-weight: 700; line-height: 1.2; }
.sidebar-section ul { margin: 0; padding: 0; list-style: none; }
.sidebar-section li { margin: 0; padding: 0; color: #595959; font-size: 12px; line-height: 18px; }
.sidebar-section a { display: block; padding: 6px 12px 9px 0; border-bottom: 1px dotted #555; color: #444; }
.sidebar-section a:hover { color: #00727b; }
.services-sidebar li { list-style: disc; margin-left: 18px; }
.services-sidebar a { border-bottom: 0; }
.subpage-body { position: relative; overflow: hidden; min-height: 400px; }
.subpage-backdrop { position: absolute; top: 0; left: -15px; width: auto; max-width: none; z-index: 0; pointer-events: none; }
.subpage-body .page-grid { z-index: 1; }
.legacy-content [align=right] { text-align: right; }
.legacy-content [width] { max-width: 100%; }

/* Gray information band and black footer return on every page. */
.footer-information { background: #222; }
.footer-information-inner { display: grid; grid-template-columns: 465px 465px; gap: 20px; padding: 20px 0 26px; }
.footer-information h2 { margin: 0 0 8px; line-height: 0; }
.footer-information p { margin: 0; color: #999; font-size: 12px; line-height: 18px; }
.footer-bottom { background: #000; color: #fff; }
.footer-bottom-inner { display: flex; justify-content: space-between; align-items: flex-start; min-height: 125px; gap: 30px; padding: 23px 0 18px; }
.footer-bottom nav { color: #ccc; font-size: 12px; line-height: 18px; }
.footer-bottom a { color: #ccc; }
.footer-bottom a:hover { color: #fff; text-decoration: underline; }
.footer-bottom p { display: flex; align-items: center; gap: 5px; margin: 10px 0 0; color: #fff; font-size: 12px; line-height: 18px; }
.footer-bottom .women-owned { max-width: 150px; max-height: 85px; object-fit: contain; }

/* The quote form retains its validation and server-side behavior. */
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.field { display: flex; flex-direction: column; gap: 5px; }
.field.full, .fieldset { grid-column: 1 / -1; }
.field label, .fieldset legend { font-weight: 700; font-size: 14px; }
.field input, .field textarea { width: 100%; padding: 10px; border: 1px solid #718787; border-radius: 2px; background: #fff; color: #333; font: 14px Arial, sans-serif; }
.field textarea { min-height: 130px; resize: vertical; }
.required, .validation { color: #a32323; }
.validation { font-size: 12px; }
.validation-summary { margin-bottom: 14px; padding: 12px; background: #fff0ee; color: #8e1c1c; }
.fieldset { border: 1px solid #cbd8d8; padding: 12px; }
.checkbox-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.checkbox-grid label { display: flex; align-items: flex-start; gap: 7px; font-size: 13px; }
.checkbox-grid input { margin-top: 2px; }
.submit-button { border: 0; padding: 11px 20px; background: #00727b; color: #fff; cursor: pointer; font: bold 14px Arial, sans-serif; }
.submit-button:hover { background: #004a51; }
.article-card .form-note { margin: 14px 0; font-size: 12px; }
.status-message { padding: 12px; border-left: 4px solid #a32323; background: #fff1f0; }

@media (max-width: 949px) {
    body.home-page, body.sub-page { background: #fff; }
    .site-header { background: #000; }
    .header-inner { width: 100%; height: auto; min-height: 108px; padding: 10px 16px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 1fr); gap: 8px 16px; align-items: center; }
    .brand, .quote-link, .header-contact { position: static; }
    .brand { max-width: 250px; }
    .quote-link { justify-self: end; }
    .header-contact { grid-column: 1 / -1; text-align: left; display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; }
    .header-contact p, .header-contact .ftp-prompt { margin: 0; }
    .header-contact .ftp-prompt { display: none; }
    .nav-wrap { min-height: 0; }
    .nav-inner { width: 100%; height: auto; }
    .menu-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 50px; padding: 10px 16px; border: 0; background: transparent; color: #fff; font: bold 17px Arial, sans-serif; text-align: left; cursor: pointer; }
    .primary-nav { display: none; height: auto; flex-direction: column; }
    .primary-nav.is-open { display: flex; }
    .primary-nav a { width: 100%; min-height: 43px; padding: 11px 16px; border-top: 1px solid #2f929b; }
    .primary-nav .nav-label { font-size: 16px; line-height: 21px; }
    .primary-nav .nav-description { display: none; }
    .site-main { width: 100%; }
    .home-feature { grid-template-columns: minmax(0, 1fr) minmax(280px, 38%); padding: 18px 16px 0; min-height: 0; gap: 20px; background: #00727b; }
    .feature-quote { padding: 0 0 20px; max-height: none; overflow: visible; }
    .feature-quote h1 { font-size: 27px; line-height: 1.2; }
    .feature-quote p { font-size: 15px; }
    .feature-services { min-height: 0; margin: -18px -16px 0 0; padding: 20px 16px; }
    .page-grid { grid-template-columns: minmax(0, 1fr) 230px; gap: 14px; padding: 0 16px; }
    .article-card { padding-right: 0; }
    .article-card p, .article-card li, .article-card td { font-size: 14px; line-height: 1.5; }
    .sidebar { width: 230px; }
    .subpage-backdrop { display: none; }
    .footer-information-inner, .footer-bottom-inner { width: 100%; padding-left: 16px; padding-right: 16px; }
    .footer-information-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .home-feature { grid-template-columns: 1fr; gap: 0; padding: 20px 16px 0; }
    .feature-services { margin: 0 -16px; }
    .page-grid { grid-template-columns: 1fr; }
    .article-card { padding: 20px 0; }
    .article-card p, .article-card li, .article-card td { font-size: 15px; line-height: 1.55; }
    .article-card h1 { font-size: 28px; }
    .article-card h2 { font-size: 22px; }
    .sidebar, .home-grid .sidebar { width: 100%; margin: 0 0 22px; padding: 15px; background: #def1d2; }
    .sidebar-section { margin-bottom: 20px; }
    .sidebar-section li, .sidebar-section a { font-size: 14px; line-height: 1.4; }
    .subpage-backdrop { display: none; }
    .footer-information-inner { grid-template-columns: 1fr; }
    .footer-information p { font-size: 14px; line-height: 1.5; }
    .footer-bottom-inner { flex-wrap: wrap; }
}
@media (max-width: 620px) {
    .header-inner { grid-template-columns: 1fr; justify-items: center; row-gap: 6px; padding-bottom: 14px; }
    .brand, .quote-link { justify-self: center; }
    .header-contact { grid-column: 1; justify-self: stretch; display: block; text-align: center; }
    .header-contact p { margin: 2px 0 4px; font-size: 13px; }
    .header-contact a { white-space: nowrap; }
    .footer-bottom p { flex-wrap: wrap; }
}
@media (max-width: 420px) {
    .form-grid, .checkbox-grid { grid-template-columns: 1fr; }
    .field.full, .fieldset { grid-column: 1; }
    .article-card .photo { float: none; display: block; margin: 0 0 14px; }
}
