/*
Theme Name: Solo Bali Travel
Theme URI: https://example.com/
Author: Solo Bali Travel
Description: Tema WordPress untuk website Solo Bali Travel, mempertahankan desain HTML/CSS/JS asli.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: solo-bali-travel
*/

/*
==========================================================
STYLE UTAMA — SOLO BALI TRAVEL
Catatan: warna, ukuran, jarak, kartu, header, mobile menu,
dan tombol bisa diedit di file ini.
==========================================================
*/
:root{
  --red:#e20d17; --red-dark:#b90810; --navy:#101820; --ink:#1b252d;
  --muted:#68747c; --cream:#fffaf4; --soft:#f5f6f6; --line:#e4e8e8;
  --white:#fff; --gold:#d5a64b; --shadow:0 18px 45px rgba(16,24,32,.10);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.65}a{text-decoration:none;color:inherit}.container{width:min(1180px,92%);margin:auto}
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(16,24,32,.08);transition:.25s}.nav-wrap{height:82px;display:flex;align-items:center;justify-content:space-between}.brand img{width:220px;height:60px;object-fit:contain;object-position:left center}.main-nav{display:flex;align-items:center;gap:30px;font-weight:700;font-size:14px}.main-nav a{transition:.2s}.main-nav a:hover{color:var(--red)}.nav-book{background:var(--red);color:#fff!important;padding:13px 23px;border-radius:999px;box-shadow:0 10px 22px rgba(226,13,23,.20)}.menu-toggle{display:none!important;background:none;border:0;font-size:28px}
.hero{min-height:760px;padding-top:82px;position:relative;overflow:hidden;background:#113f49}.hero-bg{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(5,23,31,.78),rgba(5,23,31,.30)),var(--hero-image, none);background-size:cover;background-position:center}.hero-content{position:relative;z-index:1;min-height:678px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:50px}.hero-copy{color:#fff;max-width:700px}.eyebrow{display:inline-block;font-size:12px;letter-spacing:.16em;font-weight:800;color:#fff;margin-bottom:12px}.eyebrow.red{color:var(--red)}h1{font-size:clamp(52px,7vw,92px);line-height:.98;margin:0 0 22px;letter-spacing:-.055em}h1 em{color:#ffdf9a;font-style:normal}h2{font-size:clamp(34px,4vw,52px);line-height:1.08;letter-spacing:-.035em;margin:0 0 16px}h3{margin:0 0 8px}.hero-copy p{font-size:18px;max-width:620px;color:rgba(255,255,255,.88)}.hero-actions{display:flex;gap:12px;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:13px 23px;font-weight:800;font-size:13px;letter-spacing:.02em;transition:.2s;border:1px solid transparent}.btn-primary,.btn-red{background:var(--red);color:#fff}.btn-primary:hover,.btn-red:hover,.nav-book:hover{background:var(--red-dark);transform:translateY(-2px)}.btn-light{border-color:rgba(255,255,255,.5);color:#fff;background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}.btn-light:hover{background:#fff;color:var(--ink)}.btn-outline{border-color:var(--red);color:var(--red)}.btn-outline:hover{background:var(--red);color:#fff}
.hero-card{border-radius:28px;overflow:hidden;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.25);box-shadow:0 25px 60px rgba(0,0,0,.25);transform:rotate(2deg)}.hero-card-image{height:400px;background:var(--hero-card-image, none) center/cover}.hero-card-copy{padding:18px 22px;color:#fff;display:flex;justify-content:space-between}.hero-card-copy span{color:rgba(255,255,255,.75)}
.section{padding:100px 0}.section-soft{background:var(--soft)}.about-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center;padding:45px;border-radius:28px;background:#fff;box-shadow:var(--shadow);margin-top:-50px;position:relative;z-index:3}.about-visual{height:420px;border-radius:20px;background:var(--about-image, none) center/cover;position:relative;overflow:hidden}.about-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(226,13,23,.05),rgba(0,0,0,.28))}.about-orbit{position:absolute;z-index:2;right:20px;bottom:20px;background:#fff;color:var(--red);padding:18px 22px;border-radius:14px;font-weight:900;letter-spacing:.2em}.about-copy p{color:var(--muted);font-size:16px;margin:0 0 18px}.about-copy p:last-child{margin-bottom:0}.about-points{display:flex;gap:18px;flex-wrap:wrap;color:var(--ink);font-weight:700;font-size:14px;margin-top:24px}.section-heading{text-align:center;max-width:700px;margin:0 auto 48px}.section-heading p{color:var(--muted);margin:0}.destination-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.destination-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.06);transition:.25s}.destination-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.dest-img{height:330px;background-size:cover;background-position:center}.destination-card>div:last-child{padding:16px 18px;display:flex;justify-content:space-between;align-items:end}.destination-card b{font-size:18px}.destination-card span{font-size:12px;color:var(--muted)}
.why{background:#fff}.why-grid{display:grid;grid-template-columns:1fr .8fr;gap:90px;align-items:center}.why-item{display:flex;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}.why-item>span{font-weight:900;color:var(--red);font-size:14px}.why-description{color:var(--muted);font-size:16px;margin:0 0 12px}.why-item p{margin:0;color:var(--muted)}.why-visual{height:560px;border-radius:30px;position:relative;overflow:hidden;background:var(--why-image, none) center/cover no-repeat;display:block}
.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.package-card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.07);transition:.25s}.package-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.package-image{height:320px;background-size:cover;background-position:center;position:relative}.package-image:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.55))}.package-image span{position:absolute;z-index:2;top:14px;left:14px;background:var(--red);color:#fff;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900}.package-body{padding:22px}.package-body p{color:var(--muted);margin:0 0 12px}.package-price-wrap{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.package-price-wrap strong{display:block;font-size:15px}.package-price-wrap span{font-weight:900;font-size:14px;color:var(--muted)}.package-body a{color:var(--red);font-weight:900;font-size:13px}.center{text-align:center;margin-top:36px}
.testimonial{background:#fff}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.testimonial blockquote{margin:0;background:var(--soft);border:1px solid var(--line);padding:28px;border-radius:18px;position:relative}.testimonial blockquote>span{font-size:52px;line-height:.6;color:var(--red);font-weight:900}.testimonial blockquote p{font-size:15px}.testimonial footer{font-weight:800;color:var(--red);font-size:13px}
.section-dark{background:var(--navy);color:#fff}.contact-grid{display:grid;grid-template-columns:1fr .8fr;gap:70px;align-items:center}.contact-copy p{color:rgba(255,255,255,.72);font-size:17px}.contact-list{display:grid;gap:10px;margin:25px 0 28px}.contact-list a:hover{color:#ffcf7d}.wechat-card{background:#fff;color:var(--ink);border-radius:24px;padding:28px;display:grid;grid-template-columns:1fr 190px;gap:20px;align-items:center}.wechat-card h3{font-size:24px}.wechat-card p{color:var(--muted);font-size:13px}.wechat-card img{width:180px;height:180px;object-fit:cover;border-radius:10px}
.footer{background:#0b1116;color:#fff;padding-top:65px}.footer-grid{display:grid;grid-template-columns:1.4fr .7fr .9fr;gap:60px;padding-bottom:45px}.footer-logo{width:260px;height:78px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1);margin-bottom:12px}.footer p,.footer a,.footer span{color:rgba(255,255,255,.68);font-size:14px}.footer a{display:block;margin:7px 0}.footer a:hover{color:#fff}.footer h3{font-size:15px;color:#fff}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:18px 0;color:rgba(255,255,255,.5);font-size:12px}
.floating-wa{position:fixed;right:22px;bottom:22px;width:62px;height:62px;border-radius:50%;background:#25d366;color:#fff;z-index:60;display:flex;align-items:center;justify-content:center;box-shadow:0 14px 35px rgba(0,0,0,.22);transition:.2s}.floating-wa:hover{transform:translateY(-4px) scale(1.03)}.floating-wa span{font-size:34px;transform:rotate(-35deg)} .floating-wa img{width:28px!important;height:28px!important;max-width:28px!important;max-height:28px!important;object-fit:contain;display:block;flex:0 0 28px}
.testimonial-card{min-height:270px}.testimonial-photo-wrap{width:58px;height:58px;border-radius:50%;overflow:hidden;margin-bottom:14px;border:2px solid rgba(226,13,23,.12)}.testimonial-photo{width:100%;height:100%;object-fit:cover;display:block}.testimonial-stars{color:var(--red);letter-spacing:.08em;font-size:13px;margin:8px 0}.why-visual{background-color:#dfe9e6}

@media(max-width:900px){.main-nav{gap:18px}.brand img{width:180px}.hero-content{grid-template-columns:1fr}.hero{min-height:900px}.hero-card{display:none}.destination-grid{grid-template-columns:repeat(2,1fr)}.about-card,.why-grid,.contact-grid{grid-template-columns:1fr}.why-visual{height:420px}.package-grid{grid-template-columns:repeat(2,1fr)}.testimonial-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.wechat-card{grid-template-columns:1fr 170px}}
@media(max-width:700px){.nav-wrap{height:72px}.brand img{width:165px;height:54px}.menu-toggle{display:none!important;color:var(--ink)}.main-nav{display:none;position:absolute;top:72px;left:4%;right:4%;background:#fff;border-radius:18px;box-shadow:var(--shadow);padding:18px;flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.main-nav a{padding:10px 12px}.nav-book{text-align:center}.hero{padding-top:72px;min-height:760px}.hero-content{min-height:688px}.hero-copy h1{font-size:56px}.hero-copy p{font-size:16px}.section{padding:75px 0}.about-card{padding:20px;margin-top:-30px;gap:28px}.about-visual{height:300px}.destination-grid,.package-grid,.testimonial-grid,.footer-grid{grid-template-columns:1fr}.dest-img{height:260px}.package-image{height:300px}.why-visual{height:340px}.wechat-card{grid-template-columns:1fr}.wechat-card img{width:160px;height:160px}.floating-wa{width:56px;height:56px;right:16px;bottom:16px}.footer-logo{width:230px}.hero-actions{flex-direction:column;align-items:stretch}}

/* =========================================================
   HALAMAN PACKAGES + DETAIL PACKAGE
   Semua data kartu/detail berasal dari assets/content.js
   ========================================================= */
.inner-hero{padding:150px 0 70px;background:linear-gradient(90deg,rgba(8,44,60,.88),rgba(8,44,60,.45)),var(--inner-hero-image, none) center/cover;color:#fff}.inner-hero h1{font-size:clamp(42px,6vw,70px);margin:0 0 10px}.inner-hero p{margin:0;color:rgba(255,255,255,.82)}
.package-card{height:100%;display:flex;flex-direction:column}.package-body{display:flex;flex-direction:column;flex:1}.package-body a{margin-top:auto;padding-top:8px}.package-image{background-color:#d9e5e1}
.detail-page{padding-top:70px}.detail-hero-image{display:block;width:100%;height:500px;object-fit:cover;border-radius:24px;box-shadow:0 20px 45px rgba(0,0,0,.12);margin-bottom:28px}.detail-heading{display:flex;justify-content:space-between;align-items:end;gap:30px}.detail-heading h2{margin-bottom:0}.detail-price{font-size:20px;color:var(--red);white-space:nowrap}.detail-description{font-size:17px;color:var(--muted);max-width:920px}.detail-two-col{display:grid;grid-template-columns:1fr .9fr;gap:60px;align-items:center;margin:38px 0 55px}.highlight-list{padding-left:20px;color:var(--muted)}.highlight-list li{margin:8px 0}.detail-mini-gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail-mini-gallery img{width:100%;height:180px;object-fit:cover;border-radius:15px}.included-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 12px 35px rgba(16,24,32,.06);max-width:900px}.included-card>p,.detail-section>p{color:var(--muted)}.included-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid var(--line);padding-top:20px}.included-card h4{color:#0a9d68}.included-card .excluded-title{color:var(--red)}.included-card ul{padding-left:18px;color:var(--muted)}.detail-section{margin-top:60px;max-width:900px}.detail-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.detail-gallery img{width:100%;height:190px;object-fit:cover;border-radius:15px}.schedule-list{display:grid;gap:12px}.day-accordion{border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fff;box-shadow:0 6px 18px rgba(16,24,32,.04)}.day-toggle{width:100%;border:0;background:#fff;padding:18px 20px;display:flex;justify-content:space-between;align-items:center;font:inherit;font-weight:800;color:var(--ink);cursor:pointer}.day-icon{width:28px;height:28px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;transition:.25s}.day-panel{max-height:0;overflow:hidden;transition:max-height .35s ease,opacity .25s ease;opacity:0}.day-panel ul{margin:0;padding:0 45px 20px;color:var(--muted)}.day-accordion.open .day-panel{max-height:300px;opacity:1}.day-accordion.open .day-icon{transform:rotate(180deg)}.detail-price-block{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;justify-content:flex-end}.detail-price-block>span{font-size:18px;font-weight:900;color:var(--muted)}.package-info-section{max-width:900px}.itinerary-list{padding-left:24px;color:var(--muted)}.itinerary-list li{margin:10px 0}.package-info-card{max-width:900px;margin-top:22px}.check-list,.note-list{list-style:none;padding:0;margin:0}.check-list li,.note-list li{position:relative;padding-left:28px;margin:11px 0;color:var(--muted)}.check-list li:before{content:"✓";position:absolute;left:0;top:0;color:#10a66a;font-weight:900}.note-list li:before{content:"°";position:absolute;left:2px;top:0;color:var(--red);font-weight:900}.note-card{background:#fffdfd}.note-card h3{margin-bottom:14px}.detail-cta{text-align:center;padding:80px 20px 30px}.detail-cta h2{margin-bottom:8px}.detail-cta p{color:var(--muted)}.related{margin-top:60px}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.related-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;transition:.2s}.related-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.related-image{height:230px;background-size:cover;background-position:center}.related-card strong,.related-card span{display:block;padding:0 16px}.related-card strong{padding-top:14px}.related-card span{padding-bottom:16px;color:var(--red);font-weight:800;font-size:13px}
@media(max-width:800px){.detail-hero-image{height:330px}.detail-two-col{grid-template-columns:1fr;gap:25px}.included-grid,.related-grid{grid-template-columns:1fr}.detail-gallery{grid-template-columns:1fr 1fr}.detail-heading{align-items:start;flex-direction:column;gap:8px}}
@media(max-width:600px){.inner-hero{padding:125px 0 55px}.detail-page{padding-top:45px}.detail-hero-image{height:250px;border-radius:16px}.detail-gallery{grid-template-columns:1fr}.detail-gallery img{height:220px}.detail-mini-gallery img{height:140px}.included-card{padding:20px}.detail-cta{padding-top:60px}}

/* =========================================================
   VIEW ALL PACKAGES — TETAP DI HALAMAN HOME
   Tombol tidak pindah ke halaman lain.
   Paket tambahan muncul dengan animasi.
   ========================================================= */
.package-grid-more{
  display:grid;
  max-height:0;
  opacity:0;
  overflow:hidden;
  transform:translateY(-12px);
  transition:max-height .65s ease, opacity .35s ease, transform .45s ease, margin-top .45s ease;
  margin-top:0;
}
.package-grid-more.show{
  max-height:5000px;
  opacity:1;
  transform:translateY(0);
  margin-top:22px;
}
.packages-toggle{
  cursor:pointer;
  font:inherit;
  background:#fff;
}
.packages-toggle:hover{
  background:var(--red);
  color:#fff;
}
@media(max-width:900px){
  .package-grid-more{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:700px){
  .package-grid-more{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   MOBILE BOTTOM NAVIGATION
   Referensi: menu bawah 4 item dengan ikon + label.
   Desktop tidak terpengaruh.
   ========================================================= */
.mobile-bottom-nav,
.mobile-more-sheet,
.mobile-more-backdrop{
  display:none;
}

@media(max-width:700px){
  body{
    padding-bottom:76px;
  }

  /* Menu bawah putih/cream seperti referensi, fixed di layar. */
  .mobile-bottom-nav{
    position:fixed;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    left:0;
    right:0;
    bottom:0;
    height:72px;
    z-index:90;
    background:rgba(255,250,250,.97);
    border-top:1px solid rgba(16,24,32,.08);
    box-shadow:0 -8px 25px rgba(16,24,32,.08);
    backdrop-filter:blur(14px);
  }

  .mobile-nav-item{
    border:0;
    background:transparent;
    color:#8a96a4;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    font-size:10px;
    font-weight:600;
    line-height:1.2;
    min-width:0;
    white-space:nowrap;
    cursor:pointer;
    transition:color .2s ease, transform .2s ease;
    padding:7px 1px 5px;
  }

  .mobile-nav-item > span:last-child{
    font-size:10px;
    letter-spacing:-.15px;
    max-width:100%;
  }

  .mobile-nav-item:hover,
  .mobile-nav-item.active{
    color:var(--red);
  }

  .mobile-nav-item:active{
    transform:scale(.94);
  }

  .mobile-nav-icon{
    width:23px;
    height:23px;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .mobile-nav-icon svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }

  /* Backdrop sangat tipis; panel tetap hanya di area bawah. */
  .mobile-more-backdrop{
    position:fixed;
    inset:0;
    z-index:95;
    background:rgba(8,20,25,.16);
    opacity:0;
    pointer-events:none;
    transition:opacity .25s ease;
  }

  .mobile-more-backdrop.show{
    display:block;
    opacity:1;
    pointer-events:auto;
  }

  /* Panel menempel tepat di atas bottom nav. */
  .mobile-more-sheet{
    position:fixed;
    left:0;
    right:0;
    bottom:72px;
    z-index:100;
    display:block;
    background:#fff;
    border-radius:20px 20px 0 0;
    border:1px solid rgba(16,24,32,.08);
    box-shadow:0 -14px 35px rgba(16,24,32,.12);
    padding:9px 16px 14px;
    transform:translateY(calc(100% + 30px));
    opacity:0;
    pointer-events:none;
    transition:transform .3s cubic-bezier(.2,.8,.2,1), opacity .22s ease;
  }

  .mobile-more-sheet.show{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }

  .mobile-sheet-handle{
    width:42px;
    height:4px;
    border-radius:99px;
    background:#c8c1bb;
    margin:0 auto 10px;
  }

  .mobile-sheet-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 2px 8px;
  }

  .mobile-sheet-head strong{
    font-size:17px;
    color:var(--ink);
  }

  .mobile-sheet-head button{
    width:32px;
    height:32px;
    border:0;
    border-radius:50%;
    background:#f6f0e8;
    color:var(--ink);
    font-size:22px;
    line-height:1;
    cursor:pointer;
  }

  .mobile-sheet-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
  }

  .mobile-sheet-item{
    min-height:70px;
    border:1px solid #edf0f0;
    border-radius:13px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    color:var(--ink);
    font-size:12px;
    font-weight:700;
    transition:.2s;
  }

  .mobile-sheet-item:hover{
    border-color:rgba(226,13,23,.25);
    color:var(--red);
    transform:translateY(-2px);
  }

  .sheet-icon{
    width:31px;
    height:31px;
    border-radius:10px;
    background:#f7f1e8;
    color:#087f8c;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .sheet-icon svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }

  .sheet-wa{
    color:#25d366;
  }

  /* Floating WhatsApp dinaikkan agar tidak bertabrakan dengan nav. */
  .floating-wa{
    bottom:88px;
    width:54px;
    height:54px;
  }
}

/* =========================================================
   CONTACT YANG JELAS
   Setiap kontak memiliki label + nilai kontak.
   ========================================================= */
.contact-info-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-top:30px;
}
.contact-info-card{
  display:flex;
  align-items:center;
  gap:14px;
  padding:20px 17px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  color:var(--ink);
  box-shadow:0 8px 25px rgba(16,24,32,.05);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.contact-info-card:hover{
  transform:translateY(-3px);
  border-color:rgba(226,13,23,.2);
  box-shadow:0 12px 30px rgba(16,24,32,.09);
}
.contact-info-icon{
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff1f1;
  color:var(--red);
  font-weight:800;
  font-size:18px;
}
.contact-info-icon.whatsapp-icon{
  background:#eafaf0;
  color:#20b85a;
  font-size:13px;
}
.contact-info-text{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.contact-info-text strong{
  font-size:13px;
  color:var(--ink);
}
.contact-info-text span{
  font-size:13px;
  color:var(--muted);
  overflow-wrap:anywhere;
}
.footer-contact-clear{
  display:flex;
  flex-direction:column;
  gap:9px;
}
.footer-contact-clear h3{
  margin-bottom:4px;
}
.footer-contact-clear a{
  color:inherit;
  font-size:13px;
  line-height:1.45;
}
.footer-contact-clear a:hover{
  color:var(--red);
}
.footer-contact-clear strong{
  color:inherit;
}
@media(max-width:950px){
  .contact-info-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .contact-info-grid{grid-template-columns:1fr}
  .contact-info-card{padding:17px}
}

/* =========================================================
   CONTACT PREMIUM — IKON + NILAI
   ========================================================= */
.contact-info-card{
  min-height:78px;
  padding:18px 20px;
  gap:14px;
}
.contact-info-icon{
  flex:0 0 44px;
  width:44px;
  height:44px;
  border-radius:13px;
  background:#f7f8fa;
  border:1px solid #edf0f3;
}
.contact-info-icon img{
  width:23px;
  height:23px;
  object-fit:contain;
  display:block;
}
.contact-info-value{
  min-width:0;
  color:var(--ink);
  font-size:13.5px;
  line-height:1.45;
  font-weight:650;
  overflow-wrap:anywhere;
}
.contact-info-card:hover .contact-info-icon{background:#fff4f4;border-color:#f4d8d8}
.footer-contact-clear{gap:11px}
.footer-contact-clear a{
  display:flex;
  align-items:flex-start;
  gap:11px;
  margin:0;
  padding:2px 0;
  color:rgba(255,255,255,.72);
}
.footer-contact-clear a img{
  flex:0 0 18px;
  width:18px;
  height:18px;
  object-fit:contain;
  margin-top:1px;
}
.footer-contact-clear a span{
  color:inherit;
  font-size:13px;
  line-height:1.5;
}
.footer-contact-clear a:hover{color:#fff}
.footer-wechat{
  margin-top:10px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.1);
}
.wechat-mini-head{
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:10px;
  color:rgba(255,255,255,.8);
  font-size:12px;
  font-weight:650;
}
.wechat-dot{
  width:22px;
  height:22px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:#0b1116;
  font-size:11px;
  font-weight:800;
}
.wechat-mini-head .wechat-icon{
  width:18px;
  height:18px;
  flex:0 0 18px;
  object-fit:contain;
}
.footer-wechat img{
  display:block;
  width:160px;
  height:160px;
  object-fit:cover;
  padding:5px;
  background:#fff;
  border-radius:10px;
}
@media(max-width:600px){
  .contact-info-card{min-height:72px;padding:16px}
  .footer-wechat img{width:160px;height:160px}
}

/* Avatar testimonial otomatis jika foto belum diisi. */
.testimonial-initials{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e20d17,#101820);color:#fff;font-size:18px;font-weight:900;letter-spacing:.04em}

/* Foto kartu paket: menggunakan <img> agar JPG/JPEG/PNG/WEBP/AVIF lebih mudah diganti dari content.js. */
.package-image-link{display:block}
.package-image{overflow:hidden}
.package-image>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.package-image>span{z-index:3}
.booking-note-card{background:#fff}


/* Multilingual selector: one in-flow header widget, positioned in the desktop gap and beside the logo on mobile. */
.nav-wrap{position:relative}
.language-switcher{position:absolute!important;left:50%;top:50%;transform:translate(-50%,-50%);z-index:60;display:flex;align-items:center;justify-content:center;width:112px;min-width:0;margin:0!important;font-size:12px;line-height:1.2}
.language-switcher .gt_switcher{width:112px!important;max-width:112px!important;font-family:inherit!important;box-shadow:0 3px 12px rgba(0,0,0,.10)!important}
.language-switcher .gt_selected a,.language-switcher a{font-family:inherit!important;font-size:12px!important;line-height:1.2!important}
.language-switcher img{width:16px!important;height:auto!important}
.language-switcher .gt_option{max-height:60vh;overflow-y:auto;z-index:999!important}
@media(max-width:1100px) and (min-width:701px){.language-switcher{left:42%;width:100px}.language-switcher .gt_switcher{width:100px!important;max-width:100px!important}.main-nav{gap:16px}.brand img{width:180px}}
@media(max-width:700px){.nav-wrap{justify-content:space-between;gap:0}.brand{flex:0 1 auto;min-width:0}.brand img{max-width:165px}.language-switcher{left:auto!important;right:12px!important;top:50%!important;transform:translateY(-50%)!important;width:94px;max-width:94px}.language-switcher .gt_switcher{width:94px!important;max-width:94px!important}.language-switcher .gt_selected a,.language-switcher a{padding:5px 6px!important;font-size:11px!important}.language-switcher .gt_option{max-width:170px!important;right:0!important;left:auto!important}}
@media(max-width:380px){.brand img{max-width:145px}.language-switcher{right:8px!important;width:86px;max-width:86px}.language-switcher .gt_switcher{width:86px!important;max-width:86px!important}}
/* Arabic RTL: keep global site chrome in its original LTR positions; only readable content flows RTL. */
html.translated-rtl body,body.translated-rtl{direction:ltr}
html.translated-rtl .site-header,html.translated-rtl .site-header *,html.translated-rtl .mobile-bottom-nav,html.translated-rtl .main-nav,html.translated-rtl .brand,html.translated-rtl .language-switcher{direction:ltr}
html.translated-rtl main,html.translated-rtl main p,html.translated-rtl main li,html.translated-rtl main h1,html.translated-rtl main h2,html.translated-rtl main h3,html.translated-rtl main blockquote,html.translated-rtl .footer-content{direction:rtl;text-align:right}
html.translated-rtl .brand img{object-position:center}
/* Dropdown options show the widget's language names and flags; keep enough width for readable names. */
.language-switcher .gt_switcher{width:164px!important;max-width:164px!important;border-radius:9px!important;overflow:visible!important;background:#fff!important}
.language-switcher .gt_selected a{display:flex!important;align-items:center;gap:7px;min-height:38px;padding:8px 10px!important;background:#fff!important;border:1px solid #e5e7eb!important;border-radius:9px!important;color:#202833!important;font-weight:700!important;box-shadow:0 4px 14px rgba(20,30,40,.12)!important}
.language-switcher .gt_option{width:220px!important;max-width:min(220px,85vw)!important;max-height:60vh!important;overflow-y:auto!important;background:#fff!important;border:1px solid #e5e7eb!important;border-radius:10px!important;box-shadow:0 12px 28px rgba(20,30,40,.18)!important}
.language-switcher .gt_option a{display:flex!important;align-items:center;gap:9px;padding:8px 12px!important;color:#202833!important;text-decoration:none!important;white-space:nowrap!important}
.language-switcher .gt_option a:hover{background:#f3f6f8!important}
@media(max-width:1100px) and (min-width:701px){.language-switcher .gt_switcher{width:150px!important;max-width:150px!important}}
@media(max-width:700px){.language-switcher .gt_switcher{width:112px!important;max-width:112px!important}.language-switcher .gt_option{width:205px!important;max-width:82vw!important}}
@media(max-width:380px){.language-switcher .gt_switcher{width:104px!important;max-width:104px!important}}


/* Custom language selector inspired by the supplied reference; the official GTranslate widget remains the translation engine. */
.language-switcher.sbt-language-switcher{position:absolute!important;left:50%!important;right:auto!important;top:50%!important;transform:translate(-50%,-50%)!important;width:auto!important;max-width:none!important;z-index:100!important;margin:0!important}
.sbt-language-switcher .gt_switcher{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;opacity:0!important;pointer-events:none!important}
.sbt-lang-ui{position:relative;font-family:inherit;}
.sbt-lang-trigger{display:flex;align-items:center;justify-content:center;gap:10px;min-width:92px;height:48px;padding:0 17px;border:0;border-radius:999px;background:#fff;color:#29323d;box-shadow:0 5px 18px rgba(16,24,32,.14);cursor:pointer;font:700 16px/1 inherit}
.sbt-globe{font-size:25px;line-height:1;color:#52606d}.sbt-current-flag{font-size:25px;line-height:1}
.sbt-lang-panel{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);width:300px;max-width:min(300px,88vw);max-height:min(72vh,650px);overflow-y:auto;padding:9px;background:#fff;border:1px solid rgba(20,30,40,.08);border-radius:16px;box-shadow:0 18px 42px rgba(10,20,30,.22);z-index:9999}
.sbt-lang-panel[hidden]{display:none!important}
.sbt-lang-option{display:grid;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:10px;width:100%;min-height:66px;padding:12px 14px;border:0;border-radius:10px;background:#fff;text-align:left;color:#303944;cursor:pointer;font:400 20px/1.25 inherit}
.sbt-lang-flag{font-size:34px;line-height:1;text-align:center}.sbt-lang-name{overflow:hidden;text-overflow:ellipsis}.sbt-lang-check{visibility:hidden;color:#3169b5;font-size:27px;text-align:center}.sbt-lang-option:hover{background:#f5f8fc}.sbt-lang-option.is-active{background:#edf4ff;color:#2459a6}.sbt-lang-option.is-active .sbt-lang-check{visibility:visible}
@media(max-width:1100px) and (min-width:701px){.language-switcher.sbt-language-switcher{left:52%!important}.sbt-lang-trigger{min-width:84px;height:44px;padding:0 13px}}
@media(max-width:700px){.language-switcher.sbt-language-switcher{left:auto!important;right:10px!important;top:50%!important;transform:translateY(-50%)!important}.brand{max-width:calc(100% - 112px)}.brand img{max-width:100%!important}.sbt-lang-trigger{min-width:76px;height:40px;padding:0 10px;gap:7px}.sbt-globe,.sbt-current-flag{font-size:21px}.sbt-lang-panel{left:auto;right:0;transform:none;width:290px;max-width:calc(100vw - 28px);max-height:70vh}.sbt-lang-option{min-height:58px;font-size:18px}.sbt-lang-flag{font-size:30px}}
@media(max-width:380px){.language-switcher.sbt-language-switcher{right:7px!important}.brand{max-width:calc(100% - 96px)}.sbt-lang-trigger{min-width:68px;padding:0 8px;gap:5px}}
/* RTL applies to reading content only; never mirror the header, logo, selector, or navigation. */
html.translated-rtl .brand img{object-position:left center}


/* Reference-matched language menu: roomy flag-and-native-name rows, especially on mobile. */
.sbt-lang-trigger{min-width:104px;height:50px;gap:12px;padding:0 18px}
.sbt-globe{font-size:27px}
.sbt-lang-panel{width:340px;max-width:min(340px,90vw);padding:10px;border-radius:16px}
.sbt-lang-option{grid-template-columns:54px minmax(0,1fr) 24px;min-height:72px;padding:13px 14px;gap:10px;font-size:21px}
.sbt-lang-flag{font-size:36px}
@media(max-width:700px){
  .sbt-lang-panel{position:fixed;top:118px;left:6px;right:6px;bottom:auto;transform:none;width:auto;max-width:none;max-height:calc(100dvh - 132px);padding:10px;border-radius:15px;overflow-y:auto}
  .sbt-lang-option{grid-template-columns:60px minmax(0,1fr) 28px;min-height:88px;padding:15px 16px;font-size:23px;gap:10px}
  .sbt-lang-flag{font-size:39px}
  .sbt-lang-check{font-size:29px}
}
@media(max-width:380px){.sbt-lang-panel{left:4px;right:4px}.sbt-lang-option{min-height:78px;font-size:21px;grid-template-columns:52px minmax(0,1fr) 24px}.sbt-lang-flag{font-size:34px}}


/* Hide every visible native GTranslate control; the custom SBT menu is the sole UI. Keep controls in the DOM for programmatic switching. */
.sbt-language-switcher .gt_switcher,
.sbt-language-switcher .gt_selector,
.sbt-language-switcher select,
.sbt-language-switcher .gt_options,
.sbt-language-switcher .gt_option {
  position:absolute!important; left:-10000px!important; top:0!important; width:1px!important; height:1px!important; min-width:1px!important; max-width:1px!important; max-height:1px!important; padding:0!important; margin:0!important; border:0!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; clip-path:inset(50%)!important; opacity:0!important; visibility:hidden!important; pointer-events:none!important; box-shadow:none!important;
}
.sbt-language-switcher .sbt-lang-ui { position:relative; z-index:1000; }


/* Keep GTranslate as a hidden translation engine only; the visible SBT custom selector is separate. */
.sbt-gt-engine{position:absolute!important;left:-10000px!important;top:0!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;z-index:-1!important}
.sbt-gt-engine *{max-width:1px!important;max-height:1px!important}
.language-switcher.sbt-language-switcher{display:block!important}
.sbt-lang-ui-host{position:relative}

/* Final mobile language-menu sizing fix: keep the custom panel wide and readable. */
.sbt-language-switcher .sbt-lang-ui { position: relative !important; width: auto !important; height: auto !important; overflow: visible !important; }
.sbt-language-switcher .sbt-lang-trigger { position: relative !important; display: inline-flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; width: auto !important; max-width: none !important; }
.sbt-language-switcher .sbt-lang-panel { box-sizing: border-box !important; width: 320px !important; min-width: 280px !important; max-width: calc(100vw - 24px) !important; }
.sbt-language-switcher .sbt-lang-option { box-sizing: border-box !important; display: grid !important; grid-template-columns: 44px minmax(0,1fr) 24px !important; width: 100% !important; min-width: 0 !important; min-height: 58px !important; font-size: 18px !important; white-space: normal !important; }
.sbt-language-switcher .sbt-lang-flag { display: block !important; width: 44px !important; font-size: 29px !important; }
.sbt-language-switcher .sbt-lang-name { display: block !important; min-width: 0 !important; overflow: visible !important; text-overflow: clip !important; white-space: normal !important; overflow-wrap: anywhere !important; font-size: 18px !important; }
@media (max-width:700px) {
  .sbt-language-switcher .sbt-lang-panel { position: fixed !important; top: 92px !important; left: 12px !important; right: 12px !important; bottom: auto !important; transform: none !important; width: auto !important; min-width: 0 !important; max-width: none !important; max-height: calc(100dvh - 108px) !important; overflow-y: auto !important; padding: 8px !important; }
  .sbt-language-switcher .sbt-lang-option { grid-template-columns: 48px minmax(0,1fr) 24px !important; min-height: 58px !important; padding: 10px 12px !important; gap: 8px !important; font-size: 18px !important; }
  .sbt-language-switcher .sbt-lang-flag { width: 48px !important; font-size: 30px !important; }
  .sbt-language-switcher .sbt-lang-name { font-size: 18px !important; }
}
@media (max-width:380px) {
  .sbt-language-switcher .sbt-lang-panel { left: 8px !important; right: 8px !important; }
  .sbt-language-switcher .sbt-lang-option { min-height: 54px !important; grid-template-columns: 42px minmax(0,1fr) 22px !important; }
  .sbt-language-switcher .sbt-lang-flag { width: 42px !important; font-size: 27px !important; }
}

/* Final compact mobile dropdown override: readable names, flags, and a bounded panel. */
@media (max-width: 700px) {
  .sbt-language-switcher .sbt-lang-panel {
    position: fixed !important;
    top: 76px !important;
    left: auto !important;
    right: 12px !important;
    bottom: auto !important;
    transform: none !important;
    width: 272px !important;
    min-width: 0 !important;
    max-width: calc(100vw - 24px) !important;
    max-height: 62vh !important;
    padding: 7px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border-radius: 14px !important;
    box-sizing: border-box !important;
  }
  .sbt-language-switcher .sbt-lang-option {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) 20px !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 46px !important;
    padding: 8px 9px !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    box-sizing: border-box !important;
  }
  .sbt-language-switcher .sbt-lang-flag {
    width: 36px !important;
    font-size: 25px !important;
    line-height: 1 !important;
  }
  .sbt-language-switcher .sbt-lang-name {
    min-width: 0 !important;
    font-size: 15px !important;
    line-height: 1.3 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    white-space: normal !important;
  }
  .sbt-language-switcher .sbt-lang-check { font-size: 21px !important; }
}
@media (max-width: 380px) {
  .sbt-language-switcher .sbt-lang-panel {
    right: 8px !important;
    width: 260px !important;
    max-width: calc(100vw - 16px) !important;
  }
}


/* Desktop header final placement: language selector follows BOOK NOW; mobile stays beside logo. */
@media (min-width: 701px) {
  .nav-wrap { display:flex !important; align-items:center !important; justify-content:flex-start !important; gap:22px !important; }
  .nav-wrap > .brand { flex:0 0 auto !important; }
  .nav-wrap > .main-nav { margin-left:auto !important; flex:0 1 auto !important; gap:clamp(12px, 1.5vw, 24px) !important; }
  .nav-wrap > .language-switcher.sbt-language-switcher { position:relative !important; inset:auto !important; transform:none !important; flex:0 0 auto !important; margin-left:0 !important; order:3 !important; }
  .sbt-language-switcher .sbt-lang-trigger { height:42px !important; min-width:76px !important; padding:0 12px !important; }
}
@media (max-width: 1100px) and (min-width:701px) {
  .nav-wrap { gap:12px !important; }
  .nav-wrap > .main-nav { gap:12px !important; font-size:12px !important; }
  .brand img { width:160px !important; }
}
@media (max-width:700px) {
  .nav-wrap { position:relative !important; justify-content:space-between !important; gap:0 !important; }
  .nav-wrap > .language-switcher.sbt-language-switcher { position:absolute !important; left:auto !important; right:10px !important; top:50% !important; transform:translateY(-50%) !important; margin:0 !important; }
}
