/*!
Theme Name: Kadence Child
Template: kadence
Theme URI: https://www.kadencewp.com/kadence-theme/
Author: Kadence WP
Author URI: https://www.kadencewp.com/
Description: Kadence Theme is a lightweight yet full featured WordPress theme for creating beautiful fast loading and accessible websites, easier than ever. It features an easy to use drag and drop header and footer builder to build any type of header in minutes. It features a full library of gorgeous starter templates that are easy to modify with our intelligent global font and color controls. With extensive integration with the most popular 3rd party plugins, you can quickly build impressive ecommerce websites, course websites, business websites, and more.
Version: 1.4.5
License: GNU General Public License v3.0 (or later)
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: kadence
Requires at least: 6.3
Tested up to: 6.9.1
Tags: translation-ready, accessibility-ready, two-columns, right-sidebar, left-sidebar, footer-widgets, blog, custom-logo, custom-background, custom-menu, rtl-language-support, editor-style, threaded-comments, custom-colors, featured-images, wide-blocks, full-width-template, theme-options, e-commerce
Requires PHP: 7.4

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share
what you've learned with others.
*/
@plugin "tailwind-clamp";

.homepage-container {
    .blog-card-image-container figure {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        margin: 0;
    }

    .blog-card-image-container img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    /* Hide Scrollbar for Chrome, Safari and Opera */
    .curiosity-mosaic-container::-webkit-scrollbar {
        display: none;
    }

    /* Hide Scrollbar for IE, Edge and Firefox */
    .curiosity-mosaic-container {
        -ms-overflow-style: none;
        /* IE and Edge */
        scrollbar-width: none;
        /* Firefox */
    }

    button {
        padding: 16px 32px !important;
    }

    section {
        max-width: 1200px;
    }

    h4 {
        font-size: 18px;
        font-weight: 500;
    }

    .arrow-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
    }

    .arrow-button::after {
        content: "";
        width: 1.5em;
        height: 1.5em;
        flex-shrink: 0;

        background-color: currentColor;

        mask-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"%3E%3Cpath d="M566.6 342.6C579.1 330.1 579.1 309.8 566.6 297.3L406.6 137.3C394.1 124.8 373.8 124.8 361.3 137.3C348.8 149.8 348.8 170.1 361.3 182.6L466.7 288L96 288C78.3 288 64 302.3 64 320C64 337.7 78.3 352 96 352L466.7 352L361.3 457.4C348.8 469.9 348.8 490.2 361.3 502.7C373.8 515.2 394.1 515.2 406.6 502.7L566.6 342.7z"/%3E%3C/svg%3E');
        mask-repeat: no-repeat;
        mask-size: contain;
        mask-position: center;

        -webkit-mask-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"%3E%3Cpath d="M566.6 342.6C579.1 330.1 579.1 309.8 566.6 297.3L406.6 137.3C394.1 124.8 373.8 124.8 361.3 137.3C348.8 149.8 348.8 170.1 361.3 182.6L466.7 288L96 288C78.3 288 64 302.3 64 320C64 337.7 78.3 352 96 352L466.7 352L361.3 457.4C348.8 469.9 348.8 490.2 361.3 502.7C373.8 515.2 394.1 515.2 406.6 502.7L566.6 342.7z"/%3E%3C/svg%3E');
        -webkit-mask-repeat: no-repeat;
        -webkit-mask-size: contain;
        -webkit-mask-position: center;
    }
}

.hero-container {
    background:
        linear-gradient(to top, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.3) 100%),
        url('./assets/landing-page/images/backgrounds/gold.webp') no-repeat center center;
    background-size: cover;
}

/* 1. Desktop / Default styles */
.prosperity-container {
    background-image: url('./assets/landing-page/images/backgrounds/mission.webp');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

.curiosity-mosaic-container {
    article {
        background-size: cover;
    }

    & article:nth-child(1) {
        background-image: url('./assets/landing-page/images/associates/photo-card-1.webp');
    }

    & article:nth-child(2) {
        background-image: url('./assets/landing-page/images/associates/photo-card-2.webp');
    }

    & article:nth-child(3) {
        background-image: url('./assets/landing-page/images/associates/photo-card-3.webp');
    }
}

.carousel-dots {
    .dot {
        width: 10px;
        height: 10px;
        background-color: #cbd5e1;
        /* Tailwind slate-300 */
        border-radius: 50%;
        display: inline-block;
        transition: all 0.3s ease;
        cursor: pointer;
    }

    .dot.active {
        background-color: #1e293b;
        /* Tailwind slate-800 or your brand color */
        transform: scale(1.2);
        /* Makes the active dot slightly larger */
    }
}


.progress-container {
    background:
        linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(255, 255, 255, 1) 100%),
        url('./assets/landing-page/images/backgrounds/teal.webp'), no-repeat center center;
    background-size: cover;
}

