/* The original Lightning blueprint uses the foundation's canonical component styles. */

.ocf-hero__eyebrow {
    display: none;
}

/* The original Lightning blueprint uses the foundation's canonical component styles. */

.ocf-hero__eyebrow {
    display: none;
}

/*
 * Base design pack for OCF Lightning 2.0.
 *
 * Recovered from the original Base3 visual template. Lightning continues to own
 * mechanics, accessibility, editor hooks, and customer branding; this file restores
 * the original rounded geometry, spacing, surfaces, and component art direction.
 */

/* ═══════════════════════════════════════════════
   OCF Base 3 — Global Design System
   ═══════════════════════════════════════════════
   Plugin injects semantic design tokens as CSS vars:
     --ocf-heading, --ocf-body, --ocf-accent, etc.
   Everything below references those directly.
   ═══════════════════════════════════════════════ */


/* ─── NON-TOKEN GLOBALS ─── */
:root {
    /* Fluid Type Scale (clamp: min, preferred, max) */
    --text-xs:   clamp(0.6875rem, 0.65rem + 0.2vw, 0.75rem);
    --text-sm:   clamp(0.8125rem, 0.775rem + 0.2vw, 0.9375rem);
    --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
    --text-lg:   clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem);
    --text-xl:   clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem);
    --text-2xl:  clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);
    --text-3xl:  clamp(1.75rem, 1.3rem + 2vw, 2.5rem);
    --text-4xl:  clamp(2rem, 1.5rem + 2.5vw, 3rem);
    --text-hero: clamp(2.25rem, 1.3rem + 3.25vw, 3.5rem);

    /* Border Radius */
    --radius-sm:   6px;
    --radius:      10px;
    --radius-lg:   16px;
    --radius-full: 9999px;

    /* Shadows (tinted with heading color) */
    --shadow-sm:  0 1px 3px  color-mix(in srgb, var(--ocf-heading) 5%, transparent);
    --shadow:     0 4px 16px color-mix(in srgb, var(--ocf-heading) 8%, transparent);
    --shadow-lg:  0 12px 40px color-mix(in srgb, var(--ocf-heading) 12%, transparent);

    /* Preset style hooks */
    --button-radius: var(--radius);
    --button-border-width: 0;
    --button-border-color: transparent;
    --button-shadow: none;
    --button-shadow-hover: none;
    --button-transform-hover: translateY(0);
    --button-letter-spacing: 0.15em;
    --button-text-transform: uppercase;

    --card-radius: var(--radius);
    --card-radius-lg: var(--radius-lg);
    --card-border-width: 1px;
    --card-border-color: color-mix(in srgb, var(--ocf-border-light) 30%, transparent);
    --card-border-color-subtle: color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
    --card-shadow: var(--shadow-sm);
    --card-shadow-hover: var(--shadow-lg);
    --card-transform-hover: translateY(-2px);

    --media-overlay-opacity: 0;
    --media-light-overlay-opacity: 0.72;
    --gradient-media-dark: linear-gradient(90deg, color-mix(in srgb, var(--ocf-bg-dark) 86%, transparent) 0%, color-mix(in srgb, var(--ocf-bg-dark) 68%, transparent) 44%, color-mix(in srgb, var(--ocf-bg-dark) 34%, transparent) 100%);
    --gradient-media-dark-reverse: linear-gradient(90deg, color-mix(in srgb, var(--ocf-bg-dark) 34%, transparent) 0%, color-mix(in srgb, var(--ocf-bg-dark) 68%, transparent) 56%, color-mix(in srgb, var(--ocf-bg-dark) 86%, transparent) 100%);
    --gradient-media-dark-even: linear-gradient(0deg, color-mix(in srgb, var(--ocf-bg-dark) 62%, transparent), color-mix(in srgb, var(--ocf-bg-dark) 62%, transparent));
    --gradient-media-light: linear-gradient(90deg, color-mix(in srgb, var(--ocf-bg) 88%, transparent) 0%, color-mix(in srgb, var(--ocf-bg) 70%, transparent) 46%, color-mix(in srgb, var(--ocf-bg) 30%, transparent) 100%);
    --gradient-media-light-reverse: linear-gradient(90deg, color-mix(in srgb, var(--ocf-bg) 30%, transparent) 0%, color-mix(in srgb, var(--ocf-bg) 70%, transparent) 54%, color-mix(in srgb, var(--ocf-bg) 88%, transparent) 100%);
    --gradient-media-light-even: linear-gradient(0deg, color-mix(in srgb, var(--ocf-bg) 72%, transparent), color-mix(in srgb, var(--ocf-bg) 72%, transparent));
    --gradient-media-light-transparent: linear-gradient(90deg, var(--ocf-bg) 0%, color-mix(in srgb, var(--ocf-bg) 98%, transparent) 34%, color-mix(in srgb, var(--ocf-bg) 58%, transparent) 56%, transparent 78%);
    --gradient-primary: linear-gradient(135deg, var(--ocf-accent) 0%, var(--ocf-accent-hover) 100%);
    --gradient-primary-reverse: linear-gradient(135deg, var(--ocf-accent-hover) 0%, var(--ocf-accent) 100%);
    --gradient-primary-soft: linear-gradient(135deg, color-mix(in srgb, var(--ocf-accent) 16%, var(--ocf-bg)) 0%, var(--ocf-bg) 100%);
    --gradient-primary-soft-reverse: linear-gradient(135deg, var(--ocf-bg) 0%, color-mix(in srgb, var(--ocf-accent) 16%, var(--ocf-bg)) 100%);
    --gradient-primary-secondary: linear-gradient(135deg, var(--ocf-accent) 0%, var(--ocf-secondary, var(--ocf-accent-hover)) 100%);
    --gradient-secondary-primary: linear-gradient(135deg, var(--ocf-secondary, var(--ocf-accent-hover)) 0%, var(--ocf-accent) 100%);
    --gradient-dark-primary: linear-gradient(135deg, var(--ocf-bg-dark) 0%, color-mix(in srgb, var(--ocf-accent) 62%, var(--ocf-bg-dark)) 100%);
    --gradient-primary-dark: linear-gradient(135deg, color-mix(in srgb, var(--ocf-accent) 62%, var(--ocf-bg-dark)) 0%, var(--ocf-bg-dark) 100%);
    --gradient-surface: linear-gradient(180deg, var(--ocf-bg-alt) 0%, var(--ocf-bg) 100%);
    --gradient-surface-reverse: linear-gradient(180deg, var(--ocf-bg) 0%, var(--ocf-bg-alt) 100%);

    /* Transitions */
    --ease: cubic-bezier(0.16, 1, 0.3, 1);
    --duration: 0.3s;
    --duration-slow: 0.5s;
}


/* ─── Reset ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ─── Base ─── */
html {
    scroll-behavior: smooth;
}

[id] {
    scroll-margin-top: 6rem;
}

body {
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--text-base);
    line-height: 1.6;
    color: var(--ocf-body);
    background-color: var(--ocf-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    padding-top: 5rem;
}

@media (min-width: 1024px) {
    body { padding-top: 6rem; }
}

img { max-width: 100%; height: auto; display: block; }

body.admin-bar {
    margin-top: 0 !important;
}

::selection {
    background-color: var(--ocf-accent-hover);
    color: var(--ocf-bg);
}

a {
    color: inherit;
    text-decoration: none;
}


/* ═══════════════════════════════════════════════
   GLOBAL LAYOUT
   ═══════════════════════════════════════════════ */

.container-global {
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

@media (min-width: 640px) {
    .container-global { padding-left: 2rem; padding-right: 2rem; }
}

@media (min-width: 1024px) {
    .container-global { padding-left: 3rem; padding-right: 3rem; }
}

.section-padding {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

@media (min-width: 640px) {
    .section-padding { padding-top: 5rem; padding-bottom: 5rem; }
}

@media (min-width: 1024px) {
    .section-padding { padding-top: 6rem; padding-bottom: 6rem; }
}

.section-padding .section-padding { padding-top: 0; padding-bottom: 0; }
.section-padding .container-global .container-global { padding-left: 0; padding-right: 0; }

.page-section--default { background: var(--ocf-bg); }
.page-section--alt { background: var(--ocf-bg-alt); }
.ocf-gradient--media-dark { background: var(--gradient-media-dark); }
.ocf-gradient--media-dark-reverse { background: var(--gradient-media-dark-reverse); }
.ocf-gradient--media-dark-even { background: var(--gradient-media-dark-even); }
.ocf-gradient--media-light { background: var(--gradient-media-light); }
.ocf-gradient--media-light-reverse { background: var(--gradient-media-light-reverse); }
.ocf-gradient--media-light-even { background: var(--gradient-media-light-even); }
.ocf-gradient--media-light-transparent { background: var(--gradient-media-light-transparent); }
.ocf-gradient--primary { background: var(--gradient-primary); }
.ocf-gradient--primary-reverse { background: var(--gradient-primary-reverse); }
.ocf-gradient--primary-soft { background: var(--gradient-primary-soft); }
.ocf-gradient--primary-soft-reverse { background: var(--gradient-primary-soft-reverse); }
.ocf-gradient--primary-secondary { background: var(--gradient-primary-secondary); }
.ocf-gradient--secondary-primary { background: var(--gradient-secondary-primary); }
.ocf-gradient--dark-primary { background: var(--gradient-dark-primary); }
.ocf-gradient--primary-dark { background: var(--gradient-primary-dark); }
.ocf-gradient--surface { background: var(--gradient-surface); }
.ocf-gradient--surface-reverse { background: var(--gradient-surface-reverse); }

.page-content-narrow {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
}

.page-featured-media {
    margin-bottom: 3rem;
}

.page-featured-media img,
.page-featured-media .wp-post-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.page-content-body {
    margin-bottom: 4rem;
}

.not-found-panel {
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.not-found-text {
    font-size: 1.125rem;
    margin-bottom: 2rem;
}

.not-found-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

.btn-icon {
    width: 1rem;
    height: 1rem;
}


/* ═══════════════════════════════════════════════
   GLOBAL TYPOGRAPHY
   ═══════════════════════════════════════════════ */

.eyebrow {
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3em;
    color: var(--ocf-label);
    margin-bottom: 1rem;
}

.heading-section {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-weight: 600;
    color: var(--ocf-heading);
    letter-spacing: -0.02em;
    line-height: 1.08;
}

.heading-section.size-lg { font-size: var(--text-3xl); }
h2.heading-section.size-lg { font-size: clamp(1.625rem, 1.2rem + 1.65vw, 2.25rem); }
.heading-section.size-xl { font-size: var(--text-hero); }

.text-body {
    font-size: var(--text-base);
    line-height: 1.75;
    color: var(--ocf-body);
}

.text-label {
    font-size: var(--text-xs);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--ocf-label);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}


/* ═══════════════════════════════════════════════
   GLOBAL BUTTONS
   ═══════════════════════════════════════════════ */

.btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background-color: var(--ocf-accent);
    color: var(--ocf-bg);
    padding: 1rem 2rem;
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: var(--button-text-transform);
    letter-spacing: var(--button-letter-spacing);
    text-decoration: none;
    border: var(--button-border-width) solid var(--button-border-color);
    border-radius: var(--button-radius);
    box-shadow: var(--button-shadow);
    transition: all var(--duration) ease;
}

.btn-primary:hover {
    background-color: var(--ocf-accent-hover);
    box-shadow: var(--button-shadow-hover);
    transform: var(--button-transform-hover);
}

.btn-primary svg,
.btn-primary i {
    width: 1rem;
    height: 1rem;
    transition: transform var(--duration) ease;
}

.btn-primary:hover svg,
.btn-primary:hover i {
    transform: translateX(4px);
}

.btn-secondary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--ocf-secondary);
    font-size: var(--text-sm);
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid var(--ocf-secondary);
    padding-bottom: 2px;
    transition: all var(--duration) ease;
}

.btn-secondary:hover {
    color: var(--ocf-accent-hover);
    border-bottom-color: var(--ocf-accent-hover);
}

.btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background-color: color-mix(in srgb, var(--ocf-heading-alt) 10%, transparent);
    color: var(--ocf-bg);
    padding: 1rem 2rem;
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: var(--button-text-transform);
    letter-spacing: var(--button-letter-spacing);
    text-decoration: none;
    border: 1px solid var(--ocf-border-alt);
    border-radius: var(--button-radius);
    box-shadow: var(--button-shadow);
    transition: all var(--duration) ease;
}

.btn-ghost:hover {
    background-color: color-mix(in srgb, var(--ocf-heading-alt) 15%, transparent);
    border-color: color-mix(in srgb, var(--ocf-heading-alt) 20%, transparent);
    box-shadow: var(--button-shadow-hover);
    transform: var(--button-transform-hover);
}


/* ═══════════════════════════════════════════════
   GLOBAL CARD
   ═══════════════════════════════════════════════ */

.card {
    background: var(--ocf-bg);
    border: var(--card-border-width) solid var(--card-border-color-subtle);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    padding: 2rem;
    transition: all var(--duration-slow) ease;
}

.card:hover {
    border-color: var(--ocf-border);
    box-shadow: var(--card-shadow-hover);
    transform: var(--card-transform-hover);
}

@media (min-width: 640px) { .card { padding: 2.5rem; } }
@media (min-width: 1024px) { .card { padding: 3rem; } }


/* ═══════════════════════════════════════════════
   GLOBAL DIVIDERS
   ═══════════════════════════════════════════════ */

.divider {
    width: 4rem;
    height: 1px;
    background-color: var(--ocf-divider);
}

.divider-light {
    width: 100%;
    height: 1px;
    background-color: color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
}


/* ═══════════════════════════════════════════════
   SCROLL REVEAL ANIMATIONS
   ═══════════════════════════════════════════════ */

.reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.8s var(--ease),
                transform 0.8s var(--ease);
}

.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Kill reveal animation on first two sections after any hero/header */
.page-header + * .reveal,
.page-header + * .reveal.visible,
.page-header + * + * .reveal,
.page-header + * + * .reveal.visible,
.ocf-hero + * .reveal,
.ocf-hero + * .reveal.visible,
.ocf-hero + * + * .reveal,
.ocf-hero + * + * .reveal.visible,
.ocf-article-hero + * .reveal,
.ocf-article-hero + * .reveal.visible,
.ocf-article-hero + * + * .reveal,
.ocf-article-hero + * + * .reveal.visible,
.ocf-detail-hero + * .reveal,
.ocf-detail-hero + * .reveal.visible,
.ocf-detail-hero + * + * .reveal,
.ocf-detail-hero + * + * .reveal.visible {
    opacity: 1;
    transform: none;
    transition: none;
}

.reveal-delay-1 { transition-delay: 0.12s; }
.reveal-delay-2 { transition-delay: 0.24s; }
.reveal-delay-3 { transition-delay: 0.36s; }
.reveal-delay-4 { transition-delay: 0.48s; }

@keyframes scroll-pulse {
    0%, 100% { opacity: 1; transform: scaleY(1); }
    50% { opacity: 0.3; transform: scaleY(0.5); transform-origin: top; }
}


/* ═══════════════════════════════════════════════
   PROSE (for single post/service long-form content)
   ═══════════════════════════════════════════════ */

.prose {
    font-size: var(--text-base);
    line-height: 1.72;
    color: var(--ocf-body);
}

.prose h2, .prose h3, .prose h4 {
    font-family: var(--ocf-font-heading), Georgia, serif;
    color: var(--ocf-heading);
    font-weight: 600;
    line-height: 1.22;
    margin-top: 1.55em;
    margin-bottom: 0.55em;
}

.prose h2 { font-size: clamp(1.45rem, 1.15rem + 0.9vw, 1.9rem); }
.prose h3 { font-size: clamp(1.2rem, 1.05rem + 0.45vw, 1.45rem); }
.prose h4 { font-size: var(--text-lg); }

.prose p { margin-bottom: 1em; }

.prose ul, .prose ol {
    margin-bottom: 1.25em;
    padding-left: 1.5em;
}

.prose li { margin-bottom: 0.5em; }
.prose li p { margin: 0.35em 0 0; }

.prose a {
    color: var(--ocf-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.prose a:hover { color: var(--ocf-accent-hover); }

.prose img {
    border-radius: var(--radius);
    margin: 2em 0;
}

.prose blockquote {
    border-left: 3px solid var(--ocf-accent);
    padding-left: 1.5em;
    margin: 1.75em 0;
    font-style: italic;
    color: var(--ocf-heading);
}

.prose hr {
    border: 0;
    border-top: 1px solid var(--ocf-border-light);
    margin: 1.9em 0;
}

.prose table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5em 0;
    font-size: var(--text-sm);
}

.prose th,
.prose td {
    border: 1px solid var(--ocf-border-light);
    padding: 0.8rem 0.9rem;
    text-align: left;
    vertical-align: top;
}

.prose th {
    color: var(--ocf-heading);
    background: var(--ocf-bg-alt);
    font-weight: 600;
}

/* Bridge the recovered visual variables to editable Lightning design tokens. */
:root {
    --nav-height: var(--ocf-nav-height, 6rem);
    --section-pad: var(--ocf-section-pad, clamp(4rem, 8vw, 6rem));
    --radius-sm: var(--ocf-radius-sm, 6px);
    --radius: var(--ocf-radius, 10px);
    --radius-lg: var(--ocf-radius-lg, 16px);
    --button-radius: var(--ocf-button-radius, var(--radius));
    --button-shadow: var(--ocf-button-shadow, none);
    --button-shadow-hover: var(--ocf-button-shadow-hover, none);
    --card-radius: var(--ocf-card-radius, var(--radius));
    --card-radius-lg: var(--ocf-card-radius-lg, var(--radius-lg));
    --card-shadow: var(--ocf-card-shadow, var(--shadow-sm));
    --card-shadow-hover: var(--ocf-card-shadow-hover, var(--shadow-lg));
    --image-radius: var(--ocf-image-radius, var(--radius));
    --image-shadow: var(--ocf-image-shadow, var(--shadow));
}

/* Recovered source: about.css */
/* ─── About: sharp editorial ─── */

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

.about-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

.ocf-about .about-grid {
    gap: 3rem;
}

@media (min-width: 1024px) {
    .ocf-about .about-grid {
        grid-template-columns: 5fr 7fr;
        gap: 5rem;
        align-items: start;
    }
}

.about-image-wrap {
    position: relative;
}

.ocf-about .about-image {
    aspect-ratio: 4/5;
    border-radius: var(--radius);
    overflow: hidden;
    position: relative;
    z-index: 1;
}

.ocf-about .about-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.about-image-accent {
    position: absolute;
    bottom: -0.75rem;
    right: -0.75rem;
    width: 40%;
    height: 40%;
    border: 2px solid var(--ocf-accent);
    border-radius: var(--radius);
    opacity: 0.3;
    z-index: 0;
}

.about-content {
    padding-top: 1rem;
}

.about-content .heading-section {
    margin-bottom: 2rem;
}

.about-body {
    margin-bottom: 2.5rem;
}

.about-body .text-body {
    margin-bottom: 1rem;
}

.about-body .text-body:last-child {
    margin-bottom: 0;
}

/* Recovered source: blog-post.css */
/* ═══════════════════════════════════════════════
   Blog Post — Magazine Editorial
   ═══════════════════════════════════════════════ */

/* Hero banner */
.ocf-article-hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: var(--ocf-bg-dark);
    margin-top: -5rem;
}

@media (min-width: 1024px) {
    .ocf-article-hero { margin-top: -6rem; }
}

.ocf-article-hero-img {
    position: absolute;
    inset: 0;
}

.ocf-article-hero-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ocf-article-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.86) 0%,
        rgba(0, 0, 0, 0.48) 50%,
        rgba(0, 0, 0, 0.28) 100%
    );
}

.ocf-article-hero-overlay--no-img {
    background: linear-gradient(
        135deg,
        #111 0%,
        #020202 100%
    );
}

.ocf-article-hero-inner {
    position: relative;
    z-index: 10;
    padding-top: 11rem;
    padding-bottom: 7.5rem;
}

@media (min-width: 1024px) {
    .ocf-article-hero-inner { padding-top: 13rem; padding-bottom: 10rem; }
}

.ocf-article-hero-inner .heading-section {
    color: var(--ocf-heading-alt);
    max-width: 48rem;
}


/* Article body */
.ocf-article-body {
    background: var(--ocf-bg);
    padding-top: 3rem;
    padding-bottom: 5rem;
}

@media (min-width: 1024px) {
    .ocf-article-body {
        padding-top: 4rem;
        padding-bottom: 6rem;
    }
}

.ocf-article-prose {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
}


/* More articles section */
.ocf-article-more {
    background: var(--ocf-bg-alt);
}


/* Archive cards and listing grids */

.post-grid,
.archive-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .post-grid,
    .archive-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
    .post-grid,
    .archive-grid { grid-template-columns: repeat(3, 1fr); }
}

.post-loop-header {
    margin-bottom: 3rem;
}

.post-loop-empty {
    text-align: center;
    padding: 4rem 0;
}

.post-loop-empty p {
    color: var(--ocf-body);
    font-size: var(--text-lg);
}

.blog-pagination {
    margin-top: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

.post-card {
    display: flex;
    flex-direction: column;
    border: 1px solid color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
    border-radius: var(--radius);
    overflow: hidden;
    transition: all var(--duration-slow) ease;
}

.post-card:hover {
    border-color: var(--ocf-border);
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}

.post-card-image {
    display: block;
    aspect-ratio: 4/3;
    overflow: hidden;
}

.post-card-image img,
.post-card-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--duration-slow) ease;
}

.post-card:hover .post-card-image img,
.post-card--overlay:hover .post-card-bg img {
    transform: scale(1.05);
}

.post-card--overlay {
    position: relative;
    min-height: 280px;
    text-decoration: none;
}

.post-card-bg,
.post-card-overlay {
    position: absolute;
    inset: 0;
}

.post-card-overlay {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.86) 0%, rgba(0, 0, 0, 0.58) 50%, rgba(0, 0, 0, 0.30) 100%);
    transition: background 0.4s ease;
}

.post-card--overlay:hover .post-card-overlay {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.68) 50%, rgba(0, 0, 0, 0.44) 100%);
}

.post-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.5rem;
}

.post-card--overlay .post-card-body {
    position: relative;
    z-index: 2;
    justify-content: flex-end;
    padding-bottom: 2.5rem;
}

.post-card-icon {
    margin-bottom: 0.5rem;
    color: var(--ocf-accent);
}

.post-card-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.75rem;
    font-size: var(--text-xs);
    color: var(--ocf-body);
}

.post-card-title {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ocf-heading);
    line-height: 1.3;
    margin-bottom: 0.5rem;
}

.post-card-title a {
    transition: color 0.3s ease;
}

.post-card-title a:hover {
    color: var(--ocf-accent);
}

.post-card-excerpt {
    flex: 1;
    margin-bottom: 1.5rem;
    font-size: var(--text-sm);
    line-height: 1.6;
    color: var(--ocf-body);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.post-card--overlay .post-card-excerpt {
    flex: 0;
    margin-bottom: 0;
}

.post-card-actions {
    margin-top: auto;
}

.post-card-read-more {
    font-size: var(--text-sm);
}

/* Recovered source: booking-wizard.css */
/* ═══════════════════════════════════════════════
   Booking Wizard — Full-screen interactive flow
   ═══════════════════════════════════════════════ */

/* ─── Modal overlay ─── */

.bw-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
.bw-overlay.is-open {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
}
.bw-backdrop {
    display: none;
}
.bw-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 10;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--ocf-heading) 6%, transparent);
    border: none;
    border-radius: var(--radius-full);
    cursor: pointer;
    color: var(--ocf-body);
    transition: all var(--duration) ease;
}
.bw-modal-close:hover { background: color-mix(in srgb, var(--ocf-heading) 12%, transparent); color: var(--ocf-heading); }
.bw-modal-close svg { width: 1.125rem; height: 1.125rem; }

.bw {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: var(--ocf-bg);
    overflow-y: auto;
}

/* ─── Progress bar ─── */

.bw-progress {
    position: relative;
    width: 100%;
    height: 3px;
    background: var(--ocf-border-light);
    z-index: 2;
    flex-shrink: 0;
}

.bw-progress-bar {
    height: 100%;
    width: 20%;
    background: var(--ocf-accent);
    border-radius: 0 2px 2px 0;
    transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ─── Header ─── */

.bw-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.625rem 1.5rem;
    flex-shrink: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
}
.bw-header-brand {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
@media (max-width: 639px) {
    .bw-header-brand {
        flex-direction: column;
        gap: 0.125rem;
    }
}

@media (min-width: 1024px) {
    .bw-header { height: 6rem; padding: 0 3rem; }
}

.bw-logo { text-decoration: none; }

.bw-logo-img {
    height: 2rem;
    width: auto;
}

@media (min-width: 1024px) {
    .bw-logo-img { height: 2.5rem; }
}

.bw-logo-text {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ocf-heading);
    letter-spacing: -0.01em;
}

.bw-phone {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: var(--text-xs);
    font-weight: 500;
    color: var(--ocf-heading);
    text-decoration: none;
    transition: color var(--duration) ease;
}

.bw-phone:hover { color: var(--ocf-accent); }

.bw-phone svg {
    width: 1rem;
    height: 1rem;
}

/* ─── Steps viewport ─── */

.bw-viewport {
    flex: 1;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 1.5rem 1.5rem 0;
}

@media (min-width: 640px) {
    .bw-viewport { padding: 1.5rem 2rem 0; }
}

@media (min-width: 1024px) {
    .bw-viewport { padding: 2rem 3rem 0; }
}

.bw-step {
    display: none;
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
    animation: bw-fadeUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.bw-step.is-active {
    display: block;
}

.bw-step.is-leaving {
    animation: bw-fadeOut 0.25s ease forwards;
}

@keyframes bw-fadeUp {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes bw-fadeOut {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-16px);
    }
}

.bw-step-inner {
    width: 100%;
}

/* ─── Step typography ─── */

.bw-step-badge {
    display: inline-block;
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--ocf-accent);
    margin-bottom: 0.5rem;
}

.bw-title {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ocf-heading);
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin-bottom: 0.5rem;
}

.bw-subtitle {
    font-size: var(--text-base);
    line-height: 1.5;
    color: var(--ocf-body);
    margin-bottom: 1.5rem;
    max-width: 30rem;
}

/* ─── Service tile grid (Step 1) ─── */

.bw-service-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
}

@media (min-width: 640px) {
    .bw-service-grid { grid-template-columns: repeat(3, 1fr); gap: 0.625rem; }
}

/* ─── Tiles (universal) ─── */

.bw-tile {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    background: var(--ocf-bg);
    border: 1.5px solid var(--ocf-border-light);
    border-radius: var(--radius);
    cursor: pointer;
    transition: all 0.25s ease;
    text-align: left;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    color: var(--ocf-heading);
}

.bw-tile:hover {
    border-color: var(--ocf-border);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.bw-tile.is-selected {
    border-color: var(--ocf-accent);
    background: color-mix(in srgb, var(--ocf-accent) 4%, var(--ocf-bg));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ocf-accent) 12%, transparent);
}

.bw-tile.is-selected .bw-tile-check {
    opacity: 1;
    transform: scale(1);
}

