/*
 * Landing page mobile/PWA presentation.
 * Keep every standalone/mobile landing refinement here. It is deliberately
 * independent from the desktop slideshow stylesheet.
 */
.landing-pwa-view {
    display: none;
    min-width: 0;
}

@media (max-width: 680px), (display-mode: standalone) {
    .landing-pwa-view {
        display: block !important;
        width: 100%;
    }

    .landing-pwa-showcase {
        position: relative;
        min-height: 440px;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .landing-pwa-stage {
        position: relative;
        min-height: 405px;
        overflow: hidden;
        border-radius: 24px;
        background:
            radial-gradient(circle at 14% 15%, rgba(255, 162, 58, .14), transparent 38%),
            radial-gradient(circle at 86% 84%, rgba(0, 165, 227, .09), transparent 40%),
            linear-gradient(180deg, #ffffff 0%, #fffaf5 100%);
        border: 1px solid rgba(226, 232, 240, .96);
        box-shadow: 0 18px 46px rgba(15, 23, 42, .11), inset 0 1px 0 rgba(255, 255, 255, .9);
    }

    .landing-pwa-slide {
        position: absolute;
        inset: 0;
        opacity: 0;
        display: grid;
        place-items: center;
        padding: 98px 8px 18px;
        animation-duration: 15s;
        animation-timing-function: steps(1, end);
        animation-iteration-count: infinite;
        transform: none;
        backface-visibility: hidden;
    }

    .landing-pwa-slide-tv { animation-name: landingPwaTV; }
    .landing-pwa-slide-laptop { animation-name: landingPwaLaptop; }
    .landing-pwa-slide-phone { animation-name: landingPwaPhone; }

    .landing-pwa-inscription {
        position: absolute;
        z-index: 5;
        top: 10px;
        left: 10px;
        right: 10px;
        display: grid;
        justify-items: start;
        gap: 3px;
        padding: 10px 12px 10px 19px;
        border-radius: 16px;
        background: rgba(255, 255, 255, .98);
        border: 1px solid rgba(226, 232, 240, .98);
        box-shadow: 0 10px 24px rgba(15, 23, 42, .10);
        text-align: left;
    }

    .landing-pwa-inscription::before {
        content: "";
        position: absolute;
        left: 9px;
        top: 11px;
        bottom: 11px;
        width: 3px;
        border-radius: 999px;
        background: linear-gradient(180deg, #FFA23A, #f97316);
    }

    .landing-pwa-inscription span {
        display: inline-flex;
        width: fit-content;
        padding: 4px 8px;
        border-radius: 999px;
        background: #fff7ed;
        color: #9a3412;
        border: 1px solid rgba(251, 146, 60, .36);
        font-size: .52rem;
        font-weight: 950;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .landing-pwa-inscription h3 {
        margin: 0;
        color: #0f172a;
        font-size: .80rem;
        line-height: 1.12;
        letter-spacing: -.01em;
        font-weight: 950;
    }

    .landing-pwa-inscription p {
        margin: 0;
        color: #475569;
        font-size: .62rem;
        line-height: 1.22;
        font-weight: 760;
    }

    .landing-pwa-image-wrap {
        width: 100%;
        height: 100%;
        min-width: 0;
        display: grid;
        place-items: center;
        overflow: visible;
    }

    .landing-pwa-image-wrap img {
        display: block;
        width: auto;
        height: auto;
        max-width: 100%;
        max-height: 270px;
        object-fit: contain;
        object-position: center;
        filter: none;
        transform: none;
        user-select: none;
        -webkit-user-drag: none;
    }

    .landing-pwa-slide-phone .landing-pwa-image-wrap img {
        max-height: 280px;
    }

    .landing-pwa-dots {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 7px;
        margin-top: 12px;
    }

    .landing-pwa-dots span {
        width: 8px;
        height: 8px;
        border-radius: 999px;
        background: rgba(148, 163, 184, .74);
        animation: landingPwaDot 15s steps(1, end) infinite;
    }

    .landing-pwa-dots span:nth-child(2) { animation-delay: 5s; }
    .landing-pwa-dots span:nth-child(3) { animation-delay: 10s; }

    @keyframes landingPwaTV {
        0%, 32% { opacity: 1; visibility: visible; }
        33%, 100% { opacity: 0; visibility: hidden; }
    }

    @keyframes landingPwaLaptop {
        0%, 32% { opacity: 0; visibility: hidden; }
        33%, 65% { opacity: 1; visibility: visible; }
        66%, 100% { opacity: 0; visibility: hidden; }
    }

    @keyframes landingPwaPhone {
        0%, 65% { opacity: 0; visibility: hidden; }
        66%, 98% { opacity: 1; visibility: visible; }
        99%, 100% { opacity: 0; visibility: hidden; }
    }

    @keyframes landingPwaDot {
        0%, 32% { width: 27px; background: linear-gradient(135deg, #FFA23A, #f97316); }
        33%, 100% { width: 8px; background: rgba(148, 163, 184, .74); }
    }
}

@media (max-width: 390px) {
    .landing-pwa-showcase { min-height: 410px; }
    .landing-pwa-stage { min-height: 377px; }
    .landing-pwa-slide { padding-top: 91px; }
    .landing-pwa-inscription p { display: none; }
    .landing-pwa-image-wrap img { max-height: 252px; }
    .landing-pwa-slide-phone .landing-pwa-image-wrap img { max-height: 262px; }
}

@media (prefers-reduced-motion: reduce) {
    .landing-pwa-slide,
    .landing-pwa-dots span {
        animation: none !important;
    }
    .landing-pwa-slide { display: none; }
    .landing-pwa-slide:first-child { display: grid; opacity: 1; visibility: visible; }
}



/* PWA_PLAIN_PLAN_FEATURES_START */

/*
 * Remove pill-shaped containers from plan speed
 * and device-limit information only.
 */
.landing-plan-row .plan-row-features {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 7px 14px !important;
}

.landing-plan-row .plan-row-features > span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;

    width: auto !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    color: #475569 !important;
    line-height: 1.25 !important;
}

/* PWA_PLAIN_PLAN_FEATURES_END */

/* PWA_PLAN_FEATURE_BADGES_START */

/*
 * Light-orange rounded rectangles for plan speed
 * and device-limit values only.
 */

.landing-body .landing-plan-list .plan-row-features {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
}

.landing-body .landing-plan-list .plan-row-features > span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;

    width: fit-content !important;
    min-height: 34px !important;
    padding: 7px 11px !important;

    color: #9a3412 !important;

    background: #ffedd5 !important;
    background-image: linear-gradient(
        135deg,
        #fff7ed 0%,
        #ffedd5 58%,
        #fed7aa 100%
    ) !important;

    border: 1px solid rgba(249, 115, 22, 0.30) !important;
    border-radius: 12px !important;

    box-shadow: 0 4px 12px rgba(154, 52, 18, 0.08) !important;

    font-weight: 800 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/* PWA_PLAN_FEATURE_BADGES_END */

/* PWA_REMOVE_INSCRIPTION_PILLS_START */

/*
 * Remove rounded backgrounds from descriptive inscriptions only.
 * Plan speed and device badges remain unaffected.
 */

/* Apartment WiFi Service, Current Plans, How It Works, Need Help, etc. */
.landing-body .landing-kicker {
    display: inline-block !important;
    width: auto !important;

    padding: 0 !important;

    background: transparent !important;
    background-image: none !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* Remove any decorative shapes attached to the inscriptions */
.landing-body .landing-kicker::before,
.landing-body .landing-kicker::after {
    display: none !important;
    content: none !important;
}

/* MOBILE PORTAL and similar labels inside presentation images */
.landing-body .landing-pwa-inscription > span {
    width: auto !important;
    padding: 0 !important;

    background: transparent !important;
    background-image: none !important;

    border: 0 !important;
    border-radius: 0 !important;

    box-shadow: none !important;
}

/* PWA_REMOVE_INSCRIPTION_PILLS_END */

/* HOW_IT_WORKS_TIMED_SLIDESHOW_START */

/*
 * Mobile/PWA timed slideshow for HOW IT WORKS.
 * One card is presented at a time and changes every five seconds.
 */
@media (max-width: 760px) {

    #how-it-works .landing-steps {
        position: relative !important;

        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        align-items: stretch !important;

        width: 100% !important;
        max-width: 100% !important;

        gap: 0 !important;
        margin: 0 !important;
        padding: 4px 0 8px !important;

        overflow: hidden !important;
    }

    /*
     * All step cards occupy the same slideshow frame.
     * Grid overlay keeps the frame tall enough for its largest card.
     */
    #how-it-works .landing-steps > * {
        grid-column: 1 !important;
        grid-row: 1 !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;

        opacity: 0;
        visibility: hidden;
        pointer-events: none;

        transform: translateX(42px);

        transition:
            opacity 550ms ease,
            transform 550ms cubic-bezier(.22, .75, .25, 1),
            visibility 0s linear 550ms;

        will-change: opacity, transform;
    }

    #how-it-works .landing-steps > *.is-how-active {
        z-index: 3;

        opacity: 1;
        visibility: visible;
        pointer-events: auto;

        transform: translateX(0);

        transition-delay: 0s;
    }

    #how-it-works .landing-steps > *.is-how-before {
        z-index: 1;

        opacity: 0;
        visibility: hidden;

        transform: translateX(-42px);
    }

    #how-it-works .landing-steps > *.is-how-after {
        z-index: 2;

        opacity: 0;
        visibility: hidden;

        transform: translateX(42px);
    }

    #how-it-works .how-slideshow-dots {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;

        width: 100%;
        margin: 8px 0 0;
    }

    #how-it-works .how-slideshow-dot {
        appearance: none;
        -webkit-appearance: none;

        width: 8px;
        height: 8px;
        padding: 0;

        border: 0;
        border-radius: 999px;

        background: rgba(154, 52, 18, 0.25);

        cursor: pointer;

        transition:
            width 220ms ease,
            transform 220ms ease,
            background 220ms ease;
    }

    #how-it-works .how-slideshow-dot.is-active {
        width: 24px;
        background: #f97316;
    }

    #how-it-works .how-slideshow-dot:focus-visible {
        outline: 2px solid #f97316;
        outline-offset: 3px;
    }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
    #how-it-works .landing-steps > * {
        transition: none !important;
    }
}

