/*==================================================
DeRE-Indonesia
Style CSS
Part 4A
==================================================*/

/*==================================================
ROOT
==================================================*/

:root{

/* Primary */

--primary-900:#0F3D91;
--primary-800:#1D4ED8;
--primary-700:#2563EB;
--primary-500:#60A5FA;

/* Secondary */

--secondary-500:#14B8A6;
--accent-500:#F59E0B;
--success-500:#10B981;

/* Background */

--bg-1:#DCEEFF;
--bg-2:#E7F3FF;
--bg-3:#EEF7FF;
--bg-4:#F7FBFF;

/* Text */

--text-heading:#0F3D91;
--text-primary:#4B5563;
--text-secondary:#3E5C76;
--text-muted:#64748B;

/* Glass */

--glass-bg:rgba(255,255,255,.18);
--glass-border:rgba(255,255,255,.30);
--glass-highlight:rgba(255,255,255,.40);

/* Blob */

--blob-blue:rgba(37,99,235,.35);
--blob-teal:rgba(20,184,166,.25);

/* Neutral */

--white:#ffffff;

--shadow:
0 10px 30px rgba(15,61,145,.10);

--radius:24px;

--transition:.35s ease;

}

/*==================================================
RESET
==================================================*/

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{

scroll-behavior:smooth;
scroll-padding-top:90px;

}

body{

font-family:'Poppins',sans-serif;

background:
linear-gradient(
135deg,
var(--bg-1),
var(--bg-2),
var(--bg-3),
var(--bg-4));

background-attachment:fixed;

color:var(--text-primary);

line-height:1.8;

overflow-x:hidden;

}

img{

max-width:100%;

display:block;

}

a{

text-decoration:none;

color:inherit;

}

ul{

list-style:none;

}

table{

border-collapse:collapse;

width:100%;

}

button{

font-family:inherit;

cursor:pointer;

}

/*==================================================
SCROLLBAR
==================================================*/

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#ececec;

}

::-webkit-scrollbar-thumb{

background:var(--primary-700);

border-radius:50px;

}

::-webkit-scrollbar-thumb:hover{

background:var(--primary-900);

}

/*==================================================
TYPOGRAPHY
==================================================*/

h1,h2,h3,h4{

color:var(--text-heading);

font-weight:700;

line-height:1.3;

}

p{

color:var(--text-primary);

}

.section-title{

text-align:center;

margin-bottom:60px;

}

.section-title span{

display:inline-block;

padding:8px 20px;

background:rgba(255,255,255,.55);

border-radius:40px;

color:var(--primary-700);

font-size:.9rem;

font-weight:600;

margin-bottom:20px;

backdrop-filter:blur(10px);

}

.section-title h2{

font-size:2.3rem;

max-width:700px;

margin:auto;

}

/*==================================================
LAYOUT
==================================================*/

.container{

width:min(1200px,92%);

margin:auto;

}

.section{

padding:110px 0;

position:relative;

}

.bg-soft{

background:rgba(255,255,255,.12);

backdrop-filter:blur(8px);

}

/*==================================================
GLASS
==================================================*/

.glass{

background:var(--glass-bg);

border:1px solid var(--glass-border);

backdrop-filter:blur(20px);

-webkit-backdrop-filter:blur(20px);

border-radius:var(--radius);

box-shadow:var(--shadow);

padding:35px;

position:relative;

overflow:hidden;

}

.glass::before{

content:"";

position:absolute;

top:0;

left:0;

width:100%;

height:1px;

background:var(--glass-highlight);

}

/*==================================================
BUTTON
==================================================*/

.btn-primary{

display:inline-flex;

align-items:center;

justify-content:center;

padding:15px 34px;

background:

linear-gradient(
135deg,
var(--primary-700),
var(--primary-500));

color:#fff;

border-radius:60px;

font-weight:600;

transition:var(--transition);

box-shadow:

0 10px 25px rgba(37,99,235,.35);

}

