/* Stone — grounded premium service design over Base3 Bones.
   Keep this file as a late theme layer: no OCF marker or markup assumptions beyond existing Bones classes. */

:root {
    --stone-ink: #282827;
    --stone-brown: #453c30;
    --stone-taupe: #867969;
    --stone-warm: #ede9e4;
    --stone-paper: #f7f3ed;
    --stone-line: #cfc5ba;
    --stone-slate: #7a8685;

    --container-max: 1240px;
    --section-pad: clamp(4rem, 8vw, 7rem);
    --grid-gap: clamp(1rem, 2vw, 1.5rem);
    --site-heading-size: clamp(30px, 3.8vw, 52px);
    --site-hero-heading-size: clamp(42px, 6vw, 82px);
    --text-xl: 24px;

    --radius-sm: 2px;
    --radius: 2px;
    --radius-lg: 2px;
    --button-radius: 2px;
    --card-radius: 2px;
    --card-radius-lg: 2px;
    --image-radius: 2px;

    --button-shadow: none;
    --button-shadow-hover: none;
    --button-transform-hover: translateY(-1px);
    --card-shadow: 0 1.1rem 2.4rem color-mix(in srgb, var(--stone-ink) 10%, transparent);
    --card-shadow-hover: 0 1.35rem 3rem color-mix(in srgb, var(--stone-ink) 15%, transparent);
    --image-shadow: 0 1.2rem 2.8rem color-mix(in srgb, var(--stone-ink) 16%, transparent);
    --media-overlay-opacity: 0.82;
    --media-light-overlay-opacity: 0.82;

    --gradient-media-dark: linear-gradient(90deg, rgba(40,40,39,0.94) 0%, rgba(69,60,48,0.82) 48%, rgba(40,40,39,0.26) 100%);
    --gradient-media-dark-reverse: linear-gradient(90deg, rgba(40,40,39,0.22) 0%, rgba(69,60,48,0.82) 52%, rgba(40,40,39,0.94) 100%);
    --gradient-media-dark-even: linear-gradient(0deg, rgba(40,40,39,0.76), rgba(40,40,39,0.76));
    --gradient-media-light: linear-gradient(90deg, rgba(237,233,228,0.96) 0%, rgba(237,233,228,0.84) 54%, rgba(237,233,228,0.36) 100%);
    --gradient-primary-soft: linear-gradient(180deg, #f7f3ed 0%, #ede9e4 100%);
    --gradient-dark-primary: linear-gradient(135deg, #282827 0%, #453c30 58%, #7a8685 100%);
}

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

body {
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--stone-line) 18%, transparent) 1px, transparent 1px),
        var(--ocf-bg);
    background-size: 88px 88px;
}

.nav-bar {
    border-bottom-color: color-mix(in srgb, var(--stone-ink) 14%, transparent);
    background: color-mix(in srgb, var(--stone-paper) 92%, transparent);
    backdrop-filter: blur(14px);
}

.nav-inner {
    min-height: 4.75rem;
}

.nav-logo {
    font-weight: 800;
    letter-spacing: 0;
}

.nav-links {
    gap: 1.2rem;
    color: color-mix(in srgb, var(--ocf-heading) 88%, var(--ocf-body));
}

.nav-link,
.nav-dropdown-trigger {
    font-size: 13px;
    font-weight: 700;
}

.nav-link:hover,
.nav-dropdown-trigger:hover,
.nav-phone:hover {
    color: var(--ocf-accent);
}

.dropdown-menu,
.mobile-menu {
    background: var(--stone-paper);
    box-shadow: 0 1rem 2rem color-mix(in srgb, var(--stone-ink) 14%, transparent);
}

.btn,
.button,
.nav-cta,
.mobile-cta,
.ocf-hero__actions a,
.ocf-cta__actions a,
.ocf-contact-submit,
.ocf-simple-form button,
.hero-form-card button {
    border-radius: var(--button-radius);
    font-weight: 800;
    letter-spacing: 0;
}

.btn-primary,
.nav-cta,
.mobile-cta,
.ocf-contact-submit,
.ocf-simple-form button,
.hero-form-card button {
    background: var(--ocf-accent);
    color: var(--ocf-heading-alt);
}

