/* Hero: copy on a deep primary stage with a faint blueprint grid, the photo cut on a slant on the right with a secondary
 * slash and an optional rating card, and a primary trust bar underneath. Below 1024px the photo stacks under the copy
 * with a slanted top edge. */
.ocf-hero {
    --portola-trust-height: 96px;
    position: relative;
    padding: 0;
    background: var(--ocf-bg);
}

/* Stage + trust bar fill the first screen under the utility bar and nav row, so the trust bar sits in view. */
.ocf-hero__stage {
    position: relative;
    min-height: min(var(--hero-height, 760px), calc(100svh - var(--wp-admin-bar-offset, 0px) - var(--portola-utility-height, 44px) - var(--portola-nav-row-height, 104px) - var(--portola-trust-height)));
    display: flex;
    align-items: center;
    overflow: hidden;
}

/* Grid gathered around the eyebrow and headline like the footer's, thinning to a faint trace instead of covering the
 * whole stage. */
.ocf-hero__stage.portola-blueprint::before {
    -webkit-mask-image: radial-gradient(ellipse 58% 76% at 16% 24%, #000 0%, rgb(0 0 0 / 0.16) 90%, rgb(0 0 0 / 0.1) 100%);
            mask-image: radial-gradient(ellipse 58% 76% at 16% 24%, #000 0%, rgb(0 0 0 / 0.16) 90%, rgb(0 0 0 / 0.1) 100%);
}

.ocf-hero__stage > .container-global {
    position: relative;
    z-index: 1;
    flex: none;
}

.ocf-hero__content {
    max-width: min(800px, 51vw);
    padding-block: calc(var(--ocf-space-unit) * 2.5);
}

.ocf-hero__headline {
    margin: 0;
    color: var(--ocf-heading-alt);
    font-size: clamp(40px, 4vw, 64px);
    line-height: 1.02;
}

.ocf-hero__intro {
    max-width: 580px;
    margin: calc(var(--ocf-space-unit) * 1.75) 0 calc(var(--ocf-space-unit) * 2.5);
    color: var(--ocf-body-alt);
    font-size: calc(var(--font-body-size) * 1.11);
}

.ocf-hero .ocf-actions {
    display: flex;
    flex-wrap: wrap;
    gap: calc(var(--ocf-space-unit) * 1);
}

/* On the deep stage the primary action takes the secondary fill, matching the slash. */
.ocf-hero__stage .btn-primary { background: var(--ocf-secondary); color: var(--ocf-secondary-contrast); }
.ocf-hero__stage .btn-primary:hover { background: var(--ocf-secondary-hover); color: var(--ocf-secondary-contrast); }

/* Rating card on the photo, over the slash: the Google mark when reviews come from Google, the score beside the
 * stars, then the label. A soft card: light fill, hairline border, no shadow. */
.portola-rating-card {
    position: absolute;
    left: 3%;
    bottom: 44px;
    z-index: 2;
    width: 262px;
    padding: 20px 22px 18px;
    border: 1px solid var(--ocf-border);
    border-radius: 14px;
    background: color-mix(in srgb, var(--ocf-bg) 96%, var(--ocf-heading));
    color: var(--ocf-body);
}

.portola-rating-card__head {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ocf-heading);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
}

.portola-rating-card__head svg { width: 22px; height: 22px; flex: none; }

.portola-rating-card__score {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}

.portola-rating-card__score:first-child { margin-top: 0; }

.portola-rating-card__score strong {
    color: var(--ocf-heading);
    font-family: var(--ocf-font-heading), system-ui, sans-serif;
    font-size: 46px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.02em;
}

.portola-rating-card__stars { color: var(--ocf-secondary); font-size: 19px; letter-spacing: 1px; line-height: 1; }
.portola-rating-card__label { margin-top: 10px; font-size: 14px; }

html[data-theme="dark"] .portola-rating-card { border-color: var(--ocf-dark-border); background: var(--ocf-dark-bg-alt); color: var(--ocf-dark-body); }
html[data-theme="dark"] .portola-rating-card__head,
html[data-theme="dark"] .portola-rating-card__score strong { color: var(--ocf-dark-heading); }

/* The photo: right half, cut on a slant; the slash straddles the cut. */
.ocf-hero__media {
    position: absolute;
    inset: 0 0 0 auto;
    width: 42%;
}

.ocf-hero__media .portola-slash {
    left: -10px;
    background: var(--ocf-secondary);
}

/* Trust bar. */
.portola-trust {
    background: var(--portola-grad);
    color: var(--ocf-primary-contrast);
}

.portola-trust__list {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(var(--ocf-space-unit) * 1.5);
    min-height: var(--portola-trust-height);
    margin: 0 auto;
    padding-block: calc(var(--ocf-space-unit) * 1);
    list-style: none;
}

.portola-trust__list li {
    display: flex;
    align-items: center;
    gap: calc(var(--ocf-space-unit) * 0.75);
    font-family: var(--ocf-font-heading), system-ui, sans-serif;
    font-size: calc(var(--font-body-size) * 0.94);
    font-weight: 600;
}

.portola-trust__list svg { width: 22px; height: 22px; flex: none; }

@media (max-width: 1023px) {
    .ocf-hero__stage {
        display: block;
        min-height: 0;
    }

    .ocf-hero__content {
        max-width: 640px;
        padding-block: calc(var(--ocf-space-unit) * 4) calc(var(--ocf-space-unit) * 3);
    }

    .ocf-hero__media {
        position: relative;
        inset: auto;
        width: 100%;
        height: 360px;
        --strip-s: 56px;
    }

    .ocf-hero__media .portola-cut {
        inset: 0;
        clip-path: polygon(0 var(--strip-s), 100% 0, 100% 100%, 0 100%);
    }

    .ocf-hero__media .portola-slash {
        inset: 0;
        width: auto;
        background: var(--ocf-secondary);
        clip-path: polygon(0 calc(var(--strip-s) - 12px), 100% -12px, 100% 100%, 0 100%);
        z-index: -1;
    }

    .ocf-hero__media { z-index: 0; isolation: isolate; }

    .portola-trust__list { min-height: 76px; }
    .portola-trust__list li { font-size: calc(var(--font-body-size) * 0.8); gap: 8px; }
    .portola-trust__list svg { width: 18px; height: 18px; }
}

@media (max-width: 767px) {
    .ocf-hero__content { padding-block: calc(var(--ocf-space-unit) * 2.75) calc(var(--ocf-space-unit) * 2.25); }
    .ocf-hero__intro { margin: calc(var(--ocf-space-unit) * 1.25) 0 calc(var(--ocf-space-unit) * 2); }
    .ocf-hero .ocf-actions { flex-direction: column; align-items: stretch; }
    .portola-rating-card { left: 16px; bottom: 16px; width: auto; padding: 14px 16px; }
    .portola-rating-card__score strong { font-size: 36px; }
    .ocf-hero__media { height: 260px; --strip-s: 36px; }
    .portola-trust__list { flex-direction: column; align-items: flex-start; gap: 14px; padding-block: 26px; }
    .portola-trust__list li { font-size: calc(var(--font-body-size) * 0.94); }
}

/* The provisioner merges design.css after the pack, which hides .ocf-hero__eyebrow; keep it visible. */
.ocf-hero .ocf-hero__eyebrow { display: inline-flex; }
/* Eyebrow → headline reads the same as headline → intro (baseline to cap height). */
.ocf-hero .ocf-hero__eyebrow { margin-bottom: 30px; }

/* OCF_AGENT_BLOCK:hero-inspection-video START */
.ocf-hero--video .ocf-hero__stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
    align-items: center;
    gap: clamp(28px, 4vw, 64px);
    padding-inline: var(--ocf-container-gutter, clamp(20px, 5.56vw, 80px));
}
.ocf-hero--video .ocf-hero__stage > .container-global {
    width: 100%;
    max-width: none;
    padding-inline: 0;
    min-width: 0;
}
.ocf-hero--video .ocf-hero__content {
    width: 100%;
    max-width: none;
}
.ocf-hero--video .ocf-hero__media {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    min-width: 0;
    padding-block: 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    z-index: 1;
}
.ocf-hero--video .ocf-hero__video-player {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000;
}
.ocf-hero--video .ocf-hero__video-player iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    color-scheme: light;
}
.ocf-hero--video .ocf-hero__video-note {
    margin: 12px 0 0;
    color: var(--ocf-body-alt);
    font-size: var(--font-small-size, 14px);
    line-height: 1.5;
}
.ocf-hero--video .portola-rating-card {
    position: static;
    margin-top: 24px;
    width: auto;
    max-width: 100%;
}
@media (max-width: 1023px) {
    .ocf-hero--video .ocf-hero__stage {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }
    .ocf-hero--video .ocf-hero__content { padding-bottom: 24px; }
    .ocf-hero--video .ocf-hero__media { padding-block: 0 36px; }
}
@media (max-width: 767px) {
    .ocf-hero--video .ocf-hero__media { padding-bottom: 28px; }
    .ocf-hero--video .portola-rating-card { margin-top: 18px; }
}
/* OCF_AGENT_BLOCK:hero-inspection-video END */