.dreams-container {
    background-image: url('./assets/landing-page/images/backgrounds/purple-bg.webp');
    background-size: cover;

    .dreams-card-info {
        background-image: url('./assets/landing-page/images/backgrounds/black-gradient.webp');
        background-size: cover;
    }
}

.support-container {
    background-image:
        linear-gradient(to bottom, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0.65)),
        url('./assets/landing-page/images/backgrounds/black-gradient.webp');
    background-size: cover;
}

.blog-container {
    background:
        linear-gradient(to top left, rgba(0, 0, 0, 0) 0%, rgba(255, 255, 255, 1) 100%),
        url('./assets/landing-page/images/backgrounds/gold.webp') top left;
    background-size: cover;
}

/* Blog "What's new at the NEST" layout.
   Section-specific breakpoints (independent of the global Tailwind ones):
     - Mobile (< 500px): single column, all 3 cards identical —
       same fixed height, same 55/45 image-info split.
    -  Tablet (500px–768px): large card full-width top, two small cards side-by-side below
     - Desktop  (>= 769px): a single grid — heading top-left, large card spans
       the right column full-height, the two small cards fill the bottom-left.
   Using real grid cells (instead of an absolutely-positioned heading)
   avoids the Safari stacking-context clipping where the title bled over
   the cards. */
