.elementor-kit-67{--e-global-color-primary:#13234B;--e-global-color-secondary:#0C1733;--e-global-color-text:#FFFFFF;--e-global-color-accent:#C19A3D;--e-global-color-gshnavy950:#0A1229;--e-global-color-gshnavy900:#0C1733;--e-global-color-gshnavy800:#13234B;--e-global-color-gshnavy700:#1B2F60;--e-global-color-gshnavy600:#233A74;--e-global-color-gshgold900:#7A5E17;--e-global-color-gshgold600:#C19A3D;--e-global-color-gshgold500:#D4B356;--e-global-color-gshgold400:#E8CF8B;--e-global-color-gshgold300:#F7E9B8;--e-global-color-gshmuted:#AAB4CC;--e-global-color-gshlead:#C6CEDF;--e-global-color-gshslate400:#8A93AC;--e-global-color-gshwa:#1EA952;--e-global-color-gshfocus:#7FB2FF;--e-global-color-gshwahover:#199447;--e-global-typography-primary-font-family:"Cormorant Garamond";--e-global-typography-primary-font-weight:500;--e-global-typography-primary-line-height:1.2em;--e-global-typography-primary-letter-spacing:0.005em;--e-global-typography-secondary-font-family:"Cormorant Garamond";--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.15em;--e-global-typography-text-font-family:"Plus Jakarta Sans";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Plus Jakarta Sans";--e-global-typography-accent-font-size:15px;--e-global-typography-accent-font-weight:700;--e-global-typography-accent-letter-spacing:0.01em;background-color:#0C1733;font-family:"Plus Jakarta Sans", Sans-serif;font-size:16px;font-weight:400;line-height:1.65em;}.elementor-kit-67 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1120px;}.e-con{--container-max-width:1120px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:640px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */:root{
  --gsh-navy950:#0A1229; --gsh-navy900:#0C1733; --gsh-navy800:#13234B;
  --gsh-navy700:#1B2F60; --gsh-navy600:#233A74;
  --gsh-gold900:#7A5E17; --gsh-gold600:#C19A3D; --gsh-gold500:#D4B356;
  --gsh-gold400:#E8CF8B; --gsh-gold300:#F7E9B8;
  --gsh-muted:#AAB4CC; --gsh-slate400:#8A93AC; --gsh-lead:#C6CEDF;
  --gsh-border:rgba(255,255,255,.10); --gsh-border-gold:rgba(193,154,61,.42);
  --gsh-wa:#1EA952;
  --gsh-grad-gold:linear-gradient(100deg,#8A6A1E 0%,#C19A3D 18%,#F7E9B8 42%,#D4B356 62%,#C19A3D 80%,#8A6A1E 100%);
  --gsh-grad-gold-line:linear-gradient(90deg,rgba(193,154,61,0) 0%,#C19A3D 20%,#F7E9B8 50%,#C19A3D 80%,rgba(193,154,61,0) 100%);
  --gsh-grad-gold-text:linear-gradient(180deg,#F7E9B8 0%,#E8CF8B 38%,#C19A3D 100%);
  --gsh-grad-navy:radial-gradient(120% 90% at 78% 12%,#233A74 0%,#13234B 46%,#0C1733 100%);
  --gsh-grad-navy-card:linear-gradient(160deg,#1B2F60 0%,#13234B 58%,#101D40 100%);
  --gsh-e3:0 20px 48px -16px rgba(6,12,28,.7);
  --gsh-ease:cubic-bezier(.22,.9,.3,1);
}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{overflow-x:hidden}
/* min-height pada inline-block menambahkan sisa ruang di bawah saja, sehingga
   label duduk ~4px di atas titik tengah. Flex memusatkannya di kedua sumbu.

   line-height juga disetel 1.3em lewat control: sebelumnya 15px pada font yang
   butuh 19px (ascent 16 + descent 3), jadi half-leading negatif -2px dan kotak
   baris memotong kotak alami font. Nudge optis tambahan sempat dicoba dan
   ditolak: tombol 12px sudah tepat di 0, sehingga -1px justru merusaknya. */
.elementor-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:640px){html{scroll-padding-top:76px}}

/* IKON SVG
   Elementor mewarnai svg lewat fill, tapi presentation attribute pada child
   menang atas nilai warisan. Ikon garis (stroke) dan ikon padat (fill)
   sama-sama perlu diarahkan ke token, kalau tidak ikon padat mengambil
   warna link bawaan tema. */
[class*="gsh-i"] svg [stroke="currentColor"]{stroke:var(--gsh-i,currentColor)}
[class*="gsh-i"] svg [fill="currentColor"]{fill:var(--gsh-i,currentColor)}
.gsh-i3{--gsh-i:var(--gsh-gold300)}
.gsh-i4{--gsh-i:var(--gsh-gold400)}
.gsh-i5{--gsh-i:var(--gsh-gold500)}
.gsh-i6{--gsh-i:var(--gsh-gold600)}
.gsh-iw{--gsh-i:#FFFFFF}

.gsh-rows-auto{--e-con-grid-template-rows:auto !important}
.gsh-tnum,.gsh-tnum *{font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}
.gsh-balance .elementor-heading-title{text-wrap:balance}
.gsh-gold-text .elementor-heading-title,.gsh-gold-text em,em.gsh-gold{
  background:var(--gsh-grad-gold-text);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:var(--gsh-gold400)
}
.gsh-hero-h1 em{font-style:normal;display:block}
.gsh-rule{height:1px;background:linear-gradient(90deg,rgba(193,154,61,.55),rgba(193,154,61,0))}

.gsh-btn-gold .elementor-button,.gsh-btn-gold .elementor-button:hover{background:var(--gsh-grad-gold)}
.elementor-button{transition:transform .14s var(--gsh-ease),box-shadow .14s var(--gsh-ease),background-color .14s linear,border-color .14s linear}
.elementor-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px -8px rgba(6,12,28,.55)}
.elementor-button:active{transform:scale(.975)}

/* HEADER */
.gsh-header{position:sticky;top:0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.gsh-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--gsh-grad-gold-line);opacity:0;transition:opacity .24s linear}
.gsh-header.gsh-stuck{background-color:rgba(10,18,41,.95) !important}
.gsh-header.gsh-stuck::after{opacity:1}
.gsh-nav .elementor-nav-menu--main > ul > li > a{position:relative;transition:color .14s linear}
.gsh-nav .elementor-nav-menu--main > ul > li > a::after{content:"";position:absolute;left:0;right:0;bottom:0;
  height:2px;border-radius:2px;background:var(--gsh-grad-gold);transform:scaleX(0);transform-origin:left;
  transition:transform .24s var(--gsh-ease)}
.gsh-nav .elementor-nav-menu--main > ul > li > a:hover::after,
.gsh-nav .elementor-nav-menu--main > ul > li > a.gsh-current::after{transform:scaleX(1)}
.gsh-nav .elementor-nav-menu--main > ul > li > a.gsh-current{color:var(--gsh-gold400)}
.gsh-nav .elementor-menu-toggle{border:1px solid var(--gsh-border);border-radius:16px;width:48px;height:48px}
.gsh-nav .elementor-nav-menu--dropdown{min-height:calc(100vh - 76px);padding-top:24px}
.gsh-nav .elementor-nav-menu--dropdown a{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500}

/* HERO SLIDER
   Slider dan teks ditumpuk pada satu sel grid: tinggi hero tetap ditentukan konten,
   slider meregang mengikutinya. Tidak ada tinggi tetap yang perlu ditebak. */
.gsh-hero{background:var(--gsh-grad-navy);isolation:isolate;display:grid !important}
.gsh-hero > .e-con{grid-area:1 / 1;min-width:0}
.gsh-hero-slider{z-index:0;overflow:hidden}

/* Rantai swiper harus 100% supaya slide mengisi tinggi hero, bukan sebaliknya. */
.gsh-hero-slider,
.gsh-hero-slider > .e-con-inner,
.gsh-hero-slider .elementor-widget-slides,
.gsh-hero-slider .elementor-widget-container,
.gsh-hero-slider .elementor-slides-wrapper,
.gsh-hero-slider .swiper,
.gsh-hero-slider .swiper-wrapper,
.gsh-hero-slider .swiper-slide{height:100%}
.gsh-hero-slider .swiper-slide-inner{padding:0}
.gsh-hero-slider .swiper-slide-bg{background-position:50% 50%;background-repeat:no-repeat}
/* Render potret 800x1422 di kotak lanskap: crop tengah memotong tepat di bawah
   atap dan menyisakan irisan lantai atas yang menggantung. Digeser ke atas
   supaya fasad bergable dan aktivitas lantai dasar ikut masuk. */
.gsh-hero-slider .elementor-repeater-item-hs2 .swiper-slide-bg{background-position:50% 46%}
.gsh-hero-inner{z-index:2;position:relative;align-self:center}

/* Scrim keterbacaan pada slide berteks. Alpha ditahan >=.82 sepanjang kolom teks
   (judul berakhir di ~56% lebar hero) baru membuka ke arah foto: di atas area
   gambar paling terang, .82 memberi kontras teks putih ~10:1, sedangkan .60 turun
   ke ~3.2:1. Lapis kedua vignette bawah agar dot pagination tetap terbaca. */
.gsh-hero-slider::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  transition:opacity .3s var(--gsh-ease);
  background:
    linear-gradient(180deg,rgba(10,18,41,0) 58%,rgba(10,18,41,.55) 100%),
    linear-gradient(90deg,rgba(10,18,41,.95) 0%,rgba(10,18,41,.90) 42%,
      rgba(11,20,45,.82) 58%,rgba(12,23,51,.50) 78%,rgba(12,23,51,.34) 100%)}

/* SLIDE BANNER ("bare") = slide kedua.
   hero_001 adalah banner marketing lengkap: sudah membawa logo, headline, dan
   kontaknya sendiri. Di slide itu overlay teks dan scrim dimatikan supaya banner
   terbaca utuh dan pesannya tidak dobel dengan H1. visibility, bukan sekadar
   opacity, supaya tautan yang tak terlihat tidak ikut bisa diklik. */
.gsh-hero-inner{transition:opacity .3s var(--gsh-ease),visibility .3s;pointer-events:none}
.gsh-hero-inner a,.gsh-hero-inner button{pointer-events:auto}
.gsh-hero.gsh-hero-bare .gsh-hero-inner{opacity:0;visibility:hidden}
.gsh-hero.gsh-hero-bare .gsh-hero-slider::after{opacity:0}

.gsh-hero-slider .elementor-swiper-button,
.gsh-hero-slider .swiper-pagination{z-index:5}

/* Isian putih transparan, bukan navy: panah kiri berdiri di atas scrim gelap dan
   panah kanan di atas foto terang, satu warna harus terbaca di keduanya. */
.gsh-hero-slider .elementor-swiper-button{
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.34);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  transition:background-color .2s linear,border-color .2s linear}
.gsh-hero-slider .elementor-swiper-button:hover{background:rgba(255,255,255,.22);
  border-color:var(--gsh-gold400)}
.gsh-hero-slider .elementor-swiper-button-prev{left:14px}
.gsh-hero-slider .elementor-swiper-button-next{right:14px}
/* Elementor menulis lebar bullet dengan spesifisitas per-elemen, jadi pill aktif
   perlu !important. Bentuk memberi penanda kedua selain warna. */
.gsh-hero-slider .swiper-pagination-bullet{opacity:1;transition:width .24s var(--gsh-ease)}
.gsh-hero-slider .swiper-pagination .swiper-pagination-bullet-active{
  width:22px !important;border-radius:999px}

@media(max-width:900px){
  .gsh-hero{background:var(--gsh-navy900)}
  /* Teks menumpuk di atas foto, jadi scrim naik dari bawah agar tetap terbaca. */
  .gsh-hero-slider::after{background:linear-gradient(180deg,rgba(10,18,41,.58) 0%,
    rgba(10,18,41,.86) 40%,rgba(10,18,41,.95) 100%)}
  .gsh-hero-slider .swiper-slide-bg{background-position:50% 42%}
  /* Banner 2,48:1 di kotak mobile yang jauh lebih tegak: digeser ke kolase foto unit.
     Pada 390px hanya ~44% lebar banner yang terlihat; di 72% ekor kata "PREMIUM"
     masih tercuil di tepi kiri, jadi titik potong dinaikkan ke 82%. Di lebar yang
     lebih besar porsi terlihat melebar sehingga teks banner kembali utuh. */
  /* Banner 2,48:1 tidak bisa tampil utuh di hero potret tanpa ~80% ruang kosong.
     Di mobile ia jadi tekstur dan teks hero tetap tampil, sehingga slide ini tetap
     punya pesan. Tinggi 150% agar badge dan strip kontak banner tidak bocor. */
  .gsh-hero-slider .elementor-repeater-item-hs1 .swiper-slide-bg{
    background-size:auto 150% !important;background-position:70% 50%}
  .gsh-hero.gsh-hero-bare .gsh-hero-inner{opacity:1;visibility:visible}
  .gsh-hero.gsh-hero-bare .gsh-hero-slider::after{opacity:1}
  .gsh-hero-slider .elementor-swiper-button{width:40px;height:40px}
  .gsh-hero-slider .elementor-swiper-button-prev{left:8px}
  .gsh-hero-slider .elementor-swiper-button-next{right:8px}
}

/* PENGHARGAAN
   Aturan vertical-align milik Elementor dibungkus @media(min-width:641px), jadi di
   bawah itu ikon kembali rata atas. Referensi menaruh ikon di kiri dan sejajar
   tengah pada semua lebar, jadi dilanjutkan ke mobile. */
@media(max-width:640px){
  .gsh-award .elementor-icon-box-wrapper{display:flex;align-items:center}
  .gsh-award .elementor-icon-box-icon{margin-bottom:0}
}

/* KARTU */
.gsh-card{background:var(--gsh-grad-navy-card);
  transition:transform .24s var(--gsh-ease),border-color .24s linear}
.gsh-card:hover{transform:translateY(-4px);border-color:var(--gsh-border-gold) !important}
.gsh-cardico .elementor-icon{border-color:var(--gsh-border-gold) !important;background:rgba(193,154,61,.13)}

/* UNIT */
.gsh-unit-media img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.gsh-unit-media .elementor-widget-image,.gsh-unit-media .elementor-widget-image > div{height:100%}
.gsh-badge .elementor-heading-title{background:var(--gsh-grad-gold);color:var(--gsh-navy800);
  padding:7px 14px;border-radius:999px;display:inline-block}
.gsh-specs .elementor-icon-list-items{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gsh-specs .elementor-icon-list-item{margin:0 !important;padding:0 !important;gap:8px}
.gsh-specs .elementor-icon-list-icon{width:16px;height:16px;flex:none;margin:0 !important}
.gsh-specs .elementor-icon-list-icon svg{width:16px;height:16px}
.gsh-metric-label .elementor-heading-title{min-height:2.1em}

/* CHIP — Elementor menulis padding item icon-list dengan spesifisitas lebih tinggi */
.gsh-chips .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:7px}
.gsh-chips .elementor-icon-list-item{margin:0 !important;padding:7px 11px !important;border-radius:999px;
  border:1px solid var(--gsh-border);background:rgba(10,18,41,.5);line-height:1.2;gap:6px}
.gsh-chips .elementor-icon-list-icon{width:13px;height:13px;flex:none;margin:0 !important}
.gsh-chips .elementor-icon-list-icon svg{width:13px;height:13px}
.gsh-chips .elementor-icon-list-item:not(:last-child)::after{display:none !important}

/* LEGEND */
.gsh-legend .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:14px}
.gsh-legend .elementor-icon-list-item{margin:0 !important}
.gsh-legend .elementor-icon-list-icon{width:11px;height:11px;border-radius:3px;flex:none;margin-right:8px}
.gsh-legend .elementor-icon-list-icon svg{display:none}
.gsh-legend .elementor-icon-list-item:nth-child(1) .elementor-icon-list-icon{background:#E0C070}
.gsh-legend .elementor-icon-list-item:nth-child(2) .elementor-icon-list-icon{background:#6FC03F}
.gsh-legend .elementor-icon-list-item:nth-child(3) .elementor-icon-list-icon{background:#3C3F98}
.gsh-legend .elementor-icon-list-item:nth-child(4) .elementor-icon-list-icon{background:#BA75B0}

/* MEDIA FILL
   Elementor memberi .elementor-widget position:relative, jadi img absolute mengacu ke
   widget (tinggi 0), bukan ke container. Wrapper-nya yang harus diabsolutkan. */
.gsh-fill .elementor-widget-image,.gsh-contain .elementor-widget-image{position:absolute;inset:0}
.gsh-fill .elementor-widget-image > div,.gsh-contain .elementor-widget-image > div{height:100%}
.gsh-fill img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.gsh-contain img{width:100%;height:100%;object-fit:contain}
.gsh-caption{position:absolute;left:0;right:0;bottom:0;background:rgba(10,18,41,.72)}

/* VIDEO */
.gsh-video .elementor-wrapper,.gsh-video .elementor-custom-embed-image-overlay{aspect-ratio:16/8}
.gsh-video .elementor-custom-embed-image-overlay{background-size:cover;background-position:50% 45%}
.gsh-video .elementor-custom-embed-image-overlay::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(12,23,51,.35),rgba(12,23,51,.78))}
.gsh-video .elementor-custom-embed-play{z-index:1}
.gsh-video .elementor-custom-embed-play svg,.gsh-video .elementor-custom-embed-play i{
  width:74px;height:74px;border-radius:50%;background:var(--gsh-grad-gold);color:var(--gsh-navy800);
  display:flex;align-items:center;justify-content:center;box-shadow:var(--gsh-e3);
  font-size:26px;opacity:1;filter:none;transition:transform .24s cubic-bezier(.34,1.4,.5,1)}
.gsh-video .elementor-custom-embed-play svg{padding:24px}
.gsh-video:hover .elementor-custom-embed-play svg,.gsh-video:hover .elementor-custom-embed-play i{transform:scale(1.08)}

/* FOOTER */
/* Glyph WhatsApp memenuhi seluruh viewBox 24x24 tanpa padding, sedangkan ikon garis
   lainnya terlukis di 9.9-12.8px pada kotak 17px yang sama. Diperkecil ke 0.75 supaya
   bobot visualnya setara. Kotak ikon tetap 17px agar perataan baris tidak bergeser.
   Catatan: index.html punya ketimpangan yang sama, ini deviasi yang disengaja. */
.gsh-footlist .elementor-icon-list-icon svg [fill="currentColor"]{
  transform:scale(.75);transform-origin:center;transform-box:fill-box}
.gsh-footlist .elementor-icon-list-item{align-items:flex-start}
.gsh-footlist .elementor-icon-list-icon{margin-top:3px}
.gsh-footlist a{transition:color .14s linear}
.gsh-footlist a:hover .elementor-icon-list-text{color:var(--gsh-gold400)}
.gsh-footlist a:hover{color:var(--gsh-gold400)}

/* KALKULATOR ROI (widget HTML) */
.gshc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);
  background:var(--gsh-grad-navy-card);border:1px solid var(--gsh-border-gold);border-radius:24px;
  padding:clamp(1.5rem,3.5vw,2.75rem);box-shadow:var(--gsh-e3);
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:#fff;line-height:1.65}
.gshc *{box-sizing:border-box}
.gshc p{margin:0}
.gshc-label{font-size:.75rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gsh-gold400);margin:0 0 16px !important}
.gshc-picker{display:grid;gap:8px;margin-bottom:32px}
.gshc-pick{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
  min-height:52px;padding:12px 18px;border-radius:16px;border:1px solid var(--gsh-border);
  background:rgba(10,18,41,.45);font:inherit;font-size:.9375rem;font-weight:600;text-align:left;
  color:#fff;cursor:pointer;transition:border-color .14s linear,background .14s linear}
/* Hello Elementor mengecat button:hover dengan #CC3366. Aturan hover kita harus
   ikut menyetel background, kalau tidak warna tema itu lewat tanpa lawan. */
.gshc-pick:hover,.gshc-pick:focus{border-color:rgba(193,154,61,.5);
  background:rgba(10,18,41,.45);color:#fff}
.gshc-pick[aria-pressed="true"]:hover,.gshc-pick[aria-pressed="true"]:focus{
  border-color:var(--gsh-gold600);background:rgba(193,154,61,.12)}
.gsh-tabs .e-n-tab-title:hover,.gsh-tabs .e-n-tab-title:focus{background-color:transparent}
.gsh-tabs .e-n-tab-title[aria-selected="true"]:hover,
.gsh-tabs .e-n-tab-title[aria-selected="true"]:focus{background:var(--gsh-grad-gold)}
.gshc-pick em{font-style:normal;color:var(--gsh-muted);font-weight:700;font-size:.75rem;letter-spacing:.04em;
  font-variant-numeric:lining-nums tabular-nums}
.gshc-pick[aria-pressed="true"]{border-color:var(--gsh-gold600);border-width:2px;background:rgba(193,154,61,.12)}
.gshc-pick[aria-pressed="true"] em{color:var(--gsh-gold400)}
.gshc-slider{margin-bottom:24px}
.gshc-stop{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.gshc-stop label{font-size:.9375rem;font-weight:600}
.gshc-stop output{font-size:.9375rem;font-weight:800;color:var(--gsh-gold400);font-variant-numeric:tabular-nums}
.gshc input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:32px;
  background:transparent;cursor:pointer;margin:0}
.gshc input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:rgba(255,255,255,.16)}
.gshc input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:rgba(255,255,255,.16)}
.gshc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;
  background:var(--gsh-grad-gold);border:2px solid var(--gsh-navy900);margin-top:-9px;
  box-shadow:0 1px 2px rgba(6,12,28,.32)}
