/**
 * Extra Blank Landing – page-template CSS
 *
 * Usage in Divi/Extra Builder:
 * 1. Section CSS class: ebl-screen ebl-bg-cover ebl-focus-center
 * 2. Row CSS class:     ebl-content-row
 * 3. Optional panel:    ebl-panel
 * 4. Set the image and colours either below or in the Section's Custom CSS:
 *    --ebl-bg-image: url("https://example.com/image.jpg");
 *    --ebl-bg-color: #203f42;
 *    --ebl-overlay-color: rgba(32, 63, 66, 0.20);
 */

:root {
    --ebl-bg-color: #203f42;
    --ebl-bg-image: none;
    --ebl-bg-position: 50% 50%;
    --ebl-overlay-color: rgba(32, 63, 66, 0.20);
    --ebl-panel-color: rgba(255, 255, 255, 0.90);
    --ebl-panel-border-color: rgba(255, 255, 255, 0.65);
    --ebl-text-color: #172426;
    --ebl-muted-color: #526366;
    --ebl-button-color: #203f42;
    --ebl-button-text-color: #ffffff;
    --ebl-focus-color: #f4c95d;
    --ebl-content-width: 72rem;
    --ebl-page-padding: clamp(1rem, 4vw, 4rem);
    --ebl-panel-padding: clamp(1.25rem, 4vw, 3.5rem);
    --ebl-panel-radius: clamp(0.75rem, 1.6vw, 1.5rem);
    --ebl-panel-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.20);
}

html {
    min-height: 100%;
}

body.extra-blank-landing-template {
    min-height: 100%;
    margin: 0;
    overflow-x: hidden;
    background: var(--ebl-bg-color);
    color: var(--ebl-text-color);
}

body.extra-blank-landing-template,
body.extra-blank-landing-template * {
    box-sizing: border-box;
}

body.extra-blank-landing-template .ebl-site,
body.extra-blank-landing-template .ebl-entry {
    min-height: 100vh;
    margin: 0;
    padding: 0;
}

@supports (min-height: 100svh) {
    body.extra-blank-landing-template .ebl-site,
    body.extra-blank-landing-template .ebl-entry {
        min-height: 100svh;
    }
}

@supports (min-height: 100dvh) {
    body.extra-blank-landing-template .ebl-site,
    body.extra-blank-landing-template .ebl-entry {
        min-height: 100dvh;
    }
}

/* Accessible keyboard skip link. */
.ebl-skip-link {
    position: fixed;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 999999;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    background: #ffffff;
    color: #111111;
    font-weight: 700;
    text-decoration: none;
    transform: translateY(-160%);
    transition: transform 160ms ease;
}

.ebl-skip-link:focus {
    transform: translateY(0);
    outline: 3px solid var(--ebl-focus-color);
    outline-offset: 3px;
}

/**
 * FULL-SCREEN SECTION
 *
 * The colour is the lowest layer. The background image is a pseudo-element,
 * so it cannot change the section's dimensions or cause layout shift.
 * The overlay is a second pseudo-element. Actual page content sits at z-index 20.
 */
body.extra-blank-landing-template .ebl-screen,
body.extra-blank-landing-template .et_pb_section.ebl-screen {
    --ebl-local-bg-image: var(--ebl-bg-image);
    --ebl-local-bg-color: var(--ebl-bg-color);
    --ebl-local-bg-position: var(--ebl-bg-position);
    --ebl-local-overlay-color: var(--ebl-overlay-color);

    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    margin: 0 !important;
    padding: var(--ebl-page-padding) !important;
    overflow: hidden;
    background-color: var(--ebl-local-bg-color) !important;
    background-image: none !important;
}

@supports (overflow: clip) {
    body.extra-blank-landing-template .ebl-screen,
    body.extra-blank-landing-template .et_pb_section.ebl-screen {
        overflow: clip;
    }
}

@supports (min-height: 100svh) {
    body.extra-blank-landing-template .ebl-screen,
    body.extra-blank-landing-template .et_pb_section.ebl-screen {
        min-height: 100svh;
    }
}

@supports (min-height: 100dvh) {
    body.extra-blank-landing-template .ebl-screen,
    body.extra-blank-landing-template .et_pb_section.ebl-screen {
        min-height: 100dvh;
    }
}

body.extra-blank-landing-template .ebl-screen::before,
body.extra-blank-landing-template .et_pb_section.ebl-screen::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-color: transparent;
    background-image: var(--ebl-local-bg-image);
    background-repeat: no-repeat;
    background-position: var(--ebl-local-bg-position);
    background-size: cover;
    transform: translateZ(0);
}

body.extra-blank-landing-template .ebl-screen::after,
body.extra-blank-landing-template .et_pb_section.ebl-screen::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: var(--ebl-local-overlay-color);
}

/* The content stays above the image and overlay. */
body.extra-blank-landing-template .ebl-screen > *,
body.extra-blank-landing-template .et_pb_section.ebl-screen > * {
    position: relative;
    z-index: 20;
}

/**
 * COVER: fills the whole section while preserving the image ratio.
 * Cropping can occur at the edges. This is the best default for hero screens.
 */
body.extra-blank-landing-template .ebl-bg-cover::before,
body.extra-blank-landing-template .et_pb_section.ebl-bg-cover::before {
    background-size: cover;
}

/**
 * CONTAIN: shows the whole image while preserving its ratio.
 * Empty bands can appear; the brand background colour fills those bands.
 */