/* HOW_IT_WORKS_TIMED_SLIDESHOW_END */

/* HOW_IT_WORKS_DOTTED_INDICATOR_START */

/*
 * Compact circular navigation dots for the HOW IT WORKS slideshow.
 */
@media (max-width: 760px) {

    #how-it-works {
        min-height: 0 !important;
        height: auto !important;
        padding-bottom: 8px !important;
        margin-bottom: 0 !important;
    }

    #how-it-works .landing-steps {
        min-height: 0 !important;
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
    }

    #how-it-works .how-slideshow-dots {
        position: relative !important;
        inset: auto !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: auto !important;
        height: 10px !important;
        min-height: 0 !important;

        gap: 8px !important;
        margin: 8px auto 4px !important;
        padding: 0 !important;

        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;

        line-height: 0 !important;
    }

    #how-it-works button.how-slideshow-dot {
        display: block !important;
        flex: 0 0 8px !important;

        width: 8px !important;
        min-width: 8px !important;
        max-width: 8px !important;

        height: 8px !important;
        min-height: 8px !important;
        max-height: 8px !important;

        padding: 0 !important;
        margin: 0 !important;

        background: rgba(249, 115, 22, 0.28) !important;
        background-image: none !important;

        border: 0 !important;
        border-radius: 50% !important;

        box-shadow: none !important;
        transform: none !important;

        font-size: 0 !important;
        line-height: 0 !important;
    }

    #how-it-works button.how-slideshow-dot.is-active {
        width: 8px !important;
        min-width: 8px !important;
        max-width: 8px !important;

        height: 8px !important;
        min-height: 8px !important;
        max-height: 8px !important;

        background: #f97316 !important;
        transform: scale(1.18) !important;
    }

    #how-it-works button.how-slideshow-dot::before,
    #how-it-works button.how-slideshow-dot::after {
        display: none !important;
        content: none !important;
    }
}

