/*
Theme Name: Window Nation Theme
Theme URI: https://wave.dev
Author: Wave
Author URI: https://wave.dev
Description: Window Nation Theme for Dynamic Content Presentation
Requires at least: 6.1
Tested up to: 6.2
Requires PHP: 5.6
Version: 1.0
Text Domain: nbly
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, accessibility-ready, blog, portfolio, news
*/

/* Cosmo LP header adjustments */
.wn-header {
    background: #005ba7;
    box-sizing: border-box;
    position: sticky;
    top: 0;
    z-index: 50;
    transition: background .2s ease, padding .2s ease;
}

.wn-header.wn-header-scrolled {
    background: transparent;
    padding: 12px 48px 0;
}

.wn-header .wn-header-mobile-container,
.wn-header .nbly-header-mobile-upper-container,
.wn-header .wn-main-menu,
.wn-header .wn-upper {
    display: none !important;
}

.wn-header .wn-header-desktop-container {
    background: #005ba7;
    border-radius: 0;
    box-sizing: border-box;
    margin: 0 auto;
    max-width: none;
    transition: border-radius .2s ease, max-width .2s ease, box-shadow .2s ease;
}

.wn-header.wn-header-scrolled .wn-header-desktop-container {
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .22);
    max-width: 1304px;
}

.wn-header .wn-lower {
    align-items: center;
    box-sizing: border-box;
    display: flex;
    gap: 0;
    justify-content: flex-start;
    min-height: 86px;
    padding: 0 88px;
}

.wn-header .wn-lower > a {
    align-items: center;
    display: flex;
}

.wn-header .wn-header-desktop-container .wn-lower {
    gap: 0;
    justify-content: flex-start;
}

.wn-header .nbly-header-logo {
    height: auto;
    max-width: 160px;
    width: 160px;
}

.wn-header .wn-header-cta {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: 8px;
    margin-left: auto;
}

.wn-header .wn-header-cta .primary-btn,
.wn-header .wn-header-cta .secondary-btn {
    align-items: center;
    border-radius: 4px;
    box-sizing: border-box;
    display: inline-flex;
    font-size: .875rem;
    font-weight: 600;
    height: 34px;
    justify-content: center;
    line-height: 1;
    padding: 0 22px;
    text-decoration: none;
}

.wn-header .wn-header-call-btn {
    background: transparent;
    border: 1px solid #fff !important;
    border-color: #fff !important;
    color: #fff;
    gap: 8px;
    min-width: 146px;
}

.wn-header .wn-header-call-btn:hover {
    background: rgba(255,255,255,.12);
    color: #fff;
}

.wn-header .wn-header-quote-btn {
    background: #ffc400;
    color: #000;
    min-width: 180px;
}

.wn-header .wn-header-quote-btn:hover {
    background: #ffd84d;
    color: #000;
}

/* Keep ad hoc/editorial page content on the requested 1240px rail with desktop gutters. */
.entry-content > :where(h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, figure, table):not([class*="wp-block-wn-"]):not([class*="wp-block-nbly-"]):not(.alignfull):not(.alignwide) {
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    max-width: 1300px;
    padding-left: clamp(16px, 2.3vw, 30px);
    padding-right: clamp(16px, 2.3vw, 30px);
}

/* Guard top-of-page editorial blocks from sitting under the LP header. */
.entry-content > :where(h1, h2, h3, h4, h5, h6, p):first-child:not([class*="wp-block-wn-"]):not([class*="wp-block-nbly-"]):not(.alignfull):not(.alignwide) {
    padding-top: 48px;
}

@media (max-width: 1024px) {
    .entry-content > :where(h1, h2, h3, h4, h5, h6, p):first-child:not([class*="wp-block-wn-"]):not([class*="wp-block-nbly-"]):not(.alignfull):not(.alignwide) {
        padding-top: 32px;
    }
}