.btn-primary:hover,
.nav-cta:hover,
.mobile-cta:hover,
.ocf-contact-submit:hover,
.ocf-simple-form button:hover,
.hero-form-card button:hover {
    background: var(--ocf-accent-hover);
}

.btn-secondary,
.ocf-hero__actions a:not(.btn-primary),
.ocf-cta__actions a:not(.btn-primary) {
    border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
    background: transparent;
}

.eyebrow,
.ocf-about__eyebrow,
.ocf-cta__eyebrow,
.ocf-services-eyebrow,
.ocf-service-areas__eyebrow {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.heading-section,
.ocf-hero__headline,
.ocf-about__headline,
.ocf-cta__headline,
.ocf-svc-card-body h3,
.ocf-testimonial__author,
.ocf-faq-static-card h3 {
    letter-spacing: 0;
}

.ocf-section:not(.ocf-hero):not(.ocf-cta) {
    border-top: 1px solid color-mix(in srgb, var(--stone-line) 56%, transparent);
}

.ocf-hero {
    min-height: min(920px, calc(100vh - 4.75rem));
    background: var(--stone-ink);
}

.ocf-hero__media img,
.ocf-cta__bg-image,
.ocf-cta__image,
.ocf-about__media img,
.ocf-about__image img,
.ocf-commitments-image img,
.ocf-commitments__media img,
.ocf-svc-card-img img {
    filter: saturate(0.78) contrast(1.08);
}

.ocf-hero--split-form .ocf-hero__grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(350px, 410px);
    padding-block: clamp(6rem, 12vh, 9rem);
}

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

.ocf-hero__headline {
    max-width: 11.5ch;
    font-weight: 800;
    line-height: 0.98;
}

.ocf-hero__intro {
    max-width: 46rem;
    color: rgba(246,242,236,0.88);
    font-size: clamp(17px, 1.4vw, 21px);
}

.ocf-hero__rating {
    margin-bottom: 1.25rem;
    color: rgba(246,242,236,0.74);
    font-weight: 700;
}

.ocf-hero__stars {
    color: #c4baae;
}

.hero-form-card,
.ocf-hero__form {
    border: 1px solid rgba(246,242,236,0.18);
    border-radius: 2px;
    background: color-mix(in srgb, var(--stone-paper) 94%, transparent);
    box-shadow: 0 1.5rem 3.4rem rgba(0, 0, 0, 0.28);
}

.ocf-services,
.ocf-about,
.ocf-faq {
    background: var(--stone-paper);
}

.ocf-services-header,
.ocf-testimonials-header,
.ocf-testimonials__header {
    align-items: start;
    border-bottom: 1px solid color-mix(in srgb, var(--stone-line) 70%, transparent);
    padding-bottom: clamp(1.25rem, 2.5vw, 2rem);
}