.bw-tile-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--ocf-accent);
    transition: color 0.25s ease;
}

.bw-tile-icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.bw-tile-label {
    font-size: var(--text-sm);
    font-weight: 600;
    line-height: 1.3;
}

.bw-tile-check {
    margin-left: auto;
    width: 1.25rem;
    height: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ocf-accent);
    color: var(--ocf-bg);
    border-radius: var(--radius-full);
    flex-shrink: 0;
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.bw-tile-check svg {
    width: 0.75rem;
    height: 0.75rem;
}

/* ─── Service checklist (wizard select mode) ─── */

.bw-service-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.bw-service-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: 100%;
    padding: 1rem 1.25rem;
    background: var(--ocf-bg);
    border: 1.5px solid var(--ocf-border-light);
    border-radius: var(--radius);
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: left;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
}

.bw-service-row:hover {
    border-color: var(--ocf-border);
    background: var(--ocf-bg-alt);
}

.bw-service-row.is-selected {
    border-color: var(--ocf-accent);
    background: color-mix(in srgb, var(--ocf-accent) 4%, var(--ocf-bg));
}

.bw-service-row-check {
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--ocf-border);
    border-radius: 4px;
    flex-shrink: 0;
    transition: all 0.2s ease;
    color: transparent;
}

.bw-service-row.is-selected .bw-service-row-check {
    background: var(--ocf-accent);
    border-color: var(--ocf-accent);
    color: #fff;
}

.bw-service-row-check svg {
    width: 0.875rem;
    height: 0.875rem;
}

.bw-service-row-label {
    font-size: var(--text-base);
    font-weight: 500;
    color: var(--ocf-heading);
}

/* ─── Choice buttons (Step 2 & 3) ─── */

.bw-field-group {
    margin-bottom: 0.875rem;
}

.bw-field-label {
    display: block;
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--ocf-label);
    margin-bottom: 0.75rem;
}

.bw-optional {
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ocf-body);
}

.bw-choice-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}

.bw-choice-row--3 {
    grid-template-columns: repeat(3, 1fr);
}

.bw-choice {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1.25rem 0.75rem;
    background: var(--ocf-bg);
    border: 1.5px solid var(--ocf-border-light);
    border-radius: var(--radius);
    cursor: pointer;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ocf-heading);
    transition: all 0.25s ease;
}

.bw-choice svg {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--ocf-body);
    transition: color 0.25s ease;
}

.bw-choice:hover {
    border-color: var(--ocf-border);
    box-shadow: var(--shadow-sm);
}

.bw-choice.is-selected {
    border-color: var(--ocf-accent);
    background: color-mix(in srgb, var(--ocf-accent) 4%, var(--ocf-bg));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ocf-accent) 12%, transparent);
}

.bw-choice.is-selected svg {
    color: var(--ocf-accent);
}

/* ─── Textarea ─── */

.bw-textarea {
    display: block;
    width: 100%;
    padding: 0.875rem 1rem;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--text-base);
    color: var(--ocf-heading);
    background: var(--ocf-bg);
    border: 1.5px solid var(--ocf-border-light);
    border-radius: var(--radius);
    outline: none;
    resize: vertical;
    min-height: 90px;
    transition: border-color var(--duration) ease, box-shadow var(--duration) ease;
}

.bw-textarea:focus {
    border-color: var(--ocf-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ocf-accent) 10%, transparent);
}

.bw-textarea::placeholder {
    color: var(--ocf-body);
}

/* ─── Form inputs (Step 3) ─── */

.bw-form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.875rem;
}
.bw-field-full { grid-column: 1 / -1; }
@media (max-width: 400px) {
    .bw-form-grid { grid-template-columns: 1fr; }
}

.bw-input {
    display: block;
    width: 100%;
    padding: 0.875rem 1rem;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--text-base);
    color: var(--ocf-heading);
    background: var(--ocf-bg);
    border: 1.5px solid var(--ocf-border-light);
    border-radius: var(--radius);
    outline: none;
    transition: border-color var(--duration) ease, box-shadow var(--duration) ease;
}

.bw-input:focus {
    border-color: var(--ocf-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ocf-accent) 10%, transparent);
}

.bw-input::placeholder {
    color: var(--ocf-body);
}

.bw-input.bw-invalid {
    border-color: #dc2626;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
}

.bw-error-msg {
    font-size: var(--text-xs);
    color: #dc2626;
    margin-top: 0.375rem;
    font-weight: 500;
}

/* ─── Summary (Step 4) ─── */

.bw-summary {
    background: var(--ocf-bg-alt);
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--radius-lg);
    padding: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .bw-summary { padding: 2.5rem; }
}

.bw-summary-row {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid color-mix(in srgb, var(--ocf-border-light) 8%, transparent);
}

.bw-summary-row:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.bw-summary-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    flex-shrink: 0;
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--ocf-accent) 8%, transparent);
    color: var(--ocf-accent);
}

.bw-summary-icon svg {
    width: 1.125rem;
    height: 1.125rem;
}

.bw-summary-label {
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--ocf-label);
    margin-bottom: 0.25rem;
}

.bw-summary-value {
    font-size: var(--text-base);
    font-weight: 500;
    color: var(--ocf-heading);
    line-height: 1.4;
}

/* ─── Success state ─── */

.bw-success-icon {
    width: 5rem;
    height: 5rem;
    margin: 0 auto 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    background: color-mix(in srgb, var(--ocf-accent) 10%, transparent);
    color: var(--ocf-accent);
    animation: bw-pop 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.bw-success-icon svg {
    width: 2.5rem;
    height: 2.5rem;
}

@keyframes bw-pop {
    0% {
        transform: scale(0);
        opacity: 0;
    }
    60% {
        transform: scale(1.15);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.bw-step--success .bw-title {
    margin-bottom: 1rem;
}

.bw-step--success .bw-step-inner {
    text-align: center;
}

.bw-step--success .bw-subtitle {
    max-width: 32rem;
    margin-left: auto;
    margin-right: auto;
}

.bw-success-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    margin-top: 2rem;
}

.bw-success-phone {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ocf-body);
    text-decoration: none;
    transition: color var(--duration) ease;
}

.bw-success-phone:hover {
    color: var(--ocf-accent);
}

/* ─── Schedule: time + date side by side ─── */

.bw-schedule-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .bw-schedule-row {
        grid-template-columns: 1fr 1fr;
        gap: 1.5rem;
    }
    .bw-schedule-row .bw-field-group { margin-bottom: 0; }
}

/* ─── Date picker row ─── */

.bw-date-row {
    display: flex;
    gap: 0.75rem;
    align-items: stretch;
}

.bw-date-row .bw-choice--asap {
    flex: 0 0 auto;
    min-width: 100px;
}

.bw-date-input-wrap {
    flex: 1;
}

.bw-date-input {
    height: 100%;
    cursor: pointer;
}

.bw-date-input.is-selected {
    border-color: var(--ocf-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ocf-accent) 12%, transparent);
}

/* ─── Nav buttons (inline with content) ─── */

.bw-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 680px;
    width: 100%;
    margin: 0 auto;
    padding: 1.5rem 1.5rem 2rem;
    flex-shrink: 0;
}
@media (min-width: 640px) {
    .bw-nav { padding: 1.5rem 2rem 2rem; }
}

@media (min-width: 640px) {
    .bw-nav { padding: 2.5rem 2rem 3rem; }
}

@media (min-width: 1024px) {
    .bw-nav { padding: 3rem 3rem 4rem; }
}

.bw-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 2rem;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--text-sm);
    font-weight: 600;
    border-radius: var(--radius);
    cursor: pointer;
    transition: all 0.25s ease;
    border: none;
}

.bw-btn svg {
    width: 1rem;
    height: 1rem;
}

.bw-btn--back {
    background: transparent;
    color: var(--ocf-body);
    padding-left: 1rem;
}

#bw-back {
    visibility: hidden;
}

.bw-btn--back:hover {
    color: var(--ocf-heading);
}

.bw-btn--next {
    background: var(--ocf-accent);
    color: var(--ocf-bg);
    margin-left: auto;
}

.bw-btn--next:hover {
    background: var(--ocf-accent-hover);
}

.bw-btn--next:active {
    transform: scale(0.98);
}

.bw-btn--next.is-loading {
    opacity: 0.7;
    pointer-events: none;
}

/* ─── Next button group + Enter hint ─── */

.bw-next-group {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
    margin-left: auto;
}

.bw-key-hint {
    display: none;
    font-size: var(--text-xs);
    font-weight: 400;
    color: var(--ocf-label);
    line-height: 1;
}

.bw-key-hint strong {
    font-weight: 600;
    color: var(--ocf-heading);
}

@media (min-width: 768px) {
    .bw-key-hint { display: block; }
}

/* ─── Shake validation ─── */

@keyframes bw-shake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-6px); }
    40% { transform: translateX(6px); }
    60% { transform: translateX(-4px); }
    80% { transform: translateX(4px); }
}

.bw-shake {
    animation: bw-shake 0.4s ease;
}

/* ─── "Other" type-in input ─── */

.bw-other-input-wrap {
    display: none;
    margin-top: 0.75rem;
    animation: bw-fadeUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.bw-honeypot {
    position: absolute;
    left: -9999px;
}

.bw-field-group--spaced {
    margin-top: 1.5rem;
}

/* ─── Mobile refinements ─── */

@media (max-width: 479px) {
    .bw-choice-row--3 {
        grid-template-columns: 1fr;
    }
    .bw-title {
        font-size: var(--text-2xl);
    }
}

/* Recovered source: commitments.css */
/* ─── Commitments: numbered proof + image ─── */

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

.ocf-commitments-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

@media (min-width: 1024px) {
    .ocf-commitments-grid {
        grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
        gap: 5rem;
        align-items: stretch;
    }
}

.ocf-commitments-content .eyebrow {
    color: var(--ocf-label);
}

.ocf-commitments-content .heading-section {
    color: var(--ocf-heading);
    max-width: 34rem;
    margin-bottom: 2rem;
}

.ocf-commitments-list {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--ocf-border-light);
}

.ocf-commitment {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid color-mix(in srgb, var(--ocf-border-light) 55%, transparent);
}

.ocf-commitment-num {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-3xl);
    font-weight: 300;
    color: var(--ocf-accent);
    line-height: 1;
    flex-shrink: 0;
    opacity: 0.65;
    min-width: 2.5rem;
}

.ocf-commitment h3 {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--ocf-heading);
    margin-bottom: 0.375rem;
    letter-spacing: -0.01em;
}

.ocf-commitment p {
    font-size: var(--text-sm);
    color: var(--ocf-body);
    line-height: 1.65;
    max-width: 32rem;
}

.ocf-commitments-image-wrap {
    position: relative;
}

.ocf-commitments-image {
    height: 100%;
    min-height: 24rem;
    border-radius: var(--radius);
    overflow: hidden;
    border: 1px solid var(--ocf-border-light);
    background: var(--ocf-bg);
}

.ocf-commitments-image img {
    width: 100%;
    height: 100%;
    min-height: 24rem;
    object-fit: cover;
}

@media (max-width: 767px) {
    .ocf-commitment {
        gap: 1rem;
    }

    .ocf-commitment-num {
        font-size: var(--text-2xl);
        min-width: 2rem;
    }

    .ocf-commitments-image,
    .ocf-commitments-image img {
        min-height: 18rem;
    }
}

/* Recovered source: contact-form.css */
/* ─── Hero form card ─── */

.ocf-field {
    position: relative;
}

.ocf-field input,
.ocf-field textarea {
    width: 100%;
    position: relative;
    z-index: 1;
}

.ocf-field > *:not(input):not(textarea):not(select):not(label):not(.ocf-phone-combo) {
    position: absolute !important;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    pointer-events: auto;
}

.ocf-honeypot {
    position: absolute;
    left: -9999px;
}

.ocf-name-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.ocf-form-status {
    display: none;
}

.ocf-form-status.is-visible {
    display: block;
}

.ocf-form-success {
    text-align: center;
    padding: 2rem 0;
}

.ocf-form-success svg {
    width: 3rem;
    height: 3rem;
    color: var(--ocf-accent);
    margin-bottom: 1rem;
}

.ocf-form-success h3 {
    font-size: var(--font-h3-size);
    font-weight: var(--font-weight-bold);
    color: var(--ocf-heading);
    margin-bottom: 0.5rem;
}

.ocf-form-success p,
.ocf-form-error {
    font-size: var(--font-label-size);
    margin-top: 0.75rem;
}

.ocf-form-success p {
    color: var(--ocf-body);
    margin-top: 0;
}

.ocf-form-error {
    color: #dc2626;
}

.ocf-form-shell {
    max-width: 42rem;
}

.wpcf7 .form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .wpcf7 .form-grid { grid-template-columns: 1fr 1fr; }
}

.wpcf7 .form-field-full { grid-column: 1 / -1; }

.wpcf7 label {
    display: block;
    font-size: var(--font-label-size);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--ocf-body);
    margin-bottom: 0.5rem;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea {
    display: block;
    width: 100%;
    padding: 0.875rem 1rem;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--font-body-size);
    color: var(--ocf-heading);
    background-color: var(--ocf-bg);
    border: 1px solid color-mix(in srgb, var(--ocf-border-light) 12%, transparent);
    border-radius: var(--radius);
    outline: none;
    transition: border-color var(--duration) ease, box-shadow var(--duration) ease;
    -webkit-appearance: none;
    appearance: none;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="number"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
    border-color: var(--ocf-accent-hover);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ocf-accent-hover) 8%, transparent);
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
    color: var(--ocf-body);
    font-weight: var(--font-weight-light);
}

.wpcf7 select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235b8ab6' d='M6 8.825L0.375 3.2l0.85-0.85L6 7.125l4.775-4.775 0.85 0.85z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 2.5rem;
}

.wpcf7 textarea { min-height: 160px; resize: vertical; }

.wpcf7 input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--ocf-accent);
    color: var(--ocf-heading-alt);
    min-height: 2.75rem;
    padding: 0.75rem 1rem;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--font-body-size);
    font-weight: var(--font-weight-semibold);
    line-height: 1.2;
    text-transform: var(--button-text-transform);
    letter-spacing: var(--button-letter-spacing);
    border: var(--button-border-width) solid var(--button-border-color);
    border-color: transparent;
    border-radius: var(--button-radius);
    box-shadow: var(--button-shadow);
    cursor: pointer;
    transition: background var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease), transform var(--duration) var(--ease);
    margin-top: 0.5rem;
    -webkit-appearance: none;
    appearance: none;
}

.wpcf7 input[type="submit"]:hover {
    background-color: var(--ocf-accent-hover);
    box-shadow: var(--button-shadow-hover);
    transform: var(--button-transform-hover);
}
.wpcf7 .wpcf7-spinner { margin-left: 1rem; }
.wpcf7 .wpcf7-not-valid { border-color: #dc2626 !important; }

.wpcf7 .wpcf7-not-valid-tip {
    font-size: var(--font-label-size);
    color: #dc2626;
    margin-top: 0.375rem;
    font-weight: var(--font-weight-medium);
}

.wpcf7 .wpcf7-response-output {
    margin: 1.5rem 0 0;
    padding: 1rem 1.25rem;
    border: 1px solid;
    border-radius: var(--radius);
    font-size: var(--font-label-size);
    line-height: 1.5;
}

.wpcf7 form.sent .wpcf7-response-output { border-color: #059669; background-color: #ecfdf5; color: #065f46; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { border-color: #dc2626; background-color: #fef2f2; color: #991b1b; }
.wpcf7 form.failed .wpcf7-response-output { border-color: #d97706; background-color: #fffbeb; color: #92400e; }
.wpcf7 p { margin: 0; }

.hero-form-card {
    background: var(--ocf-bg);
    border: var(--card-border-width) solid var(--card-border-color-subtle);
    border-radius: var(--card-radius);
    padding: 1.75rem;
    box-shadow: var(--card-shadow);
}

@media (min-width: 640px) {
    .hero-form-card { padding: 2rem; }
}

@media (max-width: 639px) {
    .ocf-name-grid,
    .ocf-phone-combo {
        grid-template-columns: 1fr;
    }
}

.hero-form-card .hero-form-title {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--font-h3-size);
    font-weight: var(--font-weight-bold);
    color: var(--ocf-heading);
    margin-bottom: 0.875rem;
    letter-spacing: -0.01em;
}

.hero-form-card > p {
    font-size: var(--font-label-size);
    color: var(--ocf-body);
    margin-bottom: 1.25rem;
    opacity: 0.7;
}

.hero-form-card .hero-form-fields {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.hero-form-card input,
.hero-form-card textarea,
.hero-form-card select {
    display: block;
    width: 100%;
    padding: 0.75rem 1rem;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--font-body-size);
    color: var(--ocf-heading);
    background: var(--ocf-bg-alt);
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--radius);
    outline: none;
    transition: border-color var(--duration) ease, box-shadow var(--duration) ease;
}

.hero-form-card input:focus,
.hero-form-card textarea:focus,
.hero-form-card select:focus {
    border-color: var(--ocf-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ocf-accent) 10%, transparent);
}

.hero-form-card input::placeholder,
.hero-form-card textarea::placeholder {
    color: var(--ocf-body);
}

.hero-form-card textarea {
    min-height: 80px;
    resize: vertical;
}

.ocf-phone-combo {
    display: grid;
    grid-template-columns: clamp(6.75rem, 21%, 7.25rem) minmax(0, 1fr);
    gap: 0.5rem;
    width: 100%;
}

.ocf-phone-combo .ocf-phone-country {
    display: block;
    width: 100%;
    min-width: 0;
    padding-block: 0.75rem;
    padding-inline: 0.45rem 1.15rem;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--font-body-size);
    color: var(--ocf-heading);
    background: var(--ocf-bg-alt);
    background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
    background-position: calc(100% - 0.78rem) 50%, calc(100% - 0.48rem) 50%;
    background-size: 0.3rem 0.3rem, 0.3rem 0.3rem;
    background-repeat: no-repeat;
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--radius);
    appearance: none;
    outline: none;
    white-space: nowrap;
    transition: border-color var(--duration) ease, box-shadow var(--duration) ease;
}

.ocf-phone-combo .ocf-phone-country:focus {
    border-color: var(--ocf-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ocf-accent) 10%, transparent);
}

.ocf-phone-combo input {
    min-width: 0;
}

.hero-form-card .form-submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    min-height: 2.75rem;
    padding: 0.75rem 1rem;
    background: var(--ocf-accent);
    color: var(--ocf-heading-alt);
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--font-body-size);
    font-weight: var(--font-weight-semibold);
    line-height: 1.2;
    text-transform: var(--button-text-transform);
    letter-spacing: var(--button-letter-spacing);
    border: var(--button-border-width) solid transparent;
    border-radius: var(--button-radius);
    box-shadow: var(--button-shadow);
    cursor: pointer;
    transition: background var(--duration) var(--ease), color var(--duration) var(--ease), border-color var(--duration) var(--ease), transform var(--duration) var(--ease);
}

.hero-form-card .form-submit-btn:hover {
    background: var(--ocf-accent-hover);
    box-shadow: var(--button-shadow-hover);
    transform: var(--button-transform-hover);
}

.hero-form-card .form-submit-btn:disabled {
    cursor: not-allowed;
    opacity: 0.45;
    transform: none;
}


/* ─── Hero service on-ramp ─── */

.hero-svc-list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 1rem;
    max-height: 320px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--ocf-border-light) transparent;
}

.hero-svc-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.625rem 0.875rem;
    background: var(--ocf-bg);
    border: 1.5px solid var(--ocf-border-light);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all 0.15s ease;
    text-align: left;
    font-family: inherit;
}

.hero-svc-row:hover {
    border-color: var(--ocf-border);
}

.hero-svc-row.is-selected {
    border-color: var(--ocf-accent);
    background: color-mix(in srgb, var(--ocf-accent) 4%, var(--ocf-bg));
}

.hero-svc-check {
    width: 1.25rem;
    height: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1.5px solid var(--ocf-border);
    border-radius: var(--radius-sm);
    flex-shrink: 0;
    transition: all 0.15s ease;
    color: transparent;
}

.hero-svc-row.is-selected .hero-svc-check {
    background: var(--ocf-accent);
    border-color: var(--ocf-accent);
    color: #fff;
}

.hero-svc-check svg {
    width: 0.75rem;
    height: 0.75rem;
}

.hero-svc-label {
    font-size: var(--font-label-size);
    font-weight: var(--font-weight-medium);
    color: var(--ocf-heading);
}

.hero-svc-other-wrap {
    margin: -0.25rem 0 1rem;
}

.hero-svc-other-wrap[hidden] {
    display: none;
}

.hero-svc-other-wrap input {
    background: var(--ocf-bg);
    border-width: 1.5px;
}

/* Recovered source: contact-page.css */
/* ═══════════════════════════════════════════════
   Contact Page — Industrial Editorial
   ═══════════════════════════════════════════════ */

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

.contact-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

@media (min-width: 1024px) {
    .contact-grid {
        grid-template-columns: var(--contact-split, 5fr 7fr);
        gap: 5rem;
    }
}

.ocf-contact-heading {
    margin-bottom: 1.25rem;
}

.ocf-contact-intro {
    margin-bottom: 2.5rem;
    max-width: 30rem;
}

/* Contact detail rows */

.ocf-contact-details {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.ocf-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    text-decoration: none;
    color: inherit;
    transition: color var(--duration) ease;
}

a.ocf-contact-item:hover .ocf-contact-item-body strong {
    color: var(--ocf-accent);
}

.ocf-contact-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    flex-shrink: 0;
    border-radius: var(--radius);
    background: var(--ocf-bg-alt);
    border: 1px solid var(--ocf-border-light);
    color: var(--ocf-accent);
    transition: background var(--duration) ease, border-color var(--duration) ease;
}

a.ocf-contact-item:hover .ocf-contact-icon {
    background: color-mix(in srgb, var(--ocf-accent) 8%, transparent);
    border-color: color-mix(in srgb, var(--ocf-accent) 20%, transparent);
}

.ocf-contact-icon svg {
    width: 1.125rem;
    height: 1.125rem;
}

.ocf-contact-item-body {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    padding-top: 0.25rem;
}

.ocf-contact-item-body strong {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--ocf-heading);
    transition: color var(--duration) ease;
}

.ocf-contact-item-body span {
    font-size: var(--text-sm);
    color: var(--ocf-body);
    line-height: 1.5;
}

/* Office hours block */

.ocf-contact-hours {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid var(--ocf-border-light);
}

.ocf-contact-hours-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    color: var(--ocf-label);
}

.ocf-contact-hours-label svg {
    width: 0.875rem;
    height: 0.875rem;
    color: var(--ocf-accent);
    flex-shrink: 0;
}

.ocf-hours-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    max-width: 20rem;
}

.ocf-hours-list li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: var(--text-sm);
}

.ocf-hours-list li .text-body {
    font-size: inherit;
}

.ocf-hours-list li > span:last-child {
    color: var(--ocf-heading);
    font-weight: 500;
}

.ocf-contact-emergency {
    margin-top: 0.875rem;
    font-size: var(--text-xs);
    color: var(--ocf-body);
    line-height: 1.5;
}

/* Form card */

.ocf-contact-form-card {
    border-color: var(--ocf-border);
    box-shadow: var(--card-shadow-hover);
}

.ocf-contact-form-card:hover {
    transform: none;
}

.ocf-contact-form-header {
    margin-bottom: 1.75rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--ocf-border-light);
}

.ocf-contact-form-header h3 {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ocf-heading);
    margin-bottom: 0.375rem;
}

.ocf-contact-form-header p {
    font-size: var(--text-sm);
    color: var(--ocf-body);
    line-height: 1.6;
}

/* CF7 form inside card */

.ocf-contact-form-card .wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ocf-contact-form-card .wpcf7-form label {
    display: block;
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ocf-label);
    margin-bottom: 0.375rem;
}

.ocf-contact-form-card .wpcf7-form input[type="text"],
.ocf-contact-form-card .wpcf7-form input[type="email"],
.ocf-contact-form-card .wpcf7-form input[type="tel"],
.ocf-contact-form-card .wpcf7-form input[type="url"],
.ocf-contact-form-card .wpcf7-form textarea,
.ocf-contact-form-card .wpcf7-form select {
    display: block;
    width: 100%;
    padding: 0.75rem 1rem;
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--text-base);
    color: var(--ocf-heading);
    background: var(--ocf-bg-alt);
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--radius);
    outline: none;
    transition: border-color var(--duration) ease, box-shadow var(--duration) ease;
}

.ocf-contact-form-card .wpcf7-form input:focus,
.ocf-contact-form-card .wpcf7-form textarea:focus,
.ocf-contact-form-card .wpcf7-form select:focus {
    border-color: var(--ocf-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ocf-accent) 10%, transparent);
}

.ocf-contact-form-card .wpcf7-form input::placeholder,
.ocf-contact-form-card .wpcf7-form textarea::placeholder {
    color: var(--ocf-body);
}

.ocf-contact-form-card .wpcf7-form textarea {
    min-height: 100px;
    resize: vertical;
}

.ocf-contact-form-card .wpcf7-form input[type="submit"] {
    display: block;
    width: 100%;
    padding: 0.875rem 2rem;
    background: var(--ocf-accent);
    color: var(--ocf-heading-alt);
    font-family: var(--ocf-font-body), system-ui, sans-serif;
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: var(--button-text-transform);
    letter-spacing: var(--button-letter-spacing);
    border: var(--button-border-width) solid var(--button-border-color);
    border-radius: var(--button-radius);
    box-shadow: var(--button-shadow);
    cursor: pointer;
    transition: all var(--duration) ease;
}

.ocf-contact-form-card .wpcf7-form input[type="submit"]:hover {
    background: var(--ocf-accent-hover);
    box-shadow: var(--button-shadow-hover);
    transform: var(--button-transform-hover);
}

/* Fallback when CF7 not configured */

.ocf-contact-form-fallback {
    text-align: center;
    padding: 2rem 0;
}

.ocf-contact-form-fallback p {
    margin-bottom: 1.5rem;
}

/* Validation messages */

.ocf-contact-form-card .wpcf7-not-valid-tip {
    font-size: var(--text-xs);
    color: #dc2626;
    margin-top: 0.25rem;
}

.ocf-contact-form-card .wpcf7-response-output {
    font-size: var(--text-sm);
    padding: 0.75rem 1rem;
    border-radius: var(--radius);
    margin-top: 0.5rem;
}

/* Recovered source: content.css */
.ocf-content {
    position: relative;
    overflow: hidden;
    background: var(--ocf-bg);
}

.ocf-content__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.85fr);
    gap: clamp(2rem, 6vw, 4rem);
    align-items: center;
}

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

.ocf-content__body {
    display: grid;
    gap: 1rem;
    max-width: 68ch;
}

.ocf-content__body > * {
    margin: 0;
}

.ocf-content__body strong,
.ocf-content__body b {
    color: var(--ocf-heading);
    font-weight: var(--font-weight-bold);
}

