/* OCF Base3 Bones theme: Atlas Home Systems. */

:root {
    --container-max: 1168px;
    --section-pad: clamp(4rem, 8vw, 7rem);
    --grid-gap: clamp(1rem, 2.2vw, 1.5rem);
    --text-2xl: clamp(1.65rem, 2.7vw, 2.15rem);
    --text-3xl: clamp(2.1rem, 4vw, 3.3rem);
    --text-4xl: clamp(2.65rem, 5vw, 4.25rem);
    --text-hero: clamp(2.85rem, 5.4vw, 5.35rem);

    --radius-sm: 6px;
    --radius: 8px;
    --radius-lg: 8px;
    --button-radius: 6px;
    --card-radius: 8px;
    --card-radius-lg: 8px;
    --image-radius: 8px;
    --button-shadow: none;
    --button-shadow-hover: 0 12px 24px rgba(36, 92, 79, 0.14);
    --button-transform-hover: translateY(-1px);
    --card-shadow: 0 18px 50px rgba(23, 33, 31, 0.08);
    --card-shadow-hover: 0 24px 65px rgba(23, 33, 31, 0.12);
    --card-transform-hover: translateY(-3px);
}

html,
body {
    max-width: 100%;
    overflow-x: clip;
}

body {
    background: var(--ocf-bg);
}

.heading-section {
    font-weight: 750;
    letter-spacing: 0;
}

.eyebrow {
    color: var(--ocf-secondary);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.btn-primary,
.nav-cta,
.hero-form-card .form-submit-btn,
.booking-submit,
.bw-button-primary {
    border-color: transparent;
    background: var(--ocf-accent);
    color: var(--ocf-heading-alt);
    font-weight: 800;
}

.btn-primary:hover,
.nav-cta:hover,
.hero-form-card .form-submit-btn:hover,
.booking-submit:hover,
.bw-button-primary:hover {
    background: var(--ocf-accent-hover);
    box-shadow: var(--button-shadow-hover);
}

.btn-secondary {
    border-color: color-mix(in srgb, var(--ocf-accent) 28%, var(--ocf-border));
    background: rgba(255, 255, 255, 0.52);
    color: var(--ocf-accent-hover);
    font-weight: 750;
}

.btn-secondary:hover {
    border-color: var(--ocf-accent);
    background: color-mix(in srgb, var(--ocf-accent) 8%, var(--ocf-bg));
}

.nav-bar {
    border-bottom-color: rgba(207, 216, 210, 0.82);
    background: rgba(251, 250, 245, 0.92);
    backdrop-filter: blur(16px);
}

.nav-logo {
    gap: 0.58rem;
    color: var(--ocf-heading);
    font-size: 1.12rem;
    font-weight: 800;
}

.nav-logo::before {
    content: "";
    width: 0.84rem;
    height: 0.84rem;
    border-radius: 3px;
    background: var(--ocf-accent);
    box-shadow: 0.34rem 0.34rem 0 var(--ocf-secondary);
}

.nav-links {
    gap: 1.2rem;
}

.nav-link,
.nav-phone {
    color: color-mix(in srgb, var(--ocf-heading) 74%, var(--ocf-body));
    font-weight: 650;
}

.dropdown-menu,
.mobile-menu {
    border-color: var(--ocf-border-light);
    background: var(--ocf-bg);
    box-shadow: var(--card-shadow);
}

.ocf-hero {
    min-height: min(820px, calc(100vh - 4.5rem));
    background: var(--ocf-bg-dark);
}

.ocf-hero__media {
    inset: 0;
    width: 100%;
    opacity: 1;
}

.ocf-hero__media::after {
    content: none;
}

.ocf-hero__media img {
    height: 100%;
    object-fit: cover;
    filter: saturate(0.8) contrast(0.96);
}

.ocf-hero__shade {
    display: block;
    background:
        var(--gradient-media-darker-5),
        var(--gradient-media-dark-even);
    opacity: 0.88;
}

.ocf-hero__grid {
    grid-template-columns: minmax(0, 0.98fr) minmax(340px, 0.72fr);
    align-items: center;
    gap: clamp(1.75rem, 5vw, 5rem);
    min-height: min(820px, calc(100vh - 4.5rem));
    padding-block: clamp(4rem, 8vw, 6.75rem);
}

.ocf-hero__content {
    max-width: 690px;
}

.ocf-hero__title {
    max-width: 12ch;
    margin-top: 1.2rem;
    color: var(--ocf-heading-alt);
    line-height: 0.98;
}

.ocf-hero__text {
    max-width: 54ch;
    color: var(--ocf-body-alt);
    font-size: clamp(1.05rem, 1.4vw, 1.24rem);
}

.ocf-hero__rating {
    width: fit-content;
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--radius-full);
    background: rgba(255, 255, 255, 0.1);
    color: var(--ocf-label-alt);
    padding: 0.48rem 0.7rem;
    box-shadow: 0 12px 35px rgba(23, 33, 31, 0.06);
}

.ocf-hero__stars,
.ocf-testimonial-stars {
    color: #bd7c3a;
}

