/* =========================================================
   GREAT VALLEY HOMESCHOOL
   COMPLETE PUBLIC WEBSITE STYLESHEET
   BATCH 1 OF 5
   VARIABLES + GLOBALS + BUTTONS + NAVIGATION
========================================================= */


/* =========================================================
   BRAND VARIABLES
========================================================= */

:root {
    --mountain-navy: #244b74;
    --deep-navy: #18364f;
    --mountain-blue: #628aa5;

    --forest-green: #536f4b;
    --forest-dark: #3e5938;
    --sage-green: #a9bda1;

    --warm-cream: #f7f4ed;
    --soft-blue: #edf3f6;
    --white: #ffffff;

    --charcoal: #34414a;
    --muted-text: #65727b;
    --border-color: #dbe3e7;

    --heading-font: "Playfair Display", Georgia, serif;
    --body-font: "Inter", Arial, sans-serif;

    --card-radius: 20px;
    --button-radius: 999px;

    --soft-shadow:
        0 18px 45px rgba(36, 75, 116, 0.10);

    --card-shadow:
        0 10px 30px rgba(36, 75, 116, 0.08);

    --transition: 0.25s ease;
}


/* =========================================================
   GLOBAL RESET
========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 90px;
}

body {
    margin: 0;
    padding: 0;
    overflow-x: hidden;

    background: var(--warm-cream);
    color: var(--charcoal);

    font-family: var(--body-font);
    font-size: 16px;
    line-height: 1.7;
}

img {
    display: block;
    max-width: 100%;
}

section {
    position: relative;
}

a {
    color: var(--mountain-navy);
    text-decoration: none;
}

a:hover {
    color: var(--forest-green);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;

    color: var(--mountain-navy);

    font-family: var(--heading-font);
    font-weight: 700;
    line-height: 1.18;
}

h1 {
    font-size: clamp(2.8rem, 7vw, 5.2rem);
}

h2 {
    font-size: clamp(2rem, 4vw, 3.15rem);
}

h3 {
    font-size: 1.5rem;
}

p {
    margin-top: 0;
}

.lead {
    max-width: 760px;
    margin-right: auto;
    margin-left: auto;

    color: var(--muted-text);

    font-size: 1.08rem;
    line-height: 1.8;
}

.section-title {
    margin-bottom: 14px;

    color: var(--forest-green);

    font-family: var(--body-font);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 3px solid rgba(98, 138, 165, 0.38);
    outline-offset: 3px;
}

::selection {
    background: var(--mountain-blue);
    color: var(--white);
}


/* =========================================================
   BOOTSTRAP BACKGROUND OVERRIDE
========================================================= */

.bg-light {
    background-color: var(--soft-blue) !important;
}


/* =========================================================
   BUTTONS
========================================================= */

.btn {
    border-width: 2px;

    font-family: var(--body-font);
    font-weight: 600;

    transition:
        transform var(--transition),
        background-color var(--transition),
        border-color var(--transition),
        color var(--transition),
        box-shadow var(--transition);
}

.btn:hover {
    transform: translateY(-2px);
}

.btn-primary {
    border-color: var(--mountain-navy);
    background: var(--mountain-navy);
    color: var(--white);
}

.btn-primary:hover,
.btn-primary:focus {
    border-color: var(--deep-navy);
    background: var(--deep-navy);
    color: var(--white);
}

.btn-success {
    border-color: var(--forest-green);
    background: var(--forest-green);
    color: var(--white);
}

.btn-success:hover,
.btn-success:focus {
    border-color: var(--forest-dark);
    background: var(--forest-dark);
    color: var(--white);
}

.btn-light {
    border-color: var(--white);
    background: var(--white);
    color: var(--mountain-navy);
}

.btn-light:hover,
.btn-light:focus {
    border-color: var(--warm-cream);
    background: var(--warm-cream);
    color: var(--deep-navy);
}

.btn-outline-success {
    border-color: var(--forest-green);
    color: var(--forest-green);
}

.btn-outline-success:hover,
.btn-outline-success:focus {
    border-color: var(--forest-green);
    background: var(--forest-green);
    color: var(--white);
}

.btn-outline-primary {
    border-color: var(--mountain-navy);
    color: var(--mountain-navy);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    border-color: var(--mountain-navy);
    background: var(--mountain-navy);
    color: var(--white);
}


/* =========================================================
   PUBLIC NAVIGATION
========================================================= */

.navbar {
    min-height: 82px;

    border-bottom:
        1px solid rgba(36, 75, 116, 0.08);

    background:
        rgba(255, 255, 255, 0.97) !important;

    backdrop-filter: blur(12px);
}

