/*
 * ac-migration.css — gaya desain baru yang dipindahkan dari child theme `mahsa`
 * (situs sumber mahsa-elementor) ke jupiterx-mahsa.
 *
 * Disalin apa adanya dari mahsa/style.css baris 15 ke bawah. Yang TIDAK ikut:
 * header tema dan `@import url("../hello-elementor/style.css")`, karena situs ini
 * memakai JupiterX, bukan hello-elementor.
 *
 * Berkas ini terpisah dari assets/css/style.css milik situs lama supaya kode
 * migrasi bisa dicabut tanpa menyentuh desain lama.
 */

/* Your custom CSS styles go here */



.jupiterx-site .ac-wmax-100 {
    max-width: 100%;
}

.jupiterx-site .ac-topbar:after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(8deg, rgba(255, 255, 255, 0.77) 3.45%, rgba(255, 255, 255, 0.00) 35.48%), linear-gradient(0deg, rgba(255, 255, 255, 0.40) 0%, rgba(255, 255, 255, 0.40) 100%);
}

.jupiterx-site .ac-topbar-gray:after{
    background-image: inherit;
    background-size: inherit;
    background-position: inherit;
    filter: grayscale(100%);
    z-index: 1;
    background-color: rgba(255,255,255,0.5);
    background-blend-mode: lighten;
}

.jupiterx-site .ac-title {
    color: #02A8AF;		
    font-family: "Source Sans 3";
    font-size: clamp(27.1px, 4.3571px + 2.2210vw, 47px);
    font-weight: 800;
    line-height: 1; 
    letter-spacing: 0.02em;
}

.jupiterx-site h3.ac-title {
    font-size: clamp(13.9px, 2.3571px + 1.1272vw, 24px);    
}

.jupiterx-site .ac-description {
    color: #1B276A;
    font-family: "Source Sans 3";
    font-size: clamp(13px, 6.1429px + 0.6696vw, 19px);
    font-style: normal;
    font-weight: 400;
    line-height: 1.36;
    letter-spacing: 0.01em;
}
	
.jupiterx-site .ac-description a {
	color: #02A8AF;
}	
	
	
	
	
	
/* 	Menu Style */
	

.jupiterx-site .elementor .elementor-element.ac-header {

}

.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container {

}

.jupiterx-site .elementor .elementor-element.ac-menu-main nav.elementor-nav-menu--main {	
/* 	display: none !important; */
}

.jupiterx-site .elementor .elementor-element.ac-menu-main nav.elementor-nav-menu--main ul.elementor-nav-menu {	

}

.jupiterx-site .elementor .elementor-element.ac-menu-main nav.elementor-nav-menu--main a.elementor-item {	
    
}

.jupiterx-site .elementor .elementor-element.ac-menu-main nav.elementor-nav-menu--main a.elementor-item:hover {

}

.jupiterx-site .elementor .elementor-element.ac-menu-main nav.elementor-nav-menu--main a.elementor-item.elementor-item-active {

}

.jupiterx-site .elementor .elementor-element.ac-menu-main nav.elementor-nav-menu--main:not(.e--pointer-framed) a.elementor-item:after {

}

.jupiterx-site .elementor .elementor-element.ac-menu-main nav.elementor-nav-menu--main:not(.e--pointer-framed) a.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {

}




.jupiterx-site .elementor .elementor-element.ac-menu-main nav.elementor-nav-menu--main li.ac-menu-item-button a.elementor-item {	
    padding: clamp(11.22px, 4.6143px + 0.6451vw, 17px) clamp(40px, 17.1429px + 2.2321vw, 60px);
    background-color: #1B276A;
    border: 1px solid #1B276A;
    border-radius: 100px;
    transition: all 0.3s ease;
    color: #fff;
    font-size: clamp(12px, 5.1429px + 0.6696vw, 18px);
    font-weight: 900;
    margin-left: 20px;	
}

.jupiterx-site .elementor .elementor-element.ac-menu-main nav.elementor-nav-menu--main li.ac-menu-item-button a.elementor-item:hover {		
    background-color: #02A8AF;
    border-color: #02A8AF;
}

.jupiterx-site .elementor .elementor-element.ac-menu-danger nav.elementor-nav-menu--main li.ac-menu-item-button a.elementor-item {	
    background-color: #A80B0B;
    border: 1px solid #A80B0B;
}

.jupiterx-site .elementor .elementor-element.ac-menu-danger nav.elementor-nav-menu--main li.ac-menu-item-button a.elementor-item:hover {		
        background-color: #02A8AF;
        border-color: #02A8AF;
}




@media (max-width: 1023px) {
    .jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container > nav.elementor-nav-menu--dropdown {
        background-color: #FFF;
        position: fixed;
        left: 0px;
        top: 0px !important;
        width: 100vw;
        height: 100vh;
        margin: 0 0 0 0px !important;
        padding: 20px 20px 90px;
        overflow: auto;
    }
}

.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown img.ac-logo-main {
    padding: 0 0 20px;
	/* width: 109px; */
}

.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown .ac-phone-wrapper {
    display: flex;
    flex-direction: column;
    padding-top: 20px;
    align-items: flex-start;
}

.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown li.ac-menu-item-sm-hidden {
    display: none;
}

.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown ul.elementor-nav-menu {
	
}

