.ocf-detail,
.ocf-detail-section {
    background: var(--ocf-bg);
    overflow: visible;
}

.ocf-page-header + .ocf-detail-section.section-padding {
    padding-top: clamp(2rem, 4vw, 3.5rem);
}

.ocf-detail-grid,
.ocf-detail__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
    overflow: visible;
}

.ocf-detail-content,
.ocf-detail__content {
    min-width: 0;
}

.ocf-detail-content .prose,
.ocf-detail__content .prose {
    font-size: var(--font-body-size);
    line-height: 1.68;
}

.ocf-detail__media {
    margin: 0 0 1.5rem;
}

.ocf-detail__media img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--image-radius);
    box-shadow: var(--image-shadow);
}

.ocf-location-map-card {
    margin-top: 1rem;
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--card-radius);
    overflow: hidden;
    background: var(--ocf-bg-alt);
}

.ocf-location-map-card iframe {
    display: block;
    width: 100%;
    height: 14rem;
    border: 0;
}

html[data-theme="dark"] .ocf-location-map-card iframe {
    filter: grayscale(1) invert(0.88) contrast(0.85);
    opacity: 0.82;
}

.ocf-detail-aside,
.ocf-detail__sidebar,
.ocf-detail-card {
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--card-radius);
    background: var(--ocf-bg-alt);
    padding: 1rem;
}

.ocf-detail-aside,
.ocf-detail__sidebar {
    position: -webkit-sticky;
    position: sticky;
    top: calc(4.5rem + 1.5rem);
    align-self: start;
}

.ocf-detail-aside {
    display: grid;
    gap: 1rem;
}

.ocf-detail-sticky {
    display: grid;
    gap: 1rem;
}

.ocf-detail-sticky .eyebrow {
    margin: 0;
}

.ocf-detail-sticky-heading {
    margin: 0;
    color: var(--ocf-heading);
    font-size: var(--font-h3-size);
    line-height: 1.2;
}

.ocf-detail-sticky-desc {
    margin: 0;
    color: var(--ocf-body);
    font-size: var(--font-label-size);
}

.ocf-detail-sticky-btn {
    width: 100%;
}

.ocf-detail-meta-row {
    display: grid;
    grid-template-columns: 1.65rem minmax(0, 1fr);
    column-gap: 0.75rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--ocf-border-light);
}

.ocf-detail-meta-icon {
    display: inline-grid;
    width: 1.65rem;
    height: 1.65rem;
    place-items: center;
    align-self: start;
    margin-top: 0;
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--radius-sm);
    background: var(--ocf-bg);
    color: var(--ocf-heading);
}