.btn-primary:hover{

transform:translateY(-4px);

box-shadow:

0 15px 35px rgba(37,99,235,.45);

}

.btn-outline{

display:inline-flex;

align-items:center;

justify-content:center;

padding:15px 34px;

border-radius:60px;

border:2px solid var(--primary-700);

color:var(--primary-700);

font-weight:600;

transition:var(--transition);

background:rgba(255,255,255,.30);

}

.btn-outline:hover{

background:var(--primary-700);

color:#fff;

}

/*==================================================
HEADER
==================================================*/

#header{

position:fixed;

top:0;

left:0;

width:100%;

z-index:9999;

transition:.35s;

}

#header.scrolled{

background:rgba(255,255,255,.70);

backdrop-filter:blur(18px);

box-shadow:

0 10px 30px rgba(0,0,0,.08);

}
/*==================================================
NAVBAR
==================================================*/

.navbar{

padding:18px 0;

}

.navbar .container{

display:flex;

align-items:center;

justify-content:space-between;

gap:30px;

}

.logo{

display:flex;

align-items:center;

gap:15px;

}

.logo img{

width:58px;

height:58px;

object-fit:contain;

}

.logo-text h3{

font-size:1.2rem;

margin-bottom:2px;

}

.logo-text span{

font-size:.82rem;

color:var(--text-muted);

}

.menu{

display:flex;

align-items:center;

gap:28px;

}

.menu a{

position:relative;

font-weight:500;

transition:var(--transition);

}

.menu a:hover{

color:var(--primary-700);

}

.menu a.active{

color:var(--primary-700);

}

.menu a::after{

content:"";

position:absolute;

left:0;

bottom:-8px;

width:0;

height:3px;

background:var(--secondary-500);

border-radius:50px;

transition:.3s;

}

.menu a:hover::after,

.menu a.active::after{

width:100%;

}

/*==================================================
MOBILE MENU
==================================================*/

.mobile-toggle{

display:none;

width:40px;

height:40px;

cursor:pointer;

}

.mobile-toggle span{

display:block;

height:3px;

margin:7px 0;

border-radius:50px;

background:var(--primary-900);

transition:.3s;

}

/*==================================================
BLOB
==================================================*/

.blob{

position:fixed;

border-radius:50%;

filter:blur(90px);

z-index:-1;

animation:blobMove 14s ease-in-out infinite;

}

.blob-one{

width:420px;

height:420px;

left:-120px;

top:-100px;

background:var(--blob-blue);

}

.blob-two{

width:360px;

height:360px;

right:-80px;

bottom:-80px;

background:var(--blob-teal);

animation-delay:4s;

}

@keyframes blobMove{

0%{

transform:translate(0,0) scale(1);

}

25%{

transform:translate(60px,-40px) scale(1.08);

}

50%{

transform:translate(-40px,50px) scale(.92);

}

75%{

transform:translate(30px,-20px) scale(1.05);

}

100%{

transform:translate(0,0) scale(1);

}

}

/*==================================================
HELPER
==================================================*/

.text-center{

text-align:center;

}

.mt-20{

margin-top:20px;

}

.mt-30{

margin-top:30px;

}

.mt-40{

margin-top:40px;

}

.mt-60{

margin-top:60px;

}

.mb-20{

margin-bottom:20px;

}

.mb-40{

margin-bottom:40px;

}

.w-100{

width:100%;

}

.d-flex{

display:flex;

}

.align-center{

align-items:center;

}

.justify-center{

justify-content:center;

}

/*==================================================
HERO
==================================================*/

.hero{

min-height:100vh;

display:flex;

align-items:center;

padding-top:140px;

position:relative;

}

.hero-grid{

display:grid;

grid-template-columns:1.1fr .9fr;

gap:70px;

align-items:center;

}

.hero-content h1{

font-size:3.6rem;

line-height:1.15;

margin:25px 0;

}