.ocf-content__body a {
    color: var(--ocf-accent);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.ocf-content__body ul,
.ocf-content__body ol {
    display: grid;
    gap: 0.75rem;
    margin: 0.25rem 0 0;
    padding: 0;
    list-style: none;
}

.ocf-content__body li {
    position: relative;
    min-height: 1.4rem;
    padding-left: 2.45rem;
}

.ocf-content__body li::before {
    content: "";
    position: absolute;
    top: 0.12em;
    left: 0;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 999px;
    background: var(--ocf-accent);
    box-shadow: 0 0.35rem 1rem color-mix(in srgb, var(--ocf-accent) 22%, transparent);
}

.ocf-content__body li::after {
    content: "";
    position: absolute;
    top: 0.49em;
    left: 0.37rem;
    width: 0.48rem;
    height: 0.26rem;
    border-left: 2px solid var(--ocf-bg);
    border-bottom: 2px solid var(--ocf-bg);
    transform: rotate(-45deg);
}

.ocf-content__media {
    position: relative;
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--image-radius);
    background: var(--ocf-bg-alt);
    box-shadow: var(--image-shadow);
    overflow: hidden;
}

.ocf-content__media img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.ocf-content--image_right .ocf-content__media {
    order: 2;
}

.ocf-content--image_right .ocf-content__copy {
    order: 1;
}

.ocf-content--image_right .ocf-content__grid {
    grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1fr);
}

.ocf-content--text_image_left .ocf-content__grid,
.ocf-content--checklist_image_left .ocf-content__grid {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.85fr);
}

@media (max-width: 860px) {
    .ocf-content__grid,
    .ocf-content--image_right .ocf-content__grid,
    .ocf-content--text_image_left .ocf-content__grid,
    .ocf-content--checklist_image_left .ocf-content__grid {
        grid-template-columns: 1fr;
    }

    .ocf-content--image_right .ocf-content__media,
    .ocf-content--image_right .ocf-content__copy {
        order: initial;
    }
}

/* Recovered source: cta.css */
/* Section: CTA */
.ocf-cta {
    background: var(--ocf-bg);
    padding: 5rem 0;
}

.ocf-cta__panel {
    position: relative;
    overflow: hidden;
    border-radius: var(--card-radius);
    min-height: 420px;
    background: var(--ocf-bg-dark);
    color: var(--ocf-heading-alt);
}

.ocf-cta--simple_band .ocf-cta__panel {
    min-height: 0;
    background: var(--ocf-bg-alt);
    color: var(--ocf-heading);
    border: var(--card-border-width) solid var(--card-border-color);
    box-shadow: var(--card-shadow);
}

.ocf-cta__image,
.ocf-cta__shade {
    position: absolute;
    inset: 0;
}

.ocf-cta__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ocf-cta__shade {
    background: var(--section-gradient, var(--gradient-media-dark));
    opacity: var(--section-overlay-opacity, max(0.88, var(--media-overlay-opacity)));
}

.ocf-cta__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: center;
    padding: 3.25rem 2.25rem;
}

@media (min-width: 820px) {
    .ocf-cta__inner {
        grid-template-columns: minmax(0, 1fr);
        padding: 5rem 4rem;
    }
}

.ocf-cta__content {
    max-width: 680px;
}

.ocf-cta__eyebrow,
.ocf-cta__title {
    color: inherit;
}

.ocf-cta__title {
    margin-bottom: 1rem;
}

.ocf-cta__text {
    color: var(--ocf-body-alt);
    font-size: var(--text-lg);
    line-height: 1.7;
    margin: 0;
}

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

.ocf-cta[data-ocf-tone="light"] .ocf-cta__panel {
    color: var(--ocf-heading);
}

.ocf-cta[data-ocf-tone="light"] .ocf-cta__text {
    color: var(--ocf-body);
}

.ocf-cta__actions {
    display: flex;
    justify-content: flex-start;
}

@media (min-width: 820px) {
    .ocf-cta__actions {
        justify-content: flex-start;
    }
}

/* Recovered source: detail-page.css */
/* ═══════════════════════════════════════════════
   Shared Detail Layout (Service + Service Area)
   ═══════════════════════════════════════════════ */

.ocf-detail-section {
    background: var(--ocf-bg);
    padding-bottom: clamp(2rem, 2.75vw, 3rem);
}

.page-header + .ocf-detail-section {
    padding-top: clamp(2.35rem, 3.4vw, 3.75rem);
}

.ocf-detail-section + .ocf-cta,
.ocf-detail-section + .ocf-faq + .ocf-cta {
    padding-top: clamp(1.25rem, 2vw, 2rem);
}

/* ─── Grid: content + sticky sidebar ─── */

.ocf-detail-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

@media (min-width: 1024px) {
    .ocf-detail-grid {
        grid-template-columns: 1fr 320px;
        gap: 4rem;
    }
}

@media (min-width: 1280px) {
    .ocf-detail-grid { gap: 5rem; }
}

/* ─── Main content ─── */

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

.ocf-detail-lead {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-xl);
    font-weight: 400;
    line-height: 1.7;
    color: var(--ocf-heading);
    letter-spacing: -0.01em;
    margin-bottom: 2.5rem;
}

.ocf-detail-locations {
    margin-bottom: 2.5rem;
}

.ocf-detail-locations h2 {
    font-size: var(--text-lg);
    line-height: 1.25;
    margin-bottom: 1rem;
}

.ocf-detail-location-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
}

.ocf-detail-location-list span {
    border: 1px solid var(--ocf-border-light);
    border-radius: 999px;
    background: var(--ocf-bg-alt);
    color: var(--ocf-heading);
    padding: 0.45rem 0.8rem;
    font-size: var(--text-sm);
    line-height: 1.2;
}

.ocf-detail-img {
    margin-bottom: 3rem;
    border-radius: var(--radius);
    overflow: hidden;
}

.ocf-detail-img img {
    width: 100%;
    height: auto;
    display: block;
}

/* ─── Features grid ─── */

.ocf-detail-features {
    margin-top: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid color-mix(in srgb, var(--ocf-border-light) 8%, transparent);
}

.ocf-detail-features-eyebrow {
    margin-bottom: 1.5rem;
}

.ocf-detail-features-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 640px) {
    .ocf-detail-features-grid {
        grid-template-columns: 1fr 1fr;
        gap: 0.75rem 2.5rem;
    }
}

.ocf-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.625rem 0;
}

.ocf-feature-item svg {
    width: 1.125rem;
    height: 1.125rem;
    color: var(--ocf-accent);
    flex-shrink: 0;
    margin-top: 0.125rem;
}

.ocf-feature-item span {
    font-size: var(--text-sm);
    color: var(--ocf-body);
    line-height: 1.6;
}

/* ─── Sticky CTA sidebar ─── */

.ocf-detail-aside {
    display: none;
}

@media (min-width: 1024px) {
    .ocf-detail-aside { display: block; }
}

.ocf-detail-sticky {
    position: sticky;
    top: 9rem;
    background: var(--ocf-bg-alt);
    border: var(--card-border-width) solid var(--card-border-color-subtle);
    border-radius: var(--card-radius-lg);
    box-shadow: var(--card-shadow);
    padding: 2rem;
}

.ocf-detail-sticky-heading {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ocf-heading);
    line-height: 1.25;
    margin-bottom: 0.5rem;
}

.ocf-detail-sticky-desc {
    font-size: var(--text-sm);
    margin-bottom: 1.5rem;
}

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

.ocf-detail-sticky-btn svg {
    width: 1rem;
    height: 1rem;
}

.ocf-detail-sticky-phone {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin-top: 0.85rem;
    padding-top: 0.9rem;
    border-top: 1px solid color-mix(in srgb, var(--ocf-border-light) 8%, transparent);
}

.ocf-detail-sticky-phone svg {
    width: 0.95rem;
    height: 0.95rem;
    color: var(--ocf-body);
    flex-shrink: 0;
}

.ocf-detail-sticky-phone a {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ocf-body);
    transition: color var(--duration) ease;
}

.ocf-detail-sticky-phone a:hover {
    color: var(--ocf-accent);
}

.ocf-detail-sticky-note {
    text-align: center;
    font-size: var(--text-xs);
    color: var(--ocf-body);
    margin-top: 1rem;
    opacity: 0.6;
}

.ocf-detail-related {
    background: var(--ocf-bg-alt);
}

/* Recovered source: faq.css */
/* ─── FAQ: 2-col accordion ─── */

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

.ocf-faq .eyebrow {
    margin-bottom: 0.75rem;
}

.ocf-faq .heading-section {
    max-width: 70%;
    margin-bottom: 3rem;
}

@media (max-width: 767px) {
    .ocf-faq .heading-section {
        max-width: 100%;
    }
}

.ocf-faq-columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 768px) {
    .ocf-faq-columns {
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }
}

.ocf-faq-column {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ocf-faq-item {
    background: var(--ocf-bg);
    border: var(--card-border-width) solid var(--card-border-color-subtle);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    overflow: hidden;
    transition: border-color var(--duration) ease, box-shadow var(--duration) ease, transform var(--duration) ease;
}

.ocf-faq-item:hover {
    border-color: var(--ocf-border-light);
    box-shadow: var(--card-shadow-hover);
    transform: var(--card-transform-hover);
}

.ocf-faq-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 1.25rem 1.5rem;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--ocf-heading);
    line-height: 1.4;
}

.ocf-faq-icon {
    width: 1.125rem;
    height: 1.125rem;
    flex-shrink: 0;
    color: var(--ocf-body);
    transition: transform var(--duration) ease;
}

.ocf-faq-item.open .ocf-faq-icon {
    transform: rotate(45deg);
}

.ocf-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.ocf-faq-answer p {
    padding: 0 1.5rem 1.25rem;
    font-size: var(--text-sm);
    line-height: 1.7;
    color: var(--ocf-body);
    margin: 0;
}

/* Recovered source: footer.css */
/* Section: Footer */

.site-footer {
    background: var(--ocf-bg-dark);
    color: var(--ocf-body-alt);
    font-size: var(--text-sm);
}

.site-footer a {
    color: var(--ocf-body-alt);
    transition: color var(--duration) ease;
}

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

.footer-heading {
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ocf-heading-alt);
    margin-bottom: 1.5rem;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

@media (min-width: 640px) {
    .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
    .footer-grid {
        grid-template-columns:
            minmax(0, 30fr)
            minmax(0, 20fr)
            minmax(0, 20fr)
            minmax(5rem, 10fr)
            minmax(0, 30fr);
        gap: 2rem;
    }

    .footer-grid--no-areas {
        grid-template-columns:
            minmax(0, 30fr)
            minmax(0, 22fr)
            minmax(5rem, 16fr)
            minmax(0, 32fr);
    }
}

.footer-brand-mark {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.footer-logo-mark { flex-shrink: 0; }

.footer-logo-img {
    height: 2rem;
    width: auto;
    display: block;
    margin-bottom: 1rem;
    background: var(--ocf-bg);
    padding: 0.375rem;
    border-radius: 8px;
}

@media (min-width: 1024px) {
    .footer-logo-img { height: 2.5rem; }
}

.footer-brand-name {
    display: block;
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--ocf-heading-alt);
    letter-spacing: -0.01em;
    margin-bottom: 1rem;
}

.footer-brand-location {
    display: block;
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    color: var(--ocf-body-alt);
    margin-bottom: 1rem;
}

.footer-brand-desc {
    font-size: var(--text-sm);
    line-height: 1.6;
    color: var(--ocf-body-alt);
    max-width: 20rem;
    margin-bottom: 1rem;
}

.footer-license {
    font-size: 11px;
    color: var(--ocf-body-alt);
}

.footer-link-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.footer-link-list a,
.footer-link-list span {
    font-size: var(--text-sm);
}

.footer-hours {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    font-size: var(--text-sm);
}

.footer-hours li {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.footer-hours li span:first-child {
    color: var(--ocf-body-alt);
    min-width: 4.75rem;
    white-space: nowrap;
}

.footer-hours li span:last-child {
    color: var(--ocf-body-alt);
    line-height: 1.45;
}

.footer-emergency {
    font-size: var(--text-sm);
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--ocf-border-alt);
}

.footer-contact-links {
    margin-top: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.footer-contact-links a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--text-sm);
}

.footer-contact-links svg {
    flex-shrink: 0;
}

.footer-bottom {
    border-top: 1px solid var(--ocf-border-alt);
    margin-top: 4rem;
    padding-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    font-size: var(--text-xs);
}

.footer-bottom-links {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

/* Recovered source: gallery.css */
/* Optional gallery slider */

.ocf-gallery {
    background: var(--ocf-bg);
    overflow: hidden;
}

.ocf-gallery-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2.5rem;
}

.ocf-gallery-heading {
    width: 68%;
    max-width: 58rem;
}

.ocf-gallery-heading .eyebrow { color: var(--ocf-label); }

.ocf-gallery-heading .heading-section {
    color: var(--ocf-heading);
    letter-spacing: -0.02em;
}

.ocf-gallery-intro {
    max-width: 42rem;
    margin-top: 0.875rem;
    color: var(--ocf-body);
    font-size: var(--text-base);
    line-height: 1.7;
}

.ocf-gallery-nav {
    display: flex;
    gap: 0.375rem;
    flex-shrink: 0;
}

.ocf-gallery-nav button {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    border: 1px solid var(--ocf-border-light);
    background: var(--ocf-bg-alt);
    color: var(--ocf-heading);
    cursor: pointer;
    transition: all var(--duration) ease;
}

.ocf-gallery-nav button:hover:not(:disabled) {
    background: var(--ocf-accent);
    border-color: var(--ocf-accent);
    color: var(--ocf-heading-alt);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--ocf-accent) 30%, transparent);
}

.ocf-gallery-nav button:disabled {
    opacity: 0.2;
    cursor: default;
}

.ocf-gallery-nav button svg {
    width: 1rem;
    height: 1rem;
}

.ocf-gallery-viewport {
    overflow: hidden;
}

.ocf-gallery-track {
    display: flex;
    gap: 1.25rem;
    transition: transform 0.5s var(--ease);
    cursor: grab;
}

.ocf-gallery-track:active { cursor: grabbing; }

.ocf-gallery-card {
    flex: 0 0 100%;
    min-width: 0;
    margin: 0;
    border-radius: var(--card-radius-lg);
    overflow: hidden;
    background: var(--ocf-bg-alt);
    border: var(--card-border-width) solid var(--card-border-color);
    box-shadow: var(--card-shadow);
}

@media (min-width: 640px) {
    .ocf-gallery-card {
        flex-basis: calc((100% - 1.25rem) / 2);
    }
}

@media (min-width: 1024px) {
    .ocf-gallery-card {
        flex-basis: calc((100% - 2.5rem) / 3);
    }
}

.ocf-gallery-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform 0.6s var(--ease);
}

.ocf-gallery-card:hover img {
    transform: scale(1.04);
}

.ocf-gallery-card figcaption {
    padding: 0.875rem 1rem 1rem;
    color: var(--ocf-body);
    font-size: var(--text-sm);
    line-height: 1.5;
}

@media (max-width: 767px) {
    .ocf-gallery-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .ocf-gallery-heading {
        width: 100%;
    }
}

/* Recovered source: header.css */
/* Section: Header navigation */

.nav-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;
    background: var(--ocf-bg);
    border-bottom: 1px solid color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
}

.nav-inner {
    display: flex;
    align-items: center;
    height: 5rem;
}

@media (min-width: 1024px) {
    .nav-inner { height: 6rem; }
}

.nav-logo {
    position: relative;
    z-index: 10;
    flex-shrink: 0;
    margin-right: auto;
    display: flex;
    align-items: center;
    color: var(--ocf-heading);
    transition: color var(--duration) ease;
}

.nav-logo:hover { color: var(--ocf-accent-hover); }

.nav-logo-img {
    height: 2rem;
    width: auto;
    display: block;
}

@media (min-width: 1024px) {
    .nav-logo-img { height: 2.5rem; }
}

.nav-logo-text {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    white-space: nowrap;
}

@media (min-width: 1024px) {
    .nav-logo-text { font-size: 1.375rem; }
}

.nav-links {
    display: none;
    align-items: center;
    gap: 2rem;
    margin: 0 auto;
}

@media (min-width: 1024px) {
    .nav-links { display: flex; }
}

@media (min-width: 1280px) {
    .nav-links { gap: 2.5rem; }
}

.nav-link {
    position: relative;
    font-size: var(--text-sm);
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ocf-heading);
    transition: color var(--duration) ease;
}

.nav-link:hover { color: var(--ocf-accent); }

.nav-link::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--ocf-accent);
    transition: width var(--duration) var(--ease);
}

.nav-link:hover::after { width: 100%; }

.nav-right {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
    margin-left: auto;
}

@media (min-width: 1024px) {
    .nav-right { gap: 1.5rem; }
}

.nav-phone {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--ocf-heading);
    font-size: var(--text-sm);
    font-weight: 500;
    transition: color var(--duration) ease;
}

.nav-phone span { display: inline; }
.nav-phone:hover { color: var(--ocf-accent-hover); }

.nav-phone svg {
    width: 0.875rem;
    height: 0.875rem;
}

.nav-divider {
    display: none;
    width: 1px;
    height: 1.5rem;
    background: color-mix(in srgb, var(--ocf-border) 60%, transparent);
}

@media (min-width: 1024px) {
    .nav-divider { display: block; }
}

.nav-cta {
    display: none;
    align-items: center;
    padding: 0.625rem 1.5rem;
    background: var(--ocf-accent);
    color: var(--ocf-bg);
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: var(--button-text-transform);
    letter-spacing: var(--button-letter-spacing);
    border: var(--button-border-width) solid var(--button-border-color);
    border-radius: var(--button-radius);
    box-shadow: var(--button-shadow);
    transition: all var(--duration) ease;
}

@media (min-width: 1024px) {
    .nav-cta { display: inline-flex; }
}

.nav-cta:hover {
    background: var(--ocf-accent-hover);
    box-shadow: var(--button-shadow-hover);
    transform: var(--button-transform-hover);
}

.nav-mobile-btn {
    display: block;
    padding: 0.5rem;
    margin-right: -0.5rem;
    background: none;
    border: none;
    cursor: pointer;
}

@media (min-width: 1024px) {
    .nav-mobile-btn { display: none; }
}

.nav-mobile-btn svg {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--ocf-heading);
}

.nav-dropdown {
    position: relative;
    display: flex;
    align-items: center;
}

.nav-dropdown-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.nav-dropdown-trigger--button {
    cursor: pointer;
}

.nav-dropdown-chevron {
    width: 0.75rem;
    height: 0.75rem;
    transition: transform 0.2s ease;
}

.nav-dropdown-panel {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    padding-top: 1rem;
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s ease;
}

.nav-dropdown-panel .dropdown-menu {
    background: var(--ocf-bg);
    border: 1px solid color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    min-width: 200px;
    padding: 0.5rem;
}

.nav-dropdown-panel .dropdown-menu--wide {
    min-width: 420px;
    columns: 2;
    column-gap: 0.25rem;
}

.nav-dropdown-panel .dropdown-menu--wide .dropdown-item {
    break-inside: avoid;
}

.dropdown-item {
    display: block;
    padding: 0.625rem 0.875rem;
    font-size: var(--text-sm);
    color: var(--ocf-heading);
    border-radius: var(--radius);
    transition: all 150ms ease;
}

.dropdown-item:hover {
    color: var(--ocf-heading);
    background: var(--ocf-bg-alt);
}

.dropdown-item--area {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.dropdown-item-icon {
    width: 1.25rem;
    height: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--ocf-accent);
}

.dropdown-item-icon svg {
    width: 1.125rem;
    height: 1.125rem;
}

.dropdown-item--area svg {
    flex-shrink: 0;
    color: var(--ocf-body);
    transition: color 150ms ease;
}

.dropdown-item--area:hover svg,
.dropdown-item--area:hover .dropdown-item-icon {
    color: var(--ocf-accent);
}

.mobile-menu {
    display: none;
    background: var(--ocf-bg);
    border-top: 1px solid var(--ocf-border-light);
}

@media (min-width: 1024px) {
    .mobile-menu { display: none !important; }
}

@media (max-width: 1023px) {
    .mobile-menu {
        max-height: calc(100vh - var(--wp-admin-bar-offset, 0px) - var(--wp-admin-bar-gap, 0px) - 4rem);
        overflow-y: auto;
        overscroll-behavior-y: contain;
        -webkit-overflow-scrolling: touch;
    }
    @supports (height: 100dvh) {
        .mobile-menu {
            max-height: calc(100dvh - var(--wp-admin-bar-offset, 0px) - var(--wp-admin-bar-gap, 0px) - 4rem);
        }
    }
}

.mobile-menu-inner {
    padding: 1.5rem;
}

.mobile-accordion { border-bottom: 1px solid var(--ocf-bg-alt); }

.mobile-accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.75rem 0;
    background: none;
    border: none;
    font-size: var(--text-sm);
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ocf-heading);
    cursor: pointer;
    transition: color var(--duration) ease;
}

.mobile-accordion-trigger:hover { color: var(--ocf-heading); }

.mobile-accordion-chevron {
    width: 1rem;
    height: 1rem;
    transition: transform 0.2s ease;
}

.mobile-accordion-panel {
    display: none;
    padding: 0 0 0.75rem 1rem;
}

.mobile-accordion-panel a {
    display: block;
    padding: 0.5rem 0;
    font-size: var(--text-sm);
    color: var(--ocf-heading);
    transition: color var(--duration) ease;
}

.mobile-accordion-panel a:hover { color: var(--ocf-heading); }

.mobile-link {
    display: block;
    padding: 0.75rem 0;
    font-size: var(--text-sm);
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ocf-heading);
    border-bottom: 1px solid var(--ocf-bg-alt);
    transition: color var(--duration) ease;
}

.mobile-link:hover { color: var(--ocf-heading); }

.mobile-actions {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.75rem;
    border-top: 1px solid var(--ocf-bg-alt);
    padding-top: 1rem;
}

.mobile-cta,
.mobile-phone {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    border-radius: var(--button-radius);
    font-weight: 600;
}

.mobile-cta {
    background: var(--ocf-primary);
    color: var(--ocf-primary-contrast);
    text-transform: var(--button-text-transform);
    letter-spacing: var(--button-letter-spacing);
}

.mobile-phone {
    gap: 0.5rem;
    border: 1px solid var(--ocf-bg-alt);
    color: var(--ocf-heading);
}

.mobile-phone svg {
    width: 1rem;
    height: 1rem;
}

/* Recovered source: hero.css */
/* Section: Hero */
.ocf-hero {
    position: relative;
    min-height: min(900px, calc(100vh - 4.5rem));
    display: grid;
    align-items: center;
    overflow: hidden;
    color: var(--ocf-heading-alt);
    background: var(--ocf-bg-dark);
    padding: 0;
}

@media (min-width: 1024px) {
    .ocf-hero {
        margin-top: -6rem;
        padding: 0;
    }
}

.ocf-hero__media,
.ocf-hero__shade {
    position: absolute;
    inset: 0;
}

.ocf-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ocf-hero__shade {
    background: var(--section-gradient, var(--gradient-media-dark));
    opacity: var(--section-overlay-opacity, max(0.88, var(--media-overlay-opacity)));
}

.ocf-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(2rem, 6vw, 5rem);
    align-items: center;
    padding-block: var(--section-pad);
}

.ocf-hero--split_form .ocf-hero__grid {
    padding-block: clamp(6rem, 12vh, 8.5rem) clamp(5.5rem, 10vh, 7.5rem);
}

@media (min-width: 980px) {
    .ocf-hero__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .ocf-hero--split_no_form .ocf-hero__grid,
    .ocf-hero--single_column .ocf-hero__grid {
        grid-template-columns: minmax(0, 780px);
    }
}

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

.ocf-hero__rating {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 1.5rem;
    color: rgba(255, 255, 255, 0.78);
    font-size: var(--text-sm);
}

.ocf-hero__rating-value {
    color: var(--ocf-heading-alt);
    font-weight: 700;
}

.ocf-hero__stars {
    display: inline-flex;
    gap: 0.12rem;
    color: #FBBF24;
    font-size: 1.18em;
}

.ocf-hero__title {
    color: var(--ocf-heading-alt);
    margin-bottom: 1.35rem;
}

.ocf-hero__title span {
    display: block;
}

.ocf-hero__text {
    max-width: 680px;
    color: var(--ocf-body-alt);
    font-size: clamp(1.05rem, 1.8vw, 1.35rem);
    line-height: 1.75;
    margin-bottom: 2rem;
}

.ocf-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}

.ocf-hero__phone {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--ocf-heading-alt);
    text-decoration: none;
    font-weight: 600;
}

.ocf-hero__phone:hover {
    color: var(--ocf-accent);
}

.ocf-hero[data-ocf-tone="light"] {
    color: var(--ocf-heading);
    background: var(--ocf-bg);
}

.ocf-hero[data-ocf-tone="light"] .ocf-hero__rating {
    color: var(--ocf-body);
}

.ocf-hero[data-ocf-tone="light"] .ocf-hero__rating-value,
.ocf-hero[data-ocf-tone="light"] .ocf-hero__title,
.ocf-hero[data-ocf-tone="light"] .ocf-hero__phone {
    color: var(--ocf-heading);
}

.ocf-hero[data-ocf-tone="light"] .ocf-hero__text {
    color: var(--ocf-body);
}

.ocf-hero__form {
    width: 100%;
}

/* Recovered source: industries.css */
.ocf-industries {
    background: var(--ocf-bg-alt);
}

.ocf-industries-header {
    display: grid;
    gap: 0.75rem;
    max-width: 44rem;
    margin-bottom: 2rem;
}

.ocf-industries-intro {
    margin: 0;
    color: var(--ocf-body);
}

.ocf-industries-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.ocf-industries--compact_list .ocf-industries-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.ocf-industries--featured_split .ocf-industries-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    align-items: stretch;
}

.ocf-industry-card {
    display: grid;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    background: var(--ocf-bg);
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--card-radius);
}

.ocf-industries--compact_list .ocf-industry-card {
    grid-template-columns: minmax(0, 9rem) 1fr;
}

.ocf-industries--featured_split .ocf-industry-card:first-child {
    grid-row: span 3;
}

.ocf-industries--featured_split .ocf-industry-card:not(:first-child) {
    grid-template-columns: minmax(0, 8rem) 1fr;
}

.ocf-industry-card__media {
    aspect-ratio: 4 / 3;
    background: var(--ocf-bg);
}

.ocf-industry-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ocf-industry-card__body {
    display: grid;
    gap: 0.5rem;
    padding: 1.25rem;
}

.ocf-industry-card__body h3 {
    margin: 0;
    color: var(--ocf-heading);
    font-size: var(--font-h3-size);
}

.ocf-industry-card__body p {
    margin: 0;
    color: var(--ocf-body);
    font-size: var(--font-label-size);
}

.ocf-industries--compact_list .ocf-industry-card__body,
.ocf-industries--featured_split .ocf-industry-card:not(:first-child) .ocf-industry-card__body {
    align-content: center;
    padding: 1rem;
}

.ocf-industries--compact_list .ocf-industry-card__body h3,
.ocf-industries--featured_split .ocf-industry-card:not(:first-child) .ocf-industry-card__body h3 {
    font-size: var(--font-h3-size);
}