.navbar .container {
    gap: 18px;
}

.navbar-brand.logo {
    display: flex;
    flex-direction: column;

    margin-right: 20px;
    padding-top: 4px;
    padding-bottom: 4px;

    line-height: 1;
}

.logo-title {
    color: var(--mountain-navy);

    font-family: var(--heading-font);
    font-size: 1.65rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.logo-subtitle {
    margin-top: 6px;

    color: var(--forest-green);

    font-family: var(--body-font);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.navbar-nav {
    gap: 6px;
}

.navbar .nav-link {
    padding: 10px 13px !important;

    border-radius: 10px;

    color: var(--mountain-navy);

    font-size: 0.95rem;
    font-weight: 600;

    transition:
        color var(--transition),
        background-color var(--transition);
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
    background: var(--soft-blue);
    color: var(--forest-green);
}

.navbar-toggler {
    padding: 8px 10px;

    border: 1px solid var(--border-color);
    border-radius: 10px;
}

.navbar-toggler:focus {
    box-shadow:
        0 0 0 3px rgba(36, 75, 116, 0.15);
}


/* =========================================================
   TABLET NAVIGATION
========================================================= */

@media (max-width: 991.98px) {

    html {
        scroll-padding-top: 78px;
    }

    .navbar {
        min-height: 78px;
    }

    .navbar-collapse {
        margin-top: 15px;
        padding: 18px;

        border: 1px solid var(--border-color);
        border-radius: 18px;

        background: var(--white);
        box-shadow: var(--card-shadow);
    }

    .navbar-nav {
        align-items: stretch !important;
        gap: 8px;
    }

    .navbar .nav-link {
        text-align: center;
    }

    .navbar .btn {
        width: 100%;
        margin-top: 6px;
    }
}


/* =========================================================
   MOBILE NAVIGATION
========================================================= */

@media (max-width: 767.98px) {

    html {
        scroll-padding-top: 84px;
    }

    body {
        font-size: 15px;
    }

    .navbar {
        min-height: 84px;
    }

    .navbar .container {
        padding-right: 18px;
        padding-left: 18px;
    }

    .navbar-brand.logo {
        margin-right: 8px;
    }

    .logo-title {
        font-size: 1.45rem;
    }

    .logo-subtitle {
        margin-top: 5px;

        font-size: 0.58rem;
        letter-spacing: 0.18em;
    }

    .navbar-toggler {
        padding: 9px 11px;

        border-radius: 12px;
    }

    .navbar-collapse {
        margin-top: 12px;
        padding: 18px;

        border-radius: 16px;
    }

    .navbar-nav {
        gap: 9px;
    }

    .navbar .nav-link {
        padding: 13px 15px !important;

        border-radius: 12px;

        text-align: center;
    }

    .navbar .btn {
        display: flex;
        min-height: 50px;
        align-items: center;
        justify-content: center;

        margin-top: 3px;
    }

    .navbar .btn-outline-success {
        background: var(--white);
    }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration:
            0.01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            0.01ms !important;
    }
}/* =========================================================
   GREAT VALLEY HOMESCHOOL
   COMPLETE PUBLIC WEBSITE STYLESHEET
   BATCH 2 OF 5
   HOMEPAGE HERO + ABOUT + PROGRAMS + FAQ
========================================================= */


/* =========================================================
   HOMEPAGE HERO
========================================================= */

.hero {
    position: relative;
    isolation: isolate;

    display: flex;
    min-height: 100vh;
    align-items: center;

    padding: 150px 0 90px;

    background-image:
        linear-gradient(
            90deg,
            rgba(22, 52, 78, 0.84) 0%,
            rgba(36, 75, 116, 0.68) 48%,
            rgba(36, 75, 116, 0.36) 100%
        ),
        url("assets/images/landscape.jpg");

    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;

    color: var(--white);
}

.hero::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;

    height: 62px;

    background:
        linear-gradient(
            to bottom,
            rgba(247, 244, 237, 0),
            var(--warm-cream)
        );

    content: "";
    pointer-events: none;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
}

.hero-content {
    position: relative;
    z-index: 1;

    max-width: 860px;
}

.hero h1 {
    margin-bottom: 20px;

    color: var(--white);

    font-size:
        clamp(2.9rem, 7vw, 5.2rem);

    text-shadow:
        0 4px 20px rgba(0, 0, 0, 0.18);
}

.hero h2 {
    max-width: 800px;
    margin-bottom: 22px;

    color: var(--white);

    font-family: var(--body-font);
    font-size:
        clamp(1.45rem, 3vw, 2.2rem);

    font-weight: 500;
    line-height: 1.35;
}

