/**
 * D-lep Fullbleed Hero – isolated component styles (WPBakery-safe).
 * Deliberately no global theme rules; all hero styles use a unique namespace.
 * Existing WPBakery rows with class dlep-hero remain untouched.
 */
.dlep-fbhero,
.dlep-fbhero *,
.dlep-fbhero *::before,
.dlep-fbhero *::after { box-sizing: border-box; }

.dlep-fbhero {
    --dlep-dark: #203b30;
    --dlep-copy: #58675e;
    position: relative;
    isolation: isolate;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100vw;
    max-width: none;
    min-height: max(790px, 100svh);
    margin: 0;
    padding: clamp(34px, 4.5vh, 60px) 0;
    left: 50%;
    transform: translateX(-50%);
    overflow: hidden;
    background: #25392c;
    color: var(--dlep-copy);
    font-family: Georgia, 'Times New Roman', Times, serif;
    font-weight: 400;
    text-align: left;
    line-height: 1.4;
}

.dlep-fbhero__photo-wrap,
.dlep-fbhero__veil {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.dlep-fbhero__photo-wrap { z-index: -2; overflow: hidden; }
.dlep-fbhero__photo {
    width: 100%;
    height: 100%;
    max-width: none;
    display: block;
    object-fit: cover;
    object-position: center;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    transform: scale(1.135);
    transform-origin: left center;
}

.dlep-fbhero__veil {
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(245, 242, 230, .20) 0%, rgba(245, 242, 230, .055) 32%, transparent 70%),
        linear-gradient(0deg, rgba(23, 37, 22, .11) 0%, transparent 27%);
}

.dlep-fbhero__cloud {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    width: min(840px, 57vw);
    min-height: 716px;
    transform: translateY(35px);
    margin: 0 0 0 clamp(5px, 4vw, 74px);
    flex: 0 0 auto;
}

.dlep-fbhero__cloud-shape {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
    filter: drop-shadow(8px 18px 26px rgba(24, 34, 28, .09));
}

.dlep-fbhero__content {
    position: relative;
    z-index: 2;
    width: 100%;
    min-width: 0;
    max-width: none;
    padding: clamp(80px, 7.5vh, 118px) clamp(66px, 7vw, 120px) clamp(75px, 7.2vh, 110px) clamp(76px, 7vw, 124px);
    overflow-wrap: break-word;
    hyphens: auto;
}

.dlep-fbhero__eyebrow {
    margin: 0 0 18px !important;
    font-size: clamp(14px, 1vw, 17px) !important;
    line-height: 1.25 !important;
    letter-spacing: .065em;
    color: var(--dlep-dark);
}

.dlep-fbhero .dlep-fbhero__heading {
    color: var(--dlep-dark) !important;
    font-family: Georgia, 'Times New Roman', Times, serif !important;
    font-size: clamp(43px, 4.05vw, 70px) !important;
    font-weight: 400 !important;
    letter-spacing: -.032em !important;
    line-height: 1.055 !important;
    text-transform: none !important;
    margin: 0 0 clamp(19px, 2.3vh, 28px) !important;
    padding: 0 !important;
    border: 0 !important;
    max-width: 5.8em;
}

.dlep-fbhero__content > p:not(.dlep-fbhero__eyebrow) {
    color: var(--dlep-copy) !important;
    font-family: inherit !important;
    font-size: clamp(16px, 1.04vw, 18px) !important;
    font-weight: 400 !important;
    line-height: 1.43 !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    max-width: none;
}

.dlep-fbhero .dlep-fbhero__points {
    display: block;
    list-style: disc outside !important;
    color: var(--dlep-copy);
    font-size: clamp(16px, 1.04vw, 18px);
    line-height: 1.47;
    margin: 6px 0 18px 19px !important;
    padding: 0 !important;
    max-width: none;
}

.dlep-fbhero .dlep-fbhero__points li {
    list-style: disc outside !important;
    display: list-item;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
    margin: 0 0 7px !important;
    padding: 0 !important;
}

.dlep-fbhero .dlep-fbhero__closing { margin-bottom: 22px !important; }

.dlep-fbhero .dlep-fbhero__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    width: auto;
    min-height: 55px;
    margin-top: 4px;
    padding: 13px 22px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 6px;
    background: #204736;
    color: #fff !important;
    font-family: Georgia, 'Times New Roman', Times, serif;
    font-size: 18px;
    line-height: 1.22;
    font-weight: 400;
    text-decoration: none !important;
    text-transform: none;
    box-shadow: 0 3px 11px rgba(16, 28, 18, .18);
    transition: background-color .2s ease, transform .2s ease;
}

