/* Main Line Refined: scoped to the homepage; shared public/admin pages keep their styles. */
body.home-refined {
    --home-ink: #102036;
    --home-blue: #07578c;
    --home-muted: #536171;
    --home-line: #dddeda;
    --home-cream: #faf8f4;
    background: #fff;
    color: var(--home-ink);
    font-family: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
    line-height: 1.5;
    height: auto;
}
.home-refined [hidden] {display: none !important}
.home-refined a {color: var(--home-blue);text-underline-offset: 4px}
.home-refined :focus-visible {outline: 3px solid #b96a17;outline-offset: 4px}
.home-refined h1,.home-refined h2 {font-family: Georgia, "Times New Roman", serif;font-weight: 400;color: var(--home-ink);letter-spacing: -.025em}
.home-refined h2 {font-size: clamp(25px, 2.4vw, 32px);line-height: 1.2;margin: 0}
.home-refined .home-wrap {width: min(100% - 64px, 1240px);margin-inline: auto}
.home-refined .home-skip {position: fixed;top: 8px;left: 12px;padding: 12px 18px;background: #fff;z-index: 1000;transform: translateY(-160%)}
.home-refined .home-skip:focus {transform: none}
.home-refined .estimate-button {font: 600 14px/1.35 system-ui, sans-serif;min-height: 46px;padding: 12px 20px;border-color: var(--home-blue);border-radius: 3px;color: var(--home-blue);background: #fff;text-align: center}
.home-refined .estimate-button--primary {background: var(--home-blue);color: #fff}
.home-refined .estimate-button:hover {filter: none;background: #eef3f6}
.home-refined .estimate-button--primary:hover {background: #06446d}
.home-refined .home-header {background: #fff;border-bottom: 1px solid var(--home-line)}
.home-refined .home-header__inner {display: flex;align-items: center;gap: 24px;min-height: 112px;padding-block: 16px;position: relative}
.home-refined .home-brand {flex-shrink: 0;display: block;margin-right: auto}
.home-refined .home-brand img {display: block;width: 204px;height: auto}
.home-refined .home-navigation {display: flex;align-items: center;gap: 24px}
.home-refined .home-navigation a {color: var(--home-ink);font-size: 13px;font-weight: 600;text-decoration: none;white-space: nowrap;padding-block: 12px}
.home-refined .home-navigation a:hover {color: var(--home-blue);text-decoration: underline}
.home-refined .home-phone {font-size: 20px;font-weight: 750;text-decoration: none;white-space: nowrap;letter-spacing: -.035em}
.home-refined .home-phone>span {margin-right: 4px;font-size: 23px}
.home-refined .home-phone-icon {width: 22px;height: 22px;fill: currentColor;vertical-align: middle;flex-shrink: 0}
.home-refined .home-header__estimate {font-size: 13px;padding-inline: 16px}
.home-refined .home-menu-toggle {border: 1px solid var(--home-line);border-radius: 3px;background: #fff;width: 44px;height: 44px;align-items: center;justify-content: center;cursor: pointer}
.home-refined .home-menu-icon {width: 21px;height: 15px;border-top: 2px solid var(--home-ink);border-bottom: 2px solid var(--home-ink);position: relative}
.home-refined .home-menu-icon::after {content: "";position: absolute;top: 5px;left: 0;right: 0;border-top: 2px solid var(--home-ink)}
.home-refined .home-hero {position: relative;background: var(--home-cream);isolation: isolate}
.home-refined .home-hero__image {position: absolute;inset: 0;z-index: -1}
.home-refined .home-hero__image img {width: 100%;height: 100%;display: block;object-fit: cover;object-position: center 55%}
.home-refined .home-hero__inner {padding-block: 40px;min-height: 548px;display: flex;align-items: center}
.home-refined .home-hero__panel {background: var(--home-cream);width: 548px;max-width: 100%;padding: 32px 36px 34px;border: 1px solid #ebe7df;box-shadow: 0 2px 12px #1020360a}
.home-refined .home-eyebrow {font-size: 10px;letter-spacing: .16em;display: flex;align-items: center;gap: 14px;margin: 0 0 18px;color: #3a4e60;font-weight: 600}
.home-refined .home-eyebrow::before {content: "";width: 40px;border-top: 1px solid var(--home-blue);flex-shrink: 0}
.home-refined h1 {font-size: clamp(34px, 3.15vw, 46px);line-height: 1.08;margin: 0 0 16px}
.home-refined .home-hero__description {font-size: 16px;line-height: 1.5;margin: 0 0 22px;max-width: 370px}
.home-refined .home-actions {display: flex;align-items: stretch;gap: 10px;margin: 0;justify-content: flex-start}
.home-refined .home-actions .estimate-button {flex: 1;padding: 11px 12px}
.home-refined .home-call {gap: 10px}
.home-refined .home-call>span:first-child {font-size: 24px}
.home-refined .home-call strong {display: block;font-size: 14px}
.home-refined .home-award-ribbon {background: var(--home-cream);border-block: 1px solid var(--home-line)}
.home-refined .home-award-ribbon__inner {display: flex;align-items: center;justify-content: center;gap: 64px;padding-block: 14px}
.home-refined .home-award-ribbon__awards {display: flex;align-items: center;gap: 18px}
.home-refined .home-award-ribbon img {width: 72px;height: 72px;object-fit: contain}
.home-refined .home-award-ribbon strong {font-size: 14px;font-weight: 600}
.home-refined .home-award-ribbon span {display: block;font-size: 12px;color: var(--home-muted);margin-top: 3px}
.home-refined .home-award-ribbon p {font-size: 14px;margin: 0;border-left: 1px solid #c4c8ca;padding-left: 64px}
.home-refined .home-section-heading {display: flex;justify-content: space-between;align-items: baseline;gap: 16px;margin-bottom: 22px}
.home-refined .home-section-heading>a {font-size: 13px;text-decoration: none;white-space: nowrap}
.home-refined .home-section-heading>a:hover {text-decoration: underline}
.home-refined .home-services {padding-block: 34px 30px;border-bottom: 1px solid var(--home-line);scroll-margin-top: 24px}
.home-refined .home-service-grid {display: grid;grid-template-columns: repeat(7, minmax(0, 1fr))}
.home-refined .home-service-grid .service-tile {position: relative;display: flex;flex-direction: column;align-items: center;justify-content: flex-start;gap: 10px;border: 0;border-right: 1px solid var(--home-line);border-radius: 0;background: transparent;box-shadow: none;padding: 6px 15px 12px;min-height: 120px;color: var(--home-ink);font-size: 13px;font-weight: 500;line-height: 1.4;text-align: center;text-decoration: none;transform: none}
.home-refined .home-service-grid .service-tile:last-child {border-right: 0;grid-column: auto}
.home-refined .home-service-grid .service-tile:hover {background: var(--home-cream);color: var(--home-blue)}
.home-refined .service-tile img {width: 42px;height: 42px;object-fit: contain}
.home-refined .home-service-number {position: absolute;top: 3px;left: 8px;color: #7a8490;font-size: 10px;font-weight: 400}
.home-refined .home-service-arrow {display: none}
.home-refined .home-work-reviews {display: grid;gap: 28px;padding-block: 30px}
.home-refined .home-work-reviews--both {grid-template-columns: minmax(0, 3fr) minmax(280px, 1fr)}
.home-refined .home-work {min-width: 0;scroll-margin-top: 24px}
.home-refined .home-project-grid {display: grid;grid-template-columns: 2fr 1fr 1fr;gap: 12px}
.home-refined .home-project-grid--1 {grid-template-columns: 1fr}
.home-refined .home-project-grid--2 {grid-template-columns: 1.5fr 1fr}
.home-refined .home-project {display: block;position: relative;min-width: 0;min-height: 240px;background: #edf0ee;overflow: hidden;border-radius: 3px;color: var(--home-ink)}
.home-refined .home-project img {display: block;width: 100%;height: 100%;min-height: 240px;object-fit: cover;position: absolute;inset: 0}
.home-refined .home-project__caption {position: absolute;bottom: 10px;left: 10px;right: 10px;display: flex;gap: 6px;flex-wrap: wrap;justify-content: space-between;background: #fffffff5;padding: 8px 10px;font-size: 12px;line-height: 1.4;overflow-wrap: anywhere}
.home-refined .home-project__caption strong {font-weight: 500}
.home-refined .home-project__caption>span {color: #536171}
.home-refined .google-reviews {margin: 0;background: var(--home-cream);border: 1px solid #e9e5de;border-radius: 3px;padding: 24px;min-width: 0;scroll-margin-top: 24px}
.home-refined .google-reviews h2 {font-size: 28px;margin-top: 0}
.home-refined .google-reviews .estimate-eyebrow {display: none}
.home-refined .home-work-reviews--both .google-reviews-heading {display: block}
.home-refined .google-reviews-actions {gap: 10px;font-size: 13px}
.home-refined .google-reviews-actions a {display: inline-flex;align-items: center;min-height: 44px}
.home-refined .home-work-reviews--both .google-reviews-actions {flex-direction: column;align-items: stretch;margin-top: 12px}
.home-refined .google-reviews-grid {grid-template-columns: 1fr}
.home-refined .google-review {padding: 16px 0 0;background: transparent;border: 0;border-top: 1px solid var(--home-line);border-radius: 0}
.home-refined .google-review blockquote {margin: 10px 0}
.home-refined .google-review blockquote p {font-size: 14px;line-height: 1.6}
.home-refined .google-reviews-selection {font-size: 11px}
.home-refined .home-estimate {display: grid;grid-template-columns: 190px minmax(0, 1fr);gap: 10px;border: 1px solid var(--home-line);border-radius: 3px;margin-block: 32px;padding: 24px;scroll-margin-top: 24px;background: #fff}
.home-refined .home-estimate .estimate-dialog__heading {padding: 0 16px 0 0;background: transparent;border: 0;display: block}
.home-refined .home-estimate .estimate-eyebrow {display: none}
.home-refined .home-estimate .estimate-dialog__heading h2 {font-size: 28px;line-height: 1.2;color: var(--home-ink);margin: 0 0 12px}
.home-refined .home-estimate .estimate-dialog__heading p:last-child {font-size: 13px;color: var(--home-muted)}
.home-refined #estimateForm {padding: 0;min-width: 0}
.home-refined .estimate-fields {grid-template-columns: repeat(4, minmax(0, 1fr));gap: 14px 12px;align-items: start}
.home-refined .estimate-fields label {font-size: 12px;font-weight: 500;gap: 5px}
.home-refined .estimate-fields .estimate-wide {grid-column: auto}
.home-refined .estimate-fields label.estimate-wide:has(textarea) {grid-column: span 2}
.home-refined .estimate-fields input,.home-refined .estimate-fields select,.home-refined .estimate-fields textarea {border-color: #ccd1d4;border-radius: 3px;color: var(--home-ink);font: 400 14px/1.4 system-ui,sans-serif;padding: 9px;min-height: 44px}
.home-refined .estimate-fields textarea {min-height: 88px}
.home-refined .estimate-fields input[type=file] {font-size: 11px;padding: 8px 4px;min-height: 44px}
.home-refined .estimate-fields small {font-size: 11px;color: var(--home-muted)}
.home-refined .estimate-actions {margin-top: 18px;padding-top: 14px}
.home-refined .home-areas {display: grid;grid-template-columns: 240px minmax(0, 1fr) 240px;align-items: center;gap: 32px;padding-block: 0 30px;scroll-margin-top: 24px}
.home-refined .home-areas h2 {font-size: 26px;margin-bottom: 8px}
.home-refined .home-areas p {margin: 0;font-size: 12px;color: var(--home-muted);line-height: 1.6}
.home-refined .home-town-list {margin: 0;padding: 0;list-style: none;display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 8px}
.home-refined .home-town-list a,.home-refined .home-town-list li>span {display: block;padding: 7px 8px;border: 1px solid #cbd3d8;border-radius: 3px;text-align: center;font-size: 12px;text-decoration: none}
.home-refined .home-town-list a:hover {background: #edf3f7;text-decoration: underline}
.home-refined .home-town-list li>span {border-color: #e4e5e3;color: #435262}
.home-refined .home-areas__phone {border-left: 1px solid #c4c8ca;padding-left: 28px}
.home-refined .home-areas__phone .home-phone {display: inline-block;margin-bottom: 7px}
.home-refined .home-guides {display: flex;flex-wrap: wrap;justify-content: center;gap: 14px 30px;border-top: 1px solid var(--home-line);padding: 20px 0;font-size: 12px}
.home-refined .home-guides a {text-decoration: none}
.home-refined .home-guides a:hover {text-decoration: underline}
.home-refined .home-footer {border-top: 1px solid var(--home-line);background: var(--home-cream)}
.home-refined .home-footer__inner {display: flex;align-items: center;gap: 32px;padding-block: 22px}
.home-refined .home-footer img {width: 125px;height: auto;display: block}
.home-refined .home-footer__inner>div {flex: 1}
.home-refined .home-footer nav {display: flex;flex-wrap: wrap;gap: 10px 22px;font-size: 12px}
.home-refined .home-footer nav a {text-decoration: none}
.home-refined .home-footer small {display: block;font-size: 11px;color: var(--home-muted);margin-top: 9px}
@media (max-width: 1150px) {
    .home-refined .home-header__inner {gap: 18px}
    .home-refined .home-brand img {width: 170px}
    .home-refined .home-navigation {gap: 16px}
    .home-refined .home-phone {font-size: 18px}
    .home-refined .home-areas {grid-template-columns: 200px minmax(0, 1fr);gap: 24px}
    .home-refined .home-areas__phone {display: none}
    .home-refined .home-work-reviews--both {grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr)}
}
@media (max-width: 1000px) {
    .home-refined .home-header__inner {flex-wrap: wrap;min-height: 94px;gap: 12px 22px}
    .home-refined .home-menu-toggle:not([hidden]) {display: flex;order: 2}
    .home-refined .home-header__estimate {display: none}
    .home-refined .home-navigation {order: 3;flex-basis: 100%;justify-content: center;border-top: 1px solid var(--home-line);padding-top: 8px}
    .home-refined .home-service-grid {grid-template-columns: repeat(4, minmax(0, 1fr));row-gap: 20px}
    .home-refined .home-service-grid .service-tile:nth-child(4) {border-right: 0}
    .home-refined .home-estimate {grid-template-columns: 1fr;gap: 22px}
    .home-refined .home-estimate .estimate-dialog__heading p:last-child {max-width: 440px}
    .home-refined .home-work-reviews--both {grid-template-columns: 1fr}
    .home-refined .home-work-reviews--both .google-reviews-heading {display: flex}
    .home-refined .google-reviews-grid {grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr))}
    .home-refined .home-footer__inner {flex-wrap: wrap;gap: 20px}
}
@media (max-width: 900px) {
    .home-refined .home-hero {display: flex;flex-direction: column}
    .home-refined .home-hero__inner {order: 1;min-height: 0;padding-block: 0;width: 100%}
    .home-refined .home-hero__panel {width: 100%;border: 0;box-shadow: none;padding: 30px 32px}
    .home-refined h1 {max-width: 620px;font-size: 42px}
    .home-refined .home-hero__image {order: 2;position: relative;z-index: auto;display: block;height: 340px}
    .home-refined .home-hero__image img {object-position: 65% 55%}
    .home-refined .home-actions {max-width: 440px}
    .home-refined .home-award-ribbon__inner {gap: 28px}
    .home-refined .home-award-ribbon p {padding-left: 28px;font-size: 12px}
}
@media (max-width: 700px) {
    .home-refined .home-wrap {width: calc(100% - 36px)}
    .home-refined .home-header__inner {gap: 8px;justify-content: space-between;padding-block: 14px 12px}
    .home-refined .home-brand {margin-right: 0}
    .home-refined .home-brand img {width: 155px}
    .home-refined .home-header .home-phone {order: 3;flex-basis: 100%;text-align: center;font-size: 18px}
    .home-refined .home-navigation {order: 4;flex-wrap: wrap;gap: 4px 22px;justify-content: flex-start}
    .home-refined .home-navigation a {min-height: 44px;padding-block: 12px}
    .home-refined .home-hero__inner {width: 100%}
    .home-refined .home-hero__panel {padding: 28px 22px 26px}
    .home-refined .home-eyebrow {font-size: 8px;gap: 9px;letter-spacing: .1em;margin-bottom: 16px}
    .home-refined .home-eyebrow::before {width: 26px}
    .home-refined h1 {font-size: clamp(29px, 8.2vw, 38px);line-height: 1.12;margin-bottom: 16px}
    .home-refined .home-hero__description {font-size: 14px;max-width: 340px;margin-bottom: 20px}
    .home-refined .home-actions {flex-direction: column;gap: 10px;max-width: none}
    .home-refined .home-actions .estimate-button {flex: auto;min-height: 48px;padding: 11px 16px;font-size: 14px}
    .home-refined .home-hero__image {height: 245px}
    .home-refined .home-award-ribbon__inner {display: block;padding-block: 16px}
    .home-refined .home-award-ribbon__awards {gap: 16px;justify-content: center}
    .home-refined .home-award-ribbon img {width: 66px;height: 66px}
    .home-refined .home-award-ribbon strong {font-size: 12px}
    .home-refined .home-award-ribbon p {display: none}
    .home-refined .home-section-heading {align-items: flex-start;flex-wrap: wrap;gap: 10px;margin-bottom: 16px}
    .home-refined .home-section-heading h2 {font-size: 27px}
    .home-refined .home-services {padding-block: 28px 18px}
    .home-refined .home-service-grid {grid-template-columns: 1fr;gap: 0}
    .home-refined .home-service-grid .service-tile {min-height: 62px;padding: 12px 4px;display: grid;grid-template-columns: 32px minmax(0, 1fr) 16px;align-items: center;gap: 14px;border: 0;border-bottom: 1px solid var(--home-line);text-align: left;font-size: 13px}
    .home-refined .home-service-grid .service-tile:last-child {border-bottom: 0}
    .home-refined .home-service-number {display: none}
    .home-refined .service-tile img {width: 30px;height: 30px}
    .home-refined .home-service-arrow {display: block;font-size: 24px;color: var(--home-blue)}
    .home-refined .home-work-reviews {gap: 24px;padding-block: 26px 0}
    .home-refined .home-project-grid,.home-refined .home-project-grid--2 {grid-template-columns: 1fr 1fr;gap: 10px}
    .home-refined .home-project:first-child {grid-column: 1 / -1;min-height: 240px}
    .home-refined .home-project {min-height: 190px}
    .home-refined .home-project img {min-height: 190px}
    .home-refined .home-project__caption {left: 6px;right: 6px;bottom: 6px;font-size: 11px;padding: 7px;flex-direction: column;gap: 2px}
    .home-refined .google-reviews {padding: 22px 18px}
    .home-refined .home-work-reviews--both .google-reviews-heading {display: block}
    .home-refined .google-reviews-grid {grid-template-columns: 1fr}
    .home-refined .home-estimate {margin-block: 28px;padding: 22px 16px;gap: 20px}
    .home-refined .estimate-fields {grid-template-columns: 1fr;gap: 14px}
    .home-refined .estimate-fields label {font-size: 13px}
    .home-refined .estimate-fields label.estimate-wide:has(textarea) {grid-column: auto}
    .home-refined .estimate-fields input,.home-refined .estimate-fields select,.home-refined .estimate-fields textarea {font-size: 16px}
    .home-refined .estimate-fields input[type=file] {font-size: 12px;padding: 10px 6px}
    .home-refined .estimate-actions {align-items: stretch;gap: 14px}
    .home-refined .home-areas {grid-template-columns: 1fr;gap: 20px;padding-bottom: 24px}
    .home-refined .home-areas p {font-size: 13px;max-width: 340px}
    .home-refined .home-town-list {gap: 8px;grid-template-columns: repeat(3, minmax(0, 1fr))}
    .home-refined .home-town-list a,.home-refined .home-town-list li>span {font-size: 11px;padding: 10px 3px;min-height: 44px}
    .home-refined .home-guides {justify-content: flex-start;gap: 0;padding-block: 12px}
    .home-refined .home-guides a {padding-block: 12px;min-height: 44px}
    .home-refined .home-footer__inner {gap: 22px;padding-block: 26px}
    .home-refined .home-footer__inner>div {flex-basis: 100%;order: 3}
    .home-refined .home-footer__inner>.home-phone {margin-left: auto;font-size: 16px}
    .home-refined .home-footer img {width: 110px}
    .home-refined .home-footer nav {gap: 2px 22px}
    .home-refined .home-footer nav a {padding-block: 10px;min-height: 44px}
    .home-refined .mobile-contact {background: var(--home-blue);gap: 8px;border: 0;padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px))}
    .home-refined .mobile-contact a,.home-refined .mobile-contact button {border-color: #ffffff80;border-radius: 3px;background: transparent;color: #fff;font-family: system-ui,sans-serif}
    .home-refined .floating-chat-widget {bottom: calc(84px + env(safe-area-inset-bottom, 0px))}
}