@media (max-width: 1024px) {
    .wn-header,
    .wn-header.wn-header-scrolled {
        background: #005ba7;
        padding: 0;
        position: sticky;
    }

    .wn-header .wn-header-desktop-container,
    .wn-header.wn-header-scrolled .wn-header-desktop-container {
        border-radius: 0;
        display: block;
        margin: 0;
        max-width: none;
        min-height: 0;
        position: static;
        width: 100%;
    }

    .wn-header .wn-lower {
        min-height: 78px;
        padding: 12px 20px;
    }

    .wn-header .nbly-header-logo {
        width: 130px;
    }

    .wn-header .wn-header-cta {
        gap: 6px;
    }

    .wn-header .wn-header-cta .primary-btn,
    .wn-header .wn-header-cta .secondary-btn {
        font-size: 12px;
        height: 34px;
        padding: 0 12px;
        width: auto;
    }

    .wn-header .wn-header-call-btn {
        min-width: 0;
    }
}

@media (max-width: 640px) {
    .wn-header .wn-lower {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .wn-header .wn-header-cta {
        width: 100%;
    }

    .wn-header .wn-header-cta .primary-btn,
    .wn-header .wn-header-cta .secondary-btn {
        flex: 1;
        white-space: normal;
    }
}


/* Cosmo LP desktop reference scale */
@media (min-width: 1025px) {
    .wn-header {
        background: transparent;
        left: 0;
        padding: 12px 16px 0;
        position: fixed;
        right: 0;
        top: 0;
        width: 100%;
        z-index: 100;
    }

    .wn-header .wn-header-desktop-container {
        background: #005ba7;
        border-radius: 7px;
        box-shadow: 0 10px 26px rgba(0, 0, 0, .16);
        box-sizing: border-box;
        max-width: var(--max-width);
        width: 100%;
    }

    .wn-header.wn-header-scrolled {
        background: #005ba7;
        padding: 0;
    }

    .wn-header.wn-header-scrolled .wn-header-desktop-container {
        background: #005ba7;
        border-radius: 0;
        box-shadow: none;
        max-width: none;
        width: 100%;
    }

    .wn-header .wn-lower {
        align-items: center;
        display: flex !important;
        min-height: auto !important;
        padding: .75rem 1rem .75rem 1.5rem !important;
    }

    .wn-header.wn-header-scrolled .wn-lower {
        align-items: center;
        display: flex !important;
        min-height: auto !important;
        padding: .75rem clamp(1.5rem, 6vw, 5.5rem) .75rem clamp(1.5rem, 6vw, 5.5rem) !important;
    }

    .wn-header .nbly-header-logo,
    .wn-header.wn-header-scrolled .nbly-header-logo {
        max-width: 106px;
        width: 106px;
    }

    .wn-header .wn-header-cta,
    .wn-header.wn-header-scrolled .wn-header-cta {
        align-items: center;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        justify-content: flex-end;
        margin-left: auto !important;
        width: auto !important;
    }

    .wn-header .wn-header-cta .primary-btn,
    .wn-header .wn-header-cta .secondary-btn,
    .wn-header.wn-header-scrolled .wn-header-cta .primary-btn,
    .wn-header.wn-header-scrolled .wn-header-cta .secondary-btn {
        align-items: center;
        border-radius: 3px;
        box-sizing: border-box;
        display: inline-flex;
        flex: 0 0 auto;
        font-size: .875rem;
        font-weight: 600;
        height: 34px !important;
        min-height: 34px !important;
        justify-content: center;
        line-height: 1;
        padding: .55rem .9rem !important;
        white-space: nowrap;
        width: auto !important;
    }

    .wn-header .wn-header-call-btn,
    .wn-header .wn-header-cta .wn-header-call-btn {
        border-color: #fff !important;
        color: #fff;
        font-size: .875rem;
        min-width: 158px;
    }

    .wn-header .wn-header-quote-btn {
        font-size: .875rem;
        min-width: 176px;
    }

    .wn-header .wn-header-phone-icon {
        color: #fff;
        height: 16px;
        margin-right: 4px;
        width: 16px;
    }

    .wn-header .wn-header-phone-icon use {
        color: #fff;
    }

    .wp-block-wn-landing-hero {
        min-height: 500px;
        padding: 88px 16px 44px;
    }

    .wp-block-wn-landing-hero .landing-hero-container {
        align-items: center;
        gap: clamp(40px, 5vw, 64px);
        grid-template-columns: minmax(0, 1fr) minmax(360px, 386px);
        max-width: var(--max-width);
        padding-top: 18px;
    }

    .wp-block-wn-landing-hero .landing-hero-content {
        padding-top: 0;
    }

    .wp-block-wn-landing-hero .landing-hero-headline {
        font-size: 36px;
        font-weight: 700;
        letter-spacing: -.02em;
        line-height: 1.05;
    }

    .wp-block-wn-landing-hero .landing-hero-subheadline {
        font-size: clamp(21px, 1.95vw, 25px);
        font-weight: 500;
        line-height: 1.12;
        margin-top: 10px;
    }

    .wp-block-wn-landing-hero .landing-hero-offer {
        color: #fff;
        font-size: 1.375rem;
        font-weight: 500;
        letter-spacing: .06em;
        line-height: 1.2;
        margin-top: 13px;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing {
        border-radius: 6px;
        box-shadow: 0 14px 34px rgba(0, 0, 0, .18);
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing::after {
        display: none;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form-container {
        box-sizing: border-box;
        max-width: 386px;
        padding: 16px;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form-countdown {
        margin-bottom: 16px;
        text-align: center;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form-countdown-label {
        font-size: .875rem;
        font-weight: 700;
        line-height: 1.1;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form-countdown-value {
        font-size: 1.375rem;
        font-weight: 300;
        line-height: 1.15;
        margin-top: 10px;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form form {
        gap: 16px;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form form > div,
    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form form > div:not(:has(.form-wide)) {
        column-gap: 16px;
        row-gap: 16px;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form form > div:not(:has(.form-wide)) {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form form > div > div {
        min-width: 0;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form form > div > div input:not([type='checkbox']) {
        border: 1px solid #ccc;
        border-radius: 5px;
        box-sizing: border-box;
        font-size: 14px;
        min-height: 41px;
        padding: 8px 12px;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing input::placeholder {
        font-size: 14px !important;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form form button {
        border-radius: 5px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        min-height: 34px !important;
        padding: 10px 16px !important;
        align-items: center !important;
        display: flex !important;
        justify-content: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
        width: 100% !important;
    }

    .wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing .service-form-consent {
        font-size: 10px;
        line-height: 1.35;
        margin-top: 0;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service {
        max-width: 386px;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form-container {
        box-sizing: border-box;
        max-width: 386px;
        padding: 16px;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form-countdown {
        margin-bottom: 16px;
        text-align: center;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form-countdown-label {
        font-size: .875rem;
        font-weight: 700;
        line-height: 1.1;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form-countdown-value {
        font-size: 1.375rem;
        font-weight: 300;
        line-height: 1.15;
        margin-top: 10px;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form form {
        gap: 16px;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form form > div,
    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form form > div:not(:has(.form-wide)) {
        column-gap: 16px;
        row-gap: 16px;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form form > div:not(:has(.form-wide)) {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form form > div > div {
        min-width: 0;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form form > div > div input:not([type='checkbox']) {
        border: 1px solid #ccc;
        border-radius: 5px;
        box-sizing: border-box;
        font-size: 14px;
        min-height: 41px;
        padding: 8px 12px;
        width: 100%;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service input::placeholder {
        font-size: 14px !important;
    }

    .wp-block-wn-landing-hero .wp-block-wn-schedule-service .service-form form button {
        border-radius: 5px !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        min-height: 34px !important;
        padding: 10px 16px !important;
        align-items: center !important;
        display: flex !important;
        justify-content: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
        width: 100% !important;
    }
}


/* Cosmo LP typography / form defaults */

.wp-block-wn-landing-hero.has-compact-height,
.wp-block-wn-landing-hero.has-tight-height {
    box-sizing: border-box;
}

.wp-block-wn-landing-hero.has-compact-height {
    min-height: 0;
    padding-bottom: 24px;
}

.wp-block-wn-landing-hero.has-tight-height {
    min-height: 0;
    padding-bottom: 16px;
}

.wp-block-wn-landing-hero.has-compact-height .landing-hero-container,
.wp-block-wn-landing-hero.has-tight-height .landing-hero-container {
    padding-top: 0;
}

@media screen and (min-width: 1025px) {
    .wp-block-wn-landing-hero.has-compact-height {
        padding-top: 72px;
    }

    .wp-block-wn-landing-hero.has-tight-height {
        padding-top: 64px;
    }
}

@media screen and (min-width: 1025px) {
    .entry-content > .wp-block-wn-landing-hero:first-child {
        margin-top: -64px;
        padding-top: 152px;
    }

    .entry-content > .wp-block-wn-landing-hero.has-compact-height:first-child {
        padding-top: 136px;
    }

    .entry-content > .wp-block-wn-landing-hero.has-tight-height:first-child {
        padding-top: 128px;
    }
}

.wp-block-wn-landing-hero h1,
.wp-block-wn-landing-hero .landing-hero-headline {
    font-weight: 700;
}

.wp-block-wn-landing-hero.has-left-copy .landing-hero-content {
    text-align: left;
}

.wp-block-wn-landing-hero.has-offer-above-headline .landing-hero-offer {
    margin-top: 0;
    margin-bottom: 18px;
}

.wp-block-wn-landing-hero.has-white-offer .landing-hero-offer {
    color: #fff;
}

.wp-block-wn-landing-hero.has-yellow-offer .landing-hero-offer {
    color: #ffc400;
}

@media screen and (max-width: 1024px) {
    .wp-block-wn-landing-hero.has-left-copy .landing-hero-content {
        text-align: center;
    }

    .wp-block-wn-landing-hero.has-compact-mobile-text .landing-hero-headline {
        font-size: 36px;
    }

    .wp-block-wn-landing-hero.has-compact-mobile-text .landing-hero-subheadline {
        font-size: clamp(20px, 6vw, 28px);
    }

    .wp-block-wn-landing-hero.has-compact-mobile-text .landing-hero-offer {
        font-size: 1.375rem;
        font-weight: 500;
    }

    .wp-block-wn-landing-hero.has-large-mobile-text .landing-hero-headline {
        font-size: clamp(40px, 11vw, 54px);
    }

    .wp-block-wn-landing-hero.has-large-mobile-text .landing-hero-subheadline {
        font-size: clamp(24px, 7vw, 32px);
    }

    .wp-block-wn-landing-hero.has-large-mobile-text .landing-hero-offer {
        font-size: 14px;
    }
}

.entry-content [class*="wp-block-wn-"] h2,
.entry-content [class*="wp-block-nbly-"] h2 {
    font-size: 44px;
    font-weight: 700;
    line-height: 1.08;
}

.wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing input::placeholder,
.wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing textarea::placeholder,
.wp-block-wn-schedule-service.wp-block-wn-schedule-service--landing select {
    font-size: .875rem;
}

@media (max-width: 640px) {
    .entry-content [class*="wp-block-wn-"] h2,
    .entry-content [class*="wp-block-nbly-"] h2 {
        font-size: 26px;
    }
}

@media (max-width: 640px) {
    .entry-content h3 {
        font-size: 18px !important;
    }
}

/* Cosmo LP mobile header restore */
@media (max-width: 1024px) {
    .wn-header .wn-header-mobile-container {
        display: block !important;
    }

    .wn-header .wn-header-desktop-container {
        display: none !important;
    }

    .wn-header .wn-header-mobile-container .wn-header-upper-container {
        align-items: center !important;
        box-sizing: border-box;
        display: flex;
        justify-content: space-between;
        min-height: 64px;
        padding: 10px 20px !important;
        width: 100%;
    }

    .wn-header .wn-header-upper-container .nbly-header-logo {
        display: block;
        max-width: 130px;
        width: 130px;
    }

    .wn-header .wn-header-mobile-container .wn-header-upper-container .call-us {
        align-items: center !important;
        background-image: none !important;
        color: #fff;
        display: inline-flex !important;
        font-size: .875rem;
        font-weight: 600;
        gap: 6px;
        line-height: 1;
        padding: 0 !important;
        text-decoration: none;
    }

    .wn-header .wn-mobile-phone-icon {
        display: block;
        flex: 0 0 auto;
        height: 18px;
        width: 18px;
    }

    .wn-header .call-us::before,
    .wn-header .call-us::after {
        content: none !important;
        display: none !important;
    }

    .wn-header .svg-hamburger {
        display: none !important;
    }

    .wn-header .wn-header-mobile-container .nbly-icon,
    .wn-header .wn-header-mobile-container svg {
        color: #fff;
        fill: currentColor;
    }
}

.wn-footer .wn-footer-upper {
    border-radius: 10px 10px 0 0;
}

@media (min-width: 768px) {
    .wn-footer .wn-footer-upper {
        gap: 18px !important;
        justify-content: flex-start !important;
    }

    .wn-footer .wn-footer-social {
        margin-left: auto !important;
    }
}

/* Cosmo LP floating footer estimate CTA */
body .footer-estimate {
    align-items: center !important;
    background: transparent !important;
    border-radius: 0 !important;
    bottom: 8px !important;
    box-sizing: border-box !important;
    display: flex;
    justify-content: center !important;
    left: 16px !important;
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    pointer-events: none;
    position: fixed !important;
    right: 16px !important;
    text-align: center;
    transform: none !important;
    width: auto !important;
    z-index: 9999 !important;
}

@media (max-width: 767px) {
    body .footer-estimate {
        display: none;
    }
}

body .footer-estimate a {
    align-items: center;
    background: #ffc400 !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .22);
    box-sizing: border-box !important;
    color: #000 !important;
    display: inline-flex !important;
    font-size: 1rem;
    font-weight: 700;
    justify-content: center;
    line-height: 1.2;
    max-width: min(420px, calc(100vw - 32px)) !important;
    min-height: 50px;
    padding: 13px 18px !important;
    pointer-events: auto;
    text-align: center;
    text-decoration: none !important;
    text-transform: uppercase;
    width: 100% !important;
}

@media (min-width: 768px) {
    body .footer-estimate {
        bottom: 16px !important;
        left: auto !important;
        right: 16px !important;
    }

    body .footer-estimate a {
        min-width: 220px;
        width: auto !important;
    }
}

/* Keep the footer logo from rendering oversized in the LP theme. */
.wn-footer .wn-footer-upper > a {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    max-width: 220px;
}

.wn-footer .wn-footer-upper > a img {
    display: block;
    height: auto;
    max-width: 220px;
    width: 100%;
}

@media (max-width: 767px) {
    .wn-footer .wn-footer-upper > a,
    .wn-footer .wn-footer-upper > a img {
        max-width: 180px;
    }
}


/* Optional sister-brand logos for imported Florida landing pages. */
.wn-sister-brand-logos {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 12px;
}

.wn-sister-brand-logo {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
}

.wn-sister-brand-logo img {
    display: block;
    height: auto;
    max-height: 34px;
    max-width: 118px;
    object-fit: contain;
    width: auto;
}

.wn-sister-brand-logos--header {
    margin-left: 0;
}

.wn-sister-brand-logos--mobile-header {
    gap: 8px;
    margin-left: 0;
}

.wn-sister-brand-logos--mobile-header .wn-sister-brand-logo img {
    max-height: 24px;
    max-width: 74px;
}

.wn-sister-brand-logos--footer {
    gap: 16px;
}

.wn-sister-brand-logos--footer .wn-sister-brand-logo img {
    max-height: 56px;
    max-width: 170px;
}

@media (max-width: 1024px) {
    .wn-header .wn-header-mobile-container .wn-header-upper-container {
        gap: 0;
        justify-content: flex-start;
    }

    .wn-header .wn-header-upper-container .wn-header-upper-container-link {
        flex: 0 0 auto;
    }

    .wn-header .wn-sister-brand-logos--mobile-header {
        justify-content: center;
    }

    .wn-header .wn-sister-brand-logos--mobile-header + .call-us {
        margin-left: auto !important;
    }
}

@media (max-width: 480px) {
    .wn-header .wn-header-upper-container .nbly-header-logo {
        max-width: 104px;
        width: 104px;
    }

    .wn-sister-brand-logos--mobile-header {
        gap: 6px;
    }

    .wn-sister-brand-logos--mobile-header .wn-sister-brand-logo img {
        max-height: 20px;
        max-width: 58px;
    }

    .wn-footer .wn-sister-brand-logos--footer {
        flex-wrap: wrap;
        justify-content: center;
    }
}