/* HOW_IT_WORKS_DOTTED_INDICATOR_END */

/* LANDING_HELP_CENTER_LINK_START */

.landing-support-card .landing-help-center-link {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 54px;
    margin: 20px 0 12px;
    padding: 12px 18px;

    color: #9a3412;

    background:
        linear-gradient(
            135deg,
            #fff7ed,
            #ffedd5
        );

    border: 1px solid rgba(249, 115, 22, 0.34);
    border-radius: 16px;

    box-shadow: 0 8px 20px rgba(154, 52, 18, 0.08);

    font-weight: 900;
    text-decoration: none;
}

/* LANDING_HELP_CENTER_LINK_END */

/* LANDING_PLAN_DURATION_INLINE_START */

/*
 * Speed, device limit and duration remain together
 * inside the feature-badge row.
 */
.landing-body .landing-plan-list .plan-row-features {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;

    min-width: 0 !important;
    gap: 6px !important;
}

/*
 * Keep all three badges compact enough to remain inline.
 */
.landing-body .landing-plan-list .plan-row-features > span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: 0 1 auto !important;
    min-width: 0 !important;

    padding: 7px 9px !important;

    font-size: clamp(0.70rem, 2.25vw, 0.84rem) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/*
 * Give duration the same light-orange badge appearance.
 */