.hero-content h1 span{

display:block;

background:linear-gradient(
135deg,
var(--primary-700),
var(--secondary-500));

-webkit-background-clip:text;
-webkit-text-fill-color:transparent;

}

.hero-content p{

font-size:1.08rem;

max-width:620px;

margin-bottom:35px;

color:var(--text-secondary);

}

.badge{

display:inline-flex;

align-items:center;

gap:8px;

padding:10px 22px;

border-radius:50px;

background:rgba(255,255,255,.35);

border:1px solid rgba(255,255,255,.45);

backdrop-filter:blur(15px);

font-size:.9rem;

font-weight:600;

color:var(--primary-700);

}

.hero-button{

display:flex;

gap:18px;

margin-bottom:55px;

flex-wrap:wrap;

}

.hero-stat{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:25px;

}

.hero-stat div{

background:rgba(255,255,255,.22);

border:1px solid rgba(255,255,255,.28);

padding:22px;

border-radius:20px;

backdrop-filter:blur(16px);

text-align:center;

transition:var(--transition);

}

.hero-stat div:hover{

transform:translateY(-8px);

}

.hero-stat h2{

font-size:2rem;

color:var(--primary-700);

margin-bottom:5px;

}

.hero-stat p{

margin:0;

font-size:.9rem;

color:var(--text-muted);

}

.hero-image{

position:relative;

}

.hero-image img{

width:100%;

border-radius:32px;

box-shadow:

0 25px 60px rgba(15,61,145,.18);

animation:floating 5s ease-in-out infinite;

}

@keyframes floating{

0%{

transform:translateY(0);

}

50%{

transform:translateY(-18px);

}

100%{

transform:translateY(0);

}

}
/*==================================================
ABOUT
==================================================*/

#about .glass{

margin-bottom:50px;

}

#about .glass p{

margin-bottom:22px;

font-size:1.03rem;

}

#about .glass p:last-child{

margin-bottom:0;

}

/*==================================================
FEATURE GRID
==================================================*/

.feature-grid{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:28px;

}

.feature-card{

padding:35px;

border-radius:24px;

background:rgba(255,255,255,.18);

border:1px solid rgba(255,255,255,.30);

backdrop-filter:blur(18px);

transition:var(--transition);

text-align:center;

box-shadow:var(--shadow);

}

.feature-card:hover{

transform:translateY(-10px);

}

.feature-card .icon{

font-size:3rem;

margin-bottom:18px;

}

.feature-card h3{

margin-bottom:12px;

font-size:1.3rem;

}

.feature-card p{

font-size:.96rem;

}

/*==================================================
INFO GRID
==================================================*/

.info-grid{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:35px;

}

.info-card h3{

margin-bottom:25px;

font-size:1.4rem;

}

.info-table th{

width:180px;

padding:14px 0;

text-align:left;

vertical-align:top;

font-weight:600;

color:var(--primary-700);

}

.info-table td{

padding:14px 0;

color:var(--text-primary);

}

.info-table tr{

border-bottom:1px solid rgba(255,255,255,.25);

}

.office{

margin-bottom:30px;

}

.office:last-child{

margin-bottom:0;

}

.office h4{

margin-bottom:8px;

color:var(--primary-700);

}

.office p{

line-height:1.8;

}

/*==================================================
VISION
==================================================*/

.big-card{

text-align:center;

max-width:900px;

margin:auto;

padding:70px;

}

.icon-lg{

font-size:4rem;

margin-bottom:25px;

}

.big-card p{

font-size:1.15rem;

line-height:2;

}

/*==================================================
MISSION
==================================================*/

.mission-grid{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:28px;

}

.mission-card{

position:relative;

padding:35px;

}

.mission-card span{

position:absolute;

top:25px;

right:25px;

font-size:2.5rem;

font-weight:700;

color:rgba(37,99,235,.15);

}

.mission-card p{

padding-right:45px;

}