/* OCF_AGENT_BLOCK:foundry-inspired-hero START */
.ocf-hero .ocf-hero__stage { display:flex;position:relative;isolation:isolate;align-items:center;min-height:var(--ocf-hero-height);padding:80px 0;background:var(--ocf-bg-dark); }
.ocf-hero .ocf-hero__stage > .container-global { width:min(100% - (var(--container-pad) * 2),var(--container-max));max-width:var(--container-max);padding:0;margin-inline:auto; }
.ocf-hero__backdrop { position:absolute;inset:0;z-index:-2;margin:0; }
.ocf-hero__backdrop img { width:100%;height:100%;object-fit:cover; }
.ocf-hero .ocf-hero__stage::after { content:'';position:absolute;inset:0;z-index:-1;background:color-mix(in srgb,var(--ocf-bg-dark) 56%,transparent);pointer-events:none; }
.ocf-hero .ocf-hero__content { width:100%;max-width:var(--ocf-hero-content-width);padding:0;margin-inline:auto;text-align:center; }
.ocf-hero .ocf-hero__eyebrow { display:inline-flex;justify-content:center;margin:0 0 25px;color:var(--ocf-heading-alt);font-family:var(--ocf-font-body),sans-serif;letter-spacing:.22em; }
.ocf-hero .ocf-hero__headline { font-family:var(--ocf-font-heading),Georgia,serif;font-size:var(--ocf-font-h1-size);font-weight:var(--ocf-font-h1-weight);line-height:var(--ocf-font-h1-line);color:var(--ocf-heading-alt);letter-spacing:-.015em; }
.ocf-hero .ocf-hero__intro { max-width:650px;margin:28px auto 36px;font-size:18px;line-height:1.8;color:var(--ocf-heading-alt); }
.ocf-hero .ocf-actions { flex-direction:row;justify-content:center;gap:16px; }
.ocf-hero .ocf-hero__stage .btn-primary { border-color:var(--ocf-secondary);background:var(--ocf-secondary);color:var(--ocf-heading); }
.ocf-hero .ocf-hero__stage .btn-primary:hover { border-color:var(--ocf-secondary-hover);background:var(--ocf-secondary-hover); }
.ocf-hero .ocf-hero__stage .btn-secondary { border:1px solid var(--ocf-heading-alt);background:transparent;color:var(--ocf-heading-alt); }
.ocf-hero .ocf-hero__stage .btn-secondary:hover { background:var(--ocf-heading-alt);color:var(--ocf-bg-dark); }
.ocf-hero .ocf-hero__media { position:relative;inset:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,250px);gap:16px 48px;align-items:center;width:min(100% - (var(--container-pad) * 2),var(--container-max));height:auto;min-width:0;padding:64px 0;margin-inline:auto;z-index:1; }
.ocf-hero .ocf-hero__video-player { grid-column:1;grid-row:1;width:100%;aspect-ratio:16 / 9;background:var(--ocf-bg-dark); }
.ocf-hero .ocf-hero__video-note { grid-column:1;grid-row:2;margin:0;color:var(--ocf-body);font-size:13px;line-height:1.7; }
.ocf-hero .portola-rating-card { grid-column:2;grid-row:1;position:static;width:100%;max-width:100%;margin:0;padding:30px 24px;border:1px solid var(--ocf-border);border-radius:0;background:var(--ocf-bg);color:var(--ocf-body); }
.ocf-hero .ocf-hero__media--rating-only { grid-template-columns:1fr; }
.ocf-hero .ocf-hero__media--rating-only .portola-rating-card { grid-column:1;max-width:320px;justify-self:center; }
.ocf-hero .portola-rating-card__score strong { font-family:var(--ocf-font-heading),Georgia,serif;font-weight:500; }
.ocf-hero .portola-rating-card__stars { color:var(--ocf-primary); }
.ocf-hero .portola-trust { border-block:1px solid var(--ocf-border-light);background:var(--ocf-bg-alt);color:var(--ocf-heading); }
.ocf-hero .portola-trust__list { min-height:90px; }
.ocf-hero .portola-trust__list li { font-family:var(--ocf-font-body),sans-serif;font-size:13px;font-weight:500;letter-spacing:.05em; }
@media(max-width:1023px) { .ocf-hero .ocf-hero__stage { min-height:660px;padding-block:80px; }.ocf-hero .ocf-hero__media { gap:16px 28px;padding-block:48px; } }
@media(max-width:767px) {
.ocf-hero .ocf-hero__stage { min-height:620px;padding-block:64px; }
.ocf-hero .ocf-hero__headline { font-size:clamp(36px,8vw,48px); }
.ocf-hero .ocf-hero__eyebrow { font-size:11px;letter-spacing:.16em; }
.ocf-hero .ocf-hero__intro { font-size:16px;margin-block:24px 30px; }
.ocf-hero .ocf-actions { flex-direction:column;align-items:stretch;max-width:320px;margin-inline:auto; }
.ocf-hero .ocf-hero__media { grid-template-columns:minmax(0,1fr);padding-block:36px; }
.ocf-hero .portola-rating-card { grid-column:1;grid-row:3;max-width:320px;margin:12px auto 0; }
.ocf-hero .portola-trust__list { align-items:center;gap:16px;padding-block:26px; }
}
/* OCF_AGENT_BLOCK:foundry-inspired-hero END */

