/* ==========================================================================
   Nav solid untuk halaman TANPA foto hero gelap (detail layanan, dll.).
   Default nav = transparan + teks putih sampai discroll. Di halaman ini nav
   dipaksa putih dari awal. Aktif lewat class body "spa-solid-nav"
   (ditambahkan di functions.php). Diambil dari <style> halaman HTML lama.
   ========================================================================== */
body.spa-solid-nav .site-nav { background: #fff !important; border-bottom-color: var(--ks-line) !important; }
body.spa-solid-nav .site-nav .site-nav__link { color: var(--ks-ink) !important; }
body.spa-solid-nav .site-nav .site-nav__link:hover,
body.spa-solid-nav .site-nav .site-nav__link:focus-visible { color: var(--ks-primary-ink) !important; }
body.spa-solid-nav .site-nav .site-nav__burger { color: var(--ks-ink) !important; }
body.spa-solid-nav .site-nav .site-nav__logo .is-white { opacity: 0 !important; }
body.spa-solid-nav .site-nav .site-nav__logo .is-color { opacity: 1 !important; }
body.spa-solid-nav .site-nav .site-lang { border-color: var(--ks-primary) !important; }
body.spa-solid-nav .site-nav .site-lang__btn { color: var(--ks-primary-ink) !important; border-color: var(--ks-primary) !important; }
body.spa-solid-nav .site-nav .site-lang__btn.is-active { background: var(--ks-primary) !important; color: #fff !important; }
/* Halaman statis (About, Contact, FAQ, Layanan) - digabung dari <style> keempat halaman HTML lama, aturan kembar dibuang.
   Fix nav ada di subpage-nav.css (class body spa-solid-nav). */

/* ---- about-us ---- */
.pg-top{
    background:#fff;
    padding:calc(var(--ks-topbar-h,40px) + var(--ks-nav-py,8px)*2 + var(--ks-logo-h,48px) + 40px) 0 10px;
    text-align:center;
  }
@media (min-width:1024px){
    .pg-top{ padding:calc(var(--ks-topbar-h,44px) + var(--ks-nav-py,12px)*2 + var(--ks-logo-h,60px) + 56px) 0 14px; }
  }
.pg-top__inner{ max-width:820px; margin:0 auto; padding:0 20px; }
.pg-eyebrow{
    display:inline-block; background:rgba(216,155,49,.12); color:var(--ks-primary-ink,#9a6410);
    font-family:"Jost",sans-serif; font-weight:600; font-size:13px; padding:7px 16px; border-radius:999px; margin-bottom:18px;
  }
h1.pg-title{ font-family:"EB Garamond",serif; font-weight:500; font-size:46px; line-height:1.15; color:#1a1a1a; margin:0 0 14px; }
p.pg-lead{ font-family:"Jost",sans-serif; font-weight:300; font-size:17px; line-height:1.75; color:#5c5c52; margin:0; }
@media (max-width:700px){ h1.pg-title{ font-size:34px; } p.pg-lead{ font-size:16px; } }
.pg-section{ padding:56px 0; background:#fff; }
.pg-section--tint{ background:#FBF9F4; }
.pg-wrap{ max-width:1140px; margin:0 auto; padding:0 20px; }
h2.pg-h2{ font-family:"EB Garamond",serif; font-weight:500; font-size:36px; color:#1a1a1a; text-align:center; margin:0 0 36px; }
@media (max-width:700px){ h2.pg-h2{ font-size:28px; } }
.pg-btn{
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    background:var(--ks-gradient,linear-gradient(to right,#B8791A,#D89B31)); color:#fff;
    font-family:"Jost",sans-serif; font-weight:600; font-size:15.5px;
    padding:16px 30px; border-radius:10px; text-decoration:none; transition:opacity .2s ease;
  }
.pg-btn:hover{ opacity:.9; color:#fff; text-decoration:none; }
.pg-btn--ghost{ background:#fff; color:var(--ks-primary-ink,#9a6410); border:1px solid var(--ks-primary,#D89B31); }
.pg-btn--ghost:hover{ background:var(--ks-primary-tint,#f8e6bd); color:var(--ks-primary-ink,#9a6410); }
.pg-cta{ background:#FBF9F4; padding:64px 0; text-align:center; }
.pg-cta h2{ font-family:"EB Garamond",serif; font-weight:500; font-size:34px; color:#1a1a1a; margin:0 0 10px; }
.pg-cta p{ font-family:"Jost",sans-serif; font-weight:300; font-size:16px; color:#5c5c52; margin:0 0 26px; }
.pg-cta__btns{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; padding:0 20px; }
.ab-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.ab-video{ position:relative; border-radius:20px; overflow:hidden; border:1px solid #ece4d3; background:#FBF9F4; aspect-ratio:4/5; }
.ab-video video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.ab-text h2{ font-family:"EB Garamond",serif; font-weight:500; font-size:38px; color:#1a1a1a; margin:0 0 18px; line-height:1.2; }
.ab-text p{ font-family:"Jost",sans-serif; font-weight:300; font-size:16.5px; line-height:1.8; color:#5c5c52; margin:0 0 16px; }
.why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.why-card{ background:#fff; border:1px solid #ece4d3; border-radius:14px; padding:30px 26px; text-align:center; }
.why-card svg{ width:56px; height:56px; margin-bottom:14px; }
.why-card h3{ font-family:"EB Garamond",serif; font-weight:500; font-size:22px; color:#1a1a1a; margin:0 0 8px; }
.why-card p{ font-family:"Jost",sans-serif; font-weight:300; font-size:15px; line-height:1.7; color:#5c5c52; margin:0; }
@media (max-width:900px){ .ab-grid{ grid-template-columns:1fr; gap:30px; } .ab-video{ aspect-ratio:16/11; } .why-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .why-grid{ grid-template-columns:1fr; } }

/* ---- contact-us ---- */
.ct-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.ct-card{ background:#fff; border:1px solid #ece4d3; border-radius:16px; padding:32px 26px; text-align:center; }
.ct-ico{ width:54px; height:54px; border-radius:50%; background:rgba(216,155,49,.12); color:var(--ks-primary,#D89B31); display:inline-flex; align-items:center; justify-content:center; margin-bottom:16px; }
.ct-card h3{ font-family:"EB Garamond",serif; font-weight:500; font-size:23px; color:#1a1a1a; margin:0 0 8px; }
.ct-card p{ font-family:"Jost",sans-serif; font-weight:300; font-size:15.5px; line-height:1.7; color:#5c5c52; margin:0; }
.ct-num{ display:block; font-family:"Jost",sans-serif; font-weight:600; font-size:24px; letter-spacing:.02em; color:var(--ks-primary-ink,#9a6410); text-decoration:none; margin:2px 0 6px; }
.ct-num:hover{ color:var(--ks-primary-ink,#9a6410); text-decoration:underline; }
.ct-steps{ counter-reset:step; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; max-width:1140px; margin:0 auto; padding:0 20px; list-style:none; }
.ct-steps li{ counter-increment:step; background:#fff; border:1px solid #ece4d3; border-radius:14px; padding:26px 22px; }
.ct-steps li::before{ content:counter(step); display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; background:var(--ks-gradient,linear-gradient(to right,#B8791A,#D89B31)); color:#fff; font-family:"Jost",sans-serif; font-weight:600; margin-bottom:14px; }
.ct-steps h3{ font-family:"EB Garamond",serif; font-weight:500; font-size:21px; color:#1a1a1a; margin:0 0 6px; }
.ct-steps p{ font-family:"Jost",sans-serif; font-weight:300; font-size:15px; line-height:1.7; color:#5c5c52; margin:0; }
.ct-areas{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; padding:0; list-style:none; margin:0 0 18px; }
.ct-areas li{ font-family:"Jost",sans-serif; font-weight:500; font-size:14.5px; color:var(--ks-primary-ink,#9a6410); background:#fff; border:1px solid #ece4d3; border-radius:999px; padding:9px 18px; }
.ct-areas-note{ font-family:"Jost",sans-serif; font-weight:300; font-size:15px; color:#5c5c52; text-align:center; margin:0; }
@media (max-width:980px){ .ct-steps{ grid-template-columns:1fr 1fr; } }
@media (max-width:800px){ .ct-grid{ grid-template-columns:1fr; } }
@media (max-width:520px){ .ct-steps{ grid-template-columns:1fr; } }

/* ---- faq ---- */
.faq-section{padding:70px 0;background:#FBF9F4;}
.faq-container{max-width:800px;margin:0 auto;padding:0 20px;}
.faq-title{font-family:"EB Garamond",serif;font-size:40px;font-weight:500;text-align:center;margin:0 0 12px;color:var(--e-global-color-text,#1a1a1a);}
.faq-subtitle{font-family:"Jost",sans-serif;font-size:15px;font-weight:300;text-align:center;color:#6b6b60;margin:0 0 40px;}
.faq-accordion{display:flex;flex-direction:column;gap:14px;}
.faq-item{border:1px solid rgba(0,0,0,.12);border-radius:12px;background:#fff;padding:0 24px;transition:border-color .2s ease;}
.faq-item.active{border-color:rgba(0,0,0,.25);}
.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;background:none;border:none;padding:18px 0;font-family:"Jost",sans-serif;font-size:16px;font-weight:600;text-align:left;cursor:pointer;color:#1a1a1a;}
.faq-question span{flex:1;}
.faq-icon{flex-shrink:0;width:18px;height:18px;color:#8a8a75;transition:transform .25s ease;}
.faq-item.active .faq-icon{transform:rotate(180deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-answer-inner{padding:0 0 18px;font-family:"Jost",sans-serif;font-size:14px;font-weight:300;line-height:1.75;color:#5a5a52;}
@media (max-width:600px){
          .faq-title{font-size:30px;}
          .faq-question{font-size:15px;}
        }

/* ---- layanan ---- */
.sv-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.sv-card{ background:#fff; border:1px solid #ece4d3; border-radius:16px; overflow:hidden; display:flex; flex-direction:column; transition:box-shadow .25s ease, transform .25s ease; }
.sv-card:hover{ box-shadow:0 14px 34px rgba(0,0,0,.09); transform:translateY(-3px); }
.sv-card__img{ display:block; aspect-ratio:4/3; overflow:hidden; background:#FBF9F4; }
.sv-card__img img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; display:block; transition:transform .5s ease; }
.sv-card:hover .sv-card__img img{ transform:scale(1.04); }
.sv-card__body{ padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.sv-card h3{ font-family:"EB Garamond",serif; font-weight:500; font-size:24px; margin:0 0 8px; color:#1a1a1a; }
.sv-card h3 a{ color:inherit; text-decoration:none; }
.sv-card p{ font-family:"Jost",sans-serif; font-weight:300; font-size:15px; line-height:1.7; color:#5c5c52; margin:0 0 16px; }
.sv-price{ margin-top:auto; border-top:1px solid #f0e9d8; padding-top:14px; }
.sv-price div{ display:flex; justify-content:space-between; font-family:"Jost",sans-serif; font-size:14.5px; color:#6b6b60; padding:3px 0; }
.sv-price b{ font-weight:600; color:var(--ks-primary-ink,#9a6410); }
.sv-actions{ display:flex; gap:10px; margin-top:16px; }
.sv-actions a{ flex:1; text-align:center; font-family:"Jost",sans-serif; font-weight:600; font-size:14px; padding:12px 10px; border-radius:9px; text-decoration:none; transition:opacity .2s ease, background .2s ease; }
.sv-actions .sv-detail{ border:1px solid var(--ks-primary,#D89B31); color:var(--ks-primary-ink,#9a6410); background:#fff; }
.sv-actions .sv-detail:hover{ background:var(--ks-primary-tint,#f8e6bd); }
.sv-actions .sv-book{ background:var(--ks-gradient,linear-gradient(to right,#B8791A,#D89B31)); color:#fff; }
.sv-actions .sv-book:hover{ opacity:.9; }
.sv-note{ font-family:"Jost",sans-serif; font-weight:300; font-style:italic; font-size:13px; color:#8a8a75; text-align:center; margin:28px 0 0; }
@media (max-width:980px){ .sv-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .sv-grid{ grid-template-columns:1fr; } }
/* ==========================================================================
   Theme overrides - Nixe Massage
   File ini untuk penyesuaian di LUAR CSS asli (assets/css/style-0xx.css dst),
   supaya file asli nggak diutak-atik. Dienqueue PALING TERAKHIR di
   functions.php biar bisa nimpa kalau perlu.
   ========================================================================== */

/* --------------------------------------------------------------------
   1) Tombol WhatsApp mengambang (pengganti plugin Join.chat).
      Situs asli pakai plugin ini; kita bikin native di tema biar nggak
      tergantung plugin pihak ketiga. Ruang di footer (padding-bottom
      100px mobile / 48px desktop) MEMANG sengaja disisain buat tombol ini.
   -------------------------------------------------------------------- */
.ks-float-wa {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 9000;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	background: #25D366;
	border-radius: 50%;
	box-shadow: 1px 6px 24px 0 rgba(37, 211, 102, .35);
	transition: background-color .2s linear, transform .2s ease;
}
.ks-float-wa:hover,
.ks-float-wa:focus-visible {
	background: #20BA58;
	transform: scale(1.05);
}
.ks-float-wa svg {
	width: 30px;
	height: 30px;
	color: #fff;
}
@media (max-width: 767.98px) {
	.ks-float-wa { right: 16px; bottom: 16px; width: 54px; height: 54px; }
	.ks-float-wa svg { width: 27px; height: 27px; }
}

/* --------------------------------------------------------------------
   2) Safety-net header: nav asli didesain transparan (mengambang di atas
      foto hero gelap). Default-nya sekarang dibikin SOLID (background
      putih, teks gelap) supaya tetap kebaca di halaman yang BELUM/TIDAK
      punya hero (index.php fallback, 404, hasil pencarian).

      Halaman yang punya hero asli (Home, detail layanan, halaman area -
      dibuat di Batch 3-6) menambahkan class body.has-hero supaya nav-nya
      kembali transparan/mengambang seperti desain awal.
   -------------------------------------------------------------------- */
body:not(.has-hero) .site-nav,
body:not(.has-hero) .site-topbar { background: #fff !important; }
body:not(.has-hero) .site-nav { border-bottom: 1px solid var(--ks-line); }
body:not(.has-hero) .site-topbar { color: var(--ks-ink) !important; }
body:not(.has-hero) .site-topbar__wa-icon { color: #25D366; }
body:not(.has-hero) .site-nav__burger { color: var(--ks-ink) !important; }
body:not(.has-hero) .site-nav__link { color: var(--ks-ink) !important; }
body:not(.has-hero) .site-nav__logo .is-white { opacity: 0; }
body:not(.has-hero) .site-nav__logo .is-color { opacity: 1; }

/* --------------------------------------------------------------------
   3) Hilangkan border/outline hitam saat link, tombol, atau tab diklik
      (fokus). Sebelumnya berasal dari bootstrap "button:focus" dan
      outline bawaan browser.
   -------------------------------------------------------------------- */
a,
a:focus,
a:active,
a:focus-visible,
button,
button:focus,
button:active,
button:focus-visible,
summary,
[role="tab"],
[role="button"],
[tabindex],
[tabindex]:focus,
[tabindex]:focus-visible,
.elementor-button:focus,
.elementor-button:focus-visible,
.elementor-tab-title:focus,
.elementor-tab-title:focus-visible {
	outline: none !important;
	-webkit-tap-highlight-color: transparent;
}
a:focus,
a:focus-visible,
button:focus,
button:focus-visible,
[tabindex]:focus-visible {
	box-shadow: none;
}