@media (max-width: 900px) {
    .ocf-industries-grid,
    .ocf-industries--featured_split .ocf-industries-grid {
        grid-template-columns: 1fr;
    }

    .ocf-industries--compact_list .ocf-industry-card,
    .ocf-industries--featured_split .ocf-industry-card:not(:first-child) {
        grid-template-columns: 1fr;
    }
}

/* Recovered source: locations.css */
.ocf-locations {
    background: var(--ocf-bg);
}

.ocf-locations-header {
    display: grid;
    gap: 0.75rem;
    max-width: 44rem;
    margin-bottom: 2rem;
}

.ocf-locations-intro {
    margin: 0;
    color: var(--ocf-body);
}

.ocf-locations-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.ocf-locations--compact_list .ocf-locations-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.ocf-locations--featured_split .ocf-locations-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    align-items: stretch;
}

.ocf-locations--image_cards .ocf-locations-grid,
.ocf-locations--image_cards_compact .ocf-locations-grid {
    gap: var(--grid-gap);
}

.ocf-locations--image_cards_compact .ocf-locations-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ocf-location-card {
    display: grid;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    background: var(--ocf-bg);
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--card-radius);
}

.ocf-locations--compact_list .ocf-location-card {
    grid-template-columns: minmax(0, 9rem) 1fr;
}

.ocf-locations--featured_split .ocf-location-card:first-child {
    grid-row: span 3;
}

.ocf-locations--featured_split .ocf-location-card:not(:first-child) {
    grid-template-columns: minmax(0, 8rem) 1fr;
}

.ocf-locations--image_cards .ocf-location-card,
.ocf-locations--image_cards_compact .ocf-location-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--card-radius);
    background: var(--ocf-bg);
    box-shadow: var(--card-shadow);
}

.ocf-locations--image_cards_compact .ocf-location-card {
    display: grid;
    grid-template-columns: minmax(0, 10rem) minmax(0, 1fr);
    min-height: 0;
}

.ocf-location-card__media {
    aspect-ratio: 4 / 3;
    background: var(--ocf-bg-alt);
}

.ocf-locations--image_cards .ocf-location-card__media,
.ocf-locations--image_cards_compact .ocf-location-card__media {
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.ocf-locations--image_cards_compact .ocf-location-card__media {
    aspect-ratio: auto;
    min-height: 100%;
}

.ocf-location-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ocf-location-card__body {
    display: grid;
    gap: 0.5rem;
    padding: 1.25rem;
}

.ocf-location-card__body h3 {
    margin: 0;
    color: var(--ocf-heading);
    font-size: var(--font-h3-size);
}

.ocf-location-card__body p,
.ocf-location-card__body span {
    margin: 0;
    color: var(--ocf-body);
    font-size: var(--font-label-size);
}

.ocf-location-card__details {
    display: grid;
    gap: 0.35rem;
}

.ocf-locations--image_cards .ocf-location-card__details,
.ocf-locations--image_cards_compact .ocf-location-card__details {
    gap: 0.4rem;
}

.ocf-locations--image_cards .ocf-location-card__details span:first-child,
.ocf-locations--image_cards_compact .ocf-location-card__details span:first-child {
    color: var(--ocf-heading);
}

.ocf-locations--compact_list .ocf-location-card__body,
.ocf-locations--featured_split .ocf-location-card:not(:first-child) .ocf-location-card__body {
    align-content: center;
    padding: 1rem;
}

.ocf-locations--image_cards .ocf-location-card__body,
.ocf-locations--image_cards_compact .ocf-location-card__body {
    padding: 1rem;
}

.ocf-locations--image_cards_compact .ocf-location-card__body {
    align-content: center;
    min-height: 7rem;
}

.ocf-locations--compact_list .ocf-location-card__body h3,
.ocf-locations--featured_split .ocf-location-card:not(:first-child) .ocf-location-card__body h3 {
    font-size: var(--font-h3-size);
}

.ocf-locations--image_cards .ocf-location-card__body h3,
.ocf-locations--image_cards_compact .ocf-location-card__body h3 {
    font-size: var(--font-h3-size);
}

@media (max-width: 900px) {
    .ocf-locations-grid,
    .ocf-locations--featured_split .ocf-locations-grid,
    .ocf-locations--image_cards_compact .ocf-locations-grid {
        grid-template-columns: 1fr;
    }

    .ocf-locations--compact_list .ocf-location-card,
    .ocf-locations--featured_split .ocf-location-card:not(:first-child),
    .ocf-locations--image_cards_compact .ocf-location-card {
        grid-template-columns: 1fr;
    }

    .ocf-locations--image_cards_compact .ocf-location-card__media {
        aspect-ratio: 16 / 9;
    }
}

/* Recovered source: media-placeholder.css */
/* ─── Placeholder image ─── */

.ocf-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #111, #020202);
    color: var(--ocf-border-alt);
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
}

.ocf-placeholder svg {
    width: 3rem;
    height: 3rem;
    opacity: 0.3;
}

/* Recovered source: page-about.css */
/* ═══════════════════════════════════════════════
   About Page — Editorial Layout
   ═══════════════════════════════════════════════ */


/* ─── Values: clean grid with hover ─── */

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

.ocf-values-header {
    max-width: 36rem;
    margin-bottom: 4rem;
}

.ocf-values-header .eyebrow {
    margin-bottom: 1rem;
}

.ocf-values-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .ocf-values-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .ocf-values-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.ocf-value-card {
    background: var(--ocf-bg);
    border: var(--card-border-width) solid var(--card-border-color-subtle);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    padding: 2rem;
    transition: all var(--duration-slow) var(--ease);
}

@media (min-width: 640px) {
    .ocf-value-card { padding: 2.5rem; }
}

.ocf-value-card:hover {
    border-color: var(--ocf-border);
    box-shadow: var(--card-shadow-hover);
    transform: var(--card-transform-hover);
}

.ocf-value-number {
    display: block;
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-3xl);
    font-weight: 300;
    color: color-mix(in srgb, var(--ocf-border) 45%, transparent);
    line-height: 1;
    margin-bottom: 1.5rem;
    transition: color var(--duration-slow) ease;
}

.ocf-value-card:hover .ocf-value-number {
    color: var(--ocf-accent);
}

.ocf-value-title {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ocf-heading);
    letter-spacing: -0.01em;
    margin-bottom: 0.625rem;
}


/* ─── Service area: centered badges ─── */

.ocf-about-area {
    background: var(--ocf-bg);
    border-top: 1px solid color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
}

.ocf-area-center {
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.ocf-area-center .eyebrow {
    margin-bottom: 1rem;
}

.ocf-area-center .heading-section {
    margin-bottom: 1.5rem;
}

.ocf-area-desc {
    max-width: 40rem;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 3rem;
}

.ocf-area-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.625rem;
}

.ocf-area-badge {
    display: inline-block;
    padding: 0.5rem 1.25rem;
    background: var(--ocf-bg-alt);
    border: 1px solid color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ocf-heading);
    transition: all var(--duration) ease;
}

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

/* Recovered source: page-header.css */
/* ─── Page header: featured-image contrast band ─── */

.page-header {
    background:
        var(--section-gradient, var(--gradient-dark-primary)),
        var(--ocf-bg-dark);
    border-bottom: 1px solid color-mix(in srgb, var(--ocf-heading-alt) 12%, transparent);
    color: var(--ocf-heading-alt);
}

.page-header--image {
    background-image:
        var(--section-gradient, var(--gradient-media-dark)),
        var(--page-header-image);
    background-position: center;
    background-size: cover;
}

.page-header-content {
    position: relative;
    width: 100%;
    max-width: min(100%, 88rem);
}

.page-header .eyebrow {
    margin-bottom: 1rem;
    color: color-mix(in srgb, var(--ocf-heading-alt) 78%, transparent);
}

.page-header .ocf-hero__title {
    max-width: min(100%, 82rem);
    color: var(--ocf-heading-alt);
    overflow-wrap: normal;
    text-wrap: pretty;
}

.page-header[data-ocf-tone="light"] {
    border-bottom-color: var(--ocf-border-light);
    color: var(--ocf-heading);
}

.page-header[data-ocf-tone="light"] .eyebrow {
    color: var(--ocf-body);
}

.page-header[data-ocf-tone="light"] .ocf-hero__title {
    color: var(--ocf-heading);
}

.page-header-divider {
    margin-top: 1.5rem;
}

.page-header-divider .divider {
    height: 2px;
    width: 4rem;
    background: color-mix(in srgb, var(--ocf-heading-alt) 76%, var(--ocf-accent));
}

@media (min-width: 1024px) {
    .page-header .ocf-hero__title {
        max-width: 100%;
    }
}

.page-header-inner {
    padding-top: 11rem;
    padding-bottom: 7.5rem;
}

@media (min-width: 1024px) {
    .page-header-inner {
        padding-top: 13rem;
        padding-bottom: 10rem;
    }
}

/* Recovered source: section-review.css */
.ocf-section-review__header {
    padding: 8rem 0 3rem;
    background: var(--ocf-bg-alt);
    border-bottom: 1px solid var(--ocf-border-light);
}

.ocf-section-review__header .eyebrow a {
    color: inherit;
    text-decoration: none;
}

.ocf-section-review__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.ocf-section-review__item {
    display: grid;
    gap: 0.75rem;
    min-height: 12rem;
    padding: 1.25rem;
    border: 1px solid var(--ocf-border);
    border-radius: var(--card-radius);
    color: inherit;
    text-decoration: none;
    background: var(--ocf-bg);
}

.ocf-section-review__label {
    color: var(--ocf-heading);
    font-weight: var(--font-weight-bold);
}

.ocf-section-review__description,
.ocf-section-review__meta {
    color: var(--ocf-body);
    font-size: var(--font-label-size);
}

.ocf-section-review__meta {
    align-self: end;
}

.ocf-section-review__sample {
    border-bottom: 1px solid var(--ocf-border-light);
}

.ocf-section-review__sample-label {
    position: sticky;
    top: 0;
    z-index: 20;
    padding: 0.75rem 0;
    background: var(--ocf-bg);
    border-top: 1px solid var(--ocf-border-light);
    border-bottom: 1px solid var(--ocf-border-light);
}

.ocf-section-review__sample-label .container-global {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.ocf-section-review__sample-label span {
    color: var(--ocf-heading);
    font-weight: var(--font-weight-bold);
}

.ocf-section-review__sample-label code {
    padding: 0.35rem 0.5rem;
    background: var(--ocf-bg-alt);
    color: var(--ocf-label);
    font-size: var(--font-label-size);
}

.ocf-gradient-library {
    padding-block: var(--section-pad);
}

.ocf-gradient-library__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.ocf-gradient-card {
    display: grid;
    gap: 1rem;
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--card-radius);
    background: var(--ocf-bg);
    overflow: hidden;
}

.ocf-gradient-card__preview {
    min-height: clamp(11rem, 22vw, 16rem);
    display: grid;
    align-items: end;
    padding: 1rem;
    color: var(--ocf-heading-alt);
    background-size: cover;
    background-position: center;
}

.ocf-gradient-card__preview--dark,
.ocf-gradient-card__preview--primary,
.ocf-gradient-card__preview--mixed {
    color: var(--ocf-heading-alt);
}

.ocf-gradient-card__preview--soft,
.ocf-gradient-card__preview--light,
.ocf-gradient-card__preview--surface {
    color: var(--ocf-heading);
}

.ocf-gradient-card__sample {
    max-width: 24rem;
}

.ocf-gradient-card__sample strong,
.ocf-gradient-card__sample span {
    display: block;
}

.ocf-gradient-card__sample strong {
    font-family: var(--ocf-font-heading), system-ui, sans-serif;
    font-size: var(--font-h3-size);
    line-height: 1.1;
}

.ocf-gradient-card__sample span {
    margin-top: 0.35rem;
    opacity: 0.82;
    font-size: var(--font-label-size);
}

.ocf-gradient-card__body {
    display: grid;
    gap: 0.55rem;
    padding: 0 1rem 1rem;
}

.ocf-gradient-card__body h2 {
    margin: 0;
    color: var(--ocf-heading);
    font-size: var(--font-h3-size);
}

.ocf-gradient-card__body p {
    margin: 0;
    color: var(--ocf-body);
}

.ocf-gradient-card__body code {
    width: fit-content;
    padding: 0.35rem 0.5rem;
    background: var(--ocf-bg-alt);
    color: var(--ocf-label);
    font-size: var(--font-label-size);
}

@media (max-width: 900px) {
    .ocf-section-review__grid {
        grid-template-columns: 1fr;
    }

    .ocf-gradient-library__grid {
        grid-template-columns: 1fr;
    }

    .ocf-section-review__sample-label .container-global {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Recovered source: service-areas.css */
/* Section: Service Areas */
.ocf-service-areas {
    background: var(--ocf-bg);
    padding: 5rem 0;
}

.ocf-service-areas__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    align-items: center;
}

@media (min-width: 900px) {
    .ocf-service-areas__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
        gap: 4rem;
    }
}

.ocf-service-areas__map {
    overflow: hidden;
    border-radius: var(--radius);
    border: 1px solid var(--ocf-border-light);
    min-height: 360px;
    background: var(--ocf-bg-alt);
}

.ocf-service-areas__map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 360px;
    border: 0;
}

.ocf-service-areas__title {
    margin-bottom: 1rem;
}

.ocf-service-areas__text {
    color: var(--ocf-body);
    font-size: var(--text-lg);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.ocf-service-areas__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-bottom: 1.75rem;
}

.ocf-service-areas__link {
    display: inline-flex;
    align-items: center;
    min-height: 2.5rem;
    padding: 0.65rem 0.9rem;
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--radius-sm);
    color: var(--ocf-heading);
    background: var(--ocf-bg-alt);
    font-size: var(--text-sm);
    font-weight: 600;
    text-decoration: none;
}

a.ocf-service-areas__link:hover {
    border-color: var(--ocf-accent);
    color: var(--ocf-accent);
}

/* Recovered source: services.css */
/* ─── Services: slider + grid cards ─── */

.ocf-services {
    background: var(--ocf-bg-alt);
    overflow: hidden;
}

.ocf-services--grid .ocf-services-heading {
    width: min(100%, 46rem);
}

/* Header */
.ocf-services-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2.5rem;
}

.ocf-services-header .eyebrow { color: var(--ocf-label); }
.ocf-services-header .heading-section {
    color: var(--ocf-heading);
    letter-spacing: -0.02em;
}

.ocf-services-heading {
    width: 65%;
    max-width: 58rem;
}

@media (max-width: 767px) {
    .ocf-services-heading {
        width: 100%;
    }
}

.ocf-svc-nav {
    display: flex;
    gap: 0.375rem;
    flex-shrink: 0;
}

.ocf-svc-nav button {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    border: 1px solid var(--ocf-border-light);
    background: var(--ocf-bg);
    color: var(--ocf-heading);
    cursor: pointer;
    transition: all var(--duration) ease;
}

.ocf-svc-nav button:hover:not(:disabled) {
    background: var(--ocf-accent);
    border-color: var(--ocf-accent);
    color: var(--ocf-heading-alt);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--ocf-accent) 30%, transparent);
}

.ocf-svc-nav button:disabled {
    opacity: 0.2;
    cursor: default;
}

.ocf-svc-nav button svg {
    width: 1rem;
    height: 1rem;
}

/* ─── Slider viewport ─── */

.ocf-svc-viewport {
    overflow: hidden;
}

.ocf-svc-track {
    display: flex;
    gap: 1.25rem;
    transition: transform 0.5s var(--ease);
    cursor: grab;
}

.ocf-svc-track:active { cursor: grabbing; }

/* Card sizing — exactly 3 visible on desktop, 2 tablet, 1 mobile */
.ocf-svc-track .ocf-svc-card {
    flex: 0 0 100%;
    min-width: 0;
}

@media (min-width: 640px) {
    .ocf-svc-track .ocf-svc-card {
        flex: 0 0 calc((100% - 1.25rem) / 2);
    }
}

@media (min-width: 1024px) {
    .ocf-svc-track .ocf-svc-card {
        flex: 0 0 calc((100% - 2.5rem) / 3);
    }
}

/* ─── Static grid (services page) ─── */

.ocf-svc-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .ocf-svc-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
    .ocf-svc-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ─── Card design ─── */

.ocf-svc-card {
    display: flex;
    flex-direction: column;
    border-radius: var(--card-radius);
    background: var(--ocf-bg);
    overflow: hidden;
    text-decoration: none;
    border: var(--card-border-width) solid var(--card-border-color);
    box-shadow: var(--card-shadow);
    transition: all 0.4s var(--ease);
}

.ocf-svc-card:hover {
    border-color: var(--ocf-accent);
    box-shadow: var(--card-shadow-hover);
    transform: var(--card-transform-hover);
}

/* Image area */
.ocf-svc-card-img {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: color-mix(in srgb, var(--ocf-bg-dark) 60%, var(--ocf-bg));
}

.ocf-svc-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s var(--ease);
}

.ocf-svc-card:hover .ocf-svc-card-img img {
    transform: scale(1.06);
}

.ocf-svc-card-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--ocf-heading) 5%, var(--ocf-bg-alt)),
        var(--ocf-bg-alt)
    );
}

/* Text area */
.ocf-svc-card-body {
    position: relative;
    padding: 1.25rem 1.5rem 1.125rem;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    flex: 1;
}

.ocf-svc-card-body h3 {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--ocf-heading);
    padding-right: 2.25rem;
    line-height: 1.3;
    letter-spacing: -0.01em;
    transition: color var(--duration) ease;
}

.ocf-svc-card:hover .ocf-svc-card-body h3 {
    color: var(--ocf-accent);
}

.ocf-svc-card-body p {
    font-size: var(--text-sm);
    line-height: 1.6;
    color: var(--ocf-body);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    opacity: 0.85;
}

/* Arrow */
.ocf-svc-arrow {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    width: 1.75rem;
    height: 1.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ocf-border);
    border-radius: var(--radius-sm);
    transition: all var(--duration) var(--ease);
}

.ocf-svc-arrow svg {
    width: 1.125rem;
    height: 1.125rem;
}

.ocf-svc-card:hover .ocf-svc-arrow {
    color: var(--ocf-accent);
    background: color-mix(in srgb, var(--ocf-accent) 8%, transparent);
    transform: translate(2px, -2px);
}

.ocf-services-footer {
    text-align: center;
    margin-top: 2rem;
}

/* Recovered source: testimonials.css */
/* ─── Testimonials: dark contrast section ─── */

.ocf-testimonials {
    position: relative;
    background: var(--ocf-bg-alt);
    overflow: hidden;
}

.ocf-testimonials .eyebrow { color: var(--ocf-label); }
.ocf-testimonials .heading-section { color: var(--ocf-heading); }

.ocf-testimonials-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.ocf-testimonials-heading {
    width: 65%;
    max-width: 58rem;
    min-width: 0;
}

@media (max-width: 767px) {
    .ocf-testimonials-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .ocf-testimonials-heading {
        width: 100%;
    }
}

.ocf-testimonial-viewport {
    overflow: hidden;
}

.ocf-testimonial-track {
    display: flex;
    gap: 1.25rem;
    align-items: stretch;
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform;
}

.ocf-testimonial-card {
    flex: 0 0 100%;
    min-width: 0;
    min-height: clamp(11.5rem, 17vw, 14.25rem);
    background: var(--ocf-bg);
    border: var(--card-border-width) solid var(--card-border-color);
    border-radius: var(--card-radius);
    padding: 2rem;
    display: flex;
    flex-direction: column;
    position: relative;
    box-shadow: var(--card-shadow);
    transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.ocf-testimonial-card:hover {
    border-color: color-mix(in srgb, var(--ocf-accent) 28%, var(--ocf-border-light));
    box-shadow: var(--card-shadow-hover);
    transform: var(--card-transform-hover);
}

@media (min-width: 640px) {
    .ocf-testimonial-card {
        flex: 0 0 calc(50% - 0.625rem);
        padding: 2.25rem;
    }
}

@media (min-width: 1024px) {
    .ocf-testimonial-card { flex: 0 0 calc(33.333% - 0.833rem); }
}

.testimonial-quote-mark {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: 3.5rem;
    line-height: 1;
    color: var(--ocf-accent);
    margin-bottom: 0.5rem;
}

.ocf-testimonial-card blockquote {
    font-size: var(--text-base);
    line-height: 1.75;
    color: var(--ocf-body);
    flex: 1;
    margin: 0 0 1.5rem;
    font-style: normal;
    overflow-wrap: anywhere;
}

.testimonial-more-wrap {
    display: inline-block;
    position: relative;
}

.testimonial-more-trigger {
    display: inline;
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--ocf-heading);
    font: inherit;
    font-weight: 700;
    line-height: inherit;
    padding: 0 0.125rem;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.testimonial-review-popover {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.75rem);
    z-index: 8;
    display: block;
    width: min(24rem, calc(100vw - 3rem));
    max-height: 15rem;
    overflow-y: auto;
    padding: 1rem;
    background: var(--ocf-bg);
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow);
    color: var(--ocf-body);
    font-size: var(--text-sm);
    line-height: 1.6;
    text-align: left;
    white-space: normal;
    transform: translate(-50%, 0.5rem);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
}

.testimonial-more-wrap:hover .testimonial-review-popover,
.testimonial-more-wrap:focus-within .testimonial-review-popover {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.ocf-testimonial-footer {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--ocf-border-light);
}

.testimonial-avatar {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--radius-full);
    background: var(--ocf-accent);
    color: var(--ocf-heading-alt);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: var(--text-sm);
    flex-shrink: 0;
}

.ocf-testimonial-footer strong {
    display: block;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ocf-heading);
}

.ocf-testimonial-footer span {
    display: block;
    font-size: var(--text-xs);
    color: var(--ocf-body);
    margin-top: 0.125rem;
}

.ocf-testimonial-nav {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
    margin-left: auto;
}

@media (max-width: 767px) {
    .ocf-testimonial-nav {
        margin-left: 0;
    }
}

.ocf-testimonial-nav button {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ocf-bg);
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--radius-full);
    color: var(--ocf-heading);
    cursor: pointer;
    transition: all var(--duration) ease;
}

.ocf-testimonial-nav button:hover {
    background: var(--ocf-accent);
    border-color: var(--ocf-accent);
    color: var(--ocf-heading-alt);
}

.ocf-testimonial-nav button svg {
    width: 1rem;
    height: 1rem;
}


.ocf-areas .btn-ghost {
    background-color: transparent;
    color: var(--ocf-heading);
    border-color: var(--ocf-border-light);
}

.ocf-areas .btn-ghost:hover {
    background-color: color-mix(in srgb, var(--ocf-heading) 5%, transparent);
    border-color: var(--ocf-heading);
}

/* Recovered source: trust-stats.css */
/* Section: Trust statistics */

.trust-stats {
    background: var(--ocf-bg);
    border-top: 1px solid color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
}

.trust-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: color-mix(in srgb, var(--ocf-border-light) 6%, transparent);
}

@media (min-width: 1024px) {
    .trust-stats-grid { grid-template-columns: repeat(4, 1fr); }
}

.trust-stat {
    background: var(--ocf-bg);
    padding: 2rem;
    text-align: center;
}

@media (min-width: 640px) {
    .trust-stat { padding: 3rem; }
}

.trust-stat-value {
    font-family: var(--ocf-font-heading), Georgia, serif;
    font-size: var(--text-4xl);
    font-weight: 600;
    color: var(--ocf-heading);
    line-height: 1;
    letter-spacing: -0.02em;
}

.trust-stat-label {
    margin-top: 0.5rem;
    font-size: var(--text-xs);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--ocf-body);
}

/* Lightning 2.0 compatibility aliases for markup renamed after Base3. */
.ocf-hero__headline {
    color: var(--ocf-heading-alt);
    margin-bottom: 1.35rem;
    font-size: var(--text-hero);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.025em;
}
.ocf-hero__headline span { display: block; }
.ocf-hero__intro {
    max-width: 680px;
    margin: 0 0 2rem;
    color: var(--ocf-body-alt);
    font-size: clamp(1.05rem, 1.8vw, 1.35rem);
    line-height: 1.75;
}
.ocf-hero__eyebrow,
.ocf-hero__checks,
.ocf-hero__scroll-cue {
    display: none;
}
.ocf-hero__google-icon {
    display: none;
}
.ocf-hero__form {
    align-self: center;
    margin-top: 0;
}
.ocf-form-secure-note {
    margin: 0.8rem 0 0;
    color: var(--ocf-body);
    font-size: var(--text-xs);
}
.ocf-form-secure-note svg {
    width: 0.85rem;
    height: 0.85rem;
}
@media (max-width: 1023px) {
    body { padding-top: var(--ocf-nav-height-mobile, 5rem); }
    .nav-inner { height: var(--ocf-nav-height-mobile, 5rem); }
}
@media (min-width: 1024px) {
    body { padding-top: var(--ocf-nav-height, 6rem); }
    .nav-inner { height: var(--ocf-nav-height, 6rem); }
    .ocf-hero { margin-top: calc(-1 * var(--ocf-nav-height, 6rem)); }
    .ocf-hero__grid {
        grid-template-columns: minmax(0, 1.1fr) minmax(360px, 420px);
    }
}

/* Pacific header port.
 *
 * Base keeps its original page art direction, while the global navigation uses
 * Pacific's compact sizing, spacing, interaction, and responsive behavior.
 */
:root {
    --nav-height: var(--ocf-nav-height, 5rem);
}

body {
    padding-top: calc(var(--nav-height) + var(--wp-admin-bar-gap, 0px));
}

.nav-bar {
    position: fixed;
    inset: calc(var(--wp-admin-bar-offset, 0px) + var(--wp-admin-bar-gap, 0px)) 0 auto;
    z-index: 100;
    border-bottom: 1px solid var(--ocf-border-light);
    background: var(--ocf-bg);
}

