@import url('https://fonts.googleapis.com/css2?family=Faculty+Glyphic&family=Sen:wght@400;500;600;700;800&display=swap');

/*
 Theme Name:   Univet Child
 Theme URI:    https://univet.rstheme.com/
 Description:  Univet Child
 Author:       RSTheme
 Author URI:   http://rstheme.com
 Template:     univet
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
 */
/* Hide page title and breadcrumb banner on all screens */
.univet-page-title {
    display: none !important;
}

/* Red School Core Theme Colors */
:root {
    --primaryColor: #02066f !important;
    --primaryFgColor: #ffffff !important;
    --e-global-color-primary: #02066f !important;
    --e-global-color-secondary: #030303 !important;
    --secondaryColor: #030303 !important;
}

/* Top bar background */
.elementor-26 .elementor-element.elementor-element-81110d0,
.rstb-header .elementor-element-81110d0,
.elementor-element-81110d0 {
    background-color: #02066f !important;
}

/* Header CTA buttons and primary buttons */
.elementor-26 .elementor-element.elementor-element-a260b51 .rs-button,
.elementor-element-a260b51 .rs-button,
.elementor-button,
.btn-primary {
    background-color: #02066f !important;
    color: #ffffff !important;
}

.elementor-26 .elementor-element.elementor-element-a260b51 .rs-button:hover,
.elementor-element-a260b51 .rs-button:hover {
    background-color: #030303 !important;
}

/* Accent icons & badges */
.rs-iconbox .icon-area i,
.rs-iconbox .icon-area svg {
    color: #02066f !important;
    fill: #02066f !important;
}

/* Header Topbar Nav Menu Fix - Prevent text overlapping */
.elementor-26 .elementor-element.elementor-element-ab45245 > .rstb-nav-menu > .primary-menu {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
}
.elementor-26 .elementor-element.elementor-element-ab45245 > .rstb-nav-menu > .primary-menu > .menu-item {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}
.elementor-26 .elementor-element.elementor-element-ab45245 > .rstb-nav-menu > .primary-menu > .menu-item > .menu-item-link {
    line-height: 1.4 !important;
    white-space: nowrap !important;
    display: inline-flex !important;
    align-items: center !important;
}
.elementor-26 .elementor-element.elementor-element-81110d0 .e-con-inner {
    flex-wrap: nowrap !important;
    align-items: center !important;
}

/* ===================================================
   PSG Clifton 'Sen', sans-serifnational - Synced Pages Styling
   =================================================== */
.psg-page-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 15px 60px 15px;
    font-family: inherit;
    color: #2b2b2b;
    line-height: 1.7;
}

.psg-page-content h1 {
    font-size: 2.3rem;
    font-weight: 700;
    color: #02066f;
    margin-bottom: 24px;
    line-height: 1.25;
}

.psg-page-content h2 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #1b2559;
    margin-top: 36px;
    margin-bottom: 20px;
    border-left: 4px solid #02066f;
    padding-left: 14px;
    line-height: 1.3;
}

.psg-page-content h3 {
    font-size: 1.35rem;
    font-weight: 600;
    color: #02066f;
    margin-top: 26px;
    margin-bottom: 14px;
    line-height: 1.35;
}

.psg-page-content h4, .psg-page-content h5, .psg-page-content h6 {
    font-size: 1.15rem;
    font-weight: 600;
    color: #1b2559;
    margin-top: 20px;
    margin-bottom: 10px;
}

.psg-page-content p {
    font-size: 1.05rem;
    line-height: 1.8;
    color: #4a5568;
    margin-bottom: 18px;
}

.psg-page-content a {
    color: #02066f;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease;
}

.psg-page-content a:hover {
    color: #030303;
    text-decoration: underline;
}

.psg-page-content img,
.psg-page-content .psg-content-img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    object-fit: cover;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.07);
    margin: 20px 0;
    display: block;
}

.psg-page-content iframe {
    width: 100%;
    min-height: 500px;
    border: none;
    border-radius: 12px;
    margin: 24px 0;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.psg-page-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
    font-size: 0.95rem;
    background: #ffffff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.psg-page-content th {
    background-color: #02066f;
    color: #ffffff;
    padding: 14px 18px;
    text-align: left;
    font-weight: 600;
}

.psg-page-content td {
    padding: 14px 18px;
    border-bottom: 1px solid #edf2f7;
    color: #4a5568;
}

.psg-page-content tr:nth-child(even) {
    background-color: #f8fafc;
}

.psg-page-content ul, .psg-page-content ol {
    padding-left: 24px;
    margin-bottom: 20px;
}

.psg-page-content li {
    font-size: 1.02rem;
    line-height: 1.75;
    color: #4a5568;
    margin-bottom: 8px;
}

.psg-page-content .grid {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    margin: 24px 0;
}