.hero p {
    max-width: 720px;
    margin-bottom: 30px;

    color:
        rgba(255, 255, 255, 0.94);

    font-size:
        clamp(1rem, 2vw, 1.16rem);

    line-height: 1.75;
}

.hero-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.hero-buttons .btn {
    min-width: 225px;

    padding-top: 14px;
    padding-bottom: 14px;

    box-shadow:
        0 10px 30px rgba(0, 0, 0, 0.16);
}


/* =========================================================
   HOMEPAGE SECTION SPACING
========================================================= */

section.py-5 {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
}

.text-center.mb-5 {
    margin-bottom: 40px !important;
}


/* =========================================================
   WHY FAMILIES CHOOSE GREAT VALLEY
========================================================= */

#about {
    background: var(--warm-cream);
}

#about .text-center {
    max-width: 860px;
    margin-right: auto;
    margin-left: auto;
}

#about .row {
    align-items: stretch;
}

.feature-card {
    height: 100%;
    padding: 36px;

    border:
        1px solid rgba(36, 75, 116, 0.07);

    border-radius: var(--card-radius);

    background: var(--white);
    box-shadow: var(--card-shadow);

    transition:
        transform var(--transition),
        box-shadow var(--transition),
        border-color var(--transition);
}

.feature-card:hover {
    transform: translateY(-6px);

    border-color:
        rgba(36, 75, 116, 0.13);

    box-shadow:
        0 20px 44px rgba(36, 75, 116, 0.13);
}

.feature-card h3 {
    margin-bottom: 15px;

    font-size: 1.55rem;
}

.feature-card p {
    margin-bottom: 0;

    color: var(--muted-text);

    line-height: 1.72;
}


/* =========================================================
   LEARNING COMMUNITIES
========================================================= */

#programs {
    border-top:
        1px solid rgba(36, 75, 116, 0.05);

    border-bottom:
        1px solid rgba(36, 75, 116, 0.05);
}

#programs .text-center {
    max-width: 860px;
    margin-right: auto;
    margin-left: auto;
}

#programs .row {
    align-items: stretch;
}

.program-card {
    height: 100%;
    overflow: hidden;

    border:
        1px solid rgba(36, 75, 116, 0.07);

    border-radius: 22px;

    background: var(--white);
    box-shadow: var(--card-shadow);

    transition:
        transform var(--transition),
        box-shadow var(--transition),
        border-color var(--transition);
}

.program-card:hover {
    transform: translateY(-7px);

    border-color:
        rgba(36, 75, 116, 0.13);

    box-shadow:
        0 22px 48px rgba(36, 75, 116, 0.14);
}

.program-image {
    height: 225px;

    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.pre-k-image {
    background-image:
        linear-gradient(
            rgba(36, 75, 116, 0.07),
            rgba(36, 75, 116, 0.07)
        ),
        url("https://images.unsplash.com/photo-1516627145497-ae6968895b74?auto=format&fit=crop&w=1200&q=82");
}

.elementary-image {
    background-image:
        linear-gradient(
            rgba(36, 75, 116, 0.07),
            rgba(36, 75, 116, 0.07)
        ),
        url("https://images.unsplash.com/photo-1509062522246-3755977927d7?auto=format&fit=crop&w=1200&q=82");
}

.secondary-image {
    background-image:
        linear-gradient(
            rgba(36, 75, 116, 0.07),
            rgba(36, 75, 116, 0.07)
        ),
        url("https://images.unsplash.com/photo-1522202176988-66273c2fd55f?auto=format&fit=crop&w=1200&q=82");
}

.program-content {
    padding: 30px;
}

.program-content h3 {
    margin-bottom: 14px;

    font-size: 1.55rem;
}

.program-content p {
    margin-bottom: 0;

    color: var(--muted-text);

    line-height: 1.72;
}


/* =========================================================
   FAQ
========================================================= */

#faq {
    background: var(--warm-cream);
}

#faq .text-center {
    max-width: 820px;
    margin-right: auto;
    margin-left: auto;
}

.accordion {
    max-width: 900px;
    margin-right: auto;
    margin-left: auto;
}

.accordion-item {
    overflow: hidden;
    margin-bottom: 15px;

    border:
        1px solid rgba(36, 75, 116, 0.08);

    border-radius: 16px !important;

    background: var(--white);
    box-shadow: var(--card-shadow);
}

.accordion-button {
    padding: 22px 24px;

    background: var(--white);
    color: var(--mountain-navy);

    font-family: var(--body-font);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.45;
}

.accordion-button:not(.collapsed) {
    background: var(--white);
    color: var(--forest-green);

    box-shadow: none;
}