.nav-inner {
    display: flex;
    min-height: var(--nav-height);
    height: auto;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.nav-logo {
    min-width: 0;
    max-width: min(22rem, 31vw);
    margin-right: 0;
    color: var(--ocf-heading);
    font-family: var(--ocf-font-heading), system-ui, sans-serif;
    font-size: clamp(1rem, 1.5vw, 1.35rem);
    font-weight: var(--font-weight-bold);
    letter-spacing: -0.02em;
}

.nav-logo:hover {
    color: var(--ocf-heading);
}

.nav-logo-img {
    --ocf-nav-logo-height-large: 5.0625rem;
    --ocf-nav-logo-height-mid: 4.2rem;
    --ocf-nav-logo-height-mobile: 4.125rem;

    width: auto;
    height: auto;
    max-height: 3.75rem;
}

.nav-logo-text {
    overflow: hidden;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nav-links {
    display: flex;
    align-items: center;
    gap: clamp(1rem, 1.7vw, 1.6rem);
    margin: 0;
    color: var(--ocf-heading);
    font-size: 0.9375rem;
}

.nav-link,
.nav-dropdown-trigger {
    position: relative;
    color: var(--ocf-heading);
    font-size: 0.9375rem;
    font-weight: var(--font-weight-semibold);
    letter-spacing: 0;
    text-transform: none;
}

.nav-link {
    padding-block: 0.75rem;
}

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

.nav-link::after,
.nav-dropdown-trigger::after {
    position: absolute;
    right: 0;
    bottom: 0.4rem;
    left: 0;
    width: auto;
    height: 2px;
    background: var(--ocf-primary);
    content: '';
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left;
    transition: opacity var(--duration) var(--ease), transform var(--duration) var(--ease);
}

.nav-link:hover::after,
.nav-dropdown-trigger:hover::after,
.nav-link:focus-visible::after,
.nav-dropdown-trigger:focus-visible::after {
    width: auto;
    opacity: 1;
    transform: scaleX(1);
}

.nav-right {
    gap: 0.75rem;
    margin-left: 0;
}

.nav-phone {
    gap: 0.4rem;
    color: var(--ocf-heading);
    font-size: 0.9rem;
    font-weight: var(--font-weight-bold);
}

.nav-phone:hover {
    color: var(--ocf-heading);
}

.nav-divider {
    width: 1px;
    height: 1.5rem;
    background: var(--ocf-border-light);
}

.nav-cta {
    display: inline-flex;
    min-height: 2.75rem;
    padding: 0.75rem 1.35rem;
    border: 1px solid color-mix(in srgb, var(--ocf-secondary) 52%, var(--ocf-primary));
    border-radius: 10px;
    background: linear-gradient(135deg, var(--ocf-primary) 0%, color-mix(in srgb, var(--ocf-primary) 82%, var(--ocf-bg-dark)) 100%);
    box-shadow: 0 0.5rem 1rem color-mix(in srgb, var(--ocf-primary) 16%, transparent);
    color: var(--ocf-primary-contrast);
    font-size: var(--font-button-size);
    font-weight: var(--font-weight-semibold);
    letter-spacing: 0;
    text-transform: none;
}

.nav-cta:hover {
    border-color: color-mix(in srgb, var(--ocf-secondary) 72%, var(--ocf-primary));
    background: linear-gradient(135deg, color-mix(in srgb, var(--ocf-primary) 88%, var(--ocf-heading)) 0%, var(--ocf-primary-hover) 100%);
    box-shadow: 0 0.8rem 1.45rem color-mix(in srgb, var(--ocf-primary) 24%, transparent);
    color: var(--ocf-primary-contrast);
    transform: translateY(-2px);
}

.nav-dropdown-panel {
    top: 100%;
    left: 0;
    min-width: 14rem;
    padding-top: 0;
    opacity: 0;
    visibility: visible;
    pointer-events: none;
    transform: translateY(0.5rem);
    transition: opacity var(--duration) var(--ease), transform var(--duration) var(--ease);
}

.nav-dropdown:hover .nav-dropdown-panel,
.nav-dropdown:focus-within .nav-dropdown-panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
}

.nav-dropdown-panel .dropdown-menu {
    display: grid;
    min-width: 14rem;
    gap: 0.25rem;
    padding: 0.5rem;
    border: 1px solid var(--ocf-border-light);
    border-radius: var(--card-radius);
    background: var(--ocf-bg);
    box-shadow: none;
    columns: auto;
}

.nav-dropdown-panel .dropdown-menu--wide {
    min-width: 18rem;
    columns: auto;
}

.dropdown-item {
    padding: 0.65rem 0.75rem;
    border-radius: 0;
    color: var(--ocf-heading);
    font-size: var(--font-label-size);
}

.mobile-menu {
    border-top: 1px solid var(--ocf-border-light);
    background: var(--ocf-bg);
}

.mobile-menu-inner {
    display: grid;
    gap: 0.25rem;
    padding: 1rem var(--container-pad);
}

.mobile-link,
.mobile-accordion-trigger {
    width: 100%;
    min-height: 0;
    justify-content: space-between;
    padding: 0.75rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--ocf-heading);
    font-size: var(--font-label-size);
    font-weight: var(--font-weight-semibold);
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
}

.mobile-accordion {
    border-bottom: 0;
}

.mobile-accordion-panel {
    padding: 0 0 0 1rem;
}

.mobile-accordion-panel a {
    min-height: 0;
    padding: 0.5rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--ocf-heading);
    font-size: var(--font-label-size);
    font-weight: var(--font-weight-regular);
}

.mobile-actions {
    gap: 0.75rem;
    margin-top: 0.75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--ocf-border-light);
}

.mobile-cta,
.mobile-phone {
    min-height: 3rem;
    border-radius: 10px;
    font-weight: var(--font-weight-bold);
}

.mobile-cta {
    background: var(--ocf-primary);
    color: var(--ocf-primary-contrast);
    letter-spacing: 0;
    text-transform: none;
}

.mobile-phone {
    border-color: var(--ocf-border-light);
    background: var(--ocf-bg);
}

@media (min-width: 1200px) {
    .nav-links,
    .nav-link,
    .nav-dropdown-trigger,
    .nav-phone,
    .nav-phone span,
    .nav-cta {
        font-size: 1.0625rem;
    }

    .nav-phone svg {
        width: 1rem;
        height: 1rem;
    }
}

@media (max-width: 980px) {
    :root {
        --nav-height: var(--ocf-nav-height-mobile, 4.5rem);
    }

    .nav-logo {
        max-width: min(18rem, 70vw);
    }

    .nav-logo-img {
        height: auto;
        max-height: 3.25rem;
    }

    .nav-links,
    .nav-phone,
    .nav-divider,
    .nav-cta {
        display: none;
    }

    .nav-mobile-btn {
        display: inline-flex;
    }

    .mobile-menu {
        max-height: calc(100vh - var(--wp-admin-bar-offset, 0px) - var(--wp-admin-bar-gap, 0px) - var(--nav-height));
    }

    @supports (height: 100dvh) {
        .mobile-menu {
            max-height: calc(100dvh - var(--wp-admin-bar-offset, 0px) - var(--wp-admin-bar-gap, 0px) - var(--nav-height));
        }
    }
}

@media (min-width: 981px) {
    .nav-links,
    .nav-phone {
        display: flex;
    }

    .nav-divider {
        display: block;
    }

    .nav-cta {
        display: inline-flex;
    }

    .nav-mobile-btn,
    .mobile-menu {
        display: none !important;
    }
}

/* OCF-MANAGED:START base-hero-image-split */
.ocf-hero.ocf-hero--image-split {
    min-height: min(820px, calc(100vh - var(--ocf-nav-height, 5rem)));
    color: var(--ocf-heading);
    background: var(--ocf-bg);
}

.ocf-hero--image-split .ocf-hero__grid {
    max-width: 1440px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(2.5rem, 4vw, 4rem);
}

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

.ocf-hero--image-split .ocf-hero__rating {
    color: var(--ocf-body);
}

.ocf-hero--image-split .ocf-hero__rating-value,
.ocf-hero--image-split .ocf-hero__headline {
    color: var(--ocf-heading);
}

.ocf-hero--image-split .ocf-hero__intro {
    color: var(--ocf-body);
}

.ocf-hero--image-split .ocf-hero__visual {
    width: 100%;
    aspect-ratio: 1 / 1;
    align-self: center;
    overflow: hidden;
    border-radius: var(--image-radius, var(--radius-lg));
    background: var(--ocf-bg-alt);
    box-shadow: var(--image-shadow, var(--shadow));
}

.ocf-hero--image-split .ocf-hero__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 979px) {
    .ocf-hero.ocf-hero--image-split { min-height: auto; }
    .ocf-hero--image-split .ocf-hero__grid { grid-template-columns: 1fr; }
    .ocf-hero--image-split .ocf-hero__visual {
        max-width: 680px;
        aspect-ratio: 16 / 10;
    }
}
/* OCF-MANAGED:END base-hero-image-split */

/* OCF-MANAGED:START alignwell-home-backgrounds */
body.home,
body.home main,
body.home [data-ocf-section="hero"],
body.home [data-ocf-section="services"],
body.home [data-ocf-section="about"],
body.home [data-ocf-section="commitments"],
body.home [data-ocf-section="testimonials"],
body.home [data-ocf-section="gallery"],
body.home [data-ocf-section="service-areas"],
body.home [data-ocf-section="faq"] {
  background-color: var(--ocf-bg);
}
/* OCF-MANAGED:END alignwell-home-backgrounds */

/* OCF-MANAGED:START alignwell-roofinger-hero */
/* AlignWell site-only hero direction selected from the section design board. */
.nav-logo-text {
  display: block;
}

/* Above the fold stays completely still on the homepage. */
body.home :is(
  #main-nav,
  #main-nav *,
  #hero,
  #hero *
),
body.home :is(
  #main-nav,
  #main-nav *,
  #hero,
  #hero *
)::before,
body.home :is(
  #main-nav,
  #main-nav *,
  #hero,
  #hero *
)::after {
  animation: none !important;
  transition: none !important;
  transition-delay: 0s !important;
}

body.home #hero :is(
  .reveal,
  .reveal-delay-1,
  .reveal-delay-2,
  .reveal-delay-3,
  .reveal-delay-4
) {
  opacity: 1 !important;
  transform: none !important;
}

body.home #hero .ocf-hero__visual img,
body.home #hero :is(.btn-primary, .btn-secondary, .ocf-hero__phone),
body.home #main-nav :is(.nav-link, .nav-dropdown-trigger, .nav-cta) {
  transform: none !important;
}

body.home .ocf-hero.ocf-hero--image-split {
  position: relative;
  min-height: min(61rem, calc(100svh - clamp(1rem, 2vw, 2rem)));
  margin: clamp(0.75rem, 1.8vw, 1.75rem);
  overflow: hidden;
  border-radius: var(--card-radius-lg);
  background: var(--ocf-bg-dark);
  color: var(--ocf-heading-alt);
}

body.home .ocf-hero--image-split .ocf-hero__grid {
  position: relative;
  display: block;
  width: 100%;
  max-width: none;
  min-height: inherit;
  padding: 0;
}

body.home .ocf-hero--image-split .ocf-hero__visual {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  aspect-ratio: auto;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--ocf-bg-dark);
  box-shadow: none;
}

body.home .ocf-hero--image-split .ocf-hero__visual::after {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--ocf-bg-dark) 96%, transparent) 0%,
      color-mix(in srgb, var(--ocf-bg-dark) 78%, transparent) 25%,
      color-mix(in srgb, var(--ocf-bg-dark) 22%, transparent) 47%,
      transparent 66%
    );
  content: '';
  pointer-events: none;
}

body.home .ocf-hero--image-split .ocf-hero__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  filter: brightness(1.07) saturate(1.02);
}

body.home .ocf-hero--image-split .ocf-hero__content {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: inherit;
  max-width: 56rem;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  padding: clamp(12rem, 20vh, 15rem) clamp(2rem, 5vw, 5rem) clamp(4rem, 8vh, 6.5rem);
}

body.home .ocf-hero--image-split .ocf-hero__rating {
  gap: 0.55rem;
  margin-bottom: clamp(1.75rem, 3.4vh, 2.75rem);
  color: var(--ocf-body-alt);
  font-size: clamp(1rem, 1.1vw, 1.05rem);
}

body.home .ocf-hero--image-split .ocf-hero__google-icon,
body.home .ocf-hero--image-split .ocf-hero__eyebrow,
body.home .ocf-hero--image-split .ocf-hero__checks,
body.home .ocf-hero--image-split .ocf-hero__scroll-cue,
body.home .ocf-hero--image-split .btn-primary svg {
  display: none;
}

body.home .nav-dropdown-chevron {
  display: block;
  width: 0.8rem;
  height: 0.8rem;
  flex: 0 0 auto;
}

body.home .ocf-hero--image-split .ocf-hero__rating-value {
  color: var(--ocf-heading-alt);
}

body.home .ocf-hero--image-split .ocf-hero__headline {
  max-width: 15.5ch;
  margin: 0;
}

body.home .ocf-hero--image-split .ocf-hero__headline span {
  display: block;
}

body.home .ocf-hero--image-split .ocf-hero__intro {
  max-width: 42rem;
  margin: clamp(1.5rem, 3vh, 2.5rem) 0 0;
  color: var(--ocf-body-alt);
  font-size: clamp(1.05rem, 1.35vw, 1.25rem);
  line-height: 1.55;
}

body.home .ocf-hero--image-split .ocf-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem 1.75rem;
  align-items: center;
  margin-top: clamp(2rem, 3.8vh, 3rem);
}

body.home .ocf-hero--image-split .ocf-hero__actions .btn-primary {
  min-height: 3.75rem;
  padding-inline: clamp(1.5rem, 2.5vw, 2.35rem);
  border-radius: 0.6rem;
  font-size: 1rem;
  letter-spacing: normal;
  text-transform: none;
}

body.home .ocf-hero.ocf-hero--image-split .ocf-hero__phone {
  color: var(--ocf-heading-alt);
  font-size: clamp(1rem, 1.25vw, 1.2rem);
  font-weight: 600;
  white-space: nowrap;
}

body.home .ocf-hero.ocf-hero--image-split .ocf-hero__phone:hover {
  color: var(--ocf-heading-alt);
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

@media (min-width: 981px) {
  body.home {
    padding-top: 0;
  }

  body.home .nav-bar {
    position: absolute;
    inset: calc(var(--wp-admin-bar-offset, 0px) + clamp(0.75rem, 1.8vw, 1.75rem)) clamp(0.75rem, 1.8vw, 1.75rem) auto;
    z-index: 100;
    border: 0;
    background: transparent;
  }

  body.home .nav-bar > .container-global {
    width: min(calc(100% - 4rem), var(--container-max));
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: 0;
  }

  body.home .nav-inner {
    display: grid;
    min-height: 6.25rem;
    grid-template-columns: minmax(13rem, 1fr) auto auto;
    gap: clamp(2rem, 3.25vw, 3.75rem);
    align-items: start;
  }

  body.home .nav-logo,
  body.home .nav-right {
    padding-top: 1.65rem;
  }

  body.home .nav-logo {
    max-width: 16rem;
    color: var(--ocf-heading-alt);
    font-size: clamp(1.25rem, 1.55vw, 1.55rem);
    font-weight: 700;
    line-height: 1.03;
    white-space: normal;
  }

  body.home .nav-logo:hover {
    color: var(--ocf-heading-alt);
  }

  body.home .nav-logo-text {
    max-width: 10ch;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }

  body.home .nav-logo-img {
    max-width: 13rem;
    max-height: 3.5rem;
    object-fit: contain;
    object-position: left center;
  }

  body.home .nav-links {
    position: relative;
    isolation: isolate;
    display: flex;
    min-height: 5.2rem;
    gap: clamp(2rem, 2.7vw, 3rem);
    align-items: center;
    justify-content: flex-end;
    padding: 1.15rem clamp(1.5rem, 2.5vw, 2.5rem) 1.55rem;
    margin-top: calc(clamp(0.75rem, 1.8vw, 1.75rem) * -1);
    border-radius: 0;
    background: transparent;
    color: var(--ocf-heading);
  }

  body.home .nav-links::before {
    position: absolute;
    z-index: -1;
    inset: 0 -2.5rem;
    width: auto;
    height: auto;
    background: var(--ocf-bg);
    clip-path: polygon(0 0, 100% 0, 94% 100%, 6% 100%);
    content: '';
    pointer-events: none;
  }

  body.home .nav-links::after {
    display: none;
  }

  body.home .ocf-hero--image-split .ocf-hero__visual img {
    width: 112%;
    max-width: none;
    object-position: left center;
  }

  body.home .nav-link,
  body.home .nav-dropdown-trigger {
    position: relative;
    color: var(--ocf-heading);
    font-size: 1.075rem;
    font-weight: 500;
  }

  body.home .nav-dropdown-trigger {
    gap: 0.45rem;
  }

  body.home .nav-link::after,
  body.home .nav-dropdown-trigger::after {
    position: absolute;
    right: 0;
    bottom: 0.3rem;
    left: 0;
    height: 2px;
    background: var(--ocf-primary);
    content: '';
    opacity: 0;
  }

  body.home .nav-link:hover::after,
  body.home .nav-link:focus-visible::after,
  body.home .nav-dropdown:hover .nav-dropdown-trigger::after,
  body.home .nav-dropdown-trigger:focus-visible::after {
    opacity: 1;
  }

  body.home .nav-right {
    justify-content: flex-end;
  }

  body.home .nav-phone,
  body.home .nav-divider {
    display: none;
  }

  body.home .nav-cta {
    min-width: 8.5rem;
    min-height: 3.4rem;
    justify-content: center;
    padding-inline: 1.5rem;
    border: 0;
    border-radius: 0.6rem;
    background: var(--ocf-primary);
    box-shadow: none;
    color: var(--ocf-primary-contrast);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: normal;
    text-transform: none;
  }

  body.home .nav-cta:hover {
    border: 0;
    background: var(--ocf-primary-hover);
    box-shadow: none;
  }
}

@media (max-width: 980px) {
  body.home .ocf-hero.ocf-hero--image-split {
    min-height: min(52rem, calc(100svh - var(--nav-height) - 1rem));
    margin: 0.5rem;
  }

  body.home .ocf-hero--image-split .ocf-hero__content {
    min-height: inherit;
    padding: clamp(5rem, 12vh, 7rem) clamp(1.5rem, 6vw, 3.5rem) 3.5rem;
  }

  body.home .ocf-hero--image-split .ocf-hero__visual::after {
    background: linear-gradient(90deg, color-mix(in srgb, var(--ocf-bg-dark) 92%, transparent), color-mix(in srgb, var(--ocf-bg-dark) 48%, transparent));
  }

  body.home .nav-logo-text {
    color: var(--ocf-heading);
  }
}

@media (max-width: 600px) {
  body.home .ocf-hero--image-split .ocf-hero__content {
    justify-content: flex-end;
    padding: 7rem 1.35rem 2rem;
  }

  body.home .ocf-hero--image-split .ocf-hero__rating {
    margin-bottom: 1.25rem;
  }

  body.home .ocf-hero--image-split .ocf-hero__intro {
    font-size: 1rem;
  }

  body.home .ocf-hero--image-split .ocf-hero__actions {
    display: grid;
    width: 100%;
  }

  body.home .ocf-hero--image-split .ocf-hero__actions .btn-primary {
    width: 100%;
  }
}

/* Selected variation 2: bright photo stage with a floating editorial card. */
body.home .ocf-hero.ocf-hero--image-split {
  box-sizing: border-box;
  width: 100%;
  min-height: min(56rem, calc(100svh - 6.5rem));
  margin: 0;
  border-radius: 0;
  background: var(--ocf-bg-alt);
  color: var(--ocf-body);
}

body.home .ocf-hero--image-split .ocf-hero__grid {
  position: static;
  display: flex;
  width: min(calc(100% - (var(--container-pad) * 2)), var(--container-max));
  max-width: var(--container-max);
  align-items: center;
  padding: 0;
  margin-inline: auto;
}

body.home .ocf-hero--image-split .ocf-hero__visual::after {
  background: none;
}

body.home .ocf-hero--image-split .ocf-hero__visual img {
  width: 100%;
  max-width: 100%;
  object-position: center center;
  filter: none;
}

/* Shared primary-blue wash used as a barely-there overlay on the split hero photo. */
body.home .ocf-hero--image-split .ocf-hero__visual.ocf-primary-wash-overlay::after {
  background:
    radial-gradient(
      circle at 92% 2%,
      color-mix(in srgb, var(--ocf-primary) 8%, transparent) 0%,
      color-mix(in srgb, var(--ocf-primary) 4%, transparent) 34%,
      transparent 72%
    ),
    radial-gradient(
      circle at 7% 96%,
      color-mix(in srgb, var(--ocf-primary) 3%, transparent) 0%,
      transparent 54%
    );
}

body.home .ocf-hero--image-split .ocf-hero__content {
  box-sizing: border-box;
  width: min(44rem, 70vw);
  min-height: 0;
  max-width: min(44rem, 70vw);
  justify-content: center;
  padding: clamp(3rem, 5vw, 5rem) clamp(2.75rem, 4.5vw, 4.5rem);
  margin: 0;
  border: 1px solid color-mix(in srgb, var(--ocf-bg) 70%, transparent);
  border-radius: var(--card-radius-lg);
  background: color-mix(in srgb, var(--ocf-bg) 84%, transparent);
  box-shadow: 0 1.25rem 3rem color-mix(in srgb, var(--ocf-bg-dark) 14%, transparent);
  color: var(--ocf-body);
  -webkit-backdrop-filter: blur(6px) saturate(105%);
  backdrop-filter: blur(6px) saturate(105%);
}

body.home .ocf-hero--image-split .ocf-hero__rating {
  margin-bottom: clamp(1.75rem, 3vh, 2.5rem);
  color: var(--ocf-body);
}

body.home .ocf-hero--image-split .ocf-hero__rating-value {
  color: var(--ocf-heading);
}

body.home .ocf-hero--image-split .ocf-hero__headline {
  max-width: 100%;
}

body.home .ocf-hero--image-split .ocf-hero__headline span {
  white-space: normal;
}

body.home .ocf-hero--image-split .ocf-hero__headline::after {
  display: block;
  width: 8rem;
  height: 2px;
  margin-top: clamp(1rem, 1.5vw, 1.5rem);
  background: color-mix(in srgb, var(--ocf-secondary) 45%, var(--ocf-bg-alt));
  content: '';
}

body.home .ocf-hero--image-split .ocf-hero__intro {
  max-width: 37rem;
  margin-top: clamp(1rem, 1.5vw, 1.5rem);
  color: var(--ocf-body);
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  line-height: 1.62;
}

body.home .ocf-hero--image-split .ocf-hero__actions {
  margin-top: clamp(2rem, 3vw, 2.75rem);
}

body.home .ocf-hero.ocf-hero--image-split .ocf-hero__phone,
body.home .ocf-hero.ocf-hero--image-split .ocf-hero__phone:hover {
  color: var(--ocf-heading);
}

@media (min-width: 640px) {
  body.home .ocf-hero--image-split .ocf-hero__grid {
    padding: 0;
  }
}

@media (min-width: 1024px) {
  body.home .ocf-hero--image-split .ocf-hero__grid {
    padding: 0;
  }
}

@media (min-width: 981px) {
  body.home {
    padding-top: 0;
  }

  body.home .nav-bar {
    position: relative;
    inset: auto;
    border-bottom: 1px solid var(--ocf-border-light);
    background: var(--ocf-bg);
  }

  body.home .ocf-hero.ocf-hero--image-split {
    width: 100%;
    min-height: min(56rem, calc(100svh - 6.5rem));
    margin: 0;
    border-radius: 0;
  }

  body.home .nav-bar > .container-global {
    width: min(calc(100% - 4rem), var(--container-max));
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: 0;
  }

  body.home .nav-inner {
    display: grid;
    min-height: 6.5rem;
    grid-template-columns: minmax(12rem, 1fr) auto minmax(10rem, 1fr);
    gap: clamp(2rem, 4vw, 4rem);
    align-items: center;
  }

  body.home .nav-logo,
  body.home .nav-right {
    padding-top: 0;
  }

  body.home .nav-logo,
  body.home .nav-logo:hover {
    max-width: 16rem;
    color: var(--ocf-heading);
  }

  body.home .nav-logo-text {
    max-width: 10ch;
    color: var(--ocf-heading);
  }

  body.home .nav-links {
    isolation: auto;
    min-height: 0;
    gap: clamp(2rem, 3vw, 3.5rem);
    padding: 0;
    margin: 0;
    background: transparent;
  }

  body.home .nav-links::before,
  body.home .nav-links::after {
    display: none;
  }

  body.home .nav-right {
    justify-content: flex-end;
  }

  body.home .ocf-hero--image-split .ocf-hero__visual img {
    width: 112%;
    max-width: none;
    object-position: left center;
  }

  body.home .nav-phone,
  body.home .nav-divider {
    display: none;
  }
}

@media (max-width: 980px) {
  body.home .ocf-hero.ocf-hero--image-split {
    width: 100%;
    min-height: 0;
    margin: 0;
    border-radius: 0;
    background: var(--ocf-bg);
  }

  body.home .ocf-hero--image-split .ocf-hero__grid {
    display: flex;
    width: 100%;
    max-width: none;
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    margin: 0;
  }

  body.home .ocf-hero--image-split .ocf-hero__visual {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    max-width: none;
    aspect-ratio: 16 / 10;
    order: 0;
  }

  body.home .ocf-hero--image-split .ocf-hero__content {
    width: 100%;
    min-height: 0;
    max-width: none;
    order: 1;
    padding: clamp(2.25rem, 6vw, 3.25rem) var(--container-pad) clamp(3rem, 8vw, 4rem);
    margin: 0;
    border: 0;
    border-radius: 0;
    background: var(--ocf-bg);
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  body.home .ocf-hero--image-split .ocf-hero__headline {
    max-width: 100%;
  }
}

@media (max-width: 600px) {
  body.home .ocf-hero.ocf-hero--image-split {
    min-height: 0;
  }

  body.home .ocf-hero--image-split .ocf-hero__visual {
    aspect-ratio: 1.45 / 1;
  }

  body.home .ocf-hero--image-split .ocf-hero__content {
    justify-content: flex-start;
    padding: 2rem var(--container-pad) 3rem;
  }

}

/* One global header: the inner-page header is the shared header on home too. */
@media (min-width: 981px) {
  body.home .nav-bar {
    position: relative;
    inset: auto;
    z-index: 20;
    border: 0;
    border-bottom: 1px solid var(--ocf-border-light);
    background: var(--ocf-bg);
  }

  body.home .nav-bar > .container-global {
    width: min(calc(100% - 4rem), var(--container-max));
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: 0;
  }

  body.home .nav-inner {
    min-height: 6.5rem;
    grid-template-columns: minmax(12rem, 1fr) auto auto;
    gap: clamp(2rem, 3.25vw, 3.75rem);
    align-items: center;
  }

  body.home .nav-logo,
  body.home .nav-right {
    padding-top: 0;
  }

  body.home .nav-logo,
  body.home .nav-logo:hover {
    color: var(--ocf-heading);
  }

  body.home .nav-links {
    isolation: auto;
    min-height: 0;
    gap: clamp(2rem, 2.7vw, 3rem);
    padding: 0;
    margin: 0;
    background: transparent;
  }

  body.home .nav-links::before,
  body.home .nav-links::after {
    display: none;
  }

  body.home .nav-phone,
  body.home .nav-divider {
    display: none;
  }
}

/* Inner image heroes always use the global light-on-image typography tokens. */
.ocf-page-header--image .ocf-page-header__headline,
.ocf-page-header--image .ocf-page-header__title {
  color: var(--ocf-heading-alt) !important;
}

.ocf-page-header--image .ocf-page-header__eyebrow,
.ocf-page-header--image .ocf-page-header__breadcrumb,
.ocf-page-header--image .ocf-page-header__breadcrumb a {
  color: var(--ocf-heading-alt) !important;
}

.ocf-page-header--image .ocf-page-header__subtitle {
  color: var(--ocf-body-alt) !important;
}

/* Generic inner-page headers use a slim, image-free contrast surface. */
#page-header.ocf-page-header {
  min-height: 0;
  background: var(--ocf-bg);
  color: var(--ocf-heading);
}

/* Reusable tonal inner-hero treatment: only the existing primary blue creates the wash. */
.ocf-inner-hero-gradient,
#page-header.ocf-page-header.ocf-inner-hero-gradient,
.single-service .ocf-service-detail-hero.ocf-inner-hero-gradient {
  background-color: var(--ocf-bg);
  background-image:
    radial-gradient(
      circle at 94% 4%,
      color-mix(in srgb, var(--ocf-primary) 8%, transparent) 0%,
      color-mix(in srgb, var(--ocf-primary) 4%, transparent) 34%,
      transparent 72%
    ),
    radial-gradient(
      circle at 7% 96%,
      color-mix(in srgb, var(--ocf-primary) 3%, transparent) 0%,
      transparent 54%
    );
}

/* Separate decorative dot grain; kept behind hero content and media. */
.ocf-inner-hero-grain {
  position: relative;
  isolation: isolate;
}

.ocf-inner-hero-grain::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.45;
  background-image: radial-gradient(
    circle,
    color-mix(in srgb, var(--ocf-primary) 30%, transparent) 0 1.25px,
    transparent 1.5px
  );
  background-size: 80px 48px;
  -webkit-mask-image: linear-gradient(135deg, transparent 28%, #000 52%, transparent 82%);
  mask-image: linear-gradient(135deg, transparent 28%, #000 52%, transparent 82%);
}

.ocf-inner-hero-grain > * {
  position: relative;
  z-index: 1;
}

#page-header.ocf-page-header::before,
#page-header.ocf-page-header .ocf-page-header__editor-image {
  display: none;
}

#page-header.ocf-page-header .ocf-page-header__inner {
  padding-block: clamp(2.5rem, 5vw, 5rem);
}

