/* =====================================================================
   RSAB POLISH V1 (21-09-2026) — css/rsab-polish.css
   Lapisan tampilan + animasi di atas style inline index.html.
   Dimuat SEBELUM css/rsab-mobile.css (yang wajib paling akhir).

   ISI:
     1. Token + util reveal
     2. Header atas: tautan lokasi
     3. Panduan Booking Online (5 langkah, garis progres beranimasi)
     4. Daftar panjang: kotak cari + kolom (Lab A-Z, Spesialisasi)
     5. Footer: ukuran teks di tablet/desktop
     6. Dock kontak cepat + tombol kembali ke atas
     7. prefers-reduced-motion
   Catatan: html{font-size:10px} (Bootstrap 3), jadi semua ukuran memakai px.
   ===================================================================== */

/* ---------- 1. TOKEN + REVEAL ---------- */
:root {
  --rp-green: var(--rsab-primary, #52752b);
  --rp-green-dark: var(--rsab-primary-dark, #3d5a1f);
  --rp-green-2: #88b44e;
  --rp-ink: #0a2e2a;
  --rp-muted: #4a6b63;
  --rp-line: #dfe8da;
  --rp-tint: #f4f9ef;
  --rp-wa: #128c3a;
  --rp-ease: cubic-bezier(.22, 1, .36, 1);
}

/* .rp-js dipasang oleh js/rsab-polish.js: kalau JS gagal dimuat, konten tetap terlihat */
.rp-js .rp-reveal { opacity: 0; transform: translateY(32px); transition: opacity .7s var(--rp-ease), transform .7s var(--rp-ease); will-change: opacity, transform; }
.rp-js .rp-reveal[data-rp="left"] { transform: translateX(-40px); }
.rp-js .rp-reveal[data-rp="right"] { transform: translateX(40px); }
.rp-js .rp-reveal[data-rp="zoom"] { transform: scale(.94); }
.rp-js .rp-reveal.rp-in { opacity: 1; transform: none; }

/* navbar sticky (80px) jangan menutupi judul section yang dibuka lewat scrollIntoView / anchor */
.booking-section { scroll-margin-top: 96px; }

/* ikon layanan hero (z-index 9999) menimpa navbar sticky saat discroll di desktop; di HP sudah dibereskan rsab-mobile.css */
.is-sticky .navbar-default { z-index: 10000 !important; }

/* ZOOM 200% / layar 768-1199px: judul hijau "Rumah Sakit Adhyaksa Banten" memakai inline white-space:nowrap,
   jadi di kolom sempit ia keluar kolom dan tertimpa kartu foto dokter. nowrap hanya dipertahankan di >= 1200px
   (kolom 495px, judul ~420px: muat). min-width:0 supaya kolom flex boleh menyusut dan teks membungkus. */
#about .rsab-about-welcome-green { white-space: normal !important; overflow-wrap: break-word; }
@media (min-width: 1200px) { #about .rsab-about-welcome-green { white-space: nowrap !important; } }
#about .row > [class*="col-"] { min-width: 0; }
/* blok gradient hijau di belakang foto tiga dokter (#about picture::before, [CSS] baris ~3364 index.html) DIHAPUS atas
   permintaan: di belakang foto kini putih polos. Bayangan fotonya sendiri dibiarkan. */
#about picture::before { display: none; }
@media (min-width: 768px) and (max-width: 991px) {
  #about .container { padding: 40px 28px; }
  #about .rsab-about-welcome-title span { font-size: 24px !important; }
}

/* HERO TIDAK BOLEH KOLAPS.
   owl.carousel.css menyembunyikan slider (display:none) sampai JS menambah class .owl-loaded. Kalau jquery.js /
   owl.carousel.min.js telat atau gagal dimuat, hero jadi 0px dan 7 ikon layanan (absolute, bottom) naik menimpa
   header + navbar. Sekarang slide pertama tampil sebagai gambar diam sampai Owl siap; setelah .owl-loaded, Owl
   mengambil alih seperti biasa. Pemulihan otomatisnya ada di js/rsab-polish.js initHeroGuard(). */
#home .owl-carousel:not(.owl-loaded) { display: block; }
#home .owl-carousel:not(.owl-loaded) > .item ~ .item { display: none; }

/* Kartu "Pusat Layanan Unggulan" di beranda tidak punya tautan, tetapi terangkat saat disorot seperti tombol.
   Efek angkatnya dimatikan supaya hanya elemen yang memang bisa diklik yang bereaksi. */
#team .rsab-featured-card, #team .rsab-featured-card:hover { transform: none !important; cursor: default; }
#team .rsab-featured-card:hover { border-color: #e2eeea; background: #f8fcfb; box-shadow: none !important; }

/* ---------- 2. HEADER ATAS: LOKASI ---------- */
header .location-icon a { color: inherit; text-decoration: none; border-bottom: 1px dashed currentColor; transition: color .2s ease; }
header .location-icon a:hover, header .location-icon a:focus-visible { color: var(--rp-green-2); }
header .location-icon i { color: var(--rp-green-2); }
/* Baris header desktop sudah penuh (telepon + jam + email = 691px dari 750px); item ke-4 membuatnya turun baris.
   Jadi tautan lokasi di header hanya tampil di HP (item bertumpuk). Desktop memakai tombol Lokasi di dock kanan. */
@media (min-width: 768px) { header .location-icon { display: none; } }

/* ---------- 3. PANDUAN BOOKING ONLINE ---------- */
#bookingSection .rsab-guide-wrap {
  max-width: 1080px; margin: 6px auto 14px; padding: 26px 24px 24px;
  background: linear-gradient(180deg, #fff 0%, #fbfdf9 100%);
  border: 1px solid var(--rp-line); border-radius: 20px;
  box-shadow: 0 18px 40px -22px rgba(20, 40, 10, .35);
  animation: rpCardIn .6s var(--rp-ease) both;
}
#bookingSection h2 { margin-bottom: 4px; }
#bookingSection .rsab-guide-lead { max-width: 640px; margin: 0 auto 26px; color: var(--rp-muted); font-size: 14px; line-height: 1.6; }

#bookingSection .rsab-guide {
  position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px;
  list-style: none; margin: 0; padding: 0; counter-reset: none;
}
/* garis progres di belakang lingkaran nomor */
#bookingSection .rsab-guide::before,
#bookingSection .rsab-guide::after {
  content: ""; position: absolute; top: 27px; left: 10%; right: 10%; height: 4px; border-radius: 4px;
}
#bookingSection .rsab-guide::before { background: #e6efdf; }
#bookingSection .rsab-guide::after {
  background: linear-gradient(90deg, var(--rp-green-2), var(--rp-green));
  transform: scaleX(0); transform-origin: left center;
  animation: rpLineGrow 1.5s .25s var(--rp-ease) forwards;
}