.dlep-fbhero .dlep-fbhero__button:hover,
.dlep-fbhero .dlep-fbhero__button:focus-visible {
    background: #143528;
    color: #fff !important;
    transform: translateY(-2px);
}

.dlep-fbhero .dlep-fbhero__button:focus-visible { outline: 3px solid #d3b989; outline-offset: 3px; }
.dlep-fbhero__button-icon { width: 17px; height: 19px; flex: 0 0 auto; }

/* Optional mirror placement, independently configurable in WordPress. */
.dlep-fbhero--right { justify-content: flex-end; }
.dlep-fbhero--right .dlep-fbhero__cloud { margin-left: 0; margin-right: clamp(5px, 4vw, 74px); }
.dlep-fbhero--right .dlep-fbhero__cloud-shape { transform: scaleX(-1); }

/* Full-page template: intentionally no active theme menu, footer or padding. */
html:has(body.dlep-hero-canvas) { margin: 0; }
body.dlep-hero-canvas {
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
    min-width: 0;
    background: #fff;
    overflow-x: clip;
}
body.dlep-hero-canvas .dlep-canvas__main { display: block; min-height: 100svh; margin: 0; padding: 0; }
body.dlep-hero-canvas .dlep-canvas__content { max-width: 1200px; margin: 0 auto; padding: 65px clamp(20px, 6vw, 70px); }
body.dlep-hero-canvas .dlep-canvas__skip { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
body.dlep-hero-canvas .dlep-canvas__skip:focus-visible { top: 15px; left: 15px; z-index: 10; width: auto; height: auto; padding: 12px; background: #fff; clip-path: none; }

@media (max-width: 1220px) {
    .dlep-fbhero__cloud { width: 65vw; }
    .dlep-fbhero__content { padding-left: clamp(65px, 7vw, 92px); padding-right: clamp(60px, 7vw, 94px); }
    .dlep-fbhero .dlep-fbhero__heading { font-size: clamp(43px, 4.65vw, 60px) !important; }
}

@media (max-width: 920px) {
    .dlep-fbhero { min-height: max(800px, 100svh); }
    .dlep-fbhero__cloud { width: 76vw; min-height: 725px; margin-left: 10px; }
    .dlep-fbhero--right .dlep-fbhero__cloud { margin-right: 10px; }
    .dlep-fbhero__content { padding-left: clamp(54px, 7vw, 76px); padding-right: clamp(55px, 7vw, 76px); }
    .dlep-fbhero .dlep-fbhero__heading { font-size: clamp(40px, 5.3vw, 50px) !important; }
    .dlep-fbhero__photo { transform: scale(1.06); }
}

@media (max-width: 700px) {
    .dlep-fbhero,
    .dlep-fbhero--right {
        width: 100vw;
        min-height: max(850px, 100svh);
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        align-items: center;
        padding: clamp(110px, 24vh, 220px) 13px 25px;
    }
    .dlep-fbhero__photo { transform: none; }
    .dlep-fbhero__veil { background: linear-gradient(180deg, rgba(13, 38, 21, 0) 0%, rgba(13, 29, 18, .2) 100%); }
    .dlep-fbhero__cloud,
    .dlep-fbhero--right .dlep-fbhero__cloud {
        display: block;
        flex: 0 0 auto;
        width: 100%;
        min-height: 0;
        transform: none;
        margin: 0;
        border-radius: 23% 12% 20% 11% / 8% 5% 7% 6%;
        background: rgba(253, 251, 246, .965);
        box-shadow: 0 14px 40px rgba(13, 32, 19, .18);
    }
    .dlep-fbhero__cloud-shape { display: none; }
    .dlep-fbhero__content {
        width: 100%;
        padding: clamp(39px, 8vw, 60px) clamp(24px, 6vw, 40px) 38px;
    }
    .dlep-fbhero .dlep-fbhero__heading { font-size: clamp(37px, 8.8vw, 53px) !important; max-width: none; }
    .dlep-fbhero__content > p:not(.dlep-fbhero__eyebrow),
    .dlep-fbhero .dlep-fbhero__points { font-size: 16px !important; line-height: 1.5 !important; }
    .dlep-fbhero .dlep-fbhero__button { min-height: 49px; padding: 12px 17px; font-size: 16px; }
}

@media (max-width: 395px) {
    .dlep-fbhero { padding-left: 8px; padding-right: 8px; }
    .dlep-fbhero__content { padding-left: 25px; padding-right: 25px; }
    .dlep-fbhero .dlep-fbhero__heading { font-size: 37px !important; }
}

@media (prefers-reduced-motion: reduce) {
    .dlep-fbhero .dlep-fbhero__button { transition: none; }
}