.accordion-button:focus {
    border-color: transparent;

    box-shadow:
        0 0 0 3px rgba(36, 75, 116, 0.12);
}

.accordion-body {
    padding:
        0 24px 23px;

    color: var(--muted-text);

    line-height: 1.72;
}


/* =========================================================
   TABLET HOMEPAGE
========================================================= */

@media (max-width: 991.98px) {

    .hero {
        min-height: auto;

        padding: 135px 0 84px;

        background-position: center;
        text-align: center;
    }

    .hero-content {
        margin: 0 auto;
    }

    .hero p {
        margin-right: auto;
        margin-left: auto;
    }

    .hero-buttons {
        justify-content: center;
    }

    section.py-5 {
        padding-top: 66px !important;
        padding-bottom: 66px !important;
    }

    .text-center.mb-5 {
        margin-bottom: 33px !important;
    }

    .feature-card {
        padding: 30px;
    }

    .program-image {
        height: 205px;
    }

    .program-content {
        padding: 27px;
    }
}


/* =========================================================
   MOBILE HOMEPAGE
========================================================= */

@media (max-width: 767.98px) {

    .hero {
        min-height: auto;

        padding:
            112px 18px 44px;

        background-image:
            linear-gradient(
                rgba(22, 52, 78, 0.74),
                rgba(22, 52, 78, 0.65)
            ),
            url("assets/images/landscape.jpg");

        background-position: center;
        text-align: center;
    }

    .hero::after {
        height: 30px;
    }

    .hero-content {
        max-width: 620px;
        margin: 0 auto;
        padding-right: 0;
        padding-left: 0;
    }

    .hero h1 {
        max-width: 540px;
        margin:
            0 auto 14px;

        font-size:
            clamp(2.45rem, 11.5vw, 3.35rem);

        line-height: 1.04;
    }

    .hero h2 {
        max-width: 560px;
        margin:
            0 auto 20px;

        font-size: 1.14rem;
        line-height: 1.42;
    }

    .hero p {
        max-width: 520px;
        margin:
            0 auto 22px;

        font-size: 0.95rem;
        line-height: 1.6;
    }

    .hero-buttons {
        width: 100%;
        max-width: 520px;
        margin: 0 auto;

        flex-direction: column;
        gap: 11px;
    }

    .hero-buttons .btn {
        width: 100%;
        min-width: 0;
        min-height: 52px;

        padding:
            12px 20px !important;

        font-size: 0.98rem;
        line-height: 1.3;
        white-space: normal;
    }

    section.py-5 {
        padding-top: 44px !important;
        padding-bottom: 44px !important;
    }

    .text-center.mb-5 {
        margin-bottom: 26px !important;
    }

    .section-title {
        margin-bottom: 10px;

        font-size: 0.71rem;
        letter-spacing: 0.16em;
    }

    section h2 {
        font-size: 2.02rem;
        line-height: 1.13;
    }

    .lead {
        font-size: 0.97rem;
        line-height: 1.64;
    }


    /* =====================================================
       MOBILE ABOUT ACCORDION
    ===================================================== */

    #about {
        padding-top: 48px !important;
    }

    #about .row {
        gap: 14px;
    }

    #about .feature-card {
        height: auto;
        padding: 0;
        overflow: hidden;

        border-radius: 17px;
    }

    #about .feature-card:hover {
        transform: none;
        box-shadow: var(--card-shadow);
    }

    #about .feature-card h3 {
        position: relative;

        display: flex;
        min-height: 72px;
        align-items: center;

        margin: 0;
        padding: 18px 58px 18px 20px;

        cursor: pointer;

        font-size: 1.4rem;
    }

    #about .feature-card h3::after {
        position: absolute;
        top: 50%;
        right: 20px;

        content: "+";

        color: var(--mountain-navy);

        font-family: var(--body-font);
        font-size: 1.5rem;
        font-weight: 400;

        transform: translateY(-50%);
    }

    #about .feature-card p {
        display: none;

        margin: 0;
        padding: 0 20px 22px;

        font-size: 0.94rem;
        line-height: 1.6;
    }

    #about .feature-card.mobile-open p {
        display: block;
    }

    #about .feature-card.mobile-open h3::after {
        content: "−";
    }


    /* =====================================================
       MOBILE PROGRAMS
    ===================================================== */

    #programs .row {
        display: flex;
        flex-wrap: nowrap;
        gap: 16px;

        overflow-x: auto;

        padding-bottom: 12px;

        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    #programs .row::-webkit-scrollbar {
        display: none;
    }

    #programs .col-lg-4 {
        flex: 0 0 84%;
        max-width: 84%;

        scroll-snap-align: start;
    }

    .program-card {
        border-radius: 18px;
    }

    .program-card:hover {
        transform: none;
        box-shadow: var(--card-shadow);
    }

    .program-image {
        height: 160px;
    }

    .program-content {
        padding: 21px;
    }

    .program-content h3 {
        margin-bottom: 9px;

        font-size: 1.47rem;
    }

    .program-content p {
        font-size: 0.93rem;
        line-height: 1.58;
    }


    /* =====================================================
       MOBILE FAQ
    ===================================================== */

    #faq {
        padding-top: 58px !important;
    }

    .accordion-item {
        margin-bottom: 11px;

        border-radius: 14px !important;
    }

    .accordion-button {
        min-height: 66px;
        padding: 18px 19px;

        font-size: 0.95rem;
        line-height: 1.38;
    }

    .accordion-body {
        padding:
            0 19px 19px;

        font-size: 0.93rem;
        line-height: 1.62;
    }
}