#page-header.ocf-page-header .ocf-page-header__content {
  width: 100%;
  max-width: none;
}

#page-header.ocf-page-header .ocf-page-header__eyebrow {
  display: none;
}

#page-header.ocf-page-header .ocf-page-header__headline,
#page-header.ocf-page-header .ocf-page-header__title {
  color: var(--ocf-heading) !important;
}

#page-header.ocf-page-header .ocf-page-header__subtitle {
  margin-top: 1rem;
  color: var(--ocf-body) !important;
}

#page-header.ocf-page-header .ocf-page-header__divider .divider {
  background: var(--ocf-heading);
  height: 2px;
}

@media (max-width: 600px) {
  #page-header.ocf-page-header .ocf-page-header__inner {
    padding-block: 2rem;
  }
}

/* The approved navigation is shared across every page; hero rules remain home-only. */
.nav-dropdown-chevron {
  display: block;
  width: 0.8rem;
  height: 0.8rem;
  flex: 0 0 auto;
}

@media (min-width: 981px) {
  body:not(.home) {
    padding-top: 0;
  }

  .nav-bar {
    position: relative;
    inset: auto;
    z-index: 20;
    border: 0;
    border-bottom: 1px solid var(--ocf-border-light);
    background: var(--ocf-bg);
  }

  .nav-bar > .container-global {
    width: min(calc(100% - 4rem), var(--container-max));
    max-width: var(--container-max);
    padding-inline: 0;
    margin-inline: auto;
  }

  .nav-inner {
    display: grid;
    min-height: 6.5rem;
    grid-template-columns: minmax(12rem, 1fr) auto auto;
    gap: clamp(2rem, 3.25vw, 3.75rem);
    align-items: center;
  }

  .nav-logo,
  .nav-logo:hover {
    max-width: 16rem;
    padding-top: 0;
    color: var(--ocf-heading);
  }

  .nav-logo-img,
  .nav-logo-img.nav-logo-img--placeholder {
    width: auto;
    max-width: 13rem;
    max-height: 3.5rem;
    object-fit: contain;
    object-position: left center;
  }

  .nav-logo-text {
    max-width: 10ch;
    color: var(--ocf-heading);
  }

  .nav-links {
    position: relative;
    isolation: auto;
    display: flex;
    min-height: 0;
    gap: clamp(2rem, 2.7vw, 3rem);
    align-items: center;
    justify-content: flex-end;
    padding: 0;
    margin: 0;
    background: transparent;
    color: var(--ocf-heading);
  }

  .nav-links::before,
  .nav-links::after {
    display: none;
  }

  .nav-dropdown-panel {
    z-index: 100;
  }

  .nav-link,
  .nav-dropdown-trigger {
    position: relative;
    color: var(--ocf-heading);
    font-size: 1.075rem;
    font-weight: 500;
  }

  .nav-dropdown-trigger {
    gap: 0.45rem;
  }

  .nav-link::after,
  .nav-dropdown-trigger::after {
    position: absolute;
    right: 0;
    bottom: 0.3rem;
    left: 0;
    height: 2px;
    background: var(--ocf-primary);
    content: '';
    opacity: 0;
  }

  .nav-link:hover::after,
  .nav-link:focus-visible::after,
  .nav-dropdown:hover .nav-dropdown-trigger::after,
  .nav-dropdown-trigger:focus-visible::after {
    opacity: 1;
  }

  .nav-right {
    justify-content: flex-end;
    padding-top: 0;
  }

  .nav-phone,
  .nav-divider {
    display: none;
  }

  .nav-cta {
    min-width: 8.5rem;
    min-height: 3.4rem;
    justify-content: center;
    padding-inline: 1.5rem;
    border: 0;
    border-radius: 0.6rem;
    background: var(--ocf-primary);
    box-shadow: none;
    color: var(--ocf-primary-contrast);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: normal;
    text-transform: none;
  }

  .nav-cta:hover {
    border: 0;
    background: var(--ocf-primary-hover);
    box-shadow: none;
  }
}
/* OCF-MANAGED:END alignwell-roofinger-hero */

/* OCF-MANAGED:START alignwell-home-section-width */
/* Canonical global layout and type primitives from Lightning 2.0 + Pacific. */
:root {
  --font-h1-size: var(--ocf-font-h1-size, clamp(34px, 5vw, 68px));
  --font-h2-size: var(--ocf-font-h2-size, clamp(28px, 3vw, 36px));
  --font-h3-size: var(--ocf-font-h3-size, 20px);
  --font-body-size: var(--ocf-font-body-size, 18px);
  --font-label-size: 16px;
  --font-button-size: 16px;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --container-max: 1300px;
  --container-pad: clamp(1rem, 4vw, 2rem);
  --section-pad: clamp(3rem, 8vw, 4rem);
  --grid-gap: 1.25rem;
}

body {
  font-family: var(--ocf-font-body), system-ui, sans-serif;
  font-size: var(--font-body-size);
  font-weight: var(--ocf-font-body-weight, var(--font-weight-medium));
  line-height: 1.6;
}

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

.section-padding {
  padding-block: var(--section-pad);
}

.heading-1,
.heading-2,
.heading-3 {
  margin: 0;
  color: var(--ocf-heading);
  font-family: var(--ocf-font-heading), system-ui, sans-serif;
  font-weight: var(--font-weight-bold);
  line-height: 1.08;
  letter-spacing: 0;
}

.heading-1 {
  font-size: var(--font-h1-size);
  font-weight: var(--ocf-font-h1-weight, var(--font-weight-bold));
}

.heading-2 {
  font-size: clamp(2rem, 3vw, 2.5rem);
  font-weight: var(--ocf-font-h2-weight, var(--font-weight-bold));
}

.heading-3 {
  font-size: var(--font-h3-size);
  font-weight: var(--ocf-font-h3-weight, var(--font-weight-bold));
}

.text-body,
.prose,
.page-content-body {
  color: var(--ocf-body);
  font-size: var(--font-body-size);
  font-weight: var(--ocf-font-body-weight, var(--font-weight-medium));
  line-height: 1.6;
}

.text-label {
  color: var(--ocf-label);
  font-size: var(--font-label-size);
  font-weight: var(--font-weight-semibold);
}

.eyebrow,
.ocf-about__eyebrow,
.ocf-difference__eyebrow,
.ocf-page-header__eyebrow,
.ocf-cta__eyebrow {
  color: var(--ocf-heading);
  font-size: var(--font-label-size);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
}
/* OCF-MANAGED:END alignwell-home-section-width */

/* OCF-MANAGED:START alignwell-selected-sections */
/* AlignWell site-only section directions approved from the design board. */
.ocf-svc-card-img {
  aspect-ratio: 3 / 2;
}

body.home {
  --alignwell-soft-surface: color-mix(in srgb, var(--ocf-bg-alt) 62%, var(--ocf-bg));
}

/* Keep large cards on the same 10px global radius as standard cards. */
body {
  --card-radius-lg: var(--card-radius);
}

body.home :is(
  #services,
  #about,
  #commitments,
  .ocf-testimonials,
  #gallery,
  #areas,
  #faq
) {
  background: var(--ocf-bg);
}

/* Services — image-led cards with a shared, consistent radius. */
body.home #services .ocf-services-header {
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

body.home #services .ocf-svc-viewport {
  padding: 0;
  margin: 0;
}

body.home #services .ocf-svc-track {
  --grid-gap: clamp(1rem, 1.8vw, 1.5rem);
}

body.home #services .ocf-svc-card {
  overflow: hidden;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius-lg);
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
  clip-path: none;
  box-shadow: var(--card-shadow);
}

body.home #services .ocf-svc-card:hover {
  border-color: var(--ocf-border-light);
  box-shadow: var(--card-shadow-hover);
  transform: translateY(-0.15rem);
}

body.home #services .ocf-svc-card-img {
  position: relative;
  aspect-ratio: 2 / 1;
  overflow: hidden;
  border-radius: 0;
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
}

body.home #services .ocf-svc-card-img::after {
  display: none;
}

body.home #services .ocf-svc-card-img img {
  height: 100%;
  object-fit: cover;
}

body.home #services .ocf-svc-card-body {
  display: grid;
  min-height: 0;
  grid-template-rows: auto auto auto;
  align-content: start;
  gap: clamp(0.7rem, 1.25vw, 1rem);
  padding: clamp(1.35rem, 2.1vw, 1.8rem);
  padding-bottom: clamp(0.75rem, 1.1vw, 1rem);
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body.home #services .ocf-svc-card-body h3 {
  font-size: clamp(1.15rem, 1.55vw, 1.35rem);
}

body.home #services .ocf-svc-card-body p {
  display: block;
  font-size: 1rem;
  overflow: visible;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
  text-overflow: clip;
}

body.home #services .ocf-svc-card-cta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: auto;
  margin-top: clamp(0.35rem, 0.8vw, 0.7rem);
  color: var(--ocf-heading);
}

body.home #services .ocf-svc-card-cta > span:first-child {
  display: none;
}

body.home #services .ocf-svc-arrow {
  display: inline-flex;
  width: 1.35rem;
  height: 1.35rem;
  color: var(--ocf-heading);
}

body.home #services .ocf-svc-arrow svg {
  width: 100%;
  height: 100%;
}

body.home #services .ocf-svc-card:hover .ocf-svc-arrow {
  background: transparent;
  color: var(--ocf-heading);
}

/* Use the Our Services arrow treatment consistently for every homepage slider. */
body.home :is(
  #services .ocf-svc-nav,
  #testimonials .ocf-testimonial-nav,
  #testimonials .ocf-testimonial-nav--mobile-only,
  #gallery .ocf-gallery-nav
) {
  display: flex;
  gap: 0.65rem;
}

body.home :is(
  #services .ocf-svc-nav,
  #testimonials .ocf-testimonial-nav,
  #testimonials .ocf-testimonial-nav--mobile-only,
  #gallery .ocf-gallery-nav
) button {
  display: inline-flex;
  width: 2.5rem;
  height: 2.5rem;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--ocf-border-light);
  border-radius: 999px;
  background: var(--ocf-bg);
  color: var(--ocf-heading);
  opacity: 1;
}

body.home :is(
  #services .ocf-svc-nav,
  #testimonials .ocf-testimonial-nav,
  #testimonials .ocf-testimonial-nav--mobile-only,
  #gallery .ocf-gallery-nav
) button svg {
  width: 1rem;
  height: 1rem;
}

body.home :is(
  #services .ocf-svc-nav,
  #testimonials .ocf-testimonial-nav,
  #testimonials .ocf-testimonial-nav--mobile-only,
  #gallery .ocf-gallery-nav
) button:hover:not(:disabled) {
  border-color: var(--ocf-border);
  background: transparent;
  color: var(--ocf-heading);
}

body.home :is(
  #services .ocf-svc-nav,
  #testimonials .ocf-testimonial-nav,
  #testimonials .ocf-testimonial-nav--mobile-only,
  #gallery .ocf-gallery-nav
) button:disabled {
  opacity: 0.2;
  cursor: default;
}

/* The services archive reuses the exact homepage service-card treatment. */
body.post-type-archive-service .ocf-svc-card {
  overflow: hidden;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius-lg);
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
  clip-path: none;
  box-shadow: var(--card-shadow);
}

body.post-type-archive-service .ocf-svc-card:hover {
  border-color: var(--ocf-border-light);
  box-shadow: var(--card-shadow-hover);
  transform: translateY(-0.15rem);
}

body.post-type-archive-service .ocf-svc-card-img {
  position: relative;
  aspect-ratio: 2 / 1;
  overflow: hidden;
  border-radius: 0;
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
}

body.post-type-archive-service .ocf-svc-card-img::after { display: none; }

body.post-type-archive-service .ocf-svc-card-img img {
  height: 100%;
  object-fit: cover;
}

body.post-type-archive-service .ocf-svc-card-body {
  display: grid;
  min-height: 0;
  grid-template-rows: auto auto auto;
  align-content: start;
  gap: clamp(0.7rem, 1.25vw, 1rem);
  padding: clamp(1.35rem, 2.1vw, 1.8rem);
  padding-bottom: clamp(0.75rem, 1.1vw, 1rem);
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body.post-type-archive-service .ocf-svc-card-body h3 {
  font-size: clamp(1.15rem, 1.55vw, 1.35rem);
}

body.post-type-archive-service .ocf-svc-card-body p {
  display: block;
  font-size: 1rem;
  overflow: visible;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
  text-overflow: clip;
}

body.post-type-archive-service .ocf-svc-card-cta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: auto;
  margin-top: clamp(0.35rem, 0.8vw, 0.7rem);
  color: var(--ocf-heading);
}

body.post-type-archive-service .ocf-svc-card-cta > span:first-child { display: none; }

body.post-type-archive-service .ocf-svc-arrow {
  display: inline-flex;
  width: 1.35rem;
  height: 1.35rem;
  color: var(--ocf-heading);
}

body.post-type-archive-service .ocf-svc-arrow svg {
  width: 100%;
  height: 100%;
}

body.post-type-archive-service .ocf-svc-card:hover .ocf-svc-arrow {
  background: transparent;
  color: var(--ocf-heading);
}

/* Keep homepage eyebrow labels in the same dark ink as the surrounding copy. */
body.home #services .ocf-services-eyebrow,
body.home #services .ocf-services-eyebrow .ocf-eyebrow-link,
body.home #commitments .ocf-commitments-content .eyebrow,
body.home #areas .ocf-service-areas__eyebrow,
body.home #faq .eyebrow {
  color: var(--ocf-heading);
}

/* Keep the section headings clean by removing redundant eyebrow labels. */
body.home #commitments .ocf-commitments-content .eyebrow[data-ocf-field="about_values_eyebrow"],
body.home #testimonials .ocf-testimonials-heading > .eyebrow,
body.home #areas .ocf-service-areas__eyebrow,
body.post-type-archive-service_area #page-header .ocf-page-header__eyebrow,
body.single-service_area #page-header .ocf-page-header__eyebrow {
  display: none !important;
}

/* Reusable computed-color eyebrow badge — intentionally no icon or dot. */
.ocf-eyebrow-badge {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--ocf-border);
  border-radius: 6px;
  background: transparent;
  box-shadow: none;
  color: var(--ocf-heading);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 1.5rem !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.ocf-eyebrow-badge::after {
  display: none;
}

/* Linked eyebrow badges become a compact dark action on hover, while keeping the arrow cue. */
.ocf-eyebrow-badge:has(.ocf-eyebrow-link) {
  padding: 0;
}

.ocf-eyebrow-badge .ocf-eyebrow-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.7rem;
  color: inherit;
  text-decoration: none !important;
  border: 0 !important;
}

.ocf-eyebrow-badge .ocf-eyebrow-link__icon {
  flex: 0 0 auto;
  transition: transform 180ms ease;
}

.ocf-eyebrow-badge:has(.ocf-eyebrow-link):hover,
.ocf-eyebrow-badge:has(.ocf-eyebrow-link):focus-within {
  border-color: var(--ocf-heading);
  background: var(--ocf-heading);
  color: var(--ocf-bg) !important;
}

.ocf-eyebrow-badge:has(.ocf-eyebrow-link):hover .ocf-eyebrow-link,
.ocf-eyebrow-badge:has(.ocf-eyebrow-link):focus-within .ocf-eyebrow-link {
  color: var(--ocf-bg) !important;
}

.ocf-eyebrow-badge:has(.ocf-eyebrow-link):hover .ocf-eyebrow-link__icon,
.ocf-eyebrow-badge:has(.ocf-eyebrow-link):focus-within .ocf-eyebrow-link__icon {
  transform: translate(2px, -2px);
}

body.home #services .ocf-eyebrow-badge a,
body.home #services .ocf-eyebrow-badge .ocf-eyebrow-link,
body.home #services .ocf-eyebrow-badge .ocf-eyebrow-link:hover,
body.home #services .ocf-eyebrow-badge .ocf-eyebrow-link:focus-visible {
  color: inherit;
}

/* The About layout's legacy eyebrow rule is more specific than the shared badge class. */
#about .ocf-about__eyebrow.ocf-eyebrow-badge {
  display: inline-flex;
}

/* Keep the shared badge spacing consistent with sections that style generic eyebrows. */
.ocf-faq .ocf-eyebrow-badge {
  margin-bottom: 1.5rem !important;
}

/* Locations archive already has the title in its page hero; remove the repeated section label/title. */
body.post-type-archive-location #locations .ocf-locations-header > .ocf-eyebrow-badge,
body.post-type-archive-location #locations .ocf-locations-header > .heading-2 {
  display: none !important;
}

body.post-type-archive-location #locations .ocf-locations-header {
  max-width: 52rem;
  margin-bottom: 2.25rem;
}

body.post-type-archive-location #locations .ocf-location-card__body h3 {
  color: var(--ocf-heading);
  font-weight: 650;
  letter-spacing: -0.02em;
}

body.post-type-archive-location #locations .ocf-location-card__body {
  gap: 0.7rem;
  padding: 1.5rem;
}

body.post-type-archive-location #locations .ocf-location-card__body > [data-ocf-field="location_address"],
body.post-type-archive-location #locations .ocf-location-card__body > [data-ocf-field="location_phone"] {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
}

body.post-type-archive-location #locations .ocf-location-card__icon {
  display: inline-flex;
  flex: 0 0 1.2rem;
  align-items: center;
  justify-content: center;
  width: 1.2rem;
  height: 1.2rem;
  margin-top: 0.1rem;
  color: var(--ocf-primary);
}

body.post-type-archive-location #locations .ocf-location-card__icon svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

/* Gallery — normal equal-card slider pages, using the theme's existing controls. */
body.home #gallery .alignwell-gallery-page {
  display: grid;
  min-width: 100%;
  flex: 0 0 100%;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 1.8vw, 1.5rem);
  padding: 0;
  background: transparent;
}

body.home #gallery .ocf-gallery-card {
  min-width: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--card-border-color);
  border-radius: var(--card-radius);
  background: var(--ocf-bg);
  box-shadow: none;
}

body.home #gallery .ocf-gallery-open,
body.home #gallery .ocf-gallery-card img {
  width: 100%;
  height: 100%;
}

body.home #gallery .ocf-gallery-card img {
  object-fit: cover;
}

@media (max-width: 980px) {
  body.home #gallery .alignwell-gallery-page {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  body.home #gallery .alignwell-gallery-page {
    grid-template-columns: 1fr;
  }
}

/* About — quiet two-column introduction without an extra principles rail. */
#about .ocf-about__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
  grid-template-rows: auto auto;
  gap: clamp(1.25rem, 2vw, 1.75rem) clamp(3rem, 6vw, 6rem);
  align-items: start;
}

#about .ocf-about__media {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: stretch;
  min-height: clamp(23rem, 33vw, 29rem);
  overflow: hidden;
  border: 0;
  border-radius: var(--card-radius-lg);
  box-shadow: none;
}

#about .ocf-about__media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

#about .ocf-about__copy {
  display: contents;
}

#about .ocf-about__copy > .reveal:first-child {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
}

#about .ocf-about__eyebrow {
  display: block;
  margin-bottom: 1rem;
}

#about .ocf-about__eyebrow::after {
  display: none;
}

#about .ocf-about__headline {
  max-width: 31rem;
}

#about .ocf-about__body {
  display: contents;
}

#about .ocf-about__body > p {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  max-width: 36rem;
  margin: 0;
}

/* Commitments — selected variation 1: editorial copy rail with a right-side image. */
body.home #commitments .ocf-commitments-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
  grid-template-rows: minmax(34rem, 1fr);
  gap: clamp(3rem, 6vw, 6.5rem);
  align-items: stretch;
}

body.home #commitments .ocf-commitments-image-wrap {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

body.home #commitments .ocf-commitments-image {
  height: 100%;
  overflow: hidden;
  border: 0;
  border-radius: var(--card-radius-lg);
  box-shadow: none;
}

body.home #commitments .ocf-commitments-image img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
}

body.home #commitments .ocf-commitments-content {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: flex-start;
  padding-block: clamp(1rem, 2vw, 2rem);
}

body.home #commitments .ocf-commitments-content > .reveal:first-child {
  width: 100%;
}

body.home #commitments .ocf-commitments-description {
  max-width: 34rem;
  margin-top: 1.5rem;
}

body.home #commitments .ocf-commitments-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin-top: auto;
  border-top: 0;
}

body.home #commitments .ocf-commitments-list::before,
body.home #commitments .ocf-commitment::before {
  display: none;
}

body.home #commitments .ocf-commitment {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 1.25rem;
  align-items: center;
  min-height: 0;
  padding: clamp(1.15rem, 1.8vw, 1.5rem) 0;
  border: 0;
  border-top: 2px solid var(--ocf-bg-alt);
}

body.home #commitments .ocf-commitment:first-child {
  border-top: 0;
}

body.home #commitments .ocf-commitment-num {
  display: block;
  width: auto;
  height: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ocf-heading);
  font-size: clamp(1.15rem, 1.65vw, 1.45rem);
  font-weight: 700;
  line-height: 1;
}

body.home #commitments .ocf-commitment h3 {
  margin: 0;
  font-size: clamp(1.15rem, 1.55vw, 1.35rem);
}

body.home #commitments .ocf-commitment p {
  display: none;
}

/* Reviews — variation 6: editorial header and three uniform cards. */
body.home #testimonials {
  background: var(--ocf-bg);
}

body.home .ocf-testimonials-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  grid-template-rows: auto;
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: end;
  justify-items: stretch;
  margin-bottom: clamp(2.25rem, 4vw, 3.5rem);
  text-align: left;
}

body.home .ocf-testimonials-heading {
  grid-column: 1;
  grid-row: 1;
  max-width: 42rem;
}

body.home .ocf-testimonials-heading .eyebrow {
  display: block;
  margin-bottom: 1rem;
  color: var(--ocf-heading);
}

body.home .ocf-testimonials-heading .eyebrow::after {
  display: none;
}

/* The gallery title carries the section identity; omit the duplicate eyebrow. */
body.home #gallery .ocf-gallery-heading > .eyebrow {
  display: none;
}

body.home .ocf-testimonials-header-rating {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  justify-content: flex-start;
  margin: 0 0 0.25rem;
  text-align: left;
}

body.home .ocf-testimonial-nav,
body.home .ocf-testimonial-nav--mobile-only {
  grid-column: 3;
  grid-row: 1;
  align-self: end;
  justify-self: end;
  margin: 0;
}

body.home .ocf-testimonial-viewport {
  position: relative;
  padding: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 0;
  background: transparent;
}

body.home .ocf-testimonial-track {
  --testimonial-gap: clamp(1rem, 1.8vw, 1.5rem);
  box-sizing: border-box;
  gap: var(--testimonial-gap);
  align-items: stretch;
  padding-inline: 0;
}

body.home .ocf-testimonial-track .ocf-testimonial-card {
  box-sizing: border-box;
  flex: 0 0 calc((100% - (2 * var(--testimonial-gap))) / 3);
  min-width: 0;
  max-width: calc((100% - (2 * var(--testimonial-gap))) / 3);
}

body.home .ocf-testimonial-card {
  min-height: 0;
  padding: clamp(1.35rem, 2.2vw, 1.85rem);
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius);
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
  clip-path: none;
  box-shadow: var(--card-shadow);
}

body.home .ocf-testimonial-card:hover {
  border: 1px solid var(--ocf-border-light);
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
  box-shadow: var(--card-shadow-hover);
  transform: translateY(-0.15rem);
}

body.home .ocf-testimonial-card + .ocf-testimonial-card {
  border-left: 1px solid var(--ocf-border-light);
}

body.home .ocf-testimonial-card blockquote {
  margin: 0;
}

/* Keep the full-review panel inside its card so it remains readable on hover or click. */
body.home .ocf-testimonial-card {
  isolation: isolate;
}

body.home .testimonial-more-wrap {
  position: static;
}

body.home .testimonial-review-popover {
  display: none;
}

body.home .ocf-testimonial-card:not(.is-review-open) .testimonial-more-wrap:hover .testimonial-review-popover,
body.home .ocf-testimonial-card:not(.is-review-open) .testimonial-more-wrap:focus-within .testimonial-review-popover {
  display: none !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

body.home .ocf-testimonial-card.is-review-open .testimonial-review-popover {
  inset: clamp(0.75rem, 2vw, 1rem);
  width: auto;
  max-height: none;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 1rem;
  padding: clamp(1rem, 2.4vw, 1.35rem);
  border: 1px solid var(--ocf-border);
  border-radius: var(--card-radius);
  background: var(--ocf-bg);
  box-shadow: var(--card-shadow-hover);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}

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

body.home .ocf-testimonial-footer::before {
  display: none;
}

body.home .ocf-testimonial-card > .ocf-testimonial-stars,
body.home .ocf-testimonials-header-rating__value span:last-child {
  color: #fbbf24;
}

body.home .ocf-testimonials-header-rating__value span:last-child {
  font-size: 0;
}

body.home .ocf-testimonials-header-rating__value span:last-child::after {
  content: '★★★★★';
  font-size: 1rem;
  letter-spacing: 0.12em;
}

/* Service areas — displayed variation 3: straight location list beside a quiet map. */
body.home #areas {
  background: var(--ocf-bg-alt);
}

/* Archive grids sit directly on the normal page surface; only their cards provide contrast. */
body.post-type-archive-service .ocf-services-archive-grid-section,
body.post-type-archive-service_area .page-section--alt {
  background: var(--ocf-bg);
}

/* Services help callout — quiet utility strip with a restrained accent rule. */
body.post-type-archive-service .ocf-services-help-card {
  position: relative;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem clamp(1.25rem, 2.5vw, 2rem);
  padding: clamp(1.4rem, 2.5vw, 2rem);
  border: 1px solid var(--ocf-border-light);
  border-top: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius);
  background: var(--ocf-bg);
  box-shadow: var(--card-shadow);
}