.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown a.elementor-item {
    font-size: 18px;
    letter-spacing: 0.01em;
    color: #1B276A;
    padding: 7px 0px;
    font-weight: 800;
}

.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown a.elementor-item.elementor-item-active, 
.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown a.elementor-item.highlighted, 
.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown a.elementor-item:focus, 
.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown a.elementor-item:hover {
    background: none;		
}

.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown ul.elementor-nav-menu--dropdown a.elementor-sub-item {
    font-size: 16px;
    letter-spacing: 0.01em;
    color: #1B276A;
    padding: 5px 0px;
    font-weight: 600;
}

.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown ul.elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active, 
.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown ul.elementor-nav-menu--dropdown a.elementor-sub-item.highlighted, 
.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown ul.elementor-nav-menu--dropdown a.elementor-sub-item:focus, 
.jupiterx-site .elementor .elementor-element.ac-menu-main > .elementor-widget-container nav.elementor-nav-menu--dropdown ul.elementor-nav-menu--dropdown a.elementor-sub-item:hover {
    background: none;		
}

.jupiterx-site .elementor .elementor-element.ac-menu-main .elementor-menu-toggle {
    position: relative;
    z-index: 9998;
/*         display: block !important; */
    padding: clamp(8.58px, 3.5286px + 0.4933vi, 13px);
    line-height: 0;
}
	
@media (max-width: 1023px) {
	.jupiterx-site .elementor .elementor-element.ac-menu-footer-top nav.elementor-nav-menu--main a.elementor-item {	
		justify-content: center;
	}	
}
	
@media (min-width: 768px) {
	.jupiterx-site .elementor .elementor-element.ac-menu-footer-bottom .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child):after {
		display: none;
	}
}










.jupiterx-site .elementor .elementor-element.ac-menu-main-2 > .elementor-widget-container {

}

.jupiterx-site .elementor .elementor-element.ac-menu-main-2 nav.elementor-nav-menu--main {	
/* 	display: none !important; */
}

.jupiterx-site .elementor .elementor-element.ac-menu-main-2 nav.elementor-nav-menu--main ul.elementor-nav-menu {	

}

.jupiterx-site .elementor .elementor-element.ac-menu-main-2 nav.elementor-nav-menu--main a.elementor-item {	
    padding: clamp(17.33px, 7.4214px + 0.9676vw, 26px) clamp(10px, 4.2857px + 0.5580vw, 15px);
}

.jupiterx-site .elementor .elementor-element.ac-menu-main-2 nav.elementor-nav-menu--main a.elementor-item:hover {

}

.jupiterx-site .elementor .elementor-element.ac-menu-main-2 nav.elementor-nav-menu--main a.elementor-item.elementor-item-active {

}

.jupiterx-site .elementor .elementor-element.ac-menu-main-2 nav.elementor-nav-menu--main:not(.e--pointer-framed) a.elementor-item:after {

}

.jupiterx-site .elementor .elementor-element.ac-menu-main-2 nav.elementor-nav-menu--main:not(.e--pointer-framed) a.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {

}

.jupiterx-site .elementor .elementor-element.ac-menu-main-2 nav.elementor-nav-menu--main ul.elementor-nav-menu--dropdown {
	border-radius: 0 0 5px 5px;
	overflow: hidden;
	padding-bottom: 10px;
}

.jupiterx-site .elementor .elementor-element.ac-menu-main-2 nav.elementor-nav-menu--main ul.elementor-nav-menu--dropdown a.elementor-sub-item {
	background: transparent;
	color: #002841;
	border: 0;
}

/* ==================================================================
 * Offset header — scaffolding migrasi (sementara)
 *
 * Header desain baru memakai position:fixed sehingga elemen <header>
 * tidak menyisakan ruang. Halaman yang BELUM didesain ulang butuh jarak
 * atas supaya kontennya tidak tertutup.
 *
 * Kelas `ac-header-offset` dipasang di <body> oleh jupiterx-mahsa
 * functions.php, dan dilepas per halaman yang sudah dimigrasi lewat
 * filter `ac_header_offset_skip_ids`.
 *
 * Nilai di bawah hanya fallback; ac-migration.js menulis nilai sebenarnya
 * ke --ac-header-offset setelah mengukur header.
 *
 * HAPUS blok ini setelah semua halaman selesai dimigrasi.
 * ================================================================== */

:root { --ac-header-offset: 63px; }

@media (min-width: 1025px) {
	:root { --ac-header-offset: 130px; }
}

body.ac-header-offset .jupiterx-main {
	padding-top: var(--ac-header-offset);
}