.ocf-hero__form .ocf-simple-form,
.ocf-simple-form,
.hero-form-card,
.booking-wizard,
.ocf-contact__panel {
    border: 1px solid rgba(207, 216, 210, 0.86);
    border-radius: var(--card-radius-lg);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 26px 74px rgba(23, 33, 31, 0.12);
}

.hero-form-card {
    position: relative;
    overflow: hidden;
}

.hero-form-card::before {
    content: "Visit routing";
    display: inline-flex;
    width: fit-content;
    margin-bottom: 0.9rem;
    border: 1px solid color-mix(in srgb, var(--ocf-accent) 20%, var(--ocf-border));
    border-radius: var(--radius-full);
    background: color-mix(in srgb, var(--ocf-accent) 7%, #fff);
    color: var(--ocf-accent-hover);
    padding: 0.25rem 0.55rem;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ocf-field input,
.ocf-field textarea,
.hero-form-card input,
.hero-form-card textarea,
.hero-form-card select,
.ocf-phone-combo,
.booking-wizard input,
.booking-wizard textarea,
.booking-wizard select,
.bw-phone-combo,
.bw-service-option {
    border-color: var(--ocf-border-light);
    border-radius: var(--radius);
    background: var(--ocf-bg);
}

.ocf-services,
.ocf-commitments,
.ocf-faq {
    background: var(--gradient-primary-soft);
}

.ocf-services-header,
.ocf-testimonials-header,
.ocf-gallery-header {
    align-items: end;
    margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
}

.ocf-services-heading,
.ocf-testimonials-heading,
.ocf-faq-header {
    max-width: 760px;
}

.ocf-svc-grid {
    gap: var(--grid-gap);
}

.ocf-svc-card,
.ocf-location-card,
.ocf-gallery-card,
.ocf-testimonial-card,
.ocf-faq-item,
.ocf-faq-static-card,
.ocf-area-card,
.ocf-service-area-card,
.ocf-detail-card,
.ocf-detail-aside,
.ocf-detail__sidebar {
    border-color: rgba(207, 216, 210, 0.86);
    border-radius: var(--card-radius);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: var(--card-shadow);
}

.ocf-svc-card:hover,
.ocf-location-card:hover,
.ocf-gallery-card:hover {
    transform: var(--card-transform-hover);
    box-shadow: var(--card-shadow-hover);
}

.ocf-svc-card-img {
    aspect-ratio: 16 / 10;
    border-bottom: 1px solid var(--ocf-border-light);
    background: #dbe4df;
}

.ocf-svc-card-img img,
.ocf-about__media img,
.about-image img,
.ocf-commitments__media img {
    filter: saturate(0.82) contrast(0.96);
}

.ocf-svc-card-body {
    min-height: 10rem;
    padding: 1.2rem;
}

.ocf-svc-card-body h3 {
    color: var(--ocf-heading);
    font-size: 1.22rem;
    line-height: 1.16;
}

.ocf-svc-card-body p {
    color: var(--ocf-body);
    font-size: 0.92rem;
}

.ocf-svc-arrow {
    border-radius: var(--radius-full);
    background: color-mix(in srgb, var(--ocf-accent) 8%, var(--ocf-bg));
    color: var(--ocf-accent);
}

.ocf-about {
    background: var(--ocf-bg);
}

.about-grid,
.ocf-about__grid {
    grid-template-columns: minmax(280px, 0.78fr) minmax(0, 1fr);
}

.ocf-about--checklist_image_left .about-image-wrap,
.ocf-about--checklist_image_left .ocf-about__media {
    order: 1;
}

.ocf-about--checklist_image_left .about-content,
.ocf-about--checklist_image_left .ocf-about__copy {
    order: 2;
}

.about-image-wrap,
.ocf-about__media,
.ocf-about__image,
.ocf-commitments-image,
.ocf-commitments__media {
    border-color: var(--ocf-border-light);
    box-shadow: var(--card-shadow);
}

.about-checkitem {
    align-items: start;
    border-top: 1px solid var(--ocf-border-light);
    padding-top: 0.75rem;
}

.about-checkitem__icon {
    border-color: var(--ocf-accent);
    color: var(--ocf-accent);
}

.about-checkitem__icon::before {
    border-color: var(--ocf-accent);
}

.ocf-commitments-grid,
.ocf-commitments__grid {
    align-items: center;
}

.ocf-commitment {
    border-top: 1px solid var(--ocf-border-light);
    padding-top: 1rem;
}

.ocf-commitment-num {
    color: var(--ocf-secondary);
}

.ocf-testimonials {
    background: var(--ocf-bg-dark);
    color: var(--ocf-body-alt);
}

.ocf-testimonials .heading-section,
.ocf-testimonials .eyebrow,
.ocf-testimonial-card strong,
.ocf-testimonial__author {
    color: var(--ocf-heading-alt);
}

.ocf-testimonials .eyebrow {
    color: #9ec2bb;
}

.ocf-testimonial-card {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.07);
    box-shadow: none;
}

.ocf-testimonial-card blockquote,
.ocf-testimonial__text {
    color: rgba(255, 255, 255, 0.78);
}

.ocf-testimonial__meta,
.testimonial-quote-mark {
    color: rgba(255, 255, 255, 0.58);
}

.ocf-service-areas {
    background: var(--ocf-bg);
}

.ocf-service-areas__grid {
    align-items: stretch;
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--card-radius-lg);
    background: #fff;
    padding: clamp(1rem, 3vw, 1.5rem);
    box-shadow: var(--card-shadow);
}