/* =========================================================
   EXTRA-SMALL HOMEPAGE
========================================================= */

@media (max-width: 420px) {

    .hero {
        padding-top: 108px;
        padding-bottom: 42px;
    }

    .hero h1 {
        font-size: 2.35rem;
    }

    .hero h2 {
        font-size: 1.02rem;
    }

    .hero p {
        font-size: 0.91rem;
    }

    section h2 {
        font-size: 1.87rem;
    }

    .lead {
        font-size: 0.94rem;
    }

    #about .feature-card h3 {
        min-height: 68px;
        padding-right: 54px;

        font-size: 1.33rem;
    }

    #programs .col-lg-4 {
        flex-basis: 88%;
        max-width: 88%;
    }

    .program-image {
        height: 148px;
    }

    .program-content {
        padding: 19px;
    }
}/* =========================================================
   GREAT VALLEY HOMESCHOOL
   COMPLETE PUBLIC WEBSITE STYLESHEET
   BATCH 3 OF 5
   CTA + FOOTER + INTERESTED FAMILY PAGE
========================================================= */


/* =========================================================
   HOMEPAGE CALL TO ACTION
========================================================= */

#interested {
    background:
        linear-gradient(
            135deg,
            rgba(237, 243, 246, 0.92),
            rgba(247, 244, 237, 0.98)
        );
}

.cta-box {
    max-width: 950px;
    margin: 0 auto;
    padding: 64px;

    border:
        1px solid rgba(36, 75, 116, 0.08);

    border-radius: 26px;

    background: var(--white);
    box-shadow: var(--soft-shadow);

    text-align: center;
}

.cta-box h2 {
    margin-bottom: 18px;
}

.cta-box > p {
    max-width: 700px;
    margin-right: auto;
    margin-left: auto;

    color: var(--muted-text);

    font-size: 1.05rem;
    line-height: 1.75;
}

.cta-box hr {
    max-width: 320px;
    margin: 46px auto;

    border-color: var(--border-color);

    opacity: 1;
}

.cta-box h4 {
    margin-bottom: 12px;
}

.cta-box .btn-lg {
    padding-top: 14px;
    padding-bottom: 14px;
}


/* =========================================================
   PUBLIC FOOTER
========================================================= */

footer {
    padding: 64px 0 26px;

    background: #1f3445;
    color: var(--white);
}

footer h3,
footer h5 {
    color: var(--white);
}

footer h3 {
    margin-bottom: 14px;
}

footer h5 {
    margin-bottom: 16px;

    font-family: var(--body-font);
    font-size: 1rem;
    font-weight: 700;
}

footer p {
    max-width: 500px;

    color:
        rgba(255, 255, 255, 0.76);
}

.footer-links {
    margin: 0;
    padding: 0;

    list-style: none;
}

.footer-links li {
    margin-bottom: 10px;
}

.footer-links a {
    color:
        rgba(255, 255, 255, 0.76);

    transition:
        color var(--transition);
}

.footer-links a:hover {
    color: var(--white);
}

footer hr {
    margin: 40px 0 22px;

    border-color:
        rgba(255, 255, 255, 0.14);

    opacity: 1;
}

footer .text-center {
    color:
        rgba(255, 255, 255, 0.65);

    font-size: 0.9rem;
}


/* =========================================================
   TABLET CTA AND FOOTER
========================================================= */

@media (max-width: 991.98px) {

    .cta-box {
        padding: 50px 38px;
    }

    footer {
        text-align: center;
    }

    footer p {
        margin-right: auto;
        margin-left: auto;
    }
}