.ocf-detail-meta-icon svg {
    display: block;
    width: 0.95rem;
    height: 0.95rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ocf-detail-meta-label {
    display: block;
    margin-bottom: 0.15rem;
}

.ocf-detail-meta-row p {
    margin: 0;
    color: var(--ocf-body);
    font-size: var(--font-label-size);
    line-height: 1.45;
}

.ocf-detail-meta-row a {
    color: var(--ocf-heading);
    text-decoration: none;
}

.ocf-detail-sticky-btn svg,
.ocf-detail-sticky-phone svg {
    display: block;
    width: 1rem !important;
    height: 1rem !important;
    max-width: 1rem;
    max-height: 1rem;
    flex: 0 0 auto;
}

.ocf-detail-sticky-phone {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    color: var(--ocf-heading);
    font-size: var(--font-label-size);
    font-weight: var(--font-weight-bold);
    line-height: 1.3;
}

.ocf-detail-sticky-phone a {
    min-width: 0;
    overflow-wrap: anywhere;
    text-decoration: none;
}

@media (max-width: 900px) {
    .ocf-detail-grid,
    .ocf-detail__grid { grid-template-columns: 1fr; }
    .ocf-detail-aside,
    .ocf-detail__sidebar { position: static; }
    .ocf-location-map-card iframe { height: 16rem; }
    .ocf-detail-sticky {
        grid-template-columns: 1fr 1fr;
        align-items: stretch;
    }
    .ocf-detail-sticky-heading,
    .ocf-detail-sticky-desc {
        grid-column: 1 / -1;
    }
    .ocf-detail-sticky-btn,
    .ocf-detail-sticky-phone {
        justify-content: flex-start;
        min-height: 3rem;
    }
    .ocf-detail-sticky-phone {
        border: var(--button-border-width) solid var(--button-border-color);
        padding: 0.75rem 1rem;
    }
}

@media (max-width: 520px) {
    .ocf-detail-sticky {
        grid-template-columns: 1fr;
    }
}

/* OCF_AGENT_BLOCK:reference-detail-pages START */
.ocf-detail-aside,.ocf-detail__sidebar,.ocf-detail-card{padding:1.75rem;border-color:var(--ocf-border-light);border-radius:var(--card-radius);}
.ocf-detail-content .prose,.ocf-detail__content .prose{line-height:1.8;}
.ocf-detail-content h2,.ocf-detail-content h3{font-family:var(--ocf-font-heading),sans-serif;letter-spacing:-.025em;line-height:1.25;}
.ocf-detail-sticky-heading{font-family:var(--ocf-font-heading),sans-serif;}
.ocf-detail-sticky-phone{font-size:14px;}
@media(max-width:520px){.ocf-detail-aside,.ocf-detail__sidebar{padding:1.25rem;}}
/* OCF_AGENT_BLOCK:reference-detail-pages END */

/* OCF_AGENT_BLOCK:service-area-reference-landing START */
/* Service-area-only landing composition, using the site's existing tokens. */
body.single-service_area .ocf-page-header{background:var(--ocf-bg-dark);color:var(--ocf-body-alt);isolation:isolate;}
body.single-service_area .ocf-page-header--image{display:block;}
body.single-service_area .ocf-page-header--image::before{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;margin:0;border-radius:0;background-image:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.55)),var(--page-header-image);background-position:center;background-size:cover;opacity:1;z-index:-1;}
body.single-service_area .ocf-page-header .ocf-page-header__inner{width:calc(100% - 2rem);padding-block:clamp(4rem,9vw,7.5rem);}
body.single-service_area .ocf-page-header .ocf-page-header__content{max-width:56rem;margin-inline:auto;padding:0;text-align:center;justify-items:center;}
body.single-service_area .ocf-page-header .ocf-page-header__breadcrumb{justify-content:center;color:var(--ocf-body-alt);opacity:.9;}
body.single-service_area .ocf-page-header .ocf-page-header__headline{color:var(--ocf-heading-alt);max-width:20ch;font-size:clamp(2.1rem,4.5vw,4.1rem);line-height:1.08;}
body.single-service_area .ocf-page-header .ocf-page-header__subtitle{max-width:65ch;color:var(--ocf-body-alt);font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.75;}
body.single-service_area .ocf-page-header__actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:1rem 1.75rem;margin-top:.5rem;}
body.single-service_area .ocf-page-header__phone{color:var(--ocf-body-alt);font-weight:700;text-decoration:none;}
body.single-service_area .ocf-page-header__divider{width:6rem;margin-top:.5rem;}
body.single-service_area .ocf-page-header__divider .divider{background:var(--ocf-primary);}
.ocf-area-landing{padding:0;}
.ocf-area-landing .prose{font-size:var(--font-body-size);line-height:1.8;}
.ocf-area-landing .prose h2{margin:0 0 1rem;line-height:1.18;font-size:clamp(1.65rem,2.7vw,2.35rem);font-family:var(--ocf-font-heading),sans-serif;color:var(--ocf-heading);letter-spacing:-.025em;}
.ocf-area-landing .prose h3{line-height:1.3;font-size:clamp(1.1rem,1.6vw,1.35rem);font-family:var(--ocf-font-heading),sans-serif;color:var(--ocf-heading);}
.ocf-area-landing__intro{padding-block:clamp(3rem,6vw,5rem);text-align:center;}
.ocf-area-landing__intro .container-global{max-width:58rem;}
.ocf-area-landing__intro .btn-primary{margin-top:1.5rem;}
.ocf-area-landing__slogan{margin:0 0 1.5rem;font-family:var(--ocf-font-heading),sans-serif;color:var(--ocf-heading);font-size:clamp(1.4rem,2.5vw,2rem);line-height:1.3;font-weight:700;}
.ocf-area-landing__row{padding-block:clamp(3rem,6vw,5rem);border-top:1px solid var(--ocf-border-light);background:var(--ocf-bg-alt);}
.ocf-area-landing__row--reverse{background:var(--ocf-bg);}
.ocf-area-landing__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,5rem);}
.ocf-area-landing__copy,.ocf-area-landing__form{min-width:0;}
.ocf-area-landing__row--reverse .ocf-area-landing__copy{order:2;}
.ocf-area-landing__row--reverse .ocf-area-landing__image{order:1;}
.ocf-area-landing__image{margin:0;}
.ocf-area-landing__image img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--image-radius);}
.ocf-area-landing__actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:1.75rem;}
.ocf-area-landing__phone{color:var(--ocf-heading);font-weight:700;text-decoration:none;}
.ocf-area-landing__row--contact{scroll-margin-top:7rem;}
.ocf-area-landing__row--contact .ocf-area-landing__grid{align-items:start;}
.ocf-area-landing__row--contact .ocf-area-landing__copy{order:0;}
.ocf-area-landing__contact-description{color:var(--ocf-body);margin-top:1rem;line-height:1.8;}
.ocf-area-landing__contact-links{display:grid;gap:.5rem;margin-top:1.25rem;}
.ocf-area-landing__contact-links a{color:var(--ocf-heading);font-weight:700;text-decoration:none;overflow-wrap:anywhere;}
.ocf-area-landing__messages{padding-left:1.25rem;margin-block:1.25rem;color:var(--ocf-body);line-height:1.8;}
.ocf-area-landing__messages li::marker{color:var(--ocf-primary);}
.ocf-area-landing__map{display:flex;align-items:center;gap:1rem;margin:1.5rem 0 0;padding:1.25rem;border:1px solid var(--ocf-border-light);border-radius:var(--card-radius);background:var(--ocf-bg);}
.ocf-area-landing__map-icon{display:block;flex:0 0 2rem;width:2rem;height:2rem;color:var(--ocf-primary);}
.ocf-area-landing__map figcaption{display:grid;gap:.4rem;color:var(--ocf-body);font-size:.9rem;line-height:1.5;}
.ocf-area-landing__map figcaption strong{color:var(--ocf-heading);}
.ocf-area-landing__map-link{color:var(--ocf-primary);font-weight:600;text-underline-offset:.15em;}
.ocf-area-landing__form .ocf-form-shell{max-width:none;}
.ocf-area-landing__row--faq{background:var(--ocf-bg);}
.ocf-area-landing__row--faq .ocf-area-landing__grid{display:block;max-width:68rem;}
.ocf-area-landing__faq-heading{text-align:center;margin-bottom:2.25rem;}
.ocf-area-landing__faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 2rem;}
.ocf-area-landing__faq-item{padding:1.5rem 0;border-top:1px solid var(--ocf-border-light);}
.ocf-area-landing__faq-item h3{margin-top:0;}
@media(max-width:800px){
 .ocf-area-landing__grid{grid-template-columns:1fr;gap:2rem;}
 .ocf-area-landing__row--reverse .ocf-area-landing__copy,.ocf-area-landing__row--reverse .ocf-area-landing__image{order:0;}
 .ocf-area-landing__image{max-width:42rem;width:100%;}
 .ocf-area-landing__image img{aspect-ratio:16/10;}
 .ocf-area-landing__faq-grid{grid-template-columns:1fr;gap:0;}
 body.single-service_area .ocf-page-header .ocf-page-header__inner{padding-block:3.75rem;}
}
@media(max-width:480px){
 body.single-service_area .ocf-page-header__actions{flex-direction:column;align-items:center;gap:1rem;}
 .ocf-area-landing__actions{align-items:flex-start;flex-direction:column;}
 .ocf-area-landing__intro{text-align:left;}
 .ocf-area-landing__row,.ocf-area-landing__intro{padding-block:2.75rem;}
}
/* OCF_AGENT_BLOCK:service-area-reference-landing END */

