 :root {
     --primary-blue: #2d68c4;
     --primary-dark: #1e4fa0;
     --primary-yellow: #f4b800;
     --text-dark: #333333;
     --font-montserrat: 'Montserrat', sans-serif;
     --font-inter: 'Inter', sans-serif;
     --radius-md: 12px;
     --radius-lg: 20px;
     --shadow-soft: 0 4px 20px rgba(45, 104, 196, .07);
     --shadow-hover: 0 10px 30px rgba(45, 104, 196, .15);
     --grad-line: linear-gradient(90deg, #2d68c4 70%, #f4b800 100%);
 }

 .section-putih {
     background-color: #ffffff;
 }

 .section-abu {
     background-color: #f4f6f9;
 }

 .section-biru-baru {
     background-color: #f0f5ff;
 }

 .lycon-tagline {
     font-family: var(--font-inter);
     font-size: 13px;
     font-weight: 700;
     color: var(--primary-blue);
     text-transform: uppercase;
     letter-spacing: 1.5px;
     display: inline-block;
     margin-bottom: 16px;
     background: #e8f0fc;
     padding: 6px 18px;
     border-radius: 50px;
 }

 .lycon-title {
     font-family: var(--font-montserrat);
     font-size: 38px;
     font-weight: 800;
     color: #111827;
     margin-bottom: 20px;
     line-height: 1.3;
 }

 .lycon-subtitle-light {
     font-family: var(--font-inter);
     color: #4b5563;
     line-height: 1.6;
     font-size: 16px;
     max-width: 800px;
     margin: 0 auto;
 }

 .page-banner {
     background-size: contain;
     background-position: center;
 }

 .page-banner::after {
     content: '';
     position: absolute;
     right: -150px;
     top: 50%;
     transform: translateY(-50%);
     width: 600px;
     height: 600px;
     border: 1px solid rgba(255, 255, 255, .15);
     border-radius: 50%;
     pointer-events: none;
     z-index: 1;
 }

 .page-banner-inner {
     position: relative;
     z-index: 2;
 }

 .page-eyebrow {
     display: inline-flex;
     align-items: center;
     gap: 8px;
     font-family: var(--font-inter);
     font-size: 11px;
     font-weight: 700;
     color: var(--primary-yellow);
     text-transform: uppercase;
     letter-spacing: 1.5px;
     padding: 6px 16px;
     border: 1px solid rgba(244, 184, 0, .4);
     border-radius: 50px;
     margin-bottom: 20px;
     background: rgba(0, 0, 0, .2);
 }

 .page-banner h1 {
     font-family: Georgia, 'Times New Roman', Times, serif;
     font-size: 56px;
     font-weight: 700;
     color: #ffffff;
     margin-bottom: 15px;
     letter-spacing: -0.5px;
 }

 .page-banner h1 span {
     color: var(--primary-yellow);
 }

 .page-banner p {
     font-family: var(--font-inter);
     font-size: 15px;
     color: rgba(255, 255, 255, .85);
     margin: 0;
 }

 .about-profile-section {
     padding: 100px 0;
 }

 .about-content p {
     font-family: var(--font-inter);
     font-size: 16px;
     line-height: 1.8;
     color: #4b5563;
     margin-bottom: 24px;
     text-align: justify;
 }

 .about-image-wrapper {
     position: relative;
     z-index: 1;
     padding-right: 20px;
     padding-bottom: 20px;
     max-width: 80%;
     margin-left: auto;
     margin-right: 0;
 }

 .about-image-wrapper::before {
     content: '';
     position: absolute;
     width: calc(100% - 20px);
     height: calc(100% - 20px);
     bottom: 0;
     right: 0;
     background: var(--grad-line);
     padding: 2px;
     z-index: -1;
     transition: transform .3s ease;
 }

 .about-image-wrapper:hover::before {
     transform: translate(5px, 5px);
 }

 .about-image-wrapper img {
     width: 100%;
     height: auto;
     border-radius: 0;
     box-shadow: none;
     object-fit: cover;
     display: block;
 }

 .stats-section {
     padding: 80px 0;
 }

 .stat-item {
     background-color: #fff;
     padding: 40px 20px;
     border-radius: var(--radius-md);
     box-shadow: var(--shadow-soft);
     transition: transform .3s ease, box-shadow .3s ease;
     height: 100%;
     border: 2px solid transparent;
     background-image: linear-gradient(#ffffff, #ffffff), var(--grad-line);
     background-origin: border-box;
     background-clip: padding-box, border-box;
 }

 .stat-item:hover {
     transform: translateY(-10px);
     box-shadow: var(--shadow-hover);
 }

 .stat-item h3 {
     font-family: var(--font-montserrat);
     font-size: 48px;
     font-weight: 800;
     color: var(--primary-blue);
     margin-bottom: 10px;
     line-height: 1;
 }

 .stat-item p {
     font-family: var(--font-inter);
     font-size: 16px;
     font-weight: 600;
     color: #444;
     margin: 0;
 }

 .vision-mission-section {
     padding: 100px 0;
 }

 .vision-col,
 .mission-col {
     background: linear-gradient(135deg, #2d68c4 0%, #1e4fa0 100%);
     padding: 50px;
     border-radius: var(--radius-lg);
     box-shadow: var(--shadow-hover);
     color: #fff;
     position: relative;
     overflow: hidden;
     transition: transform .3s ease;
     height: 100%;
     border: 2px solid transparent;
     background-image:
         linear-gradient(135deg, #2d68c4 0%, #1e4fa0 100%),
         var(--grad-line);
     background-origin: border-box;
     background-clip: padding-box, border-box;
 }

 .vision-col:hover,
 .mission-col:hover {
     transform: translateY(-5px);
 }

 .vision-col::after,
 .mission-col::after {
     content: '';
     position: absolute;
     top: -50px;
     right: -50px;
     width: 200px;
     height: 200px;
     background: rgba(255, 255, 255, .05);
     border-radius: 50%;
     pointer-events: none;
 }

 .vm-icon {
     width: 70px;
     height: 70px;
     margin-bottom: 25px;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     background-color: #ffffff;
     border-radius: 20px;
     box-shadow: 0 5px 15px rgba(0, 0, 0, .1);
 }

 .vm-icon svg {
     width: 35px;
     height: 35px;
     color: var(--primary-blue);
 }

 .vision-col h3,
 .mission-col h3 {
     font-family: var(--font-montserrat);
     font-size: 28px;
     font-weight: 700;
     color: #ffffff;
     margin-bottom: 20px;
 }

 .vision-col p {
     font-family: var(--font-inter);
     font-size: 17px;
     line-height: 1.8;
     color: rgba(255, 255, 255, .95);
 }

 .mission-col ul {
     list-style: none;
     padding-left: 0;
     margin-bottom: 0;
 }

 .mission-col li {
     font-family: var(--font-inter);
     font-size: 16px;
     line-height: 1.6;
     color: rgba(255, 255, 255, .9);
     margin-bottom: 18px;
     padding-left: 35px;
     position: relative;
     border-bottom: 1px solid rgba(255, 255, 255, .1);
     padding-bottom: 12px;
 }

 .mission-col li:last-child {
     border-bottom: none;
     margin-bottom: 0;
     padding-bottom: 0;
 }

 .mission-col li::before {
     content: '✔';
     background: var(--primary-yellow);
     color: var(--primary-blue);
     width: 20px;
     height: 20px;
     border-radius: 50%;
     font-size: 12px;
     font-weight: 800;
     display: flex;
     align-items: center;
     justify-content: center;
     position: absolute;
     left: 0;
     top: 2px;
 }

 @media (max-width: 768px) {

     .vision-col,
     .mission-col {
         padding: 30px 20px;
     }

     .about-image-wrapper {
         max-width: 100%;
         margin: 30px auto 0 auto;
     }

     .page-banner h1 {
         font-size: 40px;
     }
 }

 .timeline-section {
     padding: 100px 0;
     overflow: hidden;
 }

 .timeline-title-wrapper {
     max-width: 800px;
     margin: 0 auto 60px auto;
 }

 .timeline-wrapper {
     position: relative;
     max-width: 900px;
     margin: 0 auto;
     padding: 20px 0;
 }

 .timeline-wrapper::before {
     content: '';
     position: absolute;
     top: 0;
     bottom: 0;
     left: 50%;
     width: 2px;
     background: var(--grad-line);
     /* garis tengah gradasi */
     transform: translateX(-50%);
 }

 .timeline-item {
     padding: 15px 0;
     position: relative;
     width: 50%;
     display: flex;
     align-items: center;
 }

 .timeline-item:nth-child(odd) {
     align-self: flex-start;
     justify-content: flex-end;
     padding-right: 60px;
     text-align: right;
     margin-left: 0;
 }

 .timeline-item:nth-child(even) {
     align-self: flex-end;
     justify-content: flex-start;
     padding-left: 60px;
     text-align: left;
     margin-left: 50%;
 }

 .timeline-dot {
     position: absolute;
     width: 24px;
     height: 24px;
     background-color: #fff;
     border: 4px solid var(--primary-blue);
     border-radius: 50%;
     z-index: 3;
     transition: all .4s ease;
     box-shadow: 0 0 0 4px rgba(45, 104, 196, .2);
 }

 .timeline-item:nth-child(odd) .timeline-dot {
     right: -12px;
 }

 .timeline-item:nth-child(even) .timeline-dot {
     left: -12px;
 }

 .timeline-content {
     border-radius: var(--radius-md);
     padding: 25px 30px;
     width: 100%;
     position: relative;
     transition: all .4s ease;
     border: 2px solid transparent;
     background-image: linear-gradient(#ffffff, #ffffff), var(--grad-line);
     background-origin: border-box;
     background-clip: padding-box, border-box;
     box-shadow: 0 10px 30px -5px rgba(45, 104, 196, .1);
 }

 .timeline-content::after {
     content: '';
     position: absolute;
     top: 50%;
     width: 12px;
     height: 12px;
     background: #ffffff;
     transform: translateY(-50%) rotate(45deg);
     transition: background-color .4s ease;
 }

 .timeline-item:nth-child(odd) .timeline-content::after {
     right: -6px;
     border-top: 1px solid transparent;
     border-right: 1px solid transparent;
 }

 .timeline-item:nth-child(even) .timeline-content::after {
     left: -6px;
     border-bottom: 1px solid transparent;
     border-left: 1px solid transparent;
 }

 .timeline-year {
     font-family: var(--font-montserrat);
     font-weight: 800;
     font-size: 32px;
     color: var(--primary-blue);
     display: block;
     margin-bottom: 5px;
     line-height: 1;
 }

 .timeline-content p {
     font-family: var(--font-inter);
     font-size: 16px;
     line-height: 1.5;
     color: #555;
     margin: 0;
     font-weight: 500;
 }

 .timeline-item:hover .timeline-content {
     transform: translateY(-5px);
     background-image: none;
     background-color: var(--primary-blue);
     border-color: var(--primary-blue);
     box-shadow: 0 15px 30px rgba(45, 104, 196, .3);
 }

 .timeline-item:hover .timeline-content::after {
     background-color: var(--primary-blue);
 }

 .timeline-item:hover .timeline-year {
     color: var(--primary-yellow);
 }

 .timeline-item:hover .timeline-content p,
 .timeline-item:hover .timeline-content span {
     color: white !important;
 }

 .timeline-item:hover .timeline-dot {
     transform: scale(1.3);
     background-color: var(--primary-yellow);
     border-color: var(--primary-blue);
     box-shadow: 0 0 15px rgba(244, 184, 0, .5);
 }

 @media (max-width: 768px) {
     .timeline-wrapper::before {
         left: 24px;
     }

     .timeline-item {
         width: 100%;
         padding-left: 60px !important;
         padding-right: 0 !important;
         text-align: left !important;
         margin-left: 0 !important;
     }

     .timeline-item:nth-child(odd),
     .timeline-item:nth-child(even) {
         justify-content: flex-start;
     }

     .timeline-item:nth-child(odd) .timeline-dot,
     .timeline-item:nth-child(even) .timeline-dot {
         left: 12px;
         right: auto;
     }

     .timeline-item:nth-child(odd) .timeline-content::after,
     .timeline-item:nth-child(even) .timeline-content::after {
         left: -6px;
         right: auto;
         border-bottom: 1px solid transparent;
         border-left: 1px solid transparent;
         border-top: none;
         border-right: none;
     }
 }

 @media (max-width: 576px) {
     .lycon-title {
         font-size: 28px;
     }

     .about-profile-section {
         padding: 60px 0;
     }

     .stats-section {
         padding: 50px 0;
     }

     .vision-mission-section {
         padding: 60px 0;
     }

     .timeline-section {
         padding: 60px 0;
     }

     .stat-item {
         padding: 28px 16px;
     }

     .stat-item h3 {
         font-size: 36px;
     }
 }