.psg-page-content .flex {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.psg-page-content .items-center { align-items: center; }
.psg-page-content .justify-center { justify-content: center; }
.psg-page-content .justify-between { justify-content: space-between; }
.psg-page-content .w-full { width: 100%; }
.psg-page-content .relative { position: relative; }
.psg-page-content .rounded-xl, .psg-page-content .rounded-lg { border-radius: 12px; }
.psg-page-content .shadow-md, .psg-page-content .shadow-lg { box-shadow: 0 4px 16px rgba(0,0,0,0.06); }
.psg-page-content .bg-white { background-color: #ffffff; }

.psg-page-content .bg-white,
.psg-page-content .rounded-xl,
.psg-page-content .rounded-lg {
    padding: 20px;
    border: 1px solid #edf2f7;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.psg-page-content .bg-white:hover,
.psg-page-content .rounded-xl:hover {
    box-shadow: 0 8px 24px rgba(2, 6, 111, 0.08);
}

/* ===================================================

/* ===================================================
   Header Spacing Reduction & Logo Text Alignment Fix
   =================================================== */
@media only screen and (min-width: 1025px) {
    /* Reduce excessive gaps between header nav items */
    .rstb-header .rstb-nav-menu.elementor-element-180dece > .primary-menu > .menu-item,
    .elementor-element-180dece > .rstb-nav-menu > .primary-menu > .menu-item,
    .rstb-header .rstb-nav-menu.elementor-element-d1bc878 > .primary-menu > .menu-item,
    .elementor-element-d1bc878 > .rstb-nav-menu > .primary-menu > .menu-item {
        margin-right: 18px !important;
        margin-left: 0px !important;
    }

    .elementor-element-180dece > .rstb-nav-menu > .primary-menu > .menu-item:last-child,
    .elementor-element-d1bc878 > .rstb-nav-menu > .primary-menu > .menu-item:last-child {
        margin-right: 0px !important;
    }

    .elementor-element-180dece > .rstb-nav-menu > .primary-menu > .menu-item > .menu-item-link,
    .elementor-element-d1bc878 > .rstb-nav-menu > .primary-menu > .menu-item > .menu-item-link {
        font-size: 15px !important;
        padding-left: 0px !important;
        padding-right: 0px !important;
    }

    /* Logo container: prevent shrinking and preserve width */
    .elementor-element-0247f73 {
        flex-shrink: 0 !important;
        width: 200px !important;
        min-width: 190px !important;
        position: relative !important;
        overflow: visible !important;
    }

    /* White Logo Crest & Text - center inside shield so text is never cut off */
    .elementor-element-0247f73 .elementor-element-34177d8 {
        transform: none !important;
        position: relative !important;
        z-index: 5 !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        width: 100% !important;
        margin-top: -12px !important;
    }

    .elementor-element-0247f73 .elementor-element-34177d8 .rstb-site-logo {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        width: 100% !important;
    }

    .elementor-element-0247f73 .elementor-element-34177d8 .rstb-site-logo a {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
    }

    .elementor-element-0247f73 .elementor-element-34177d8 img {
        width: 130px !important;
        height: auto !important;
        max-height: 120px !important;
        object-fit: contain !important;
        display: block !important;
        filter: drop-shadow(0 1px 2px rgba(0,0,0,0.15)) !important;
    }
}

/* ===================================================
   Header & Mega Menu Spacing Improvements
   =================================================== */
@media only screen and (min-width: 1025px) {
    /* Top-level navigation items spacing */
    .rstb-header .rstb-nav-menu.elementor-element-180dece > .primary-menu > .menu-item,
    .elementor-element-180dece > .rstb-nav-menu > .primary-menu > .menu-item,
    .rstb-header .rstb-nav-menu.elementor-element-d1bc878 > .primary-menu > .menu-item,
    .elementor-element-d1bc878 > .rstb-nav-menu > .primary-menu > .menu-item {
        margin-right: 32px !important;
        margin-left: 0px !important;
    }

    .elementor-element-180dece > .rstb-nav-menu > .primary-menu > .menu-item:last-child,
    .elementor-element-d1bc878 > .rstb-nav-menu > .primary-menu > .menu-item:last-child {
        margin-right: 0px !important;
    }

    /* Mega-menu overall container padding */
    .rstb-nav-menu .primary-menu .mega-menu > .elementor > .e-con-parent {
        padding: 24px 28px !important;
    }

    /* Space under category headings in mega-menus */
    .mega-menu .prelements-heading {
        margin-bottom: 18px !important;
    }

    /* Vertical spacing between links inside mega-menus */
    .mega-menu .rstb-nav-menu.nav-vertical .primary-menu > .menu-item {
        margin-bottom: 11px !important;
    }

    .mega-menu .rstb-nav-menu.nav-vertical .primary-menu > .menu-item:last-child {
        margin-bottom: 0px !important;
    }

    .mega-menu .rstb-nav-menu.nav-vertical .primary-menu > .menu-item > .menu-item-link {
        padding: 3px 0 !important;
        font-size: 14.5px !important;
        line-height: 1.5 !important;
        transition: all 0.2s ease !important;
    }

    .mega-menu .rstb-nav-menu.nav-vertical .primary-menu > .menu-item > .menu-item-link:hover {
        padding-left: 6px !important;
        color: #02066f !important;
    }

    /* Dropdown spacing for Partnership menu */
    .rstb-nav-menu .primary-menu > .menu-item > .sub-menu {
        padding: 10px 0 !important;
        border-radius: 8px !important;
        box-shadow: 0 10px 35px rgba(0, 0, 0, 0.08) !important;
    }

    .rstb-nav-menu .primary-menu > .menu-item > .sub-menu > .menu-item > .menu-item-link {
        padding: 12px 24px !important;
        font-size: 14.5px !important;
        transition: all 0.2s ease !important;
    }

    .rstb-nav-menu .primary-menu > .menu-item > .sub-menu > .menu-item > .menu-item-link:hover {
        background-color: #f7f3f4 !important;
        color: #02066f !important;
        padding-left: 28px !important;
    }

    /* Fix counter display in mega-menu highlight cards */
    .elementor-21361 .count-number .rs-counter {
        display: none !important;
    }
    .elementor-21361 .count-number::before {
        content: "15";
        font-size: 30px;
        font-weight: 600;
        color: #ffffff;
        line-height: 40px;
    }

    .elementor-21377 .count-number .rs-counter {
        display: none !important;
    }
    .elementor-21377 .count-number::before {
        content: "18";
        font-size: 30px;
        font-weight: 600;
        color: #ffffff;
        line-height: 40px;
    }
}

/* ===================================================
   Hide Homepage Marquee Section
   =================================================== */
.elementor-element-79e11d3,
[data-id="79e11d3"] {
    display: none !important;
}

/* ===================================================
   Pathways Modern Blog Archive & Grid Styling
   =================================================== */
.pathways-blog-page-wrap {
    background-color: #f8fafc;
    min-height: 100vh;
}

/* Hero Section */
.pathways-blog-hero {
    background: linear-gradient(135deg, #0c1a30 0%, #152542 50%, #1e1b4b 100%);
    padding: 70px 20px 50px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.pathways-blog-hero::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 80% 20%, rgba(2, 6, 111, 0.25) 0%, transparent 60%);
    pointer-events: none;
}

.pathways-blog-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

.pathways-blog-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(8px);
    color: #ffd1d9;
    border: 1px solid rgba(255, 255, 255, 0.18);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 6px 16px;
    border-radius: 50px;
    margin-bottom: 18px;
}

.pathways-blog-hero-title {
    font-size: 46px;
    font-weight: 800;
    color: #ffffff !important;
    line-height: 1.2;
    margin: 0 0 16px;
    letter-spacing: -0.5px;
}

.pathways-blog-hero-desc {
    font-size: 18px;
    line-height: 1.6;
    color: #cbd5e1;
    max-width: 680px;
    margin: 0 auto 36px;
}

/* Category Filter Pills */
.pathways-cat-filter-wrap {
    display: flex;
    justify-content: center;
    margin-top: 10px;
}

.pathways-cat-filter-scroll {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    max-width: 1000px;
}

.cat-filter-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 500;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #e2e8f0 !important;
    transition: all 0.25s ease;
    text-decoration: none;
}

.cat-filter-pill:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff !important;
    transform: translateY(-2px);
}

.cat-filter-pill.is-active {
    background: #02066f !important;
    border-color: #02066f !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(2, 6, 111, 0.4);
}

.cat-filter-pill .cat-count {
    font-size: 12px;
    opacity: 0.75;
}

/* Blog Content Section */
.pathways-blog-content-area {
    padding: 60px 20px 90px;
}

.pathways-blog-container {
    max-width: 1260px;
    margin: 0 auto;
}

/* Responsive 3-Column Grid */
.pathways-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

@media (max-width: 1080px) {
    .pathways-blog-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}

@media (max-width: 640px) {
    .pathways-blog-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .pathways-blog-hero-title {
        font-size: 32px;
    }
    .pathways-blog-hero-desc {
        font-size: 15px;
    }
}

/* Blog Card Styling */
.pathways-blog-card {
    background: #ffffff;
    border-radius: 18px;
    border: 1px solid #eef2f6;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.pathways-blog-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.12);
    border-color: rgba(2, 6, 111, 0.25);
}

/* Card Media */
.card-media-wrap {
    position: relative;
    width: 100%;
    height: 220px;
    overflow: hidden;
    background-color: #f1f5f9;
}

.card-media-link {
    display: block;
    width: 100%;
    height: 100%;
}