/* ==================================================================
 * Menetralkan gaya tag telanjang milik situs lama
 *
 * wp-content/uploads/custom-css-js/406.css (plugin Custom CSS & JS) menata
 * tag telanjang untuk seluruh situs:
 *
 *   p                        font-size 16px, line-height 24px, color #626262,
 *                            font-family "Source Sans 3", font-weight normal
 *   h1..h6, li, td           font-family "Source Sans 3"
 *   a                        font-weight normal
 *
 * Elementor menata elemennya lewat selector pada PEMBUNGKUS widget dan
 * mengandalkan pewarisan ke dalam. Aturan tag telanjang menempel langsung
 * pada <p>/<h*>, jadi ia selalu menang — desain baru kehilangan font,
 * ukuran, tebal, dan warna yang sudah diatur di Elementor. Gejalanya halus:
 * teks membungkus di jumlah baris yang berbeda sehingga tiap section
 * tumbuh belasan piksel, dan deskripsi footer sempat nyaris tak terbaca.
 *
 * Menyetelnya ke `inherit` memulihkan rantai pewarisan Elementor, persis
 * seperti di situs sumber yang tidak memuat 406.css.
 *
 * Cakupan: header dan footer (sudah desain baru di semua halaman) plus
 * halaman yang terdaftar di ac_migration_ids(). Halaman lama tidak tersentuh.
 *
 * Hanya elemen TANPA kelas yang disentuh. Elemen desain baru selalu
 * membawa kelasnya sendiri (`ac-title`, `ac-description`, `e-heading-base`)
 * dan sudah punya aturannya sendiri; menetralkannya justru menghapus
 * tipografi rancangan — judul artikel sempat 35px alih-alih 27.1px karena
 * ini. Yang benar-benar butuh penetralan adalah <p> polos di dalam widget
 * text-editor, seperti deskripsi dan copyright di footer.
 *
 * Kekhususan sengaja dinaikkan dengan awalan `.jupiterx-site`. Varian
 * mobile di 406.css memakai `body .jupiterx-site p` — (0,1,2) — yang
 * mengalahkan `.elementor-location-footer p` — (0,1,1). Akibatnya di bawah
 * 768px paragraf footer kembali 14px/20px dan tingginya meleset dari sumber.
 * Awalan itu membuatnya (0,2,2), cukup untuk menang di semua lebar.
 *
 * font-weight pada h1..h6 sengaja TIDAK disetel — heading tanpa pengaturan
 * tipografi harus tetap tebal seperti bawaan peramban.
 * ================================================================== */

body.ac-migrasi .jupiterx-main p:not([class]),
.jupiterx-site .elementor-location-header p:not([class]),
.jupiterx-site .elementor-location-footer p:not([class]) {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	font-weight: inherit;
	color: inherit;
}

body.ac-migrasi .jupiterx-main :is(h1, h2, h3, h4, h5, h6, li, td):not([class]),
.jupiterx-site .elementor-location-header :is(h1, h2, h3, h4, h5, h6, li, td):not([class]),
.jupiterx-site .elementor-location-footer :is(h1, h2, h3, h4, h5, h6, li, td):not([class]) {
	font-family: inherit;
}

/* Khusus <a>, penjaga `:not([class])` justru salah sasaran.
 *
 * 406.css menyetel `a { font-weight: normal }` — hanya (0,0,1) — dan itu
 * memutus pewarisan tebal dari induknya. Contohnya judul kartu membership:
 * desain menaruh `font-weight: 800` di <h3>, linknya diharapkan mewarisi,
 * tapi aturan tag telanjang menempel langsung di <a> sehingga jadi 400.
 *
 * Versi sebelumnya memakai `body.ac-migrasi .jupiterx-main a:not([class])`
 * — (0,3,2) — dan itu terlalu kuat: judul kartu berita punya <a> TANPA
 * kelas yang justru ditata desain lewat selector turunan
 * `.ac-widget-carousel-news-title a` (0,3,1), jadi aturan saya menang dan
 * menghapus font-weight 700-nya. "Tidak berkelas" ternyata bukan penanda
 * "tidak ditata desain".
 *
 * Bentuk di bawah dijaga tetap (0,0,2): `:where()` tidak menyumbang
 * kekhususan, `:is(div, span, …)` dan `a` masing-masing satu elemen. Cukup
 * untuk menang atas `a` (0,0,1) milik 406.css, tapi kalah dari SEMUA aturan
 * desain yang minimal memakai satu kelas.
 *
 * Untuk <p> dan heading cara ini tidak bisa dipakai: varian responsif
 * 406.css di sana berkekhususan (0,1,2), jadi keduanya tetap memakai
 * penjaga `:not([class])` di atas. */
:where(body.ac-migrasi .jupiterx-main,
       .jupiterx-site .elementor-location-header,
       .jupiterx-site .elementor-location-footer)
:is(div, span, p, li, td, h1, h2, h3, h4, h5, h6) a {
	font-weight: inherit;
}

/* Kit situs sumber menyetel padding default container ke 0; kit live tidak,
   sehingga default Elementor 10px berlaku dan tata letak jadi lebih tinggi. */
.elementor-location-header .e-con,
.elementor-location-footer .e-con,
.elementor-location-archive .e-con,
.elementor-location-single .e-con {
	--container-default-padding-top: 0px;
	--container-default-padding-right: 0px;
	--container-default-padding-bottom: 0px;
	--container-default-padding-left: 0px;
}

/* ==================================================================
 * Penyetelan Kit Elementor untuk halaman berdesain baru
 *
 * Kit live (post 234) dan kit sumber (post 6) berbeda di hampir semua
 * kunci. Empat selisih di bawah ini yang berdampak ke tata letak:
 *
 *   container_padding      sumber 0px      live kosong -> default 10px
 *   space_between_widgets  sumber clamp()  live kosong -> default 20px
 *   container_width        sumber clamp()  live 1248px tetap
 *   line-height body       sumber 1.5      live 22px tetap (tema JupiterX)
 *
 * Kit live TIDAK diubah: nilainya dipakai seluruh halaman lama. Yang
 * dilakukan di sini hanya menirunya pada halaman yang sudah dimigrasi,
 * ditandai kelas body `ac-migrasi` dari ac_migration_ids() di functions.php.
 *
 * Nilai clamp disalin apa adanya dari wp-content/uploads/elementor/css/
 * post-6.css di situs sumber.
 * ================================================================== */

