
:root{ --brand:#0F2742; --brand-alt:#184A78; --accent:#F26822; --ink:#0b1324; --text:#2a2f36; --muted:#5f6b7a; --surface:#f6f8fb; --border:#e6ebf2; }
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; color:var(--text); background:#fff; line-height:1.7; font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility}
a{color:var(--brand-alt); text-decoration:none} a:hover{text-decoration:underline}
.container{width:min(1180px,92%); margin-inline:auto}
.hdr{position:sticky; top:0; z-index:1000; background:#fff; border-bottom:1px solid var(--border)}
.hdr__bar{display:flex; align-items:center; justify-content:space-between; min-height:68px}
.brand{display:flex; align-items:center; gap:.6rem; color:var(--ink); font-weight:700}
.brand__mark{display:inline-grid; place-items:center; width:36px; height:36px; border-radius:8px; background:var(--brand); color:#fff; font-weight:700}
.nav{display:flex; align-items:center; gap:.8rem}
.nav a{padding:.5rem .75rem; border-radius:12px}
.nav__toggle{display:none; flex-direction:column; gap:4px; background:transparent; border:none; cursor:pointer}
.nav__toggle span{width:24px; height:2px; background:#0b1324; display:block}
.display{font-family:Montserrat, sans-serif; font-weight:700; line-height:1.12; font-size:clamp(1.9rem, 2.4vw + 1rem, 3rem); color:var(--ink); margin:0 0 .4rem}
.display-sm{font-family:Montserrat, sans-serif; font-weight:700; line-height:1.14; font-size:clamp(1.6rem, 1.6vw + 1rem, 2.2rem); color:var(--ink); margin:.2rem 0 .4rem}
.h2{font-family:Montserrat, sans-serif; font-weight:600; font-size:clamp(1.1rem, 1.2vw + .8rem, 1.5rem); color:var(--ink); margin:0 0 .6rem}
.h3{font-weight:700; color:var(--ink); margin:1rem 0 .4rem}
.lead{font-size:1.1rem; color:#303742}
.small{font-size:.96rem}
.muted{color:var(--muted)}
.link{font-weight:700; color:var(--brand-alt)}
.btn{display:inline-block; padding:.85rem 1.1rem; border-radius:12px; font-weight:700; border:2px solid transparent; transition:.2s; text-align:center}
.btn:hover{transform:translateY(-1px)}
.btn--primary{background:var(--brand-alt); color:#fff; border-color:var(--brand-alt)}
.btn--ghost{background:#fff; border-color:var(--border); color:var(--ink)}
.section{padding:72px 0}
.section--alt{background:var(--surface)}
.sep{border:0; height:1px; background:var(--border); margin:28px 0}
.hero{position:relative; isolation:isolate; background:linear-gradient(180deg,#fff, #f7f9fc)}
.hero__bg{height:48vh; background:linear-gradient(135deg,#dfe8f3,#eef2f8)}
.hero__content{margin-top:-14vh; background:rgba(255,255,255,.72); backdrop-filter:saturate(140%) blur(8px); border:1px solid var(--border); border-radius:16px; padding:18px 20px}
.actions{display:flex; gap:.6rem; flex-wrap:wrap}
.grid{display:grid; gap:18px}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff; border:1px solid var(--border); border-radius:14px; padding:16px; box-shadow:0 6px 16px rgba(0,0,0,.04)}
.card--raise{transition:.22s}
.card--raise:hover{transform:translateY(-3px); box-shadow:0 16px 28px rgba(0,0,0,.06)}
.card--solid{background:#fff}
.list{list-style:none; padding:0; margin:0; display:grid; gap:.4rem}
.steps{counter-reset: step; list-style:none; padding:0; display:grid; gap:.5rem}
.steps li::marker{content:''}
.steps li{position:relative; padding-left:2.2rem}
.steps li::before{counter-increment: step; content: counter(step); position:absolute; left:0; top:.15rem; width:1.6rem; height:1.6rem; border-radius:50%; background:var(--brand); color:#fff; display:grid; place-items:center; font-weight:700; font-size:.9rem}
.news .media{aspect-ratio:16/9; background:linear-gradient(135deg,#dfe8f3,#eef2f8); border-radius:12px; margin-bottom:.6rem; border:1px solid var(--border)}
.tag{display:inline-block; font-size:.75rem; font-weight:700; color:var(--brand-alt); text-transform:uppercase; letter-spacing:.06em; background:#eef3fb; padding:.25rem .5rem; border-radius:999px; border:1px solid #dde6f5; margin-bottom:.4rem}
.cta__inner{display:grid; place-items:center; text-align:center; gap:.6rem; background:linear-gradient(180deg, #ffffff, #f8fafc); border:1px solid var(--border); border-radius:16px; padding:28px}
.table-wrap{overflow:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--border); border-radius:12px; background:#fff}
.table{width:100%; border-collapse:separate; border-spacing:0; font-size:.98rem; min-width:780px}
.table th, .table td{padding:.9rem 1rem; text-align:left; vertical-align:top; border-bottom:1px solid var(--border)}
.table thead th{position:sticky; top:0; background:#f3f6fb; color:var(--ink); z-index:1; box-shadow:inset 0 -1px 0 var(--border)}
.table--striped tbody tr:nth-child(odd){background:#fcfdff}
.table--modern tbody tr:hover{background:#fafcff}
.form{display:grid; gap:.8rem; background:#fff; border:1px solid var(--border); border-radius:14px; padding:18px}
.form input,.form textarea{width:100%; padding:.9rem 1rem; border:1px solid var(--border); border-radius:10px; font:inherit}
.chk{display:flex; align-items:center; gap:.5rem}
.form__msg{margin:0; font-weight:700; color:var(--brand)}
.map iframe{width:100%; height:320px; border:0; border-radius:12px}
.ftr{background:#0f2742; color:#dbe9ef; margin-top:40px; padding:24px 0}
.ftr a{color:#dbe9ef}
.ftr__grid{display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:18px}
.ftr__copy{border-top:1px solid rgba(255,255,255,.16); margin-top:12px; padding-top:10px; text-align:center}
@media (max-width: 1024px){ .grid--4{grid-template-columns:repeat(2,1fr)} .grid--3{grid-template-columns:repeat(2,1fr)} .ftr__grid{grid-template-columns:1fr 1fr} }
@media (max-width: 760px){
  .nav{position:fixed; inset:68px 0 auto 0; background:#ffffff; padding:12px; display:none; flex-direction:column; gap:6px; border-bottom:1px solid var(--border)}
  .nav.show{display:flex}
  .nav__toggle{display:flex}
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr}
  .hero__content{margin-top:-10vh}
}

.brand__logo{height:48px;max-width:220px;object-fit:contain;}


/* --- Form Pro --- */
.form--pro .form__grid label{display:block}
.form--pro input, .form--pro select, .form--pro textarea{background:#fff}
.form--pro .err{color:#b42318; font-size:.9rem}
.form--pro [aria-invalid="true"]{border-color:#e09494; background:#fff6f6}
.fieldset{border:1px dashed var(--border); border-radius:12px; padding:12px; margin:10px 0 6px 0}
.fieldset legend{font-weight:700; color:var(--ink)}
.radios{display:flex; gap:12px; flex-wrap:wrap}
.radio{display:flex; align-items:center; gap:6px}
.chk--soft{opacity:.9}
.form__actions{display:flex; align-items:center; gap:12px; flex-wrap:wrap}


/* --- Consensi & Upload --- */
.consent-group{margin-top:10px; padding:14px; border:1px solid var(--border); border-radius:12px; background:#fafcff; display:grid; gap:.4rem}
.consent-group .chk{align-items:flex-start}
.consent-group .chk span{line-height:1.5}
.upload label{display:block}
.upload input[type="file"]{display:block; margin-top:.4rem}
.err{color:#b42318; font-size:.9rem}
