/* Public pages only. Existing admin, doctor and shared styles are untouched. */
.halo-public {
  --halo-pink: #cf165b;
  --halo-pink-dark: #a80f49;
  --halo-soft: #fff2f7;
  --halo-ink: #29232a;
  --halo-muted: #68616b;
  --halo-line: #eadde4;
  --halo-teal: #087f78;
  color: var(--halo-ink);
  background: #fff;
  font-family: Poppins, system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.7;
  overflow-wrap: anywhere;
  margin: 0;
}
.halo-public *, .halo-public *::before, .halo-public *::after { box-sizing: border-box; }
.halo-public img { max-width: 100%; }
.halo-public .container { width: 100%; max-width: 1184px; padding-inline: 24px; margin-inline: auto; }
.halo-public .container-fluid { max-width: 100%; }
.halo-public :is(a, button, input, select, textarea):focus-visible { outline: 3px solid #5e2c53; outline-offset: 4px; }
.halo-public :is(h1,h2,h3,h4) { line-height: 1.3; letter-spacing: -.025em; }
.halo-public section[id], .halo-public div[id^="page-"] { scroll-margin-top: 110px; }
.halo-public .navbar {
  width: min(1184px, calc(100% - 40px)); top: 14px;
  border: 1px solid var(--halo-line); border-radius: 18px;
  min-height: 64px; padding: 9px 12px;
  background: #fff; box-shadow: 0 6px 24px #50243c0b;
}
.halo-public .navbar .nav-link { font-size: 14px; padding-inline: 11px; color: #47404a; }
.halo-public .navbar .nav-link:hover, .halo-public .navbar .nav-link[aria-current="page"] { color: var(--halo-pink); }
.halo-public .dropdown-menu { background: white; border: 1px solid var(--halo-line); border-radius: 14px; padding: 8px; box-shadow: 0 12px 30px #3a223313; }
.halo-public .dropdown-menu .dropdown-item { color: #4c3543; background: white; margin: 0; border-radius: 8px; padding: 10px 12px; white-space: normal; }
.halo-public .dropdown-menu .dropdown-item:hover { color: var(--halo-pink); background: var(--halo-soft); }
.halo-public .dropdown-submenu > .dropdown-menu { background: white; min-width: 200px; }
.halo-public :is(.btn2,.btn4,.btn6,.daftar,.btn-whatsapp,.other) {
  min-height: 46px; height: auto; padding: 11px 22px;
  font: 600 14px/1.4 Poppins,system-ui,sans-serif; border-radius: 12px;
  border: 1px solid transparent; text-decoration: none;
  display: inline-flex; justify-content: center; align-items: center;
  max-width: 100%; transition: background-color .15s ease, box-shadow .15s ease;
}
.halo-public :is(.btn2,.btn6,.daftar) { background: var(--halo-pink); color: white; }
.halo-public :is(.btn2,.btn6,.daftar):hover { background: var(--halo-pink-dark); color: white; }
.halo-public .other { background: white; color: #53404c; border-color: var(--halo-line); }
.halo-public :is(.btn4,.btn-whatsapp) { background: var(--halo-teal); color: white; }
.halo-public button:disabled { cursor: not-allowed; }
.halo-public .hero { min-height: 630px; height: min(82vh, 820px); gap: 24px; padding: 140px 24px 120px; }
.halo-public .hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg,#fff8fbcc,#fff4f970); pointer-events: none; }
.halo-public .hero > * { position: relative; }
.halo-public .hero h1 span { color: #961044; font-size: clamp(34px,4.3vw,60px); font-weight: 700; text-shadow: none; }
.halo-public .hero .subtitle { color: #4e3545; font-size: clamp(17px,2vw,24px); max-width: 720px; text-shadow: none; }
.halo-public .hero .btn { height: auto; min-height: 52px; padding: 15px 28px; font-size: 17px; border-radius: 14px; animation: none; background: var(--halo-pink); border: 0; color: white; }
.halo-public .hero .btn:hover { background: var(--halo-pink-dark); }
.halo-public .hero .mt-md-5 { margin-top: 0 !important; }
.halo-public .pic { margin-top: -72px; }
.halo-public .pic .container { padding-inline: 24px !important; }
.halo-public .pic .row { border: 1px solid var(--halo-line); box-shadow: 0 12px 30px #50243c08; }
.halo-public .pic .img-box { width: 100%; height: 280px; border-radius: 18px; background: var(--halo-soft); }
.halo-public .section { padding-block: 64px; }
.halo-public :is(.solusi,.news,.ruang,.ceritaklinik) { padding-block: 44px; }
.halo-public .solusi { background: #fff4f8; border-radius: 24px; }
.halo-public .solusi .card1-custom { height: auto; min-height: 210px; background: #fff; border: 1px solid var(--halo-line); border-radius: 18px; padding: 24px; }
.halo-public .solusi .card1-custom div { color: #51434c !important; }
.halo-public .solusi .card1-custom p { font-size: 21px !important; }
.halo-public .box-aboutUs { border-radius: 20px; }
.halo-public :is(.box-ruang,.box-ruang2) { height: 370px; }
.halo-public :is(.box-ruang,.box-ruang2) img { width: 100%; border-radius: 18px; }
.halo-public .card { border: 1px solid var(--halo-line) !important; border-radius: 18px; overflow: hidden; }
.halo-public .card .card-body { background: #fff9fb !important; color: var(--halo-ink); }
.halo-public .card-header { background: #fff; border-bottom: 1px solid var(--halo-line); }
.halo-public .owl-carousel { min-width: 0; max-width: 100%; overflow: hidden; }
.halo-public .owl-stage-outer { overflow: hidden !important; position: relative; }
.halo-public .owl-nav .owl-prev { left: 8px !important; }
.halo-public .owl-nav .owl-next { right: 8px !important; }
.halo-public .other-news { padding-top: 112px !important; }
.halo-public .other-news .row > .col-md-4 { display: flex; margin-top: 24px !important; }
.halo-public .other-news .card { width: 100%; }
.halo-public .other-news .card-body { display: flex; flex-direction: column; }
.halo-public .other-news .card-body > p.fw-bold { font-size: 18px !important; line-height: 1.5; }
.halo-public .other-news .card-body > a { align-self: flex-end; margin-top: auto; }
.halo-public .other-news .card-img-top { aspect-ratio: 16/10; width: 100%; height: 220px; max-height: none !important; object-fit: cover; }
.halo-public.halo-page-article .cerita-kebersamaan, .halo-public.halo-page-story .cerita-kebersamaan { padding-top: 112px !important; }
.halo-public :is(.cerita-kebersamaan) > .container { max-width: 850px; }
.halo-public .cerita-kebersamaan h1, .halo-public .cerita-kebersamaan .fw-bold > p { font-size: clamp(27px,3vw,40px) !important; }
.halo-public .cerita-kebersamaan .image-left { float: none; display: block; width: 100% !important; height: auto !important; max-height: 480px; object-fit: contain !important; margin: 18px auto 32px !important; border-radius: 18px; }
.halo-public .konten-story { font-size: 16px; line-height: 1.9; }
.halo-public .konten-story :is(h2,h3) { margin-top: 32px; }
.halo-public .rooms { padding-top: 100px; }
.halo-public .rooms .fw-bold > p { margin-top: 0 !important; font-size: clamp(26px,3vw,38px) !important; }
.halo-public .rooms img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: 20px !important; }
.halo-public .hero-pelayanan { min-height: 0; padding: 120px 0 40px; }
.halo-public .hero-pelayanan > .container-fluid { max-width: 1184px; padding-inline: 24px; margin-inline: auto; }
.halo-public .hero-pelayanan .box-text { position: static; }
.halo-public .hero-pelayanan .box-text span, .halo-public .hero-pelayanan .box-text h1 { font-size: clamp(30px,3.5vw,44px); font-weight: 700; }
.halo-public .hero-pelayanan > .container-fluid > .row { position: relative !important; height: auto !important; max-height: none !important; width: auto !important; margin: 0; gap: 32px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); align-items: center; }
.halo-public .hero-pelayanan .content-left, .halo-public .hero-pelayanan .col-md-8 { width: 100%; }
.halo-public .hero-pelayanan .keuntungan { padding-inline: 0 !important; gap: 18px; }
.halo-public .hero-pelayanan .keuntungan .fas { color: var(--halo-pink); }
.halo-public .hero-pelayanan .judul-pelayanan { background: var(--halo-soft); border-radius: 10px; padding: 8px 16px; width: fit-content; }
.halo-public .hero-pelayanan .judul-pelayanan span { color: var(--halo-pink); font-size: 16px; }
.halo-public .hero-pelayanan .box-hero { display: none; }
.halo-public .hero-pelayanan .box-image { position: static; width: 100%; height: auto; aspect-ratio: 5/4; border: 0; background: var(--halo-soft); border-radius: 24px; }
.halo-public .hero-pelayanan .btn-whatsapp { width: auto; }
.halo-public .layanan { margin-top: 0; background: #fff5f8; }
.halo-public .layanan .box-img { width: 74px; flex-shrink: 0; }
.halo-public .manfaat { max-width: 1184px; padding-inline: 24px; margin-inline: auto; }
.halo-public .manfaat .box-manfaat { width: 100%; background: #fff5f8; border: 1px solid var(--halo-line); border-radius: 24px; align-items: stretch !important; }
.halo-public .manfaat .box-manfaat .box-img { width: 38%; height: auto; border-radius: 24px 0 0 24px; }
.halo-public .manfaat .box-manfaat .box-text { width: 62%; max-width: 62%; padding: 28px !important; }
.halo-public .manfaat .box-manfaat .box-text .judul { color: var(--halo-pink-dark); text-shadow: none; font-size: 25px; }
.halo-public .manfaat .box-manfaat .box-text .konten { color: var(--halo-ink); }
.halo-public .pemeriksaan .konten .box-konten { height: auto; }
.halo-public .pemeriksaan :is(.box-kanan,.box-kiri) { opacity: .2; }
.halo-public .halo-contact-dock { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 12px; background: #fff7fa; padding: 28px 24px; margin-top: 44px; border-top: 1px solid var(--halo-line); }
.halo-public .halo-contact-dock :is(.btn-mitra,.button2) { position: static; margin: 0; min-height: 48px; width: auto; padding: 13px 20px; font-size: 14px; line-height: 1.4; border-radius: 12px; display: inline-flex; gap: 10px; align-items: center; justify-content: center; transform: none; box-shadow: none; }
.halo-public .halo-contact-dock .button2 { position: relative; isolation: isolate; padding-right: 20px; }
.halo-public .halo-contact-dock .button2 > svg { position: static; height: 23px; width: 23px; padding: 0; margin: 0; }
.halo-public .footer { margin-top: 0 !important; }
.halo-public .footer .row > .p-5 { background: #a91450 !important; padding: 40px !important; }
.halo-public .footer h2 { color: white !important; font-size: 26px; }
.halo-public .footer iframe { min-height: 340px; }
.halo-public #imageModal .modal-dialog { max-width: 590px; }
.halo-public #imageModal .modal-content { border: 0; border-radius: 20px; overflow: hidden; }
.halo-public #imageModal .modal-header { padding: 14px 18px; }
.halo-public #imageModal .modal-body { padding: 16px; overflow: auto; max-height: calc(100dvh - 120px); }
.halo-public #imageModal img { display: block; max-height: calc(100dvh - 164px); width: auto !important; max-width: 100%; height: auto; object-fit: contain; margin-inline: auto; }
.halo-public .jam { padding: 32px 18px; background: #fff6fa; min-height: 100vh; }
.halo-public .box-right-top { display: none; }
.halo-public .box-antrean { margin: 0 auto; border: 1px solid var(--halo-line); border-radius: 24px; padding: 32px; max-width: 1040px; background: white; min-height: auto !important; }
.halo-public .box-antrean > .container { padding: 0; }
.halo-public .box-antrean > .container > .row > :is(.col-md-8,.col-lg-9) { width: 100%; }
.halo-public .box-antrean .box-text { width: 100%; max-width: 540px; }
.halo-public .box-antrean .judul { color: var(--halo-pink-dark); font-size: clamp(25px,3vw,32px); }
.halo-public .box-antrean .sub-judul { font-size: 15px; border: 0; color: var(--halo-muted); }
.halo-public .box-antrean .rincian { font-size: 16px; color: #493d47; }
.halo-public .box-antrean .rincian i { color: var(--halo-pink); font-size: 19px; margin-right: 7px; }
.halo-public #formPendaftaranPasie > .col-12 > p.fw-bold { border-color: var(--halo-line) !important; font-size: 24px !important; padding-bottom: 14px; }
.halo-public #manualQueueForm .form-control, .halo-public #manualQueueForm .form-select { border: 1px solid #d9cbd3 !important; border-radius: 11px !important; min-height: 48px; padding: 12px 14px; color: var(--halo-ink); background-color: #fff; font-size: 15px; }
.halo-public #manualQueueForm .form-control[readonly] { background-color: #f8f6f8; }
.halo-public #manualQueueForm .form-control:focus { border-color: var(--halo-pink) !important; box-shadow: 0 0 0 3px #cf165b16; }
.halo-public #manualQueueForm .form-label { color: #4c3543 !important; font-size: 14px; font-weight: 600 !important; margin-bottom: 7px; }
.halo-public #manualQueueForm .mb-3 { margin-bottom: 22px !important; }
.halo-public .halo-required { color: var(--halo-pink); margin-left: 4px; }
.halo-public .halo-form-help, .halo-public .halo-calendar-help { font-size: 13px; color: var(--halo-muted); }
.halo-public .halo-field-error { color: #a31042; font-size: 13px; margin-top: 6px; }
.halo-public #manualQueueForm [aria-invalid="true"] { border-color: #a31042 !important; }
.halo-public .halo-error-summary { background: #fff1f5; border: 1px solid #e5b2c5; border-radius: 12px; padding: 16px 20px; margin-bottom: 24px; color: #88113d; }
.halo-public .halo-error-summary ul { margin-bottom: 0; padding-left: 22px; }
.halo-public .halo-error-summary a { color: inherit; text-decoration: underline; }
.halo-public .radio-inputs { border: 1px solid var(--halo-line); background: #fff6fa; border-radius: 12px; padding: 5px; }
.halo-public .radio-inputs .radio input { position: absolute; opacity: 0; width: 1px; height: 1px; display: block; }
.halo-public .radio-inputs .radio input:focus-visible + .name { outline: 3px solid #5e2c53; outline-offset: 2px; }
.halo-public .radio-inputs .radio input:checked + .name { background: var(--halo-pink); color: white; }
.halo-public .radio-inputs .name { min-height: 40px; padding: 10px 16px; }
.halo-public .halo-calendar-card { background: #fff; border: 1px solid var(--halo-line); border-radius: 20px; margin: 24px auto 0; max-width: 570px; padding: 20px; width: 100%; }
.halo-public .halo-calendar-card .container-calendar { padding: 0; width: 100%; overflow: visible; }
.halo-public .halo-calendar-selection { background: var(--halo-soft); border-radius: 12px; padding: 14px 18px; width: 100%; margin-bottom: 24px; }
.halo-public .halo-calendar-selection .halo-label { color: var(--halo-muted); font-size: 12px; font-weight: 500; }
.halo-public .halo-calendar-selection #tanggal-terpilih { color: var(--halo-pink-dark); font-size: 16px; }
.halo-public .halo-patient-count { font-size: 13px; color: var(--halo-muted); margin-top: 4px; }
.halo-public .button-container-calendar { min-height: 52px; margin-bottom: 16px; padding-top: 0; }
.halo-public .button-container-calendar button { top: 0; zoom: 1; height: 44px; width: 44px; padding: 0; border: 1px solid var(--halo-line); border-radius: 10px; color: #573044; background: white; font-size: 25px; line-height: 1; }
.halo-public #monthHeader { font-size: 20px; color: var(--halo-ink); text-transform: none; padding-top: 0; }
.halo-public #yearHeader { font-size: 13px; color: var(--halo-muted); margin: 0; }
.halo-public .table-calendar { table-layout: fixed; border: 0; border-collapse: separate; border-spacing: 5px 7px; }
.halo-public .table-calendar th { padding: 4px 0; font-size: 12px; font-weight: 500; color: #69616b; }
.halo-public .table-calendar td { padding: 0; vertical-align: middle; height: 44px; border: 0; }
.halo-public .halo-calendar-day { display: block; border: 0; border-radius: 10px; width: 100%; min-height: 44px; padding: 8px 0; text-align: center; font: 600 14px/1.4 Poppins,system-ui,sans-serif; color: white; cursor: pointer; }
.halo-public .halo-calendar-day.is-practice { background: var(--halo-pink); }
.halo-public .halo-calendar-day.is-closed { background: #242126; }
.halo-public .halo-calendar-day.is-outside { opacity: .48; }
.halo-public .halo-calendar-day.is-selected { outline: 3px solid #3b2036; outline-offset: 2px; box-shadow: inset 0 0 0 2px white; }
.halo-public .halo-calendar-day:disabled { cursor: not-allowed; }
.halo-public .halo-calendar-legend { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; font-size: 12px; margin: 16px 0; color: #5f5660; }
.halo-public .halo-calendar-legend span { display: inline-flex; align-items: center; gap: 7px; }
.halo-public .halo-calendar-legend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; background: var(--halo-pink); }
.halo-public .halo-calendar-legend .is-closed { background: #242126; }
.halo-public .halo-calendar-card #btnPilih { width: 100%; }
.halo-public #btnPilih:disabled { background: #b59ba8; }
.halo-public .halo-calendar-help { text-align: center; margin: 12px 0 0; }
.halo-public .halo-queue-empty { background: #fff6fa; padding: 28px 20px; border-radius: 16px; margin: 20px 0; text-align: center; }
.halo-public .text-antrean { color: var(--halo-pink-dark); }
.halo-public .text-antrean2 { color: #4b3c47; }
.halo-public.halo-page-queue .box-antrean .row > .d-flex.align-items-center { flex-wrap: wrap; gap: 8px; }
.halo-public.halo-page-queue .box-antrean .row > .d-flex.align-items-center form { flex: 1; min-width: 180px; }
.halo-public #rekam_medis { min-height: 46px; border: 1px solid #d9cbd3; border-radius: 10px; }
@media (max-width: 767px) {
  .halo-public .container { padding-inline: 20px; }
  .halo-public .navbar { width: calc(100% - 24px); top: 10px; min-height: 58px; border-radius: 14px; }
  .halo-public .navbar .navbar-nav { padding-block: 10px; }
  .halo-public .navbar .nav-link { text-align: left; padding: 9px 12px; }
  .halo-public .dropdown-submenu > .dropdown-menu { position: static; margin: 4px 0 4px 12px; box-shadow: none; min-width: 0; }
  .halo-public .hero { height: auto; min-height: 540px; padding: 128px 20px 118px; gap: 20px; }
  .halo-public .hero[style] { background-image: var(--halo-hero-mobile) !important; }
  .halo-public .hero .box-title { padding: 0; }
  .halo-public .pic .container { padding-inline: 20px !important; }
  .halo-public .pic .col-md-4 { width: 33.333%; padding: 8px !important; }
  .halo-public .pic .img-box { height: 150px; border-radius: 12px; }
  .halo-public .pic .row { padding: 8px; border-radius: 20px !important; }
  .halo-public .section { padding-block: 40px; }
  .halo-public .section .col-md-6 + .col-md-6 { margin-top: 28px; }
  .halo-public .poster .row > .d-flex { flex-wrap: wrap; gap: 10px; }
  .halo-public .poster .row > .d-flex > a { margin: 0 !important; width: 100%; }
  .halo-public .poster .btn4 { width: 100%; }
  .halo-public .news .col-md-6 + .col-md-6 { margin-top: 24px; }
  .halo-public .rooms .row > .col-4 { width: 100%; margin-top: 14px; }
  .halo-public .rooms img { aspect-ratio: 4/3; }
  .halo-public .hero-pelayanan > .container-fluid > .row { grid-template-columns: 1fr; gap: 24px; }
  .halo-public .hero-pelayanan { padding-top: 104px; }
  .halo-public .hero-pelayanan .box-image { aspect-ratio: 4/3; }
  .halo-public .manfaat { padding-inline: 20px; }
  .halo-public .manfaat .box-manfaat { display: block !important; }
  .halo-public .manfaat .box-manfaat .box-img { width: 100%; max-height: 260px; border-radius: 20px 20px 0 0; }
  .halo-public .manfaat .box-manfaat .box-text { width: 100%; max-width: 100%; padding: 22px !important; }
  .halo-public .halo-contact-dock > a { width: 100% !important; }
  .halo-public .footer iframe { min-height: 280px; }
  .halo-public .footer .row > .p-5 { padding: 28px 24px !important; }
  .halo-public .jam { padding: 16px 10px; }
  .halo-public .box-antrean { padding: 24px 16px; border-radius: 20px; }
  .halo-public .halo-calendar-card { padding: 16px 9px; }
  .halo-public .table-calendar { border-spacing: 3px 6px; }
  .halo-public .halo-calendar-day { border-radius: 8px; min-height: 42px; }
  .halo-public .halo-calendar-selection { padding: 14px 10px; }
  .halo-public .box-antrean .rincian { font-size: 14px; }
  .halo-public .text-antrean[style] { font-size: 30px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .halo-public *, .halo-public *::before, .halo-public *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .halo-public [data-aos] { transform: none !important; opacity: 1 !important; }
}
