/* =========================================================
   ABOUT OVERVIEW PAGE
   ========================================================= */


/* ---------------------------------------------------------
   ABOUT HERO
   --------------------------------------------------------- */

.about-hero {

    height: 430px;

    display: flex;

    align-items: center;

    position: relative;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            var(--navy) 0%,
            var(--navy-dark) 65%,
            #092d52 100%
        );

}


.about-hero::before {

    content: "";

    position: absolute;

    width: 600px;
    height: 600px;

    border: 1px solid
        rgba(242, 182, 50, 0.18);

    border-radius: 50%;

    right: -220px;
    top: -300px;

}


.about-hero::after {

    content: "";

    position: absolute;

    width: 320px;
    height: 320px;

    border: 1px solid
        rgba(255,255,255,0.07);

    border-radius: 50%;

    right: 170px;
    bottom: -250px;

}


.about-hero-content {

    position: relative;

    z-index: 2;

}


.about-hero-content .section-label {

    color: var(--gold-light);

}


.about-hero h1 {

    color: var(--white);

    font-size: clamp(3rem, 6vw, 5rem);

    line-height: 1.02;

    margin-top: 15px;

}


.about-hero p {

    color: rgba(255,255,255,0.78);

    font-size: 17px;

    margin-top: 25px;

}


/* ---------------------------------------------------------
   ABOUT INTRO
   --------------------------------------------------------- */

.about-intro {

    background: var(--white);

}


.about-intro-grid {

    display: grid;

    grid-template-columns:
        1.15fr
        0.85fr;

    gap: 90px;

    align-items: center;

}


.about-intro-content h2 {

    max-width: 650px;

    font-size: clamp(
        2.3rem,
        4vw,
        4rem
    );

    margin: 18px 0 30px;

}


.about-intro-content p {

    max-width: 650px;

    color: var(--gray-700);

    line-height: 1.8;

    margin-bottom: 20px;

}


/* ---------------------------------------------------------
   AT A GLANCE
   --------------------------------------------------------- */

.about-glance-card {

    background: var(--navy);

    padding: 40px;

    border-radius: 16px;

    box-shadow:
        0 25px 60px
        rgba(0, 27, 61, 0.18);

}


.glance-small-title {

    color: rgba(255,255,255,0.65);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 2px;

}


.about-glance-card h3 {

    color: var(--gold-light);

    font-size: 28px;

    margin: 5px 0 25px;

}


.glance-item {

    display: flex;

    align-items: center;

    gap: 18px;

    padding: 17px 0;

    border-bottom: 1px solid
        rgba(255,255,255,0.15);

}


.glance-item:last-child {

    border-bottom: none;

}


.glance-item strong {

    display: block;

    color: var(--white);

    font-size: 14px;

    text-transform: uppercase;

    letter-spacing: 0.5px;

}


.glance-item small {

    color: rgba(255,255,255,0.55);

    font-size: 12px;

}


/* ---------------------------------------------------------
   LOGO SECTION
   --------------------------------------------------------- */

.about-logo-section {

    background: var(--cream);

    padding: 100px 0;

}


.about-logo-grid {

    display: grid;

    grid-template-columns:
        0.65fr
        1.35fr;

    gap: 80px;

    align-items: center;

}


.about-logo-image {

    display: flex;

    justify-content: center;

    align-items: center;

}


.logo-frame {

    width: 330px;
    height: 330px;

    border: 1px solid
        var(--gray-300);

    border-radius: 50%;

    background: var(--white);

    display: flex;

    align-items: center;

    justify-content: center;

}


.logo-frame img {

    width: 245px;

    height: 245px;

    object-fit: contain;

}


.about-logo-content h2 {

    font-size: clamp(
        2rem,
        4vw,
        3.4rem
    );

    margin: 12px 0 25px;

}


.about-logo-content > p {

    max-width: 800px;

    color: var(--gray-700);

    line-height: 1.8;

}


.logo-values {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 30px;

    margin-top: 35px;

}


.logo-values strong {

    display: block;

    color: var(--navy);

    font-size: 15px;

    letter-spacing: 1px;

}


.logo-values span {

    display: block;

    font-family:
        "Playfair Display",
        serif;

    color: var(--gold);

    font-size: 17px;

    margin-top: 3px;

}


.logo-values p {

    color: var(--gray-500);

    font-size: 13px;

    line-height: 1.5;

    margin-top: 8px;

}


/* ---------------------------------------------------------
   LOGO MEANING
   --------------------------------------------------------- */

.logo-meaning {

    background: var(--white);

}


.section-heading.centered {

    text-align: center;

}


.section-heading.centered .section-subtitle {

    margin-left: auto;
    margin-right: auto;

}


.logo-meaning-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 25px;

    margin-top: 70px;

}


.meaning-item {

    text-align: center;

    position: relative;

    padding: 25px 20px;

}


.meaning-number {

    display: inline-flex;

    width: 42px;
    height: 42px;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--navy);

    color: var(--white);

    font-size: 13px;

    font-weight: 700;

    margin-bottom: 25px;

}


.meaning-item::before {

    content: "";

    position: absolute;

    top: 46px;

    left: calc(50% + 35px);

    width: calc(100% - 45px);

    height: 1px;

    background: var(--gray-300);

    z-index: 0;

}


.meaning-item:last-child::before {

    display: none;

}


.meaning-icon {

    position: relative;

    z-index: 2;

    width: 70px;
    height: 70px;

    margin: 15px auto;

    display: flex;

    align-items: center;
    justify-content: center;

    background: var(--white);

    font-size: 38px;

    color: var(--navy);

}