/* =========================================================
   MOBILE CTA
========================================================= */

@media (max-width: 767.98px) {

    #interested {
        padding-top: 46px !important;
        padding-bottom: 46px !important;
    }

    .cta-box {
        padding: 30px 22px;

        border-radius: 20px;
    }

    .cta-box h2 {
        margin-bottom: 14px;

        font-size: 1.95rem;
    }

    .cta-box > p {
        font-size: 0.96rem;
        line-height: 1.65;
    }

    .cta-box hr {
        margin: 30px auto;
    }

    .cta-box h4 {
        font-size: 1.3rem;
    }

    .cta-box .btn {
        width: 100%;
        min-height: 52px;

        white-space: normal;
    }
}


/* =========================================================
   MOBILE FOOTER
========================================================= */

@media (max-width: 767.98px) {

    footer {
        padding: 44px 0 22px;

        text-align: center;
    }

    footer .row {
        row-gap: 26px;
    }

    footer h3 {
        font-size: 1.6rem;
    }

    footer p {
        margin-right: auto;
        margin-left: auto;

        font-size: 0.92rem;
        line-height: 1.62;
    }

    footer h5 {
        margin-bottom: 12px;
    }

    .footer-links li {
        margin-bottom: 8px;
    }

    footer hr {
        margin: 30px 0 18px;
    }

    footer .text-center {
        font-size: 0.82rem;
        line-height: 1.5;
    }
}


/* =========================================================
   INTERESTED FAMILY PAGE
========================================================= */

.interest-page-header {
    padding: 132px 0 42px;

    background:
        linear-gradient(
            135deg,
            rgba(237, 243, 246, 0.97),
            rgba(247, 244, 237, 0.99)
        );

    text-align: center;
}

.interest-page-heading {
    max-width: 780px;
    margin: 0 auto;
}

.interest-page-heading h1 {
    margin-bottom: 16px;

    font-size:
        clamp(2.5rem, 6vw, 4.25rem);
}

.interest-page-heading p:last-child {
    max-width: 680px;
    margin: 0 auto;

    color: var(--muted-text);

    font-size: 1.08rem;
    line-height: 1.75;
}

.interest-page-main {
    padding: 34px 0 72px;

    background: var(--warm-cream);
}

.interest-page-intro {
    max-width: 760px;
    margin: 0 auto 24px;

    text-align: center;
}

.interest-page-intro h2 {
    margin-bottom: 14px;
}

.interest-page-intro p {
    margin-bottom: 10px;

    color: var(--muted-text);

    line-height: 1.68;
}

.interested-form-wrapper {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    overflow: hidden;

    border: 1px solid var(--border-color);
    border-radius: 22px;

    background: var(--white);
    box-shadow: var(--soft-shadow);
}

.interested-form-wrapper iframe {
    display: block;

    width: 100%;
    height: 760px;

    border: 0;
    background: var(--white);
}

.interest-page-return {
    margin-top: 28px;

    text-align: center;
}


/* =========================================================
   INTERESTED FAMILY TABLET
========================================================= */

@media (max-width: 991.98px) {

    .interest-page-header {
        padding: 120px 0 40px;
    }

    .interest-page-main {
        padding-bottom: 64px;
    }
}


/* =========================================================
   INTERESTED FAMILY MOBILE
========================================================= */

@media (max-width: 767.98px) {

    .interest-page-header {
        padding: 104px 18px 28px;
    }

    .interest-page-heading h1 {
        margin-bottom: 12px;

        font-size: 2.35rem;
        line-height: 1.08;
    }

    .interest-page-heading p:last-child {
        font-size: 0.95rem;
        line-height: 1.58;
    }

    .interest-page-main {
        padding: 22px 0 46px;
    }

    .interest-page-intro {
        margin-bottom: 16px;
    }

    .interest-page-intro h2 {
        margin-bottom: 10px;

        font-size: 1.75rem;
    }

    .interest-page-intro p {
        font-size: 0.93rem;
        line-height: 1.58;
    }

    .interested-form-wrapper {
        border-radius: 16px;
        box-shadow: var(--card-shadow);
    }

    .interested-form-wrapper iframe {
        height: 930px;
    }

    .interest-page-return {
        margin-top: 22px;
    }
}


/* =========================================================
   EXTRA-SMALL PUBLIC CTA AND INTEREST PAGE
========================================================= */