body.ac-migrasi .jupiterx-main .e-con {
	--container-max-width: clamp(974px, 224.2857px + 73.2143vw, 1630px);
	--container-default-padding-top: 0px;
	--container-default-padding-right: 0px;
	--container-default-padding-bottom: 0px;
	--container-default-padding-left: 0px;
}

/* Header dan footer sudah desain baru di semua halaman, jadi jarak antar
   widget-nya ikut disamakan di mana pun keduanya muncul.

   Cakupan halaman sengaja dipatok ke `.jupiterx-main`, yang memuat konten
   halaman beserta template section-nya tapi TIDAK memuat header dan footer.
   Tanpa batas itu, aturan halaman menimpa aturan footer dan justru membuat
   kolom footer 14px lebih tinggi dari situs sumber. */
body.ac-migrasi .jupiterx-main .elementor-element,
.elementor-location-header .elementor-element,
.elementor-location-footer .elementor-element {
	--widgets-spacing: clamp(10px, -1.4286px + 1.1161vi, 20px) clamp(10px, -1.4286px + 1.1161vi, 20px);
	--widgets-spacing-row: clamp(10px, -1.4286px + 1.1161vi, 20px);
	--widgets-spacing-column: clamp(10px, -1.4286px + 1.1161vi, 20px);
}

/* Sengaja TIDAK ada aturan margin-block-end antar widget di sini.
   Kit memang menyetelnya, tapi Elementor menolkannya lagi di dalam
   container flex lewat `.e-con > .elementor-widget:not(:last-child)`,
   karena di sana jaraknya diatur `gap`. Menirunya dengan kekhususan
   lebih tinggi justru memasang margin ganda -- heading di CTA sempat
   15px lebih tinggi dari sumber. Variabel --widgets-spacing di atas
   sudah cukup: desain baru seluruhnya memakai container flex. */

/* JupiterX mengunci `body .jupiterx-site { line-height: 22px }`. Situs sumber
   memakai 1.5 bawaan hello-elementor, dan desainnya mengandalkan itu.

   Warna teks dasarnya juga berbeda: hello-elementor menyetel `body { color:
   #333 }`, JupiterX membiarkannya hitam. Elemen desain yang menetapkan
   warnanya sendiri tidak terpengaruh -- aturan pada elemen selalu menang
   atas pewarisan -- jadi ini hanya mengisi celah, seperti label akordion
   about-tab yang di live sempat #000 alih-alih #333. */
body.ac-migrasi .jupiterx-main,
.elementor-location-header,
.elementor-location-footer {
	line-height: 1.5;
	color: #333;
}

/* Breakpoint kit sumber: tablet 1023, mobile_extra 767, mobile 459. */
@media (max-width: 1023px) {
	body.ac-migrasi .jupiterx-main .e-con {
		--container-max-width: clamp(718px, -50px + 100vw, 974px);
	}
}

@media (max-width: 767px) {
	body.ac-migrasi .jupiterx-main .e-con {
		--container-max-width: clamp(430px, -0.1299px + 93.5065vw, 718px);
	}
}

@media (max-width: 459px) {
	body.ac-migrasi .jupiterx-main .e-con {
		--container-max-width: 100%;
	}
}

/* ==================================================================
 * Token warna global dan gaya tombol bawaan kit
 *
 * Empat warna "system" kit live berbeda dari kit sumber, dan desain baru
 * memakainya lewat var( --e-global-color-* ):
 *
 *   token       sumber    live
 *   primary     #1B276A   #1B4F91
 *   secondary   #F3E9FF   #54595F
 *   text        #1B276A   #626262
 *   accent      #1B276A   #61CE70
 *
 * Sembilan belas token kustom lainnya (ber-id hash) sudah sama.
 *
 * Kit live JUGA menata tombol secara global -- `text-transform: uppercase`
 * dan latar `var( --e-global-color-primary )` pada `button` telanjang --
 * yang tidak ada di kit sumber. Akibatnya tombol filter Facilities/Amenities
 * tampil HURUF BESAR dengan latar biru pekat, dan tombol CTA jadi
 * "DISCOVER MORE" biru #1B4F91 alih-alih "Discover More" biru #1B276A.
 *
 * Kit live tidak diubah -- nilainya dipakai seluruh halaman lama. Variabel
 * cukup didefinisikan ulang di lingkup migrasi; karena custom property
 * diwariskan, semua yang merujuknya ikut benar dengan sendirinya.
 * ================================================================== */

body.ac-migrasi .jupiterx-main,
.jupiterx-site .elementor-location-header,
.jupiterx-site .elementor-location-footer {
	--e-global-color-primary: #1B276A;
	--e-global-color-secondary: #F3E9FF;
	--e-global-color-text: #1B276A;
	--e-global-color-accent: #1B276A;
}