.gshc input[type=range]::-moz-range-thumb{width:22px;height:22px;border:2px solid var(--gsh-navy900);
  border-radius:50%;background:var(--gsh-gold500);box-shadow:0 1px 2px rgba(6,12,28,.32)}
.gshc-out{display:flex;flex-direction:column}
.gshc-big{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;
  font-size:clamp(1.9rem,4.6vw,3rem);line-height:1.05;font-variant-numeric:tabular-nums;
  margin:0 0 6px !important;background:var(--gsh-grad-gold-text);-webkit-background-clip:text;
  background-clip:text;-webkit-text-fill-color:transparent;color:var(--gsh-gold400)}
.gshc-cap{color:var(--gsh-muted);font-size:.9375rem;margin:0 0 32px !important}
.gshc-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:32px}
.gshc-grid span{display:block;font-size:.75rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--gsh-slate400);margin-bottom:5px}
.gshc-grid b{font-size:1.06rem;font-weight:700;font-variant-numeric:tabular-nums}
.gshc-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;
  min-height:48px;padding:13px 26px;border-radius:999px;background:var(--gsh-grad-gold);
  color:var(--gsh-navy800);font-size:.9375rem;font-weight:700;letter-spacing:.01em;
  text-decoration:none;margin-top:auto;
  transition:transform .14s var(--gsh-ease),box-shadow .14s var(--gsh-ease)}