#bookingSection .rsab-guide-step {
  position: relative; z-index: 1; text-align: center; padding: 0 6px 14px;
  border-radius: 16px; opacity: 0;
  animation: rpStepIn .6s var(--rp-ease) forwards;
  transition: transform .3s var(--rp-ease), background-color .3s ease, box-shadow .3s ease;
}
#bookingSection .rsab-guide-step:nth-child(1) { animation-delay: .20s; }
#bookingSection .rsab-guide-step:nth-child(2) { animation-delay: .50s; }
#bookingSection .rsab-guide-step:nth-child(3) { animation-delay: .80s; }
#bookingSection .rsab-guide-step:nth-child(4) { animation-delay: 1.10s; }
#bookingSection .rsab-guide-step:nth-child(5) { animation-delay: 1.40s; }
#bookingSection .rsab-guide-step:hover { transform: translateY(-6px); background: var(--rp-tint); box-shadow: 0 12px 24px -16px rgba(20, 40, 10, .5); }

#bookingSection .rsab-guide-num {
  display: flex; align-items: center; justify-content: center; position: relative;
  width: 58px; height: 58px; margin: 0 auto 12px; border-radius: 50%;
  background: #fff; border: 3px solid var(--rp-green-2); color: var(--rp-green);
  font-size: 20px; font-weight: 700; line-height: 1;
  box-shadow: 0 0 0 6px #fff;
  transition: background-color .3s ease, color .3s ease, transform .3s var(--rp-ease);
}
#bookingSection .rsab-guide-step:hover .rsab-guide-num { background: var(--rp-green); border-color: var(--rp-green); color: #fff; transform: scale(1.08); }
#bookingSection .rsab-guide-step:last-child .rsab-guide-num { border-color: #d32f2f; color: #d32f2f; }
#bookingSection .rsab-guide-step:last-child:hover .rsab-guide-num { background: #d32f2f; color: #fff; }