.ocf-svc-card,
.ocf-testimonial-card,
.ocf-testimonial,
.ocf-faq__item,
.ocf-faq-item,
.ocf-faq-static-card,
.ocf-area-card,
.ocf-service-area-card {
    border-color: color-mix(in srgb, var(--stone-line) 86%, transparent);
    background: color-mix(in srgb, #ffffff 55%, var(--stone-paper));
    box-shadow: none;
}

.ocf-svc-card {
    min-height: 100%;
}

.ocf-svc-card-body {
    gap: 0.85rem;
    padding: clamp(1.25rem, 2.6vw, 1.75rem);
}

.ocf-svc-card-body h3 {
    font-size: clamp(20px, 1.8vw, 26px);
    line-height: 1.05;
}

.ocf-svc-card-body p {
    font-size: 15px;
}

.ocf-svc-card-img {
    aspect-ratio: 4 / 3;
}

.ocf-svc-card:hover,
.ocf-testimonial-card:hover {
    border-color: color-mix(in srgb, var(--stone-ink) 34%, var(--stone-line));
    box-shadow: var(--card-shadow);
}

.ocf-about__grid {
    grid-template-columns: minmax(300px, 0.88fr) minmax(0, 1fr);
}

.ocf-about__copy {
    gap: 1.15rem;
}

.ocf-about__body {
    font-size: 17px;
}

.ocf-about__media,
.ocf-about__image,
.ocf-commitments-image,
.ocf-commitments__media,
.ocf-service-areas__map {
    border-color: color-mix(in srgb, var(--stone-line) 88%, transparent);
}

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

.ocf-commitment {
    grid-template-columns: 3rem minmax(0, 1fr);
    padding-block: 1.35rem;
}

.ocf-commitment-num {
    color: var(--stone-taupe);
    font-family: var(--ocf-font-heading), system-ui, sans-serif;
    font-size: 20px;
}

.ocf-commitment h3 {
    font-size: clamp(20px, 1.7vw, 25px);
}

.ocf-testimonials {
    background: var(--stone-ink);
    color: var(--ocf-body-alt);
}

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

.ocf-testimonials .eyebrow,
.ocf-testimonials .ocf-testimonial__meta,
.ocf-testimonials .testimonial-quote-mark {
    color: rgba(246,242,236,0.62);
}

.ocf-testimonials-header,
.ocf-testimonials__header {
    border-bottom-color: rgba(246,242,236,0.16);
}

.ocf-testimonial-card,
.ocf-testimonial {
    border-color: rgba(246,242,236,0.14);
    background: color-mix(in srgb, var(--stone-brown) 42%, var(--stone-ink));
}

.ocf-testimonial-card blockquote,
.ocf-testimonial blockquote,
.ocf-testimonial__text {
    color: rgba(246,242,236,0.84);
}

.ocf-testimonial-stars {
    color: #c4baae;
}

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

.ocf-service-areas__grid,
.ocf-area-grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(310px, 0.75fr);
}

.ocf-service-areas__map {
    box-shadow: var(--card-shadow);
}

.ocf-service-areas__links {
    gap: 0.65rem;
}

.ocf-service-areas__link {
    border-radius: 2px;
    border-color: color-mix(in srgb, var(--stone-line) 82%, transparent);
    background: var(--stone-paper);
    font-weight: 700;
}

.ocf-faq-split-layout .ocf-faq-header {
    top: calc(var(--nav-height) + 1.5rem);
}

.ocf-faq-trigger {
    padding: 1.15rem 1.25rem;
}

.ocf-faq-answer {
    padding-inline: 1.25rem;
    padding-bottom: 1.25rem;
}

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

.ocf-cta--contrast-panel {
    --cta-background: var(--stone-ink);
    --cta-panel-background: var(--stone-paper);
    --cta-panel-color: var(--ocf-body);
    --cta-eyebrow-color: var(--ocf-label);
    --cta-headline-color: var(--ocf-heading);
    --cta-body-color: var(--ocf-body);
    --cta-panel-border-color: rgba(246,242,236,0.16);
}

.ocf-cta--contrast-panel .ocf-cta__panel,
.ocf-cta--contrast-panel .ocf-cta__grid {
    box-shadow: 0 1.4rem 3.2rem rgba(0,0,0,0.22);
}

.site-footer {
    border-top: 0;
    background: var(--stone-ink);
    color: rgba(246,242,236,0.74);
}

.site-footer .footer-brand-name,
.site-footer .footer-heading,
.site-footer a:hover {
    color: var(--ocf-heading-alt);
}

.site-footer .footer-bottom {
    border-top-color: rgba(246,242,236,0.13);
}

.footer-social-link {
    border-color: rgba(246,242,236,0.16);
    background: rgba(246,242,236,0.06);
    color: rgba(246,242,236,0.82);
}

.page-header,
.ocf-page-header {
    background: var(--stone-ink);
}

.page-content-body,
.prose {
    font-size: 17px;
}

.post-card,
.ocf-contact-card,
.contact-card,
.booking-wizard {
    border-radius: 2px;
}

@media (max-width: 980px) {
    .nav-inner {
        min-height: 4rem;
    }

    .ocf-hero--split-form .ocf-hero__grid,
    .ocf-about__grid,
    .ocf-service-areas__grid,
    .ocf-area-grid {
        grid-template-columns: 1fr;
    }

    .ocf-hero__headline {
        max-width: 12.5ch;
    }
}

