/*
  ----------------------------------------
  Application (Global styles)
  ----------------------------------------
*/

@layer styles {
    /* Desktop nav links */
    .desktop {
        display: flex;
        position: relative;
        align-items: center;
        height: 100%;
        min-height: var(--height-md);

        .nav-link,
        .nav-button {
            position: relative;
            font-family: var(--font-heading);
            padding: 0 0.4rem;
            font-size: calc(var(--text-base) - 0.18rem);
            display: flex;
            align-items: center;
            height: 100%;
            text-decoration: none;
            color: var(--white);
            font-style: italic;
            font-weight: 600;
            transition: color 0.3s ease-in-out;
        }

        .nav-button {
            background-color: var(--brand-1);
            color: var(--black);
            transition: background-color 0.3s ease-in-out;
        }

        .nav-link:hover {
            color: var(--brand-1);
        }

        .nav-link.active::after {
            content: "";
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: 2px;
            background-color: var(--brand-1);
        }
    }

    /* Mobile menu */
    .mobile {
        display: flex;
        flex-direction: column;
        align-items: start;
        justify-content: start;
        padding-top: var(--space-md);
        gap: 0.8rem;

        .nav-link {
            display: block;
            padding: 0.4rem 3rem;
            font-size: var(--text-lg);
            font-weight: var(--font-semibold);
            text-decoration: none;
            color: var(--white);

            &:active {
                background-color: var(--brand-1);
            }
        }
    }

    /* Crud Header (for tables, forms – also used in custom scaffolds /erb/scaffold/*) */
    .crud-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: var(--space-2xl);

        h3 {
            margin: 0;
        }
    }

    /* Miscellaneous Styles */
    .icon-shift:hover {
        svg {
            translate: 6px;
            transition: translate 0.2s ease-in-out;
        }
    }

    /* Who it's for cards */
    .who-card {
        min-height: 400px;
        background-size: cover;
        background-position: center;

        /* Gradient overlay via pseudo-element */
        &::before {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(
                to top,
                var(--black) 34%,
                transparent 80%
            );
            opacity: 0.9;
        }

        .who-card-content {
            z-index: 1;
        }
    }

    /* Phone mockup frame */
    .phone-frame {
        position: relative;
        width: 100%;
        max-width: 320px;
        aspect-ratio: 9 / 19.5;
        background: #1a1a1a;
        border-radius: 40px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        box-shadow:
            0 0 50px rgba(0, 0, 0, 0.5),
            inset 0 0 2px 2px rgba(255, 255, 255, 0.05);

        .screen {
            position: absolute;
            top: 10px;
            left: 10px;
            right: 10px;
            bottom: 10px;
            border-radius: 30px;
            overflow: hidden;
            background: #fff;
        }

        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            padding: 8px;
        }
    }

    /* Icon box */
    .icon-box {
        /*p-xs bg-brand-1 bg-opacity-20*/
        padding: var(--space-xs);
        border-radius: var(--radius-xs);
        background: color-mix(in srgb, var(--brand-1) 20%, transparent);
    }

    .tracking-widest {
        letter-spacing: 0.4em;
    }

    /* FAQ page */
    .ui-faq-page {
        .ui-faq-page__header,
        .ui-faq-page__panel,
        .ui-faq-page__cta {
            width: min(100%, 76rem);
            margin-inline: auto;
        }

        .ui-faq-page__header {
            h1,
            p {
                max-width: 62rem;
            }
        }

        .ui-faq-page__panel {
            p {
                max-width: none;
            }
        }

        .ui-faq-page__bullet-list {
            display: flex;
            flex-direction: column;
            gap: var(--space-sm);
        }

        .ui-faq-page__bullet-item {
            max-width: none;
            line-height: 1.35;
        }

        .ui-faq-page__bullet-marker {
            display: block;
            width: 0.42rem;
            height: 0.42rem;
            margin-top: 0.48rem;
            flex-shrink: 0;
            background: var(--brand-1);
        }

        .ui-faq-page__cta-title {
            max-width: 46rem;
        }
    }

    /* Support page */
    .ui-support-page {
        .ui-support-page__hero,
        .ui-support-page__layout,
        .ui-support-page__cta {
            width: min(100%, 78rem);
            margin-inline: auto;
        }

        .ui-support-page__hero h1 {
            max-width: none;
        }

        .ui-support-page__search {
            position: relative;
            width: min(100%, 48rem);
        }

        .ui-support-page__search-icon {
            position: absolute;
            top: 50%;
            left: var(--space-md);
            translate: 0 -50%;
            pointer-events: none;
        }

        .ui-support-page__search-field {
            width: 100%;
            border: var(--border-sm) solid var(--dark);
            background: var(--black);
            padding: var(--space-md);
            padding-left: calc(var(--space-xl) + var(--space-sm));
            padding-right: calc(var(--space-xl) + var(--space-lg));
            color: var(--white);
            font-family: var(--font-heading);
            font-size: var(--text-lg);
            font-style: italic;
        }

        .ui-support-page__search-field:focus {
            outline: none;
            border-color: var(--brand-1);
            box-shadow: 0 0 0 3px
                color-mix(in srgb, var(--brand-1) 15%, transparent);
        }

        .ui-support-page__search-field::placeholder {
            color: rgb(from var(--midtone) r g b / 0.55);
        }

        .ui-support-page__search-hint {
            position: absolute;
            top: 50%;
            right: var(--space-md);
            translate: 0 -50%;
            font-family: var(--font-heading);
            font-size: 0.65rem;
            font-style: italic;
            letter-spacing: 0.12em;
            color: rgb(from var(--midtone) r g b / 0.7);
        }

        .ui-support-page__layout {
            display: grid;
            gap: var(--space-xl);
            align-items: start;
        }

        .ui-support-page__sticky {
            display: flex;
            flex-direction: column;
            gap: var(--space-lg);
        }

        .ui-support-page__category-link {
            color: var(--white);
            text-decoration: none;
            border-left: 2px solid transparent;
            transition:
                border-color 0.2s ease,
                background-color 0.2s ease,
                color 0.2s ease;
        }

        .ui-support-page__category-link:hover,
        .ui-support-page__category-link.is-active {
            border-left-color: var(--brand-1);
            background: rgb(from var(--white) r g b / 0.04);
            color: var(--white);
        }

        .ui-support-page__status h4,
        .ui-support-page__status p,
        .ui-support-page__answer p {
            max-width: none;
        }

        .ui-support-page__status-dot {
            display: block;
            width: 0.55rem;
            height: 0.55rem;
            border-radius: 999px;
            background: var(--success);
            box-shadow: 0 0 0 4px
                color-mix(in srgb, var(--success) 18%, transparent);
        }

        .ui-support-page__content {
            display: flex;
            flex-direction: column;
            gap: var(--space-2xl);
        }

        .ui-support-page__section-header {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
        }

        .ui-support-page__section-header h2 {
            max-width: none;
        }

        .ui-support-page__section-line {
            height: 1px;
        }

        .ui-support-page__section-line--accent {
            width: 3rem;
            background: var(--brand-1);
            flex: none;
        }

        .ui-support-page__section-line--base {
            flex: 1;
            background: color-mix(in srgb, var(--white) 14%, transparent);
        }

        .ui-support-page__accordion {
            overflow: hidden;
        }

        .ui-support-page__accordion summary {
            list-style: none;
        }

        .ui-support-page__accordion summary::-webkit-details-marker {
            display: none;
        }

        .ui-support-page__summary {
            cursor: pointer;
            transition: background-color 0.2s ease;
        }

        .ui-support-page__summary:hover {
            background: rgb(from var(--white) r g b / 0.04);
        }

        .ui-support-page__accordion-icon {
            transition: transform 0.2s ease;
        }

        .ui-support-page__accordion[open] .ui-support-page__accordion-icon {
            transform: rotate(45deg);
        }

        .ui-support-page__answer {
            border-top: var(--border-sm) solid
                color-mix(in srgb, var(--white) 12%, transparent);
        }

        .ui-support-page__tip {
            max-width: none;
            border-left: 2px solid var(--brand-1);
            background: rgb(from var(--white) r g b / 0.04);
        }

        .ui-support-page__cta {
            width: min(100%, 56rem);
        }

        .ui-support-page__cta-title,
        .ui-support-page__cta-copy {
            max-width: none;
        }

        .ui-support-page__cta-actions {
            display: flex;
            flex-direction: column;
            gap: var(--space-md);
            align-items: center;
            justify-content: center;
        }

        .ui-support-page__cta-actions .ui-button {
            white-space: nowrap;
            flex-shrink: 0;
            transform: translateY(0);
            transition:
                transform 0.2s ease,
                background-color 0.2s ease,
                color 0.2s ease,
                box-shadow 0.2s ease;
        }

        .ui-support-page__cta-button:hover {
            transform: translateY(-3px);
        }

        .ui-support-page__cta-button--secondary {
            border: var(--border-sm) solid transparent;
        }

        @media (min-width: 640px) {
            .ui-support-page__cta-actions {
                flex-direction: row;
            }
        }

        @media (min-width: 1024px) {
            .ui-support-page__layout {
                grid-template-columns: 18rem minmax(0, 1fr);
            }

            .ui-support-page__sticky {
                position: sticky;
                top: calc(var(--space-xl) + 4rem);
            }
        }
    }

    /* Marketing footer */
    .site-footer {
        border-top: var(--border-sm) solid rgb(255 255 255 / 0.14);
        padding: var(--space-md);

        .site-footer__inner {
            display: grid;
            gap: var(--space-lg);
            align-items: center;
            padding-block: clamp(1.6rem, 1.3rem + 0.9vw, 2.5rem);
        }

        .site-footer__brand {
            display: inline-flex;
            align-items: center;
            justify-self: center;
            color: var(--white);
            text-decoration: none;
        }

        .site-footer__brand:hover {
            color: var(--white);
        }

        .site-footer__brand-logo {
            width: clamp(6.75rem, 10vw, 8.25rem);
            opacity: 0.94;
        }

        .site-footer__nav {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: center;
            gap: clamp(0.8rem, 1.5vw, 2rem);
            max-width: 42rem;
            margin-inline: auto;
        }

        .site-footer__link {
            color: rgb(166 177 196 / 0.82);
            text-decoration: none;
            font-family: var(--font-heading);
            font-size: clamp(0.62rem, 0.57rem + 0.2vw, 0.78rem);
            font-style: italic;
            font-weight: var(--font-bold);
            letter-spacing: 0.12em;
            line-height: 1;
            text-transform: uppercase;
            transition: color 0.2s ease;
        }

        .site-footer__link:hover,
        .site-footer__link.is-active {
            color: var(--brand-1);
        }

        .site-footer__meta {
            display: flex;
            flex-direction: column;
            gap: 0.35rem;
            align-items: center;
            justify-self: center;
            text-align: center;
            max-width: 22rem;
        }

        .site-footer__tagline,
        .site-footer__copyright {
            margin: 0;
            max-width: none;
            font-family: var(--font-heading);
            font-size: clamp(0.5rem, 0.46rem + 0.16vw, 0.66rem);
            font-style: italic;
            letter-spacing: 0.08em;
            line-height: 1.35;
            text-transform: uppercase;
        }

        .site-footer__tagline {
            color: rgb(197 206 220 / 0.76);
        }

        .site-footer__copyright {
            color: rgb(146 156 173 / 0.7);
        }
    }

    /* Shared placeholder pages for wired marketing links */
    .marketing-stub {
        position: relative;
        overflow: hidden;
        background:
            linear-gradient(180deg, rgb(255 255 255 / 0.02), transparent 28%),
            radial-gradient(
                circle at top center,
                rgb(240 178 0 / 0.11),
                transparent 38%
            ),
            var(--black);

        .marketing-stub__inner {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: var(--space-md);
            padding-block: clamp(4rem, 10vw, 7rem);
        }

        .marketing-stub__eyebrow {
            margin: 0;
            color: var(--brand-1);
            font-family: var(--font-heading);
            font-size: clamp(0.7rem, 0.62rem + 0.18vw, 0.84rem);
            font-style: italic;
            font-weight: var(--font-bold);
            letter-spacing: 0.18em;
            text-transform: uppercase;
        }

        .marketing-stub__title {
            margin: 0;
            max-width: 18ch;
        }

        .marketing-stub__description {
            margin: 0;
            max-width: 46rem;
            color: rgb(212 212 216 / 0.88);
        }

        .marketing-stub__panel {
            width: min(100%, 42rem);
            margin-top: var(--space-sm);
            padding: var(--space-lg);
            border: var(--border-sm) solid rgb(255 255 255 / 0.12);
            background: rgb(255 255 255 / 0.03);
            backdrop-filter: blur(12px);
            box-shadow: var(--shadow-sm);
        }

        .marketing-stub__panel-title {
            margin: 0;
        }

        .marketing-stub__panel-copy {
            margin: var(--space-sm) 0 0;
            max-width: none;
            color: rgb(166 177 196 / 0.9);
        }
    }

    @media (min-width: 64rem) {
        .site-footer {
            .site-footer__inner {
                grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
            }

            .site-footer__brand {
                justify-self: start;
            }

            .site-footer__meta {
                align-items: flex-end;
                justify-self: end;
                text-align: right;
            }
        }
    }
}
