:root{
  --navy:#062045;
  --navy-2:#041a3a;
  --blue:#2d74e3;
  --blue-2:#3b88ff;

  --text:#0f1f38;
  --muted:#667b95;
  --line:rgba(15, 31, 56, .10);

  --bg:#ffffff;
  --bg-soft:#f2f7ff;

  --card:#ffffff;
  --shadow:0 18px 48px rgba(6, 32, 69, .12);
  --shadow-soft:0 12px 30px rgba(6, 32, 69, .10);

  --radius:22px;
  --radius-lg:44px;

  --container:1120px;

  --font-sans:"Manrope", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  --font-serif:"Hedvig Letters Serif", ui-serif, Georgia, "Times New Roman", Times, serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--text);
  background:var(--bg);
  line-height:1.55;
}
img{max-width:100%; display:block}
a{color:inherit}
button{font-family:inherit}

.container{
  width:min(var(--container), calc(100% - 40px));
  margin-inline:auto;
}

.section{padding:96px 0}
.section--soft{background:var(--bg-soft)}
.center{text-align:center}
.muted{color:var(--muted)}

.pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 14px;
  border-radius:999px;
  background:rgba(45,116,227,.10);
  color:rgba(45,116,227,.92);
  font-weight:400;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:14px;
  line-height:1.4;
}