.landing-body
.landing-plan-list
.plan-row-features
.plan-duration-badge {
    color: #9a3412 !important;

    background: #ffedd5 !important;
    background-image: linear-gradient(
        135deg,
        #fff7ed 0%,
        #ffedd5 58%,
        #fed7aa 100%
    ) !important;

    border: 1px solid rgba(249, 115, 22, 0.30) !important;
    border-radius: 12px !important;

    box-shadow: 0 4px 12px rgba(154, 52, 18, 0.08) !important;

    font-weight: 800 !important;
}

@media (max-width: 420px) {
    .landing-body .landing-plan-list .plan-row-features {
        gap: 4px !important;
    }

    .landing-body .landing-plan-list .plan-row-features > span {
        padding: 6px 7px !important;
        font-size: 0.68rem !important;
    }
}

/* LANDING_PLAN_DURATION_INLINE_END */

/* LANDING_TOPBAR_SIGNUP_START */

/*
 * Plain Sign up link displayed beside the Login button.
 */
.landing-body .landing-topbar .landing-signup-link,
.landing-body .landing-nav .landing-signup-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #9a3412 !important;

    background: transparent !important;
    background-image: none !important;

    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    font-size: 0.92rem !important;
    font-weight: 850 !important;
    line-height: 1.2 !important;

    text-decoration: none !important;
    white-space: nowrap !important;
}

.landing-body .landing-topbar .landing-signup-link:hover,
.landing-body .landing-topbar .landing-signup-link:focus-visible,
.landing-body .landing-nav .landing-signup-link:hover,
.landing-body .landing-nav .landing-signup-link:focus-visible {
    color: #f97316 !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;

    text-decoration: underline !important;
    text-underline-offset: 4px;
}

@media (max-width: 600px) {
    .landing-body .landing-topbar .landing-signup-link,
    .landing-body .landing-nav .landing-signup-link {
        font-size: 0.84rem !important;
    }
}

/* LANDING_TOPBAR_SIGNUP_END */