body.extra-blank-landing-template .ebl-bg-contain::before,
body.extra-blank-landing-template .et_pb_section.ebl-bg-contain::before {
    background-size: contain;
}

/* Focus-point helper classes. */
.ebl-focus-center { --ebl-local-bg-position: 50% 50%; }
.ebl-focus-top { --ebl-local-bg-position: 50% 0%; }
.ebl-focus-bottom { --ebl-local-bg-position: 50% 100%; }
.ebl-focus-left { --ebl-local-bg-position: 0% 50%; }
.ebl-focus-right { --ebl-local-bg-position: 100% 50%; }
.ebl-focus-top-left { --ebl-local-bg-position: 0% 0%; }
.ebl-focus-top-right { --ebl-local-bg-position: 100% 0%; }
.ebl-focus-bottom-left { --ebl-local-bg-position: 0% 100%; }
.ebl-focus-bottom-right { --ebl-local-bg-position: 100% 100%; }

/**
 * DIVI/EXTRA ROW NORMALIZATION
 * Removes the usual narrow row restriction only inside this blank template.
 */
body.extra-blank-landing-template .et_pb_section.ebl-screen .et_pb_row,
body.extra-blank-landing-template .ebl-content-row {
    width: min(100%, var(--ebl-content-width)) !important;
    max-width: var(--ebl-content-width) !important;
    margin: auto !important;
    padding: 0 !important;
}

/**
 * Optional glass-like content panel.
 */
body.extra-blank-landing-template .ebl-panel {
    width: 100%;
    padding: var(--ebl-panel-padding);
    border: 1px solid var(--ebl-panel-border-color);
    border-radius: var(--ebl-panel-radius);
    background: var(--ebl-panel-color);
    box-shadow: var(--ebl-panel-shadow);
    color: var(--ebl-text-color);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

body.extra-blank-landing-template .ebl-panel h1,
body.extra-blank-landing-template .ebl-panel h2,
body.extra-blank-landing-template .ebl-panel p {
    margin-top: 0;
}

body.extra-blank-landing-template .ebl-title {
    margin-bottom: 0.75rem;
    font-size: clamp(2rem, 7vw, 5.75rem);
    line-height: 0.98;
    letter-spacing: -0.035em;
}

body.extra-blank-landing-template .ebl-lead {
    max-width: 42rem;
    margin-bottom: 1.5rem;
    color: var(--ebl-muted-color);
    font-size: clamp(1rem, 2.2vw, 1.35rem);
    line-height: 1.65;
}

body.extra-blank-landing-template .ebl-button,
body.extra-blank-landing-template a.ebl-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    padding: 0.8rem 1.25rem;
    border: 2px solid transparent;
    border-radius: 999px;
    background: var(--ebl-button-color);
    color: var(--ebl-button-text-color);
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
}

body.extra-blank-landing-template .ebl-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.18);
}

body.extra-blank-landing-template .ebl-button:focus-visible,
body.extra-blank-landing-template a:focus-visible,
body.extra-blank-landing-template button:focus-visible {
    outline: 3px solid var(--ebl-focus-color);
    outline-offset: 4px;
}

/**
 * OPTIONAL: use a Divi Image Module as a true full-screen image layer.
 * Add ebl-image-layer to the Image Module and ebl-image-cover or
 * ebl-image-contain to the same module.
 */
body.extra-blank-landing-template .ebl-image-layer {
    position: absolute !important;
    inset: 0;
    z-index: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    pointer-events: none;
}

body.extra-blank-landing-template .ebl-image-layer .et_pb_image_wrap,
body.extra-blank-landing-template .ebl-image-layer img {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

body.extra-blank-landing-template .ebl-image-cover img {
    object-fit: cover;
    object-position: var(--ebl-local-bg-position, 50% 50%);
}

body.extra-blank-landing-template .ebl-image-contain img {
    object-fit: contain;
    object-position: var(--ebl-local-bg-position, 50% 50%);
}

/**
 * OPTIONAL: fixed-ratio panel. The image ratio remains 16:9 on every device.
 * Add ebl-ratio-frame to a module or wrapper, then place an image inside it.
 */
body.extra-blank-landing-template .ebl-ratio-frame {
    position: relative;
    width: min(100%, 72rem);
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--ebl-panel-radius);
    background: var(--ebl-bg-color);
}

body.extra-blank-landing-template .ebl-ratio-frame img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
}

/* Mobile refinements. */
@media (max-width: 767px) {
    :root {
        --ebl-page-padding: clamp(0.75rem, 4vw, 1.25rem);
        --ebl-panel-padding: clamp(1rem, 5vw, 1.75rem);
    }

    body.extra-blank-landing-template .ebl-panel {
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
    }
}

/* Respect users who prefer reduced motion. */
@media (prefers-reduced-motion: reduce) {
    body.extra-blank-landing-template *,
    body.extra-blank-landing-template *::before,
    body.extra-blank-landing-template *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Print a clean page instead of a forced viewport layout. */
@media print {
    body.extra-blank-landing-template .ebl-screen,
    body.extra-blank-landing-template .et_pb_section.ebl-screen {
        min-height: auto;
        background: #ffffff !important;
        color: #000000;
    }

    body.extra-blank-landing-template .ebl-screen::before,
    body.extra-blank-landing-template .ebl-screen::after,
    body.extra-blank-landing-template .et_pb_section.ebl-screen::before,
    body.extra-blank-landing-template .et_pb_section.ebl-screen::after {
        display: none;
    }
}