.section-title{
  max-width:860px;
  margin:0 auto 44px;
}
.section-title .pill{margin-bottom:16px}
/* Judul section: style sama persis dengan hero title (Helvetica Neue, weight 500, biru & di logo) */
body .section-title .title,
body .section-title h1.title,
body .section-title h2.title{
  font-family:"Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-weight:500 !important;
  color:var(--blue) !important;
  text-transform:capitalize !important;
  letter-spacing:-.02em !important;
  line-height:1.2 !important;
}
.title{
  margin:0;
  font-family:var(--font-serif);
  font-weight:400;
  letter-spacing:-.02em;
  color:rgba(45,116,227,.88);
}
.title--dark{color:#fff}
.title--h1{
  font-size:64px;
  line-height:1.3;
}
.title--h2{
  font-size:46px;
  line-height:1.2;
}
.subtitle{
  margin:14px auto 0;
  max-width:72ch;
  color:var(--muted);
  font-size:18px;
  line-height:1.5;
  font-weight:400;
}
.subtitle--light{color:rgba(255,255,255,.90)}

/* Header */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  padding:18px 0;
  background:transparent;
  transition:background-color .18s ease, box-shadow .18s ease, padding .18s ease;
}
/* Header halaman Coming Soon: background putih */
.site-header--coming-soon{
  background:#fff;
  box-shadow:0 1px 0 rgba(0,0,0,.06);
}
.site-header .container{width:min(var(--container), calc(100% - 56px))}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:200px;
}
.brand-link{text-decoration:none; display:inline-flex; align-items:center; gap:10px}
/* Logo: default SVG dan custom logo (upload di Customizer → Site Identity). Ubah ukuran lewat Additional CSS: .site-header .brand-link img { height: 36px; max-height: 48px; } */
.site-header .brand{
  --logo-height:28px;
  --logo-max-height:40px;
}
.brand-logo,
.brand-link .custom-logo,
.brand-link img{
  display:block;
  height:var(--logo-height);
  width:auto;
  max-height:var(--logo-max-height);
  object-fit:contain;
}
/* Header di atas hero terang: logo & nav warna gelap (sesuai gambar) */
.brand-text{
  font-family:var(--font-serif);
  font-weight:600;
  font-size:30px;
  color:var(--text);
  letter-spacing:-.02em;
}
.brand-text .amp{color:var(--blue)}
/* Logo gambar: tampilkan warna asli SVG (abu gelap + biru untuk &), tanpa filter hitam */
.site-header .brand-logo,
.site-header .brand-link img{
  opacity:1;
}
.nav-list a{
  color:#545454;
}
.nav-list a:hover{color:var(--blue)}
.nav-toggle{color:var(--text)}
.nav-toggle:hover{background:rgba(15,31,56,.08)}
/* Saat scroll: header putih, teks tetap gelap */
.site-header.is-scrolled .brand-logo,
.site-header.is-scrolled .brand-link img{
  opacity:1;
}
.site-header.is-scrolled .brand-text .amp{color:var(--blue)}
.site-header.is-scrolled{
  background:#fff;
  padding:12px 0;
  box-shadow:0 10px 30px rgba(6, 32, 69, .12);
}
.site-header.is-scrolled .brand-text{color:var(--text)}
.site-header.is-scrolled .nav-list a{color:#545454}
.site-header.is-scrolled .nav-list a:hover{color:var(--blue)}
.site-header.is-scrolled .nav-toggle{color:var(--text)}
.site-header.is-scrolled .nav-toggle:hover{background:rgba(15,31,56,.08)}

.nav-wrap{
  display:flex;
  align-items:center;
  gap:18px;
}
.site-nav{display:block}
.nav-list{
  display:flex;
  align-items:center;
  gap:28px;
  list-style:none;
  padding:0;
  margin:0;
}
.nav-list a{
  text-decoration:none;
  color:#545454;
  font-weight:400;
  font-size:14px;
  transition:color .15s ease;
}
.nav-list a:hover{color:var(--blue)}

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  width:44px;
  height:44px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--text);
  cursor:pointer;
  border-radius:8px;
  transition:background .2s ease, color .2s ease;
}
.nav-toggle:hover{background:rgba(255,255,255,.1)}
.nav-toggle__line{
  display:block;
  width:22px;
  height:2px;
  background:currentColor;
  border-radius:1px;
  transition:transform .25s ease, opacity .25s ease;
}
.site-header.is-menu-open .nav-toggle__line:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.site-header.is-menu-open .nav-toggle__line:nth-child(2){
  opacity:0;
}
.site-header.is-menu-open .nav-toggle__line:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* Drawer (tablet + handphone) – full-screen light overlay seperti referensi */
.nav-drawer{
  position:fixed;
  inset:0;
  z-index:9999;
  visibility:hidden;
  pointer-events:none;
  opacity:0;
  transition:visibility .3s ease, opacity .3s ease;
}
.site-header.is-menu-open .nav-drawer{
  visibility:visible;
  pointer-events:auto;
  opacity:1;
}
.nav-drawer__panel{
  position:absolute;
  inset:0;
  background:#f0f2f5;
  display:flex;
  flex-direction:column;
  padding:28px 24px 32px;
  overflow:auto;
}
.nav-drawer__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:48px;
  flex-shrink:0;
}
.nav-drawer__logo{
  text-decoration:none;
  color:inherit;
  display:inline-flex;
  align-items:center;
}
.nav-drawer__logo-img{
  display:block;
  height:28px;
  width:auto;
  object-fit:contain;
  opacity:1;
}
.nav-drawer__logo-text{
  font-family:var(--font-serif);
  font-weight:600;
  font-size:28px;
  color:rgba(15,31,56,.9);
  letter-spacing:-.02em;
}
.nav-drawer__logo-text .amp{color:var(--blue)}
.nav-drawer__close{
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  padding:0;
  border:0;
  background:transparent;
  color:rgba(15,31,56,.75);
  cursor:pointer;
  border-radius:8px;
  transition:background .2s ease, color .2s ease;
}
.nav-drawer__close:hover{
  background:rgba(15,31,56,.08);
  color:rgba(15,31,56,.9);
}
.nav-drawer__close svg{width:24px; height:24px}
.nav-drawer__nav{
  flex:1;
  margin-bottom:32px;
}
.nav-drawer__list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.nav-drawer__list a{
  display:block;
  padding:18px 0;
  color:rgba(15,31,56,.85);
  text-decoration:none;
  font-size:18px;
  font-weight:400;
  transition:color .15s ease, background .15s ease;
  border-radius:8px;
  padding-left:4px;
}
.nav-drawer__list a:hover{color:rgba(15,31,56,1); background:rgba(15,31,56,.06)}
.pill-btn--drawer{
  flex-shrink:0;
  justify-content:center;
  width:100%;
  padding:16px 24px;
  background:rgba(45,116,227,.96);
  border-color:rgba(45,116,227,.96);
  color:#fff;
  font-size:16px;
}
.pill-btn--drawer:hover{background:rgba(45,116,227,1); color:#fff; border-color:rgba(45,116,227,1)}
.pill-btn--drawer .pill-btn__icon{display:none}
.site-header.is-menu-open .nav-drawer .pill-btn--drawer .pill-btn__icon{display:none}

/* Pill button (header + hero + cta) */
.pill-btn{
  display:inline-flex;
  align-items:center;
  gap:14px;
  padding:14px 18px 14px 22px;
  border-radius:999px;
  text-decoration:none;
  font-weight:400;
  font-size:14px;
  line-height:1;
  color:#fff;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 10px 24px rgba(0,0,0,.10);
  transition:transform .15s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease;
}
.pill-btn:hover{transform:translateY(-1px)}
.pill-btn:active{transform:translateY(0)}
.pill-btn__icon{
  width:34px; height:34px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(45,116,227,.92);
  transition:background-color .18s ease, transform .18s ease;
}
.pill-btn__icon svg{width:16px; height:16px; fill:#fff}

.site-header.is-scrolled .pill-btn{
  background:rgba(45,116,227,.96);
  border-color:rgba(45,116,227,.96);
  box-shadow:0 14px 30px rgba(45,116,227,.20);
}
.site-header.is-scrolled .pill-btn__icon{
  background:rgba(255,255,255,.20);
}
.site-header.is-scrolled .pill-btn__icon svg{fill:#fff}

/* Hero & CTA section (atas footer): sama – panah diagonal awal, hover = ekspansi biru dari lingkaran + panah horizontal */
.pill-btn--hero,
.pill-btn--cta{
  position:relative;
  overflow:hidden;
  padding:5px 6px 6px 26px;
  gap:16px;
  background:rgba(44,56,82,.85);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:none;
  transition:border-color .4s ease, box-shadow .4s ease;
}
/* Rolling fill hover: kanan → kiri, warna #266ED5 */
.pill-btn--hero::before,
.pill-btn--cta::before{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  right:0;
  width:0;
  border-radius:0 999px 999px 0;
  background:#266ED5;
  transition:width .4s cubic-bezier(0.4,0,0.2,1);
  z-index:0;
}
.pill-btn--hero:hover::before,
.pill-btn--cta:hover::before{
  width:100%;
  border-radius:999px;
}
.pill-btn--hero > *,
.pill-btn--cta > *{
  position:relative;
  z-index:1;
}
/* Icon CTA: background #266ED5, panah default kanan-atas (-45deg), hover = vertikal (ke kanan 0deg) */
.pill-btn--hero .pill-btn__icon,
.pill-btn--cta .pill-btn__icon{
  background:#266ED5;
  transition:background-color .4s cubic-bezier(0.4,0,0.2,1), transform .4s cubic-bezier(0.4,0,0.2,1);
}
.pill-btn--hero .pill-btn__icon svg,
.pill-btn--cta .pill-btn__icon svg{
  transform:rotate(-45deg);
  transition:transform .4s cubic-bezier(0.4,0,0.2,1);
}
.pill-btn--hero:hover .pill-btn__icon,
.pill-btn--cta:hover .pill-btn__icon{
  background-color:transparent;
  transform:translateX(4px);
}
.pill-btn--hero:hover .pill-btn__icon svg,
.pill-btn--cta:hover .pill-btn__icon svg{
  transform:rotate(0deg) translateX(1px);
}

.pill-btn--nav{
  /* Default (gambar 1): blue pill, white text, subtle shadow */
  background:rgba(45,116,227,.96);
  border-color:rgba(45,116,227,.96);
  color:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.12);
  padding:16px 26px;
  gap:0;
}
.pill-btn--nav .pill-btn__icon{display:none}

.pill-btn--nav:hover{
  /* Hover (navbar di atas hero): abu transparan, font biru */
  background:rgba(128,128,128,.18);
  border-color:rgba(128,128,128,.25);
  color:#1a73e8;
  box-shadow:none;
}
/* CTA navbar saat scroll: hover seperti referensi – background terang, teks biru, shadow halus */
.site-header.is-scrolled .pill-btn--nav:hover{
  background:#f0f4f8;
  color:#3b71ca;
  border-color:rgba(59,113,202,.22);
  box-shadow:0 2px 10px rgba(59,113,202,.12);
}

/* Hero – linear kiri ke kanan: #FFFFFF → #94BBF2, padding cukup agar tidak tumpuk header */
.hero{
  position:relative;
  background:linear-gradient(to right, #FFFFFF 0%, #94BBF2 100%);
  color:var(--text);
  padding:120px 0 0;
  overflow:hidden;
}
.hero::before{
  display:none;
}
/* Desktop hero: responsif – kiri ~2/3 teks, kanan ~1/3 chess (fluid) */
.hero-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:clamp(24px, 4vw, 48px);
  align-items:flex-end;
  max-width:var(--container);
  margin:0 auto;
  padding:0 clamp(16px, 2vw, 24px);
}
.hero-copy{
  max-width:520px;
  padding-right:24px;
}
.hero .title--h1{
  font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size:clamp(42px, 5.2vw + 1rem, 56px);
  font-weight:500;
  line-height:1.2;
  max-width:52ch;
  text-transform:capitalize;
}
/* Judul hero: biru seperti & di logo brand (var(--blue)), capitalize each word */
.hero .title--hero,
.hero .title--dark{
  color:var(--blue);
  text-transform:capitalize;
}
.hero-copy .title{margin:0 0 20px}
.hero-copy .subtitle{
  margin:0 0 32px;
  max-width:52ch;
  font-size:clamp(0.9375rem, 1vw + 0.75rem, 1.125rem);
  line-height:1.65;
  color:rgba(255,255,255,.88);
}
/* Paragraf hero (3 baris): Manrope Regular, dark grey #546473 */
.hero .subtitle--hero,
.hero .hero-copy .subtitle--light{
  font-family:var(--font-sans);
  font-weight:400;
  color:#546473;
  line-height:1.7;
  text-align:left;
  max-width:52ch;
}
/* CTA hero: background biru terang, teks & panah biru tua (sesuai gambar) */
.hero-copy .pill-btn--hero{
  padding:12px 10px 12px 28px;
  gap:14px;
  display:inline-flex;
  background:#e3f2fd;
  color:var(--navy);
  border:1px solid rgba(6,32,69,.15);
}
/* Hero CTA: rolling fill #266ED5 dari kanan ke kiri, teks/icon jadi putih saat hover */
.hero-copy .pill-btn--hero::before{
  background:#266ED5;
}
.hero-copy .pill-btn--hero:hover{
  background:#e3f2fd;
  color:#fff;
  border-color:rgba(38,110,213,.3);
}
.hero-copy .pill-btn--hero:hover .pill-btn__icon{
  background:rgba(255,255,255,.25);
  color:#fff;
  transform:translateX(2px);
}
.hero-copy .pill-btn--hero .pill-btn__icon{
  width:32px;
  height:32px;
  background:#266ED5;
  color:#fff;
  border-radius:50%;
  transition:background .4s ease, transform .4s ease, color .4s ease;
  flex-shrink:0;
}
.hero-copy .pill-btn--hero .pill-btn__icon svg{
  width:14px;
  height:14px;
  transform:rotate(-45deg);
  fill:currentColor;
  transition:transform .4s cubic-bezier(0.4,0,0.2,1);
}
.hero-copy .pill-btn--hero:hover .pill-btn__icon svg{
  transform:rotate(0deg) translateX(1px);
}
.hero-copy .pill-btn--hero{margin-bottom:64px}
/* Spiral dinonaktifkan – sembunyikan bila masih ada di HTML */
.hero-spiral,
.hero-visual::before{display:none !important; visibility:hidden !important; opacity:0 !important; pointer-events:none !important}
.hero-visual{
  position:relative;
  width:520px;
  height:560px;
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  flex-shrink:0;
  justify-self:end;
  margin-left:0;
  margin-right:0;
}
/* Gambar hero: tampil penuh, rata kanan (mentok) */
.hero-image{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:100% 100%;
  display:block;
}

/* Powered section */
.powered{
  position:relative;
  padding:92px 0;
  background:#fff;
  overflow:hidden;
}
.powered::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(520px 220px at 50% 62%, rgba(45,116,227,.16), transparent 70%),
    radial-gradient(720px 300px at 50% 62%, rgba(45,116,227,.10), transparent 72%);
  filter:blur(2px);
  pointer-events:none;
}
.powered p{
  position:relative;
  margin:0 auto;
  max-width:78ch;
  text-align:center;
  color:rgba(15,31,56,.70);
  font-size:18px;
  line-height:1.4;
  font-weight:400;
}
.powered .accent{
  color:rgba(45,116,227,.90);
  font-weight:850;
  text-decoration:none;
  transition:color .2s ease, text-decoration .2s ease;
}
.powered .accent:hover{
  color:var(--blue);
  text-decoration:underline;
}

/* Reveal on scroll */
.reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

/* About */
.about-grid{
  display:grid;
  grid-template-columns: .95fr 1.05fr;
  gap:54px;
  align-items:center;
}
.about-photo{
  width:440px;
  height:500px;
  max-width:100%;
  border-radius:var(--radius);
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
  object-fit:cover;
}
.about-copy .pill{background:rgba(45,116,227,.08)}
.about-copy .title{
  margin-top:12px;
  font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight:500;
  color:var(--blue);
  text-transform:capitalize;
  letter-spacing:-.02em;
  line-height:1.2;
}
.about-copy .body{
  margin-top:12px;
  color:rgba(15,31,56,.68);
  font-size:16px;
  line-height:1.5;
  font-weight:400;
}
.about-copy .body p{margin:0 0 12px}
.about-copy .body p:last-child{margin-bottom:0}

/* Carousel base */
.carousel{
  position:relative;
}
.carousel-viewport{
  position:relative;
  overflow:hidden;
  padding:10px 0 0;
}
.carousel-viewport::before,
.carousel-viewport::after{
  content:"";
  position:absolute;
  top:0; bottom:0;
  width:110px;
  pointer-events:none;
  z-index:2;
}
.carousel-viewport::before{
  left:0;
  background:linear-gradient(90deg, var(--bg-soft), rgba(242,247,255,0));
}
.carousel-viewport::after{
  right:0;
  background:linear-gradient(270deg, var(--bg-soft), rgba(242,247,255,0));
}
.carousel-track{
  display:flex;
  gap:22px;
  overflow-x:auto;
  overflow-y:hidden;
  align-items:flex-start;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:0 90px 10px;
}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-slide{
  flex:0 0 440px;
  scroll-snap-align:center;
  opacity:.30;
  transform:scale(.92);
  transition:opacity .3s ease, transform .3s ease;
}
.carousel-slide.is-active{
  opacity:1;
  transform:scale(1);
}

.carousel-btn{
  position:absolute;
  top:58%;
  transform:translateY(-50%);
  width:44px; height:44px;
  border-radius:999px;
  border:0;
  background:rgba(255,255,255,.92);
  box-shadow:0 12px 26px rgba(6,32,69,.16);
  display:grid;
  place-items:center;
  cursor:pointer;
  z-index:5;
}
.carousel-btn svg{width:18px; height:18px; fill:rgba(45,116,227,.95)}
.carousel{
  --arrow-left: 110px;
  --arrow-right: calc(100% - 110px);
}
.carousel-btn--prev{left:var(--arrow-left)}
.carousel-btn--next{left:var(--arrow-right); right:auto}

.carousel-dots{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:18px;
}
.dot{
  width:6px; height:6px;
  border-radius:999px;
  background:rgba(15,31,56,.18);
  border:0;
  padding:0;
  cursor:pointer;
}
.dot.is-active{
  width:18px;
  background:rgba(45,116,227,.70);
}

/* Core services – center-mode carousel with active slide effect + autoplay */
.core-services{background:var(--bg-soft)}
.core-services .carousel-track{
  padding-left:max(12px, calc(50% - 310px));
  padding-right:max(12px, calc(50% - 310px));
  padding-bottom:10px;
}
.core-services .carousel-slide{
  flex:0 0 620px;
  opacity:.35;
  transform:scale(.88);
  transition:opacity .35s ease, transform .35s ease;
}
.core-services .carousel-slide.is-active{
  opacity:1;
  transform:scale(1);
  z-index:1;
}
.service-card{
  background:#fff;
  width:620px;
  height:420px;
  border-radius:24px;
  border:2px solid rgba(45,116,227,.10);
  padding:8px;
  transition:transform .22s ease, border-color .22s ease;
  position:relative;
  overflow:hidden;
}
.service-card__media{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(15,31,56,.08);
}
.service-card__media img{
  width:100%;
  height:340px;
  object-fit:cover;
}
.service-card__panel{
  position:absolute;
  left:8px;
  right:8px;
  bottom:8px;
  height:56px;
  background:#fff;
  border-radius:18px;
  padding:0 16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  transition:height .22s ease, padding .22s ease;
  z-index:3; /* sits above image when expanded */
}
.service-card__name{
  margin:0;
  font-weight:400;
  color:rgba(45,116,227,.92);
  text-align:center;
  font-size:18px;
  line-height:1.5;
}
.service-card__details{
  margin-top:6px;
  opacity:0;
  max-height:0;
  overflow:hidden;
  transition:opacity .18s ease, max-height .22s ease;
  width:100%;
}
.service-card__tags{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px 12px;
  margin:0;
  padding:0;
  list-style:none;
}
.tag{
  font-size:10px;
  font-weight:400;
  color:rgba(45,116,227,.92);
  background:rgba(45,116,227,.08);
  border:1px solid rgba(45,116,227,.12);
  padding:5px 12px;
  border-radius:999px;
  text-align:center;
  line-height:1.4;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Hover: panel expands, padding/typography compact seperti gambar pertama (tidak gemuk) */
.service-card:hover{border-color:rgba(45,116,227,.18)}
.service-card:hover .service-card__panel{
  height:auto;
  min-height:53px;
  max-height:160px;
  padding:10px 14px 10px;
  justify-content:flex-start;
}
.service-card:hover .service-card__details{opacity:1; max-height:120px}

/* Why choose */
.why{background:var(--bg-soft)}
.feature-grid{
  display:grid;
  grid-template-columns:repeat(3, 308px);
  justify-content:center;
  gap:26px 28px;
  margin-top:40px;
}
.feature{
  background:#fff;
  width:308px;
  min-height:211px;
  border-radius:26px;
  border:1px solid rgba(224,224,224,.9);
  box-shadow:0 4px 20px rgba(6,32,69,.06);
  padding:28px 22px 24px;
  text-align:center;
  transition:transform .25s ease, background .25s ease, box-shadow .25s ease, border-color .25s ease, color .25s ease;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.feature:hover{
  transform:translateY(-4px);
  background:#2962ff;
  border-color:#2962ff;
  box-shadow:0 12px 32px rgba(41,98,255,.35);
}
.feature:hover .feature__title,
.feature:hover .feature__desc{color:#fff}
.feature__icon{
  width:74px; height:74px;
  border-radius:20px;
  display:grid;
  place-items:center;
  margin:0 auto 16px;
  background:rgba(45,116,227,.07);
  border:1px solid rgba(45,116,227,.18);
  box-shadow:0 10px 24px rgba(6,32,69,.08);
  transition:background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.feature:hover .feature__icon{
  background:transparent;
  border-color:rgba(255,255,255,.25);
  box-shadow:none;
}
.feature__icon svg{width:46px; height:46px; display:block; transition:opacity .25s ease}
.feature__icon svg .cls-1{transition:fill .25s ease}
.feature__icon svg .cls-2,
.feature__icon svg .cls-3{transition:fill .25s ease}
.feature__icon img{width:46px; height:46px; object-fit:contain; display:block; transition:filter .25s ease}
.feature:hover .feature__icon svg .cls-1{fill:#fff !important}
.feature:hover .feature__icon svg .cls-2,
.feature:hover .feature__icon svg .cls-3{fill:transparent !important}
.feature:hover .feature__icon img{
  filter:brightness(0) invert(1) drop-shadow(0 0 0 1px rgba(255,255,255,.4));
}
.feature__title{
  margin:0;
  font-family:'Manrope',sans-serif;
  font-weight:400;
  font-size:18px;
  line-height:1.2;
  color:rgba(45,116,227,.90);
  transition:color .25s ease;
}
.feature__desc{
  margin:10px 0 0;
  font-family:'Manrope',sans-serif;
  font-weight:400;
  font-size:16px;
  line-height:1.5;
  color:rgba(15,31,56,.62);
  transition:color .25s ease;
}

/* Testimonials – slider center-mode design */
.testimonials{background:#fff}
.testimonials-carousel{margin-top:34px}
.testimonials-carousel .carousel-viewport::before,
.testimonials-carousel .carousel-viewport::after{
  background:linear-gradient(90deg, #fff, rgba(255,255,255,0));
}
.testimonials-carousel .carousel-viewport::after{
  background:linear-gradient(270deg, #fff, rgba(255,255,255,0));
}
.testimonials-carousel .carousel-track{
  padding-left:max(12px, calc(50% - 160px));
  padding-right:max(12px, calc(50% - 160px));
  padding-bottom:10px;
}
.testimonials-carousel .carousel-slide{
  flex:0 0 320px;
  scroll-snap-align:center;
  opacity:.4;
  transform:scale(.9);
  transition:opacity .35s ease, transform .35s ease, box-shadow .35s ease;
}
.testimonials-carousel .carousel-slide.is-active{
  opacity:1;
  transform:scale(1);
  box-shadow:0 24px 56px rgba(6,32,69,.12);
  z-index:1;
}
/* Portrait card: lebih tinggi daripada lebar, isi card seperti sebelumnya */
.t-card{
  background:#fff;
  border-radius:24px;
  border:1px solid rgba(15,31,56,.08);
  box-shadow:0 16px 36px rgba(6,32,69,.10);
  padding:22px 22px 18px;
  width:100%;
  min-height:420px;
  max-width:320px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
}
.t-brand{
  color:rgba(15,31,56,.45);
  font-weight:900;
  letter-spacing:.02em;
  text-transform:lowercase;
}
.t-quote{
  margin-top:8px;
  color:rgba(45,116,227,.86);
  font-size:40px;
  line-height:1;
}
.t-text{margin:10px 0 14px; color:rgba(15,31,56,.64)}
.t-person{
  margin-top:auto;
  display:flex;
  align-items:center;
  gap:12px;
}
.avatar{
  width:40px; height:40px;
  border-radius:999px;
  border:1px solid rgba(15,31,56,.10);
}
.t-name{font-weight:900; font-size:13px}
.t-role{font-size:12px; color:rgba(15,31,56,.55)}

/* Clients */
.clients{background:#edf2f9}
.client-table{
  margin-top:38px;
  border-top:1px solid rgba(107,124,152,.2);
}
.client-row{
  display:grid;
  grid-template-columns: 320px 1fr;
  gap:0;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid rgba(107,124,152,.2);
}
.client-label{
  font-family:var(--font-sans);
  font-size:12px;
  font-weight:400;
  color:#6b7c98;
  padding-right:18px;
}
.client-logos{
  position:relative;
  overflow:hidden;
  padding-left:18px;
  border-left:1px solid rgba(107,124,152,.25);
}
.client-logos__track{
  display:flex;
  align-items:center;
  gap:46px;
  animation:marquee 18s linear infinite;
}
.client-logos:hover .client-logos__track{animation-play-state:paused}
.client-logo{
  font-weight:950;
  color:#5f6f83;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:28px;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
}
.client-logo img{
  max-height:40px;
  width:auto;
  object-fit:contain;
  vertical-align:middle;
  filter:brightness(0) saturate(100%) invert(51%) sepia(9%) saturate(380%) hue-rotate(208deg) brightness(95%) contrast(91%);
}
.client-logo--small img{max-height:32px}
.client-logo--small{font-size:18px; font-weight:850; text-transform:none; letter-spacing:0; color:#5f6f83}

@keyframes marquee{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
@media (prefers-reduced-motion: reduce){
  .client-logos__track{animation:none}
}

/* Team – slider: slides per view (desktop 4, tablet 2, mobile 1), arrows below */
.team{background:#fff}
.team .carousel-viewport::before,
.team .carousel-viewport::after{
  background:linear-gradient(90deg, #fff, rgba(255,255,255,0));
}
.team .carousel-viewport::after{
  background:linear-gradient(270deg, #fff, rgba(255,255,255,0));
}
.team .carousel-track{
  padding:0 12px 10px;
  scroll-snap-type:x mandatory;
  --team-gap:22px;
}
/* Desktop: 4 cards per view */
.team .carousel-slide{
  --team-spv:4;
  scroll-snap-align:start;
  flex:0 0 calc((100% - (var(--team-spv) - 1) * var(--team-gap)) / var(--team-spv));
  opacity:1;
  transform:none;
}
.team-card{
  position:relative;
  width:100%;
  aspect-ratio:3/4;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 14px 36px rgba(6,32,69,.10);
  border:1px solid rgba(15,31,56,.06);
  cursor:pointer;
}
.team-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.team-overlay{
  position:absolute;
  inset:auto 0 0 0;
  padding:20px 14px 14px;
  background:linear-gradient(0deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,.35) 45%, transparent 100%);
  color:#fff;
  z-index:3;
}
.team-name{font-weight:900; margin:0; font-size:15px}
.team-role{margin:4px 0 0; color:rgba(255,255,255,.88); font-size:13px}
.team-view{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.18);
  opacity:0;
  transition:opacity .28s ease;
  z-index:2;
}
.team-card:hover .team-view{opacity:1}
.team-view button{
  border:0;
  border-radius:999px;
  padding:10px 18px;
  background:rgba(55,48,45,.52);
  color:rgba(255,255,255,.98);
  font-weight:500;
  font-size:13px;
  letter-spacing:.02em;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease;
  box-shadow:none;
}
.team-view button:hover{
  background:rgba(55,48,45,.65);
  transform:scale(1.02);
}
.team-controls{
  display:flex;
  justify-content:center;
  gap:12px;
  margin-top:22px;
}
.team-controls .carousel-btn{
  position:static;
  transform:none;
  width:40px;
  height:40px;
  border-radius:999px;
  background:rgba(45,116,227,.12);
  box-shadow:none;
}
.team-controls .carousel-btn svg{fill:rgba(45,116,227,.95)}

/* Modal */
.modal{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(0,0,0,.54);
  z-index:80;
}
.modal.is-open{display:flex}
.modal-card{
  width:min(980px, 100%);
  background:#fff;
  border-radius:24px;
  box-shadow:0 30px 90px rgba(0,0,0,.30);
  overflow:hidden;
  position:relative;
}
.modal-close{
  position:absolute;
  top:14px;
  right:14px;
  width:38px; height:38px;
  border-radius:999px;
  border:1px solid rgba(15,31,56,.10);
  background:#fff;
  cursor:pointer;
  z-index:5;
}
.modal-close::before,
.modal-close::after{
  content:"";
  position:absolute;
  inset:0;
  margin:auto;
  width:16px; height:2px;
  background:rgba(15,31,56,.70);
}
.modal-close::before{transform:rotate(45deg)}
.modal-close::after{transform:rotate(-45deg)}
.modal-grid{
  display:grid;
  grid-template-columns:1fr 1.15fr;
}
.modal-photo{
  position:relative;
  background:var(--bg-soft);
  min-height:420px;
}
.modal-photo img{width:100%; height:100%; object-fit:cover; object-position:42% 32%; min-height:420px; display:block}
.modal-photo-social{
  position:absolute;
  left:16px;
  bottom:16px;
  display:flex;
  gap:10px;
  z-index:2;
}
.modal-social-link{
  width:44px;
  height:44px;
  border-radius:10px;
  display:grid;
  place-items:center;
  transition:transform .2s ease, box-shadow .2s ease;
  box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.modal-social-link:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(0,0,0,.2);
}
.modal-social-link svg{width:20px; height:20px; display:block}
/* LinkedIn: medium blue background, white icon */
.modal-social-link[data-modal-linkedin]{
  background:#0A66C2;
  color:#fff;
}
.modal-social-link[data-modal-linkedin]:hover{background:#004182; color:#fff}
.modal-social-link[data-modal-linkedin] svg{fill:currentColor}
/* Email: white background, blue envelope icon */
.modal-social-link[data-modal-email]{
  background:#fff;
  color:#2d74e3;
}
.modal-social-link[data-modal-email]:hover{background:#f0f4fc; color:#1a5bb8}
.modal-social-link[data-modal-email] svg{stroke:currentColor}
.modal-body{
  padding:32px 28px 28px;
  position:relative;
}
.modal-name{
  margin:0;
  font-family:var(--font-serif);
  font-weight:400;
  color:rgba(15,31,56,.92);
  font-size:28px;
  line-height:1.2;
}
.modal-role{margin:6px 0 0; color:rgba(45,116,227,.9); font-weight:700; font-size:15px}
.modal-text{margin:16px 0 0; color:rgba(15,31,56,.64); font-size:15px; line-height:1.6}
.modal-expertise-title{
  margin:22px 0 10px;
  font-size:14px;
  font-weight:800;
  color:rgba(15,31,56,.75);
  text-transform:uppercase;
  letter-spacing:.04em;
}
.modal-skills{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
}
.modal-skill-tag{
  font-size:12px;
  font-weight:500;
  color:rgba(45,116,227,.92);
  background:rgba(45,116,227,.1);
  border:1px solid rgba(45,116,227,.2);
  padding:6px 12px;
  border-radius:999px;
}
@media (max-width: 640px){
  .modal{padding:16px 20px; align-items:center; overflow-y:auto; overflow-x:hidden}
  .modal-card{
    width:100%;
    max-width:320px;
    margin:auto;
    border-radius:20px;
    max-height:calc(100vh - 32px);
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
  .modal-card .modal-grid{
    display:flex;
    flex-direction:column;
    min-height:0;
    flex:1;
  }
  .modal-grid{grid-template-columns:1fr}
  .modal-photo{
    height:200px;
    min-height:200px;
    flex-shrink:0;
  }
  .modal-photo img{min-height:0; height:100%; object-fit:cover; object-position:42% 32%}
  .modal-photo{border-radius:20px 20px 0 0; overflow:hidden}
  .modal-photo-social{left:auto; right:12px; bottom:12px}
  .modal-body{
    padding:16px 18px 18px;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    display:flex;
    flex-direction:column;
    -webkit-overflow-scrolling:touch;
  }
  .modal-name{font-size:19px; line-height:1.2}
  .modal-role{font-size:13px; margin-top:2px}
  .modal-text{
    font-size:13px;
    line-height:1.55;
    margin-top:8px;
  }
  .modal-expertise-title{margin-top:12px; margin-bottom:6px; font-size:11px; flex-shrink:0}
  .modal-skills{gap:5px 6px; flex-wrap:wrap; flex-shrink:0}
  .modal-skill-tag{font-size:10px; padding:4px 8px}
  .modal-close{top:8px; right:8px; width:32px; height:32px}
}

/* CTA atas footer: card gradien biru terang → putih, judul biru, teks abu gelap, tombol terang (rolling fill hover dipertahankan) */
.cta{
  padding:0 0 110px;
  background:#fff;
}
.cta-box{
  background:linear-gradient(to right, #FFFFFF 0%, #94BBF2 100%);
  border-radius:32px;
  padding:40px 30px 44px;
  text-align:center;
  color:var(--text);
  box-shadow:0 24px 64px rgba(6,32,69,.08);
  position:relative;
  overflow:hidden;
  max-width:860px;
  margin-inline:auto;
}
.cta-box::before{
  display:none;
}
.cta-box > *{position:relative; z-index:1}
/* CTA atas footer: "Ready to Transform your Organization?" – style & ukuran sama dengan hero title */
.cta-title,
.cta-box .title{
  font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size:46px;
  font-weight:500;
  line-height:1.2;
  color:var(--blue);
  margin:0 auto 16px;
  letter-spacing:-.02em;
  max-width:22ch;
  text-transform:capitalize;
}
.cta-box .title.title--dark{color:#fff}
.cta-line1,
.cta-line2,
.cta-box .subtitle{
  font-family:var(--font-sans);
  font-size:18px;
  line-height:1.55;
  color:#333;
  margin:0 auto;
  font-weight:400;
  max-width:44ch;
}
.cta-line1{margin-bottom:2px}
.cta-line2{margin-bottom:0}
.cta-box .subtitle{margin-bottom:0}
.cta-actions{margin-top:36px; display:flex; justify-content:center; flex-wrap:wrap}
/* Tombol CTA: background terang, teks biru tema, icon biru; hover = rolling fill #266ED5 (dipertahankan) */
.cta .pill-btn--cta{
  position:relative;
  overflow:hidden;
  padding:12px 16px 12px 22px;
  gap:12px;
  background:#e8ecf4;
  border:1px solid rgba(41,98,255,.12);
  box-shadow:none;
  color:var(--navy);
  font-size:14px;
  font-weight:400;
  line-height:1.5;
  white-space:nowrap;
  transition:border-color .4s ease, box-shadow .4s ease, color .4s ease;
}
.cta .pill-btn--cta:hover{
  color:#fff;
}
/* Rolling fill #266ED5 kanan → kiri (dipertahankan) */
.cta .pill-btn--cta::before{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  right:0;
  width:0;
  border-radius:0 999px 999px 0;
  background:#266ED5;
  transition:width .4s cubic-bezier(0.4,0,0.2,1);
  z-index:0;
}
.cta .pill-btn--cta:hover::before{
  width:100%;
  border-radius:999px;
}
.cta .pill-btn--cta > *{position:relative; z-index:1}
.cta .pill-btn--cta .pill-btn__icon{
  width:26px;
  height:26px;
  background:#1976D2;
  transition:background-color .4s cubic-bezier(0.4,0,0.2,1), transform .4s cubic-bezier(0.4,0,0.2,1);
}
.cta .pill-btn--cta .pill-btn__icon svg{
  width:12px;
  height:12px;
  transform:rotate(-45deg);
  fill:#fff;
  transition:transform .4s cubic-bezier(0.4,0,0.2,1);
}
.cta .pill-btn--cta:hover .pill-btn__icon{
  background-color:transparent;
  transform:translateX(4px);
}
.cta .pill-btn--cta:hover .pill-btn__icon svg{
  transform:rotate(0deg) translateX(1px);
  fill:#fff;
}
.cta-btn{
  display:inline-flex;
  align-items:stretch;
  border-radius:999px;
  text-decoration:none;
  overflow:hidden;
  box-shadow:0 6px 20px rgba(0,0,0,.25);
  transition:transform .2s ease, box-shadow .2s ease;
}
.cta-btn:hover{transform:translateY(-2px); box-shadow:0 10px 28px rgba(0,0,0,.3)}
.cta-btn__text{
  padding:0 24px 0 28px;
  height:52px;
  font-family:var(--font-sans);
  font-weight:600;
  font-size:15px;
  line-height:52px;
  color:#fff;
  background:#3a4b6b;
  display:inline-flex;
  align-items:center;
}
.cta-btn__icon{
  width:52px;
  flex-shrink:0;
  height:52px;
  display:grid;
  place-items:center;
  background:#5c8ded;
  color:#fff;
  transition:background .2s ease;
}
.cta-btn:hover .cta-btn__icon{background:#6b9cf5}
.cta-btn__icon svg{width:20px; height:20px}

/* Footer */
.site-footer{
  background:var(--navy);
  color:#fff;
  padding:62px 0 30px;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:64px;
  align-items:flex-start;
}
.footer-divider{
  grid-column:1 / -1;
  margin-top:18px;
  margin-bottom:0;
  height:1px;
  background:rgba(255,255,255,.14);
}
.footer-bottom{
  padding-top:20px;
}
.footer-brand .brand-text{color:#fff; font-size:40px}
.footer-brand .brand-text .amp{color:var(--blue)}
.footer-brand-logo{
  display:block;
  height:28px;
  width:auto;
  object-fit:contain;
  filter:brightness(0) invert(1);
}
.footer-address{
  margin-top:18px;
  color:rgba(255,255,255,.74);
  display:grid;
  gap:10px;
  font-size:14px;
}
.footer-links-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:56px;
  align-items:flex-start;
  position:relative;
}
.footer-links-grid::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  bottom:0;
  width:1px;
  background:rgba(255,255,255,.14);
  transform:translateX(-50%);
}
.footer-col-title{
  font-weight:400;
  margin-bottom:10px;
}
.footer-col-title--with-icon{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.footer-col-title-icon{
  display:inline-flex;
  color:rgba(255,255,255,.85);
}
.footer-col-title-icon svg{
  display:block;
}
.footer-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:14px;
}
.footer-list a{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:rgba(255,255,255,.78);
  text-decoration:none;
  font-weight:400;
}
.footer-list a:hover{color:#fff}
.footer-link-icon{
  display:inline-flex;
  flex-shrink:0;
  color:rgba(255,255,255,.7);
}
.footer-list a:hover .footer-link-icon{color:rgba(255,255,255,.95)}
.footer-link-icon svg{display:block}
.footer-bottom{
  text-align:center;
  color:rgba(255,255,255,.52);
  font-size:13px;
}

/* Responsive */
/* Tablet: hero satu kolom, konten tengah, chess bawah tengah, ukuran responsif */
@media (max-width: 980px){
  .site-nav{display:none}
  .nav-wrap .pill-btn:not(.pill-btn--drawer){display:none}
  .nav-toggle{display:flex}
  .title--h1{font-size:42px}
  .title--h2{font-size:40px}
  .subtitle{font-size:17px}
  .hero .subtitle,
  .hero-copy .subtitle{font-size:15px; line-height:1.55}
  .hero{padding:100px 24px 0}
  .hero-inner{
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
    gap:36px;
    min-height:auto;
    align-items:center;
  }
  .hero-copy{
    max-width:520px;
    text-align:center;
    margin-inline:auto;
    padding:0;
    transform:none;
  }
  .hero-copy .title{margin-bottom:20px}
  .hero-copy .subtitle{margin:0 auto 32px; text-align:center; max-width:48ch}
  .hero .title--h1{max-width:52ch; margin-inline:auto; font-size:48px; line-height:1.26}
  .hero-visual{
    width:100%;
    max-width:480px;
    height:420px;
    min-height:320px;
    margin-inline:auto;
    justify-self:center;
    justify-content:center;
    align-items:flex-end;
  }
  .hero-image{object-fit:contain; object-position:50% 100%; width:100%; height:100%}
  .pill-btn--hero{margin-inline:auto}
  .about-grid{grid-template-columns:1fr; gap:28px}
  .client-row{grid-template-columns:1fr; gap:10px}
  .client-logos{border-left:0; padding-left:0}
  .carousel-btn--prev{left:18px}
  .carousel-btn--next{right:18px}
  .carousel-track{padding:0 22px 10px}
  .carousel-slide{flex-basis:78vw}
  .service-card{width:100%}
  .team .carousel-slide{--team-spv:2}
  .t-grid{grid-template-columns:1fr}
  .testimonials-carousel .carousel-slide{flex:0 0 300px}
  .testimonials-carousel .carousel-track{
    padding-left:max(12px, calc(50% - 150px));
    padding-right:max(12px, calc(50% - 150px));
  }
  .feature-grid{grid-template-columns:1fr; justify-items:center}
  .footer-grid{grid-template-columns:1fr}
  .footer-links-grid::before{display:none}
}

@media (max-width: 760px){
  .site-header .container{width:min(var(--container), calc(100% - 40px))}
  .site-nav{display:none}
  .nav-wrap .pill-btn{display:none}
  .nav-toggle{display:flex}
  .brand{min-width:auto}
  .brand-text{font-size:24px}
  .hero{padding:100px 20px 0}
  .title--h1{font-size:38px}
  .title--h2{font-size:34px}
  .subtitle{font-size:17px}
  .hero .title--h1{font-size:44px}
  .hero-visual{width:100%; max-width:420px; height:380px; min-height:300px; margin-inline:auto}
  .team .carousel-slide{--team-spv:1}
}

/* Mobile hero: layout & font size seperti gambar 2, warna/style font tidak diubah */
@media (max-width: 640px){
  .brand-text{font-size:22px}
  .title--h1{font-size:32px}
  .title--h2{font-size:30px}
  .subtitle{font-size:16px}
  .hero .title--h1{font-size:38px}
  .hero .subtitle,
  .hero-copy .subtitle{font-size:15px; line-height:1.55}
  .hero-inner{min-height:auto; gap:36px}
  .hero{padding:100px 20px 0}
  .hero-copy{
    text-align:center;
    margin-inline:auto;
    max-width:min(400px, 88vw);
    padding-left:0;
    padding-right:0;
    transform:none;
  }
  .hero .title--h1{
    max-width:18ch;
    margin-inline:auto;
    line-height:1.28;
    margin-top:0;
    margin-bottom:20px;
    text-align:center;
  }
  .hero-copy .title{margin:0 0 20px}
  .hero-copy .subtitle,
  .hero .hero-copy .subtitle--light{
    margin:0 auto 40px;
    text-align:center;
    max-width:42ch;
  }
  .pill-btn--hero{font-size:13px; line-height:1.5; min-height:44px; padding:12px 16px 12px 24px; margin-inline:auto; display:inline-flex}
  .about-copy .body{font-size:15px}
  .section-title .subtitle{font-size:16px}
  .about-grid{justify-items:center; gap:24px}
  .about-photo{
    width:100%;
    max-width:min(320px, 88vw);
    height:auto;
    aspect-ratio:440/500;
    margin-inline:auto;
    display:block;
  }
  .about-copy{
    text-align:center;
    max-width:min(400px, 94vw);
    margin-inline:auto;
  }
  .about-copy .pill{display:inline-flex; margin-inline:auto}
  .about-copy .title{text-align:center; margin-left:auto; margin-right:auto}
  .about-copy .body{text-align:center}
  .about-copy .body p{text-align:center}
  .core-services .section-title{text-align:center; max-width:min(400px, 94vw); margin-inline:auto}
  .core-services .section-title .pill{display:inline-flex; margin-inline:auto}
  .core-services .section-title .title{margin-inline:auto}
  .core-services .section-title .subtitle{text-align:center; margin-inline:auto}
  .core-services .carousel-viewport::before,
  .core-services .carousel-viewport::after{display:none}
  .core-services .carousel-track{
    padding-left:max(12px, calc(50% - 160px));
    padding-right:max(12px, calc(50% - 160px));
    padding-bottom:10px;
    gap:16px;
  }
  .core-services .carousel-slide{flex:0 0 320px}
  .core-services .service-card{
    width:100%;
    max-width:100%;
    margin-inline:auto;
    height:240px;
    padding:6px;
    border-radius:20px;
    box-shadow:0 12px 32px rgba(6,32,69,.1);
  }
  .core-services .service-card__media{border-radius:14px}
  .core-services .service-card__media img{height:155px; object-fit:cover}
  .core-services .service-card__panel{
    left:6px; right:6px; bottom:6px;
    height:48px;
    padding:0 12px;
    border-radius:14px;
    align-items:center;
    justify-content:center;
  }
  .core-services .service-card__name{text-align:center; font-size:16px}
  .core-services .carousel-btn--prev{left:8px}
  .core-services .carousel-btn--next{right:8px; left:auto}
  .core-services .carousel-dots{margin-top:14px; justify-content:center}
  .why .section-title{text-align:center; max-width:min(400px, 94vw); margin-inline:auto}
  .why .section-title .pill{display:inline-flex; margin-inline:auto}
  .why .section-title .title{margin-inline:auto}
  .why .section-title .subtitle{text-align:center; margin-inline:auto}
  .why .feature-grid{
    grid-template-columns:repeat(2, 1fr);
    gap:14px 12px;
    margin-top:28px;
    justify-items:stretch;
  }
  .why .feature{
    width:100%;
    min-width:0;
    min-height:180px;
    padding:20px 12px 18px;
    text-align:center;
    align-items:center;
    justify-content:flex-start;
  }
  .why .feature__icon{
    width:52px;
    height:52px;
    margin-bottom:10px;
  }
  .why .feature__icon img{width:36px; height:36px}
  .why .feature__title{font-size:15px; text-align:center}
  .why .feature__desc{margin-top:6px; font-size:13px; text-align:center; line-height:1.4}
  .testimonials .section-title{text-align:center; max-width:min(400px, 94vw); margin-inline:auto}
  .testimonials .section-title .title{margin-inline:auto}
  .testimonials-carousel .carousel-viewport::before,
  .testimonials-carousel .carousel-viewport::after{display:none}
  .testimonials-carousel .carousel-track{
    padding-left:24px;
    padding-right:24px;
    padding-bottom:14px;
  }
  .testimonials-carousel .carousel-slide{flex:0 0 min(320px, calc(100% - 48px))}
  .testimonials .t-card{
    padding:24px 20px 22px;
    min-height:380px;
    max-width:320px;
  }
  .testimonials .t-card .t-text{
    font-size:15px;
    line-height:1.55;
    color:rgba(15,31,56,.72);
  }
  .testimonials .t-card .t-person{margin-top:auto; padding-top:4px}
  .testimonials .carousel-dots{margin-top:16px; justify-content:center}
  .clients .section-title{text-align:center; max-width:min(400px, 94vw); margin-inline:auto}
  .clients .section-title .pill{display:inline-flex; margin-inline:auto}
  .clients .section-title .title{margin-inline:auto}
  .clients .section-title .subtitle{text-align:center; margin-inline:auto; max-width:52ch}
  .clients .client-table{margin-top:28px; border-top:1px solid rgba(107,124,152,.25)}
  .clients .client-row{
    grid-template-columns:1fr;
    gap:14px;
    padding:20px 0;
    border-bottom:1px solid rgba(107,124,152,.25);
    text-align:center;
  }
  .clients .client-label{
    text-align:center;
    padding-right:0;
    font-size:12px;
    font-family:var(--font-sans);
    font-weight:400;
    color:rgba(15,31,56,.75);
  }
  .clients .client-logos{
    border-left:0;
    padding-left:0;
    padding-inline:0;
  }
  .clients .client-logos__track{
    display:flex;
    align-items:center;
    gap:32px;
    animation:marquee 18s linear infinite;
    justify-content:flex-start;
  }
  .clients .client-logo{
    justify-content:center;
  }
  .clients .client-logo img{max-height:36px}
  .clients .client-logo--small img{max-height:28px}
  .hero-visual{
    height:260px;
    min-height:220px;
    justify-content:center;
    align-items:flex-end;
  }
  .hero-image{
    object-fit:contain;
    object-position:50% 100%;
    max-height:100%;
    width:100%;
    height:100%;
  }
  .team .section-title{text-align:center; max-width:min(400px, 94vw); margin-inline:auto}
  .team .section-title .pill{display:inline-flex; margin-inline:auto}
  .team .section-title .title{margin-inline:auto}
  .team .section-title .subtitle{text-align:center; margin-inline:auto; max-width:52ch}
  .team .carousel-viewport::before,
  .team .carousel-viewport::after{display:none}
  .team .carousel-track{padding:0 16px 14px; --team-gap:14px}
  .team .carousel-slide{--team-spv:2}
  .team-controls{margin-top:18px; justify-content:center}
}

/* Consultation (CTA form page) */
.consult-hero{
  padding:140px 0 96px;
}
.consult-hero-inner{
  text-align:center;
  position:relative;
}
/* Judul Consultation: style sama dengan hero title */
.consult-hero .title,
.consult-hero__title{
  max-width:920px;
  margin-inline:auto;
  font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight:500;
  line-height:1.2;
  text-transform:capitalize;
  letter-spacing:-.02em;
  color:var(--blue);
}
/* Subtitle Consultation: font & warna sama dengan subtitle section (18px) */
.consult-hero .subtitle,
.consult-hero__subtitle{
  max-width:72ch;
  font-family:var(--font-sans);
  font-weight:400;
  color:#546473;
  line-height:1.7;
  font-size:18px;
}
/* Notifikasi sukses submit: centang hijau + animasi */
.consult-success{
  margin:0 auto 24px;
  padding:28px 24px;
  max-width:420px;
  text-align:center;
  background:#f0fdf4;
  border:1px solid rgba(34,197,94,.3);
  border-radius:20px;
  animation:consultSuccessIn .5s cubic-bezier(0.34,1.56,0.64,1) forwards;
}
.consult-success__icon{
  margin:0 auto 16px;
  animation:consultSuccessPop .6s cubic-bezier(0.34,1.56,0.64,1) .15s both;
}
.consult-success__icon svg{
  display:block;
  margin:0 auto;
  filter:drop-shadow(0 4px 12px rgba(34,197,94,.35));
}
.consult-success__text{
  margin:0;
  font-size:16px;
  line-height:1.5;
  color:#166534;
  font-weight:500;
}
@keyframes consultSuccessIn{
  from{ opacity:0; transform:scale(0.9); }
  to{ opacity:1; transform:scale(1); }
}
@keyframes consultSuccessPop{
  from{ opacity:0; transform:scale(0.3); }
  to{ opacity:1; transform:scale(1); }
}
.consult-card{
  margin:46px auto 0;
  width:min(920px, 100%);
  background:#fff;
  border-radius:24px;
  box-shadow:0 26px 70px rgba(6,32,69,.22);
  border:1px solid rgba(255,255,255,.10);
  padding:26px;
}
.consult-form{margin:0}
.consult-form-error{
  margin:0 0 16px;
  padding:12px 16px;
  background:rgba(220,53,69,.1);
  border:1px solid rgba(220,53,69,.3);
  border-radius:12px;
  color:#b02a37;
  font-size:15px;
  line-height:1.5;
}
.consult-form .required{color:#b02a37}
.consult-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 22px;
}
.field{display:flex; flex-direction:column; gap:10px}
.field-label{
  font-size:16px;
  line-height:1.4;
  font-weight:400;
  color:rgba(15,31,56,.72);
  text-align:left;
}
.field-input{
  appearance:none;
  width:100%;
  height:54px;
  border-radius:10px;
  border:1px solid rgba(15,31,56,.10);
  background:#fff;
  padding:0 16px;
  font-size:16px;
  line-height:1.5;
  color:rgba(15,31,56,.82);
  outline:none;
}
.field-input::placeholder{color:rgba(15,31,56,.40)}
.field-input:focus{
  border-color:rgba(45,116,227,.40);
  box-shadow:0 0 0 4px rgba(45,116,227,.12);
}
select.field-input{
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(15,31,56,.45) 50%),
    linear-gradient(135deg, rgba(15,31,56,.45) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%;
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
  padding-right:42px;
}
.consult-submit{
  margin-top:26px;
  width:100%;
  height:58px;
  border:0;
  border-radius:999px;
  background:rgba(45,116,227,.96);
  color:#fff;
  font-weight:700;
  font-size:16px;
  cursor:pointer;
  transition:transform .15s ease, background-color .15s ease;
}
.consult-submit:hover{transform:translateY(-1px); background:rgba(45,116,227,1)}
.consult-submit:active{transform:translateY(0)}

@media (max-width: 980px){
  .consult-grid{grid-template-columns:1fr}
}