/* Situs sumber tidak punya gaya tombol bawaan kit sama sekali: `button`
   telanjang memakai latar transparan dan teks apa adanya. Properti lain
   (warna, padding, radius, font) sudah ditimpa aturan desain sendiri yang
   berkekhususan lebih tinggi, jadi cukup dua ini. */
body.ac-migrasi .jupiterx-main :is(button, input[type="button"], input[type="submit"]),
.jupiterx-site .elementor-location-header :is(button, input[type="button"], input[type="submit"]),
.jupiterx-site .elementor-location-footer :is(button, input[type="button"], input[type="submit"]) {
	background-color: transparent;
}

body.ac-migrasi .jupiterx-main :is(button, input[type="button"], input[type="submit"], .elementor-button),
.jupiterx-site .elementor-location-header :is(button, input[type="button"], input[type="submit"], .elementor-button),
.jupiterx-site .elementor-location-footer :is(button, input[type="button"], input[type="submit"], .elementor-button) {
	text-transform: none;
}

/* ==================================================================
 * Tag kategori kartu paket dibatasi satu baris
 *
 * Paket di live membawa term `specialty_package`, paket di situs sumber
 * tidak. Widget merender tiap term jadi satu chip, dan chip yang melimpah
 * membungkus ke baris kedua dan ketiga — kartunya tumbuh 393px, sementara
 * kartu rancangan 296px.
 *
 * Datanya tidak diubah dan widget tidak disentuh: chip baris kedua ke bawah
 * cukup dipotong lewat tinggi maksimum. Baris pertama tetap utuh, sedangkan
 * `flex-wrap: nowrap` justru akan memenggal chip di tengah kata.
 *
 * Satu baris = tinggi chip + padding bawah pembungkusnya:
 *   chip        1.3 (line-height) x var(--acfs13) + 5px + 5px padding = 27px
 *   pembungkus  + padding-bottom 10px                                 = 37px
 *
 * `align-content: flex-start` mencegah flex meregangkan baris yang tersisa
 * saat tingginya dikunci.
 * ================================================================== */

body.ac-migrasi .jupiterx-main .ac-widget-post-package-taxonomy {
	max-height: calc(var(--acfs13) * 1.3 + 20px);
	overflow: hidden;
	align-content: flex-start;
}

/* ==================================================================
 * Kursor dan fokus tombol
 *
 * hello-elementor menyertakan di reset.css-nya:
 *
 *   [type="button"]:not(:disabled), [type="submit"]:not(:disabled),
 *   button:not(:disabled) { cursor: pointer }
 *
 * JupiterX tidak punya aturan itu, jadi tombol filter Facilities/Amenities
 * di live memakai kursor bawaan `default` — tidak terasa bisa diklik.
 * Aturan berikut menirunya, termasuk pengecualian :disabled.
 *
 * Cincin fokus dimatikan untuk klik tetikus, tapi DIKEMBALIKAN lewat
 * :focus-visible supaya pengguna papan ketik tetap tahu posisi fokusnya.
 * `revert` memulangkannya ke gaya bawaan peramban, bukan gaya karangan.
 * ================================================================== */

body.ac-migrasi .jupiterx-main :is(button, [type="button"], [type="submit"]):not(:disabled),
.jupiterx-site .elementor-location-header :is(button, [type="button"], [type="submit"]):not(:disabled),
.jupiterx-site .elementor-location-footer :is(button, [type="button"], [type="submit"]):not(:disabled) {
	cursor: pointer;
}

body.ac-migrasi .jupiterx-main :is(button, [type="button"], [type="submit"]):focus,
.jupiterx-site .elementor-location-header :is(button, [type="button"], [type="submit"]):focus,
.jupiterx-site .elementor-location-footer :is(button, [type="button"], [type="submit"]):focus {
	outline: none;
}

body.ac-migrasi .jupiterx-main :is(button, [type="button"], [type="submit"]):focus-visible,
.jupiterx-site .elementor-location-header :is(button, [type="button"], [type="submit"]):focus-visible,
.jupiterx-site .elementor-location-footer :is(button, [type="button"], [type="submit"]):focus-visible {
	outline: revert;
}

/* ==================================================================
 * Galeri gambar
 *
 * JupiterX menata galeri bawaan WordPress sendiri:
 *
 *   .gallery { margin-right: -3px; margin-left: -3px }
 *
 * dan menyisipkan kelas `.row` pada wadahnya, yang menambahkan
 * margin -15px lagi. Situs sumber (hello-elementor) tidak punya
 * keduanya, jadi wadah galeri di live melebar 6px, tiap kolom ikut
 * bertambah 2px, dan barisnya jadi lebih tinggi mengikuti rasio.
 *
 * Padding antarkolom sendiri sudah diatur desain lewat post-*.css
 * dengan kekhususan lebih tinggi, jadi cukup margin luarnya yang
 * dikembalikan ke nol.
 * ================================================================== */

body.ac-migrasi .jupiterx-main .elementor-image-gallery .gallery {
	margin-inline: 0;
}