.blog-section {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

/* ── Mobile (< 500px): all cards identical ── */

/* Fixed card height */
.blog-section .blog-card {
    height: 460px;
}

/* Uniform 55 / 45 image-info split for every card on mobile & tablet. */
.blog-section .blog-card-link--large .blog-card-image-container,
.blog-section .blog-card-link--small-1 .blog-card-image-container,
.blog-section .blog-card-link--small-2 .blog-card-image-container {
    height: 55%;
}

.blog-section .blog-card-link--large .blog-card-info,
.blog-section .blog-card-link--small-1 .blog-card-info,
.blog-section .blog-card-link--small-2 .blog-card-info {
    height: 45%;
    /* Prevent the author aside from overflowing / being clipped */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 0;
    overflow: hidden;
}

/* The text block above the author should shrink gracefully */
.blog-section .blog-card-info>div:first-child {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
}

/* Author block always stays at the bottom, never gets cut */
.blog-section .blog-author {
    flex-shrink: 0;
    padding-top: 0.5rem;
}

/* ── Tablet (500px–768px): large card full-width top, two small cards side-by-side below ── */
@media (min-width: 500px) and (max-width: 768px) {
    .blog-section {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "info   info"
            "large  large"
            "small1 small2";
        column-gap: 1rem;
        row-gap: 1rem;
    }

    .blog-section .blog-info {
        grid-area: info;
    }

    .blog-section .blog-card-link--large {
        grid-area: large;
    }

    .blog-section .blog-card-link--small-1 {
        grid-area: small1;
    }

    .blog-section .blog-card-link--small-2 {
        grid-area: small2;
    }

    /* Cards fill their assigned grid area */
    .blog-section .blog-card-link,
    .blog-section .blog-card {
        height: 100%;
    }

    /* Large card keeps its own taller fixed height */
    .blog-section .blog-card-link--large {
        height: 460px;
    }

    /* Small cards a touch shorter now that they share a row */
    .blog-section .blog-card-link--small-1,
    .blog-section .blog-card-link--small-2 {
        height: 370px;
    }

    /* Large card: bigger image, tighter info on tablet */
    .blog-section .blog-card-link--large .blog-card-image-container {
        height: 65%;
    }

    .blog-section .blog-card-link--large .blog-card-info {
        height: 35%;
    }
}

/* ── Desktop (≥ 769px): asymmetric grid; cards fill their grid cell ── */
@media (min-width: 769px) {
    .blog-section {
        grid-template-columns: 3fr 3fr 4.8fr;
        grid-template-rows: 270px 342px;
        grid-template-areas:
            "info   info    large"
            "small1 small2  large";
        column-gap: 2.125rem;
        row-gap: 1.5rem;
        padding-top: 5rem;
    }

    .blog-section .blog-info {
        grid-area: info;
    }

    .blog-section .blog-card-link--large {
        grid-area: large;
    }

    .blog-section .blog-card-link--small-1 {
        grid-area: small1;
    }

    .blog-section .blog-card-link--small-2 {
        grid-area: small2;
    }

    /* Cards fill their grid cell's full height */
    .blog-section .blog-card-link,
    .blog-section .blog-card {
        height: 100%;
    }

    /* Desktop image-info split: large card 45/55, small cards 50/50 */
    .blog-section .blog-card-link--large .blog-card-image-container {
        height: 45%;
    }

    .blog-section .blog-card-link--large .blog-card-info {
        height: 55%;
    }

    .blog-section .blog-card-link--small-1 .blog-card-image-container,
    .blog-section .blog-card-link--small-2 .blog-card-image-container {
        height: 50%;
    }

    .blog-section .blog-card-link--small-1 .blog-card-info,
    .blog-section .blog-card-link--small-2 .blog-card-info {
        height: 50%;
    }
}

/* ── Blog card info: responsive typography & avatar ──────────────────────────
   All sizes use clamp(min, preferred-vw, max) so they scale fluidly
   between viewport widths without breakpoint jumps.
   Hierarchy: title > author name > date / label (always preserved).
   ────────────────────────────────────────────────────────────────────────── */

/* Date line */
.blog-section .blog-card-date {
    font-size: clamp(11px, 1.1vw, 14px);
    line-height: 1.4;
}

/* Title — CSS line-clamp for clean ellipsis; no PHP word-trimming needed.
   Mobile & tablet: 3 lines (cards are full-width and tall enough). */
.blog-section .blog-card-title {
    font-size: clamp(16px, 2.2vw, 22px);
    font-weight: 500;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Desktop: large card keeps 3 lines; small cards drop to 2 (shorter cells). */
@media (min-width: 769px) {

    .blog-section .blog-card-link--small-1 .blog-card-title,
    .blog-section .blog-card-link--small-2 .blog-card-title {
        -webkit-line-clamp: 2;
    }

    /* Reveal excerpt on large card desktop only */
    .blog-section .blog-card-link--large .blog-card-excerpt {
        display: -webkit-box;
        -webkit-line-clamp: 4;
        -webkit-box-orient: vertical;
        overflow: hidden;
        font-size: clamp(14px, 1.5vw, 16px);
        line-height: 1.4;
        color: #4b5563;
        /* Tailwind gray-600 */
        margin-top: 0.5rem;
    }
}

/* Excerpt hidden by default (mobile/tablet & small cards) */
.blog-section .blog-card-excerpt {
    display: none;
}

/* Author label ("Author:") — smallest text, muted */
.blog-section .blog-author-label {
    font-size: clamp(10px, 1vw, 13px);
    line-height: 1.3;
    opacity: 0.65;
}

/* Author name — always strictly smaller than the title */
.blog-section .blog-author-name {
    font-size: clamp(13px, 1.4vw, 15px);
    font-weight: 500;
    line-height: 1.3;
}

/* Avatar — shrinks proportionally on smaller viewports */
.blog-section .blog-author-avatar {
    width: clamp(32px, 3.5vw, 45px);
    height: clamp(32px, 3.5vw, 45px);
}

@keyframes marquee-loop {
    from {
        transform: translateX(0);
    }

    to {
        /* Move exactly half of the total content width */
        transform: translateX(-2000px);
    }
}

.support-row-1,
.support-row-2 {
    display: flex;
    flex-shrink: 0;
    animation: marquee-loop 15s linear infinite;
    will-change: transform;
}

.support-row-2 {
    animation-direction: reverse;
}

#dreams-card-image {
    background-image: url("./assets/landing-page/images/backgrounds/teal.webp");
    background-size: cover;
    background-position: top center;
}

@media (min-width: 768px) {
    .hide-bg-image-on-desktop-tablet {
        background-image: none !important;
    }
}

.blog-post-hero {
    margin: 0 0 2.5rem;
}

.blog-post-hero__card {
    min-height: 502px;
}

.blog-post-hero__media {
    min-height: 280px;
}

.blog-post-hero__title {
    font-size: clamp(1.75rem, 2.5vw, 2.25rem);
    line-height: 1.2;
}

.blog-post-hero__byline,
.blog-post-hero__author-label {
    opacity: 0.75;
}

.blog-post-hero__author-name {
    font-weight: 500;
}