/* Basic reset */
*{box-sizing:border-box}
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden; /* Prevent horizontal scroll on page level */
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Arial, sans-serif;
  background: #0f141a;
  color: #e6edf3;
}

.public-works{padding:28px 0;background:#ffffff}
.public-works .section-sub{text-align:center}
.btn-outline{background:#ffffff;color:var(--brand-slate);border:1px solid var(--brand-slate)}
.public-modal .modal-dialog{background:#ffffff;border:1px solid var(--brand-border);border-radius:14px}
.public-modal .modal-header{border-bottom:1px solid var(--brand-border);background:#ffffff}
.public-modal .modal-footer{border-top:1px solid var(--brand-border);background:#ffffff}
.public-modal .modal-close{color:var(--brand-slate)}
.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.works-grid img{width:100%;height:160px;object-fit:cover;border-radius:12px;border:1px solid var(--brand-border)}
@media (max-width: 768px){
  .works-grid{grid-template-columns:1fr 1fr}
}
:root{
  --brand-amber:#0a2540;
  --brand-slate:#0a2540;
  --brand-muted:#425466;
  --brand-border:#e5eaf0;
}

/* Login */
.login-body{display:grid;place-items:center;min-height:100vh;background:radial-gradient(600px circle at 0 0, #203040 0, transparent 70%),radial-gradient(600px circle at 100% 100%, #302040 0, transparent 70%),linear-gradient(135deg,#0f141a,#111b24)}
.login-card{background:#121820;border:1px solid #253041;border-radius:12px;padding:28px;width:100%;max-width:360px;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.login-card h1{margin:0 0 16px}
.login-card label{display:block;margin:10px 0 6px;color:#9fb1c4}
.login-card input{width:100%;padding:12px;border-radius:8px;border:1px solid #2a3a4a;background:#10161c;color:#cfe1f3}
.btn-primary{margin-top:16px;width:100%;padding:12px;border-radius:8px;border:none;background:linear-gradient(90deg,#23a6d5,#23d5ab);color:#001016;font-weight:600;cursor:pointer}
.alert{background:#40203a;border:1px solid #d04f63;color:#ffcdd2;padding:10px;border-radius:8px;margin-bottom:12px}

/* Layout */
.sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;background:#0d1319;border-right:1px solid #203040;padding:16px;overflow-y:auto;-webkit-overflow-scrolling:touch;transition:width .26s cubic-bezier(.22,1,.36,1), padding .26s cubic-bezier(.22,1,.36,1), border-right-color .26s cubic-bezier(.22,1,.36,1)}
.profile{display:flex;align-items:center;padding:8px 0 16px;margin-bottom:10px;border-bottom:1px dashed #203040}
.avatar{width:44px;height:44px;border-radius:50%;background:#223}
.info{margin-left:12px}
.info strong{display:block}
.role{font-size:12px;color:#8399b0}

.nav{margin-top:12px}
.nav-section{margin-bottom:8px}
.nav-root{width:100%;text-align:left;padding:12px;border:none;border-radius:10px;background:linear-gradient(90deg,var(--nav-blue-1),var(--nav-blue-2));color:#e8f2ff;cursor:pointer;position:relative;transition:transform .25s ease, box-shadow .25s ease;border:1px solid var(--nav-blue-border)}
.nav-root::after{content:"";position:absolute;right:10px;top:50%;width:8px;height:8px;border-right:2px solid var(--nav-blue-accent);border-bottom:2px solid var(--nav-blue-accent);transform:translateY(-50%) rotate(45deg);transition:transform .25s ease}
.nav-root.active{transform:translateX(2px) scale(1.01);box-shadow:0 6px 18px rgba(35,166,213,.2)}
.nav-root.active::after{transform:translateY(-50%) rotate(-135deg)}

/* Unique dropdown animation: liquid slide */
.nav-sub{list-style:none;margin:6px 0 0;padding:0;overflow:hidden;max-height:0;border-radius:12px;background:linear-gradient(180deg,var(--sub-amber-1),var(--sub-amber-2));border:1px solid var(--sub-amber-border);filter:drop-shadow(0 0 0 rgba(0,0,0,0));transition:max-height .5s cubic-bezier(.22,1,.36,1), filter .5s ease}
.nav-sub.open{max-height:220px;filter:drop-shadow(0 10px 20px rgba(255, 186, 90, .25))}
.nav-sub li a{display:block;padding:10px 12px;color:#ffe9cc;text-decoration:none;border-top:1px solid rgba(255,255,255,.06)}
.nav-sub li a:hover{background:var(--sub-amber-hover)}
.logout .logout-btn{display:block;padding:10px 12px;color:#ffb3c1;text-decoration:none}
.sidebar-collapse-toggle{display:none}
.sidebar-expand-toggle{display:none}
.content{margin-left:280px;padding:24px;transition:margin-left .26s cubic-bezier(.22,1,.36,1)}
/* Default: sembunyikan toggle dan backdrop di desktop */
.mobile-toggle{display:none}
.sidebar-backdrop{display:none}
.page h2{margin-top:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:12px}
.card{background:#121820;border:1px solid #223040;border-radius:14px;padding:18px;min-height:80px}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.btn-secondary{padding:8px 12px;border-radius:8px;border:1px solid #2a3a4a;background:#10161c;color:#cfe1f3;cursor:pointer}
.btn-primary.small{padding:8px 12px}
.search-form input[type=text]{padding:10px;border-radius:8px;border:1px solid #2a3a4a;background:#0c1217;color:#cfe1f3}

.table-card{background:#0d1319;border:1px solid #1f2e45;border-radius:12px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.card-body{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{width:100%;border-collapse:collapse;white-space:nowrap}
.table th,.table td{padding:12px;border-top:1px solid #1f2e45}
.table th{background:#121b26;color:#bcd0e5;text-align:left}
.table td.num{text-align:right}
.table .empty{text-align:center;color:#8aa0b8}

/* Modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;padding:20px;}
.modal.show{display:flex}
.modal-dialog{background:#0f1620;border:1px solid #1f2e45;border-radius:12px;max-width:980px;width:100%}
.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #1f2e45}
.modal-footer{border-top:1px solid #1f2e45;border-bottom:none}
.modal-body{padding:16px;-webkit-overflow-scrolling:touch}
.modal-close{background:transparent;border:none;color:#cfe1f3;font-size:20px;cursor:pointer}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.grid label{display:block;margin-bottom:6px;color:#9fb1c4}
.grid input{width:100%;padding:10px;border-radius:8px;border:1px solid #2a3a4a;background:#10161c;color:#cfe1f3}

.items{margin-top:16px}
/* 7 kolom: No | Qty | Satuan | Nama Barang | Harga Satuan | Jumlah | Aksi */
.items-head,.item-row{display:grid;grid-template-columns:40px 80px 80px minmax(360px,3fr) 120px 120px 72px;gap:8px;align-items:center}
.items-head{padding:8px;border:1px solid #2a3a4a;border-radius:8px;background:#121b26;color:#bcd0e5}
.item-row{padding:8px;margin-top:8px;border:1px solid #203040;border-radius:8px;background:#0c1217}
.item-row input{width:100%;padding:10px;border-radius:6px;border:1px solid #2a3a4a;background:#10161c;color:#cfe1f3}
 .item-row .del{padding:6px 8px;font-size:12px}
 .item-row .sum{text-align:right;padding:10px}

/* Responsive: Mobile */
@media (max-width: 768px){
  /* Toggle button hanya muncul di mobile */
  .mobile-toggle{display:block;position:fixed;right:12px;top:12px;z-index:1001;padding:10px 12px;border-radius:10px;border:1px solid #2a3a4a;background:#10161c;color:#cfe1f3;box-shadow:0 6px 14px rgba(0,0,0,.35)}

  /* Jadikan sidebar off-canvas agar konten tidak terdorong ke bawah */
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;background:#0d1319;border-right:1px solid #203040;padding:16px;overflow-y:auto;transform:translateX(-100%);transition:transform .28s cubic-bezier(.22,1,.36,1);z-index:1000}
  body.sidebar-open .sidebar{transform:translateX(0)}

  /* Backdrop klik-luar untuk menutup sidebar */
  .sidebar-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:999;display:none}
  body.sidebar-open .sidebar-backdrop{display:block}

  .content{margin-left:0;padding:16px;padding-top:60px;}
  .cards{grid-template-columns:1fr}
  .toolbar{flex-wrap:wrap}
  .search-form{flex:1;display:flex;gap:8px}
  .search-form input[type=text]{flex:1;min-width:0}

  .grid{grid-template-columns:1fr}

  .table-card{overflow-x:auto}
  .table{min-width:640px}

  .modal-dialog{max-width:95vw}

  .items{overflow-x:auto}
  .items-head,.item-row{min-width:820px}
}

.scroll-x{overflow-x:auto}
.scroll-y{overflow-y:auto}
.scroll-touch{-webkit-overflow-scrolling:touch}
@media (min-width: 769px){
  .sidebar-collapse-toggle{display:block;width:32px;height:32px;margin-bottom:12px;border-radius:10px;border:1px solid #203040;background:#10161c;color:#cfe1f3;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px}
  .sidebar-expand-toggle{position:fixed;left:10px;top:14px;z-index:1001;width:32px;height:32px;border-radius:10px;border:1px solid #203040;background:#10161c;color:#cfe1f3;cursor:pointer;display:none;align-items:center;justify-content:center;font-size:14px}
  body.sidebar-hidden .sidebar{width:0;padding-left:0;padding-right:0;border-right-color:transparent}
  body.sidebar-hidden .content{margin-left:0}
  body.sidebar-hidden .profile,
  body.sidebar-hidden .nav,
  body.sidebar-hidden .logout{display:none}
  body.sidebar-hidden .sidebar-collapse-toggle{display:none}
  body.sidebar-hidden .sidebar-expand-toggle{display:flex}
}

/* Public site */
body.public{background:#ffffff;color:#222}
.public-hero{position:relative;background:linear-gradient(120deg,#f6f9fc,#eef3f7);padding:40px 0;border-bottom:1px solid var(--brand-border);background-size:200% 200%;animation:publicGradient 14s ease infinite;background-position:center;background-repeat:no-repeat;background-size:cover;min-height:480px}
.public-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,37,64,.06),transparent 50%)}
.public-hero .container{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.public-hero h1{margin:0;font-size:38px;color:var(--brand-slate);letter-spacing:.3px}
.public-hero p{margin:0;color:var(--brand-muted);max-width:680px;line-height:1.6}
.cta-group{display:flex;gap:12px}
.container{width:100%;max-width:1100px;margin:0 auto;padding:0 18px}
.hero-overlay{position:absolute;left:18px;right:18px;bottom:24px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.hero-title-box{border:2px solid var(--brand-amber);padding:12px 16px;border-radius:10px;backdrop-filter:saturate(1.2) blur(2px);background:rgba(255,255,255,.25)}
.hero-title-box{border-width:2px;padding:16px 20px}
.hero-title-box .big{font-size:76px;line-height:1.05;color:#fff;letter-spacing:.6px}
.hero-meta{font-size:76px;color:#fff;font-weight:700}
.hero-actions{display:flex;align-items:center;margin-top:12px}
.hero-actions{gap:10px}
.hero-actions .btn{font-size:16px;padding:12px 16px;border-radius:12px;box-shadow:0 10px 24px rgba(10,37,64,.2)}

@media (min-width:992px){
  .public-hero{min-height:560px}
  .hero-title-box .big{font-size:96px}
  .hero-meta{font-size:96px}
}
.hero-badge{position:absolute;top:12px;left:18px;display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.35);color:#fff;padding:6px 10px;border-radius:10px}
.hero-badge img{height:28px;width:auto}
.public-nav{position:sticky;top:0;z-index:10;background:#ffffff;border-bottom:1px solid var(--brand-border)}
.public-nav .container{display:flex;align-items:center;justify-content:space-between;height:56px}
.public-logo{font-weight:700;color:var(--brand-slate);letter-spacing:.4px;display:flex;align-items:center;gap:8px}
.public-logo img{height:28px;width:auto;display:block}
.public-menu{display:flex;gap:14px}
.public-menu a{color:var(--brand-muted);text-decoration:none;padding:8px 10px;border-radius:8px;transition:background .2s ease}
.public-menu a:hover{background:#f6f9fc}
.hamburger-btn{display:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--brand-border);background:#fff;color:var(--brand-slate)}
.nav-backdrop{display:none}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.public-features{padding:32px 0}
.public-features .card{background:#fff;border:1px solid var(--brand-border);border-radius:16px;transition:transform .25s ease, box-shadow .25s ease}
.public-features .card:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(10,37,64,.12)}
.public-portfolio{padding:32px 0;background:#fafbfc;border-top:1px solid var(--brand-border);border-bottom:1px solid var(--brand-border)}
.public-portfolio .card{background:#fff;border:1px solid var(--brand-border);border-radius:16px;display:flex;align-items:center;justify-content:center;min-height:160px;transition:transform .25s ease, box-shadow .25s ease}
.public-portfolio .card:hover{transform:scale(1.02);box-shadow:0 16px 40px rgba(10,37,64,.12)}
.public-portfolio .card img{width:100%;height:180px;object-fit:cover;border-radius:12px}
.public-cta{padding:32px 0;text-align:center}
.public-footer{padding:24px 0;border-top:1px solid var(--brand-border);background:#ffffff;color:var(--brand-muted)}
.public-footer .footer-grid{display:grid;grid-template-columns:2fr 3fr;gap:18px;align-items:flex-start}
.footer-contact h4{margin:0 0 6px;color:var(--brand-slate)}
.footer-contact p{margin:0 0 6px}
.footer-contact a{color:var(--brand-slate);text-decoration:underline}
.footer-map iframe{width:100%;border-radius:12px;min-height:220px}
.footer-meta{margin-top:16px;font-size:13px;color:var(--brand-muted);border-top:1px solid #e5eaf0;padding-top:10px;text-align:center}
.footer-meta p{margin:0;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.footer-owner{font-weight:600;color:var(--brand-slate)}
.footer-dev{color:var(--brand-muted)}
.footer-dev a{color:var(--brand-slate);text-decoration:none;font-weight:500}
.footer-dev a:hover{text-decoration:underline}
.footer-separator{opacity:.4}
@media (max-width:768px){
  .public-footer .footer-grid{grid-template-columns:1fr}
}
.btn{display:inline-block;padding:12px 16px;border-radius:10px;text-decoration:none;transition:transform .2s ease, box-shadow .2s ease}
.btn-primary{background:var(--brand-slate);color:#fff}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(10,37,64,.2)}
.btn-secondary{background:var(--brand-amber);color:#fff;border-color:transparent}
.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(66,84,102,.2)}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.form-grid .form-actions{grid-column:1/-1;display:flex;gap:10px}
.public-result{padding:24px 0}
.placeholder{background:#eef3f7;border:1px dashed #cbd5e1;color:#64748b;padding:20px;text-align:center;border-radius:10px}
.public-result .card{background:#fff;border:1px solid var(--brand-border);border-radius:16px;transition:transform .25s ease, box-shadow .25s ease}
.public-result .card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(10,37,64,.12)}
.public-result h3{margin-top:0;color:var(--brand-slate)}
.alert.alert-warning{background:#fff8e1;border:1px solid #ffe082;color:#6d4c41}

.public-hero.calculator-hero{min-height:auto}
.calculator-hero{background:linear-gradient(180deg,#fff4cc,#ffeab3);padding:20px 0 12px;border-bottom:1px solid var(--brand-border)}
.calculator-hero .container{text-align:center}
.calculator-hero h1{margin:0 0 6px;font-size:32px;color:var(--brand-slate);text-transform:uppercase;letter-spacing:.08em}
.calculator-hero p{margin:0;color:#6b7280}
.public-form{padding:24px 0 28px;margin-top:-18px;background:#fff7da}
.public-form .container{display:flex;justify-content:center}
.public-form .form-grid{max-width:480px;width:100%;margin:0 auto;background:#fffbe6;border-radius:16px;border:1px solid #facc6b;box-shadow:0 16px 40px rgba(0,0,0,.08);grid-template-columns:1fr;gap:14px}
.public-form label{display:block;margin-bottom:4px;font-weight:600;color:#4b5563}
.public-form input,.public-form select{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #fbbf24;background:#ffffff}
.public-form .form-actions{display:flex;flex-direction:row;gap:10px;justify-content:space-between;margin-top:6px}
.public-form .form-actions .btn{flex:1;text-align:center}
.public-form .btn-primary{background:#0a2540;color:#fff}
.public-form .btn-secondary{background:#fbbf24;color:#0a2540;border-color:transparent}
.public-form .btn-secondary:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(250,191,36,.45)}
.public-form .box-preview{grid-column:1/-1}
.box-preview-inner{background:#ffffff;border-radius:12px;border:1px dashed #e5eaf0;padding:12px;text-align:center}
.box-preview-inner img{max-width:100%;height:auto;border-radius:10px;margin-bottom:6px}
.box-preview-caption{font-weight:600;color:var(--brand-slate);font-size:14px}
.step-actions{margin-top:4px}
@media (max-width: 768px){
  .public-hero.calculator-hero{padding:8px 0 0}
  .calculator-hero h1{margin:0 0 4px;font-size:22px}
  .calculator-hero p{margin:0 0 4px;font-size:13px}
  .public-form{padding:12px 0 20px;margin-top:-26px}
  .public-form .form-grid{padding:16px 14px}
  .public-form .form-actions{flex-direction:column}
}

.metrics{padding:28px 0;border-top:1px solid var(--brand-border);border-bottom:1px solid var(--brand-border);background:#ffffff}
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.metric{background:#fff;border:1px solid var(--brand-border);border-radius:16px;padding:18px;text-align:center;transition:transform .25s ease, box-shadow .25s ease}
.metric:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(10,37,64,.12)}
.metric .num{font-size:28px;font-weight:700;color:var(--brand-slate)}
.metric .label{color:var(--brand-muted)}

.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease, transform .6s ease}
.reveal.show{opacity:1;transform:none}

@keyframes publicGradient{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

.section-title{font-size:26px;color:var(--brand-slate);margin:0 0 8px;position:relative;display:inline-block;padding:6px 12px;border:1px solid var(--brand-amber);border-radius:8px}
.section-sub{color:var(--brand-muted);margin:0 0 18px}
.feature-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.feature-icons .card{display:flex;flex-direction:column;align-items:flex-start;border-radius:16px}
.icon{width:40px;height:40px;border-radius:10px;background:#eef3f7;display:flex;align-items:center;justify-content:center;color:#0a2540;margin-bottom:8px}

.material-select{padding:28px 0;background:#ffffff}
.material-images{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.material-item{background:#fff;border:1px solid var(--brand-border);border-radius:12px;overflow:hidden}
.material-item img{width:100%;height:220px;object-fit:cover;display:block}
.material-caption{text-align:center;font-weight:700;color:var(--brand-slate);padding:8px}
.material-list{list-style:circle;padding-left:18px;margin:8px 0 16px}
@media (max-width: 768px){
  .material-images{grid-template-columns:1fr}
}
.custom-shapes{padding:28px 0;background:#ffffff}
.shape-items{list-style:circle;padding-left:18px;display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.shape-items li{color:var(--brand-slate)}
.shapes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.shape-tile{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--brand-border)}
.shape-tile img{width:100%;height:160px;object-fit:cover;display:block}
.shape-tile .caption{position:absolute;left:0;right:0;bottom:0;background:var(--brand-amber);color:#fff;border-radius:0 0 12px 12px;padding:10px 8px;text-align:center;font-weight:600}
@media (max-width: 768px){
  .shape-items{grid-template-columns:1fr}
  .shapes-grid{grid-template-columns:1fr 1fr}
}
.logo-carousel{padding:32px 0;border-top:1px solid var(--brand-border);border-bottom:1px solid var(--brand-border);background:#ffffff}
.logo-heading{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:18px}
.logo-heading-line{flex:1;height:1px;background:#f2f4f7;max-width:160px}
.logo-heading-text{font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-slate);font-size:18px}
.logo-wrapper{display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 0}
.logo-track{flex:1;display:flex;justify-content:center;gap:40px;align-items:center;overflow:hidden}
.logo-item{height:72px;width:auto;object-fit:contain;filter:grayscale(.1);opacity:.95}
.logo-arrow{width:32px;height:32px;border-radius:999px;border:1px solid var(--brand-border);background:#fff;color:var(--brand-slate);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px rgba(15,23,42,.08)}
.logo-arrow:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(15,23,42,.12)}
@media (max-width: 768px){
  .logo-heading-text{font-size:16px}
  .logo-track{gap:18px}
}
.accordion{border-top:1px solid #e5eaf0}
.accordion-item{border-bottom:1px solid #e5eaf0}
.accordion-item button{width:100%;text-align:left;padding:14px;border:none;background:#ffffff;color:#0a2540;display:flex;justify-content:space-between;align-items:center;font-weight:600;cursor:pointer}
.accordion-item button .chev{width:10px;height:10px;border-right:2px solid #425466;border-bottom:2px solid #425466;transform:rotate(45deg);transition:transform .25s ease}
.accordion-item button.active .chev{transform:rotate(-135deg)}
.accordion-content{max-height:0;overflow:hidden;transition:max-height .35s ease;background:#fafbfc;padding:0 14px}
.accordion-content.open{padding:14px}

.testimonial-slider{position:relative;overflow:hidden}
.testimonial-track{display:flex;gap:18px;transition:transform .35s ease}
.testimonial-card{position:relative;min-width:320px;flex:0 0 320px;background:#fff;border:1px solid #ffd08a;border-radius:16px;padding:22px 18px 18px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.testimonial-quote-badge{position:absolute;top:0;left:26px;transform:translateY(-50%);background:#ffb020;color:#fff;padding:6px 10px;border-radius:4px;font-size:22px;font-weight:700}
.testimonial-avatar{width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto;background:#fff;border:3px solid #ffb020;font-size:13px;font-weight:700;color:#ff7a00;text-transform:uppercase}
.testimonial-avatar.shopee{background:#ff5722;color:#fff;border-color:#ff8a50}
.testimonial-avatar.tiktok{background:#000;color:#fff;border-color:#555}
.testimonial-avatar.whatsapp{background:#25d366;color:#fff;border-color:#7ae6a5}
.testimonial-body{width:100%;background:#ffb020;color:#fff;border-radius:6px;padding:16px 14px;min-height:120px;display:flex;align-items:center}
.testimonial-body p{margin:0;line-height:1.6}
.testimonial-meta{margin-top:4px}
.testimonial-meta strong{display:block;color:#0a2540}
.testimonial-meta span{display:block;font-size:13px;color:#6b7280;text-transform:uppercase}
.testimonial-card.active{box-shadow:0 16px 40px rgba(10,37,64,.18);transform:translateY(-4px)}
.testimonial-nav{display:flex;gap:10px;justify-content:center;margin-top:12px}
.testimonial-nav .btn{background:var(--brand-slate);color:#fff}
.testimonial-dots{display:flex;gap:6px;justify-content:center;margin-top:8px}
.testimonial-dots .dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1}
.testimonial-dots .dot.active{background:var(--brand-slate)}

@media (max-width: 768px){
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .feature-icons{grid-template-columns:1fr 1fr}
  .testimonial-card{min-width:260px;flex:0 0 260px}
}

.outline-animate{position:relative}
.outline-animate::after{content:"";position:absolute;inset:-4px;border:1px solid var(--brand-amber);border-radius:12px;clip-path:inset(0 100% 0 0);transition:clip-path .35s ease}
.outline-animate:hover::after,.outline-animate.active::after{clip-path:inset(0 0 0 0)}

.logo-carousel{padding:24px 0;background:#fff;border-top:1px solid var(--brand-border);border-bottom:1px solid var(--brand-border)}
.logo-track{display:flex;gap:28px;align-items:center;transition:transform .35s ease}
.logo-item{flex:0 0 auto;filter:grayscale(1);opacity:.8;transition:filter .25s ease, opacity .25s ease}
.logo-item:hover{filter:grayscale(0);opacity:1}
.logo-nav{display:flex;gap:8px;justify-content:center;margin-top:12px}
.logo-nav .btn{background:var(--brand-amber);color:#fff}

.floating-cta{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:10px;z-index:20}
.floating-cta .cta{background:var(--brand-amber);color:#fff;border-radius:24px;padding:10px 14px;text-decoration:none;box-shadow:0 10px 24px rgba(10,37,64,.2)}
.floating-cta .btt{background:#111;color:#fff;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 10px 24px rgba(10,37,64,.2);opacity:.0;transform:translateY(6px);transition:opacity .2s ease, transform .2s ease}
.floating-cta .btt.show{opacity:1;transform:none}

/* Mobile polish */
@media (max-width: 576px){
  .public-nav .container{height:auto;gap:8px;flex-wrap:wrap;padding:8px 12px}
  .public-logo img{height:24px}
  .hamburger-btn{display:flex}
  .public-menu{position:fixed;top:56px;left:0;right:0;background:#fff;border-top:1px solid var(--brand-border);display:flex;flex-direction:column;gap:8px;padding:12px;transform:translateY(-120%);opacity:0;pointer-events:none;transition:transform .25s ease, opacity .25s ease}
  .public-menu.open{transform:none;opacity:1;pointer-events:auto}
  .public-menu a{padding:12px;border-radius:10px}
  .nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:9;display:none}
  body.menu-open .nav-backdrop{display:block}
  .public-hero{min-height:420px}
  .hero-overlay{left:12px;right:12px;bottom:18px}
  .hero-title-box .big{font-size:52px}
  .hero-meta{font-size:52px}
  .hero-actions{gap:8px;flex-wrap:wrap}
  .hero-actions .btn{padding:10px 14px}
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .feature-icons{grid-template-columns:1fr}
  .metric-grid{grid-template-columns:1fr}
  .public-portfolio .card img{height:140px}
  .testimonial-card{min-width:86vw;flex:0 0 86vw}
  .logo-track{gap:18px}
  .floating-cta{right:12px;bottom:12px}
  .floating-cta .cta{padding:9px 12px}
  .floating-cta .btt{width:38px;height:38px}
}