@media (max-width: 640px) {
    :root {
        --section-pad: clamp(3.25rem, 12vw, 4.5rem);
        --site-heading-size: clamp(30px, 8.5vw, 36px);
        --site-hero-heading-size: clamp(34px, 10.8vw, 45px);
    }

    body {
        background-size: 56px 56px;
    }

    .ocf-hero {
        min-height: 0;
    }

    .ocf-hero--split-form .ocf-hero__grid {
        gap: 2rem;
        padding-block: clamp(4.25rem, 14vw, 5.25rem);
    }

    .ocf-hero__grid,
    .ocf-hero__content,
    .ocf-services-heading,
    .ocf-testimonials-heading,
    .ocf-service-areas__header,
    .ocf-faq-header {
        min-width: 0;
        max-width: 100%;
    }

    .ocf-hero__headline {
        max-width: min(100%, 9.5ch);
        line-height: 1.02;
        overflow-wrap: normal;
    }

    .ocf-hero__intro {
        max-width: 100%;
        font-size: 16px;
        overflow-wrap: break-word;
    }

    .heading-section,
    .ocf-about__headline,
    .ocf-cta__headline {
        max-width: 100%;
        overflow-wrap: break-word;
    }

    .hero-form-card,
    .ocf-hero__form {
        width: 100%;
    }

    .ocf-services-header,
    .ocf-testimonials-header,
    .ocf-testimonials__header {
        display: grid;
    }

    .ocf-commitment {
        grid-template-columns: 2.4rem minmax(0, 1fr);
    }
}

/* Stone concept refinement pass: closer to the supplied architectural reference. */
:root {
    --stone-cream: #f4efe6;
    --stone-cream-2: #e6ded2;
    --stone-charcoal: #242424;
    --stone-soft-ink: #35302a;
    --stone-muted: #776c5d;
    --stone-hairline: #d2c6b6;
    --stone-gold: #a08b67;
}

body {
    background:
        linear-gradient(90deg, rgba(160, 139, 103, 0.14) 1px, transparent 1px),
        linear-gradient(0deg, rgba(160, 139, 103, 0.10) 1px, transparent 1px),
        var(--stone-cream);
    background-size: 104px 104px;
}

.nav-bar {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid rgba(53, 48, 42, 0.16);
    background:
        linear-gradient(90deg, rgba(210, 198, 182, 0.28) 1px, transparent 1px),
        rgba(244, 239, 230, 0.96);
    background-size: 84px 84px;
    box-shadow: none;
}

.nav-inner {
    min-height: 5.7rem;
    align-items: center;
}

.nav-logo {
    max-width: 560px;
    flex: 0 1 auto;
}

.nav-logo-text {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 2.35rem;
    font-weight: 500;
    line-height: 0.95;
    color: var(--stone-charcoal);
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
}

.nav-links {
    gap: 1.8rem;
    margin-left: auto;
}

.nav-link,
.nav-dropdown-trigger {
    position: relative;
    padding-block: 0.65rem;
    color: var(--stone-soft-ink);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.nav-links > .nav-link::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0.25rem;
    left: 0;
    height: 1px;
    background: currentColor;
}

.nav-links > .nav-dropdown:nth-of-type(n+2):not(:last-of-type),
.nav-phone,
.nav-divider,
.nav-cta {
    display: none;
}

.nav-dropdown-chevron,
.nav-links > .nav-dropdown:last-of-type .nav-dropdown-chevron,
.ocf-eyebrow-link__icon {
    display: none;
}

.dropdown-menu {
    border-radius: 0;
    border-color: rgba(53, 48, 42, 0.12);
}

.ocf-hero {
    min-height: 700px;
    background: var(--stone-cream);
    color: var(--stone-soft-ink);
}

.ocf-hero--split-no-form .ocf-hero__media {
    inset: 0 0 0 52%;
}

.ocf-hero--split-no-form .ocf-hero__media img {
    height: 100%;
    object-position: center;
}

