:root{
  --navy:#062653;
  --navy-dark:#031b3d;
  --gold:#d99a16;
  --gold-light:#f4bd3d;
  --white:#fff;
  --bg:#f5f7fb;
  --text:#071b3a;
  --muted:#607089;
  --border:#dfe6f0;
  --shadow:0 18px 45px rgba(6,38,83,.14);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}
button,input{font-family:inherit}
.container{width:min(1400px,90%);margin:auto}

.top-strip{height:32px;background:var(--navy);color:#fff;font-size:13px}
.top-strip-inner{height:32px;display:flex;justify-content:flex-end;align-items:center;gap:22px}
.font-control,.top-actions{display:flex;gap:14px;align-items:center}
.font-control button,.top-actions button{background:transparent;border:0;color:#fff;font-weight:700;cursor:pointer}
.top-actions a{color:#fff;font-weight:700}
.register-btn{background:var(--navy-dark);padding:8px 16px;border-radius:6px}

.main-header{height:112px;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.06);position:sticky;top:0;z-index:50}
.header-inner{height:112px;display:grid;grid-template-columns:360px 330px 1fr;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:14px}
.brand-logo,.footer-logo,.chatbot-logo,.mini-logo,.profile-emblem{
  border-radius:50%;
  border:5px solid var(--gold);
  background:radial-gradient(circle,#08366f 0 55%,transparent 56%),conic-gradient(#d99a16,#f8c654,#d99a16);
  position:relative;
}
.brand-logo{width:104px;height:104px}
.brand-logo:before,.footer-logo:before,.chatbot-logo:before,.mini-logo:before,.profile-emblem:before{
  content:"";position:absolute;inset:25%;
  background:linear-gradient(90deg,transparent 0 17%,#f5c451 18% 31%,transparent 32% 42%,#f5c451 43% 56%,transparent 57% 67%,#f5c451 68% 81%,transparent 82%);
  border-radius:4px;
}
.brand-text h1{font-size:40px;line-height:.88;color:var(--navy);font-weight:900}
.brand-text span{display:block;margin-top:10px;font-size:10px;letter-spacing:6px;color:var(--navy)}

.search-box{height:44px;border:1px solid var(--border);border-radius:8px;display:flex;overflow:hidden;background:#fff}
.search-box input{flex:1;border:0;outline:0;padding:0 16px}
.search-box button{width:48px;border:0;background:#fff;cursor:pointer}
.nav-menu{display:flex;justify-content:flex-end;gap:28px;font-size:14px;font-weight:900;text-transform:uppercase}
.nav-menu a{height:112px;display:flex;align-items:center;border-bottom:3px solid transparent}
.nav-menu a.active,.nav-menu a:hover{border-color:var(--gold);color:var(--navy)}

.hero{position:relative;min-height:360px;overflow:hidden;background:#dce6f0}
.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.88) 25%,rgba(255,255,255,.18) 48%,rgba(6,38,83,.30)),linear-gradient(135deg,#eef3f8,#d7e1eb 28%,#a9b9ca 29%,#4f6884 65%,#263f5d)}
.hero-bg:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.26) 0 2px,transparent 2px 110px)}
.hero-bg:after{content:"KANTOR IMIGRASI AMARASI";position:absolute;right:210px;top:92px;color:var(--gold);font-size:24px;font-weight:900}
.hero-inner{position:relative;z-index:2;min-height:360px;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:36px 0}
.hero-content{width:560px}
.hero-welcome{color:var(--gold);font-size:20px;font-weight:900;margin-bottom:8px}
.hero h2{font-size:58px;line-height:.98;color:var(--navy);font-weight:900}
.hero h3{margin-top:10px;color:var(--gold);font-size:23px;font-weight:900;letter-spacing:9px}
.hero-content p:not(.hero-welcome){margin-top:18px;max-width:470px;line-height:1.65;font-size:16px}
.primary-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;margin-top:20px;padding:0 26px;background:var(--navy);color:#fff;border-radius:5px;font-weight:900}

.quick-access{width:265px;background:#fff;border-radius:10px;padding:25px 26px;box-shadow:var(--shadow)}
.quick-access h4{font-size:20px;margin-bottom:18px;font-weight:900}
.quick-access a{display:block;padding:10px 0;font-size:14px}
.quick-access a:hover{color:var(--gold)}

.services-section{padding:18px 0}
.service-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.service-card{background:#fff;border:1px solid var(--border);border-radius:10px;min-height:190px;padding:22px;box-shadow:0 8px 22px rgba(6,38,83,.06);transition:.25s}
.service-card:hover{transform:translateY(-5px);box-shadow:0 16px 34px rgba(6,38,83,.14)}
.service-icon{width:54px;height:54px;border-radius:7px;background:linear-gradient(180deg,var(--navy),var(--navy-dark));position:relative}
.service-icon:after{position:absolute;inset:0;display:grid;place-items:center;color:var(--gold-light);font-weight:900}
.passport-icon:after{content:"◎";font-size:34px}
.visa-icon:after{content:"VISA";font-size:12px}
.stay-icon:after{content:"▤";font-size:30px}
.status-icon:after{content:"✓";font-size:30px}
.fee-icon:after{content:"▦";font-size:30px}
.service-card h3{margin-top:13px;color:var(--navy);font-size:18px;line-height:1.2;font-weight:900}
.service-card p{margin-top:12px;color:#1d2f4a;font-size:14px;line-height:1.5}
.service-card a{display:inline-block;margin-top:16px;color:var(--navy);font-size:13px;font-weight:900}

.profile-section{padding:45px 0;background:#fff}
.profile-layout{display:grid;grid-template-columns:420px 1fr;gap:42px;align-items:center}
.profile-visual{height:285px;border-radius:16px;background:linear-gradient(135deg,rgba(6,38,83,.2),rgba(6,38,83,.82)),linear-gradient(135deg,#dbe5ef,#526d8a);display:grid;place-items:center;box-shadow:var(--shadow)}
.profile-emblem{width:130px;height:130px}
.section-label{color:var(--gold);font-size:13px;font-weight:900;letter-spacing:3px;margin-bottom:10px}
.section-label.center{text-align:center}
.section-title{text-align:center;color:var(--navy);font-size:34px;font-weight:900;margin-bottom:28px}
.profile-content h2{font-size:38px;color:var(--navy);font-weight:900;margin-bottom:16px}
.profile-content p{font-size:16px;line-height:1.75;color:#1d2f4a}
.value-list{margin-top:22px;display:grid;gap:12px}
.value-list div{background:#f4f7fb;border-left:5px solid var(--gold);border-radius:8px;padding:14px 16px;display:grid;grid-template-columns:140px 1fr;gap:12px}
.value-list strong{color:var(--navy)}
.value-list span{color:var(--muted)}

.faq-section{padding:45px 0;background:#f5f7fb}
.faq-list{max-width:900px;margin:auto;display:grid;gap:12px}
.faq-item{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.faq-item button{width:100%;border:0;background:#fff;color:var(--navy);padding:18px 20px;display:flex;justify-content:space-between;font-size:16px;font-weight:900;cursor:pointer;text-align:left}
.faq-item p{display:none;padding:0 20px 18px;color:var(--muted);line-height:1.65}
.faq-item.open p{display:block}
.faq-item.open button span{transform:rotate(45deg)}

.map-section{padding:45px 0;background:#fff}
.map-box{height:360px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--border)}
.map-box iframe{width:100%;height:100%;border:0}

.site-footer{background:var(--navy);color:#fff;padding:38px 0 0}
.footer-layout{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.footer-logo{width:82px;height:82px;margin-bottom:12px}
.site-footer h3{font-size:26px;margin-bottom:8px}
.site-footer h4{font-size:18px;margin-bottom:14px;color:var(--gold-light)}
.site-footer p,.site-footer a{display:block;margin-bottom:8px;color:#dce6f0}
.footer-bottom{text-align:center;margin-top:30px;padding:16px;background:var(--navy-dark);font-size:13px}

.chatbot{position:fixed;right:28px;bottom:84px;width:340px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.25);z-index:90}
.chatbot-header{height:62px;background:var(--navy);color:#fff;display:flex;align-items:center;gap:12px;padding:0 18px}
.chatbot-logo{width:36px;height:36px;border-width:2px}
.chatbot-header small{display:block;color:#62ff8d;font-size:11px}
.chatbot-header button{margin-left:auto;background:transparent;border:0;color:#fff;font-size:22px;cursor:pointer}
.chatbot-body{height:265px;overflow:auto;padding:16px;background:#fff}
.bot-message,.user-message{max-width:90%;padding:12px 14px;border-radius:12px;margin-bottom:10px;font-size:13px;line-height:1.45}
.bot-message{background:#f0f3f8}
.user-message{background:var(--navy);color:#fff;margin-left:auto}
.chatbot-suggestions{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0 16px 12px}
.chatbot-suggestions button{border:1px solid #b5c4d9;background:#fff;color:var(--navy);border-radius:7px;padding:8px;font-size:12px;cursor:pointer}
.chatbot-input{height:56px;border-top:1px solid var(--border);display:flex;padding:9px}
.chatbot-input input{flex:1;border:1px solid var(--border);border-radius:8px;padding:0 12px;outline:none}
.chatbot-input button{width:42px;border:0;margin-left:8px;background:var(--navy);color:#fff;border-radius:50%;cursor:pointer}
.chatbot-powered{text-align:center;padding:8px;color:#777;font-size:12px}
.chat-float{position:fixed;right:34px;bottom:24px;width:58px;height:58px;border-radius:50%;border:3px solid #fff;background:var(--navy);box-shadow:var(--shadow);z-index:95;display:none;place-items:center;cursor:pointer}
.mini-logo{width:44px;height:44px;border-width:2px}

.search-hidden{opacity:.25;filter:grayscale(1)}

@media(max-width:1200px){
  .header-inner{grid-template-columns:1fr;gap:12px;height:auto;padding:14px 0}
  .main-header{height:auto}
  .search-box{width:100%}
  .nav-menu{justify-content:flex-start;overflow:auto}
  .nav-menu a{height:auto;padding:12px 0}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .profile-layout{grid-template-columns:1fr}
  .footer-layout{grid-template-columns:1fr}
}

@media(max-width:768px){
  .top-strip{display:none}
  .brand-logo{width:74px;height:74px}
  .brand-text h1{font-size:28px}
  .brand-text span{letter-spacing:3px}
  .hero-inner{flex-direction:column;align-items:flex-start}
  .hero h2{font-size:40px}
  .hero h3{font-size:16px;letter-spacing:4px}
  .quick-access{width:100%}
  .service-grid{grid-template-columns:1fr}
  .profile-visual{height:220px}
  .value-list div{grid-template-columns:1fr}
  .map-box{height:300px}
  .chatbot{right:12px;left:12px;width:auto}
}