.ocf-service-areas__map {
    min-height: 24rem;
    border: 0;
    border-radius: var(--image-radius);
    background: #dce5e0;
}

.ocf-service-areas__content {
    align-content: center;
    padding: clamp(0.5rem, 2vw, 1rem);
}

.ocf-service-areas__link {
    border-color: color-mix(in srgb, var(--ocf-accent) 16%, var(--ocf-border-light));
    background: color-mix(in srgb, var(--ocf-accent) 5%, var(--ocf-bg));
    color: var(--ocf-heading);
    font-weight: 700;
}

.ocf-faq-split-layout {
    gap: clamp(2rem, 6vw, 4rem);
}

.ocf-faq-item,
.ocf-faq__item {
    box-shadow: none;
}

.ocf-faq-trigger:hover {
    background: color-mix(in srgb, var(--ocf-accent) 5%, var(--ocf-bg));
}

.ocf-cta {
    background: var(--ocf-bg);
}

.ocf-cta--contrast_panel .ocf-cta__panel {
    border: 1px solid rgba(255, 255, 255, 0.14);
    background:
        linear-gradient(135deg, rgba(78, 113, 130, 0.24), rgba(36, 92, 79, 0.18)),
        var(--ocf-bg-dark);
    color: var(--ocf-body-alt);
    box-shadow: 0 28px 80px rgba(23, 33, 31, 0.18);
}

.ocf-cta--contrast_panel .heading-section,
.ocf-cta--contrast_panel .ocf-cta__title {
    color: var(--ocf-heading-alt);
}

.ocf-cta--contrast_panel .eyebrow,
.ocf-cta--contrast_panel .ocf-cta__eyebrow {
    color: var(--ocf-label-alt);
}

.ocf-cta--contrast_panel .ocf-cta__text {
    color: var(--ocf-body-alt);
}

.ocf-cta__media {
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.08);
}

.site-footer {
    border-top-color: var(--ocf-border-light);
    background: #f7f6ef;
}

[data-bones-gradient-switch] {
    display: none !important;
}

.footer-brand-name {
    color: var(--ocf-heading);
    font-weight: 850;
}

.footer-heading {
    color: var(--ocf-heading);
}

.footer-bottom {
    border-top-color: var(--ocf-border-light);
}

.ocf-detail-section,
.page-section--default {
    background: var(--ocf-bg);
}

.ocf-detail__media img,
.prose img,
.wp-post-image {
    border: 1px solid var(--ocf-border-light);
    box-shadow: var(--card-shadow);
}

@media (max-width: 980px) {
    .ocf-hero__media {
        width: 100%;
        opacity: 0.18;
    }

    .ocf-hero__grid {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .ocf-hero__title {
        max-width: 13ch;
    }
}

@media (max-width: 860px) {
    .about-grid,
    .ocf-about__grid,
    .ocf-commitments-grid,
    .ocf-commitments__grid {
        grid-template-columns: 1fr;
    }

    .ocf-about--checklist_image_left .about-image-wrap,
    .ocf-about--checklist_image_left .about-content,
    .ocf-about--checklist_image_left .ocf-about__media,
    .ocf-about--checklist_image_left .ocf-about__copy {
        order: initial;
    }

    .ocf-cta--contrast_panel .ocf-cta__inner {
        grid-template-columns: 1fr;
    }

    .ocf-cta__media {
        grid-column: auto;
        grid-row: auto;
    }
}

@media (max-width: 640px) {
    html,
    body {
        overflow-x: hidden;
    }

    .ocf-hero,
    .ocf-hero__grid,
    .ocf-hero__content,
    .ocf-hero__form,
    .hero-form-card {
        max-width: 100%;
        min-width: 0;
        overflow-x: hidden;
    }

    .ocf-hero__content {
        width: calc(100vw - 2rem);
    }

    .ocf-hero__rating {
        max-width: calc(100vw - 2rem);
        font-size: 0.86rem;
    }

    .ocf-hero__title {
        max-width: 10.5ch;
        font-size: clamp(1.9rem, 8.8vw, 2.35rem);
        line-height: 1.08;
        overflow-wrap: anywhere;
    }

    .ocf-hero__text {
        max-width: 31ch;
    }

    .ocf-hero__title span {
        display: block;
    }

    .ocf-hero__title span:not(:last-child)::after {
        content: "";
    }

    .ocf-services-header,
    .ocf-testimonials-header,
    .ocf-gallery-header {
        display: grid;
        align-items: start;
    }

    .ocf-service-areas__grid {
        padding: 0.75rem;
    }
}