.gshc-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px -8px rgba(6,12,28,.55);color:var(--gsh-navy800)}
.gshc-btn svg{width:18px;height:18px;flex:none}
.gshc-note{font-size:.75rem;color:var(--gsh-slate400);line-height:1.55;margin-top:16px !important}
@media(max-width:1024px){.gshc{grid-template-columns:1fr;gap:40px}}
@media(max-width:640px){.gshc-grid{gap:16px}}

@media(prefers-reduced-motion:reduce){
  .elementor-button:hover,.gsh-card:hover,.gshc-btn:hover{transform:none}
}

/* Layering: Elementor _position:absolute tidak menghasilkan CSS pada container */
.gsh-hero{position:relative}
.gsh-unit-media{position:relative;overflow:hidden;aspect-ratio:16/10}
.gsh-badge{position:absolute;top:14px;left:14px;z-index:2}
.gsh-caption{z-index:2}
.gsh-cta{position:relative;isolation:isolate}
.gsh-cta-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.gsh-cta-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(10,18,41,.97) 0%,rgba(12,23,51,.93) 48%,rgba(19,35,75,.86) 100%)}
.gsh-cta-inner{position:relative;z-index:2}

/* UTILITY: container child tidak menyusut sendiri (--flex-shrink:0 dari Elementor) */
.gsh-flexfill{flex:1 1 0% !important;min-width:0 !important;width:auto !important;max-width:100% !important}
@media(max-width:1024px){.gsh-flexfill{width:100% !important;flex:1 1 auto !important}}