/* OCF_AGENT_BLOCK:service-area-intro-city-map START */
.ocf-area-landing__intro .container-global{max-width:80rem;}
.ocf-area-landing__intro-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:center;margin-top:2rem;text-align:left;}
.ocf-area-landing__intro-copy{min-width:0;}
.ocf-area-landing__intro-map{min-width:0;width:100%;margin:0;overflow:hidden;border:1px solid var(--ocf-border-light);border-radius:var(--image-radius);background:var(--ocf-bg-alt);scroll-margin-top:7rem;}
.ocf-area-landing__intro-map iframe{display:block;width:100%;height:clamp(22rem,32vw,30rem);border:0;color-scheme:light;}
.ocf-area-landing__intro-map figcaption{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem 1rem;padding:1rem 1.25rem;color:var(--ocf-heading);background:var(--ocf-bg);font-size:.9rem;}
.ocf-area-landing__intro-map figcaption a{color:var(--ocf-primary);font-weight:600;text-underline-offset:.15em;}
@media(max-width:800px){.ocf-area-landing__intro-grid{grid-template-columns:1fr;gap:2rem;}.ocf-area-landing__intro-map iframe{height:22rem;}}
@media(max-width:480px){.ocf-area-landing__intro-map iframe{height:19rem;}}
/* OCF_AGENT_BLOCK:service-area-intro-city-map END */