.card-thumbnail {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.pathways-blog-card:hover .card-thumbnail {
    transform: scale(1.06);
}

.card-thumbnail-fallback {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #1e293b, #0f172a);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-weight: 700;
    font-size: 18px;
}

.card-cat-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    background: #02066f;
    color: #ffffff;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 50px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
    z-index: 2;
    pointer-events: none;
}

/* Card Body */
.card-content {
    padding: 24px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.card-meta-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #64748b;
    margin-bottom: 12px;
}

.card-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.card-meta-item svg {
    color: #94a3b8;
}

.card-meta-dot {
    color: #cbd5e1;
}

.card-title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.45;
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.card-title a {
    color: #0f172a !important;
    text-decoration: none;
    transition: color 0.2s ease;
}

.card-title a:hover,
.pathways-blog-card:hover .card-title a {
    color: #02066f !important;
}

.card-excerpt {
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    margin: 0 0 20px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex-grow: 1;
}

.card-footer-cta {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid #f1f5f9;
}

.card-read-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 700;
    color: #02066f !important;
    text-decoration: none;
    transition: all 0.2s ease;
}

.card-read-link .arrow-svg {
    transition: transform 0.25s ease;
}

.card-read-link:hover .arrow-svg,
.pathways-blog-card:hover .card-read-link .arrow-svg {
    transform: translateX(5px);
}

/* Pagination */
.pathways-blog-pagination {
    margin-top: 50px;
    display: flex;
    justify-content: center;
}

.pathways-blog-pagination ul.page-numbers {
    display: flex;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
    align-items: center;
}

.pathways-blog-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 16px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    color: #334155;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    text-decoration: none;
    transition: all 0.2s ease;
}

.pathways-blog-pagination .page-numbers:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
    color: #0f172a;
}

.pathways-blog-pagination .page-numbers.current {
    background: #02066f !important;
    border-color: #02066f !important;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(2, 6, 111, 0.35);
}

/* ===================================================
   Single Blog Post Typography & Content Formatting
   =================================================== */
.entry-content,
.rstb-post-content,
.entry-post-details {
    font-size: 17px;
    line-height: 1.85;
    color: #334155;
    word-break: break-word;
}

.rstb-post-content p,
.entry-content p {
    font-size: 17px;
    line-height: 1.85;
    color: #334155;
    margin-bottom: 22px;
}

.rstb-post-content p strong,
.entry-content p strong {
    color: #0f172a;
    font-weight: 700;
}

/* Convert scraped section headings into crisp prominent headers */
.rstb-post-content p > strong:only-child,
.entry-content p > strong:only-child {
    display: block;
    font-size: 22px;
    line-height: 1.35;
    color: #0f172a;
    margin-top: 32px;
    margin-bottom: 12px;
    letter-spacing: -0.2px;
    border-left: 3px solid #02066f;
    padding-left: 14px;
}

.rstb-post-content h2,
.entry-content h2 {
    font-size: 28px;
    font-weight: 700;
    color: #0f172a;
    margin: 36px 0 16px;
    line-height: 1.3;
}

.rstb-post-content h3,
.entry-content h3 {
    font-size: 22px;
    font-weight: 700;
    color: #0f172a;
    margin: 30px 0 14px;
    line-height: 1.35;
}

.rstb-post-content a,
.entry-content a {
    color: #02066f;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: opacity 0.2s ease;
}

.rstb-post-content a:hover,
.entry-content a:hover {
    opacity: 0.85;
}

.rstb-post-content ul,
.entry-content ul {
    margin: 18px 0 24px 20px;
    padding-left: 10px;
}

.rstb-post-content ul li,
.entry-content ul li {
    font-size: 17px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 10px;
    position: relative;
}

.rstb-post-content blockquote,
.entry-content blockquote {
    background: #f0f3ff;
    border-left: 4px solid #02066f;
    border-radius: 0 12px 12px 0;
    padding: 22px 28px;
    margin: 28px 0;
    font-style: italic;
    font-size: 18px;
    line-height: 1.75;
    color: #1e293b;
}

.rstb-post-content img,
.entry-content img {
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);
    margin: 24px 0;
    max-width: 100%;
    height: auto;
}