/* OCF_AGENT_BLOCK:integrated-hero-video START */
.ocf-hero--video .ocf-hero__stage > .container-global {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    align-items: center;
    gap: clamp(28px, 4vw, 64px);
}
.ocf-hero--video .ocf-hero__content { min-width: 0; text-align: left; }
.ocf-hero--video .ocf-hero__eyebrow { justify-content: flex-start; }
.ocf-hero--video .ocf-hero__headline { font-size: clamp(36px, 3.7vw, 56px); }
.ocf-hero--video .ocf-hero__intro { margin: 26px 0 32px; }
.ocf-hero--video .ocf-actions { justify-content: flex-start; }
.ocf-hero--video .ocf-hero__media {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    width: 100%;
    height: auto;
    padding: 0;
    margin: 0;
}
.ocf-hero--video .ocf-hero__video-player { flex: none; width: 100%; aspect-ratio: 16 / 9; }
.ocf-hero--video .ocf-hero__video-note { color: var(--ocf-heading-alt); font-size: 13px; }
.ocf-hero--video .portola-rating-card {
    width: 100%;
    max-width: none;
    margin: 4px 0 0;
    padding: 18px 22px;
}
.ocf-hero--video .portola-rating-card__score strong { font-size: 36px; }
@media (max-width: 1023px) {
    .ocf-hero--video .ocf-hero__stage { min-height: 0; padding-block: 64px; }
    .ocf-hero--video .ocf-hero__stage > .container-global { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .ocf-hero--video .ocf-hero__content { max-width: 760px; margin-inline: auto; padding: 0; text-align: center; }
    .ocf-hero--video .ocf-hero__eyebrow { justify-content: center; }
    .ocf-hero--video .ocf-hero__headline { font-size: clamp(36px, 5.8vw, 52px); }
    .ocf-hero--video .ocf-hero__intro { margin-inline: auto; }
    .ocf-hero--video .ocf-actions { justify-content: center; }
    .ocf-hero--video .ocf-hero__media { max-width: 760px; margin-inline: auto; padding: 0; }
}
@media (max-width: 767px) {
    .ocf-hero--video .ocf-hero__stage { padding-block: 48px; }
    .ocf-hero--video .ocf-hero__stage > .container-global { gap: 30px; }
    .ocf-hero--video .ocf-hero__headline { font-size: clamp(34px, 8vw, 46px); }
    .ocf-hero--video .portola-rating-card { max-width: none; margin: 0; }
}
/* OCF_AGENT_BLOCK:integrated-hero-video END */
