/* APSA — header menu layanan + kotak pencarian ala aplikasi travel. Merah #E4312B (tombol #D42A24), biru muda #7FD8FF. */
:root{--red:#D42A24;--red2:#E4312B;--sky:#7FD8FF;--sky2:#DFF5FF;--ink:#111;--ink2:#3A4651;--line:#DCE6EF;--bg:#F3F7FB}
.tv-hdr{position:sticky;top:0;z-index:40;background:rgba(14,20,24,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08);color:#fff}
.tv-top{max-width:1200px;margin:0 auto;padding:8px 20px;display:flex;align-items:center;gap:14px}
.tv-logo{display:flex;align-items:center;min-height:44px;padding:4px 6px;border-radius:10px;flex:0 0 auto}
.tv-logo img{display:block;height:34px;width:auto}
.tv-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.tv-link{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border-radius:999px;font:600 14px 'Plus Jakarta Sans',system-ui,sans-serif;color:#E6EEF3;text-decoration:none}
.tv-link:hover{background:rgba(255,255,255,.08);color:#fff}
.tv-lang{display:flex;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:3px}
.tv-lang a,.tv-lang button{min-width:40px;min-height:38px;display:flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:transparent;font:700 13px/1 'Plus Jakarta Sans',system-ui,sans-serif;color:#C9D3DB;text-decoration:none;cursor:pointer}
.tv-lang [aria-current=true],.tv-lang [aria-pressed=true]{background:#fff;color:#0E1418}
.tv-wa{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;background:var(--red);color:#fff;font:700 14px 'Plus Jakarta Sans',system-ui,sans-serif;text-decoration:none;white-space:nowrap}
.tv-wa:hover{background:#B9221D;color:#fff}
.tv-menu{max-width:1200px;margin:0 auto;padding:0 12px;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.tv-menu::-webkit-scrollbar{display:none}
@media (max-width:1400px){.tv-menu{-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent);padding-right:48px}}
@media (min-width:1024px){.tv-menu{-webkit-mask-image:none;mask-image:none;padding-right:12px}}
.tv-item{position:relative;flex:0 0 auto;display:flex;align-items:center;gap:7px;min-height:46px;padding:0 10px;border-bottom:3px solid transparent;font:600 14px 'Plus Jakarta Sans',system-ui,sans-serif;color:#AFC0CC;text-decoration:none;white-space:nowrap}
.tv-item svg{flex:0 0 auto}
.tv-item:hover{color:#fff}
.tv-item[aria-current=page]{color:#fff;border-bottom-color:var(--red2)}
.tv-item.soon{color:#7A8794}
.tv-soon{font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:#FFF1D6;color:#8A5A00;padding:2px 6px;border-radius:999px}
@media (max-width:760px){.tv-hide-sm{display:none!important}.tv-top{padding:6px 12px;gap:8px}.tv-wa{padding:0;width:44px;justify-content:center}.tv-wa span{display:none}.tv-logo{padding:4px 0;min-width:0;flex:0 1 auto}.tv-logo img{height:28px}.tv-right{gap:6px;flex:0 0 auto}.tv-lang a,.tv-lang button{min-width:36px}}
@media (max-width:360px){.tv-logo img{height:24px}}

/* Kotak pencarian (Home) — gelap, foto Batam, kartu putih mengambang */
.hub-band{position:relative;isolation:isolate;padding:44px 0 34px;color:#fff;background:#0E1418}
.hub-band::before{content:"";position:absolute;inset:0;z-index:-2;background:url(img/t1-barelang.jpg) center 40%/cover no-repeat;opacity:.55;filter:saturate(1.15)}
.hub-band::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(900px 420px at 88% 0%,rgba(228,49,43,.35),transparent 60%),radial-gradient(700px 380px at 0% 100%,rgba(127,216,255,.28),transparent 60%),linear-gradient(180deg,rgba(14,20,24,.55) 0%,rgba(14,20,24,.82) 70%,#0E1418 100%)}
.hub-wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.hub-hi{display:flex;flex-direction:column;gap:12px;margin:0 0 26px;max-width:760px}
.hub-eb{margin:0;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#CFEFFF;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);padding:7px 12px;border-radius:999px;backdrop-filter:blur(6px)}
.hub-dot{width:7px;height:7px;border-radius:50%;background:#4ADE80;box-shadow:0 0 0 4px rgba(74,222,128,.2)}
.hub-hi h1{margin:0;font:800 clamp(32px,5vw,60px)/1.02 'Bricolage Grotesque',system-ui,sans-serif;letter-spacing:-.025em;color:#fff;text-wrap:balance}
.hub-hi h1 em{font-style:normal;background:linear-gradient(90deg,#7FD8FF,#BDEBFF);-webkit-background-clip:text;background-clip:text;color:transparent}
.hub-lead{margin:0;font-size:17px;line-height:1.6;color:#D8E3EA;max-width:640px}
.hub-card{background:#fff;color:var(--ink);border-radius:24px;box-shadow:0 30px 60px rgba(0,0,0,.35),0 2px 8px rgba(0,0,0,.12);overflow:hidden}
.hub-tabs{display:flex;gap:2px;padding:12px 12px 0;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line)}
.hub-tabs::-webkit-scrollbar{display:none}
.hub-tab .sm{display:none}
.hub-tab{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:96px;padding:8px 10px 12px;border:0;border-bottom:3px solid transparent;background:transparent;cursor:pointer;font:600 13.5px/1.2 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--ink2);transition:color .2s ease}
.hub-ic{position:relative;width:48px;height:48px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:var(--sky2);color:var(--ink);transition:transform .25s cubic-bezier(.2,.8,.2,1),background-color .2s ease,box-shadow .2s ease}
.hub-tab:hover .hub-ic{transform:translateY(-2px)}
.hub-tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--red2);font-weight:800}
.hub-tab[aria-selected=true] .hub-ic{background:linear-gradient(135deg,#E4312B,#B9221D);color:#fff;box-shadow:0 10px 20px rgba(212,42,36,.3)}
.hub-tab.more .hub-ic{background:#F1F4F7}
.hub-tab:focus-visible{outline:3px solid var(--ink);outline-offset:-3px;border-radius:12px}
.hub-panel{padding:20px;display:flex;flex-direction:column;gap:14px}
.hub-mode{display:inline-flex;gap:4px;padding:4px;background:var(--bg);border-radius:999px;align-self:flex-start}
.hub-mode button{min-height:40px;padding:0 18px;border-radius:999px;border:0;background:transparent;font:700 14px 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--ink2);cursor:pointer}
.hub-mode button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(17,52,74,.12)}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:stretch}
.hub-f{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:10px 14px;border:1.5px solid var(--line);border-radius:16px;background:#fff;min-width:0;transition:border-color .15s ease,box-shadow .15s ease}
.hub-f:focus-within{border-color:var(--ink);box-shadow:0 0 0 4px rgba(127,216,255,.35)}
.hub-f label{font-size:11px;font-weight:800;color:#6B7884;text-transform:uppercase;letter-spacing:.08em}
.hub-f input,.hub-f select{border:0;outline:0;padding:2px 0;min-height:30px;font:700 16px 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--ink);background:transparent;width:100%;text-align:left}
.hub-go{display:flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;min-height:64px;padding:0 24px;border-radius:16px;background:linear-gradient(135deg,#E4312B,#C42620);color:#fff;font:800 16px 'Plus Jakarta Sans',system-ui,sans-serif;text-decoration:none;box-shadow:0 14px 28px rgba(212,42,36,.32);transition:transform .2s ease,box-shadow .2s ease}
.hub-go:hover{color:#fff;transform:translateY(-1px);box-shadow:0 18px 32px rgba(212,42,36,.38)}
.hub-go.wa{background:linear-gradient(135deg,#1F2A33,#0E1418);box-shadow:0 14px 28px rgba(14,20,24,.3)}
.hub-note{margin:0;font-size:13px;color:var(--ink2)}
.hub-soon{display:flex;flex-direction:column;gap:2px}
.hub-soon b{font:800 20px 'Bricolage Grotesque',system-ui,sans-serif}
.hub-soon span{font-size:14px;color:var(--ink2)}
.hub-chips{display:flex;gap:8px;flex-wrap:wrap}
.hub-chips button{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px 0 12px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font:700 14px 'Plus Jakarta Sans',system-ui,sans-serif;color:var(--ink);cursor:pointer}
.hub-chips button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:#fff}
.hub-trust{display:flex;flex-wrap:wrap;gap:8px 22px;padding:14px 20px;background:linear-gradient(180deg,#F7FAFC,#F0F5F9);border-top:1px solid var(--line);font-size:13px;font-weight:600;color:#1E2A33}
.hub-trust span{display:flex;align-items:center;gap:6px}
.hub-trust span+span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--red2);margin-right:2px}
@media (max-width:760px){
  .hub-band{padding:26px 0 22px}.hub-wrap{padding:0 12px}
  .hub-lead{font-size:15px}
  .tv-home{display:none}
  .hub-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:12px 8px 0;overflow:visible}
  .hub-tab{min-width:0;padding:6px 0 10px;font-size:12.5px}
  .hub-ic{width:46px;height:46px}
  .hub-tab .lg{display:none}.hub-tab .sm{display:inline}
  .hub-panel{padding:14px}
  .hub-grid{grid-template-columns:1fr 1fr}
  .hub-grid .hub-wide,.hub-grid .hub-go{grid-column:1/-1}
  .hub-trust{flex-direction:column;gap:6px}
  .hub-trust span+span::before{display:none}
  .fab-off .apsa-pulse{opacity:0!important;pointer-events:none!important;transform:scale(.6)!important}
}
.apsa-pulse{transition:opacity .25s ease,transform .25s ease}

/* Loading: logo + garis merah tipis, singkat, hanya sekali per kunjungan */
.ap-load{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#0E1418;animation:apLoadOut .45s ease .85s forwards;pointer-events:none}
.ap-load img{height:48px;width:auto;opacity:0;transform:scale(.96);animation:apLogo .55s cubic-bezier(.2,.8,.2,1) .05s forwards}
.ap-load i{display:block;width:120px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,#E4312B,transparent);background-size:200% 100%;animation:apSweep .9s ease-in-out infinite}
.no-load .ap-load{display:none}
@keyframes apLogo{to{opacity:1;transform:none}}
@keyframes apSweep{0%{background-position:100% 0}100%{background-position:-100% 0}}
@keyframes apLoadOut{to{opacity:0;visibility:hidden}}

/* Lengkapi perjalanan (cross-sell) */
.xs{max-width:1200px;margin:48px auto 0;padding:0 20px}
.xs-hd{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.xs-eb{margin:0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--red2)}
.xs-hd h2{margin:0;font:800 clamp(24px,3vw,34px)/1.1 'Bricolage Grotesque',system-ui,sans-serif}
.xs-sub{margin:0;color:var(--ink2);max-width:620px}
.xs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.xs-card{display:flex;align-items:center;gap:14px;padding:16px;border-radius:18px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .2s ease,box-shadow .2s ease}
.xs-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(17,52,74,.1);color:var(--ink)}
.xs-ic{flex:0 0 auto;width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--sky2)}
.xs-tx{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.xs-tx b{font:700 17px 'Bricolage Grotesque',system-ui,sans-serif}
.xs-tx span{font-size:13px;color:var(--ink2)}
.xs-go{flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ink);color:#fff}
@media (prefers-reduced-motion:reduce){.hub-ic,.hub-go,.xs-card,.apsa-pulse{transition:none}.ap-load{display:none}}
.wrap .xs{padding:0}
/* Hero halaman layanan: pita gelap senada dengan Home */
html,body{overflow-x:clip}
main.wrap>.hero{position:relative;isolation:isolate;color:#fff;padding-top:clamp(28px,4vw,52px);padding-bottom:34px;margin-bottom:-14px}
main.wrap>.hero::before{content:"";position:absolute;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);z-index:-1;background:radial-gradient(800px 320px at 85% 0%,rgba(228,49,43,.28),transparent 60%),radial-gradient(600px 300px at 10% 100%,rgba(127,216,255,.22),transparent 60%),#0E1418}
main.wrap>.hero h1{color:#fff}
main.wrap>.hero .muted{color:#D8E3EA!important}
main.wrap>.hero .badge{background:rgba(127,216,255,.16);color:#BDEBFF;border:1px solid rgba(127,216,255,.35)}
main.wrap>.hero+.box,main.wrap>.hero+.chips{position:relative;box-shadow:0 20px 40px rgba(14,20,24,.14)}
section[aria-labelledby=soc-title] .apsa-tile>span:last-child{color:#fff!important;font-weight:700}
@media (max-width:760px){section[aria-label] .apsa-tile[style*="span 3"],section .apsa-tile[style*="span 3"]{grid-column:span 2!important}}

/* Semua layanan tampil sebagai tab; yang belum buka diberi label "Segera" */
.hub-tab{position:relative}
.hub-badge{position:absolute;top:0;left:50%;transform:translateX(6px);font:800 9px/1 'Plus Jakarta Sans',system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase;background:#FFF1D6;color:#8A5A00;padding:3px 5px;border-radius:999px;border:1.5px solid #fff;white-space:nowrap;pointer-events:none}
.hub-tab.soon .hub-ic{background:#F1F4F7;color:#6B7884}
.hub-tab.soon[aria-selected=true] .hub-ic{background:linear-gradient(135deg,#22384A,#0E1418);color:#fff;box-shadow:0 10px 20px rgba(14,20,24,.25)}
.hub-soon{flex-direction:row;align-items:center;gap:14px}
.hub-soon>span:last-child{display:flex;flex-direction:column;gap:2px}
.hub-soon .hub-soon-ic{flex:0 0 52px;height:52px;border-radius:16px;background:#0E1418;color:#fff;display:flex;align-items:center;justify-content:center}
.hub-soon b{font-size:18px}
.tv-item .tv-soon{margin-left:2px}
@media (max-width:760px){
  .hub-tabs{grid-template-columns:repeat(5,1fr);gap:2px;padding:12px 6px 0}
  .hub-tab{font-size:11.5px;padding:6px 0 9px;gap:6px}
  .hub-ic{width:42px;height:42px;border-radius:13px}
  .hub-badge{transform:translateX(2px);font-size:8px;padding:2px 4px}
}
/* Menu header: layanan "Segera" dikelompokkan — satu label di depan grup, tanpa badge di tiap item */
.tv-item.soon .tv-soon{display:none}
.tv-item:not(.soon)+.tv-item.soon{margin-left:8px;padding-left:16px}
.tv-item:not(.soon)+.tv-item.soon::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:1px;background:rgba(255,255,255,.16)}
.tv-item:not(.soon)+.tv-item.soon .tv-soon{display:inline-block;order:-1;margin:0 2px 0 0}
.tv-item .sm{display:none}
@media (max-width:1499px){.tv-item .lg{display:none}.tv-item .sm{display:inline}}