.gsh-headp{max-width:60ch;margin-inline:auto}
.gsh-unit-media .elementor-widget-image{position:absolute;inset:0}
.gsh-unit-media .elementor-widget-image img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.gsh-avatar img{height:auto}

/* NESTED TABS: pill wrapper tidak punya control sendiri */
.gsh-tabs .e-n-tabs-heading{background:rgba(19,35,75,.55);border:1px solid var(--gsh-border);
  border-radius:999px;padding:6px;width:fit-content;max-width:100%;margin-inline:auto;flex-wrap:wrap}
.gsh-tabs .e-n-tab-title{min-height:44px}
.gsh-tabs .e-n-tab-title[aria-selected="true"]{background:var(--gsh-grad-gold)}
@media(max-width:640px){.gsh-tabs .e-n-tabs-heading{border-radius:16px}}

/* FAQ
   Style kartu Elementor jatuh di <summary>, sedangkan referensi membungkus
   pertanyaan + jawaban dalam satu kotak. Border/radius dipindah ke <details>. */
.gsh-faq .e-n-accordion{display:flex;flex-direction:column;gap:10px}
.gsh-faq .e-n-accordion-item{border:1px solid var(--gsh-border);border-radius:16px;overflow:hidden;
  background:rgba(19,35,75,.5);transition:border-color .24s linear}
