/* Footer: secondary rule, dark band; brand column (logo, description, display-type phone, contact lines) beside
 * three link columns with secondary headings; hairline above the bottom bar. */
.ocf-footer {
    background: var(--cardinal-band);
    color: var(--ocf-body-alt);
}

.ocf-footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 340fr) minmax(0, 876fr);
    gap: calc(var(--ocf-grid-gap) * 2.667);
    padding-block: calc(var(--ocf-space-unit) * 4.5) calc(var(--ocf-space-unit) * 3.5);
}

.ocf-footer-brand-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--ocf-space-unit) * 1.125);
}

.ocf-footer-brand .ocf-brand-image { object-position: left center; }

.ocf-footer-brand-column > p {
    color: var(--ocf-body-alt);
    font-size: calc(var(--font-body-size) * 0.889);
    line-height: 1.625;
}

.ocf-footer-phone {
    color: var(--ocf-heading-alt);
    font-family: var(--ocf-font-heading), system-ui, sans-serif;
    font-size: calc(var(--font-h3-size) * 1.25);
    font-weight: var(--ocf-font-h2-weight);
    line-height: 1.07;
}

.ocf-footer-phone:hover { color: var(--ocf-secondary); }

.ocf-footer-contact {
    display: grid;
    gap: calc(var(--ocf-space-unit) * 0.5);
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--ocf-font-small-size);
    line-height: 1.55;
}

.ocf-footer-contact a,
.ocf-footer-contact__row {
    display: inline-flex;
    align-items: flex-start;
    gap: calc(var(--ocf-space-unit) * 0.5);
    color: var(--ocf-body-alt);
}

.ocf-footer-contact a:hover { color: var(--ocf-heading-alt); }

.ocf-footer-icon {
    flex-shrink: 0;
    width: calc(var(--ocf-space-unit) * 1);
    height: calc(var(--ocf-space-unit) * 1);
    margin-top: 0.15em;
    color: var(--ocf-secondary);
}

.ocf-footer-columns {
    display: flex;
    flex-wrap: wrap;
    gap: calc(var(--ocf-grid-gap) * 1.5) calc(var(--ocf-grid-gap) * 2.667);
}

.ocf-footer-columns > nav { min-width: calc(var(--ocf-space-unit) * 8); }

.ocf-footer-heading {
    margin-bottom: calc(var(--ocf-space-unit) * 0.875);
    color: var(--ocf-secondary);
    font-family: var(--ocf-font-heading), system-ui, sans-serif;
    font-size: var(--cardinal-label-size);
    font-weight: var(--font-weight-bold);
    letter-spacing: var(--cardinal-label-tracking);
    line-height: 1.2;
    text-transform: uppercase;
}

.ocf-footer-links {
    display: grid;
    gap: calc(var(--ocf-space-unit) * 0.5);
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: calc(var(--font-body-size) * 0.889);
    line-height: 1.625;
}

.ocf-footer-links a { color: var(--ocf-body-alt); }
.ocf-footer-links a:hover { color: var(--ocf-heading-alt); }

.ocf-footer-bottom {
    border-top: var(--card-border-width) solid var(--ocf-border-alt);
    font-size: var(--ocf-font-small-size);
}

.ocf-footer-bottom .container-global {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--ocf-space-unit) * 0.5) var(--ocf-grid-gap);
    padding-block: var(--ocf-grid-gap);
}

.ocf-footer-bottom div {
    display: flex;
    flex-wrap: wrap;
    gap: calc(var(--ocf-space-unit) * 1.25);
}

.ocf-footer-bottom a:hover { color: var(--ocf-heading-alt); }

@media (max-width: 1023px) {
    .ocf-footer-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
    .ocf-footer-grid { padding-block: calc(var(--ocf-space-unit) * 3) calc(var(--ocf-space-unit) * 2.5); }
    .ocf-footer-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(var(--ocf-grid-gap) * 1.333) var(--ocf-grid-gap); }
    .ocf-footer-columns > nav:first-child { grid-column: 1 / -1; }
}

/* OCF_AGENT_BLOCK:business-name-wordmark START */
.ocf-footer-brand .ocf-brand-wordmark--footer {
    display: block;
    color: var(--ocf-heading-alt);
    font-family: var(--ocf-font-heading), system-ui, sans-serif;
    font-size: 1.35rem;
    font-weight: var(--ocf-font-h2-weight);
    line-height: 1.15;
}
/* OCF_AGENT_BLOCK:business-name-wordmark END */

/* OCF_AGENT_BLOCK:service-areas-footer-heading-link START */
.ocf-footer-section-link {
    color: inherit;
    text-decoration: none;
}
.ocf-footer-section-link:hover {
    color: var(--ocf-heading-alt);
    text-decoration: underline;
}
.ocf-footer-section-link:focus-visible {
    outline: 2px solid var(--ocf-secondary);
    outline-offset: 3px;
}
/* OCF_AGENT_BLOCK:service-areas-footer-heading-link END */