#bookingSection .rsab-guide-icon { display: block; width: 38px; height: 38px; margin: 0 auto 8px; object-fit: contain; transition: transform .4s var(--rp-ease); }
#bookingSection .rsab-guide-step:hover .rsab-guide-icon { transform: translateY(-3px) rotate(-6deg) scale(1.08); }
#bookingSection .rsab-guide-step h3 { margin: 0 0 4px; color: var(--rp-ink); font-size: 15px; font-weight: 700; line-height: 1.3; }
#bookingSection .rsab-guide-step p { margin: 0; color: var(--rp-muted); font-size: 12.5px; line-height: 1.55; }
#bookingSection .rsab-guide-step p a { color: var(--rp-green); font-weight: 600; text-decoration: underline; }

#bookingSection .rsab-guide-actions {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 12px; margin-top: 24px;
  opacity: 0; animation: rpStepIn .6s 1.7s var(--rp-ease) forwards;
}
#bookingSection .rsab-guide-note { margin: 12px 0 0; color: #71877f; font-size: 12px; opacity: 0; animation: rpStepIn .6s 1.9s var(--rp-ease) forwards; }

/* tombol bersama (panduan booking + lokasi) */
.rp-btn {
  position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 11px 22px; border-radius: 999px; border: 2px solid transparent;
  font-size: 14px; font-weight: 600; line-height: 1.2; text-decoration: none !important; cursor: pointer;
  transition: transform .25s var(--rp-ease), box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
}
.rp-btn i { font-size: 16px; transition: transform .3s var(--rp-ease); }
.rp-btn:hover { transform: translateY(-3px); }
.rp-btn:hover i { transform: translateX(3px); }
.rp-btn:active { transform: translateY(0) scale(.98); }
.rp-btn:focus-visible { outline: 3px solid rgba(82, 117, 43, .4); outline-offset: 3px; }
.rp-btn-primary { background: var(--rp-green); color: #fff !important; box-shadow: 0 10px 22px -10px rgba(82, 117, 43, .9); }
.rp-btn-primary:hover { background: var(--rp-green-dark); box-shadow: 0 16px 28px -12px rgba(82, 117, 43, .95); }
/* kilau menyapu tombol utama */
.rp-btn-primary::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .45), transparent);
  transform: skewX(-20deg); animation: rpShine 3.6s ease-in-out infinite;
}
.rp-btn-wa { background: #fff; color: var(--rp-wa) !important; border-color: var(--rp-wa); }
.rp-btn-wa:hover { background: var(--rp-wa); color: #fff !important; }
.rp-btn-ghost { background: #fff; color: var(--rp-ink) !important; border-color: var(--rp-line); }
.rp-btn-ghost:hover { border-color: var(--rp-green); color: var(--rp-green) !important; }

@media (max-width: 767px) {
  #bookingSection .rsab-guide-wrap { padding: 20px 16px 20px; border-radius: 16px; }
  #bookingSection .rsab-guide-lead { font-size: 13.5px; margin-bottom: 18px; }
  /* HP: timeline vertikal */
  #bookingSection .rsab-guide { grid-template-columns: 1fr; gap: 0; }
  #bookingSection .rsab-guide::before, #bookingSection .rsab-guide::after { top: 24px; bottom: 40px; left: 23px; right: auto; width: 4px; height: auto; }
  #bookingSection .rsab-guide::after { transform: scaleY(0); transform-origin: center top; animation-name: rpLineGrowY; }
  #bookingSection .rsab-guide-step {
    display: grid; grid-template-columns: 50px 1fr; column-gap: 14px; align-items: start;
    text-align: left; padding: 0 4px 20px 0; min-height: 0;
  }
  #bookingSection .rsab-guide-step:hover { transform: none; background: transparent; box-shadow: none; }
  #bookingSection .rsab-guide-num { grid-row: 1 / span 3; width: 50px; height: 50px; margin: 0; font-size: 18px; box-shadow: 0 0 0 5px #fff; }
  #bookingSection .rsab-guide-icon { display: none; }
  #bookingSection .rsab-guide-step h3 { font-size: 15px; padding-top: 4px; }
  #bookingSection .rsab-guide-step p { font-size: 13.5px !important; }
  #bookingSection .rsab-guide-actions { flex-direction: column; margin-top: 8px; }
  #bookingSection .rsab-guide-actions .rp-btn { width: 100%; }
}

/* ---------- 4. DAFTAR PANJANG: KOTAK CARI + KOLOM ---------- */
.rsab-list-search { position: relative; max-width: 460px; margin: 4px auto 12px; animation: rpCardIn .5s var(--rp-ease) both; }
.rsab-list-search i {
  position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
  color: var(--rp-green-2); font-size: 15px; pointer-events: none; transition: transform .3s var(--rp-ease), color .2s ease;
}
.rsab-list-search input {
  width: 100%; height: 46px; padding: 0 44px 0 42px; border: 2px solid var(--rp-line); border-radius: 999px;
  background: #fff; color: var(--rp-ink); font-family: inherit; font-size: 14px;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.rsab-list-search input::placeholder { color: #8aa19a; }
.rsab-list-search input:focus { outline: 0; border-color: var(--rp-green); box-shadow: 0 0 0 4px rgba(82, 117, 43, .15); }
.rsab-list-search input:focus + i, .rsab-list-search:focus-within i { color: var(--rp-green); transform: translateY(-50%) scale(1.15); }
.rsab-list-search-clear {
  position: absolute; right: 8px; top: 50%; width: 32px; height: 32px; margin-top: -16px; padding: 0;
  border: 0; border-radius: 50%; background: #eef4e8; color: var(--rp-green); font-size: 16px; line-height: 1; cursor: pointer;
  opacity: 0; transform: scale(.6); pointer-events: none; transition: opacity .2s ease, transform .25s var(--rp-ease), background-color .2s ease;
}
.rsab-list-search.rp-has-value .rsab-list-search-clear { opacity: 1; transform: scale(1); pointer-events: auto; }
.rsab-list-search-clear:hover { background: var(--rp-green); color: #fff; }
.rsab-list-count { min-height: 18px; margin: 0 0 8px; color: var(--rp-muted); font-size: 12.5px; text-align: center; }
.rsab-list-count strong { color: var(--rp-green); }

/* saat mencari: tampilkan semua huruf yang punya hasil, sembunyikan sisanya */
.rp-searching .lab-abjad-group, .rp-searching .abjad-group { display: none !important; }
.rp-searching .lab-abjad-group[data-rp-hit], .rp-searching .abjad-group[data-rp-hit] { display: block !important; margin-bottom: 14px !important; }
.rp-searching .rp-miss { display: none !important; }
.rp-searching .lab-abjad-nav, .rp-searching .abjad-nav { opacity: .35; pointer-events: none; }
.lab-abjad-nav, .abjad-nav { transition: opacity .25s ease; }
mark.rp-mark { padding: 0 1px; border-radius: 3px; background: #fff1a8; color: inherit; }

/* daftar Lab A-Z: dari satu kolom teks 10px menjadi kolom-kolom yang terbaca */
#labSection .lab-abjad-group { max-width: 1080px; columns: 3 250px; column-gap: 28px; }
#labSection .lab-abjad-title { column-span: all; font-size: 20px; margin-bottom: 8px; }
#labSection .lab-abjad-item { break-inside: avoid; padding: 7px 8px; border-radius: 8px; border-bottom: 1px solid #eef2ea; transition: background-color .2s ease, padding-left .25s var(--rp-ease); }
#labSection .lab-abjad-item:hover { background: var(--rp-tint); padding-left: 14px; }
#labSection .lab-abjad-item p strong { font-size: 13px; line-height: 1.4; font-weight: 600; color: #0b5cad; }

/* daftar Spesialisasi: kartu dua kolom, teks 8px -> 12.5px */
#spesialisasiSection .abjad-group { max-width: 1080px; columns: 2 320px; column-gap: 24px; }
#spesialisasiSection .abjad-group .abjad-title { column-span: all; font-size: 20px; margin-bottom: 10px; }
#spesialisasiSection .abjad-item {
  break-inside: avoid; margin: 0 0 10px; padding: 12px 14px; border: 1px solid #e9f0e3; border-left: 4px solid var(--rp-green-2);
  border-radius: 12px; background: #fff;
}
#spesialisasiSection .abjad-item:hover { padding-left: 14px; background: var(--rp-tint); }
#spesialisasiSection .abjad-item p { font-size: 12.5px; line-height: 1.55; color: var(--rp-muted); }
#spesialisasiSection .abjad-item p strong { margin-bottom: 2px; font-size: 14px; line-height: 1.35; color: var(--rp-ink); }

/* grup huruf muncul halus setiap kali huruf diganti */
#labSection .lab-abjad-group, #spesialisasiSection .abjad-group { animation: rpFadeUp .45s var(--rp-ease) both; }

/* tab huruf: tombol bulat, lebih mudah diketuk */
#labSection .lab-abjad-nav, #spesialisasiSection .abjad-nav { gap: 6px !important; }
#labSection .lab-abjad-nav button, #spesialisasiSection .abjad-nav button {
  min-width: 34px !important; min-height: 34px !important; border-radius: 50% !important;
  transition: background-color .2s ease, color .2s ease, transform .25s var(--rp-ease) !important;
}
#labSection #labAbjadNav button, #spesialisasiSection #abjadNav button { border-radius: 50% !important; }
#labSection #labAbjadNav button:hover, #spesialisasiSection #abjadNav button:hover { background: var(--rp-tint) !important; color: var(--rp-green) !important; transform: translateY(-2px); }
#labSection #labAbjadNav button.active, #labSection #labAbjadNav button[aria-selected="true"],
#spesialisasiSection #abjadNav button.active, #spesialisasiSection #abjadNav button[aria-selected="true"] {
  background: var(--rp-green) !important; color: #fff !important; text-decoration: none !important; transform: scale(1.08);
}
@media (max-width: 767px) {
  #labSection .lab-abjad-nav button, #spesialisasiSection .abjad-nav button { min-width: 40px !important; min-height: 40px !important; font-size: 15px !important; }
  #labSection .lab-abjad-item p strong { font-size: 14px; }
  #spesialisasiSection .abjad-item p { font-size: 13.5px; }
  #spesialisasiSection .abjad-item p strong { font-size: 15px; }
}

/* ---------- 5. FOOTER (section Lokasi & peta dihapus atas permintaan: alamat hijau di footer sudah menuju Google Maps) ---------- */
/* footer: inline "1.0rem" = 10px di Bootstrap 3 (html 10px). HP sudah dibereskan rsab-mobile.css; ini untuk tablet/desktop */
@media (min-width: 768px) {
  #footer h4 { font-size: 16px !important; margin-bottom: 12px !important; }
  #footer p, #footer p a { font-size: 13.5px !important; line-height: 1.65 !important; }
}

/* Tanda hasil tombol "Kirim Pesan" di form Hubungi Kami */
.rsab-send-status { margin-top: 12px; padding: 12px 14px; border-radius: 10px; font-size: 14px; line-height: 1.55; animation: rpFadeUp .35s var(--rp-ease) both; }
.rsab-send-status[hidden] { display: none; }
.rsab-send-info { background: #f3f7ef; border: 1px solid #dfe8da; color: #3f5d55; }
.rsab-send-ok { background: #edf7e6; border: 1px solid #9cc47a; color: #2f5a14; }
.rsab-send-error { background: #fdeeee; border: 1px solid #e3a3a3; color: #8a1f1f; }
.rsab-send-status a { color: inherit; font-weight: 700; text-decoration: underline; }

/* ---------- 6. DOCK KONTAK CEPAT + KEMBALI KE ATAS ---------- */
.rsab-dock { position: fixed; z-index: 9990; right: 18px; bottom: 86px; display: flex; flex-direction: column; gap: 10px; opacity: 0; transform: translateX(80px); transition: opacity .5s ease, transform .6s var(--rp-ease); }
.rsab-dock.rp-dock-in { opacity: 1; transform: none; }
.rsab-dock a {
  position: relative; display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 50%;
  background: #fff; color: var(--rp-green); font-size: 20px; text-decoration: none !important;
  box-shadow: 0 8px 20px -6px rgba(10, 46, 42, .4); border: 1px solid var(--rp-line);
  transition: transform .3s var(--rp-ease), background-color .25s ease, color .25s ease, box-shadow .25s ease;
}
.rsab-dock a:hover, .rsab-dock a:focus-visible { transform: translateX(-4px) scale(1.06); background: var(--rp-green); color: #fff; outline: 0; }
.rsab-dock a span {
  position: absolute; right: 60px; top: 50%; padding: 6px 12px; border-radius: 8px; background: var(--rp-ink); color: #fff;
  font-size: 12.5px; font-weight: 600; white-space: nowrap; opacity: 0; transform: translate(8px, -50%); pointer-events: none;
  transition: opacity .2s ease, transform .25s var(--rp-ease);
}
.rsab-dock a:hover span, .rsab-dock a:focus-visible span { opacity: 1; transform: translate(0, -50%); }
.rsab-dock a.rsab-dock-wa { background: var(--rp-wa); border-color: var(--rp-wa); color: #fff; font-size: 24px; }
.rsab-dock a.rsab-dock-wa::before { content: ""; position: absolute; inset: 0; border-radius: 50%; box-shadow: 0 0 0 0 rgba(18, 140, 58, .55); animation: rpPulse 2.4s ease-out infinite; }
.rsab-dock a.rsab-dock-wa:hover { background: #0e6e2d; }

.rsab-totop {
  position: fixed; z-index: 9990; right: 18px; bottom: 24px; width: 50px; height: 50px; padding: 0; border: 0; border-radius: 50%;
  background: #fff; color: var(--rp-green); font-size: 16px; cursor: pointer; box-shadow: 0 8px 20px -6px rgba(10, 46, 42, .4);
  opacity: 0; visibility: hidden; transform: translateY(20px) scale(.8);
  transition: opacity .3s ease, transform .4s var(--rp-ease), visibility .3s, background-color .25s ease, color .25s ease;
}
.rsab-totop.rp-show { opacity: 1; visibility: visible; transform: none; }
.rsab-totop:hover, .rsab-totop:focus-visible { background: var(--rp-green); color: #fff; outline: 0; }
.rsab-totop:hover i { animation: rpNudgeUp .7s ease-in-out infinite; }
.rsab-totop svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); pointer-events: none; }
.rsab-totop circle { fill: none; stroke-width: 3; }
.rsab-totop .rp-ring-bg { stroke: #e6efdf; }
.rsab-totop .rp-ring { stroke: var(--rp-green-2); stroke-linecap: round; stroke-dasharray: 138.2; stroke-dashoffset: 138.2; transition: stroke-dashoffset .1s linear; }
.rsab-totop i { position: relative; }

/* garis progres baca di atas halaman */
.rsab-progress { position: fixed; z-index: 10001; top: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, var(--rp-green-2), var(--rp-green)); transform: scaleX(0); transform-origin: left center; pointer-events: none; }

@media (max-width: 767px) {
  /* HP: dock menjadi bar bawah selebar layar */
  body.rp-has-dock { padding-bottom: 64px; }
  .rsab-dock {
    left: 0; right: 0; bottom: 0; flex-direction: row; gap: 0; padding: 6px 6px calc(6px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, .96); border-top: 1px solid var(--rp-line); box-shadow: 0 -8px 24px -12px rgba(10, 46, 42, .35);
    transform: translateY(100%);
  }
  @supports (backdrop-filter: blur(8px)) { .rsab-dock { background: rgba(255, 255, 255, .86); backdrop-filter: blur(10px); } }
  .rsab-dock a, .rsab-dock a.rsab-dock-wa {
    flex: 1 1 0; flex-direction: column; gap: 3px; width: auto; height: 52px; border: 0; border-radius: 12px; background: transparent;
    color: var(--rp-ink); font-size: 19px; box-shadow: none;
  }
  .rsab-dock a.rsab-dock-wa { color: var(--rp-wa); font-size: 22px; }
  .rsab-dock a.rsab-dock-wa::before { display: none; }
  .rsab-dock a span { position: static; padding: 0; background: none; color: inherit; font-size: 11px; opacity: 1; transform: none; }
  .rsab-dock a:hover, .rsab-dock a:focus-visible { transform: none; background: var(--rp-tint); color: var(--rp-green); }
  .rsab-dock a:hover span, .rsab-dock a:focus-visible span { transform: none; }
  .rsab-dock a:active { transform: scale(.94); }
  .rsab-totop { right: 14px; bottom: 78px; width: 44px; height: 44px; }
}

/* ---------- KEYFRAMES ---------- */
@keyframes rpCardIn { from { opacity: 0; transform: translateY(24px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes rpFadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes rpStepIn { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes rpLineGrow { to { transform: scaleX(1); } }
@keyframes rpLineGrowY { to { transform: scaleY(1); } }
@keyframes rpShine { 0%, 55% { left: -60%; } 100% { left: 130%; } }
@keyframes rpPulse { 0% { box-shadow: 0 0 0 0 rgba(18, 140, 58, .55); } 70% { box-shadow: 0 0 0 16px rgba(18, 140, 58, 0); } 100% { box-shadow: 0 0 0 0 rgba(18, 140, 58, 0); } }
@keyframes rpNudgeUp { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

/* ---------- 7. HORMATI prefers-reduced-motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .rp-js .rp-reveal, .rp-js .rp-reveal[data-rp] { opacity: 1; transform: none; transition: none; }
  #bookingSection .rsab-guide-wrap, #bookingSection .rsab-guide-step, #bookingSection .rsab-guide-actions, #bookingSection .rsab-guide-note,
  #labSection .lab-abjad-group, #spesialisasiSection .abjad-group, .rsab-list-search { animation: none; opacity: 1; }
  #bookingSection .rsab-guide::after { animation: none; transform: none; }
  .rp-btn-primary::after,
  .rsab-dock a.rsab-dock-wa::before, .rsab-totop:hover i { animation: none; }
  .rsab-dock, .rsab-totop { transition: none; }
}