.ocf-hero--split-no-form .ocf-hero__shade {
    opacity: 1;
    background:
        linear-gradient(90deg, var(--stone-cream) 0%, var(--stone-cream) 49%, rgba(244, 239, 230, 0.24) 64%, rgba(36, 36, 36, 0.05) 100%),
        linear-gradient(90deg, rgba(160, 139, 103, 0.13) 1px, transparent 1px);
    background-size: auto, 84px 84px;
}

.ocf-hero--split-no-form .ocf-hero__grid {
    position: relative;
    z-index: 1;
    min-height: 700px;
    grid-template-columns: minmax(0, 0.48fr) minmax(0, 0.52fr);
    align-items: center;
    padding-block: 5.25rem;
}

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

.ocf-hero__rating {
    display: none;
}

.ocf-hero__headline {
    max-width: 9.4ch;
    color: var(--stone-charcoal);
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 5.35rem;
    font-weight: 500;
    line-height: 0.96;
}

.ocf-hero__intro {
    max-width: 36rem;
    color: var(--stone-muted);
    font-size: 1.04rem;
    line-height: 1.8;
}

.ocf-hero__actions {
    margin-top: 2rem;
}

.btn-primary,
.ocf-hero__actions a,
.ocf-cta__actions a {
    min-height: 3.15rem;
    border: 1px solid var(--stone-charcoal);
    border-radius: 0;
    background: var(--stone-charcoal);
    color: #fbf7ef;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ocf-services,
.ocf-about,
.ocf-faq,
.ocf-gallery {
    background: var(--stone-cream);
}

.ocf-services-header {
    display: grid;
    justify-items: center;
    text-align: center;
    border-bottom: 0;
    padding-bottom: 2.3rem;
}

.ocf-services-heading {
    max-width: 720px;
}

.ocf-services .heading-section,
.ocf-gallery .heading-section {
    color: var(--stone-charcoal);
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 3.6rem;
    font-weight: 500;
    line-height: 1.02;
}

.eyebrow,
.ocf-services-eyebrow,
.ocf-testimonials .eyebrow,
.ocf-gallery .eyebrow,
.ocf-commitments .eyebrow {
    color: var(--stone-muted);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.ocf-svc-nav,
.ocf-gallery-nav {
    position: absolute;
    right: max(1.5rem, calc((100vw - var(--container-max)) / 2));
    margin-top: 0.4rem;
}

.ocf-svc-nav button,
.ocf-gallery-nav button {
    border-radius: 999px;
    border-color: var(--stone-hairline);
    background: transparent;
}

.ocf-svc-card {
    border: 1px solid var(--stone-hairline);
    border-radius: 0;
    background: rgba(251, 247, 239, 0.72);
    box-shadow: none;
}

.ocf-svc-card-img {
    aspect-ratio: 1 / 1;
    margin: 1rem 1rem 0;
    overflow: hidden;
}

.ocf-svc-card-body {
    padding: 1.35rem 1rem 1.45rem;
}

.ocf-svc-card-body h3 {
    color: var(--stone-charcoal);
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 1.55rem;
    font-weight: 500;
}

.ocf-svc-card-body p {
    color: var(--stone-muted);
    line-height: 1.65;
}

.ocf-testimonials {
    background:
        linear-gradient(90deg, rgba(244, 239, 230, 0.08) 1px, transparent 1px),
        var(--stone-charcoal);
    background-size: 96px 96px;
}

.ocf-testimonials-header {
    display: grid;
    justify-items: center;
    max-width: 740px;
    margin-inline: auto;
    border-bottom: 0;
    padding-bottom: 2.5rem;
    text-align: center;
}

.ocf-testimonials .heading-section {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 3.25rem;
    font-weight: 500;
}

.ocf-testimonials-compact-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid rgba(244, 239, 230, 0.16);
    border-bottom: 1px solid rgba(244, 239, 230, 0.16);
}

.ocf-testimonials-compact-row .ocf-testimonial-card {
    min-height: 0;
    border: 0;
    border-right: 1px solid rgba(244, 239, 230, 0.16);
    border-radius: 0;
    background: transparent;
    padding: 2rem;
}

.ocf-testimonials-compact-row .ocf-testimonial-card:nth-child(n+4) {
    display: none;
}

.ocf-testimonials-compact-row .ocf-testimonial-card:last-child {
    border-right: 0;
}

.testimonial-quote-mark {
    display: none;
}

.ocf-about__headline {
    color: var(--stone-charcoal);
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 3.8rem;
    font-weight: 500;
}

.ocf-about__grid {
    gap: clamp(2.5rem, 6vw, 5.5rem);
}

.ocf-about__body {
    color: var(--stone-muted);
    line-height: 1.8;
}

.ocf-about__media,
.ocf-about__image {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.ocf-commitments {
    background: var(--stone-cream-2);
}

.ocf-commitments-grid {
    display: block;
}

.ocf-commitments-content > .reveal {
    text-align: center;
}

.ocf-commitments-content > .reveal .heading-section {
    display: none;
}

.ocf-commitments .eyebrow {
    display: block;
    margin-bottom: 2.5rem;
    color: var(--stone-charcoal);
}

.ocf-commitments-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid rgba(53, 48, 42, 0.18);
    border-bottom: 1px solid rgba(53, 48, 42, 0.18);
}

.ocf-commitment {
    display: block;
    border-right: 1px solid rgba(53, 48, 42, 0.18);
    padding: 2rem 1.35rem;
}

.ocf-commitment:last-child {
    border-right: 0;
}

.ocf-commitment-num {
    margin-bottom: 1.6rem;
    color: var(--stone-gold);
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 2.5rem;
    font-weight: 500;
}

.ocf-commitment h3 {
    color: var(--stone-charcoal);
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 1.6rem;
    font-weight: 500;
}

.ocf-commitment p {
    color: var(--stone-muted);
    line-height: 1.65;
}

.ocf-commitments-image-wrap,
.ocf-service-areas {
    display: none;
}

.ocf-gallery-header {
    display: grid;
    justify-items: center;
    text-align: center;
}

.ocf-gallery--grid .ocf-gallery-track {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ocf-gallery-card {
    border: 0;
    border-radius: 0;
    background: transparent;
}

.ocf-gallery-card img {
    aspect-ratio: 4 / 5;
    filter: saturate(0.72) contrast(1.06);
}

.ocf-faq-split-layout,
.ocf-faq__grid {
    max-width: 940px;
    margin-inline: auto;
}

.ocf-faq-header {
    text-align: center;
}

.ocf-faq .heading-section {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 3.2rem;
    font-weight: 500;
}

.ocf-cta--contrast-action-strip {
    background: var(--stone-cream-2);
}

.ocf-cta--contrast-action-strip .ocf-cta__panel {
    border: 0;
    background: transparent;
}

.ocf-cta--contrast-action-strip .ocf-cta__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 2rem;
    padding-block: 2rem;
}

.ocf-cta--contrast-action-strip .ocf-cta__copy {
    gap: 0;
}

.ocf-cta--contrast-action-strip .ocf-cta__headline {
    color: var(--stone-charcoal);
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 2.65rem;
    font-weight: 500;
}

.ocf-cta--contrast-action-strip .ocf-cta__actions {
    justify-content: end;
}

.ocf-cta--contrast-action-strip .ocf-cta__phone {
    display: none;
}

.site-footer {
    background:
        linear-gradient(90deg, rgba(244, 239, 230, 0.06) 1px, transparent 1px),
        var(--stone-charcoal);
    background-size: 96px 96px;
}

@media (max-width: 1100px) {
    .nav-logo-text {
        font-size: 1.85rem;
    }

    .nav-links {
        gap: 1rem;
    }

    .ocf-hero__headline {
        font-size: 4.25rem;
    }

    .ocf-gallery--grid .ocf-gallery-track,
    .ocf-commitments-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ocf-commitment:nth-child(2n) {
        border-right: 0;
    }
}

@media (max-width: 760px) {
    body {
        background-size: 68px 68px;
    }

    .nav-inner {
        min-height: 4.45rem;
    }

    .nav-logo {
        max-width: min(72vw, 300px);
    }

    .nav-logo-text {
        font-size: 1.26rem;
        line-height: 1.05;
    }

    .ocf-hero--split-no-form .ocf-hero__media {
        position: relative;
        inset: auto;
        display: block;
        height: 280px;
        margin-inline: calc(var(--page-gutter) * -1);
        order: -1;
    }

    .ocf-hero--split-no-form .ocf-hero__shade {
        background: linear-gradient(180deg, rgba(244, 239, 230, 0.12) 0%, var(--stone-cream) 100%);
    }

    .ocf-hero--split-no-form .ocf-hero__grid {
        min-height: 0;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        padding-block: 0 4rem;
    }

    .ocf-hero__content {
        padding-top: 3rem;
    }

    .ocf-hero__headline {
        max-width: 10ch;
        font-size: 3.15rem;
    }

    .ocf-services .heading-section,
    .ocf-testimonials .heading-section,
    .ocf-about__headline,
    .ocf-gallery .heading-section,
    .ocf-faq .heading-section {
        font-size: 2.35rem;
    }

    .ocf-testimonials-compact-row,
    .ocf-gallery--grid .ocf-gallery-track,
    .ocf-commitments-list {
        grid-template-columns: 1fr;
    }

    .ocf-testimonials-compact-row .ocf-testimonial-card,
    .ocf-commitment {
        border-right: 0;
        border-bottom: 1px solid rgba(53, 48, 42, 0.16);
    }

    .ocf-testimonials-compact-row .ocf-testimonial-card {
        border-bottom-color: rgba(244, 239, 230, 0.16);
    }

    .ocf-cta--contrast-action-strip .ocf-cta__inner {
        grid-template-columns: 1fr;
        justify-items: start;
    }

    .ocf-cta--contrast-action-strip .ocf-cta__headline {
        font-size: 2.1rem;
    }
}

/* Stone QA round: section rhythm, full-image hero, and fuller CTA. */
.ocf-hero--split-no-form {
    min-height: clamp(680px, 72vw, 860px);
    background: var(--stone-charcoal);
    overflow: hidden;
}

.ocf-hero--split-no-form .ocf-hero__media {
    position: absolute;
    inset: 0;
    display: block;
    height: auto;
    margin: 0;
}

.ocf-hero--split-no-form .ocf-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 58% center;
    filter: saturate(0.76) contrast(1.06);
}

