/* Poppins di-host sendiri (dulu dari Google Fonts): tidak ada request ke domain lain sebelum teks tampil */
@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/poppins-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/poppins-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Poppins;font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/poppins-800-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Poppins;font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/poppins-800-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Font cadangan selagi Poppins diunduh: Arial disetel ke ukuran Poppins supaya teks tidak "loncat" saat font asli tampil */
@font-face{font-family:"Poppins Fallback";src:local("Arial"),local("Helvetica Neue"),local("Liberation Sans");ascent-override:93.62%;descent-override:31.21%;line-gap-override:8.92%;size-adjust:112.16%}
:root{
  --navy:#16245e; --navy2:#0f1a4a; --blue:#043389; --blue-l:#1d3a8f;
  --yellow:#ffd527; --red:#d41224; --green:#009b01; --green-d:#008a01; /* hijau sedikit lebih gelap untuk teks/tombol: kontras teks putih cukup (WCAG AA) */ --mist:#c8d0f0;
  --ink:#121c45; --muted:#5a6488; --bg:#ffffff; --soft:#f3f5fc; --line:#e3e7f5;
  --r:22px; --wrap:1200px;
  --gutter:24px; /* margin kiri-kanan isi: lebih lega di tablet, lihat media query di bawah */
  --sec:96px; /* jarak atas-bawah section, mengecil di tablet & HP */
  --head:52px; /* jarak judul section ke isi */
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Poppins,"Poppins Fallback",system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;font-size:16px;overflow-x:hidden}
img{max-width:100%;display:block}
/* gambar yang punya atribut width/height tetap proporsional; :where() supaya aturan ukuran lain tetap menang */
:where(img[width][height]){height:auto}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
/* tablet (iPad potret & lanskap): isi jangan mepet tepi layar */
@media (min-width:561px) and (max-width:900px){:root{--gutter:40px}}
@media (min-width:901px) and (max-width:1279px){:root{--gutter:56px}}
@media (min-width:901px) and (max-width:1279px){.hero .stats{gap:24px;flex-wrap:nowrap}}
.proto{position:fixed;left:12px;bottom:12px;z-index:99;background:#121c45;color:#fff;font-size:12px;padding:6px 12px;border-radius:99px;opacity:.85}

/* topbar */
.topbar{background:var(--navy2);color:var(--mist);font-size:13px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:38px;gap:16px}
.topbar a{display:inline-flex;align-items:center;gap:6px;color:#fff}
.topbar .l{display:flex;gap:22px}
.topbar svg{width:15px;height:15px}
.trico{display:flex;height:4px}.trico i{flex:1}.trico i:nth-child(1){background:var(--blue)}.trico i:nth-child(2){background:#fff}.trico i:nth-child(3){background:var(--red)}

/* nav */
header.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;gap:14px}
.nav .menu{margin-left:auto}
.nav .logo{flex:none}
.nav .logo img{height:42px;width:auto}
.menu{display:flex;gap:2px;align-items:center;list-style:none;white-space:nowrap}
.menu a{font-size:14.5px;font-weight:500;padding:8px 11px;border-radius:10px;color:var(--ink)}
.menu a:hover{background:var(--soft);color:var(--blue)}
.menu a.on{color:var(--blue);font-weight:700}
.menu .dd{position:relative}
.menu .dd>a:after{content:"";display:inline-block;margin-left:6px;border:4px solid transparent;border-top-color:currentColor;transform:translateY(2px)}
.menu .sub{position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(18,28,69,.12);padding:8px;min-width:250px;display:none;list-style:none}
.menu .dd:hover .sub{display:block}
.menu .sub a{display:block}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;border-radius:999px;padding:14px 26px;font-size:15px;transition:transform .15s,box-shadow .15s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn svg{width:20px;height:20px}
.btn-green{background:var(--green-d);color:#fff;box-shadow:0 10px 24px rgba(0,155,1,.28)}
.btn-yellow{background:var(--yellow);color:var(--navy)}
.btn-ghost{border:2px solid rgba(255,255,255,.5);color:#fff}
.btn-navy{background:var(--navy);color:#fff}
.btn-sm{padding:10px 18px;font-size:14px}
.burger{display:none;background:none;border:0;width:44px;height:44px;border-radius:12px;cursor:pointer}
.burger span{display:block;width:22px;height:2.5px;background:var(--navy);margin:5px auto;border-radius:2px}

/* hero */
.hero{position:relative;background:radial-gradient(120% 120% at 20% 10%,var(--blue-l) 0%,var(--navy) 45%,var(--navy2) 100%);color:#fff;overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.13) 1.5px,transparent 1.6px);background-size:36px 36px;mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.2) 70%)}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center;padding-top:88px;padding-bottom:88px}
.pill{display:inline-flex;align-items:center;gap:8px;background:var(--yellow);color:var(--navy);font-weight:800;font-size:13px;letter-spacing:.04em;padding:8px 18px;border-radius:999px;text-transform:uppercase}
.hero h1{font-size:clamp(36px,5.2vw,62px);line-height:1.12;font-weight:400;margin:22px 0 20px;letter-spacing:-.01em}
.hero h1 b{font-weight:800}
.hl{color:var(--yellow)}
.hl-pill{display:inline-block;background:var(--yellow);color:var(--navy);padding:0 16px;border-radius:14px;transform:rotate(-2deg)}
.hero p.lead{font-size:18px;color:var(--mist);max-width:540px}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.stats{display:flex;gap:36px;margin-top:44px;flex-wrap:wrap}
.stats div{min-width:110px}
.stats b{display:block;font-size:34px;font-weight:800;color:var(--yellow);line-height:1.1}
.stats span{font-size:13.5px;color:var(--mist)}
.stats .nw{font-style:normal;white-space:nowrap}
.hero-art{position:relative;height:520px}
.hero-art .ph{position:absolute;border-radius:28px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.35);border:5px solid #fff}
.hero-art .ph img{width:100%;height:100%;object-fit:cover}
.hero-art .p1{width:64%;height:78%;right:0;top:0;transform:rotate(3deg)}
.hero-art .p2{width:52%;height:52%;left:0;bottom:0;transform:rotate(-4deg)}
/* crop foto kolase hero: p1 digeser ke kiri biar rombongan di tengah, p2 di-zoom ke rombongan siswa */
.hero-art .p1 img{transform:scale(1.14);transform-origin:0 45%}
.hero-art .p2 img{transform:scale(1.5);transform-origin:44% 72%}
.flag{position:absolute;width:118px;height:79px;border-radius:12px;overflow:hidden;display:flex;border:3px solid #fff;box-shadow:0 14px 28px rgba(0,0,0,.35);transform:rotate(-8deg);left:6%;top:6%}
.flag i{flex:1}.flag i:nth-child(1){background:#002395}.flag i:nth-child(2){background:#fff}.flag i:nth-child(3){background:#ed2939}
.badge-float{position:absolute;right:-6px;bottom:22px;background:#fff;color:var(--ink);border-radius:18px;padding:12px 16px;display:flex;gap:12px;align-items:center;box-shadow:0 18px 40px rgba(0,0,0,.25);font-size:13.5px;line-height:1.35}
.badge-float b{font-size:15px}
.badge-float .ic{width:42px;height:42px;border-radius:12px;background:var(--green);display:grid;place-items:center;color:#fff;flex:none}
.spark{position:absolute;color:var(--yellow)}
.spark svg{width:100%;height:100%}

/* sections */
section{padding:var(--sec) 0}
.sec-head{text-align:center;max-width:760px;margin:0 auto var(--head)}
.eyebrow{display:inline-block;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
h2{font-size:clamp(28px,3.6vw,44px);line-height:1.18;font-weight:400;letter-spacing:-.01em;text-wrap:balance}
h2 b{font-weight:800}
h2 .mark{display:inline-block;background:var(--yellow);color:var(--navy);padding:0 .3em;border-radius:.32em;transform:rotate(-2deg);line-height:1.25;margin:.04em 0}
.sec-head p{color:var(--muted);margin-top:14px;font-size:17px;text-wrap:balance}

/* partner strip */
.partners{padding:40px 0;border-bottom:1px solid var(--line)}
.partners p{text-align:center;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:22px}
.logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:24px 30px}
.logos img{height:40px;width:auto;max-width:150px;object-fit:contain;transition:.2s}
.logos img:hover{transform:scale(1.05)}
.logos img.sq{height:50px}
.logos img.tall{height:60px}
.logos img.slim{height:21px}

/* services */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:34px 30px;box-shadow:0 14px 40px rgba(18,28,69,.07);position:relative;display:flex;flex-direction:column}
.card .tag{position:absolute;top:-14px;left:28px;background:var(--red);color:#fff;font-size:12px;font-weight:800;letter-spacing:.05em;padding:5px 14px;border-radius:999px;text-transform:uppercase}
.ico{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;margin-bottom:20px}
.ico svg{width:30px;height:30px}
.i-red{background:#fde7ea;color:var(--red)} .i-green{background:#e2f5e2;color:var(--green)} .i-navy{background:#e6eaf8;color:var(--blue)} .i-yellow{background:#fff6cc;color:#b48a00}
.card h3{font-size:22px;font-weight:700;line-height:1.3;margin-bottom:10px}
.svc .card h3{min-height:2.6em}
.card p{color:var(--muted);font-size:15px}
.card ul{list-style:none;margin:18px 0 24px;display:grid;gap:9px}
.card li{display:flex;gap:10px;font-size:14.5px}
.card li:before{content:"";flex:none;width:20px;height:20px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center/12px no-repeat;margin-top:2px}
.card .more{margin-top:auto;font-weight:700;color:var(--blue);display:inline-flex;gap:8px;align-items:center}
.card .more:after{content:"→";transition:.2s}
.card:hover .more:after{transform:translateX(4px)}

/* journey */
.journey{background:var(--soft)}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;counter-reset:s;position:relative}
.steps:before{content:"";position:absolute;top:34px;left:10%;right:10%;height:3px;background:repeating-linear-gradient(90deg,var(--mist) 0 10px,transparent 10px 18px)}
.step{text-align:center;position:relative}
.step .n{width:68px;height:68px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;background:#fff;border:3px solid var(--navy);font-weight:800;font-size:24px;color:var(--navy);position:relative;z-index:1}
.step:last-child .n{background:var(--yellow);border-color:var(--yellow)}
.step h3,.step h4{font-size:17px;font-weight:700;margin-bottom:6px}
.step p{font-size:14px;color:var(--muted)}

/* why + chart */
.why .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.why h2{margin-bottom:18px}
.why .lead{color:var(--muted);margin-bottom:28px}
.reasons{display:grid;gap:18px}
.reason{display:flex;gap:16px;align-items:flex-start}
.reason .ico{margin:0;width:50px;height:50px;flex:none;border-radius:14px}
.reason .ico svg{width:24px;height:24px}
.reason h3,.reason h4{font-size:17px;font-weight:700}
.reason p{font-size:14.5px;color:var(--muted)}
.chartcard{background:linear-gradient(160deg,var(--navy) 0%,var(--navy2) 100%);color:#fff;border-radius:28px;padding:36px;position:relative;overflow:hidden}
.chartcard:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.1) 1.4px,transparent 1.5px);background-size:30px 30px}
.chartcard>*{position:relative}
.chartcard h3{font-size:15px;font-weight:600;color:var(--mist)}
.chartcard .big{font-size:56px;font-weight:800;color:var(--yellow);line-height:1.1}
.chartcard .sub{font-size:14px;color:var(--mist)}
.bars{display:flex;align-items:flex-end;gap:12px;height:220px;margin-top:30px;border-bottom:1px solid rgba(255,255,255,.2)}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.bar i{display:block;width:100%;max-width:46px;border-radius:10px 10px 4px 4px;background:var(--mist);opacity:.55}
.bar.top i{background:var(--yellow);opacity:1}
.bar b{font-size:14px;margin-bottom:6px}
.yrs{display:flex;gap:12px;margin-top:8px}
.yrs span{flex:1;text-align:center;font-size:12.5px;color:var(--mist)}
.chartcard small{display:block;margin-top:16px;font-size:12px;color:var(--mist);opacity:.8}

/* campus */
.camp{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cc{border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 14px 36px rgba(18,28,69,.07);transition:.2s}
.cc:hover{transform:translateY(-4px);box-shadow:0 22px 46px rgba(18,28,69,.13)}
.cc .im{height:200px;position:relative}
.cc .im img{width:100%;height:100%;object-fit:cover}
.cc .city{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.95);color:var(--navy);font-size:12.5px;font-weight:700;padding:5px 12px;border-radius:999px}
.cc .bd{padding:20px 22px 24px}
.cc h3,.cc h4{font-size:18px;font-weight:700;line-height:1.3}
.cc p{font-size:14px;color:var(--muted);margin-top:4px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.chips span{font-size:12px;font-weight:600;background:var(--soft);color:var(--blue);padding:4px 10px;border-radius:8px}
.center{text-align:center;margin-top:44px}
.dots{display:none}

/* testi */
.testi{background:var(--soft)}
.tgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.tgrid .tc p{font-size:16px}
.tc .who{gap:14px;align-items:flex-start}
.tc .who .av{width:56px;height:56px;border:3px solid var(--yellow)}
.tc .who span{display:block;line-height:1.45}
/* alumni berprestasi */
.alumni{margin-top:64px;background:radial-gradient(circle at 85% 10%,#21378c 0%,var(--navy) 45%,var(--navy2) 100%);border-radius:32px;padding:44px 40px;color:#fff;position:relative;overflow:hidden}
.alumni:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.08) 1.2px,transparent 1.3px);background-size:22px 22px;pointer-events:none}
.al-head{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:28px}
.al-head h3{font-size:34px;font-weight:400;line-height:1.15}
.al-head h3 b{font-weight:800}
.al-head .mark{color:var(--yellow)}
.al-head>div:first-child{flex:1}
.al-head p{max-width:520px;color:var(--mist);font-size:15px;margin-top:8px}
.al-stats{display:flex;gap:12px;flex:none}
.al-stats div{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:10px 16px}
.al-stats b{font-size:28px;font-weight:800;color:var(--yellow);line-height:1}
.al-stats span{font-size:12.5px;line-height:1.35;color:#fff}
.algrid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.al{background:#fff;color:var(--ink);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 18px 40px rgba(0,0,0,.18)}
.al .ph{aspect-ratio:4/3;background:var(--navy);overflow:hidden;margin:-1px -1px 0}
.al .ph img{width:100%;height:100%;object-fit:cover;object-position:center 25%;transform:scale(1.01)}
.al .bd{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.al-logo{margin-top:auto;padding-top:14px;border-top:1px dashed var(--line);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.al-logo img{height:40px;width:auto;max-width:100%;object-fit:contain;object-position:left center}
.al-logo img+img,.al-logo img:has(+img){height:34px;max-width:46%}
.al ul{margin-bottom:12px}
.al .bd>b{font-size:17px;line-height:1.3}
.al .badge{align-self:flex-start;max-width:100%;background:var(--yellow);color:var(--navy);font-size:12px;font-weight:700;padding:6px 12px;border-radius:10px;line-height:1.4;margin:2px 0}
.al .hl-line{font-size:13px;font-weight:600;color:var(--red)}
.al ul{list-style:none;display:flex;flex-direction:column;gap:6px;margin-top:4px}
.al li{font-size:13px;line-height:1.45;color:var(--muted);padding-left:30px;position:relative}
.al li i{position:absolute;left:0;top:1px;font-style:normal;font-size:10.5px;font-weight:800;color:var(--blue);background:var(--soft);border-radius:5px;padding:0 4px}
@media (max-width:1180px) and (min-width:901px){.algrid{grid-template-columns:repeat(2,1fr)}}
.tc{background:#fff;border-radius:var(--r);padding:32px;border:1px solid var(--line);position:relative;display:flex;flex-direction:column}
.tc .who{margin-top:auto}
.tc .q{font-size:64px;line-height:.6;color:var(--yellow);font-weight:800;font-family:Georgia,serif}
.tc p{font-size:15px;margin:18px 0 24px}
.who{display:flex;gap:12px;align-items:center}
.who .av{width:48px;height:48px;border-radius:50%;background:var(--mist);overflow:hidden;flex:none}
.who .av img{width:100%;height:100%;object-fit:cover}
.who .ini{display:grid;place-items:center;width:100%;height:100%;font-size:20px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--blue),var(--navy2))}
.who b{display:block;font-size:15px}
.who span{font-size:13px;color:var(--muted)}
.tc.photo{padding:0;overflow:hidden;min-height:340px;color:#fff;display:flex;flex-direction:row;align-items:flex-end}
.tc.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tc.photo:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(15,26,74,.92))}
.tc.photo .in{position:relative;z-index:1;padding:28px}
.tc.photo .in b{font-size:22px;display:block;line-height:1.3}
.tc.photo .in span{color:var(--mist);font-size:14px}
.ph-note{display:inline-block;align-self:flex-start;margin-top:14px;font-size:11.5px;background:#fff6cc;color:#7a5d00;padding:3px 8px;border-radius:6px;font-weight:600}

/* articles */
.agrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ac .im{height:190px;border-radius:18px;overflow:hidden}
.ac .im img{width:100%;height:100%;object-fit:cover;transition:.3s}
.ac:hover .im img{transform:scale(1.05)}
.ac .cat{font-size:12px;font-weight:800;color:var(--red);text-transform:uppercase;letter-spacing:.06em;margin-top:18px}
.ac h3,.ac h4{font-size:18px;font-weight:700;line-height:1.35;margin-top:6px}
.ac p{font-size:14px;color:var(--muted);margin-top:6px}

/* faq */
.faq .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.faq .sec-head{text-align:left;margin:0}
details{border:1px solid var(--line);border-radius:16px;padding:0 24px;margin-bottom:12px;background:#fff}
details[open]{border-color:var(--navy);box-shadow:0 10px 26px rgba(18,28,69,.08)}
summary{list-style:none;cursor:pointer;font-weight:600;font-size:16.5px;padding:20px 0;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";font-size:26px;line-height:1;color:var(--blue);font-weight:400;transition:.2s}
details[open] summary:after{transform:rotate(45deg)}
details p{padding:0 0 20px;color:var(--muted);font-size:15px}

/* cta band */
.band{padding:0 0 var(--sec)}
.band .box{background:radial-gradient(120% 140% at 0% 0%,var(--blue-l),var(--navy) 55%,var(--navy2));border-radius:32px;color:#fff;padding:64px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:32px;align-items:center;position:relative;overflow:hidden}
.band .box:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1.4px,transparent 1.5px);background-size:32px 32px}
.band .box>*{position:relative}
.band h2{color:#fff}
.band p{color:var(--mist);margin:14px 0 28px;font-size:17px}
.band .acts{display:flex;gap:14px;flex-wrap:wrap}
.band .coco{justify-self:center;width:230px;filter:drop-shadow(0 18px 30px rgba(0,0,0,.35))}

/* footer */
footer{background:var(--navy2);color:var(--mist);font-size:14.5px}
footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:40px;padding-top:72px;padding-bottom:56px}
footer .flogo{height:44px;width:auto;margin-bottom:18px}
footer h5,footer .fh{color:#fff;font-size:15px;font-weight:700;margin-bottom:16px;line-height:inherit;letter-spacing:normal;text-wrap:wrap}
footer ul{list-style:none;display:grid;gap:9px}
footer a:hover{color:var(--yellow)}
.ci{display:flex;gap:10px;margin-bottom:12px;align-items:flex-start}
.ci svg{width:18px;height:18px;flex:none;margin-top:3px;color:var(--yellow)}
.soc{display:flex;gap:10px;margin-top:20px}
.soc a{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.08);display:grid;place-items:center}
.soc a:hover{background:var(--yellow);color:var(--navy)}
.soc svg{width:19px;height:19px}
.legal{border-top:1px solid rgba(255,255,255,.1)}
.legal .wrap{display:flex;justify-content:space-between;padding-top:20px;padding-bottom:20px;font-size:13px;grid-template-columns:none;gap:16px;flex-wrap:wrap}
.legal b{color:var(--yellow)}

.wa-float{position:fixed;right:22px;bottom:22px;z-index:60;width:62px;height:62px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 12px 30px rgba(0,0,0,.25);color:#fff}
.wa-float svg{width:32px;height:32px}


/* ===== Halaman dalam (Layanan dst.) ===== */
.soft{background:var(--soft)}
.phero{position:relative;background:radial-gradient(120% 140% at 15% 0%,var(--blue-l) 0%,var(--navy) 50%,var(--navy2) 100%);color:#fff;overflow:hidden;padding:64px 0 72px}
.phero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.13) 1.5px,transparent 1.6px);background-size:36px 36px;mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.2) 75%)}
.phero .wrap{position:relative}
.crumb{font-size:13.5px;color:var(--mist);display:flex;gap:8px;margin-bottom:18px}
.crumb a{color:#fff;font-weight:600}
.phero h1{font-size:clamp(34px,4.6vw,56px);line-height:1.12;font-weight:400;letter-spacing:-.01em}
.phero h1 b{font-weight:800;color:var(--yellow)}
.phero .lead{font-size:18px;color:var(--mist);max-width:640px;margin-top:16px}
.jump{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.jump a{display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--ink);font-weight:600;font-size:15px;padding:8px 18px 8px 8px;border-radius:999px;box-shadow:0 10px 24px rgba(0,0,0,.18);transition:transform .15s}
.jump a:hover{transform:translateY(-2px)}
.jump i,.feat i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none}
.jump svg{width:18px;height:18px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.g4 .card{padding:30px 24px}
.g4 .card h3{font-size:19px;min-height:2.6em}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split h2{margin-bottom:16px}
.split .lead{color:var(--muted);font-size:17px;margin-bottom:28px}
.numlist{list-style:none;counter-reset:n;display:grid;gap:14px}
.numlist li{counter-increment:n;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 22px 20px 78px;position:relative;box-shadow:0 10px 26px rgba(18,28,69,.06)}
.numlist li:before{content:counter(n);position:absolute;left:20px;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;display:grid;place-items:center}
.numlist li:last-child:before{background:var(--yellow);color:var(--navy)}
.numlist b{display:block;font-size:16.5px}
.numlist span{font-size:14.5px;color:var(--muted)}
.feat{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.feat>div,.cta-tile{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 10px 26px rgba(18,28,69,.06)}
.feat i{width:48px;height:48px;border-radius:14px}
.feat i svg{width:24px;height:24px}
.feat b{font-size:16px;line-height:1.4}
.cta-tile{background:var(--green-d);border-color:var(--green-d);color:#fff;justify-content:flex-end;transition:transform .15s}
.cta-tile:hover{transform:translateY(-3px)}
.cta-tile span{font-size:14px}
.checks{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:12px 32px;max-width:880px;margin:0 auto}
.checks li{display:flex;gap:12px;font-size:16px;font-weight:500;background:#fff;border-radius:14px;padding:14px 18px;border:1px solid var(--line)}
.checks li:before{content:"";flex:none;width:22px;height:22px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center/12px no-repeat;margin-top:1px}
@media (max-width:1100px){
  .g4,.feat{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .g4 .card h3{min-height:0}
}
@media (max-width:900px){
  .phero{padding:44px 0 52px}
  .split{grid-template-columns:1fr;gap:36px}
  .checks{grid-template-columns:1fr}
}
@media (max-width:560px){
  .phero .lead{font-size:16px}
  .jump{flex-direction:column;align-items:stretch}
  .checks li{padding:11px 14px;font-size:14.5px}
  .feat{grid-template-columns:1fr 1fr;gap:12px}
  .feat>div,.cta-tile{padding:18px 16px}
  .feat b{font-size:14.5px}
  .numlist li{padding:18px 18px 18px 70px}
  .numlist li:before{left:16px}
}

/* ===== Kampus Partner ===== */
[hidden]{display:none!important}
.phero .stats{margin-top:36px}
.kfilter{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:-16px auto 40px}
.kfilter button{font:inherit;font-size:14.5px;font-weight:600;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:9px 18px;cursor:pointer;display:inline-flex;gap:8px;align-items:center;transition:.15s;white-space:nowrap}
.kfilter button:hover{border-color:var(--navy)}
.kfilter button.on{background:var(--navy);border-color:var(--navy);color:#fff}
.kfilter button small{font-size:12px;font-weight:700;background:var(--soft);color:var(--blue);border-radius:99px;padding:1px 8px}
.kfilter button.on small{background:var(--yellow);color:var(--navy)}
.kgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.kp{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 14px 36px rgba(18,28,69,.07);display:flex;flex-direction:column;scroll-margin-top:110px;transition:transform .2s,box-shadow .2s}
.kp:hover{transform:translateY(-4px);box-shadow:0 22px 46px rgba(18,28,69,.13)}
.kp:target{outline:3px solid var(--yellow);outline-offset:-3px}
.kp-logo{height:128px;display:grid;place-items:center;padding:20px 28px;border-bottom:1px solid var(--line);background:#fff}
.kp-logo img{max-height:72px;max-width:78%;width:auto;object-fit:contain}
.kp-logo img.tall{max-height:92px}
.kp-logo img.slim{max-width:52%}
.kp-logo .wm{text-align:center;color:var(--navy);line-height:1.15}
.kp-logo .wm b{display:block;font-size:24px;font-weight:800;letter-spacing:-.01em}
.kp-logo .wm small{display:block;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.kp-bd{padding:20px 24px 24px;display:flex;flex-direction:column;flex:1}
.loc{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted)}
.fl{flex:none;width:21px;height:14px;border-radius:3px;box-shadow:0 0 0 1px var(--line)}
.fl.fr{background:linear-gradient(90deg,#002395 33.3%,#fff 33.3% 66.6%,#ed2939 66.6%)}
.fl.ch{width:14px;background:#da291c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='white' d='M13 6h6v7h7v6h-7v7h-6v-7H6v-6h7z'/%3E%3C/svg%3E") center/100% no-repeat}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.kp h3{font-size:18.5px;font-weight:700;line-height:1.3;margin-top:10px}
.kp p{font-size:14.5px;color:var(--muted);margin-top:6px}
.kp .chips{margin:14px 0 22px}
.kp h3 .kp-name:hover{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.kp-more{margin-top:auto;margin-bottom:12px;align-self:flex-start;color:var(--blue);font-weight:700;font-size:14.5px}
.kp-more:hover{text-decoration:underline;text-underline-offset:3px}
.kp-more+.kp-wa{margin-top:0}
.kp-wa{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:8px;border:2px solid var(--green-d);color:var(--green-d);font-weight:700;font-size:14.5px;border-radius:999px;padding:10px 16px;transition:.15s}
.kp-wa svg{width:18px;height:18px}
.kp-wa:hover{background:var(--green-d);color:#fff}
.kp-cta{background:radial-gradient(120% 120% at 0% 0%,var(--blue-l),var(--navy) 55%,var(--navy2));border:0;color:#fff;padding:30px 28px;gap:14px;justify-content:center;position:relative}
.kp-cta:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1.4px,transparent 1.5px);background-size:28px 28px}
.kp-cta>*{position:relative}
.kp-cta .pill{align-self:flex-start}
.kp-cta b{font-size:22px;line-height:1.3}
.kp-cta span:not(.pill){color:var(--mist);font-size:14.5px}
.kp-cta em{font-style:normal;font-weight:700;color:var(--yellow);margin-top:6px}
.kempty{text-align:center;color:var(--muted)}
@media (max-width:1100px){.kgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
  .kfilter{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;margin:-8px calc(-1*var(--gutter)) 20px;padding:4px var(--gutter);scrollbar-width:none}
  .kfilter::-webkit-scrollbar{display:none}
  .kgrid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(80%,340px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 20px;scroll-padding:0 var(--gutter);scrollbar-width:none}
  .kgrid::-webkit-scrollbar{display:none}
  .kgrid>*{scroll-snap-align:start}
  .kgrid>.kp,.kgrid>.kp:hover{transform:none;box-shadow:0 8px 18px rgba(18,28,69,.06)}
}
@media (max-width:560px){
  .kfilter{margin:-4px calc(-1*var(--gutter)) 18px;padding:4px var(--gutter)}
  .kfilter button{font-size:14px;padding:8px 15px}
  .kgrid{margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 20px;scroll-padding:0 var(--gutter)}
  .kp-logo{height:112px}
  .kp-logo img.tall{max-height:78px}
  .kp-bd{padding:18px 20px 22px}
}

/* mobile menu */
.mnav{display:none}

@media (max-width:1180px){
  .menu,.nav .btn{display:none}
  .burger{display:block}
  .mnav.open{display:block;position:fixed;top:78px;left:0;right:0;bottom:0;background:#fff;z-index:49;padding:16px var(--gutter);overflow:auto}
  .mnav a{display:block;padding:14px 4px;font-weight:600;border-bottom:1px solid var(--line)}
  .mnav .btn{display:flex;margin-top:20px;border:0}
}
@media (max-width:900px){
  :root{--sec:72px;--head:40px}
  .hero .wrap{grid-template-columns:1fr;padding-top:56px;padding-bottom:64px;gap:44px}
  .hero-art{height:380px;max-width:480px;width:100%;margin:0 auto}
  .svc{grid-template-columns:1fr}
  /* kampus, testimoni, artikel: slider geser di tablet & HP */
  .camp,.tgrid,.agrid,.g4,.algrid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(80%,340px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 20px;scroll-padding:0 var(--gutter);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .camp::-webkit-scrollbar,.tgrid::-webkit-scrollbar,.agrid::-webkit-scrollbar,.g4::-webkit-scrollbar,.algrid::-webkit-scrollbar{display:none}
  .alumni{margin-top:48px;padding:34px 24px 12px;border-radius:26px}
  .al-head{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:20px}
  .al-head h3{font-size:28px}
  .al-head,.al-stats{width:100%}
  .al-stats{gap:10px}
  .al-stats div{flex:1;padding:10px 12px;gap:8px}
  .al-stats b{font-size:22px}
  .al-stats span{font-size:11.5px}
  .algrid{grid-auto-columns:min(78%,300px)}
  .camp>*,.tgrid>*,.agrid>*,.g4>*,.algrid>*{scroll-snap-align:start}
  .camp>.cc,.camp>.cc:hover{transform:none;box-shadow:0 8px 18px rgba(18,28,69,.06)}
  .tc.photo{min-height:0}
  .dots{display:flex;justify-content:center;gap:8px;margin-top:8px}
  .dots i{width:8px;height:8px;border-radius:99px;background:var(--mist);transition:background-color .25s}
  .dots i.on{width:24px;background:var(--navy)}
  #kampus .center,#artikel .center{margin-top:24px}
  .steps{grid-template-columns:1fr;gap:22px;text-align:left}
  .steps:before{top:10px;bottom:10px;left:33px;right:auto;width:3px;height:auto;background:repeating-linear-gradient(180deg,var(--mist) 0 10px,transparent 10px 18px)}
  .step{display:grid;grid-template-columns:68px 1fr;gap:18px;text-align:left;align-items:center}
  .step .n{margin:0}
  .why .wrap,.faq .wrap{grid-template-columns:1fr;gap:40px}
  .band .box{grid-template-columns:minmax(0,1fr);padding:44px 32px;text-align:left;gap:24px}
  .band .coco{width:150px;justify-self:start;order:-1}
  footer .wrap{grid-template-columns:1fr 1fr;gap:36px 32px;padding-top:60px;padding-bottom:44px}
  footer .wrap>div:first-child,footer .wrap>div:last-child{grid-column:1/-1}
  .topbar .l a:nth-child(2){display:none}
}
@media (max-width:560px){
  :root{--sec:60px;--head:32px}
  :root{--gutter:20px}
  .hero .wrap{padding-top:40px;padding-bottom:56px;gap:40px}
  .pill{font-size:11px;padding:7px 14px;letter-spacing:.03em}
  .hero h1{margin:18px 0 16px}
  .hero .cta{margin-top:28px;gap:12px}
  .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:36px}
  .stats br{display:none}
  .stats div{min-width:0}
  .stats span{font-size:12px;line-height:1.45;display:block;margin-top:4px}
  .sec-head p{font-size:16px}
  .card{padding:30px 24px}
  .svc{gap:28px}
  .svc .card h3{min-height:0}
  .camp,.tgrid,.agrid,.g4,.algrid{margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 20px;scroll-padding:0 var(--gutter)}
  .alumni{padding:30px 20px 8px}
  .tc{padding:26px 24px}
  .partners{padding:32px 0}
  .band .box{padding:36px 24px;border-radius:26px}
  .band h2{font-size:26px}
  .band .coco{width:120px}
  .faq .wrap{gap:32px}
  summary{font-size:15.5px;padding:18px 0}
  details{padding:0 20px}
  .topbar .r{display:none}
  .nav .wrap{height:68px}
  .nav .logo img{height:36px}
  .hero p.lead{font-size:16px}
  .hero .cta .btn{width:100%}
  .stats b{font-size:26px}
  .hero-art{height:320px}
  .hero .wrap>div:first-child{text-align:center}
  .hero p.lead{margin-left:auto;margin-right:auto}
  .hero .cta{justify-content:center}
  .hero .stats{justify-items:center}
  .flag{width:88px;height:59px}
  .hero-art{margin-bottom:26px}
  .badge-float{left:50%;right:auto;bottom:-26px;transform:translateX(-50%);white-space:nowrap;padding:10px 18px 10px 10px;gap:10px;font-size:12px;text-align:left}
  .badge-float b{font-size:13.5px}
  .badge-float .ic{width:34px;height:34px;border-radius:10px}.badge-float .ic svg{width:18px;height:18px}
  .logos{flex-wrap:nowrap;justify-content:flex-start;gap:30px;overflow-x:auto;margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 10px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 48px),transparent)}.logos::-webkit-scrollbar{display:none}.logos img{flex-shrink:0;max-width:none}.logos img{height:34px}.logos img.sq{height:44px}.logos img.tall{height:52px}.logos img.slim{height:18px}
  .band .acts .btn{width:100%}
  .chartcard{padding:26px}
  .bars{gap:7px;height:180px}.yrs{gap:7px}.bar b{font-size:12px}
}
@media (max-width:900px){
  /* ruang untuk label "Paling diminati" yang menonjol di atas kartu slider */
  .g4{padding-top:20px}
}

/* ===== Tentang Kami ===== */
.story{color:var(--muted);font-size:15.5px;margin-top:-12px}
.motto{margin-top:28px;border-left:4px solid var(--yellow);padding:6px 0 6px 20px;font-size:19px;font-weight:700;color:var(--navy);line-height:1.4}
.motto span{display:block;font-size:13px;font-weight:500;color:var(--muted);margin-top:6px}
.story-ph{position:relative;margin:0}
.story-ph img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:28px;border:5px solid #fff;box-shadow:0 30px 60px rgba(18,28,69,.18);transform:rotate(1.5deg)}
.story-ph figcaption{position:absolute;left:22px;bottom:22px;background:#fff;color:var(--navy);font-size:13px;font-weight:700;padding:7px 14px;border-radius:999px;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.story-ph .flag{left:auto;right:-14px;top:-22px;transform:rotate(8deg)}
.vm{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1000px;margin:0 auto}
.vm-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:36px;box-shadow:0 14px 40px rgba(18,28,69,.07);position:relative;overflow:hidden}
.vm-card p,.vm-card li{font-size:19px;line-height:1.5;margin-top:20px}
.vm-card ul{list-style:none;display:grid;gap:4px}
.vm-card li{position:relative;padding-left:24px}
.vm-card li:before{content:"";position:absolute;left:0;top:11px;width:10px;height:10px;border-radius:50%;background:var(--red)}
.vm-card.navy{background:radial-gradient(120% 120% at 0% 0%,var(--blue-l),var(--navy) 55%,var(--navy2));color:#fff;border:0}
.vm-card.navy:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1.4px,transparent 1.5px);background-size:28px 28px}
.vm-card.navy>*{position:relative}
.vm-card.navy b{color:var(--yellow)}
.pill-red{background:var(--red);color:#fff}
.nilai .card h3{min-height:0}
.why.soft .lead{color:var(--muted)}
.tl{list-style:none;display:grid;gap:0;position:relative;margin-top:6px}
.tl li{position:relative;padding:0 0 20px 34px}
.tl li:before{content:"";position:absolute;left:12px;top:8px;transform:translateX(-50%);box-sizing:border-box;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--navy);z-index:1}
.tl li:after{content:"";position:absolute;left:12px;top:18px;transform:translateX(-50%);bottom:-8px;width:2px;background:var(--mist)}
.tl li:last-child{padding-bottom:0}
.tl li:last-child:before{background:var(--yellow);border-color:var(--yellow)}
.tl li:last-child:after{display:none}
.tl b{display:block;font-size:16px;color:var(--navy)}
.tl span{font-size:14.5px;color:var(--muted)}
.acts-row{display:flex;gap:12px;flex-wrap:wrap}
.office{list-style:none;display:grid;gap:14px}
.office li{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 22px;box-shadow:0 10px 26px rgba(18,28,69,.06)}
.office i{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;flex:none}
.office svg{width:22px;height:22px}
.office b{display:block;font-size:16px}
.office span{font-size:14.5px;color:var(--muted)}
@media (max-width:900px){
 .story-ph{max-width:560px}
 .story-ph .flag{right:-6px}
 .vm{grid-template-columns:1fr;gap:18px}
 .g4.nilai{padding-top:6px}
}
@media (max-width:560px){
 .vm-card{padding:28px 24px}
 .vm-card p,.vm-card li{font-size:17px}
 .motto{font-size:17px}
 .story-ph img{border-radius:22px}
 .story-ph .flag{width:76px;height:51px;top:-16px}
 .acts-row .btn{width:100%}
 .office li{padding:16px 18px}
}

/* ===== Kontak ===== */
.kc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.kc{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px 24px;display:flex;flex-direction:column;gap:6px;box-shadow:0 14px 36px rgba(18,28,69,.07);transition:transform .15s,box-shadow .15s}
.kc:hover{transform:translateY(-4px);box-shadow:0 22px 46px rgba(18,28,69,.13)}
.kc i{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin-bottom:12px}
.kc i svg{width:26px;height:26px}
.kc small{font-size:13px;font-weight:600;color:var(--muted)}
.kc b{font-size:22px;font-weight:800;color:var(--navy);line-height:1.25}
.kc b.sm{font-size:16.5px;overflow-wrap:anywhere}
.kc .go{margin-top:auto;padding-top:14px;font-weight:700;font-size:14.5px;color:var(--blue)}
.kc .go:after{content:" →";transition:.2s}
.kc .tag{position:absolute;top:-13px;left:24px;background:var(--red);color:#fff;font-size:12px;font-weight:800;letter-spacing:.05em;padding:5px 14px;border-radius:999px;text-transform:uppercase}
.kc-main{border:2px solid var(--green)}
.kc-main .go{color:var(--green-d)}
.topik{margin-top:40px;display:flex;align-items:center;gap:28px;background:var(--soft);border-radius:var(--r);padding:24px 28px}
.topik>div:first-child{flex:none}
.topik b{display:block;font-size:17px;color:var(--navy)}
.topik span{font-size:14px;color:var(--muted)}
.chips-wa{display:flex;flex-wrap:wrap;gap:10px}
.chips-wa a{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:9px 16px;font-size:14.5px;font-weight:600;transition:.15s}
.chips-wa a:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green)}
.chips-wa a:hover{border-color:var(--green-d);color:var(--green-d)}
.lok{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}
.office a{color:var(--blue);font-weight:600}
.map{border-radius:28px;overflow:hidden;border:5px solid #fff;box-shadow:0 30px 60px rgba(18,28,69,.16);aspect-ratio:4/3.4;background:var(--line)}
.map iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:1100px){.kc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
 .lok{grid-template-columns:1fr;gap:36px}
 .topik{flex-direction:column;align-items:flex-start;gap:16px}
 .map{aspect-ratio:4/3.6}
}
@media (max-width:560px){
 .kc-grid{gap:14px;padding-top:6px}
 .kc{padding:22px 18px}
 .kc i{width:44px;height:44px;border-radius:13px;margin-bottom:8px}
 .kc i svg{width:22px;height:22px}
 .kc b{font-size:17px}
 .kc b.sm{font-size:13.5px}
 .kc .tag{left:16px;font-size:10.5px;padding:4px 10px}
 .topik{padding:20px;margin-top:28px}
 .chips-wa a{font-size:13.5px;padding:8px 14px}
 .map{border-radius:22px;aspect-ratio:1/1}
}

/* ===== FAQ ===== */
.fq-search{display:flex;align-items:center;gap:12px;background:#fff;border-radius:999px;padding:6px 8px 6px 22px;max-width:560px;margin-top:32px;box-shadow:0 14px 32px rgba(0,0,0,.22)}
.fq-search svg{width:22px;height:22px;color:var(--muted);flex:none}
.fq-search input{flex:1;min-width:0;border:0;outline:0;font:inherit;font-size:16px;color:var(--ink);padding:12px 0;background:none}
.fq-wrap{display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:start}
.fq-side{position:sticky;top:104px;display:grid;gap:20px}
.fq-nav{display:grid;gap:6px}
.fq-nav a{display:flex;align-items:center;gap:12px;padding:8px 12px 8px 8px;border-radius:14px;font-weight:600;font-size:15px;transition:.15s}
.fq-nav a:hover,.fq-nav a.on{background:var(--soft);color:var(--blue)}
.fq-nav i,.fq-cat h2 i{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none}
.fq-nav svg{width:19px;height:19px}
.fq-nav small{margin-left:auto;font-size:12px;font-weight:700;background:var(--soft);color:var(--blue);border-radius:99px;padding:1px 9px}
.fq-nav a.on small{background:var(--yellow);color:var(--navy)}
.fq-ask{background:radial-gradient(120% 120% at 0% 0%,var(--blue-l),var(--navy) 55%,var(--navy2));color:#fff;border-radius:var(--r);padding:24px;display:grid;gap:6px}
.fq-ask b{font-size:17px}
.fq-ask span{font-size:14px;color:var(--mist);margin-bottom:10px}
.fq-cat{scroll-margin-top:100px;margin-bottom:44px}
.fq-cat:last-of-type{margin-bottom:0}
.fq-cat h2{display:flex;align-items:center;gap:14px;font-size:24px;font-weight:800;color:var(--navy);margin-bottom:18px}
.fq-cat h2 svg{width:20px;height:20px}
.fq-list details a{color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.fq-list mark{background:var(--yellow);color:inherit;border-radius:3px;padding:0 2px}
.fq-none{background:var(--soft);border-radius:16px;padding:24px;color:var(--muted)}
.fq-none a{color:var(--green-d);font-weight:700}
@media (max-width:900px){
 .fq-wrap{grid-template-columns:minmax(0,1fr);gap:28px}
 .fq-side{position:sticky;top:78px;z-index:5;margin:0 calc(-1*var(--gutter));padding:10px var(--gutter);background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
 .fq-nav{display:flex;overflow-x:auto;gap:8px;scrollbar-width:none}
 .fq-nav::-webkit-scrollbar{display:none}
 .fq-nav a{flex:none;border:1.5px solid var(--line);border-radius:999px;padding:6px 14px 6px 6px;font-size:14px;gap:8px}
 .fq-nav a.on{background:var(--navy);border-color:var(--navy);color:#fff}
 .fq-nav i{width:28px;height:28px;border-radius:50%}
 .fq-nav svg{width:15px;height:15px}
 .fq-ask{display:none}
 .fq-cat{scroll-margin-top:150px}
 .fq .fq-wrap{padding-top:0}
 section.fq{padding-top:0}
}
@media (max-width:560px){
 .fq-side{margin:0 calc(-1*var(--gutter));padding:10px var(--gutter);top:68px}
 .fq-search{padding-left:18px;margin-top:26px}
 .fq-search input{font-size:15px}
 .fq-cat h2{font-size:20px}
 .fq-cat h2 i{width:34px;height:34px}
}

/* ===== Kuliah di Prancis ===== */
.jalur{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.jc{background:#fff;border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:0 18px 44px rgba(18,28,69,.08);display:flex;flex-direction:column}
.jc-ph{position:relative;aspect-ratio:16/8;background:var(--mist)}
.jc-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.jc-ph .jc-tag{z-index:1}
.jc-tag{position:absolute;left:20px;top:20px;background:var(--yellow);color:var(--navy);font-size:12.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:6px 14px;border-radius:999px}
.jc-tag-red{background:var(--red);color:#fff}
.jc-bd{padding:30px 32px 34px;display:flex;flex-direction:column;flex:1}
.jc-bd h3{font-size:24px;font-weight:800;line-height:1.25}
.jc-bd>p{color:var(--muted);font-size:15px;margin-top:8px}
.jc-price{display:flex;align-items:center;gap:14px;background:var(--soft);border-radius:16px;padding:14px 18px;margin:20px 0 6px}
.jc-price b{font-size:34px;font-weight:800;color:var(--blue);line-height:1}
.jc-price span{font-size:13px;color:var(--muted);line-height:1.4}
.jc ul{list-style:none;display:grid;gap:9px;margin:16px 0 4px}
.jc li{display:flex;gap:10px;font-size:15px}
.jc li:before,.cc-card dl div:before{content:"";flex:none;width:20px;height:20px;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center/12px no-repeat;margin-top:2px}
.jc .more{margin-top:auto;padding-top:18px;font-weight:700;color:var(--blue)}
.jc .more:after{content:" →"}
.cost{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:24px}
.cc-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px 28px;box-shadow:0 14px 40px rgba(18,28,69,.07);display:flex;flex-direction:column}
.cc-top h3{font-size:22px;font-weight:800;margin-top:12px}
.cc-top .pill{font-size:11.5px;padding:5px 12px}
.cc-card dl{margin:18px 0 20px;display:grid;gap:4px}
.cc-card dl div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:15px}
.cc-card dl div:before{display:none}
.cc-card dt{color:var(--muted)}
.cc-card dd{font-weight:700}
.cc-total{margin-top:auto;background:var(--navy);color:#fff;border-radius:16px;padding:16px 20px;display:grid}
.cc-total span{font-size:12.5px;color:var(--mist)}
.cc-total b{font-size:26px;font-weight:800;color:var(--yellow);line-height:1.25}
.cc-total small{font-size:13.5px;color:#fff}
.cc-work p{color:var(--muted);font-size:15px;margin:10px 0 18px}
.cc-nums{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cc-nums div{background:var(--soft);border-radius:16px;padding:14px 16px}
.cc-nums b{display:block;font-size:28px;font-weight:800;color:var(--red);line-height:1.1}
.cc-nums span{font-size:12.5px;color:var(--muted)}
.cc-work .chips{margin-top:auto;padding-top:18px}
.subs .card{padding:28px 24px}
.subs .big{display:block;font-size:42px;font-weight:800;color:var(--blue);line-height:1;margin-bottom:14px}
.subs .big small{font-size:13px;font-weight:600;color:var(--muted);display:block;margin-bottom:4px}
.subs .card h3{min-height:0;font-size:19px;margin-bottom:4px}
.req{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.req-col h3{margin-bottom:18px}
.req-col .pill{font-size:12px}
.tabs{display:flex;justify-content:center;gap:8px;margin:-12px auto 36px;background:var(--soft);padding:6px;border-radius:999px;width:max-content;max-width:100%}
.tabs button{font:inherit;font-weight:700;font-size:15px;border:0;background:none;color:var(--muted);padding:10px 22px;border-radius:999px;cursor:pointer}
.tabs button.on{background:var(--navy);color:#fff;box-shadow:0 6px 16px rgba(22,36,94,.25)}
.tline{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:t}
.tline li{counter-increment:t;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 22px 20px 76px;position:relative;box-shadow:0 10px 26px rgba(18,28,69,.06)}
.tline li:before{content:counter(t);position:absolute;left:20px;top:20px;width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;display:grid;place-items:center}
.tline li.last:before{background:var(--yellow);color:var(--navy)}
.tline .when{display:inline-block;font-size:12px;font-weight:700;color:var(--red);background:#fde7ea;border-radius:6px;padding:2px 8px;margin-bottom:6px}
.tline b{display:block;font-size:16.5px;line-height:1.35}
.tline p{font-size:14px;color:var(--muted)}
.majors .card{padding:24px 22px}
.majors .card h3{min-height:0;font-size:18px;margin-bottom:8px}
.majors .card p{font-size:14px}
.note-src{text-align:center;font-size:13px;color:var(--muted);margin-top:22px}
@media (max-width:1100px){
  .cost{grid-template-columns:1fr 1fr}
  .tline{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .jalur,.cost{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(86%,380px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 20px;scroll-padding:0 var(--gutter);scrollbar-width:none}
  .jalur::-webkit-scrollbar,.cost::-webkit-scrollbar{display:none}
  .jalur>*,.cost>*{scroll-snap-align:start}
  .req{grid-template-columns:1fr;gap:36px}
  .tline{grid-template-columns:1fr;gap:12px}
  .jc-bd{padding:24px 22px 26px}
  .jc-price b{font-size:28px}
}
@media (max-width:560px){
  .jalur,.cost{margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 20px;scroll-padding:0 var(--gutter)}
  .tabs button{font-size:13.5px;padding:9px 14px}
  .cc-card{padding:26px 22px}
  .jc-price{flex-direction:column;align-items:flex-start;gap:6px}
  .jc-price br{display:none}
}

/* ===== Halaman Testimoni & Alumni: peta alumni ===== */
.mapwrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:28px;align-items:start}
.mapcard{background:radial-gradient(120% 120% at 20% 0%,var(--blue-l) 0%,var(--navy) 50%,var(--navy2) 100%);border-radius:32px;padding:32px 32px 26px;position:relative;overflow:hidden;box-shadow:0 24px 50px rgba(18,28,69,.18)}
.mapcard:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.09) 1.3px,transparent 1.4px);background-size:22px 22px;pointer-events:none}
.amap{position:relative;aspect-ratio:1000/965;max-width:560px;margin:0 auto}
.amap svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.amap path{fill:rgba(255,255,255,.1);stroke:rgba(200,208,240,.75);stroke-width:2.5;stroke-linejoin:round}
.pin{position:absolute;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50%;border:3px solid #fff;background:var(--yellow);color:var(--navy);font:800 12px/1 Poppins,"Poppins Fallback",sans-serif;cursor:pointer;display:grid;place-items:center;padding:0;box-shadow:0 4px 12px rgba(0,0,0,.3);transition:transform .2s,background .2s;z-index:1}
.pin span:empty{width:8px;height:8px;border-radius:50%;background:var(--navy)}
.pin em{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);white-space:nowrap;font-style:normal;font-size:12.5px;font-weight:700;background:#fff;color:var(--navy);padding:4px 10px;border-radius:8px;box-shadow:0 6px 16px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .2s}
.pin em:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:#fff}
.pin:hover,.pin:focus-visible{transform:translate(-50%,-50%) scale(1.15);z-index:3}
.pin:hover em,.pin:focus-visible em,.pin.on em{opacity:1}
.pin.on{background:var(--red);color:#fff;z-index:2;transform:translate(-50%,-50%) scale(1.2)}
.pin.on span:empty{background:#fff}
.pin.on:before{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid var(--red);animation:pinpulse 1.8s ease-out infinite}
@keyframes pinpulse{from{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(1.5)}}
@media (prefers-reduced-motion:reduce){.pin.on:before{animation:none;opacity:.6}}
.mapchips{position:relative;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;justify-content:center}
.mapchips button{font:600 13px/1 Poppins,"Poppins Fallback",sans-serif;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:99px;padding:8px 12px;cursor:pointer;transition:.2s}
.mapchips button small{font-size:11px;font-weight:700;color:var(--yellow);margin-left:2px}
.mapchips button:hover{background:rgba(255,255,255,.16)}
.mapchips button.on{background:var(--yellow);color:var(--navy);border-color:var(--yellow)}
.mapchips button.on small{color:var(--red)}
.mp-side{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px;box-shadow:0 18px 40px rgba(18,28,69,.08)}
.mp-ttl{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px;padding-bottom:14px;border-bottom:2px dashed var(--line)}
.mp-ttl span{font-size:22px;font-weight:800;color:var(--navy);line-height:1.3}
.mp-ttl small{flex:none;font-size:13px;font-weight:700;color:var(--navy);background:var(--yellow);border-radius:99px;padding:4px 12px}
.amlist{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.amc{display:flex;gap:14px;align-items:center;background:var(--soft);border-radius:16px;padding:12px}
.amc .av{flex:none;width:72px;height:72px;border-radius:14px;overflow:hidden;background:var(--mist);border:3px solid #fff;box-shadow:0 4px 12px rgba(18,28,69,.12)}
.amc .av img{width:100%;height:100%;object-fit:cover}
.amc .ini{display:grid;place-items:center;width:100%;height:100%;font-size:28px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--blue),var(--navy2))}
.amc b{display:block;font-size:15px;line-height:1.3}
.amc span{display:block;font-size:12.5px;line-height:1.4;color:var(--muted);margin-top:3px}
.amc i{display:inline-block;font-style:normal;font-size:11px;font-weight:700;color:var(--red);background:#fde7ea;border-radius:6px;padding:1px 7px;margin-top:6px}
.amc .lg{display:block;height:26px;width:auto;max-width:150px;object-fit:contain;object-position:left center;margin-top:8px;background:#fff;padding:5px 8px;border-radius:8px;box-sizing:content-box}
.mp-note{font-size:12.5px;color:var(--muted);margin-top:18px}
@media (max-width:1100px){.amlist{grid-template-columns:1fr}}
@media (max-width:900px){
  .mapwrap{grid-template-columns:minmax(0,1fr);gap:20px}
  .mapcard{padding:22px 16px 20px;border-radius:26px}
  .mapchips{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;margin:18px -16px 0;padding:0 16px 4px;scrollbar-width:none}
  .mapchips::-webkit-scrollbar{display:none}
  .mapchips button{flex:none}
  .mp-side{padding:22px 20px 16px}
  .amlist{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(86%,320px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1*var(--gutter));padding:2px var(--gutter) 14px;scroll-padding:0 var(--gutter);scrollbar-width:none}
  .amlist::-webkit-scrollbar{display:none}
  .amlist>*{scroll-snap-align:start}
  .mp-ttl span{font-size:19px}
}
@media (max-width:560px){
  .pin{width:20px;height:20px;border-width:2px;font-size:10px}
  .pin span:empty{width:6px;height:6px}
  .pin em{font-size:11.5px;padding:3px 8px}
  .amc .av{width:64px;height:64px}
}
.mp-panel .dots:has(i:only-child){display:none}

/* ===== 404 ===== */
.e404{position:relative;background:radial-gradient(120% 140% at 15% 0%,var(--blue-l) 0%,var(--navy) 50%,var(--navy2) 100%);color:#fff;overflow:hidden}
.e404:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.13) 1.5px,transparent 1.6px);background-size:36px 36px;mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.25) 80%)}
.e404 .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;padding-top:88px;padding-bottom:96px}
.e404 h1{font-size:clamp(36px,4.8vw,60px);line-height:1.1;font-weight:400;letter-spacing:-.01em;margin-top:20px}
.e404 h1 b{font-weight:800;color:var(--yellow)}
.e404 .lead{font-size:18px;color:var(--mist);max-width:520px;margin-top:18px}
.e404 .acts{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.e404 .btn-yellow{box-shadow:0 10px 24px rgba(255,213,39,.25)}
.e404-art{position:relative;justify-self:center}
.e404-art .num{display:flex;align-items:center;font-weight:800;font-size:clamp(130px,15vw,220px);line-height:1;color:var(--yellow);letter-spacing:-.04em;text-shadow:0 18px 40px rgba(0,0,0,.3)}
.e404-art .zero{width:.82em;height:.82em;margin:0 .06em;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 18px 40px rgba(0,0,0,.35),0 0 0 .05em rgba(255,255,255,.18)}
.e404-art .zero img{width:72%;transform:translate(4%,2%) rotate(-6deg);animation:coco404 3.2s ease-in-out infinite}
@keyframes coco404{0%,100%{transform:translate(4%,2%) rotate(-6deg)}50%{transform:translate(4%,-4%) rotate(4deg)}}
.e404-art .bubble{position:absolute;top:-6%;right:-4%;background:#fff;color:var(--navy);font-weight:800;font-size:16px;padding:10px 18px;border-radius:18px 18px 18px 4px;box-shadow:0 12px 26px rgba(0,0,0,.25);transform:rotate(4deg);white-space:nowrap}
.e404-art .flag{left:-6%;top:auto;bottom:-10%;width:96px;height:64px}
.e404-links{padding:var(--sec) 0}
.e404-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.e404-grid a{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 22px;box-shadow:0 14px 40px rgba(18,28,69,.07);transition:transform .15s,box-shadow .15s,border-color .15s}
.e404-grid a:hover{transform:translateY(-3px);border-color:var(--mist);box-shadow:0 18px 44px rgba(18,28,69,.12)}
.e404-grid i{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;flex:none}
.e404-grid i svg{width:24px;height:24px}
.e404-grid span{flex:1;min-width:0}
.e404-grid b{display:block;font-size:17px;color:var(--ink)}
.e404-grid small{display:block;font-size:14px;color:var(--muted);margin-top:2px}
.e404-grid em{width:34px;height:34px;border-radius:50%;background:var(--soft);color:var(--navy);display:grid;place-items:center;flex:none;transition:background .15s,color .15s}
.e404-grid em svg{width:16px;height:16px}
.e404-grid a:hover em{background:var(--green-d);color:#fff}
@media (prefers-reduced-motion:reduce){.e404-art .zero img{animation:none}}
@media (max-width:1100px){.e404-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){
  .e404 .wrap{grid-template-columns:1fr;gap:56px;padding-top:56px;padding-bottom:72px;text-align:center}
  .e404 .lead{margin-left:auto;margin-right:auto}
  .e404 .acts{justify-content:center}
  .e404-art{order:-1}
}
@media (max-width:560px){
  .e404 .wrap{padding-top:52px;padding-bottom:56px;gap:40px}
  .e404-art .num{font-size:118px}
  .e404-art .bubble{font-size:13px;padding:7px 13px;right:-6%}
  .e404-art .flag{width:64px;height:43px;left:-4%;border-width:2px}
  .e404 .lead{font-size:16px}
  .e404 .acts .btn{flex:1 1 100%}
  .e404-grid{grid-template-columns:1fr 1fr;gap:12px}
  .e404-grid a{flex-direction:column;align-items:flex-start;gap:12px;padding:18px 16px}
  .e404-grid i{width:44px;height:44px;border-radius:14px}
  .e404-grid b{font-size:15px}
  .e404-grid small{font-size:12.5px}
  .e404-grid em{display:none}
}

/* Beranda: coba dengar 3 kalimat bahasa Prancis */
.fr-say{position:relative;background:radial-gradient(120% 120% at 15% 0%,var(--blue-l) 0%,var(--navy) 50%,var(--navy2) 100%);color:#fff;overflow:hidden}
.fr-say:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1.5px,transparent 1.6px);background-size:36px 36px;mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.15) 60%)}
.fr-say .wrap{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:"intro list" "cta list";column-gap:64px;align-items:center}
.fr-intro{grid-area:intro;align-self:end}.fr-list{grid-area:list}.fr-cta{grid-area:cta;align-self:start}
.fr-say h2{color:#fff;margin:20px 0 16px}
.fr-say .lead{color:var(--mist);font-size:17px;max-width:460px}
.fr-speed{display:flex;align-items:center;gap:8px;margin:28px 0 30px;flex-wrap:wrap;font-size:14px;color:var(--mist)}
.fr-speed span{margin-right:4px}
.fr-speed button{font:inherit;font-weight:600;color:#fff;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.3);border-radius:99px;padding:7px 16px;cursor:pointer}
.fr-speed button.on{background:#fff;color:var(--navy);border-color:#fff}
.fr-list{list-style:none;display:grid;gap:16px;counter-reset:fr}
.fr-item{display:flex;gap:20px;align-items:flex-start;background:#fff;color:var(--ink);border-radius:var(--r);padding:22px 26px;box-shadow:0 18px 40px rgba(0,0,0,.22);transition:transform .2s,box-shadow .2s;counter-increment:fr;position:relative}
.fr-item:after{content:counter(fr);position:absolute;top:14px;right:18px;font-weight:800;font-size:13px;color:var(--mist)}
.fr-item.on{transform:translateX(-6px);box-shadow:0 0 0 3px var(--yellow),0 22px 44px rgba(0,0,0,.28)}
.fr-play{flex-shrink:0;width:60px;height:60px;border-radius:50%;border:0;background:var(--yellow);color:var(--navy);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 18px rgba(255,213,39,.35);transition:transform .15s}
.fr-play:hover{transform:scale(1.06)}
.fr-play:focus-visible,.fr-speed button:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.fr-play svg{width:26px;height:26px;fill:currentColor;grid-area:1/1}
.fr-play .i-pause,.fr-item.on .i-play{display:none}
.fr-item.on .i-pause{display:block}
.fr-play[disabled]{background:var(--line);color:var(--muted);box-shadow:none;cursor:not-allowed;transform:none}
.fr-txt{flex:1;min-width:0}
.fr-txt .fr{font-size:22px;font-weight:800;color:var(--navy);line-height:1.3;padding-right:18px}
.fr-txt .baca{font-size:14.5px;color:var(--blue);margin-top:4px;font-style:italic}
.fr-txt .baca span{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--soft);color:var(--muted);padding:2px 8px;border-radius:99px;margin-right:6px;vertical-align:1px}
.fr-txt .arti{font-size:15px;color:var(--muted);margin-top:2px}
.fr-bar{height:4px;background:var(--line);border-radius:99px;margin-top:14px;overflow:hidden}
.fr-bar i{display:block;height:100%;width:0;background:var(--red);border-radius:99px}
.fr-soon{font-size:12.5px;color:var(--red);font-weight:600;margin-top:8px}
@media (max-width:900px){
  .fr-say .wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "list" "cta";gap:0}
  .fr-speed{margin-bottom:28px}
  .fr-cta{margin-top:28px}
  .fr-item.on{transform:none}
}
@media (max-width:560px){
  .fr-speed{margin:22px 0 24px}
  .fr-txt .baca span{display:table;margin:6px 0 2px}
  .fr-cta .btn{width:100%;white-space:normal;text-align:center}
  .fr-list{gap:14px}
  .fr-item{padding:18px 18px;gap:14px}
  .fr-play{width:52px;height:52px}
  .fr-play svg{width:22px;height:22px}
  .fr-txt .fr{font-size:18px}
  .fr-txt .baca{font-size:13.5px}
  .fr-txt .arti{font-size:14px}
}

/* link kalkulator dari halaman lain */
.kalk-cta{margin-top:32px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--navy);color:#fff;border-radius:var(--r);padding:22px 28px;position:relative;overflow:hidden}
.kalk-cta:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.1) 1.4px,transparent 1.5px);background-size:28px 28px;pointer-events:none}
.kalk-cta>*{position:relative}
.kalk-cta b{font-size:18px;display:block}
.kalk-cta span{font-size:14px;color:var(--mist)}
@media (max-width:560px){.kalk-cta{flex-direction:column;align-items:stretch;padding:22px 20px}.kalk-cta .btn{width:100%}}
.kalk-link{margin-top:28px}
@media (max-width:560px){.kalk-link{width:100%}}

/* ===== Form konsultasi (Kontak) → Leads portal ===== */
.kf{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center}
.kf-text h2{margin-bottom:16px}
.kf-text p{color:var(--muted)}
.kf-list{list-style:none;margin-top:24px;display:grid;gap:12px}
.kf-list li{position:relative;padding-left:34px;font-weight:500}
.kf-list li:before{content:"✓";position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--green);color:#fff;font-size:13px;font-weight:800;display:grid;place-items:center}
.kf-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:32px 30px;box-shadow:0 14px 40px rgba(18,28,69,.08)}
.kf-row{margin-bottom:16px}
.kf-row label{display:block;font-weight:600;font-size:14px;color:var(--navy);margin-bottom:6px}
.kf-row label span{font-weight:400;color:var(--muted)}
.kf-row input,.kf-row select,.kf-row textarea{width:100%;font:inherit;font-size:15px;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;outline:none;transition:border-color .15s,box-shadow .15s}
.kf-row textarea{resize:vertical;min-height:90px}
.kf-row input:focus,.kf-row select:focus,.kf-row textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(4,51,137,.1)}
.kf-row .bad{border-color:var(--red)}
.kf-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.kf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.kf-card .btn{width:100%;margin-top:6px;font-family:inherit;font-size:15px;font-weight:700;border:0;cursor:pointer}
.kf-card .btn[disabled]{opacity:.7;cursor:wait;transform:none}
.kf-note{font-size:13px;color:var(--muted);text-align:center;margin-top:12px}
.kf-err{background:#fde3e5;color:#8a0c18;border-radius:12px;padding:10px 14px;font-size:14px;margin-bottom:12px}
.kf-ok{margin-top:16px;background:#dcf5dc;color:#0a5c0a;border-radius:14px;padding:14px 16px;font-size:14px}
.kf-ok b{display:block;font-size:16px}
.kf-ok a{font-weight:700;text-decoration:underline}
@media (max-width:900px){
  .kf{grid-template-columns:1fr;gap:32px}
  .kf-card{padding:24px 20px}
}
@media (max-width:420px){.kf-2{grid-template-columns:1fr}}

/* ===== Tim (Tentang Kami) ===== */
.tim{display:flex;flex-wrap:wrap;justify-content:center;gap:22px}
.tim>*{width:calc((100% - 88px)/5)}
.tim-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:0 14px 40px rgba(18,28,69,.07);display:flex;flex-direction:column;margin:0}
.tim-ph{aspect-ratio:4/5;background:radial-gradient(120% 90% at 50% 20%,#fff 0%,#e7ecfa 100%);overflow:hidden}
.tim-ph img{width:100%;height:100%;object-fit:cover;display:block;mix-blend-mode:multiply}
.tim-card figcaption{padding:16px 18px 20px;display:flex;flex-direction:column;gap:2px}
.tim-card b{font-size:16.5px;line-height:1.3;color:var(--ink)}
.tim-card figcaption>span:last-child{font-size:13.5px;color:var(--muted);line-height:1.4}
.tim-dept{align-self:flex-start;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);background:var(--yellow);padding:3px 10px;border-radius:999px;margin-bottom:8px}
@media (max-width:1180px) and (min-width:901px){.tim>*{width:calc((100% - 66px)/4)}}
@media (max-width:900px){
  .tim{display:grid;justify-content:start;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(62%,240px);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 20px;scroll-padding:0 var(--gutter);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .tim::-webkit-scrollbar{display:none}
  .tim>*{scroll-snap-align:start;width:auto}
}
.center.acts-row{justify-content:center}
/* Layanan: ajakan tes level bahasa Prancis */
.tes-strip{display:flex;align-items:center;gap:20px;margin-top:32px;background:radial-gradient(120% 140% at 0% 0%,var(--blue-l),var(--navy) 55%,var(--navy2));color:#fff;border-radius:var(--r);padding:22px 28px;transition:transform .15s}
.tes-strip:hover{transform:translateY(-3px)}
.ts-ic{flex:none;width:54px;height:54px;border-radius:16px;background:var(--yellow);display:grid;place-items:center;font-size:26px}
.ts-bd{flex:1;display:grid;gap:2px}
.ts-bd b{font-size:18px}
.ts-bd span{color:var(--mist);font-size:14.5px}
.tes-strip em{font-style:normal;font-weight:700;color:var(--navy);background:var(--yellow);border-radius:999px;padding:11px 22px;white-space:nowrap}
@media (max-width:700px){
  .tes-strip{flex-wrap:wrap;gap:14px;padding:20px}
  .tes-strip em{width:100%;text-align:center}
}

/* Pilihan bahasa ID / EN di header (tetap tampil di HP, di sebelah tombol menu) */
/* pindah bahasa: ringkas, hanya tampil bahasa lain (ikon globe + kode) */
.lang{display:inline-flex;flex:none;font-size:13px;font-weight:700;line-height:1}
.lang a{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;color:var(--ink);letter-spacing:.3px}
.lang a:before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5c2.6 2.8 3.8 6 3.8 9.5s-1.2 6.7-3.8 9.5c-2.6-2.8-3.8-6-3.8-9.5s1.2-6.7 3.8-9.5z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5c2.6 2.8 3.8 6 3.8 9.5s-1.2 6.7-3.8 9.5c-2.6-2.8-3.8-6-3.8-9.5s1.2-6.7 3.8-9.5z'/%3E%3C/svg%3E") center/contain no-repeat}
.lang a:hover{background:var(--soft);color:var(--blue)}
.lang a.on{display:none}
@media (max-width:1180px){.lang{margin-left:auto}}
@media (min-width:1181px) and (max-width:1279px){.menu a{padding:8px 7px;font-size:14px}}

/* cek gratis (Beranda): 3 alat gratis, kartu ringkas; slider geser di tablet & HP */
.tools{padding:72px 0;background:var(--soft)}
.tools .sec-head{margin-bottom:36px}
.tgl{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tool{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:0 14px 40px rgba(18,28,69,.07);display:flex;gap:16px;align-items:stretch;transition:transform .2s,box-shadow .2s}
.tool:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(18,28,69,.12)}
.tool .ico{width:50px;height:50px;border-radius:14px;flex:none;margin:0}
.tool .ico svg{width:25px;height:25px}
.tool-txt{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.tool h3{font-size:17.5px;font-weight:700;line-height:1.3;margin-bottom:6px}
.tool p{color:var(--muted);font-size:14.5px;line-height:1.55}
.tool .meta{display:inline-block;margin:12px 0 16px;background:#fff6cc;color:var(--navy);font-size:12.5px;font-weight:700;padding:4px 12px;border-radius:999px}
.tool .ico{align-self:flex-start}
.tool-btn{margin-top:auto;box-shadow:0 8px 18px rgba(22,36,94,.18)}
.tool-btn b{transition:transform .2s}
.tool:hover .tool-btn{background:var(--green-d)}
.tool:hover .tool-btn b{transform:translateX(3px)}
@media (max-width:900px){
  .tools{padding:56px 0}
  .tools .sec-head{margin-bottom:24px}
  .tgl{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(80%,320px);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1*var(--gutter));padding:6px var(--gutter) 20px;scroll-padding:0 var(--gutter);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .tgl::-webkit-scrollbar{display:none}
  .tgl>*{scroll-snap-align:start}
  .tool{flex-direction:column;gap:12px;padding:20px 18px}
  .tool .ico{width:42px;height:42px;border-radius:12px}
  .tool .ico svg{width:22px;height:22px}
  .tool-txt{display:flex;flex-direction:column;align-items:flex-start;height:100%}
  .tool h3{font-size:16.5px}
  .tool p{font-size:14px}
  .tool .meta{margin:12px 0 16px}
}
@media (max-width:560px){.tools{padding:44px 0}}