/* ==================================================================
 * Tipografi global kit — default widget Elementor
 *
 * Sebagian widget tidak menyetel tipografinya sendiri dan mengandalkan
 * "default global" bawaan Elementor: heading -> Primary, text editor dan
 * caption gambar -> Text, tombol -> Accent. Elementor menerbitkan aturan
 * untuk itu HANYA kalau kit punya nilainya.
 *
 * Kit live warisan situs lama cuma menyimpan font-family dan weight,
 * tanpa ukuran maupun line-height, jadi Elementor melewatkan seluruh
 * kelompok aturan itu. Membandingkan CSS hasil generate kedua situs
 * memperlihatkan 19 aturan yang ada di sumber tapi hilang di live.
 * Kekosongan itu lalu diisi 406.css: heading jadi Source Sans 3 40px/700
 * alih-alih Plus Jakarta Sans 48.85px/800.
 *
 * Menyamakan kit live dengan sumber akan memperbaikinya di akarnya, tapi
 * kit berlaku untuk seluruh situs — 103 halaman LAMA memakai widget yang
 * sama dan ikut berubah. Jadi nilainya diemulasi di sini saja, terbatas
 * pada halaman berdesain baru.
 *
 * Kekhususan sengaja dijaga persis seperti aturan asli Elementor:
 * `:where()` tidak menyumbang apa pun, jadi selectornya tetap (0,2,0) —
 * cukup untuk menang atas `body .jupiterx-site h2` (0,1,2) milik 406.css,
 * tetap kalah dari aturan per-widget `.elementor-NNN .elementor-element-X`
 * (0,3,0) yang memang harus menang.
 *
 * Nilai responsif ikut diemulasi. Hanya Primary yang berubah per
 * breakpoint di kit sumber, dan Elementor menerbitkannya sebagai
 * redefinisi variabel di dalam @media. Tanpa itu heading di 375px tetap
 * 37,45px alih-alih 24,14px dan halaman Emergency 669px lebih tinggi.
 *
 * Primary dan Text juga punya letter-spacing 0.01em di kit sumber.
 * ================================================================== */

body.ac-migrasi .jupiterx-main,
.jupiterx-site .elementor-location-header,
.jupiterx-site .elementor-location-footer {
	--e-global-typography-primary-font-family: "Plus Jakarta Sans";
	--e-global-typography-primary-font-size: clamp(37.45px, 9.3929px + 2.7400vw, 62px);
	--e-global-typography-primary-font-weight: 800;
	--e-global-typography-primary-line-height: 1.25em;
	--e-global-typography-primary-letter-spacing: 0.01em;

	--e-global-typography-secondary-font-family: "Plus Jakarta Sans";
	--e-global-typography-secondary-font-size: clamp(20px, 5.1429px + 1.4509vw, 33px);
	--e-global-typography-secondary-font-weight: 400;
	--e-global-typography-secondary-line-height: 1.33em;

	--e-global-typography-text-font-family: "Mulish";
	--e-global-typography-text-font-size: clamp(14.54px, 3.7286px + 1.0558vw, 24px);
	--e-global-typography-text-font-weight: 400;
	--e-global-typography-text-line-height: 1.29em;
	--e-global-typography-text-letter-spacing: 0.01em;

	--e-global-typography-accent-font-family: "Mulish";
	--e-global-typography-accent-font-size: clamp(12px, 5.1429px + 0.6696vw, 18px);
	--e-global-typography-accent-font-weight: 900;
	--e-global-typography-accent-line-height: 1.33em;
}

@media (max-width: 1023px) {
	body.ac-migrasi .jupiterx-main,
	.jupiterx-site .elementor-location-header,
	.jupiterx-site .elementor-location-footer {
		--e-global-typography-primary-font-size: clamp(29px, -4.0000px + 4.2969vw, 40px);
	}
}

@media (max-width: 767px) {
	body.ac-migrasi .jupiterx-main,
	.jupiterx-site .elementor-location-header,
	.jupiterx-site .elementor-location-footer {
		--e-global-typography-primary-line-height: 1.4em;
	}
}

@media (max-width: 459px) {
	body.ac-migrasi .jupiterx-main,
	.jupiterx-site .elementor-location-header,
	.jupiterx-site .elementor-location-footer {
		--e-global-typography-primary-font-size: clamp(21px, 2.7143px + 5.7143vw, 29px);
	}
}

:where(body.ac-migrasi .jupiterx-main) .elementor-widget-heading .elementor-heading-title {
	font-family: var( --e-global-typography-primary-font-family ), Sans-serif;
	font-size: var( --e-global-typography-primary-font-size );
	font-weight: var( --e-global-typography-primary-font-weight );
	line-height: var( --e-global-typography-primary-line-height );
	letter-spacing: var( --e-global-typography-primary-letter-spacing );
	color: var( --e-global-color-primary );
}

:where(body.ac-migrasi .jupiterx-main) .elementor-widget-text-editor {
	font-family: var( --e-global-typography-text-font-family ), Sans-serif;
	font-size: var( --e-global-typography-text-font-size );
	font-weight: var( --e-global-typography-text-font-weight );
	line-height: var( --e-global-typography-text-line-height );
	letter-spacing: var( --e-global-typography-text-letter-spacing );
	color: var( --e-global-color-text );
}

/* Tombol butuh satu tingkat lebih tinggi dari yang lain. Di sumber aturan
   ini (0,2,0) menang tanpa lawan, tapi di live ada dua aturan lain dengan
   kekhususan sama yang dimuat belakangan:

     .elementor-kit-234 .elementor-button   406.css       (Source Sans Pro 16px)
     .elementor-kit-234 .elementor-button   post-234.css  (Manrope)

   Menambahkan `:is(a, button)` menaikkannya ke (0,2,1) -- cukup untuk
   menang atas keduanya, tetap kalah dari aturan per-widget (0,3,0). */
