/* ==========================================================
   PT ONE CONNECT INDONESIA — Stylesheet Global
   Skema warna mengikuti logo: MERAH & HITAM
   ========================================================== */
:root {
  --merah: #d81e28;
  --merah-gelap: #a5111b;
  --merah-terang: #ff5c66;
  --gelap: #12161f;
  --gelap-2: #1d2735;
  --abu-terang: #f5f6f8;
  --garis: #e8ebf0;
  --teks: #3a4254;
  --muda: #6b7688;
  --putih: #ffffff;
  --radius: 16px;
  --bayangan: 0 10px 30px rgba(18,22,31,.10);
  --bayangan-besar: 0 22px 50px rgba(18,22,31,.16);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif; color: var(--teks); background: var(--putih); line-height: 1.7; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
.container { width: min(1160px, 92%); margin: 0 auto; }
section { padding: 90px 0; }

.eyebrow { display: inline-block; font-size: .8rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--merah); margin-bottom: 12px; }
h2.judul { font-size: clamp(1.7rem, 4vw, 2.5rem); color: var(--gelap); line-height: 1.25; margin-bottom: 16px; font-weight: 800; }
.subjudul { max-width: 640px; color: var(--muda); margin-bottom: 48px; }
.tengah { text-align: center; }
.tengah .subjudul { margin-left: auto; margin-right: auto; }

.btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 30px; border-radius: 50px; font-weight: 700; font-size: .95rem; transition: .3s; cursor: pointer; border: none; }
.btn-utama { background: linear-gradient(135deg, var(--merah), var(--merah-gelap)); color: #fff; box-shadow: 0 8px 20px rgba(216,30,40,.35); }
.btn-utama:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(216,30,40,.45); }
.btn-garis { border: 2px solid rgba(255,255,255,.6); color: #fff; }
.btn-garis:hover { background: rgba(255,255,255,.12); border-color: #fff; }
.btn-gelap { border: 2px solid var(--gelap); color: var(--gelap); background: transparent; }
.btn-gelap:hover { background: var(--gelap); color: #fff; }

/* ============ TOPBAR ============ */
.topbar { background: var(--gelap); color: #c6cddb; font-size: .82rem; padding: 9px 0; }
.topbar .container { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.topbar a:hover { color: var(--merah-terang); }

/* ============ NAVBAR + DROPDOWN ============ */
header.navbar { position: sticky; top: 0; z-index: 1000; background: #fff; transition: box-shadow .3s; }
header.navbar.scrolled { box-shadow: 0 4px 24px rgba(18,22,31,.12); }
.nav-wrap { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; gap: 20px; }
.logo { display: flex; align-items: center; flex-shrink: 0; }
.logo img { height: 48px; width: auto; }
.nav-menu { display: flex; gap: 32px; align-items: center; }
.nav-menu > a, .nav-drop-btn { font-weight: 600; font-size: .95rem; color: var(--teks); position: relative; background: none; border: none; font-family: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; padding: 6px 0; }
.nav-menu > a::after { content: ''; position: absolute; left: 0; bottom: 0; width: 0; height: 3px; background: var(--merah); border-radius: 3px; transition: width .3s; }
.nav-menu > a:hover::after, .nav-menu > a.aktif::after { width: 100%; }
.nav-drop-btn svg { width: 14px; height: 14px; transition: transform .3s; }
.nav-dropdown { position: relative; }
.nav-drop-menu { position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%) translateY(10px); background: #fff; min-width: 220px; border-radius: 14px; box-shadow: var(--bayangan-besar); border: 1px solid var(--garis); padding: 10px; opacity: 0; visibility: hidden; transition: .25s; z-index: 50; }
.nav-dropdown:hover .nav-drop-menu, .nav-dropdown.aktif .nav-drop-menu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.nav-dropdown:hover .nav-drop-btn svg, .nav-dropdown.aktif .nav-drop-btn svg { transform: rotate(180deg); }
.nav-drop-menu a { display: block; padding: 11px 16px; border-radius: 10px; font-size: .9rem; font-weight: 600; transition: .2s; }
.nav-drop-menu a:hover { background: var(--abu-terang); color: var(--merah); }
.nav-toggle { display: none; background: none; border: none; cursor: pointer; padding: 8px; }
.nav-toggle svg { width: 26px; height: 26px; stroke: var(--gelap); }

/* ============ HERO UTAMA ============ */
/* ============ HERO SLIDER + EFEK ZOOM (KEN BURNS) — VERSI PERBAIKAN ============ */
:root { --durasi-slide: 7s; }

.hero-slider {
  position: relative; display: grid;
  min-height: 88vh;            /* fallback untuk browser lama */
  min-height: 88svh;           /* svh = ukuran layar HP yang akurat (aman utk URL bar) */
  overflow: hidden; background: var(--gelap);
}

/* --- KUNCI PERBAIKAN: semua slide ditumpuk di SATU sel grid ---
   Slide tidak lagi position:absolute, sehingga tinggi slider
   SELALU mengikuti konten tertinggi → tidak mungkin runtuh/terpotong. */
.slide {
  grid-area: 1 / 1;             /* tumpuk semua slide di sel grid yang sama */
  position: relative;
  display: flex; align-items: center;
  opacity: 0; visibility: hidden; z-index: 1; pointer-events: none;
  transition: opacity 1.1s ease, visibility 0s linear 1.1s;
}
.slide.aktif {
  opacity: 1; visibility: visible; z-index: 2; pointer-events: auto;
  transition: opacity 1.1s ease, visibility 0s;
}
.slide-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;          /* foto MEMENUHI slide, kelebihan otomatis terpotong */
  object-position: center;    /* titik fokus foto; ubah ke 'center 30%' kalau objek utamanya di bagian atas */
}
.slide-overlay {
  position: absolute; inset: -20%; pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(11,14,20,.35), transparent 20%, transparent 80%, rgba(11,14,20,.5)),
    linear-gradient(100deg, rgba(11,14,20,.88) 12%, rgba(18,22,31,.55) 55%, rgba(18,22,31,.22) 100%);
}

/* --- EFEK KEN BURNS (zoom perlahan) --- */
.slide.aktif .slide-img { animation: kb-zoom-in var(--durasi-slide) linear forwards; }
.slide.z-out.aktif .slide-img { animation: kb-zoom-out var(--durasi-slide) linear forwards; }
@keyframes kb-zoom-in  { from { transform: scale(1.27); } to { transform: scale(1.32); } }
@keyframes kb-zoom-out { from { transform: scale(1.32); } to { transform: scale(1.27); } }
.hero-slider:hover .slide.aktif .slide-img,
.hero-slider:hover .dot.aktif::after { animation-play-state: paused; }

/* --- Konten slide --- */
.slide-konten { position: relative; z-index: 3; max-width: 730px; color: #fff; padding: 100px 0 120px; }
.slide-konten > * { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease; }
.slide.aktif .slide-konten > * { opacity: 1; transform: none; }
.slide.aktif .slide-konten > *:nth-child(1) { transition-delay: .35s; }
.slide.aktif .slide-konten > *:nth-child(2) { transition-delay: .5s; }
.slide.aktif .slide-konten > *:nth-child(3) { transition-delay: .65s; }
.slide.aktif .slide-konten > *:nth-child(4) { transition-delay: .8s; }

.hero-badge { display: inline-flex; align-items: center; gap: 8px; padding: 8px 18px; border: 1px solid rgba(255,255,255,.3); border-radius: 50px; font-size: .8rem; font-weight: 600; letter-spacing: 1.5px; margin-bottom: 22px; background: rgba(255,255,255,.06); backdrop-filter: blur(6px); }
.hero-badge i { width: 8px; height: 8px; border-radius: 50%; background: var(--merah-terang); display: inline-block; }
.hero-title { font-size: clamp(2.1rem, 5.5vw, 3.4rem); font-weight: 800; line-height: 1.15; margin-bottom: 20px; color: #fff; text-wrap: balance; }
.hero-title span { color: var(--merah-terang); }
.slide-konten p { font-size: 1.05rem; color: #d3dae6; max-width: 560px; margin-bottom: 32px; }
.hero-cta { display: flex; gap: 16px; flex-wrap: wrap; }

/* --- Navigasi: titik progres + panah --- */
.slider-nav { position: absolute; bottom: 34px; left: 0; right: 0; z-index: 5; }
.slider-nav .container { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.dots { display: flex; gap: 10px; }
.dot { width: 38px; height: 6px; border-radius: 50px; border: none; padding: 0; background: rgba(255,255,255,.35); cursor: pointer; position: relative; overflow: hidden; }
.dot.aktif { background: rgba(255,255,255,.25); }
.dot.aktif::after { content: ''; position: absolute; inset: 0; background: var(--merah-terang); transform-origin: left; animation: isi-dot var(--durasi-slide) linear forwards; }
@keyframes isi-dot { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.arrow { width: 48px; height: 48px; border-radius: 50%; cursor: pointer; border: 1.5px solid rgba(255,255,255,.4); background: rgba(255,255,255,.08); color: #fff; display: grid; place-items: center; backdrop-filter: blur(6px); transition: .3s; }
.arrow:hover { background: var(--merah); border-color: var(--merah); }
.arrow svg { width: 20px; height: 20px; stroke: #fff; }

/* --- Mobile --- */
@media (max-width: 768px) {
  .hero-slider { min-height: auto; }        /* AMAN sekarang! tinggi ikut konten (grid) */
  .slide-konten { padding: 70px 0 130px; }   /* padding bawah memberi ruang utk navigasi */
  .slide-konten p { font-size: .97rem; }
  .arrow { width: 42px; height: 42px; }
  .dot { width: 28px; }
}
@media (max-width: 560px) {
  .hero-title { font-size: 1.95rem; }
  .hero-cta { gap: 12px; }
  .hero-cta .btn { width: 100%; justify-content: center; }  /* tombol jadi full-width, enak di-tap */
}

/* ============ TENTANG / NILAI ============ */
.tentang-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.nilai-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.nilai-kartu { background: var(--abu-terang); border-radius: var(--radius); padding: 26px 22px; transition: .3s; border: 1px solid transparent; }
.nilai-kartu:hover { background: #fff; transform: translateY(-6px); box-shadow: var(--bayangan); border-color: var(--garis); }
.nilai-ikon { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; background: rgba(216,30,40,.1); margin-bottom: 16px; }
.nilai-ikon svg { width: 26px; height: 26px; stroke: var(--merah); }
.nilai-kartu h3 { color: var(--gelap); font-size: 1rem; margin-bottom: 6px; }
.nilai-kartu p { font-size: .85rem; color: var(--muda); }
.cek-list li { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; font-size: .95rem; }
.cek-list li::before { content: '✓'; flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%; background: rgba(216,30,40,.12); color: var(--merah); font-weight: 800; display: grid; place-items: center; font-size: .75rem; margin-top: 2px; }

/* ============ PRODUK ============ */
#produk { background: var(--abu-terang); }
.produk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 24px; }
.produk-kartu { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--bayangan); transition: .35s; display: flex; flex-direction: column; }
.produk-kartu:hover { transform: translateY(-10px); }
.produk-cover { height: 150px; display: grid; place-items: center; position: relative; }
.cover-1 { background: linear-gradient(135deg, #d81e28, #a5111b); }
.cover-2 { background: linear-gradient(135deg, #3a4a63, #12161f); }
.cover-3 { background: linear-gradient(135deg, #2a8f8f, #14555a); }
.cover-4 { background: linear-gradient(135deg, #5c1620, #12161f); }
.produk-cover svg { width: 56px; height: 56px; stroke: #fff; opacity: .95; }
.produk-cover .nomor { position: absolute; top: 10px; right: 16px; font-size: 2.4rem; font-weight: 800; color: rgba(255,255,255,.16); }
.produk-badan { padding: 26px; flex: 1; display: flex; flex-direction: column; }
.produk-badan h3 { color: var(--gelap); font-size: 1.1rem; margin-bottom: 10px; }
.produk-badan p { font-size: .88rem; color: var(--muda); margin-bottom: 18px; flex: 1; }
.produk-link { color: var(--merah); font-weight: 700; font-size: .88rem; display: inline-flex; gap: 8px; align-items: center; }
.produk-link:hover { text-decoration: underline; }
.produk-link::after { content: '→'; transition: .3s; }
.produk-link:hover::after { transform: translateX(4px); }

/* ============ STATISTIK ============ */
.statistik { background: var(--gelap); color: #fff; padding: 60px 0; }
.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; text-align: center; }
.stat-angka { font-size: 2.6rem; font-weight: 800; color: var(--merah-terang); }
.stat-label { font-size: .85rem; color: #9aa8bc; margin-top: 4px; }

/* ============ CTA ============ */
.cta-box {
  background: linear-gradient(120deg, var(--gelap-2), var(--gelap));
  border-radius: 24px; padding: 56px 50px; color: #fff;
  display: flex; justify-content: space-between; align-items: center; gap: 30px; flex-wrap: wrap;
  position: relative; overflow: hidden;
}
.cta-box::before {
  content: ''; position: absolute; right: -80px; top: -80px; width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(216,30,40,.3), transparent 70%); border-radius: 50%;
  pointer-events: none; /* ← KUNCI UTAMANYA: dekorasi tidak boleh menangkap klik */
}
.cta-box h2 { font-size: clamp(1.4rem, 3vw, 2rem); margin-bottom: 8px; position: relative; }
.cta-box p { color: #a9b6c9; position: relative; }
.cta-box .btn { position: relative; z-index: 2; } /* ← jaminan ekstra: tombol selalu di atas dekorasi */

/* ============ KONTAK ============ */
.kontak-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 50px; align-items: start; }
.info-kartu { display: flex; gap: 16px; padding: 20px; border-radius: var(--radius); background: var(--abu-terang); margin-bottom: 16px; transition: .3s; align-items: flex-start; }
.info-kartu:hover { background: #fff; box-shadow: var(--bayangan); }
.info-ikon { width: 46px; height: 46px; border-radius: 12px; background: var(--gelap); display: grid; place-items: center; flex-shrink: 0; }
.info-ikon svg { width: 22px; height: 22px; stroke: var(--merah-terang); }
.info-kartu h4 { color: var(--gelap); font-size: .95rem; margin-bottom: 2px; }
.info-kartu p, .info-kartu a { font-size: .88rem; color: var(--muda); }
.info-kartu a:hover { color: var(--merah); }
.form-kartu { background: #fff; border-radius: var(--radius); box-shadow: var(--bayangan); padding: 36px; border: 1px solid var(--garis); }
.form-grup { margin-bottom: 18px; }
.form-grup label { display: block; font-size: .85rem; font-weight: 700; color: var(--gelap); margin-bottom: 7px; }
.form-grup input, .form-grup textarea { width: 100%; padding: 13px 16px; border: 1.5px solid #dde1e8; border-radius: 12px; font-family: inherit; font-size: .92rem; transition: .25s; background: #fbfcfd; color: var(--teks); }
.form-grup input:focus, .form-grup textarea:focus { outline: none; border-color: var(--merah); background: #fff; box-shadow: 0 0 0 4px rgba(216,30,40,.12); }
.form-grup textarea { resize: vertical; min-height: 130px; }
.hp { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }
.status { margin-top: 14px; padding: 13px 16px; border-radius: 12px; font-size: .88rem; display: none; }
.status.sukses { display: block; background: #e8f8ee; color: #1a7f37; border: 1px solid #b7e1c3; }
.status.gagal { display: block; background: #fdecec; color: #c0392b; border: 1px solid #f5c6c6; }

/* ============ HALAMAN PRODUK (SUB-HALAMAN) ============ */
.page-hero { background: linear-gradient(120deg, rgba(18,22,31,.94) 30%, rgba(29,39,53,.86)), url('assets/hero.jpg') center/cover no-repeat; color: #fff; padding: 80px 0 70px; }
.page-hero h1 { font-size: clamp(1.9rem, 4vw, 2.8rem); font-weight: 800; margin: 14px 0 12px; }
.page-hero p { max-width: 640px; color: #c6cddb; }
.breadcrumb { font-size: .85rem; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.breadcrumb a { color: #c6cddb; }
.breadcrumb a:hover { color: var(--merah-terang); }
.breadcrumb span { color: #6b7688; }
.breadcrumb b { color: #fff; font-weight: 700; }

.isi-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 54px; align-items: center; }
.isi-grid p + p { margin-top: 14px; }
.isi-gambar { border-radius: var(--radius); overflow: hidden; box-shadow: var(--bayangan-besar); }
.foto-placeholder { height: 380px; background: repeating-linear-gradient(45deg, #232f42, #232f42 14px, #1d2735 14px, #1d2735 28px); display: grid; place-items: center; text-align: center; color: #93a3ba; font-size: .85rem; line-height: 1.8; }
.foto-placeholder svg { width: 44px; height: 44px; margin: 0 auto 10px; stroke: #93a3ba; }

.fitur-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; }
.fitur-kartu { background: #fff; border: 1px solid var(--garis); border-radius: var(--radius); padding: 30px 26px; transition: .3s; }
.fitur-kartu:hover { transform: translateY(-6px); box-shadow: var(--bayangan); border-color: transparent; }
.fitur-ikon { width: 54px; height: 54px; border-radius: 14px; background: rgba(216,30,40,.1); display: grid; place-items: center; margin-bottom: 16px; }
.fitur-ikon svg { width: 26px; height: 26px; stroke: var(--merah); }
.fitur-kartu h3 { color: var(--gelap); font-size: 1.05rem; margin-bottom: 8px; }
.fitur-kartu p { font-size: .9rem; color: var(--muda); }

.proyek-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.proyek-kartu { background: #fff; border: 1px solid var(--garis); border-radius: 14px; padding: 24px; transition: .3s; }
.proyek-kartu:hover { transform: translateY(-5px); box-shadow: var(--bayangan); }
.proyek-kartu .tag { display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--merah); background: rgba(216,30,40,.08); padding: 4px 12px; border-radius: 50px; margin-bottom: 12px; }
.proyek-kartu h3 { color: var(--gelap); font-size: 1.05rem; margin-bottom: 6px; }
.proyek-kartu p { font-size: .85rem; color: var(--muda); }

.badge-list { display: flex; flex-wrap: wrap; gap: 12px; }
.badge-item { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--garis); padding: 10px 18px; border-radius: 50px; font-size: .85rem; font-weight: 600; color: var(--gelap); }
.badge-item::before { content: '✓'; color: var(--merah); font-weight: 800; }

.tabel-spec { width: 100%; border-collapse: collapse; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: var(--bayangan); }
.tabel-spec th { background: var(--gelap); color: #fff; text-align: left; padding: 14px 18px; font-size: .9rem; }
.tabel-spec td { padding: 13px 18px; border-bottom: 1px solid var(--garis); font-size: .9rem; }
.tabel-spec tr:last-child td { border-bottom: none; }
.tabel-spec tr:nth-child(even) { background: var(--abu-terang); }

.video-box { position: relative; padding-bottom: 56.25%; border-radius: var(--radius); overflow: hidden; box-shadow: var(--bayangan-besar); background: var(--gelap); }
.video-box iframe, .video-box video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ============ FOOTER ============ */
footer { background: #0b0e14; color: #8ea0b8; padding: 70px 0 0; font-size: .9rem; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 44px; }
.footer-logo { background: #fff; display: inline-block; padding: 8px 12px; border-radius: 10px; margin-bottom: 16px; }
.footer-logo img { height: 40px; }
footer h4 { color: #fff; margin-bottom: 18px; font-size: 1rem; }
.footer-links li { margin-bottom: 10px; }
.footer-links a:hover { color: var(--merah-terang); }
.footer-bawah { border-top: 1px solid rgba(255,255,255,.08); padding: 20px 0; text-align: center; font-size: .82rem; }

#keAtas { position: fixed; bottom: 24px; right: 24px; width: 46px; height: 46px; border-radius: 50%; border: none; background: var(--merah); color: #fff; font-size: 1.2rem; cursor: pointer; opacity: 0; pointer-events: none; transition: .3s; box-shadow: 0 8px 20px rgba(216,30,40,.4); z-index: 900; }
#keAtas.tampil { opacity: 1; pointer-events: auto; }

/* ============ ANIMASI REVEAL ============ */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease; }
.reveal.tampil { opacity: 1; transform: none; }
.delay-1 { transition-delay: .1s; } .delay-2 { transition-delay: .2s; } .delay-3 { transition-delay: .3s; }

/* ============ RESPONSIVE ============ */
@media (max-width: 920px) {
  .tentang-grid, .kontak-grid, .isi-grid { grid-template-columns: 1fr; }
  .stat-grid { grid-template-columns: 1fr 1fr; gap: 34px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  section { padding: 64px 0; }
  .nav-menu { position: fixed; top: 0; right: -100%; height: 100vh; width: min(320px, 80vw); background: var(--gelap); flex-direction: column; justify-content: flex-start; padding-top: 100px; gap: 4px; transition: right .4s; box-shadow: -10px 0 40px rgba(0,0,0,.3); align-items: stretch; }
  .nav-menu.aktif { right: 0; }
  .nav-menu > a, .nav-drop-btn { color: #fff; font-size: 1.05rem; padding: 12px 24px; }
  .nav-menu > a::after { display: none; }
  .nav-drop-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: none; background: rgba(255,255,255,.06); margin: 0 24px 12px; display: none; }
  .nav-dropdown.aktif .nav-drop-menu { display: block; }
  .nav-drop-menu a { color: #c6cddb; }
  .nav-toggle { display: block; z-index: 1001; position: relative; }
  .topbar .container { justify-content: center; }
  .logo img { height: 40px; }
}
@media (max-width: 560px) {
  .nilai-grid, .footer-grid { grid-template-columns: 1fr; }
  .hero { min-height: auto; }
  .form-kartu { padding: 26px 20px; }
  .cta-box { padding: 40px 26px; }
}
/* ============ VIDEO COMPANY PROFILE ============ */
.video-profil { margin-top: 72px; }
.video-wrap {
  position: relative; aspect-ratio: 16/9; max-width: 920px; margin: 0 auto;
  border-radius: var(--radius); overflow: hidden;
  box-shadow: var(--bayangan-besar); background: var(--gelap);
}
.video-wrap video, .video-wrap iframe {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0;
}

/* Tombol play custom */
.video-play {
  position: absolute; inset: 0; width: 100%; z-index: 2; border: none; cursor: pointer;
  background: rgba(11,14,20,.32); transition: background .3s; padding: 0;
}
.video-play:hover { background: rgba(11,14,20,.14); }
.play-tengah { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.play-btn {
  width: 90px; height: 90px; border-radius: 50%; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--merah), var(--merah-gelap));
  transition: transform .3s; animation: denyut 2.2s infinite;
}
.video-play:hover .play-btn, .yt-facade:hover .play-btn { transform: scale(1.1); }
.play-btn svg { width: 34px; height: 34px; fill: #fff; margin-left: 5px; }
@keyframes denyut {
  0%   { box-shadow: 0 0 0 0 rgba(216,30,40,.45); }
  70%  { box-shadow: 0 0 0 26px rgba(216,30,40,0); }
  100% { box-shadow: 0 0 0 0 rgba(216,30,40,0); }
}
.play-label {
  position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%);
  color: #fff; font-weight: 700; font-size: .92rem; letter-spacing: 2.5px;
  text-transform: uppercase; text-shadow: 0 2px 10px rgba(0,0,0,.7); pointer-events: none; z-index: 3;
}

@media (max-width: 560px) {
  .play-btn { width: 68px; height: 68px; }
  .play-btn svg { width: 26px; height: 26px; }
}
/* Map peta */
.map-box{margin-top:26px;border:1px solid var(--line);border-radius:20px;overflow:hidden;height:230px;background:var(--card)}
.map-box iframe{width:100%;height:100%;border:0;filter:invert(.88) hue-rotate(185deg) saturate(.35)}