/*==================================================
VALUE
==================================================*/

.value-grid{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:28px;

}

.value-card{

text-align:center;

transition:var(--transition);

}

.value-card:hover{

transform:translateY(-8px);

}

.value-card h3{

margin-bottom:15px;

font-size:1.25rem;

}

/*==================================================
CHECK LIST
==================================================*/

.check-list{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:18px 35px;

}

.check-list li{

position:relative;

padding-left:36px;

font-size:1rem;

}

.check-list li::before{

content:"✓";

position:absolute;

left:0;

top:0;

width:24px;

height:24px;

display:flex;

align-items:center;

justify-content:center;

background:linear-gradient(
135deg,
var(--success-500),
#34D399);

color:#fff;

font-size:.8rem;

border-radius:50%;

box-shadow:

0 6px 16px rgba(16,185,129,.25);

}

/*==================================================
SECTION DECORATION
==================================================*/

.section::after{

content:"";

position:absolute;

left:50%;

bottom:0;

transform:translateX(-50%);

width:140px;

height:4px;

border-radius:50px;

background:linear-gradient(
90deg,
transparent,
var(--secondary-500),
transparent);

opacity:.25;

}

/*==================================================
REVEAL ANIMATION
==================================================*/

.reveal{

opacity:0;

transform:translateY(60px);

transition:1s;

}

.reveal.active{

opacity:1;

transform:translateY(0);

}
/*==================================================
PROGRAM
==================================================*/

.program-grid{

display:grid;

grid-template-columns:repeat(2,1fr);

gap:30px;

}

.program-card{

position:relative;

padding:40px;

transition:var(--transition);

overflow:hidden;

}

.program-card:hover{

transform:translateY(-10px);

}

.program-icon{

width:72px;

height:72px;

border-radius:20px;

display:flex;

align-items:center;

justify-content:center;

font-size:2rem;

margin-bottom:22px;

background:linear-gradient(
135deg,
var(--primary-700),
var(--secondary-500));

color:#fff;

box-shadow:0 10px 25px rgba(37,99,235,.25);

}

.program-card h3{

margin-bottom:16px;

font-size:1.35rem;

}

.program-card p{

line-height:1.9;

}

/*==================================================
TIMELINE
==================================================*/

.timeline{

position:relative;

max-width:900px;

margin:auto;

padding-left:40px;

}

.timeline::before{

content:"";

position:absolute;

left:15px;

top:0;

bottom:0;

width:4px;

background:linear-gradient(
180deg,
var(--primary-700),
var(--secondary-500));

border-radius:10px;

}

.timeline-item{

position:relative;

margin-bottom:35px;

}

.timeline-item:last-child{

margin-bottom:0;

}

.timeline-item::before{

content:"";

position:absolute;

left:-37px;

top:35px;

width:18px;

height:18px;

border-radius:50%;

background:var(--secondary-500);

border:4px solid #fff;

box-shadow:0 0 0 6px rgba(20,184,166,.20);

}

.timeline-item h3{

margin-bottom:12px;

}

/*==================================================
PRIORITY
==================================================*/

#priority .feature-card{

min-height:230px;

display:flex;

flex-direction:column;

justify-content:center;

}

/*==================================================
TEAM
==================================================*/

.team-grid{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:30px;

margin-bottom:40px;

}

.team-card{

text-align:center;

transition:var(--transition);

}

.team-card:hover{

transform:translateY(-10px);

}

.team-card img{

width:170px;

height:170px;

margin:auto;

margin-bottom:25px;

border-radius:50%;

object-fit:cover;

border:6px solid rgba(255,255,255,.50);

box-shadow:0 12px 30px rgba(0,0,0,.12);

}

.team-card h3{

font-size:1.2rem;

margin-bottom:8px;

}

.team-card span{

display:inline-block;

padding:8px 18px;

border-radius:30px;

background:rgba(37,99,235,.12);

color:var(--primary-700);

font-size:.9rem;

font-weight:600;

}