:where(body.ac-migrasi .jupiterx-main) .elementor-widget-button :is(a, button).elementor-button {
	background-color: var( --e-global-color-accent );
	font-family: var( --e-global-typography-accent-font-family ), Sans-serif;
	font-size: var( --e-global-typography-accent-font-size );
	font-weight: var( --e-global-typography-accent-font-weight );
	line-height: var( --e-global-typography-accent-line-height );
}

:where(body.ac-migrasi .jupiterx-main) .elementor-widget-image .widget-image-caption {
	color: var( --e-global-color-text );
	font-family: var( --e-global-typography-text-font-family ), Sans-serif;
	font-size: var( --e-global-typography-text-font-size );
	font-weight: var( --e-global-typography-text-font-weight );
	line-height: var( --e-global-typography-text-line-height );
	letter-spacing: var( --e-global-typography-text-letter-spacing );
}

:where(body.ac-migrasi .jupiterx-main) .elementor-widget-icon.elementor-view-stacked .elementor-icon {
	background-color: var( --e-global-color-primary );
}

:where(body.ac-migrasi .jupiterx-main) .elementor-widget-icon.elementor-view-framed .elementor-icon,
:where(body.ac-migrasi .jupiterx-main) .elementor-widget-icon.elementor-view-default .elementor-icon {
	color: var( --e-global-color-primary );
	border-color: var( --e-global-color-primary );
}

:where(body.ac-migrasi .jupiterx-main) .elementor-widget-icon.elementor-view-framed .elementor-icon svg,
:where(body.ac-migrasi .jupiterx-main) .elementor-widget-icon.elementor-view-default .elementor-icon svg {
	fill: var( --e-global-color-primary );
}

:where(body.ac-migrasi .jupiterx-main) .elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap {
	background-color: var( --e-global-color-primary );
}

:where(body.ac-migrasi .jupiterx-main) .elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap,
:where(body.ac-migrasi .jupiterx-main) .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap {
	color: var( --e-global-color-primary );
	border-color: var( --e-global-color-primary );
}

/* Heading yang merujuk global `text` secara eksplisit, bukan default
   Primary. Elementor di live menerbitkan aturan per-widget untuknya tapi
   TANPA font-size dan line-height, karena kit live tidak menyimpan nilai
   itu untuk global `text`. Ukurannya lalu bocor dari aturan default
   heading di atas: 48,85px alih-alih 18,93px.

   Daftarnya diambil dari pemindaian seluruh dokumen terbit
   (cek-global-eksplisit.php): di lingkup migrasi hanya dua widget yang
   merujuk global sistem yang berbeda dari default widgetnya.

     859715a  Emergency Department, "Unsure? Here are some…"
     bee28fe  Dialysis Centre

   Halaman yang dimigrasi berikutnya perlu dipindai ulang.

   Kekhususan (0,3,0): di atas aturan default heading (0,2,0), di bawah
   aturan per-widget Elementor sendiri (0,4,0). */
:where(body.ac-migrasi .jupiterx-main) .elementor-element.elementor-element-859715a .elementor-heading-title,
:where(body.ac-migrasi .jupiterx-main) .elementor-element.elementor-element-bee28fe .elementor-heading-title {
	font-size: var( --e-global-typography-text-font-size );
	line-height: var( --e-global-typography-text-line-height );
}

/* ==================================================================
 * Default global widget di header dan footer
 *
 * Header dan footer membawa celah yang sama dengan isi halaman: diff CSS
 * Header Emergency (post-1781 sumber lawan post-19744 live) menunjukkan
 * 14 aturan default global yang tidak diterbitkan di live. Yang paling
 * terasa adalah warna teks menu — tanpa aturan default nav-menu, tautan
 * jatuh ke `.elementor-kit-234 a { color: #FFFFFF }` milik kit live, jadi
 * menu tampil putih di atas latar merah muda.
 *
 * Variabel tipografi di atas sudah diperluas ke header dan footer.
 * Aturan berikut disalin dari post-1781.css dengan kekhususan aslinya:
 * `.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item`
 * = (0,3,0), menang atas warna tautan kit (0,1,1), kalah dari aturan
 * per-widget `.elementor-NNN .elementor-element-X …` (0,4,0).
 * ================================================================== */

:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .elementor-nav-menu .elementor-item {
	font-family: var( --e-global-typography-primary-font-family ), Sans-serif;
	font-size: var( --e-global-typography-primary-font-size );
	font-weight: var( --e-global-typography-primary-font-weight );
	line-height: var( --e-global-typography-primary-line-height );
	letter-spacing: var( --e-global-typography-primary-letter-spacing );
}

:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item {
	color: var( --e-global-color-text );
	fill: var( --e-global-color-text );
}

:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus {
	color: var( --e-global-color-accent );
	fill: var( --e-global-color-accent );
}

:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after {
	background-color: var( --e-global-color-accent );
}

:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .e--pointer-framed .elementor-item:after {
	border-color: var( --e-global-color-accent );
}

:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu {
	--e-nav-menu-divider-color: var( --e-global-color-text );
}

:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item,
:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-sub-item {
	font-family: var( --e-global-typography-accent-font-family ), Sans-serif;
	font-size: var( --e-global-typography-accent-font-size );
	font-weight: var( --e-global-typography-accent-font-weight );
}

:where(.jupiterx-site .elementor-location-header, .jupiterx-site .elementor-location-footer) .elementor-widget-image .widget-image-caption {
	color: var( --e-global-color-text );
	font-family: var( --e-global-typography-text-font-family ), Sans-serif;
	font-size: var( --e-global-typography-text-font-size );
	font-weight: var( --e-global-typography-text-font-weight );
	line-height: var( --e-global-typography-text-line-height );
	letter-spacing: var( --e-global-typography-text-letter-spacing );
}

/* ==================================================================
 * Margin paragraf dan daftar — reset hello-elementor
 *
 * Tema sumber (hello-elementor) me-reset margin tag dasar lewat reset.css:
 *
 *   p                        { margin-block: 0 .9rem }
 *   dd, dl, dt, li, ol, ul   { margin-block: 0 }
 *
 * JupiterX di live membawa reset Bootstrap: `p` dan `ul` mendapat
 * `margin-bottom: 1rem`. Snippet sumber menolkan margin `p:last-child`,
 * tapi tidak untuk daftar, jadi text editor yang diakhiri <ul> di live
 * tepat 16px lebih tinggi di semua lebar layar, dan tiap paragraf yang
 * bukan terakhir 1,6px lebih longgar.
 *
 * Kekhususan dijaga (0,0,2) seperti penetral `a` di atas: `:where()`
 * tidak menyumbang apa pun, `div` dan tag sasarannya masing-masing satu
 * elemen. Cukup untuk menang atas `p`/`ul` Bootstrap (0,0,1), tetap kalah
 * dari semua aturan desain yang memakai minimal satu kelas — termasuk
 * `p:last-child` milik snippet dan jarak paragraf per-widget Elementor.
 * ================================================================== */

:where(body.ac-migrasi .jupiterx-main,
       .jupiterx-site .elementor-location-header,
       .jupiterx-site .elementor-location-footer) div p {
	margin-block-start: 0;
	margin-block-end: .9rem;
}

:where(body.ac-migrasi .jupiterx-main,
       .jupiterx-site .elementor-location-header,
       .jupiterx-site .elementor-location-footer) div :is(dd, dl, dt, li, ol, ul) {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* ==================================================================
 * Tersembunyi secara visual — SEO S-01
 *
 * Dipakai H1 beranda (widget heading c706dff di page 709), yang
 * desainnya tidak punya judul teks karena hero berupa video.
 *
 * Sengaja bukan `display: none` / `visibility: hidden`: keduanya
 * membuang elemen dari pohon aksesibilitas, dan mesin pencari
 * memperlakukan teks tersembunyi seperti itu dengan curiga. Pola clip
 * ini membuat elemen tetap terbaca pembaca layar dan crawler, tapi tidak
 * menempati ruang — `position: absolute` juga mengeluarkannya dari alur
 * flex, jadi `gap` pembungkusnya tidak bertambah.
 *
 * `!important` karena kelas ini dipasang pada pembungkus widget
 * Elementor, yang posisi dan ukurannya ditulis aturan Elementor dengan
 * kekhususan lebih tinggi.
 * ================================================================== */

.ac-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* ==================================================================
 * Letter-spacing global kustom yang tidak terdefinisi
 *
 * Setelah cache Elementor dibangkitkan ulang, CSS per dokumen memuat
 * `letter-spacing: var(--e-global-typography-<id>-letter-spacing)` untuk
 * widget yang memakai global typography kustom. Global di bawah ini
 * tidak punya nilai letter-spacing di kit, jadi variabelnya tidak pernah
 * ditulis. Variabel yang tidak terdefinisi membuat deklarasinya tidak
 * sah saat nilai dihitung, dan letter-spacing jatuh ke `normal`.
 *
 * Di sumber, CSS widget yang sama tidak memuat deklarasi itu sama sekali,
 * sehingga default kit berlaku: Primary untuk heading dan Text untuk
 * text editor, keduanya 0.01em. Nilai di bawah diukur dari sumber.
 *
 *   cab8101  judul berita (heading, topbar 19598)       0.185px = 0.01em
 *   036f0e1  "News •" dan tanggal (heading, 19598)      0.13px  = 0.01em
 *   e23142a  "Share" (heading, 19599)                   0.12px  = 0.01em
 *   f17f5a1  kotak Highlights (text editor, berita)     0.13px  = 0.01em
 *
 * Global lain yang juga tanpa letter-spacing sengaja tidak didefinisikan:
 * tombol `99fe7ef` dan breadcrumb `16423e6` di sumber pun bernilai
 * `normal`. Global kustom (ber-id hash) hanya dipakai desain baru, jadi
 * halaman lama tidak terpengaruh.
 * ================================================================== */

:where(body.ac-migrasi .jupiterx-main,
       .jupiterx-site .elementor-location-header,
       .jupiterx-site .elementor-location-footer) {
	--e-global-typography-cab8101-letter-spacing: 0.01em;
	--e-global-typography-036f0e1-letter-spacing: 0.01em;
	--e-global-typography-e23142a-letter-spacing: 0.01em;
	--e-global-typography-f17f5a1-letter-spacing: 0.01em;
}