@media (max-width: 420px) {

    .cta-box {
        padding: 26px 18px;
    }

    .cta-box h2 {
        font-size: 1.72rem;
    }

    footer {
        padding-top: 38px;
    }

    .interest-page-heading h1 {
        font-size: 2.15rem;
    }

    .interested-form-wrapper iframe {
        height: 980px;
    }
}/* =========================================================
   GREAT VALLEY HOMESCHOOL
   COMPLETE PUBLIC WEBSITE STYLESHEET
   BATCH 4 OF 5
   FAMILY LOGIN REDESIGN
========================================================= */


/* =========================================================
   PAGE
========================================================= */

.family-login-page-redesign {
    min-height: calc(100vh - 170px);

    padding: 140px 0 80px;

    background:
        radial-gradient(
            circle at 10% 15%,
            rgba(98,138,165,.10),
            transparent 35%
        ),
        linear-gradient(
            135deg,
            rgba(237,243,246,.98),
            rgba(247,244,237,.99)
        );
}

.family-login-layout-redesign {

    display:grid;

    grid-template-columns:
        470px
        minmax(0,1fr);

    gap:72px;

    align-items:center;
}


/* =========================================================
   LOGIN CARD
========================================================= */

.family-login-card-primary{

    width:100%;

}

.family-login-card-inner{

    padding:44px;

    background:white;

    border-radius:26px;

    border:1px solid rgba(36,75,116,.08);

    box-shadow:
        0 28px 70px rgba(36,75,116,.13);
}

.family-login-card-eyebrow{

    text-align:center;

    margin-bottom:10px;
}

.family-login-mobile-title{

    margin-bottom:14px;

    text-align:center;

    font-size:2.4rem;
}

.family-login-card-text{

    max-width:390px;

    margin:0 auto 30px;

    text-align:center;

    color:var(--muted-text);

    line-height:1.65;
}

.family-login-card .form-label{

    font-weight:700;

    color:var(--mountain-navy);
}

.family-login-card .form-control{

    min-height:54px;

    border-radius:13px;

    border:1px solid var(--border-color);

    background:#fbfcfd;
}

.family-login-card .form-control:focus{

    background:white;

    border-color:var(--mountain-blue);

    box-shadow:
        0 0 0 4px rgba(98,138,165,.14);
}

.family-login-options{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:18px;

    margin:6px 0 26px;
}

.family-remember{

    display:flex;

    gap:9px;

    align-items:center;
}

.family-forgot-link{

    font-weight:700;
}

.family-login-card .btn{

    min-height:56px;

    font-size:1rem;
}

.family-login-message{

    min-height:24px;

    margin-top:15px;

    text-align:center;

    color:var(--muted-text);
}


/* =========================================================
   RIGHT SIDE
========================================================= */

.family-login-intro-redesign h2{

    max-width:650px;

    margin-bottom:22px;

    font-size:clamp(2.6rem,5vw,4.3rem);

    line-height:1.08;
}

.family-login-lead{

    max-width:620px;

    margin-bottom:32px;

    color:var(--muted-text);

    font-size:1.08rem;

    line-height:1.72;
}


/* =========================================================
   WHAT'S INSIDE
========================================================= */

.family-login-inside{

    padding:30px;

    border-radius:20px;

    background:white;

    border:1px solid rgba(36,75,116,.08);

    box-shadow:var(--card-shadow);
}

.family-login-inside h3{

    margin-bottom:18px;

    font-size:1.35rem;
}

.family-login-inside-list{

    display:grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap:14px 28px;

    margin:0;

    padding:0;

    list-style:none;
}

.family-login-inside-list li{

    position:relative;

    padding-left:26px;

    color:var(--muted-text);
}

.family-login-inside-list li::before{

    position:absolute;

    left:0;

    color:var(--forest-green);

    font-weight:700;

    content:"✓";
}


/* =========================================================
   NEW FAMILY
========================================================= */

.family-login-new-family{

    margin-top:30px;
}

.family-login-divider{

    display:flex;

    gap:16px;

    align-items:center;

    margin-bottom:18px;

    color:var(--muted-text);

    font-size:.85rem;
}

.family-login-divider::before,
.family-login-divider::after{

    flex:1;

    height:1px;

    background:var(--border-color);

    content:"";
}

.family-login-note{

    margin-top:14px;

    color:var(--muted-text);

    font-size:.84rem;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width:991.98px){

.family-login-page-redesign{

padding:120px 0 70px;

}

.family-login-layout-redesign{

grid-template-columns:1fr;

gap:42px;

}

.family-login-card-primary{

max-width:560px;

margin:0 auto;

}

.family-login-intro-redesign{

text-align:center;

}

.family-login-lead,
.family-login-inside,
.family-login-new-family{

margin-left:auto;

margin-right:auto;

}

.family-login-inside-list{

text-align:left;

}

}/* =========================================================
   GREAT VALLEY HOMESCHOOL
   COMPLETE PUBLIC WEBSITE STYLESHEET
   BATCH 5 OF 5
   FAMILY LOGIN MOBILE + FINAL POLISH
========================================================= */