/*==================================================
PARTNER
==================================================*/

.partner-grid{

display:grid;

grid-template-columns:repeat(6,1fr);

gap:22px;

align-items:center;

}

.partner-card{

padding:30px;

display:flex;

align-items:center;

justify-content:center;

min-height:150px;

transition:var(--transition);

}

.partner-card:hover{

transform:translateY(-8px);

}

.partner-card img{

max-width:100%;

max-height:70px;

object-fit:contain;

filter:grayscale(100%);

opacity:.8;

transition:.35s;

}

.partner-card:hover img{

filter:none;

opacity:1;

}

/*==================================================
GALLERY
==================================================*/

.gallery-grid{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:22px;

}

.gallery-item{

position:relative;

overflow:hidden;

border-radius:24px;

box-shadow:var(--shadow);

}

.gallery-item img{

width:100%;

height:280px;

object-fit:cover;

transition:.45s;

display:block;

}

.gallery-item::after{

content:"";

position:absolute;

inset:0;

background:linear-gradient(
180deg,
transparent,
rgba(15,61,145,.65));

opacity:0;

transition:.35s;

}

.gallery-item:hover img{

transform:scale(1.08);

}

.gallery-item:hover::after{

opacity:1;

}
/*==================================================
CONTACT
==================================================*/

.contact-grid{

display:grid;

grid-template-columns:420px 1fr;

gap:35px;

}

.contact-card{

height:100%;

}

.contact-card h3{

margin-bottom:12px;

font-size:1.15rem;

}

.contact-card p{

margin-bottom:12px;

}

.contact-card hr{

margin:22px 0;

border:none;

height:1px;

background:rgba(255,255,255,.30);

}

.contact-card iframe{

width:100%;

height:100%;

min-height:460px;

border:none;

border-radius:20px;

}

/*==================================================
FOOTER
==================================================*/

footer{

padding:60px 0;

background:rgba(15,61,145,.92);

color:#fff;

margin-top:80px;

}

.footer-content{

display:flex;

justify-content:space-between;

align-items:center;

gap:40px;

flex-wrap:wrap;

}

.footer-content h3{

color:#fff;

margin-bottom:10px;

}

.footer-content p{

color:rgba(255,255,255,.82);

}

.footer-content strong{

color:#fff;

}

/*==================================================
HOVER EFFECT
==================================================*/

.glass,
.feature-card,
.program-card,
.team-card,
.partner-card,
.gallery-item{

transition:all .35s ease;

}

.glass:hover{

box-shadow:
0 18px 40px rgba(15,61,145,.14);

}

/*==================================================
FADE ANIMATION
==================================================*/

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(40px);

}

to{

opacity:1;

transform:translateY(0);

}

}

.section{

animation:fadeUp .8s ease both;

}

/*==================================================
RESPONSIVE
==================================================*/

/*==========================
Laptop
==========================*/

@media (max-width:1200px){

.hero-grid{

grid-template-columns:1fr;

text-align:center;

}

.hero-content p{

margin-left:auto;
margin-right:auto;

}

.hero-button{

justify-content:center;

}

.hero-stat{

max-width:700px;

margin:auto;

}

.info-grid{

grid-template-columns:1fr;

}

.contact-grid{

grid-template-columns:1fr;

}

}

/*==========================
Tablet
==========================*/

@media (max-width:992px){

.section{

padding:90px 0;

}

.section-title h2{

font-size:2rem;

}

.hero{

padding-top:140px;

}

.hero-content h1{

font-size:2.8rem;

}

.feature-grid{

grid-template-columns:repeat(2,1fr);

}

.value-grid{

grid-template-columns:repeat(2,1fr);

}

.program-grid{

grid-template-columns:1fr;

}

.team-grid{

grid-template-columns:repeat(2,1fr);

}

.partner-grid{

grid-template-columns:repeat(3,1fr);

}

.gallery-grid{

grid-template-columns:repeat(2,1fr);

}

.check-list{

grid-template-columns:1fr;

}

.mission-grid{

grid-template-columns:1fr;

}

.big-card{

padding:50px;

}

}