body.post-type-archive-service .ocf-services-help-card__icon {
  width: clamp(3rem, 4vw, 3.5rem);
  height: clamp(3rem, 4vw, 3.5rem);
  border: 1.5px solid var(--ocf-primary);
  border-radius: 50%;
  background: transparent;
  color: var(--ocf-primary);
}

body.post-type-archive-service .ocf-services-help-card__icon svg {
  width: 1.55rem;
  height: 1.55rem;
}

body.post-type-archive-service .ocf-services-help-card__copy {
  gap: 0.35rem;
}

body.post-type-archive-service .ocf-services-help-card h2 {
  font-size: var(--font-label-size);
}

body.post-type-archive-service .ocf-services-help-card p {
  font-size: var(--font-label-size);
}

body.post-type-archive-service .ocf-services-help-card > .btn-primary {
  min-width: 0;
  white-space: nowrap;
}

/* Service Areas contact callout — match the Services utility strip. */
body.post-type-archive-service_area .ocf-service-areas-archive__contact {
  position: relative;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem clamp(1.25rem, 2.5vw, 2rem);
  padding: clamp(1.4rem, 2.5vw, 2rem);
  border: 1px solid var(--ocf-border-light);
  border-top: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius);
  background: var(--ocf-bg);
  box-shadow: var(--card-shadow);
}

body.post-type-archive-service_area .ocf-service-areas-archive__contact-icon {
  display: inline-grid;
  place-items: center;
  width: clamp(3rem, 4vw, 3.5rem);
  height: clamp(3rem, 4vw, 3.5rem);
  border: 1.5px solid var(--ocf-primary);
  border-radius: 50%;
  background: transparent;
  color: var(--ocf-primary);
}

body.post-type-archive-service_area .ocf-service-areas-archive__contact-icon svg {
  width: 1.55rem;
  height: 1.55rem;
}

body.post-type-archive-service_area .ocf-service-areas-archive__contact > div {
  display: grid;
  gap: 0.35rem;
}

body.post-type-archive-service_area .ocf-service-areas-archive__contact h2,
body.post-type-archive-service_area .ocf-service-areas-archive__contact p {
  margin: 0;
  font-size: var(--font-label-size);
}

body.post-type-archive-service_area .ocf-service-areas-archive__contact > .btn-primary {
  min-width: 0;
  white-space: nowrap;
}

/* Match service-area archive links to the shared card surface. */
body.post-type-archive-service_area .ocf-service-area-row {
  border: var(--card-border-width) solid var(--card-border-color-subtle);
  border-radius: var(--card-radius);
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
  box-shadow: var(--card-shadow);
}

body.post-type-archive-service_area .ocf-service-area-row:hover,
body.post-type-archive-service_area .ocf-service-area-row:focus-visible {
  border-color: var(--ocf-border-light);
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
  box-shadow: var(--card-shadow-hover);
  transform: var(--card-transform-hover);
}

@media (max-width: 600px) {
  body.post-type-archive-service .ocf-services-help-card {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
  }

  body.post-type-archive-service .ocf-services-help-card__copy {
    grid-column: 2;
  }

  body.post-type-archive-service .ocf-services-help-card > .btn-primary {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: center;
  }

  body.post-type-archive-service_area .ocf-service-areas-archive__contact {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
  }

  body.post-type-archive-service_area .ocf-service-areas-archive__contact > .btn-primary {
    grid-column: 1 / -1;
    width: 100%;
    justify-content: center;
  }
}

body.home #areas .ocf-service-areas__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  align-items: stretch;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius-lg);
  background: var(--ocf-bg);
}

body.home #areas .ocf-service-areas__map {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  height: 100%;
  max-width: none;
  align-self: stretch;
  min-height: clamp(34rem, 43vw, 39rem);
  overflow: hidden;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.home #areas .ocf-service-areas__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  border: 0;
  filter: saturate(0.5) contrast(0.86) brightness(1.1);
}

body.home #areas .ocf-service-areas__content {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
  padding: clamp(2.75rem, 4.5vw, 4.5rem);
  border: 0;
  border-radius: 0;
  background: var(--ocf-bg);
  box-shadow: none;
  clip-path: none;
}

body.home #areas .ocf-service-areas__content::before {
  display: none;
  content: none;
}

body.home #areas .ocf-service-areas__content > * {
  position: relative;
  z-index: 1;
}

body.home #areas .ocf-service-areas__content {
  gap: 0;
}

body.home #areas .ocf-service-areas__eyebrow {
  margin: 0 0 1rem;
}

body.home #areas .ocf-service-areas__title {
  margin: 0;
}

body.home #areas .ocf-service-areas__text {
  margin: 1.25rem 0 0;
}

body.home #areas .ocf-service-areas__links {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(1.5rem, 3vw, 2.5rem);
  margin-block: clamp(1.75rem, 2.5vw, 2rem);
  padding-top: 0;
  border-top: 0;
}

body.home #areas .ocf-service-areas__links::before {
  display: none;
  content: none;
}

body.home #areas .ocf-service-areas__link {
  min-height: 3.25rem;
  padding: 0.75rem 0;
  gap: clamp(0.5rem, 0.7vw, 0.65rem);
  border: 0;
  border-bottom: 1px solid var(--ocf-border-light);
  border-radius: 0;
  background: transparent;
  color: var(--ocf-heading);
  font-weight: var(--font-weight-semibold);
}

body.home #areas .ocf-service-areas__link-icon {
  display: block;
  width: 0.78rem;
  height: 0.78rem;
  flex: 0 0 auto;
  color: var(--ocf-primary);
}

body.home #areas .ocf-service-areas__archive-link {
  align-self: flex-start;
  color: var(--ocf-heading);
  font-weight: var(--font-weight-semibold);
}

/* FAQ — normal cards with the shared site radius. */
body.home #faq .ocf-faq-header {
  max-width: 52rem;
  margin-bottom: clamp(2.5rem, 4.5vw, 3.75rem);
}

body.home #faq .ocf-faq-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 1.5vw, 1.25rem);
  align-items: start;
}

body.home #faq .ocf-faq-column {
  gap: clamp(1rem, 1.5vw, 1.25rem);
  align-content: start;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body.home #faq .ocf-faq-item,
body.home #faq .ocf-faq-column .ocf-faq-item:first-child {
  overflow: hidden;
  border: 1px solid var(--card-border-color);
  border-radius: var(--card-radius);
  background: var(--alignwell-soft-surface);
  box-shadow: none;
  clip-path: none;
}

body.home #faq .ocf-faq-trigger {
  min-height: clamp(4.75rem, 5.5vw, 5.25rem);
  padding: 1.125rem clamp(1.5rem, 2.5vw, 2.25rem);
  background: transparent;
}

body.home #faq .ocf-faq-trigger > span {
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  font-weight: var(--font-weight-semibold);
  line-height: 1.4;
}

body.home #faq .ocf-faq-trigger:hover {
  background: transparent;
}

body.home #faq .ocf-faq-answer {
  padding: 0 clamp(1.5rem, 2.5vw, 2.25rem) clamp(1.35rem, 2vw, 1.75rem);
}

body.home #faq .ocf-faq-answer p {
  padding: 0;
}

body.home #faq .ocf-faq-item.is-open .ocf-faq-answer,
body.home #faq .ocf-faq-item.open .ocf-faq-answer {
  max-height: none;
  overflow: visible;
  transition: none;
}

@media (max-width: 980px) {
  body.home .ocf-testimonials-header {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: start;
  }

  body.home .ocf-testimonials-heading {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  body.home .ocf-testimonials-header-rating {
    grid-column: 1;
    grid-row: 2;
    align-self: center;
    justify-content: flex-start;
    margin: 0;
    text-align: left;
  }

  body.home .ocf-testimonial-nav,
  body.home .ocf-testimonial-nav--mobile-only {
    grid-column: 2;
    grid-row: 2;
    align-self: center;
  }

  body.home .ocf-testimonial-track .ocf-testimonial-card {
    flex: 0 0 calc((100% - var(--testimonial-gap)) / 2);
    max-width: calc((100% - var(--testimonial-gap)) / 2);
  }

  #about .ocf-about__grid,
  body.home #areas .ocf-service-areas__grid {
    grid-template-columns: 1fr;
  }

  body.home #areas .ocf-service-areas__grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-top: 0;
  }

  body.home #areas .ocf-service-areas__content {
    position: relative;
    inset: auto;
    order: 1;
    width: 100%;
    padding: clamp(2.5rem, 6vw, 4rem);
    border-radius: 0;
    box-shadow: none;
  }

  #about .ocf-about__grid {
    grid-template-rows: auto;
    row-gap: clamp(1.25rem, 3vw, 2rem);
  }

  #about .ocf-about__copy > .reveal:first-child {
    grid-column: 1;
    grid-row: auto;
    order: 1;
  }

  #about .ocf-about__media {
    grid-column: 1;
    grid-row: auto;
    order: 3;
    min-height: 26rem;
    margin-top: 0.75rem;
  }

  #about .ocf-about__body > p {
    grid-column: 1;
    grid-row: auto;
    order: 2;
  }

  body.home #areas .ocf-service-areas__map {
    order: 2;
    min-height: 31rem;
    margin-top: 0;
    border-radius: 0;
  }

  #about .ocf-about__copy::before,
  body.home #areas .ocf-service-areas__content::before {
    display: none;
  }

  body.home #commitments .ocf-commitments-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: clamp(2rem, 5vw, 3rem);
  }

  body.home #commitments .ocf-commitments-image-wrap {
    grid-column: 1;
    grid-row: 2;
  }

  body.home #commitments .ocf-commitments-content {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    padding-block: 0;
  }

  body.home #commitments .ocf-commitments-content > .reveal:first-child {
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  body.home #commitments .ocf-commitments-list {
    margin-top: clamp(2.5rem, 5vw, 4rem);
  }

  body.home #gallery .alignwell-gallery-page {
    min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  body.home #gallery .alignwell-gallery-page {
    grid-template-columns: 1fr;
  }

  body.home #services .ocf-svc-card-body {
    min-height: 0;
  }

  #about .ocf-about__media,
  body.home #areas .ocf-service-areas__map {
    min-height: 22rem;
  }

  body.home #areas .ocf-service-areas__content {
    padding: 1.75rem 1.35rem;
  }

  body.home #commitments .ocf-commitments-image {
    min-height: 23rem;
  }

  body.home #commitments .ocf-commitments-list {
    grid-template-columns: 1fr;
  }

  body.home #commitments .ocf-commitment,
  body.home #commitments .ocf-commitment:first-child,
  body.home #commitments .ocf-commitment:last-child {
    padding: 1.5rem 0;
  }

  body.home #commitments .ocf-commitment + .ocf-commitment {
    border-top: 2px solid var(--ocf-bg-alt);
    border-left: 0;
  }

  body.home .ocf-testimonials-header {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    justify-items: start;
    text-align: left;
  }

  body.home .ocf-testimonials-heading,
  body.home .ocf-testimonials-header-rating,
  body.home .ocf-testimonial-nav,
  body.home .ocf-testimonial-nav--mobile-only {
    grid-column: 1;
    grid-row: auto;
  }

  body.home .ocf-testimonials-heading {
    order: 1;
  }

  body.home .ocf-testimonials-header-rating {
    order: 2;
    justify-content: flex-start;
    text-align: left;
  }

  body.home .ocf-testimonial-nav,
  body.home .ocf-testimonial-nav--mobile-only {
    order: 3;
    justify-self: start;
  }

  body.home .ocf-testimonial-track .ocf-testimonial-card {
    flex: 0 0 100%;
    max-width: 100%;
  }

  body.home #areas .ocf-service-areas__links {
    grid-template-columns: 1fr;
  }

  body.home #areas .ocf-service-areas__links::before {
    display: none;
  }

  body.home #faq .ocf-faq-columns {
    grid-template-columns: 1fr;
  }

  body.home #faq .ocf-faq-trigger {
    min-height: 4.5rem;
    padding: 1.125rem 1.25rem 1.125rem 1.5rem;
  }

  body.home #faq .ocf-faq-answer {
    padding: 0 1.25rem 1.25rem 1.5rem;
  }
}
/* OCF-MANAGED:END alignwell-selected-sections */

/* OCF-MANAGED:START alignwell-service-detail-v1 */
/* Selected inner-page direction: editorial split hero + minimal sticky CTA. */
.single-service .ocf-service-detail-hero {
  padding-block: clamp(3rem, 4vw, 4.5rem);
  border-bottom: 1px solid var(--ocf-border-light);
  background: var(--ocf-bg);
}

.single-service .ocf-service-detail-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 1fr);
  gap: clamp(2.5rem, 4vw, 4.5rem);
  align-items: center;
}

.single-service .ocf-service-detail-hero__copy {
  min-width: 0;
  max-width: none;
}

.single-service .ocf-service-detail-hero__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin: 0 0 1.25rem;
  color: var(--ocf-body);
  font-size: var(--font-label-size);
  font-weight: 600;
}

.single-service .ocf-service-detail-hero__breadcrumb a:hover,
.single-service .ocf-service-detail-hero__breadcrumb a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.single-service .ocf-service-detail-hero__title {
  max-width: none;
  margin: 0;
  color: var(--ocf-heading);
}

.single-service .ocf-service-detail-hero__divider {
  width: 4rem;
  height: 2px;
  margin-block: 1.25rem;
  background: var(--ocf-bg-alt);
}

.single-service .ocf-service-detail-hero__intro {
  max-width: 43rem;
  margin: 0;
  color: var(--ocf-body);
  font-size: clamp(1rem, 1.25vw, 1.125rem);
  line-height: 1.72;
}

.single-service .ocf-service-detail-hero__media {
  width: min(100%, 36rem);
  justify-self: end;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--card-radius-lg);
  background: var(--ocf-bg-alt);
}

.single-service .ocf-service-detail-hero__media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 6 / 4;
  object-fit: cover;
}

.single-service .ocf-detail-section {
  padding-top: clamp(2.25rem, 3vw, 3rem);
}

@media (min-width: 1024px) {
  .single-service .ocf-detail-grid {
    grid-template-columns: minmax(18rem, 20rem) minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 4rem);
    align-items: start;
  }

  .single-service .ocf-detail-content {
    max-width: 49rem;
  }

  .single-service .ocf-detail-aside {
    display: block;
    grid-column: 1;
    grid-row: 1;
    align-self: stretch;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .single-service .ocf-detail-content {
    grid-column: 2;
    grid-row: 1;
  }
}

.single-service .ocf-detail-content .prose > p:first-child {
  display: none;
}

.single-service .ocf-detail-sticky {
  top: 2rem;
  display: block;
  gap: 0;
  padding: 1.5rem;
  border: var(--card-border-width) solid color-mix(in srgb, var(--ocf-primary) 20%, transparent);
  border-radius: var(--card-radius-lg);
  background:
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--ocf-primary) 7%, var(--ocf-bg)) 0%,
      color-mix(in srgb, var(--ocf-primary) 14%, var(--ocf-bg)) 100%
    );
  box-shadow:
    0 9px 22px color-mix(in srgb, var(--ocf-primary) 8%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--ocf-bg) 68%, transparent);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.single-service .ocf-detail-sticky-heading {
  margin: 0 0 0.75rem;
  color: var(--ocf-heading);
  font-size: clamp(1.2rem, 1.6vw, 1.45rem);
  line-height: 1.2;
}

.single-service .ocf-detail-sticky-desc {
  margin: 0 0 1.25rem;
  color: var(--ocf-body);
  font-size: var(--text-sm);
  line-height: 1.6;
}

.single-service .ocf-detail-sticky-btn {
  display: flex;
  width: 100%;
  min-height: 3.5rem;
  text-transform: none;
  letter-spacing: normal;
  gap: 0.5rem;
  justify-content: space-between;
  padding-inline: 1.15rem;
  font-size: 1rem;
  letter-spacing: normal;
  background: color-mix(in srgb, var(--ocf-primary) 78%, var(--ocf-heading) 22%);
  box-shadow: 0 4px 11px color-mix(in srgb, var(--ocf-primary) 14%, transparent);
}

.single-service .ocf-detail-sticky-phone {
  display: block;
  padding-top: 0.75rem;
  margin-top: 0.75rem;
  border-top: 1px solid color-mix(in srgb, var(--ocf-primary) 14%, transparent);
  color: var(--ocf-heading);
  font-size: var(--text-sm);
  font-weight: 600;
  text-align: left;
}

.single-service .ocf-detail-sticky-phone:hover,
.single-service .ocf-detail-sticky-phone:focus-visible {
  color: var(--ocf-primary);
}

@media (max-width: 1023px) {
  .single-service .ocf-service-detail-hero__grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .single-service .ocf-service-detail-hero__copy {
    max-width: 46rem;
  }

  .single-service .ocf-service-detail-hero__media {
    width: 100%;
    justify-self: stretch;
    min-height: 0;
  }
}

@media (max-width: 600px) {
  .single-service .ocf-service-detail-hero {
    padding-block: 2rem 2.5rem;
  }

  .single-service .ocf-service-detail-hero__breadcrumb {
    margin-bottom: 1.25rem;
  }

  .single-service .ocf-service-detail-hero__title {
    max-width: 100%;
  }

  .single-service .ocf-service-detail-hero__media img {
    aspect-ratio: 6 / 4;
  }
}
/* OCF-MANAGED:END alignwell-service-detail-v1 */

/* OCF-MANAGED:START alignwell-global-heading-one */
/* The approved homepage H1 treatment is now the shared H1 source of truth. */
.heading-1 {
  font-size: clamp(3rem, 3.6vw, 3.25rem);
  font-weight: 650;
  line-height: 1.04;
  letter-spacing: -0.045em;
}

/* CTA labels use the stored title-case copy instead of forced uppercase. */
:is(.btn-primary, .nav-cta) {
  text-transform: none;
  letter-spacing: normal;
}

/* Keep supporting UI text readable at every viewport. */
:root {
  --text-xs: 1rem;
  --text-sm: 1rem;
}

@media (max-width: 980px) {
  :is(.nav-link, .nav-dropdown-trigger, .mobile-link, .mobile-accordion-trigger, .mobile-accordion-panel a) {
    font-size: 1rem !important;
  }
}

@media (max-width: 980px) {
  .heading-1 {
    font-size: clamp(2.5rem, 5vw, 2.85rem);
  }
}

@media (max-width: 600px) {
  .heading-1 {
    font-size: 2rem;
  }
}
/* OCF-MANAGED:END alignwell-global-heading-one */

/* OCF-MANAGED:START alignwell-location-layout */
/* Location detail: contact facts sit above one wide map instead of a sticky sidebar. */
.single-location .ocf-location-detail {
  background: var(--ocf-bg);
  padding-top: clamp(2.5rem, 4vw, 4rem);
  padding-bottom: clamp(3rem, 5vw, 5rem);
}

.single-location .ocf-location-layout {
  display: grid;
  gap: clamp(1.75rem, 3vw, 2.75rem);
}

.single-location .ocf-location-intro {
  max-width: 54rem;
}

.single-location .ocf-location-intro .ocf-detail__media {
  margin: 0 0 2rem;
  border-radius: var(--card-radius);
  overflow: hidden;
}

.single-location .ocf-location-intro .ocf-detail__media img {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
}

.single-location .ocf-location-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.single-location .ocf-location-contact-item,
.single-location .ocf-location-map-heading {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  min-width: 0;
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius);
  background: color-mix(in srgb, var(--ocf-bg-alt) 62%, var(--ocf-bg));
}

.single-location .ocf-location-contact-icon {
  display: inline-flex;
  flex: 0 0 2rem;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  color: var(--ocf-primary);
  background: color-mix(in srgb, var(--ocf-primary) 11%, var(--ocf-bg));
}

.single-location .ocf-location-contact-icon svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.single-location .ocf-location-contact-item > div,
.single-location .ocf-location-map-heading > div {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
}

.single-location .ocf-location-contact-item .text-label,
.single-location .ocf-location-map-heading .text-label {
  font-size: 14px;
  line-height: 1.2;
}

.single-location .ocf-location-contact-item a,
.single-location .ocf-location-contact-item p,
.single-location .ocf-location-map-heading p {
  margin: 0;
  color: var(--ocf-heading);
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.single-location .ocf-location-contact-item a:hover { color: var(--ocf-primary); }

.single-location .ocf-location-map-wrap {
  display: grid;
  gap: 0.85rem;
}

.single-location .ocf-location-map-heading {
  width: fit-content;
  max-width: 100%;
  padding-block: 0.85rem;
}

.single-location .ocf-location-map-card {
  overflow: hidden;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius);
  background: var(--ocf-bg-alt);
  box-shadow: var(--card-shadow);
}

.single-location .ocf-location-map-card iframe {
  display: block;
  width: 100%;
  height: clamp(20rem, 38vw, 31rem);
  border: 0;
  filter: saturate(0.82) contrast(0.98);
}

.single-location .ocf-location-map-card__actions {
  display: flex;
  justify-content: flex-end;
  padding: 0.9rem 1.1rem;
  border-top: 1px solid var(--ocf-border-light);
  background: var(--ocf-bg);
}

@media (max-width: 760px) {
  .single-location .ocf-location-contact-grid { grid-template-columns: 1fr; }
  .single-location .ocf-location-map-heading { width: 100%; }
  .single-location .ocf-location-map-card iframe { height: 20rem; }
}
/* OCF-MANAGED:END alignwell-location-layout */

/* OCF-MANAGED:START alignwell-location-layout */
/* Location detail: contact facts sit above one wide map instead of a sticky sidebar. */
.single-location .ocf-location-detail {
  background: var(--ocf-bg);
  padding-top: clamp(2.5rem, 4vw, 4rem);
  padding-bottom: clamp(3rem, 5vw, 5rem);
}

.single-location .ocf-location-layout {
  display: grid;
  gap: clamp(1.75rem, 3vw, 2.75rem);
}

.single-location .ocf-location-intro {
  max-width: 54rem;
}

.single-location .ocf-location-intro .ocf-detail__media {
  margin: 0 0 2rem;
  border-radius: var(--card-radius);
  overflow: hidden;
}

.single-location .ocf-location-intro .ocf-detail__media img {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
}

.single-location .ocf-location-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.single-location .ocf-location-contact-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius);
  background: var(--ocf-bg);
}

.single-location .ocf-location-contact-icon {
  display: inline-flex;
  flex: 0 0 2rem;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  color: var(--ocf-primary);
  background: color-mix(in srgb, var(--ocf-primary) 11%, var(--ocf-bg));
}

.single-location .ocf-location-contact-icon svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.single-location .ocf-location-contact-item > div {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
}

.single-location .ocf-location-contact-item .text-label {
  font-size: 14px;
  line-height: 1.2;
}

.single-location .ocf-location-contact-item a,
.single-location .ocf-location-contact-item p {
  margin: 0;
  color: var(--ocf-heading);
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.single-location .ocf-location-contact-item a:hover { color: var(--ocf-primary); }

.single-location .ocf-location-map-wrap {
  display: grid;
  gap: 0.85rem;
}

.single-location .ocf-location-map-card {
  overflow: hidden;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius);
  background: var(--ocf-bg-alt);
  box-shadow: var(--card-shadow);
}

.single-location .ocf-location-map-card iframe {
  display: block;
  width: 100%;
  height: clamp(20rem, 38vw, 31rem);
  border: 0;
  filter: saturate(0.82) contrast(0.98);
}

.single-location .ocf-location-map-card__actions {
  display: flex;
  justify-content: flex-end;
  padding: 0.9rem 1.1rem;
  border-top: 1px solid var(--ocf-border-light);
  background: var(--ocf-bg);
}

@media (max-width: 760px) {
  .single-location .ocf-location-contact-grid { grid-template-columns: 1fr; }
  .single-location .ocf-location-map-card iframe { height: 20rem; }
}
/* OCF-MANAGED:END alignwell-location-layout */

/* OCF-MANAGED:START alignwell-location-layout */
/* Location detail: contact facts sit above one wide map instead of a sticky sidebar. */
.single-location .ocf-location-detail {
  background: var(--ocf-bg);
  padding-top: clamp(2.5rem, 4vw, 4rem);
  padding-bottom: clamp(3rem, 5vw, 5rem);
}

.single-location .ocf-location-layout {
  display: grid;
  gap: clamp(1.75rem, 3vw, 2.75rem);
}

.single-location .ocf-location-intro {
  max-width: 54rem;
}

.single-location .ocf-location-intro .ocf-detail__media {
  margin: 0 0 2rem;
  border-radius: var(--card-radius);
  overflow: hidden;
}

.single-location .ocf-location-intro .ocf-detail__media img {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
}

.single-location .ocf-location-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.single-location .ocf-location-contact-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius);
  background: var(--ocf-bg);
}

.single-location .ocf-location-contact-icon {
  display: inline-flex;
  flex: 0 0 2rem;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  color: var(--ocf-primary);
  background: color-mix(in srgb, var(--ocf-primary) 11%, var(--ocf-bg));
}

.single-location .ocf-location-contact-icon svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.single-location .ocf-location-contact-item > div {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
}

.single-location .ocf-location-contact-item .text-label {
  font-size: 14px;
  line-height: 1.2;
}

.single-location .ocf-location-contact-item a,
.single-location .ocf-location-contact-item p {
  margin: 0;
  color: var(--ocf-heading);
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.single-location .ocf-location-contact-item a:hover { color: var(--ocf-primary); }

.single-location .ocf-location-map-wrap {
  display: grid;
  gap: 0.85rem;
}

.single-location .ocf-location-map-card {
  overflow: hidden;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius);
  background: var(--ocf-bg-alt);
  box-shadow: var(--card-shadow);
}

.single-location .ocf-location-map-card iframe {
  display: block;
  width: 100%;
  height: clamp(20rem, 38vw, 31rem);
  border: 0;
  filter: saturate(0.82) contrast(0.98);
}

.single-location .ocf-location-map-card__actions {
  display: flex;
  justify-content: flex-end;
  padding: 0.9rem 1.1rem;
  border-top: 1px solid var(--ocf-border-light);
  background: var(--ocf-bg);
}

@media (max-width: 760px) {
  .single-location .ocf-location-contact-grid { grid-template-columns: 1fr; }
  .single-location .ocf-location-map-card iframe { height: 20rem; }
}
/* OCF-MANAGED:END alignwell-location-layout */

/* OCF-MANAGED:START alignwell-service-area-detail-v1 */
/* Selected inner-page direction: editorial split hero + minimal sticky CTA. */
.single-service_area .ocf-service-detail-hero {
  padding-block: clamp(3rem, 4vw, 4.5rem);
  border-bottom: 1px solid var(--ocf-border-light);
  background: var(--ocf-bg);
}

.single-service_area .ocf-service-detail-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 1fr);
  gap: clamp(2.5rem, 4vw, 4.5rem);
  align-items: center;
}

.single-service_area .ocf-service-detail-hero__copy {
  min-width: 0;
  max-width: none;
}

.single-service_area .ocf-service-detail-hero__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin: 0 0 1.25rem;
  color: var(--ocf-body);
  font-size: var(--font-label-size);
  font-weight: 600;
}