/* =========================================================
   FAMILY LOGIN MOBILE
========================================================= */

@media (max-width: 767.98px) {

    .family-login-page-redesign {
        min-height: auto;
        padding: 98px 0 44px;
    }

    .family-login-layout-redesign {
        display: flex;
        flex-direction: column;
        gap: 24px;
    }

    /* Login form appears first on mobile */
    .family-login-card-primary {
        order: 1;
        width: 100%;
        max-width: 100%;
        margin: 0;
    }

    .family-login-card-primary .family-login-card-inner {
        padding: 28px 21px;

        border-radius: 20px;

        box-shadow: var(--card-shadow);
    }

    .family-login-card-eyebrow {
        margin-bottom: 8px;
    }

    .family-login-mobile-title {
        margin-bottom: 10px;

        font-size: 2rem;
        line-height: 1.1;
    }

    .family-login-card-text {
        max-width: 360px;
        margin-bottom: 23px;

        font-size: 0.92rem;
        line-height: 1.58;
    }

    .family-login-card .form-label {
        margin-bottom: 7px;

        font-size: 0.9rem;
    }

    .family-login-card .form-control {
        min-height: 52px;
        padding: 12px 14px;

        font-size: 1rem;
    }

    .family-login-options {
        align-items: flex-start;
        flex-direction: column;
        gap: 11px;

        margin: 4px 0 22px;
    }

    .family-remember {
        min-height: 28px;
    }

    .family-remember input {
        width: 18px;
        height: 18px;
    }

    .family-forgot-link {
        display: inline-block;

        padding: 4px 0;
    }

    .family-login-card .btn {
        min-height: 52px;
    }

    .family-login-message {
        font-size: 0.88rem;
    }


    /* =====================================================
       SUPPORTING CONTENT BELOW LOGIN
    ===================================================== */

    .family-login-intro-redesign {
        order: 2;

        width: 100%;
        max-width: 100%;
        margin: 0;

        text-align: center;
    }

    .family-login-intro-redesign > .section-title {
        margin-bottom: 10px;
    }

    .family-login-intro-redesign > h2 {
        margin-bottom: 14px;

        font-size: 2rem;
        line-height: 1.12;
    }

    .family-login-intro-redesign .family-login-lead {
        max-width: 520px;
        margin: 0 auto 20px;

        font-size: 0.94rem;
        line-height: 1.58;
    }


    /* =====================================================
       WHAT YOU'LL FIND INSIDE
    ===================================================== */

    .family-login-inside {
        max-width: 520px;
        margin: 0 auto;
        padding: 22px;

        border-radius: 17px;

        text-align: left;
    }

    .family-login-inside h3 {
        margin-bottom: 14px;

        font-size: 1.25rem;
        text-align: center;
    }

    .family-login-inside-list {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    .family-login-inside-list li {
        padding-left: 24px;

        font-size: 0.9rem;
        line-height: 1.5;
    }


    /* =====================================================
       NEW FAMILY SECTION
    ===================================================== */

    .family-login-new-family {
        max-width: 520px;
        margin: 24px auto 0;
    }

    .family-login-divider {
        margin-bottom: 16px;
    }

    .family-login-new-family .btn {
        width: 100%;
        min-height: 50px;

        white-space: normal;
    }

    .family-login-note {
        margin-top: 13px;

        font-size: 0.81rem;
        line-height: 1.5;
        text-align: center;
    }
}


/* =========================================================
   EXTRA-SMALL FAMILY LOGIN
========================================================= */

@media (max-width: 420px) {

    .family-login-page-redesign {
        padding-top: 94px;
        padding-bottom: 38px;
    }

    .family-login-card-primary .family-login-card-inner {
        padding: 25px 18px;
    }

    .family-login-mobile-title {
        font-size: 1.85rem;
    }

    .family-login-intro-redesign > h2 {
        font-size: 1.75rem;
    }

    .family-login-inside {
        padding: 19px;
    }
}


/* =========================================================
   FINAL INPUT AND AUTOFILL POLISH
========================================================= */

.family-login-card input:-webkit-autofill,
.family-login-card input:-webkit-autofill:hover,
.family-login-card input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--charcoal);

    box-shadow:
        0 0 0 1000px #fbfcfd inset;

    transition:
        background-color 9999s ease-in-out 0s;
}


/* =========================================================
   END OF COMPLETE PUBLIC WEBSITE STYLESHEET
========================================================= */