.elementor-5441 .elementor-element.elementor-element-8a3393c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-5441 .elementor-element.elementor-element-fd68383{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-5441 .elementor-element.elementor-element-d445a9e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}:root{--page-title-display:none;}/* Start custom CSS for html, class: .elementor-element-f4caa12 *//* ========== PROGRAM CATALOG COMPONENT ========== */
        
        /* Main wrapper */
        .pgcat-wrapper {
            width: 100%;
            background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 50%, #e9ecef 100%);
            position: relative;
            padding: 80px 0;
            min-height: 100vh;
        }

        /* Subtle texture pattern */
        .pgcat-wrapper::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-image: radial-gradient(circle at 1px 1px, rgba(0,0,0,.02) 1px, transparent 0);
            background-size: 20px 20px;
            pointer-events: none;
        }

        /* Content wrapper */
        .pgcat-content {
            width: min(1200px, 90%);
            margin: 0 auto;
            position: relative;
            z-index: 1;
        }

        /* Heading */
        .pgcat-heading {
            font-family: Quicksand;
            font-size: 48px;
            font-weight: 600;
            color: #414042;
            opacity: 1; /* Full opacity untuk H1 - lebih prominent */
            text-align: center;
            margin: 0 0 32px 0;
            letter-spacing: -1px;
        }

        /* Intro paragraph */
        .pgcat-intro {
            max-width: 800px;
            margin: 0 auto 48px;
            text-align: center;
            color: #414042;
            opacity: 0.85; /* Slightly reduced untuk hierarki */
            line-height: 1.6;
            font-weight: 300;
        }

        .pgcat-intro p {
            font-size: 16px;
        }

        /* ========== GRID LAYOUT - MAX 2 COLUMNS ========== */
        .pgcat-grid {
            display: grid;
            grid-template-columns: repeat(2, 270px);
            gap: 16px;
            justify-content: center;
        }

        /* ========== DESKTOP: 480px height, 9:16 ratio ========== */
        .pgcat-item {
            width: 270px; /* 480 * (9/16) = 270px */
            height: 480px;
        }

        /* Link wrapper */
        .pgcat-link {
            text-decoration: none;
            color: inherit;
            display: block;
            width: 100%;
            height: 100%;
            border-radius: 12px;
            overflow: hidden;
            transition: all 0.3s ease;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            background: #fff;
            position: relative;
        }

        .pgcat-link:hover {
            transform: translateY(-8px);
            box-shadow: 0 12px 32px rgba(0,0,0,0.15);
        }

        /* Image container */
        .pgcat-imgbox {
            width: 100%;
            height: 100%;
            position: relative;
            overflow: hidden;
            background-image: var(--pgcat-bg-image);
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
        }

        /* Title above image (hidden on desktop) */
        .pgcat-title-top {
            display: none;
        }

        /* Title overlay on hover (desktop only) */
        .pgcat-title-hover {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.7) 50%, transparent 100%);
            color: white;
            padding: 48px 16px 16px;
            transform: translateY(100%);
            transition: transform 0.3s ease;
            font-size: 14px;
            font-weight: 500;
            text-align: center;
            line-height: 1.4;
        }

        .pgcat-link:hover .pgcat-title-hover {
            transform: translateY(0);
        }

        /* Zoom indicator for image links */
        .pgcat-zoom-indicator {
            position: absolute;
            top: 16px;
            right: 16px;
            background: rgba(0,0,0,0.7);
            color: white;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            opacity: 0;
            transition: opacity 0.3s ease;
            pointer-events: none;
        }

        .pgcat-link:hover .pgcat-zoom-indicator {
            opacity: 1;
        }

        /* ========== TABLET: 470px total (420px image + 50px title), 9:16 ratio ========== */
        @media (max-width: 768px) {
            .pgcat-wrapper {
                padding: 60px 0;
            }

            .pgcat-heading {
                font-size: 36px;
                margin-bottom: 24px;
            }

            .pgcat-intro {
                margin-bottom: 36px;
            }

            .pgcat-grid {
                grid-template-columns: repeat(2, 236px);
                gap: 12px;
                justify-content: center;
            }

            /* TABLET: 470px total height (420px image + 50px title) */
            .pgcat-item {
                width: 236px; /* 420 * (9/16) = 236.25px */
                height: 470px; /* 420px image + 50px title */
            }

            /* Show title above image */
            .pgcat-title-top {
                display: block;
                background: #083d61; /* Biru tua */
                color: #dfd7af; /* Krem/gold */
                padding: 12px;
                font-size: 13px;
                font-weight: 500;
                text-align: center;
                line-height: 1.3;
                height: 50px; /* Fixed height */
                display: flex;
                align-items: center;
                justify-content: center;
                border-radius: 12px 12px 0 0; /* Rounded corners di atas */
            }

            /* Image box with perfect 9:16 ratio */
            .pgcat-imgbox {
                height: 420px; /* Perfect 9:16 with 236px width */
                width: 236px;
                border-radius: 0 0 12px 12px;
            }

            /* Hide desktop hover elements */
            .pgcat-title-hover {
                display: none;
            }

            .pgcat-zoom-indicator {
                display: none;
            }
        }

        /* ========== MOBILE: 425px total (380px image + 45px title), 9:16 ratio ========== */
        @media (max-width: 480px) {
            .pgcat-wrapper {
                padding: 40px 0;
            }

            .pgcat-heading {
                font-size: 28px;
                margin-bottom: 20px;
            }

            .pgcat-intro {
                margin-bottom: 32px;
            }

            .pgcat-intro p {
                font-size: 14px;
            }

            /* MOBILE: 1 column layout */
            .pgcat-grid {
                grid-template-columns: 214px;
                gap: 12px;
                justify-content: center;
            }

            /* MOBILE: 425px total height (380px image + 45px title) */
            .pgcat-item {
                width: 214px; /* 380 * (9/16) = 213.75px */
                height: 425px; /* 380px image + 45px title */
            }

            /* Title styling */
            .pgcat-title-top {
                font-size: 12px;
                padding: 10px;
                height: 45px; /* Fixed height */
                background: #083d61; /* Biru tua */
                color: #dfd7af; /* Krem/gold */
                border-radius: 12px 12px 0 0; /* Rounded corners di atas */
            }

            /* Image box with perfect 9:16 ratio */
            .pgcat-imgbox {
                height: 380px; /* Perfect 9:16 with 214px width */
                width: 214px;
            }
        }/* End custom CSS */