.single-service_area .ocf-service-detail-hero__breadcrumb a:hover,
.single-service_area .ocf-service-detail-hero__breadcrumb a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.single-service_area .ocf-service-detail-hero__title {
  max-width: none;
  margin: 0;
  color: var(--ocf-heading);
}

.single-service_area .ocf-service-detail-hero__divider {
  width: 4rem;
  height: 2px;
  margin-block: 1.25rem;
  background: var(--ocf-bg-alt);
}

.single-service_area .ocf-service-detail-hero__intro {
  max-width: 43rem;
  margin: 0;
  color: var(--ocf-body);
  font-size: clamp(1rem, 1.25vw, 1.125rem);
  line-height: 1.72;
}

.single-service_area .ocf-service-detail-hero__media {
  width: min(100%, 36rem);
  justify-self: end;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--card-radius-lg);
  background: var(--ocf-bg-alt);
}

.single-service_area .ocf-service-detail-hero__media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 6 / 4;
  object-fit: cover;
}

.single-service_area .ocf-detail-section {
  padding-top: clamp(2.25rem, 3vw, 3rem);
}

@media (min-width: 1024px) {
  .single-service_area .ocf-detail-grid {
    grid-template-columns: minmax(18rem, 20rem) minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 4rem);
    align-items: start;
  }

  .single-service_area .ocf-detail-content {
    max-width: 49rem;
  }

  .single-service_area .ocf-detail-aside {
    display: block;
    grid-column: 1;
    grid-row: 1;
    align-self: stretch;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .single-service_area .ocf-detail-content {
    grid-column: 2;
    grid-row: 1;
  }
}

.single-service_area .ocf-detail-content .prose > p:first-child {
  display: none;
}

.single-service_area .ocf-detail-sticky {
  top: 2rem;
  display: block;
  gap: 0;
  padding: 1.5rem;
  border: var(--card-border-width) solid color-mix(in srgb, var(--ocf-primary) 20%, transparent);
  border-radius: var(--card-radius-lg);
  background:
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--ocf-primary) 7%, var(--ocf-bg)) 0%,
      color-mix(in srgb, var(--ocf-primary) 14%, var(--ocf-bg)) 100%
    );
  box-shadow:
    0 9px 22px color-mix(in srgb, var(--ocf-primary) 8%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--ocf-bg) 68%, transparent);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.single-service_area .ocf-detail-sticky-heading {
  margin: 0 0 0.75rem;
  color: var(--ocf-heading);
  font-size: clamp(1.2rem, 1.6vw, 1.45rem);
  line-height: 1.2;
}

.single-service_area .ocf-detail-sticky-desc {
  margin: 0 0 1.25rem;
  color: var(--ocf-body);
  font-size: var(--text-sm);
  line-height: 1.6;
}

.single-service_area .ocf-detail-sticky-btn {
  display: flex;
  width: 100%;
  min-height: 3.5rem;
  text-transform: none;
  letter-spacing: normal;
  gap: 0.5rem;
  justify-content: space-between;
  padding-inline: 1.15rem;
  font-size: 1rem;
  letter-spacing: normal;
  background: color-mix(in srgb, var(--ocf-primary) 78%, var(--ocf-heading) 22%);
  box-shadow: 0 4px 11px color-mix(in srgb, var(--ocf-primary) 14%, transparent);
}

.single-service_area .ocf-detail-sticky-phone {
  display: block;
  padding-top: 0.75rem;
  margin-top: 0.75rem;
  border-top: 1px solid color-mix(in srgb, var(--ocf-primary) 14%, transparent);
  color: var(--ocf-heading);
  font-size: var(--text-sm);
  font-weight: 600;
  text-align: left;
}

.single-service_area .ocf-detail-sticky-phone:hover,
.single-service_area .ocf-detail-sticky-phone:focus-visible {
  color: var(--ocf-primary);
}

@media (max-width: 1023px) {
  .single-service_area .ocf-service-detail-hero__grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .single-service_area .ocf-service-detail-hero__copy {
    max-width: 46rem;
  }

  .single-service_area .ocf-service-detail-hero__media {
    width: 100%;
    justify-self: stretch;
    min-height: 0;
  }
}

@media (max-width: 600px) {
  .single-service_area .ocf-service-detail-hero {
    padding-block: 2rem 2.5rem;
  }

  .single-service_area .ocf-service-detail-hero__breadcrumb {
    margin-bottom: 1.25rem;
  }

  .single-service_area .ocf-service-detail-hero__title {
    max-width: 100%;
  }

  .single-service_area .ocf-service-detail-hero__media img {
    aspect-ratio: 6 / 4;
  }
}
/* OCF-MANAGED:END alignwell-service-area-detail-v1 */

/* OCF-MANAGED:START alignwell-global-services-v1 */
/* Keep every shared services component on the normal page surface and in the homepage card treatment. */
.ocf-services {
  background: var(--ocf-bg);
}

.ocf-services .ocf-services-header {
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

.ocf-services .ocf-svc-viewport {
  padding: 0;
  margin: 0;
}

.ocf-services .ocf-svc-track {
  --grid-gap: clamp(1rem, 1.8vw, 1.5rem);
}

.ocf-services .ocf-svc-card {
  overflow: hidden;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius-lg);
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
  clip-path: none;
  box-shadow: var(--card-shadow);
}

.ocf-services .ocf-svc-card:hover {
  border-color: var(--ocf-border-light);
  box-shadow: var(--card-shadow-hover);
  transform: translateY(-0.15rem);
}

.ocf-services .ocf-svc-card-img {
  position: relative;
  aspect-ratio: 2 / 1;
  overflow: hidden;
  border-radius: 0;
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
}

.ocf-services .ocf-svc-card-img::after {
  display: none;
}

.ocf-services .ocf-svc-card-img img {
  height: 100%;
  object-fit: cover;
}

.ocf-services .ocf-svc-card-body {
  display: grid;
  min-height: 0;
  grid-template-rows: auto auto auto;
  align-content: start;
  gap: clamp(0.7rem, 1.25vw, 1rem);
  padding: clamp(1.35rem, 2.1vw, 1.8rem);
  padding-bottom: clamp(0.75rem, 1.1vw, 1rem);
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.ocf-services .ocf-svc-card-body h3 {
  font-size: clamp(1.15rem, 1.55vw, 1.35rem);
}

.ocf-services .ocf-svc-card-body p {
  display: block;
  font-size: 1rem;
  overflow: visible;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
  text-overflow: clip;
}

.ocf-services .ocf-svc-card-cta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: auto;
  margin-top: clamp(0.35rem, 0.8vw, 0.7rem);
  color: var(--ocf-heading);
}

.ocf-services .ocf-svc-card-cta > span:first-child {
  display: none;
}

.ocf-services .ocf-svc-arrow {
  display: inline-flex;
  width: 1.35rem;
  height: 1.35rem;
  color: var(--ocf-heading);
}

.ocf-services .ocf-svc-arrow svg {
  width: 100%;
  height: 100%;
}

.ocf-services .ocf-svc-card:hover .ocf-svc-arrow {
  background: transparent;
  color: var(--ocf-heading);
}

/* OCF-MANAGED:END alignwell-global-services-v1 */

/* OCF-MANAGED:START alignwell-about-global-v1 */
/* The About section is a shared global section; keep its rhythm identical on home and About pages. */
#about.ocf-about.section-padding {
  padding: 64px 0;
}
/* OCF-MANAGED:END alignwell-about-global-v1 */

/* OCF-MANAGED:START alignwell-inner-service-spacing-v1 */
/* Match inner-page dividers to the homepage hero and give the breadcrumb a little more air below the global header. */
.single-service .ocf-service-detail-hero__divider,
.single-service_area .ocf-service-detail-hero__divider {
  background: color-mix(in srgb, var(--ocf-secondary) 45%, var(--ocf-bg-alt));
}

@media (min-width: 601px) {
  .single-service .ocf-service-detail-hero,
  .single-service_area .ocf-service-detail-hero {
    padding-top: clamp(4.5rem, 5vw, 5.5rem);
  }
}
/* OCF-MANAGED:END alignwell-inner-service-spacing-v1 */

/* OCF-MANAGED:START alignwell-mobile-header-v1 */
/* Add a small, intentional vertical buffer around the mobile/tablet logo. */
@media (max-width: 980px) {
  :root {
    --nav-height: 5.125rem;
  }

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

  .nav-logo {
    padding-block: 0.5rem;
  }
}
/* OCF-MANAGED:END alignwell-mobile-header-v1 */

/* OCF-MANAGED:START alignwell-section-badges-v1 */
/* Reviews and Gallery use the shared eyebrow badge instead of hiding the section label. */
body.home #testimonials .ocf-testimonials-heading > .ocf-eyebrow-badge,
body.home #gallery .ocf-gallery-heading > .ocf-eyebrow-badge,
body.home #commitments .ocf-commitments-content .ocf-eyebrow-badge[data-ocf-field="about_values_eyebrow"] {
  display: inline-flex !important;
}
/* OCF-MANAGED:END alignwell-section-badges-v1 */

/* OCF-MANAGED:START alignwell-footer-logo-v1 */
/* Use the global logo as the footer brand mark instead of repeating the business name. */
.site-footer .footer-logo-img,
.site-footer .footer-logo-img--placeholder {
  display: block !important;
  width: auto;
  height: auto;
  max-width: min(13rem, 100%);
  max-height: 3.5rem;
  margin-bottom: 1.25rem;
  object-fit: contain;
  object-position: left center;
}

.site-footer .footer-brand-name {
  display: none;
}
/* OCF-MANAGED:END alignwell-footer-logo-v1 */

/* OCF-MANAGED:START alignwell-contact-page-v1 */
/* Contact page: keep every contact fact in one icon stack and use the shared card language for the form. */
.page-template-page-contact .ocf-contact-meta {
  gap: 1.25rem;
  margin-top: 1.75rem;
}

.page-template-page-contact .ocf-contact-details {
  margin-top: 0;
}

.page-template-page-contact .ocf-contact-hours {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  column-gap: 1rem;
  align-items: start;
  max-width: 34rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.page-template-page-contact .ocf-contact-hours-label {
  display: contents;
}

.page-template-page-contact .ocf-contact-hours-label svg {
  grid-column: 1;
  grid-row: 1 / span 2;
  box-sizing: border-box;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0.65rem;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--radius);
  background: var(--ocf-bg-alt);
  color: var(--ocf-accent);
}

.page-template-page-contact .ocf-contact-hours-label span {
  grid-column: 2;
  margin-top: 0.25rem;
  font-family: var(--ocf-font-heading), Georgia, serif;
  color: var(--ocf-heading);
  font-size: var(--text-base);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: normal;
  text-transform: none;
}

.page-template-page-contact .ocf-hours-list {
  grid-column: 2;
  gap: 0.18rem;
  margin-top: 0.28rem;
}

.page-template-page-contact .ocf-hours-list li {
  justify-content: flex-start;
  gap: 0.45rem;
  border: 0;
  padding: 0;
  color: var(--ocf-heading);
  font-size: var(--font-label-size);
  line-height: 1.45;
}

.page-template-page-contact .ocf-hours-list li .text-body {
  color: var(--ocf-body);
  font-size: inherit;
}

.page-template-page-contact .ocf-hours-list li .text-body::after {
  content: ':';
}

.page-template-page-contact .ocf-contact__form .hero-form-card {
  padding: clamp(1.5rem, 2.5vw, 2.25rem);
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius);
  background: color-mix(in srgb, var(--ocf-bg) 94%, var(--ocf-bg-alt));
  box-shadow: var(--card-shadow);
}

.page-template-page-contact .ocf-contact__form .hero-form-title {
  margin-bottom: 1.1rem;
}

.page-template-page-contact .ocf-contact__form .hero-form-fields {
  gap: 0.8rem;
}

.page-template-page-contact .ocf-contact__form input,
.page-template-page-contact .ocf-contact__form textarea,
.page-template-page-contact .ocf-contact__form select {
  border-width: 1px;
  background: color-mix(in srgb, var(--ocf-bg-alt) 64%, var(--ocf-bg));
}

/* OCF-MANAGED:END alignwell-contact-page-v1 */

/* OCF-MANAGED:START alignwell-hero-proof-v1 */
/* Put compact Google proof after the primary action without changing the global H1 scale. */
body.home .ocf-hero--image-split .ocf-hero__rating {
  order: 10;
  gap: 0.55rem;
  margin: clamp(1.15rem, 2vw, 1.5rem) 0 0;
  color: var(--ocf-body);
  font-size: var(--text-sm);
  line-height: 1.4;
}

body.home .ocf-hero--image-split .ocf-hero__stars {
  display: none;
}

body.home .ocf-hero--image-split .ocf-hero__google-icon {
  display: block;
  width: 1.2rem;
  height: 1.2rem;
  flex: 0 0 auto;
}

body.home .ocf-hero--image-split .ocf-hero__rating-value {
  color: var(--ocf-heading);
  font-weight: 600;
}

body.home .ocf-hero--image-split .ocf-hero__rating-label {
  color: var(--ocf-body);
}

/* Reuse the footer CTA phone callout beside the hero's primary action. */
body.home .ocf-hero--image-split .ocf-hero__phone-callout {
  display: grid;
  gap: 0.15rem;
  min-height: 3.75rem;
  padding-left: clamp(2rem, 4vw, 4rem);
  border-left: 1px solid var(--ocf-border);
  align-content: center;
  color: var(--ocf-body);
  font-size: var(--text-sm);
}

body.home .ocf-hero--image-split .ocf-hero__phone-label {
  color: var(--ocf-body);
  font-size: var(--text-sm);
  font-weight: 400;
  line-height: 1.35;
}

body.home .ocf-hero.ocf-hero--image-split .ocf-hero__phone,
body.home .ocf-hero.ocf-hero--image-split .ocf-hero__phone:hover {
  color: var(--ocf-primary);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
}

@media (max-width: 600px) {
  body.home .ocf-hero--image-split .ocf-hero__phone-callout {
    width: 100%;
    min-height: 0;
    padding-top: 1.25rem;
    padding-left: 0;
    border-top: 1px solid var(--ocf-border-light);
    border-left: 0;
  }
}
/* OCF-MANAGED:END alignwell-hero-proof-v1 */

/* OCF-MANAGED:START alignwell-footer-contact-v1 */
/* Reuse the contact-page icon stack in a compact treatment for the dark footer. */
.site-footer .footer-grid {
  gap: clamp(2rem, 3vw, 3rem);
}

.site-footer .footer-contact-links {
  display: grid;
  gap: 1rem;
}

.site-footer .footer-contact-links a,
.site-footer .footer-address,
.site-footer .footer-contact-hours {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: 0.4rem;
  align-items: start;
  min-width: 0;
  color: var(--ocf-body-alt);
  line-height: 1.5;
}

.site-footer .footer-contact-links a > span,
.site-footer .footer-address,
.site-footer .footer-contact-hours__body {
  overflow-wrap: anywhere;
}

.site-footer .footer-contact-links > a > svg,
.site-footer .footer-address > svg,
.site-footer .footer-contact-hours > svg {
  display: block;
  box-sizing: border-box;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0.42rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ocf-heading-alt);
}

.site-footer .footer-contact-hours__body {
  display: grid;
  gap: 0.16rem;
  padding-top: 0.05rem;
}

.site-footer .footer-contact-hours__body strong {
  color: var(--ocf-heading-alt);
  font-family: var(--ocf-font-heading), Georgia, serif;
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1.35;
}

.site-footer .footer-contact-hours__body > span {
  color: var(--ocf-body-alt);
  font-size: var(--text-sm);
  line-height: 1.45;
}

.site-footer .footer-contact-links a:hover,
.site-footer .footer-contact-links a:focus-visible {
  color: var(--ocf-heading-alt);
}

.site-footer .footer-contact-links a:hover > svg,
.site-footer .footer-contact-links a:focus-visible > svg {
  border-color: transparent;
  background: transparent;
  color: var(--ocf-heading-alt);
}
/* OCF-MANAGED:END alignwell-footer-contact-v1 */

/* OCF-MANAGED:START alignwell-mobile-hero-radius-v1 */
/* When the split hero stacks, soften only the lower edge of the image. */
@media (max-width: 980px) {
  body.home .ocf-hero--image-split .ocf-hero__visual {
    border-radius: 0 0 var(--card-radius) var(--card-radius);
  }

  body.home .ocf-hero--image-split .ocf-hero__visual img {
    border-radius: inherit;
  }
}
/* OCF-MANAGED:END alignwell-mobile-hero-radius-v1 */

/* OCF-MANAGED:START alignwell-footer-bottom-v1 */
/* Two-part legal bar: dynamic copyright and policy links. */
.site-footer .footer-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.5rem;
  align-items: center;
}

.site-footer .footer-copyright {
  margin: 0;
  color: var(--ocf-body-alt);
  font-size: var(--text-sm);
  line-height: 1.5;
  text-align: left;
  white-space: nowrap;
}

.site-footer .footer-bottom-links {
  justify-self: end;
}

@media (max-width: 760px) {
  .site-footer .footer-bottom {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    justify-items: start;
  }

  .site-footer .footer-copyright {
    text-align: left;
    white-space: normal;
  }

  .site-footer .footer-bottom-links {
    justify-self: start;
  }
}
/* OCF-MANAGED:END alignwell-footer-bottom-v1 */

/* OCF-MANAGED:START alignwell-single-post-v1 */
/* Blog posts share the selected service-page editorial split and sticky CTA. */
.single-post .ocf-service-detail-hero {
  padding-block: clamp(3rem, 4vw, 4.5rem);
  border-bottom: 1px solid var(--ocf-border-light);
  background: var(--ocf-bg);
}

.single-post .ocf-service-detail-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 1fr);
  gap: clamp(2.5rem, 4vw, 4.5rem);
  align-items: center;
}

.single-post .ocf-service-detail-hero__copy {
  min-width: 0;
  max-width: none;
}

.single-post .ocf-service-detail-hero__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin: 0 0 1.25rem;
  color: var(--ocf-body);
  font-size: var(--font-label-size);
  font-weight: 600;
}

.single-post .ocf-service-detail-hero__breadcrumb a:hover,
.single-post .ocf-service-detail-hero__breadcrumb a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.single-post .ocf-service-detail-hero__title {
  max-width: none;
  margin: 0;
  color: var(--ocf-heading);
}

.single-post .ocf-service-detail-hero__divider {
  width: 4rem;
  height: 2px;
  margin-block: 1.25rem;
  background: var(--ocf-bg-alt);
}

.single-post .ocf-service-detail-hero__intro {
  max-width: 43rem;
  margin: 0;
  color: var(--ocf-body);
  font-size: clamp(1rem, 1.25vw, 1.125rem);
  line-height: 1.72;
}

.single-post .ocf-service-detail-hero__media {
  width: min(100%, 36rem);
  justify-self: end;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--card-radius-lg);
  background: var(--ocf-bg-alt);
}

.single-post .ocf-service-detail-hero__media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 6 / 4;
  object-fit: cover;
}

.single-post .ocf-detail-section {
  padding-top: clamp(2.25rem, 3vw, 3rem);
}

@media (min-width: 1024px) {
  .single-post .ocf-detail-grid {
    grid-template-columns: minmax(18rem, 20rem) minmax(0, 1fr);
    gap: clamp(2rem, 4vw, 4rem);
    align-items: start;
  }

  .single-post .ocf-detail-content {
    max-width: 49rem;
  }

  .single-post .ocf-detail-aside {
    display: block;
    grid-column: 1;
    grid-row: 1;
    align-self: stretch;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .single-post .ocf-detail-content {
    grid-column: 2;
    grid-row: 1;
  }
}

.single-post .ocf-detail-content .prose > p:first-child {
  display: block;
}

.single-post .ocf-detail-sticky {
  top: 2rem;
  display: block;
  gap: 0;
  padding: 1.5rem;
  border: var(--card-border-width) solid color-mix(in srgb, var(--ocf-primary) 20%, transparent);
  border-radius: var(--card-radius-lg);
  background:
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--ocf-primary) 7%, var(--ocf-bg)) 0%,
      color-mix(in srgb, var(--ocf-primary) 14%, var(--ocf-bg)) 100%
    );
  box-shadow:
    0 9px 22px color-mix(in srgb, var(--ocf-primary) 8%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--ocf-bg) 68%, transparent);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.single-post .ocf-detail-sticky-heading {
  margin: 0 0 0.75rem;
  color: var(--ocf-heading);
  font-size: clamp(1.2rem, 1.6vw, 1.45rem);
  line-height: 1.2;
}

.single-post .ocf-detail-sticky-desc {
  margin: 0 0 1.25rem;
  color: var(--ocf-body);
  font-size: var(--text-sm);
  line-height: 1.6;
}

.single-post .ocf-detail-sticky-btn {
  display: flex;
  width: 100%;
  min-height: 3.5rem;
  text-transform: none;
  letter-spacing: normal;
  gap: 0.5rem;
  justify-content: space-between;
  padding-inline: 1.15rem;
  font-size: 1rem;
  letter-spacing: normal;
  background: color-mix(in srgb, var(--ocf-primary) 78%, var(--ocf-heading) 22%);
  box-shadow: 0 4px 11px color-mix(in srgb, var(--ocf-primary) 14%, transparent);
}

.single-post .ocf-detail-sticky-phone {
  display: block;
  padding-top: 0.75rem;
  margin-top: 0.75rem;
  border-top: 1px solid color-mix(in srgb, var(--ocf-primary) 14%, transparent);
  color: var(--ocf-heading);
  font-size: var(--text-sm);
  font-weight: 600;
  text-align: left;
}

.single-post .ocf-detail-sticky-phone:hover,
.single-post .ocf-detail-sticky-phone:focus-visible {
  color: var(--ocf-primary);
}

@media (max-width: 1023px) {
  .single-post .ocf-service-detail-hero__grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .single-post .ocf-service-detail-hero__copy {
    max-width: 46rem;
  }

  .single-post .ocf-service-detail-hero__media {
    width: 100%;
    justify-self: stretch;
    min-height: 0;
  }
}

@media (max-width: 600px) {
  .single-post .ocf-service-detail-hero {
    padding-block: 2rem 2.5rem;
  }

  .single-post .ocf-service-detail-hero__breadcrumb {
    margin-bottom: 1.25rem;
  }

  .single-post .ocf-service-detail-hero__title {
    max-width: 100%;
  }

  .single-post .ocf-service-detail-hero__media img {
    aspect-ratio: 6 / 4;
  }
}

/* Preserve the shared tonal hero treatment after the cloned base background rule. */
.single-post .ocf-service-detail-hero.ocf-inner-hero-gradient {
  background-color: var(--ocf-bg);
  background-image:
    radial-gradient(
      circle at 94% 4%,
      color-mix(in srgb, var(--ocf-primary) 8%, transparent) 0%,
      color-mix(in srgb, var(--ocf-primary) 4%, transparent) 34%,
      transparent 72%
    ),
    radial-gradient(
      circle at 7% 96%,
      color-mix(in srgb, var(--ocf-primary) 3%, transparent) 0%,
      transparent 54%
    );
}

.single-post .ocf-service-detail-hero__divider {
  background: color-mix(in srgb, var(--ocf-secondary) 45%, var(--ocf-bg-alt));
}

@media (min-width: 601px) {
  .single-post .ocf-service-detail-hero {
    padding-top: clamp(4.5rem, 5vw, 5.5rem);
  }
}
/* OCF-MANAGED:END alignwell-single-post-v1 */

/* OCF-MANAGED:START alignwell-blog-card-v1 */
/* Blog cards mirror the live global service-card proportions and surface. */
.post-card--article {
  overflow: hidden;
  border: 1px solid var(--ocf-border-light);
  border-radius: var(--card-radius-lg);
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
  box-shadow: var(--card-shadow);
}

.post-card--article:hover {
  border-color: var(--ocf-border-light);
  box-shadow: var(--card-shadow-hover);
  transform: translateY(-0.15rem);
}

.post-card--article .post-card-image {
  aspect-ratio: 2 / 1;
  overflow: hidden;
  background: color-mix(in srgb, var(--ocf-bg-alt) 30%, var(--ocf-bg));
}

.post-card--article .post-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.post-card--article .post-card-body {
  display: grid;
  min-height: 0;
  grid-template-rows: auto auto auto auto;
  align-content: start;
  gap: clamp(0.7rem, 1.25vw, 1rem);
  padding: clamp(1.35rem, 2.1vw, 1.8rem);
  padding-bottom: clamp(0.9rem, 1.25vw, 1.15rem);
}

.post-card--article .post-card-meta,
.post-card--article .post-card-title,
.post-card--article .post-card-excerpt {
  margin: 0;
}

.post-card--article .post-card-title {
  font-size: clamp(1.15rem, 1.55vw, 1.35rem);
}

.post-card--article .post-card-title a:hover,
.post-card--article .post-card-title a:focus-visible {
  color: var(--ocf-heading);
}

.post-card--article .post-card-excerpt {
  display: block;
  font-size: 1rem;
  overflow: visible;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
  text-overflow: clip;
}

.post-card--article .post-card-actions {
  margin-top: clamp(0.35rem, 0.8vw, 0.7rem);
}

.post-card--article .post-card-read-more--text {
  display: inline-flex;
  width: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--ocf-heading);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: normal;
  line-height: 1.4;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.24em;
  text-transform: none;
}

.post-card--article .post-card-read-more--text:hover,
.post-card--article .post-card-read-more--text:focus-visible {
  background: transparent;
  box-shadow: none;
  color: var(--ocf-primary);
  transform: none;
}
/* OCF-MANAGED:END alignwell-blog-card-v1 */

/* OCF-MANAGED:START alignwell-footer-cta-premium-surface-v1 */
/* Visual trial: transfer the scrolling CTA surface to the interlocking footer CTA. */
.site-footer .footer-cta {
  border: 1px solid color-mix(in srgb, var(--ocf-primary) 20%, transparent);
  background:
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--ocf-primary) 7%, var(--ocf-bg)) 0%,
      color-mix(in srgb, var(--ocf-primary) 14%, var(--ocf-bg)) 100%
    );
  box-shadow: 0 9px 22px color-mix(in srgb, var(--ocf-primary) 8%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--ocf-bg) 68%, transparent);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

/* Keep the footer's light cutout ring while sharing the same surface treatment. */
.site-footer .footer-cta {
  box-shadow:
    0 0 0 clamp(0.45rem, 0.7vw, 0.7rem) var(--ocf-bg),
    0 9px 22px color-mix(in srgb, var(--ocf-primary) 8%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--ocf-bg) 68%, transparent);
}
/* OCF-MANAGED:END alignwell-footer-cta-premium-surface-v1 */

/* OCF-MANAGED:START alignwell-primary-button-consolidation-v1 */
/* btn-primary is the canonical filled CTA; component classes are layout modifiers only. */
:is(a, button, input).btn-primary,
:is(a, button, input).btn-primary:visited {
  color: var(--ocf-primary-contrast);
}

:is(a, button, input).btn-primary:hover,
:is(a, button, input).btn-primary:focus-visible {
  color: var(--ocf-primary-contrast);
}
/* OCF-MANAGED:END alignwell-primary-button-consolidation-v1 */