/* Single Post Featured Image */
.rstb-post-featured-img img {
    width: 100%;
    max-height: 480px;
    object-fit: cover;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

/* Clean Sidebar Styles */
.widget_search .wp-block-search__input {
    border-radius: 8px 0 0 8px !important;
    border: 1px solid #e2e8f0 !important;
    background: #f8fafc !important;
    height: 50px !important;
}

.widget_search .wp-block-search__button {
    background: #02066f !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 0 8px 8px 0 !important;
    font-weight: 600 !important;
    padding: 0 20px !important;
    height: 50px !important;
}

.widget .wp-block-latest-posts li {
    padding: 12px 0;
    border-bottom: 1px solid #f1f5f9;
}

.widget .wp-block-latest-posts li:last-child {
    border-bottom: none;
}

.widget .wp-block-latest-posts__post-title {
    font-weight: 600;
    font-size: 15px;
    color: #1e293b !important;
    line-height: 1.45;
    transition: color 0.2s ease;
}

.widget .wp-block-latest-posts__post-title:hover {
    color: #02066f !important;
}

/* ===================================================
   Pathways Food Menu Styling
   =================================================== */
.pfm-hero-banner {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.pfm-hero-img-wrap {
    position: relative;
    width: 100%;
    height: 380px;
}

.pfm-hero-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pfm-hero-bar {
    background-color: #ecab2b;
    padding: 14px 24px;
}

.pfm-hero-bar-inner {
    max-width: 1260px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.pfm-hero-brand {
    font-size: 18px;
    font-weight: 700;
    color: #ffffff;
    margin: 0;
    letter-spacing: 0.3px;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}

.pfm-hero-breadcrumbs {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #ffffff;
    font-weight: 500;
}

.pfm-hero-breadcrumbs a {
    color: #ffffff !important;
    text-decoration: none;
    opacity: 0.9;
    transition: opacity 0.2s;
}

.pfm-hero-breadcrumbs a:hover {
    opacity: 1;
    text-decoration: underline;
}

.pfm-hero-breadcrumbs span {
    font-weight: 600;
}

.pfm-main-section {
    padding: 60px 20px 90px;
    background-color: #ffffff;
}

.pfm-header-intro {
    text-align: center;
    margin-bottom: 40px;
}

.pfm-main-title {
    font-size: 34px;
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 12px;
}

.pfm-title-divider {
    width: 70px;
    height: 4px;
    background-color: #ecab2b;
    border-radius: 50px;
    margin: 0 auto;
}

/* Controls Bar */
.pfm-controls-bar {
    max-width: 1260px;
    margin: 0 auto 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}

.pfm-month-badge {
    background: #f1f5f9;
    padding: 10px 22px;
    border-radius: 12px;
    font-size: 17px;
    font-weight: 700;
    color: #1e293b;
    border: 1px solid #e2e8f0;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
}

.pfm-month-badge span {
    color: #b45309;
}

.pfm-week-tabs {
    display: flex;
    background: #f1f5f9;
    padding: 5px;
    border-radius: 12px;
    gap: 6px;
    border: 1px solid #e2e8f0;
    overflow-x: auto;
}

.pfm-tab-btn {
    border: none;
    background: transparent;
    padding: 9px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    cursor: pointer;
    transition: all 0.25s ease;
    white-space: nowrap;
}

.pfm-tab-btn:hover {
    color: #0f172a;
    background: rgba(255, 255, 255, 0.7);
}

.pfm-tab-btn.is-active {
    background: #ecab2b !important;
    color: #ffffff !important;
    box-shadow: 0 3px 10px rgba(236, 171, 43, 0.35);
}

/* Table Card */
.pfm-table-card {
    max-width: 1260px;
    margin: 0 auto;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 6px 25px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

.pfm-table-scroll {
    overflow-x: auto;
    width: 100%;
}

.pfm-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 860px;
    text-align: left;
}

/* Thead */
.pfm-thead-tr th {
    background-color: #ecab2b;
    color: #ffffff;
    padding: 16px 14px;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
    vertical-align: middle;
}

.pfm-thead-tr th:last-child {
    border-right: none;
}

.pfm-th-day-date {
    width: 140px;
    text-align: left;
}

.pfm-th-date-sub {
    font-size: 11px;
    font-weight: 400;
    opacity: 0.8;
    text-transform: capitalize;
}

.pfm-th-day {
    text-align: center;
}

.pfm-th-date-pill {
    display: inline-block;
    background: rgba(255, 255, 255, 0.25);
    padding: 2px 10px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    text-transform: none;
    margin-top: 4px;
}

/* Section Header Rows */
.pfm-tr-section td {
    background-color: #f9d682 !important;
    color: #1e293b !important;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 1px;
    padding: 12px 14px;
    border-bottom: 1px solid #e2e8f0;
}

/* Items Rows */
.pfm-tr-item {
    border-bottom: 1px solid #eef2f6;
    transition: background-color 0.2s ease;
}

.pfm-tr-item:nth-child(even) {
    background-color: #f8fafc;
}

.pfm-tr-item:hover {
    background-color: #fef8ea !important;
}

.pfm-td-category {
    padding: 14px 16px;
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
    border-right: 1px solid #e2e8f0;
    background-color: inherit;
    width: 140px;
}

.pfm-td-content {
    padding: 13px 16px;
    font-size: 13.5px;
    color: #334155;
    line-height: 1.5;
    border-right: 1px solid #eef2f6;
    vertical-align: middle;
}

.pfm-td-content:last-child {
    border-right: none;
}

.pfm-td-all-days {
    text-align: center;
    font-weight: 500;
    color: #475569;
}

/* Disclaimer Wrap */
.pfm-disclaimer-wrap {
    max-width: 900px;
    margin: 36px auto 0;
    text-align: center;
    padding: 0 16px;
}

.pfm-disclaimer-text {
    font-size: 14px;
    line-height: 1.7;
    color: #64748b;
    font-style: italic;
    margin: 0;
}

.pfm-disclaimer-text strong {
    color: #0f172a;
    font-style: normal;
    font-weight: 700;
}

@media (max-width: 768px) {
    .pfm-hero-img-wrap {
        height: 220px;
    }
    .pfm-controls-bar {
        flex-direction: column;
        align-items: stretch;
    }
    .pfm-month-badge {
        text-align: center;
    }
    .pfm-week-tabs {
        justify-content: flex-start;
    }
    .pfm-main-title {
        font-size: 26px;
    }
}

/* ===================================================
   PSG Food Menu - Theme Red (#02066f) & 'Sen', sans-serifactive Styles
   =================================================== */
.pfm-hero-bar {
    background-color: #02066f !important;
    background: linear-gradient(135deg, #02066f 0%, #01033b 100%) !important;
    padding: 14px 24px;
}

.pfm-badge-pill {
    display: inline-block;
    background: #f0f3ff;
    color: #02066f;
    border: 1px solid #c7d2fe;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 5px 16px;
    border-radius: 50px;
    margin-bottom: 12px;
}

.pfm-title-divider {
    width: 80px;
    height: 4px;
    background-color: #02066f !important;
    border-radius: 50px;
    margin: 0 auto 16px;
}

.pfm-subtitle {
    font-size: 16px;
    color: #64748b;
    max-width: 680px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Controls Bar */
.pfm-month-badge {
    background: #ffffff;
    padding: 10px 22px;
    border-radius: 12px;
    font-size: 17px;
    font-weight: 700;
    color: #1e293b;
    border: 2px solid #02066f;
    box-shadow: 0 4px 12px rgba(2, 6, 111, 0.08);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.pfm-calendar-icon {
    color: #02066f;
}

.pfm-month-badge span {
    color: #02066f !important;
}

.pfm-tab-btn.is-active {
    background: #02066f !important;
    background: linear-gradient(135deg, #02066f 0%, #01044d 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(2, 6, 111, 0.4) !important;
}

/* 'Sen', sans-serifactive Toolbar */
.pfm-toolbar {
    max-width: 1260px;
    margin: 0 auto 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    background: #f8fafc;
    padding: 16px 20px;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
}

.pfm-search-box {
    position: relative;
    display: flex;
    align-items: center;
    min-width: 300px;
    flex: 1;
    max-width: 440px;
}

.pfm-search-svg {
    position: absolute;
    left: 14px;
    color: #02066f;
    display: flex;
    align-items: center;
    pointer-events: none;
}

.pfm-search-box input {
    width: 100%;
    height: 44px;
    padding: 0 75px 0 42px;
    border-radius: 50px;
    border: 1.5px solid #cbd5e1;
    font-size: 14px;
    color: #1e293b;
    background: #ffffff;
    transition: all 0.25s ease;
}

.pfm-search-box input:focus {
    border-color: #02066f;
    outline: none;
    box-shadow: 0 0 0 3px rgba(2, 6, 111, 0.15);
}

.pfm-search-box button#pfm-clear-search {
    position: absolute;
    right: 12px;
    background: none;
    border: none;
    font-size: 18px;
    color: #94a3b8;
    cursor: pointer;
    line-height: 1;
    padding: 4px;
}

.pfm-search-box button#pfm-clear-search:hover {
    color: #02066f;
}

.pfm-search-badge {
    position: absolute;
    right: 32px;
    background: #02066f;
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 12px;
    white-space: nowrap;
}

.pfm-toolbar-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}

.pfm-tool-label {
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-right: 6px;
}

.pfm-day-selector {
    display: inline-flex;
    align-items: center;
}

.pfm-day-pills {
    display: inline-flex;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    padding: 3px;
    border-radius: 30px;
    gap: 2px;
}

.pfm-day-btn {
    border: none;
    background: transparent;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    cursor: pointer;
    transition: all 0.2s ease;
}

.pfm-day-btn:hover {
    color: #02066f;
    background: #f0f3ff;
}

.pfm-day-btn.is-active {
    background: #02066f !important;
    color: #ffffff !important;
}

.pfm-meal-jumps {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.pfm-jump-btn {
    border: 1px solid #e2e8f0;
    background: #ffffff;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    cursor: pointer;
    transition: all 0.2s ease;
}

.pfm-jump-btn:hover {
    background: #02066f;
    color: #ffffff;
    border-color: #02066f;
}

.pfm-print-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #ffffff;
    border: 1.5px solid #02066f;
    color: #02066f;
    font-size: 13px;
    font-weight: 700;
    padding: 6px 16px;
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.pfm-print-action:hover {
    background: #02066f;
    color: #ffffff;
}

/* Thead in Theme Red */
.pfm-thead-tr th {
    background-color: #02066f !important;
    background: linear-gradient(135deg, #02066f 0%, #01044d 100%) !important;
    color: #ffffff !important;
    padding: 16px 14px;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
    vertical-align: middle;
}

.pfm-th-date-pill {
    background: rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
}

/* Today Tag */
.pfm-today-tag {
    display: inline-block;
    background: #ffffff;
    color: #02066f;
    font-size: 10px;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 10px;
    margin-left: 6px;
    vertical-align: middle;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.is-today-column {
    background: linear-gradient(135deg, #01044d 0%, #01033b 100%) !important;
}

/* Section Header Rows */
.pfm-tr-section td {
    background: linear-gradient(90deg, #f0f3ff 0%, #ffffff 100%) !important;
    color: #02066f !important;
    border-left: 5px solid #02066f !important;
    border-bottom: 2px solid #c7d2fe !important;
    padding: 14px 20px !important;
}

.pfm-sec-header-content {
    display: flex;
    align-items: center;
    gap: 10px;
}

.pfm-sec-icon {
    font-size: 20px;
}

.pfm-sec-title {
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #02066f;
}

/* Search Highlight */
.pfm-match-mark {
    background: #fef08a !important;
    color: #854d0e !important;
    font-weight: 700 !important;
    padding: 1px 4px !important;
    border-radius: 4px !important;
}

/* Hover Rows */
.pfm-tr-item:hover {
    background-color: #f0f3ff !important;
}

.pfm-highlight-pulse {
    animation: pfmPulse 1.5s ease-out;
}

@keyframes pfmPulse {
    0% { background-color: #fee2e2; }
    100% { background-color: transparent; }
}

/* Print Stylesheet */
@media print {
    header, footer, .pfm-hero-banner, .pfm-toolbar, .pfm-week-tabs, .pfm-disclaimer-wrap {
        display: none !important;
    }
    .pfm-main-section {
        padding: 0 !important;
    }
    .pfm-table-card {
        box-shadow: none !important;
        border: none !important;
    }
    .pfm-table {
        min-width: 100% !important;
        font-size: 11px !important;
    }
    .pfm-thead-tr th {
        background-color: #02066f !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .pfm-tr-section td {
        background-color: #f0f3ff !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}



/* ===================================================
   Ultra-Clean, Sleek Blog FAQ Accordion
   =================================================== */

/* Compact Section Heading */
body .entry-content h2.text-3xl,
body .rstb-post-content h2.text-3xl,
body .max-w-4xl > h2,
body h2:has(+ .space-y-4) {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #111827 !important;
    margin-top: 32px !important;
    margin-bottom: 14px !important;
    line-height: 1.3 !important;
    border-left: none !important;
    padding-left: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

body .max-w-4xl > h2::before,
body h2:has(+ .space-y-4)::before {
    content: "" !important;
    width: 3.5px !important;
    height: 18px !important;
    background: #02066f !important;
    border-radius: 2px !important;
    display: inline-block !important;
    flex-shrink: 0 !important;
}

/* FAQ Container */
body .entry-content .space-y-4,
body .rstb-post-content .space-y-4,
body .space-y-4 {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    margin: 12px 0 32px !important;
    width: 100% !important;
}

/* Single Unified White Card */
body .entry-content .space-y-4 > div,
body .rstb-post-content .space-y-4 > div,
body .entry-post-details .space-y-4 > div,
body .space-y-4 > div {
    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03) !important;
    overflow: hidden !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

body .entry-content .space-y-4 > div:hover,
body .rstb-post-content .space-y-4 > div:hover,
body .space-y-4 > div:hover {
    border-color: #cbd5e1 !important;
}

body .entry-content .space-y-4 > div.is-open,
body .rstb-post-content .space-y-4 > div.is-open,
body .space-y-4 > div.is-open {
    border-color: #02066f !important;
    box-shadow: 0 2px 8px rgba(2, 6, 111, 0.08) !important;
}

/* Reset Button Completely */
body .entry-content .space-y-4 button,
body .rstb-post-content .space-y-4 button,
body .entry-post-details .space-y-4 button,
body .space-y-4 > div > button {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    height: auto !important;
    min-height: unset !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 14px 18px !important;
    margin: 0 !important;
    text-transform: none !important;
    text-align: left !important;
    cursor: pointer !important;
    outline: none !important;
    box-sizing: border-box !important;
}

body .entry-content .space-y-4 button:hover,
body .rstb-post-content .space-y-4 button:hover,
body .space-y-4 button:hover,
body .entry-content .space-y-4 > div.is-open button,
body .rstb-post-content .space-y-4 > div.is-open button,
body .space-y-4 > div.is-open button {
    background: transparent !important;
    background-color: transparent !important;
}

/* Question text */
body .entry-content .space-y-4 button > span:first-child,
body .rstb-post-content .space-y-4 button > span:first-child,
body .space-y-4 button > span:first-child {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #111827 !important;
    line-height: 1.45 !important;
    padding-right: 16px !important;
    display: block !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
    transition: color 0.2s ease !important;
}

body .entry-content .space-y-4 > div.is-open button > span:first-child,
body .rstb-post-content .space-y-4 > div.is-open button > span:first-child,
body .space-y-4 > div.is-open button > span:first-child {
    color: #02066f !important;
}

/* Pure CSS Chevron Arrow on Far Right */
body .entry-content .space-y-4 button::after,
body .rstb-post-content .space-y-4 button::after,
body .space-y-4 button::after {
    content: "" !important;
    width: 8px !important;
    height: 8px !important;
    border-right: 2px solid #6b7280 !important;
    border-bottom: 2px solid #6b7280 !important;
    transform: rotate(45deg) !important;
    transition: transform 0.25s ease, border-color 0.2s ease !important;
    flex-shrink: 0 !important;
    margin-left: 12px !important;
    display: inline-block !important;
}

body .entry-content .space-y-4 > div.is-open button::after,
body .rstb-post-content .space-y-4 > div.is-open button::after,
body .space-y-4 > div.is-open button::after {
    transform: rotate(-135deg) !important;
    border-color: #02066f !important;
}

/* Hide any JS injected span.psg-faq-chevron to avoid double icons */
.psg-faq-chevron {
    display: none !important;
}

/* Answer Body */
body .entry-content .space-y-4 .overflow-hidden,
body .rstb-post-content .space-y-4 .overflow-hidden,
body .space-y-4 > div > div.overflow-hidden {
    padding: 0 18px !important;
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.3s cubic-bezier(0.16, 1, 0.3, 1), padding 0.2s ease !important;
}

body .entry-content .space-y-4 > div.is-open .overflow-hidden,
body .rstb-post-content .space-y-4 > div.is-open .overflow-hidden,
body .space-y-4 > div.is-open > div.overflow-hidden {
    max-height: 500px !important;
    padding: 0 18px 14px 18px !important;
}

body .entry-content .space-y-4 .overflow-hidden p,
body .rstb-post-content .space-y-4 .overflow-hidden p,
body .space-y-4 .overflow-hidden p {
    font-size: 14.5px !important;
    line-height: 1.65 !important;
    color: #4b5563 !important;
    margin: 0 !important;
    border-top: 1px solid #f3f4f6 !important;
    padding-top: 10px !important;
}



/* ===================================================
   Univet Theme Native Blog Design & Theme Colors (#02066f)
   Strictly following the native theme design without custom HTML
   =================================================== */

/* Native Content Typography */
.rstb-post-content,
.entry-content,
.entry-post-details {
    font-family: var(--bodyFont, 'Sen', sans-serif);
    font-size: 16px;
    line-height: 1.8;
    color: var(--bodyColor, #4C4C4C);
}

.rstb-post-content p,
.entry-content p {
    margin-bottom: 22px;
    font-size: 16px;
    line-height: 1.8;
    color: #4C4C4C;
}

.rstb-post-content h1, .rstb-post-content h2, .rstb-post-content h3, 
.rstb-post-content h4, .rstb-post-content h5, .rstb-post-content h6,
.entry-content h1, .entry-content h2, .entry-content h3, 
.entry-content h4, .entry-content h5, .entry-content h6 {
    font-family: var(--titleFont, 'Faculty Glyphic', serif);
    font-weight: 600;
    color: var(--titleColor, #051435);
    line-height: 1.35;
    margin: 36px 0 16px 0;
}

.rstb-post-content h2, .entry-content h2 {
    font-size: 28px;
    border-left: 4px solid #02066f;
    padding-left: 14px;
}

.rstb-post-content h3, .entry-content h3 {
    font-size: 22px;
}

/* Links */
.rstb-post-content a,
.entry-content a {
    color: #02066f;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s ease;
}

.rstb-post-content a:hover,
.entry-content a:hover {
    color: #01044d;
}

/* Native Tables */
.rstb-post-content table,
.entry-content table {
    width: 100%;
    margin: 28px 0;
    border-collapse: collapse;
    background: #ffffff;
    border: 1px solid #e4e4e4;
    border-radius: 8px;
    overflow: hidden;
}

.rstb-post-content table th,
.entry-content table th {
    background-color: #02066f;
    color: #ffffff;
    font-family: var(--titleFont, 'Faculty Glyphic', serif);
    font-size: 15px;
    font-weight: 600;
    padding: 14px 18px;
    text-align: left;
    border: 1px solid #02066f;
}

.rstb-post-content table td,
.entry-content table td {
    padding: 12px 18px;
    font-size: 15px;
    color: #4C4C4C;
    border: 1px solid #e4e4e4;
    vertical-align: middle;
}

.rstb-post-content table tr:nth-child(even),
.entry-content table tr:nth-child(even) {
    background-color: #fbfbfe;
}

.rstb-post-content table tr:hover,
.entry-content table tr:hover {
    background-color: #f0f3ff;
}

/* Native Blockquotes */
.rstb-post-content blockquote,
.entry-content blockquote {
    position: relative;
    border-left: 4px solid #02066f;
    background: #f7f9ff;
    padding: 24px 30px;
    margin: 30px 0;
    border-radius: 0 8px 8px 0;
    font-family: var(--titleFont, 'Faculty Glyphic', serif);
    font-size: 17px;
    font-style: italic;
    line-height: 1.75;
    color: var(--titleColor, #051435);
}

/* Native Lists */
.rstb-post-content ul,
.entry-content ul {
    padding-left: 20px;
    margin: 20px 0;
}

.rstb-post-content ul li,
.entry-content ul li {
    margin-bottom: 10px;
    line-height: 1.7;
}

/* Native Featured Image */
.rstb-post-featured-img img {
    border-radius: 12px;
    width: 100%;
    height: auto;
    display: block;
}

/* Native Post Tags & Navigation */
.entry-post-details .entry-tags a:hover,
.rstb-post-meta .tag_cat a:hover {
    background-color: #02066f !important;
    color: #ffffff !important;
}

.rstb-post-navigation .next-post:hover .post-title a,
.rstb-post-navigation .prev-post:hover .post-title a {
    color: #02066f !important;
}

/* Native Sidebar Styling */
.widget_search .widget-title::after,
.widget .widget-title::after {
    background: #02066f !important;
}

.widget.widget_search input:focus {
    border-color: #02066f !important;
}

.widget.widget_search button[type=submit]:hover {
    color: #02066f !important;
}

.widget.widget_block .wp-block-categories li a:hover,
.widget.widget_block .wp-block-archives li a:hover,
.widget.widget_categories li a:hover,
.widget.widget_archive li a:hover {
    color: #02066f !important;
}

.widget.widget_tag_cloud .tagcloud a:hover {
    background-color: #02066f !important;
    color: #ffffff !important;
    border-color: #02066f !important;
}

/* Clean Native FAQ Accordion (Theme Styled) */
.entry-content .space-y-4 > div,
.rstb-post-content .space-y-4 > div {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    margin-bottom: 10px;
    overflow: hidden;
    transition: all 0.2s ease;
}

.entry-content .space-y-4 > div:hover,
.rstb-post-content .space-y-4 > div:hover {
    border-color: #cbd5e1;
}

.entry-content .space-y-4 > div.is-open,
.rstb-post-content .space-y-4 > div.is-open {
    border-color: #02066f;
    box-shadow: 0 2px 8px rgba(2, 6, 111, 0.08);
}

.entry-content .space-y-4 button,
.rstb-post-content .space-y-4 button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 15px 18px;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    outline: none;
    box-sizing: border-box;
}

.entry-content .space-y-4 button > span:first-child,
.rstb-post-content .space-y-4 button > span:first-child {
    font-size: 15.5px;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.45;
    flex: 1;
    padding-right: 12px;
}

.entry-content .space-y-4 > div.is-open button > span:first-child,
.rstb-post-content .space-y-4 > div.is-open button > span:first-child {
    color: #02066f;
}

.entry-content .space-y-4 button::after,
.rstb-post-content .space-y-4 button::after {
    content: "";
    width: 8px;
    height: 8px;
    border-right: 2px solid #64748b;
    border-bottom: 2px solid #64748b;
    transform: rotate(45deg);
    transition: transform 0.25s ease, border-color 0.2s ease;
    flex-shrink: 0;
    margin-left: 12px;
}

.entry-content .space-y-4 > div.is-open button::after,
.rstb-post-content .space-y-4 > div.is-open button::after {
    transform: rotate(-135deg);
    border-color: #02066f;
}

.entry-content .space-y-4 .overflow-hidden,
.rstb-post-content .space-y-4 .overflow-hidden {
    padding: 0 18px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.2s ease;
}

.entry-content .space-y-4 > div.is-open .overflow-hidden,
.rstb-post-content .space-y-4 > div.is-open .overflow-hidden {
    max-height: 600px;
    padding: 0 18px 16px 18px;
}

.entry-content .space-y-4 .overflow-hidden p,
.rstb-post-content .space-y-4 .overflow-hidden p {
    font-size: 14.5px;
    line-height: 1.7;
    color: #4C4C4C;
    margin: 0;
    border-top: 1px solid #f1f5f9;
    padding-top: 10px;
}



/* ===================================================
   Clean Transparent Logo - Seamless Integration
   No white boxes, no cards, no borders
   =================================================== */

.elementor-element-0247f73,
.elementor-element-0a0f891,
.header-logo-wrap {
    background: transparent !important;
    background-color: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
}

.rstb-site-logo img {
    background: transparent !important;
    background-color: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border: none !important;
    max-height: 80px !important;
    width: auto !important;
    display: block !important;
}

.site-footer .rstb-site-logo,
footer .rstb-site-logo,
[data-id="ae6ea44"] .rstb-site-logo,
.elementor-widget-rstb-site-logo.elementor-widget-footer-logo {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

.site-footer .rstb-site-logo img,
footer .rstb-site-logo img,
[data-id="ae6ea44"] .rstb-site-logo img {
    background: transparent !important;
    max-height: 70px !important;
    width: auto !important;
}


/* ===================================================
   Header One Logo - Pure Transparent, No Background
   =================================================== */

.elementor-element-0247f73,
.elementor-element-0a0f891,
.header-logo-wrap,
.elementor-element-34177d8,
.elementor-element-34177d8 .rstb-site-logo,
.elementor-element-34177d8 .rstb-site-logo a {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Hide the old shield/ribbon background completely */
.elementor-element-e0d82f9,
[data-id="e0d82f9"],
.elementor-element-0247f73 .elementor-element-e0d82f9,
.rs-image img[src*="red-logo"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    pointer-events: none !important;
}

.elementor-element-34177d8 .rstb-site-logo img,
.elementor-element-0247f73 img,
.elementor-element-0a0f891 img,
.rstb-site-logo img {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    max-height: 75px !important;
    width: auto !important;
    display: block !important;
    object-fit: contain !important;
}


/* ===================================================
   Completely Remove Header Logo Background & Shield
   =================================================== */
.elementor-element-e0d82f9,
[data-id="e0d82f9"],
.elementor-element-0247f73 .elementor-element-e0d82f9,
.rs-image img[src*="red-logo"],
.rs-image img[src*="red-logo1-1"],
img[src*="red-logo1-1.png"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    position: absolute !important;
    top: -9999px !important;
}

.elementor-element-0247f73,
.elementor-element-0a0f891,
.elementor-element-34177d8,
.elementor-element-34177d8 .rstb-site-logo,
.elementor-element-34177d8 .rstb-site-logo a {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.elementor-element-34177d8 .rstb-site-logo img,
.elementor-element-0247f73 img {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    max-height: 72px !important;
    width: auto !important;
    display: block !important;
    object-fit: contain !important;
}


/* ===================================================
   Brand Theme Color Overrides:
   - Slider Revolution Arrows & Bullets
   - Mega Menu Banner Card Gradient
   =================================================== */

/* 1. Slider Revolution Navigation Arrows */
.custom_copy58.tparrows,
.custom_copy58.tparrows.tp-leftarrow,
.custom_copy58.tparrows.tp-rightarrow,
.tparrows.custom_copy58,
.tp-leftarrow.custom_copy58,
.tp-rightarrow.custom_copy58 {
    background: #02066f !important;
    background-color: #02066f !important;
    border-radius: 4px !important;
    transition: all 0.3s ease-in-out !important;
}

.custom_copy58.tparrows:hover,
.custom_copy58.tparrows.tp-leftarrow:hover,
.custom_copy58.tparrows.tp-rightarrow:hover,
.custom_copy58.tparrows.rs-touchhover {
    background: #01044d !important;
    background-color: #01044d !important;
}

/* Slider Bullets on right edge */
.tp-bullets .tp-bullet.selected,
.tp-bullets .tp-bullet:hover,
.rs-nav-bullets .tp-bullet.selected,
.rs-nav-bullets .tp-bullet:hover {
    background: #02066f !important;
    background-color: #02066f !important;
    border-color: #02066f !important;
}

/* 2. Mega Menu Right Card (15+ Years Banner) */
.elementor-element-bc51695,
[data-id="bc51695"] {
    background: linear-gradient(135deg, #01044d 0%, #02066f 100%) !important;
    background-color: #02066f !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 12px !important;
}

.elementor-element-bc51695 .elementor-element-06f5eb3,
.elementor-element-bc51695 .rs-counter {
    color: #ffffff !important;
}

/* ===================================================
   PSG Clifton 'Sen', sans-serifnational - Site-Wide Preloader
   =================================================== */

.univet-preloader,
.psg-site-preloader {
    background-color: #ffffff;
    height: 100vh;
    width: 100vw;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999999999;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.4s ease, visibility 0.4s ease;
    pointer-events: all;
}

.univet-preloader.loaded,
.psg-site-preloader.loaded,
.univet-preloader[style*="display: none"] {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    display: none !important;
}

.univet-preloader .loader-container,
.psg-site-preloader .loader-container {
    position: relative;
    width: 110px;
    height: 110px;
    border: 3px solid #e2e8f0;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 10px 30px rgba(2, 6, 111, 0.08);
}

.univet-preloader .loader-container::before,
.psg-site-preloader .loader-container::before {
    content: "";
    position: absolute;
    top: -3px;
    left: -3px;
    width: 110px;
    height: 110px;
    border: 3px solid transparent;
    border-top: 3px solid #02066f;
    border-right: 3px solid #02066f;
    border-radius: 50%;
    animation: psg-spin 1.1s cubic-bezier(0.5, 0.1, 0.5, 0.9) infinite;
    -webkit-animation: psg-spin 1.1s cubic-bezier(0.5, 0.1, 0.5, 0.9) infinite;
}

.univet-preloader .loader-container .loader-icon,
.psg-site-preloader .loader-container .loader-icon {
    position: static;
    transform: none;
    width: 75px;
    height: 75px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.univet-preloader .loader-container .loader-icon img,
.psg-site-preloader .loader-container .loader-icon img {
    width: 70px;
    height: 70px;
    object-fit: contain;
    display: block;
    animation: psg-pulse 1.8s ease-in-out infinite;
    -webkit-animation: psg-pulse 1.8s ease-in-out infinite;
}

@keyframes psg-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@keyframes psg-pulse {
    0%, 100% { transform: scale(0.96); opacity: 0.9; }
    50% { transform: scale(1.05); opacity: 1; }
}

/* ===================================================
   PSG Clifton 'Sen', sans-serifnational — Precision Navigation Dropdowns
   =================================================== */

/* Top-level menu items in horizontal header (Student Life, News & Events, etc.) MUST drop DOWN */
.rstb-nav-menu.nav-horizontal .primary-menu > li.menu-item-has-children {
    position: relative !important;
}

.rstb-nav-menu.nav-horizontal .primary-menu > li.menu-item-has-children > .sub-menu {
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate3d(0, 10px, 0) !important;
    min-width: 250px !important;
    box-shadow: 0 10px 30px rgba(2, 6, 111, 0.12) !important;
    border-radius: 10px !important;
    border: 1px solid #e2e8f0 !important;
    border-top: 3px solid #02066f !important;
    background: #ffffff !important;
    transition: opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.3s cubic-bezier(0.1, 0.76, 0.37, 1.19) !important;
}

.rstb-nav-menu.nav-horizontal .primary-menu > li.menu-item-has-children:hover > .sub-menu {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: all !important;
    transform: translate3d(0, 0, 0) !important;
}

/* Remove any chevron indicator from top-level horizontal nav items */
.rstb-nav-menu.nav-horizontal .primary-menu > li.menu-item-has-children > a .menu-item-text::after {
    display: none !important;
    content: none !important;
}

/* ONLY nested sub-menus (level 2+, like Partnership inside megamenu) fly out to the RIGHT */
.rstb-nav-menu.nav-vertical .primary-menu li.menu-item-has-children,
.rstb-nav-menu .primary-menu .sub-menu li.menu-item-has-children {
    position: relative !important;
}

.rstb-nav-menu.nav-vertical .primary-menu li.menu-item-has-children:hover > .sub-menu,
.rstb-nav-menu .primary-menu .sub-menu li.menu-item-has-children:hover > .sub-menu {
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 100% !important;
    right: auto !important;
    min-width: 280px !important;
    background: #ffffff !important;
    border-radius: 12px !important;
    padding: 8px 0 !important;
    box-shadow: 0 15px 35px rgba(2, 6, 111, 0.18) !important;
    border: 1.5px solid #e2e8f0 !important;
    border-top: 3px solid #02066f !important;
    z-index: 999999 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: all !important;
}

.rstb-nav-menu.nav-vertical .primary-menu li.menu-item-has-children:hover > .sub-menu li a,
.rstb-nav-menu .primary-menu .sub-menu li.menu-item-has-children:hover > .sub-menu li a {
    display: flex !important;
    align-items: center !important;
    padding: 10px 20px !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    color: #334155 !important;
    text-decoration: none !important;
    transition: all 0.2s ease !important;
}

.rstb-nav-menu.nav-vertical .primary-menu li.menu-item-has-children:hover > .sub-menu li a:hover,
.rstb-nav-menu .primary-menu .sub-menu li.menu-item-has-children:hover > .sub-menu li a:hover {
    background: #eef2ff !important;
    color: #02066f !important;
    padding-left: 24px !important;
}

/* Subtle chevron ONLY on nested items */
.rstb-nav-menu.nav-vertical .primary-menu li.menu-item-has-children > a .menu-item-text::after,
.rstb-nav-menu .primary-menu .sub-menu li.menu-item-has-children > a .menu-item-text::after {
    content: " ›";
    font-size: 16px;
    font-weight: bold;
    color: #02066f;
    margin-left: 6px;
    display: inline-block;
}


/* ===================================================
   Fix Right-Hand Side Horizontal Gap & Viewport Overflow
   =================================================== */
html {
    overflow-x: clip !important;
    max-width: 100% !important;
    width: 100% !important;
}

body {
    overflow-x: clip !important;
    max-width: 100% !important;
    width: 100% !important;
    position: relative !important;
}

/* Hide inactive offcanvas panels so they do not cause horizontal viewport scroll */
.rstb-nav-menu .mobile-panel-wrapper.panel-offcanvas:not(.show-panel) {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.rstb-nav-menu .mobile-panel-wrapper.panel-offcanvas:not(.show-panel) .mobile-panel-content,
.rstb-nav-menu .mobile-panel-wrapper.panel-offcanvas:not(.show-panel) .mobile-panel-overly {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.rstb-nav-menu .mobile-panel-wrapper.panel-offcanvas.show-panel {
    display: block !important;
    visibility: visible !important;
    pointer-events: all !important;
}

.rstb-nav-menu .mobile-panel-wrapper.panel-offcanvas.show-panel .mobile-panel-content {
    display: flex !important;
    visibility: visible !important;
}

.rstb-nav-menu .mobile-panel-wrapper.panel-offcanvas.show-panel .mobile-panel-overly {
    display: block !important;
    visibility: visible !important;
}

/* Prevent any page wrapper from exceeding 100% viewport width */
.psg-heritage-home-wrapper,
.psg-admissions-wrapper,
.psg-fee-wrapper,
.psg-dining-page-wrapper,
.psg-contact-page-wrapper,
.psg-calendar-wrapper,
.psg-director-apple-wrapper,
.psg-founders-apple-wrapper {
    overflow-x: clip !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* ===================================================
   STRICT GLOBAL SITE-WIDE FONTS:
   Primary Font: Faculty Glyphic (Headings & Accents)
   Secondary Font: Sen (Body, Nav & UI)
   =================================================== */
:root {
    --font-primary: 'Faculty Glyphic', serif !important;
    --font-secondary: 'Sen', sans-serif !important;
    --titleFont: 'Faculty Glyphic', serif !important;
    --bodyFont: 'Sen', sans-serif !important;
    --primary-font: 'Faculty Glyphic', serif !important;
    --secondary-font: 'Sen', sans-serif !important;
    --e-global-typography-primary-font-family: 'Faculty Glyphic' !important;
    --e-global-typography-secondary-font-family: 'Sen' !important;
    --e-global-typography-text-font-family: 'Sen' !important;
    --e-global-typography-accent-font-family: 'Sen' !important;
}

/* Secondary Font (Sen) for all General Elements, Body, Forms, Menus, Nav */
body, 
p, 
span, 
a, 
li, 
button, 
input, 
select, 
textarea, 
label, 
table, 
td, 
th, 
div,
blockquote,
cite,
.rstb-nav-menu,
.primary-menu,
.primary-menu a,
.menu-item-link,
.sub-menu a,
.univet-button,
.btn-heritage-primary,
.btn-heritage-secondary,
.btn-deck-explore,
.btn-gold-action,
.btn-outline-white,
.btn-submit-step,
.stage-summary,
.deck-summary,
.deck-features-list li,
.event-date-col,
.event-info-col,
.news-title,
.news-meta,
.footer-text,
.trust-item span,
.campus-mosaic-card p {
    font-family: 'Sen', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

/* Primary Font (Faculty Glyphic) for all Headings, Banners, Wordmarks & Accents */
h1, 
h2, 
h3, 
h4, 
h5, 
h6,
h1 *, 
h2 *, 
h3 *, 
h4 *, 
h5 *, 
h6 *,
.elementor-heading-title,
.hero-editorial-title,
.gold-serif-span,
.section-title,
.page-title,
.heritage-tag,
.deck-stage-badge,
.crest-letters,
.crest-motto,
.trust-item strong,
.deck-content-side h3,
.school-stage-card h3,
.campus-quote-large,
.stats-big-number,
.metric-number,
.admissions-crest-box h2,
.modal-header h3,
.pillar-title,
.director-apple-hero h1,
.founders-apple-hero h1,
.fee-table-heading,
.step-circle-badge,
.mosaic-content h3 {
    font-family: 'Faculty Glyphic', Georgia, serif !important;
}


/* Ultra-High Specificity Headings and Body Enforcement */
html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6,
html body .hero-motion-title,
html body .admissions-hero-inner h1,
html body .elementor-kit-14 h1,
html body .elementor-kit-14 h2,
html body .elementor-kit-14 h3,
html body .elementor-heading-title,
html body .hero-editorial-title,
html body .schools-deck-title,
html body .school-deck-card h3,
html body .campus-quote-large,
html body .page-title,
html body .section-title,
html body .gold-serif-span {
    font-family: 'Faculty Glyphic', Georgia, serif !important;
}

html body,
html body p,
html body li,
html body a,
html body span,
html body button,
html body input,
html body select,
html body textarea,
html body label,
html body .elementor-kit-14,
html body .elementor-widget-text-editor {
    font-family: 'Sen', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}
