.swish-home-hero{position:relative;min-height:var(--swish-home-hero-height,100vh);display:flex;align-items:flex-end;overflow:hidden;background-image:var(--swish-hero-fallback,linear-gradient(135deg,#111827,#28292b));background-size:cover;background-position:center}.swish-home-hero__video{position:absolute;inset:0;pointer-events:none;overflow:hidden}.swish-home-hero__player{opacity:0;transition:opacity .18s ease}.swish-home-hero__video.is-playing .swish-home-hero__player{opacity:1}.swish-home-hero__player,.swish-home-hero__player iframe{position:absolute;top:50%;left:50%;width:max(100%,177.7778vh);height:max(100%,56.25vw);border:0;pointer-events:none;transform:translate(-50%,-50%)}.swish-home-hero__video-shield{position:absolute;inset:0;z-index:2;display:block;pointer-events:auto;background:transparent}.swish-home-hero__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,6,10,.76),rgba(4,6,10,.2) 60%,rgba(4,6,10,.32)),linear-gradient(to bottom,rgba(4,6,10,.18) 45%,var(--swish-bg) 100%)}.swish-home-hero__content{position:relative;z-index:2;width:min(var(--swish-content-width,1380px),calc(100% - 40px));margin-inline:auto;padding-bottom:clamp(90px,13vw,180px)}.swish-home-hero h1{max-width:900px;margin:0;font-size:clamp(2.75rem,5.5vw,6rem);line-height:.9;letter-spacing:-.055em;text-transform:uppercase;color:#fff}.swish-kicker{margin:0 0 18px;color:var(--swish-accent);font-weight:800;text-transform:uppercase;letter-spacing:.16em}.swish-page-hero{position:relative;height:var(--swish-page-hero-height,400px);background:linear-gradient(135deg,#1d2634,#28292b);display:flex;align-items:flex-end;overflow:hidden}.swish-page-hero::before{content:"";position:absolute;inset:0;z-index:0;background-image:var(--swish-page-hero,linear-gradient(135deg,#1d2634,#28292b));background-size:cover;background-position:var(--swish-page-hero-position-x,50%) var(--swish-page-hero-position-y,50%);opacity:var(--swish-page-hero-image-opacity,1);pointer-events:none}.swish-page-hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(3,6,11,.78),rgba(3,6,11,.18))}.swish-page-hero__content{position:relative;z-index:2;width:min(var(--swish-content-width,1380px),calc(100% - 40px));margin-inline:auto;padding-bottom:54px}.swish-page-hero h1{margin:0;color:#fff;font-size:clamp(2.4rem,4.8vw,4.75rem);line-height:1;text-transform:uppercase;letter-spacing:-.04em}.swish-page-hero__accent{margin:0 0 14px;color:var(--swish-accent);font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.swish-page-hero__tagline{max-width:760px;margin:18px 0 0;color:rgba(255,255,255,.88);font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.55}

/* The homepage hero shortcode must break out of any WordPress block-layout inset. */
body.home .wp-site-blocks > .wp-block-shortcode:has(> .swish-home-hero) {
    width: 100vw;
    max-width: none;
    margin-inline: calc(50% - 50vw);
    padding: 0;
}

/* Full-bleed interior heroes begin at the top of the document and sit behind the transparent header. */
.wp-site-blocks > .wp-block-template-part + .swish-page-hero,
.wp-site-blocks > .wp-block-template-part + .swish-home-hero {
    margin-block-start: 0;
}

.swish-page-hero,
.swish-home-hero {
    width: 100%;
    max-width: none;
    margin: 0;
    border-radius: 0 !important;
}

.swish-page-hero__identity{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(20px,3vw,42px)}
.swish-page-hero__media{display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.swish-page-hero__media img{display:block;width:clamp(92px,9vw,140px);height:clamp(92px,9vw,140px);object-fit:contain}
.swish-page-hero__media .avatar{border-radius:50%;object-fit:cover}
.swish-page-hero__copy{min-width:0}
.swish-page-hero__identity h1{font-size:clamp(2.15rem,4.2vw,4.25rem)}
.swish-page-hero__actions{display:flex;align-items:center;justify-content:flex-end}
.swish-page-hero__actions .swish-button{white-space:nowrap}
.swish-page-hero__actions .swish-button--secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.24);border-radius:10px;padding:10px 16px;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.swish-page-hero__actions .swish-button--secondary:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.42);color:#fff}
.swish-page-hero__actions .swish-button--secondary:focus-visible{outline:2px solid var(--swish-accent);outline-offset:3px}

/* Swish HQ pages align the theme hero with the plugin content container. */
.wp-site-blocks:has(.swish-frontend, .swish-portal) .swish-page-hero__content {
    width: min(1180px, calc(100% - 40px));
}

/* Align the homepage video hero with the Swish HQ homepage content container. */
.wp-site-blocks:has(.swish-homepage) .swish-home-hero__content {
    width: min(1180px, calc(100% - 40px));
}

@media (max-width: 560px) {
    .wp-site-blocks:has(.swish-homepage) .swish-home-hero__content {
        width: calc(100% - 28px);
    }
}

/* Dashboard uses the configured interior artwork as the page backdrop instead of a compressed hero block. */
body .wp-site-blocks:has(.swish-dashboard) {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    min-height: 100vh;
}

body .wp-site-blocks:has(.swish-dashboard) > .swish-page-hero,
body .wp-site-blocks:has(.swish-dashboard) > .swish-site-main {
    grid-column: 1;
    grid-row: 2;
}

body .wp-site-blocks:has(.swish-dashboard) > .swish-page-hero {
    align-self: start;
    width: 100%;
    height: var(--swish-page-hero-height, 400px);
    z-index: 0;
}

body .wp-site-blocks:has(.swish-dashboard) > .swish-page-hero .swish-page-hero__content {
    display: none;
}

body .wp-site-blocks:has(.swish-dashboard) > .swish-site-main {
    position: relative;
    z-index: 1;
    min-height: 0;
    padding-top: calc(
        var(--swish-page-hero-height, 400px)
        - 54px
        - clamp(2.4rem, 4.8vw, 4.75rem)
    );
    background: linear-gradient(
        to bottom,
        transparent 0,
        transparent var(--swish-page-hero-height, 400px),
        var(--swish-panel) var(--swish-page-hero-height, 400px),
        var(--swish-panel) 100%
    );
}

@media (max-width: 900px) {
    body .wp-site-blocks:has(.swish-dashboard) > .swish-site-main {
        padding-top: calc(
            min(var(--swish-page-hero-height, 400px), 320px)
            - 54px
            - clamp(2.4rem, 4.8vw, 4.75rem)
        );
    }
}

@media (max-width: 600px) {
    body .wp-site-blocks:has(.swish-dashboard) > .swish-site-main {
        padding-top: calc(
            min(var(--swish-page-hero-height, 400px), 260px)
            - 30px
            - clamp(2.4rem, 4.8vw, 4.75rem)
        );
    }
}

/* Authentication pages use the configured page hero image as the content-area background. */
body .wp-site-blocks:has(.swish-auth) {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    min-height: 100vh;
}

body .wp-site-blocks:has(.swish-auth) > .swish-page-hero,
body .wp-site-blocks:has(.swish-auth) > .swish-site-main {
    grid-column: 1;
    grid-row: 2;
}

body .wp-site-blocks:has(.swish-auth) > .swish-page-hero {
    align-self: stretch;
    width: 100%;
    height: auto;
    min-height: 100%;
    z-index: 0;
}

body .wp-site-blocks:has(.swish-auth) > .swish-page-hero .swish-page-hero__content {
    display: none;
}

body .wp-site-blocks:has(.swish-auth) > .swish-site-main {
    position: relative;
    z-index: 1;
    min-height: 0;
    background: transparent;
}

/* Align authentication cards with the top edge of the standard interior hero title. */
body .wp-site-blocks:has(.swish-auth) > .swish-site-main {
    align-self: stretch;
    padding-top: max(
        112px,
        calc(
            var(--swish-page-hero-height, 400px)
            - 54px
            - clamp(2.4rem, 4.8vw, 4.75rem)
        )
    );
    padding-bottom: clamp(84px, 9vh, 120px);
}

:root[data-theme="light"] body .wp-site-blocks:has(.swish-auth) > .swish-site-main {
    padding-top: max(
        112px,
        calc(
            var(--swish-page-hero-height, 400px)
            - 42px
            - clamp(2.4rem, 4.8vw, 4.75rem)
        )
    );
}

@media (max-width: 900px) {
    body .wp-site-blocks:has(.swish-auth) > .swish-site-main,
    :root[data-theme="light"] body .wp-site-blocks:has(.swish-auth) > .swish-site-main {
        padding-top: max(
            96px,
            calc(
                min(var(--swish-page-hero-height, 400px), 320px)
                - 54px
                - clamp(2.4rem, 4.8vw, 4.75rem)
            )
        );
    }
}

@media (max-width: 600px) {
    body .wp-site-blocks:has(.swish-auth) > .swish-site-main,
    :root[data-theme="light"] body .wp-site-blocks:has(.swish-auth) > .swish-site-main {
        padding-top: max(
            88px,
            calc(
                min(var(--swish-page-hero-height, 400px), 260px)
                - 30px
                - clamp(2.4rem, 4.8vw, 4.75rem)
            )
        );
        padding-bottom: 64px;
    }
}


/* Dedicated authentication screens: focused, viewport-first login and registration presentation. */
body.swish-auth-page .wp-site-blocks {
    position: relative;
    display: grid;
    grid-template-rows: minmax(100dvh, auto);
    min-height: 100dvh;
    overflow-x: hidden;
}

body.swish-auth-page .wp-site-blocks > header,
body.swish-auth-page .wp-site-blocks > footer {
    display: none;
}

body.swish-auth-page .wp-site-blocks > .swish-page-hero,
body.swish-auth-page .wp-site-blocks > .swish-site-main {
    grid-column: 1;
    grid-row: 1;
}

body.swish-auth-page .wp-site-blocks > .swish-page-hero {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 100%;
}

body.swish-auth-page .wp-site-blocks > .swish-site-main,
:root[data-theme="light"] body.swish-auth-page .wp-site-blocks > .swish-site-main {
    position: relative;
    z-index: 2;
    display: grid;
    align-items: center;
    min-height: 100dvh;
    padding: clamp(24px, 5vh, 56px) 0;
    background: transparent;
}

body.swish-auth-page .swish-site-main > .wp-block-post-content {
    width: min(600px, calc(100% - 32px));
}

body.swish-auth-page .swish-login-shell {
    display: grid;
    justify-items: center;
    gap: 18px;
    width: 100%;
}

body.swish-auth-page .swish-login-shell__brand {
    display: flex;
    justify-content: center;
    margin-bottom: 2px;
}

body.swish-auth-page .swish-login-shell__brand .custom-logo-link {
    display: block;
}

body.swish-auth-page .swish-login-shell__brand .custom-logo {
    display: block;
    width: auto;
    max-width: 118px;
    max-height: 58px;
    object-fit: contain;
}

body.swish-auth-page .swish-auth__panel {
    background: rgba(13, 21, 39, .84);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

body.swish-auth-page .swish-login-shell__back {
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

body.swish-auth-page .swish-login-shell__back:hover,
body.swish-auth-page .swish-login-shell__back:focus-visible {
    color: var(--swish-accent);
    text-decoration: none;
}

@media (max-width: 600px) {
    body.swish-auth-page .wp-site-blocks > .swish-site-main,
    :root[data-theme="light"] body.swish-auth-page .wp-site-blocks > .swish-site-main {
        min-height: 100dvh;
        padding: 20px 0;
    }

    body.swish-auth-page .swish-login-shell {
        gap: 14px;
    }

    body.swish-auth-page .swish-login-shell__brand .custom-logo {
        max-width: 100px;
        max-height: 48px;
    }
}


/* Keep primary authentication actions readable against the accent background. */
body.swish-auth-page .swish-auth__panel :is(.swish-button, .wp-element-button) {
    color: #101214;
}