.meaning-item h3 {

    font-size: 18px;

    text-transform: uppercase;

    margin-top: 10px;

}


.meaning-item p {

    color: var(--gray-500);

    font-size: 13px;

    line-height: 1.55;

    margin-top: 10px;

}


.latin-motto {

    text-align: center;

    margin-top: 70px;

}


.latin-motto h3 {

    color: var(--navy);

    font-size: 25px;

    letter-spacing: 1px;

}


.latin-motto p {

    max-width: 400px;

    margin: 8px auto 0;

    color: var(--gray-500);

    font-size: 13px;

}


/* ---------------------------------------------------------
   HYMN
   --------------------------------------------------------- */

.hymn-section {

    padding: 80px 0;

    background: var(--cream);

}


.hymn-card {

    display: grid;

    grid-template-columns:
        0.65fr
        1.35fr;

    border: 1px solid
        rgba(217,154,0,0.45);

    border-radius: 18px;

    overflow: hidden;

    background: var(--white);

}


.hymn-intro {

    background: var(--navy);

    padding: 55px 45px;

    display: flex;

    flex-direction: column;

    justify-content: center;

}


.hymn-icon {

    color: var(--gold-light);

    font-size: 50px;

    margin-bottom: 25px;

}


.hymn-intro .section-label {

    color: var(--gold-light);

}


.hymn-intro h2 {

    color: var(--white);

    font-size: 32px;

    margin: 12px 0 25px;

}


.hymn-intro p {

    color: rgba(255,255,255,0.72);

    line-height: 1.7;

}


.hymn-content {

    padding: 50px;

}


.hymn-title h2 {

    font-size: 30px;

    margin-top: 8px;

}


.hymn-columns {

    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 45px;

    margin-top: 30px;

}


.hymn-columns p {

    color: var(--gray-700);

    font-size: 13px;

    line-height: 1.65;

    margin-bottom: 25px;

}


.hymn-closing {

    text-align: center;

    color: var(--gold);

    font-family:
        "Playfair Display",
        serif;

    font-size: 17px;

    margin-top: 10px;

}


/* ---------------------------------------------------------
   ABOUT HIGHLIGHTS
   --------------------------------------------------------- */

.about-highlights {

    background: var(--white);

}


.about-highlight-grid {

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 20px;

    margin-top: 60px;

}


.about-highlight {

    min-width: 0;
    overflow-wrap: anywhere;

    border: 1px solid var(--gray-200);

    padding: 30px;

    min-height: 250px;

    transition: var(--transition);

}


.about-highlight:hover {

    transform: translateY(-5px);

    box-shadow: var(--shadow-md);

    border-color: var(--gold);

}


.highlight-icon {

    width: 65px;
    height: 65px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 auto 20px;

}


.highlight-icon img {

    width: 55px;
    height: 55px;

    object-fit: contain;

    display: block;

}

.about-highlight h3 {

    font-family:
        "DM Sans",
        sans-serif;

    font-size: 18px;

    color: var(--navy);

    margin-bottom: 12px;

}


.about-highlight p {

    color: var(--gray-500);

    font-size: 13px;

    line-height: 1.65;

}


/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {

    .about-intro-grid,
    .about-logo-grid,
    .hymn-card {

        grid-template-columns: 1fr;

        gap: 50px;

    }


    .logo-meaning-grid {

        grid-template-columns:
            repeat(2, 1fr);

    }


    .meaning-item::before {

        display: none;

    }


    .about-highlight-grid {

        grid-template-columns:
            repeat(2, minmax(0, 1fr));

    }

}


@media (max-width: 600px) {

    .about-hero {

        min-height: 350px;

    }


    .about-hero h1 {

        font-size: 3rem;

    }


    .about-intro-grid {

        gap: 45px;

    }


    .about-glance-card {

        padding: 30px 25px;

    }


    .logo-frame {

        width: 250px;
        height: 250px;

    }


    .logo-frame img {

        width: 185px;
        height: 185px;

    }


    .logo-values {

        grid-template-columns: 1fr;

        gap: 20px;

    }


    .logo-meaning-grid {

        grid-template-columns: 1fr;

        margin-top: 40px;

    }


    .hymn-content {

        padding: 30px 25px;

    }


    .hymn-columns {

        grid-template-columns: 1fr;

        gap: 0;

    }


    .about-highlight-grid {

        grid-template-columns: minmax(0, 1fr);

    }

}

.meaning-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 40px;
    text-align: center;
}

.meaning-grid .meaning-item {
    min-width: 0;
    overflow-wrap: anywhere;
}

.meaning-item img {
    width: 55px;
    height: 55px;
    object-fit: contain;
    margin: 0 auto 20px;
}

.meaning-item h3 {
    font-family: "Playfair Display", serif;
    font-size: 18px;
    color: var(--navy);
    margin-bottom: 10px;
}

.meaning-item p {
    font-size: 14px;
    color: var(--gray-700);
    line-height: 1.5;
}

.deus-section {
    text-align: center;
    margin-top: 35px;
}

.deus-section h2 {
    font-family: "DM Sans", sans-serif;
    font-size: 28px;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 5px;
}

.deus-section p {
    font-size: 13px;
    line-height: 1.3;
    color: var(--gray-700);
}

@media (max-width: 900px) {
    .meaning-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }

    .about-highlight {
        padding: 24px 20px;
        min-height: 0;
    }
}

@media (max-width: 600px) {
    .meaning-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .meaning-grid .meaning-item {
        padding: 20px 16px;
    }
}