.gsh-faq .e-n-accordion-item[open]{border-color:var(--gsh-border-gold)}
.gsh-faq .e-n-accordion-item > :not(summary){border:0 !important;background:transparent !important}
.gsh-faq .e-n-accordion-item-title{background:transparent !important;border:0 !important;
  border-radius:0 !important;justify-content:space-between;gap:16px}
.gsh-faq .e-n-accordion-item-title-text{flex:1 1 auto;text-align:left}
.gsh-faq .e-n-accordion-item-title-icon{flex:none;margin-left:auto}
.gsh-faq .e-n-accordion-item-title-icon svg{width:20px;height:20px;
  transition:transform .24s var(--gsh-ease)}
.gsh-faq details[open] .e-n-accordion-item-title-icon svg{transform:rotate(45deg)}

/* FOOTER: grid control Elementor hanya bisa kolom sama lebar */
.gsh-footgrid{--e-con-grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) !important}
.gsh-footdesc{max-width:36ch}
.gsh-footnav .elementor-icon-list-icon{display:none}
.gsh-copy{text-align:center;font-size:.75rem;color:var(--gsh-slate400);letter-spacing:.04em}
@media(max-width:1024px){
  .gsh-footgrid{--e-con-grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important}
  .gsh-footbrand{grid-column:1/-1}
}
@media(max-width:640px){.gsh-footgrid{--e-con-grid-template-columns:minmax(0,1fr) !important}}/* End custom CSS */