/*==========================
Mobile
==========================*/

@media (max-width:768px){

.logo-text{

display:none;

}

.mobile-toggle{

display:block;

position:relative;

z-index:10001;

}

.menu{

position:fixed;

top:82px;

left:-100%;

width:100%;

height:calc(100vh - 82px);

background:rgba(255,255,255,.95);

backdrop-filter:blur(20px);

display:flex;

flex-direction:column;

justify-content:flex-start;

padding-top:50px;

gap:25px;

transition:.35s;

}

.menu.show{

left:0;

}

.menu a{

font-size:1.05rem;

}

.hero-content h1{

font-size:2.2rem;

}

.hero-content p{

font-size:1rem;

}

.hero-button{

flex-direction:column;

align-items:center;

}

.hero-button a{

width:240px;

}

.hero-stat{

grid-template-columns:1fr;

}

.feature-grid{

grid-template-columns:1fr;

}

.value-grid{

grid-template-columns:1fr;

}

.team-grid{

grid-template-columns:1fr;

}

.partner-grid{

grid-template-columns:repeat(2,1fr);

}

.gallery-grid{

grid-template-columns:1fr;

}

.info-table th{

display:block;

width:100%;

padding-bottom:4px;

}

.info-table td{

display:block;

padding-top:0;

padding-bottom:18px;

}

.big-card{

padding:35px;

}

.big-card p{

font-size:1rem;

}

.contact-card iframe{

min-height:320px;

}

.footer-content{

flex-direction:column;

text-align:center;

}

}

/*==========================
Small Mobile
==========================*/

@media (max-width:480px){

.container{

width:92%;

}

.section{

padding:70px 0;

}

.section-title{

margin-bottom:40px;

}

.section-title h2{

font-size:1.7rem;

}

.badge{

font-size:.8rem;

padding:8px 18px;

}

.hero-content h1{

font-size:1.9rem;

}

.hero-stat h2{

font-size:1.6rem;

}

.glass{

padding:25px;

}

.program-icon{

width:60px;

height:60px;

font-size:1.6rem;

}

.partner-grid{

grid-template-columns:1fr;

}

.gallery-item img{

height:220px;

}

}

/*==================================================
BACK TO TOP
==================================================*/

.back-to-top{

position:fixed;

right:25px;

bottom:25px;

width:52px;

height:52px;

display:flex;

align-items:center;

justify-content:center;

border-radius:50%;

background:linear-gradient(
135deg,
var(--primary-700),
var(--secondary-500));

color:#fff;

font-size:1.2rem;

cursor:pointer;

box-shadow:0 15px 30px rgba(37,99,235,.30);

opacity:0;

visibility:hidden;

transition:.35s;

z-index:999;

}

.back-to-top.show{

opacity:1;

visibility:visible;

transform:translateY(0);

}

.back-to-top:hover{

transform:translateY(-6px);

}

/*==================================================
SELECTION
==================================================*/

::selection{

background:var(--primary-700);

color:#fff;

}

/*==================================================
FOCUS
==================================================*/

a:focus,
button:focus{

outline:none;

box-shadow:
0 0 0 4px rgba(37,99,235,.25);

border-radius:10px;

}

/*==================================================
IMAGE
==================================================*/

img{

user-select:none;

-webkit-user-drag:none;

}

/*==================================================
PRINT
==================================================*/

@media print{

header,
footer,
.mobile-toggle,
.back-to-top{

display:none !important;

}

body{

background:#fff;

color:#000;

}

.glass{

background:#fff;

border:1px solid #ddd;

box-shadow:none;

}

.section{

padding:25px 0;

page-break-inside:avoid;

}

}

/*==================================================
END
==================================================*/