.ocf-hero--split-no-form .ocf-hero__shade {
    position: absolute;
    inset: 0;
    opacity: 1;
    background:
        linear-gradient(90deg, rgba(244, 239, 230, 0.96) 0%, rgba(244, 239, 230, 0.88) 36%, rgba(244, 239, 230, 0.45) 56%, rgba(36, 36, 36, 0.42) 78%, rgba(36, 36, 36, 0.72) 100%),
        linear-gradient(90deg, rgba(160, 139, 103, 0.12) 1px, transparent 1px),
        linear-gradient(0deg, rgba(160, 139, 103, 0.08) 1px, transparent 1px);
    background-size: auto, 96px 96px, 96px 96px;
}

.ocf-hero--split-no-form .ocf-hero__grid {
    min-height: clamp(680px, 72vw, 860px);
    grid-template-columns: minmax(0, 0.54fr) minmax(0, 0.46fr);
    align-items: center;
    padding-block: clamp(5rem, 9vw, 7.5rem);
}

.ocf-hero--split-no-form .ocf-hero__content {
    max-width: 620px;
}

.ocf-faq > .container-global {
    width: min(100% - (var(--container-pad) * 2), var(--container-max));
    margin-inline: auto;
}

.ocf-faq-split-layout,
.ocf-faq__grid {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

.ocf-faq-split-layout {
    grid-template-columns: minmax(270px, 0.74fr) minmax(0, 1.26fr);
    gap: clamp(2.5rem, 7vw, 6rem);
}

.ocf-faq-header {
    max-width: 420px;
    text-align: left;
}

.ocf-faq .heading-section {
    max-width: 9ch;
}

.ocf-faq-list {
    width: 100%;
}

.ocf-faq-split-layout {
    display: block;
}

.ocf-faq-split-layout .ocf-faq-header {
    position: static;
}

.ocf-faq-header {
    max-width: 760px;
    margin-bottom: 2rem;
}

.ocf-faq .heading-section {
    max-width: none;
}

.ocf-faq-list {
    max-width: 960px;
    margin-left: auto;
}

.ocf-cta--full-image-section {
    min-height: clamp(32rem, 48vw, 46rem);
    background: var(--stone-charcoal);
    padding-block: clamp(5rem, 9vw, 7rem);
}

.ocf-cta--full-image-section > .ocf-cta__image {
    opacity: 1;
    filter: saturate(0.68) contrast(1.06);
}

.ocf-cta--full-image-section > .ocf-cta__shade {
    background:
        linear-gradient(90deg, rgba(36, 36, 36, 0.88) 0%, rgba(36, 36, 36, 0.72) 42%, rgba(36, 36, 36, 0.38) 74%, rgba(36, 36, 36, 0.56) 100%),
        linear-gradient(90deg, rgba(244, 239, 230, 0.06) 1px, transparent 1px);
    background-size: auto, 96px 96px;
    opacity: 1;
}

.ocf-cta--full-image-section .ocf-cta__panel {
    width: 100%;
    min-height: clamp(18rem, 28vw, 24rem);
    border: 1px solid rgba(244, 239, 230, 0.18);
    border-radius: 0;
    background: rgba(36, 36, 36, 0.28);
    backdrop-filter: blur(2px);
}

.ocf-cta--full-image-section .ocf-cta__inner {
    grid-template-columns: minmax(0, 0.72fr) auto;
    gap: clamp(2rem, 6vw, 5rem);
    align-items: end;
    padding: clamp(2rem, 5vw, 4rem);
}

.ocf-cta--full-image-section .ocf-cta__eyebrow {
    color: rgba(244, 239, 230, 0.72);
}

.ocf-cta--full-image-section .ocf-cta__headline {
    color: #fbf7ef;
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: clamp(3rem, 6vw, 5.8rem);
    font-weight: 500;
    line-height: 0.98;
}

.ocf-cta--full-image-section .ocf-cta__body {
    max-width: 48rem;
    color: rgba(244, 239, 230, 0.78);
    font-size: 1.05rem;
    line-height: 1.75;
}

.ocf-cta--full-image-section .ocf-cta__actions {
    align-self: end;
    justify-content: end;
}

.ocf-cta--full-image-section .ocf-cta__phone {
    display: none;
}

.ocf-cta--full-image-section .ocf-cta__actions a {
    border-color: #fbf7ef;
    background: #fbf7ef;
    color: var(--stone-charcoal);
}

@media (max-width: 760px) {
    .ocf-hero--split-no-form {
        min-height: clamp(560px, 130vw, 700px);
    }

    .ocf-hero--split-no-form .ocf-hero__media {
        position: absolute;
        inset: 0;
        height: auto;
        margin: 0;
        order: initial;
    }

    .ocf-hero--split-no-form .ocf-hero__media img {
        object-position: 62% center;
    }

    .ocf-hero--split-no-form .ocf-hero__shade {
        background:
            linear-gradient(180deg, rgba(244, 239, 230, 0.68) 0%, rgba(244, 239, 230, 0.95) 44%, rgba(244, 239, 230, 0.92) 100%),
            linear-gradient(90deg, rgba(160, 139, 103, 0.12) 1px, transparent 1px);
        background-size: auto, 68px 68px;
    }

    .ocf-hero--split-no-form .ocf-hero__grid {
        display: grid;
        min-height: clamp(560px, 130vw, 700px);
        grid-template-columns: 1fr;
        align-items: end;
        padding-block: 8.5rem 4rem;
    }

    .ocf-hero__content {
        padding-top: 0;
    }

    .ocf-faq-split-layout {
        grid-template-columns: 1fr;
        gap: 1.75rem;
    }

    .ocf-faq-header,
    .ocf-faq .heading-section {
        max-width: none;
        text-align: left;
    }

    .ocf-cta--full-image-section {
        min-height: 0;
        padding-block: 4rem;
    }

    .ocf-cta--full-image-section .ocf-cta__inner {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .ocf-cta--full-image-section .ocf-cta__headline {
        font-size: clamp(2.55rem, 13vw, 3.6rem);
    }

    .ocf-cta--full-image-section .ocf-cta__actions {
        justify-content: start;
    }
}