/* OCF_AGENT_BLOCK:site-area-override START */
/* Mobile inquiry action bar is placed by the shared footer template on service detail pages. */
@media (min-width: 768px) { .ocf-mobile-action-bar { display: none !important; } }
/* OCF_AGENT_BLOCK:site-area-override END */

/* OCF_AGENT_BLOCK:global-call-first-mobile-bar START */
/* Preview phone remains a non-link. The shared action bar reserves its exact mobile height, including the device safe area. */
.ocf-footer-phone.ocf-phone-preview { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; cursor: default; }
.ocf-phone-preview small { display: block; margin-top: 2px; font-family: var(--ocf-font-body), sans-serif; font-size: 11px; font-weight: 600; line-height: 1.3; }
.ocf-contact-list .ocf-phone-preview { display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; color: var(--ocf-heading); font-weight: var(--font-weight-semibold); }
:root { --ocf-mobile-action-bar-height: calc(82px + env(safe-area-inset-bottom)); }
html { scroll-padding-top: calc(var(--header-height) + var(--ocf-grid-gap)); }
#estimate-request { scroll-margin-top: calc(var(--header-height) + var(--ocf-grid-gap)); }
.ocf-mobile-action-bar { display: none; box-sizing: border-box; }
@media (max-width: 767px) {
  body:has(.ocf-mobile-action-bar) { padding-bottom: var(--ocf-mobile-action-bar-height); }
  html:has(.ocf-mobile-action-bar) { scroll-padding-bottom: calc(var(--ocf-mobile-action-bar-height) + 8px); }
  .ocf-footer + .ocf-mobile-action-bar {
    position: fixed; inset-inline: 0; bottom: 0; z-index: 1000; display: flex; align-items: stretch; gap: .5rem;
    height: var(--ocf-mobile-action-bar-height); box-sizing: border-box;
    padding: .5rem max(var(--container-pad), env(safe-area-inset-left)) calc(.5rem + env(safe-area-inset-bottom)) max(var(--container-pad), env(safe-area-inset-right));
    background: var(--ocf-heading); border-top: 1px solid var(--ocf-border); box-shadow: 0 -8px 24px rgb(16 36 62 / 16%);
  }
  .ocf-footer + .ocf-mobile-action-bar .ocf-mobile-action-bar__call,
  .ocf-footer + .ocf-mobile-action-bar .ocf-mobile-action-bar__estimate {
    display: flex; flex: 1 1 0; min-width: 0; min-height: 54px; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    padding: .3rem .4rem; border: 2px solid #D99A2B; border-radius: var(--button-radius);
    font-family: var(--ocf-font-heading), system-ui, sans-serif; font-size: 13px; font-weight: 700; line-height: 1.15;
    text-align: center; text-decoration: none; white-space: nowrap;
  }
  .ocf-footer + .ocf-mobile-action-bar .ocf-mobile-action-bar__call { background: #D99A2B; color: #10243E; }
  .ocf-footer + .ocf-mobile-action-bar .ocf-mobile-action-bar__call strong { font: inherit; white-space: nowrap; }
  .ocf-footer + .ocf-mobile-action-bar .ocf-mobile-action-bar__call small { font-family: var(--ocf-font-body), sans-serif; font-size: 10px; font-weight: 600; line-height: 1.1; }
  .ocf-footer + .ocf-mobile-action-bar .ocf-mobile-action-bar__estimate { background: transparent; color: #FFFFFF; }
  html.ocf-mobile-keyboard-open body:has(.ocf-mobile-action-bar) { padding-bottom: 0; }
  html.ocf-mobile-keyboard-open { scroll-padding-bottom: 16px; }
  html.ocf-mobile-keyboard-open .ocf-footer + .ocf-mobile-action-bar { display: none; }
  .ocf-inline-estimate :is(input, select, textarea, button) { scroll-margin-bottom: var(--ocf-mobile-action-bar-height); }
}
/* OCF_AGENT_BLOCK:global-call-first-mobile-bar END */

/* OCF_AGENT_BLOCK:approved-logo-wordmarks START */
.ocf-footer-brand {
    display: inline-flex;
    max-width: 100%;
    padding: 6px 8px;
    background: #FFFFFF;
}
.ocf-footer-brand .ocf-brand-image {
    display: block;
    width: 224px;
    max-width: 100%;
    height: 59px;
    object-fit: cover;
    object-position: center;
}
@media (max-width: 600px) {
    .ocf-footer-brand .ocf-brand-image { width: 204px; height: 54px; }
}
/* OCF_AGENT_BLOCK:approved-logo-wordmarks END */
