/* ========================================================================== 
   MBG Ads PRO V4.3.2 — Global Ad Element Consistency + Universal Hero Zoom
   Scope: MIMBAR PROMOSI directory + detail only. Never NEWS/general WP pages.
   Goals:
   - one visual rhythm for ad cards and every detail schema
   - consistent hero/gallery geometry
   - restrained, comfortable typography and colors
   - consistent thumbnail, title, price, metadata and section sizing
   ========================================================================== */

:root{
  --mbg-ad-ink:#17314a;
  --mbg-ad-ink-strong:#102a43;
  --mbg-ad-text:#42566b;
  --mbg-ad-muted:#6f8092;
  --mbg-ad-soft:#f5f7fa;
  --mbg-ad-border:#e1e8ef;
  --mbg-ad-accent:#d91f32;
  --mbg-ad-blue:#0b63b6;
  --mbg-ad-radius:12px;
  --mbg-ad-title-size:28px;
  --mbg-ad-section-size:18px;
  --mbg-ad-body-size:14px;
  --mbg-ad-meta-size:11px;
  --mbg-ad-price-size:27px;
}

/* --------------------------------------------------------------------------
   DIRECTORY /IKLAN/ — consistent cards
   -------------------------------------------------------------------------- */
.mbg-ads-directory .mbg-dir-card{
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  border-radius:14px!important;
  border:1px solid var(--mbg-ad-border)!important;
  background:#fff!important;
  overflow:hidden!important;
  box-shadow:0 6px 18px rgba(20,45,68,.055)!important;
}
.mbg-ads-directory .mbg-dir-card-media{
  position:relative!important;
  width:100%!important;
  aspect-ratio:16/10!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
  background:#e9eef3!important;
}
.mbg-ads-directory .mbg-dir-card-media>a,
.mbg-ads-directory .mbg-dir-card-media>a>img,
.mbg-ads-directory .mbg-dir-card-media .mbg-dir-card-image{
  width:100%!important;
  height:100%!important;
  display:block!important;
}
.mbg-ads-directory .mbg-dir-card-media img{
  object-fit:cover!important;
  object-position:center center!important;
  transition:transform .28s ease!important;
}
@media (hover:hover) and (pointer:fine){
  .mbg-ads-directory .mbg-dir-card:hover .mbg-dir-card-media img{transform:scale(1.035)!important}
}
.mbg-ads-directory .mbg-dir-card-body{
  flex:1 1 auto!important;
  display:flex!important;
  flex-direction:column!important;
  padding:14px!important;
}
.mbg-ads-directory .mbg-dir-card h3,
.mbg-ads-directory .mbg-dir-card-title{
  min-height:42px!important;
  margin:8px 0 7px!important;
  font-size:15px!important;
  line-height:1.38!important;
  font-weight:780!important;
  letter-spacing:-.01em!important;
  color:var(--mbg-ad-ink-strong)!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  overflow:hidden!important;
}
.mbg-ads-directory .mbg-dir-card h3 a,
.mbg-ads-directory .mbg-dir-card-title a{color:inherit!important;text-decoration:none!important;font:inherit!important}
.mbg-ads-directory .mbg-dir-category{font-size:9.5px!important;line-height:1.25!important;font-weight:750!important}
.mbg-ads-directory .mbg-dir-price,
.mbg-ads-directory .mbg-dir-price-promo{font-size:17px!important;line-height:1.2!important;font-weight:820!important;color:var(--mbg-ad-accent)!important}
.mbg-ads-directory .mbg-dir-price-old{font-size:10.5px!important;color:#8a97a5!important}
.mbg-ads-directory .mbg-dir-card-meta-row{font-size:10px!important;line-height:1.4!important;color:var(--mbg-ad-muted)!important}
.mbg-ads-directory .mbg-dir-detail{margin-top:auto!important;font-size:11px!important;font-weight:760!important}

/* --------------------------------------------------------------------------
   DETAIL — master typography across Property/Hotel/Auto/Service/Boarding/etc.
   -------------------------------------------------------------------------- */
body.mbg-ads-detail-page .mbg-ad-detail-shell{
  color:var(--mbg-ad-text)!important;
  font-size:var(--mbg-ad-body-size)!important;
  line-height:1.68!important;
}
body.mbg-ads-detail-page .mbg-ad-detail-shell h1,
body.mbg-ads-detail-page .mbg-property-title-block h1,
body.mbg-ads-detail-page .mbg-hotel-title-block h1,
body.mbg-ads-detail-page .mbg-auto-title-block h1,
body.mbg-ads-detail-page .mbg-service-title-card h1,
body.mbg-ads-detail-page .mbg-boarding-title-card h1,
body.mbg-ads-detail-page .mbg-ad-summary-card h1{
  color:var(--mbg-ad-ink-strong)!important;
  font-size:var(--mbg-ad-title-size)!important;
  line-height:1.22!important;
  font-weight:800!important;
  letter-spacing:-.022em!important;
}
body.mbg-ads-detail-page .mbg-ad-detail-shell h2,
body.mbg-ads-detail-page .mbg-property-section-title h2,
body.mbg-ads-detail-page .mbg-property-card-title h2,
body.mbg-ads-detail-page .mbg-hotel-detail-v3100 h2,
body.mbg-ads-detail-page .mbg-auto-card h2,
body.mbg-ads-detail-page .mbg-auto-seller-card h2,
body.mbg-ads-detail-page .mbg-auto-related h2,
body.mbg-ads-detail-page .mbg-ad-section-head h2{
  color:var(--mbg-ad-ink)!important;
  font-size:var(--mbg-ad-section-size)!important;
  line-height:1.35!important;
  font-weight:780!important;
  letter-spacing:-.01em!important;
}
body.mbg-ads-detail-page .mbg-ad-description-content,
body.mbg-ads-detail-page .mbg-property-info-card .mbg-ad-description-content,
body.mbg-ads-detail-page .mbg-auto-about>div,
body.mbg-ads-detail-page .mbg-hotel-detail-v3100 p,
body.mbg-ads-detail-page .mbg-service-detail-hero p,
body.mbg-ads-detail-page .mbg-boarding-detail-hero p{
  color:var(--mbg-ad-text)!important;
  font-size:var(--mbg-ad-body-size)!important;
  line-height:1.72!important;
}
body.mbg-ads-detail-page .mbg-ad-detail-meta,
body.mbg-ads-detail-page .mbg-property-meta-pills,
body.mbg-ads-detail-page .mbg-auto-meta{
  color:var(--mbg-ad-muted)!important;
  font-size:var(--mbg-ad-meta-size)!important;
  line-height:1.5!important;
}
body.mbg-ads-detail-page .mbg-ad-detail-price strong,
body.mbg-ads-detail-page .mbg-property-price-row strong,
body.mbg-ads-detail-page .mbg-auto-price-row strong{
  color:var(--mbg-ad-accent)!important;
  font-size:var(--mbg-ad-price-size)!important;
  line-height:1.08!important;
  font-weight:840!important;
  letter-spacing:-.025em!important;
}

/* --------------------------------------------------------------------------
   MASTER HERO / GALLERY — one geometry for every product/ad schema
   Desktop 16:10, same crop behavior, same thumbnail rhythm.
   -------------------------------------------------------------------------- */
body.mbg-ads-detail-page .mbg-property-gallery-card .mbg-ad-main-photo,
body.mbg-ads-detail-page .mbg-hotel-gallery-card .mbg-hotel-main-photo,
body.mbg-ads-detail-page .mbg-ad-gallery-panel .mbg-ad-main-photo,
body.mbg-ads-detail-page .mbg-auto-hero-stage{
  position:relative!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:16/10!important;
  overflow:hidden!important;
  border-radius:var(--mbg-ad-radius)!important;
  background:#e9eef3!important;
  box-sizing:border-box!important;
}
body.mbg-ads-detail-page .mbg-property-gallery-card .mbg-ad-main-photo>img,
body.mbg-ads-detail-page .mbg-hotel-gallery-card .mbg-hotel-main-photo>img,
body.mbg-ads-detail-page .mbg-ad-gallery-panel .mbg-ad-main-photo>img,
body.mbg-ads-detail-page .mbg-auto-hero-stage>.mbg-auto-main-image{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  background:#e9eef3!important;
}

/* Unified thumb proportions regardless of schema. */
body.mbg-ads-detail-page .mbg-property-thumb-grid .mbg-ad-gallery-thumb,
body.mbg-ads-detail-page .mbg-hotel-thumb-grid .mbg-ad-gallery-thumb,
body.mbg-ads-detail-page .mbg-ad-thumb-grid .mbg-ad-gallery-thumb,
body.mbg-ads-detail-page .mbg-auto-thumbs .mbg-ad-gallery-thumb{
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  aspect-ratio:16/10!important;
  border-radius:8px!important;
  overflow:hidden!important;
}
body.mbg-ads-detail-page .mbg-property-thumb-grid .mbg-ad-gallery-thumb img,
body.mbg-ads-detail-page .mbg-hotel-thumb-grid .mbg-ad-gallery-thumb img,
body.mbg-ads-detail-page .mbg-ad-thumb-grid .mbg-ad-gallery-thumb img,
body.mbg-ads-detail-page .mbg-auto-thumbs .mbg-ad-gallery-thumb img{
  width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;
}

/* Calm hover/zoom.  The JS already applies this to every data-mbg-detail-gallery. */
@media (hover:hover) and (pointer:fine){
  body.mbg-ads-detail-page [data-mbg-detail-gallery].mbg-gallery-zooming .mbg-ad-main-image,
  body.mbg-ads-detail-page [data-mbg-detail-gallery].mbg-gallery-zooming .mbg-auto-main-image{
    transform:scale(1.08)!important;
  }
  body.mbg-ads-detail-page [data-mbg-detail-gallery] [data-mbg-gallery-thumb]:hover{
    transform:translateY(-2px) scale(1.015)!important;
  }
}

/* Cards/sections: same radius, border and restrained shadow. */
body.mbg-ads-detail-page .mbg-ad-gallery-panel,
body.mbg-ads-detail-page .mbg-ad-summary-card,
body.mbg-ads-detail-page .mbg-ad-description-card,
body.mbg-ads-detail-page .mbg-property-gallery-card,
body.mbg-ads-detail-page .mbg-property-info-card,
body.mbg-ads-detail-page .mbg-property-seller-card,
body.mbg-ads-detail-page .mbg-property-safety-card,
body.mbg-ads-detail-page .mbg-hotel-gallery-card,
body.mbg-ads-detail-page .mbg-auto-card,
body.mbg-ads-detail-page .mbg-auto-seller-card,
body.mbg-ads-detail-page .mbg-auto-related{
  border-color:var(--mbg-ad-border)!important;
  border-radius:var(--mbg-ad-radius)!important;
  box-shadow:0 5px 16px rgba(20,45,68,.05)!important;
}

@media(max-width:980px){
  :root{--mbg-ad-title-size:25px;--mbg-ad-section-size:17px;--mbg-ad-price-size:25px}
}
@media(max-width:640px){
  :root{--mbg-ad-title-size:21px;--mbg-ad-section-size:16px;--mbg-ad-body-size:13.5px;--mbg-ad-meta-size:10px;--mbg-ad-price-size:23px}
  body.mbg-ads-detail-page .mbg-property-gallery-card .mbg-ad-main-photo,
  body.mbg-ads-detail-page .mbg-hotel-gallery-card .mbg-hotel-main-photo,
  body.mbg-ads-detail-page .mbg-ad-gallery-panel .mbg-ad-main-photo,
  body.mbg-ads-detail-page .mbg-auto-hero-stage{
    aspect-ratio:4/3!important;
    border-radius:10px!important;
  }
  .mbg-ads-directory .mbg-dir-card-media{aspect-ratio:16/10!important}
  .mbg-ads-directory .mbg-dir-card h3,.mbg-ads-directory .mbg-dir-card-title{font-size:14px!important;min-height:39px!important}
}

@media(prefers-reduced-motion:reduce){
  .mbg-ads-directory .mbg-dir-card-media img{transition:none!important}
}


/* --------------------------------------------------------------------------
   V4.3.1 — UNIVERSAL HERO TOUCH ZOOM
   - Applies to every detail schema using data-mbg-detail-gallery.
   - Works with one image or many images.
   - Desktop: pointer hover zoom remains subtle.
   - Touch: one clean tap toggles a stronger focused zoom; second tap resets.
   - Parent hero remains clipped, so zoom never changes page geometry.
   -------------------------------------------------------------------------- */
body.mbg-ads-detail-page [data-mbg-detail-gallery]{
  cursor:zoom-in;
}
body.mbg-ads-detail-page [data-mbg-detail-gallery] .mbg-ad-main-image,
body.mbg-ads-detail-page [data-mbg-detail-gallery] .mbg-auto-main-image{
  transition:transform .24s ease, transform-origin .12s linear!important;
  will-change:transform;
}
body.mbg-ads-detail-page [data-mbg-detail-gallery].mbg-gallery-touch-zooming{
  cursor:zoom-out;
}
body.mbg-ads-detail-page [data-mbg-detail-gallery].mbg-gallery-touch-zooming .mbg-ad-main-image,
body.mbg-ads-detail-page [data-mbg-detail-gallery].mbg-gallery-touch-zooming .mbg-auto-main-image{
  transform:scale(1.52)!important;
}
@media (hover:hover) and (pointer:fine){
  body.mbg-ads-detail-page [data-mbg-detail-gallery].mbg-gallery-zooming .mbg-ad-main-image,
  body.mbg-ads-detail-page [data-mbg-detail-gallery].mbg-gallery-zooming .mbg-auto-main-image{
    transform:scale(1.10)!important;
  }
}
@media (max-width:640px){
  body.mbg-ads-detail-page [data-mbg-detail-gallery].mbg-gallery-touch-zooming .mbg-ad-main-image,
  body.mbg-ads-detail-page [data-mbg-detail-gallery].mbg-gallery-touch-zooming .mbg-auto-main-image{
    transform:scale(1.62)!important;
  }
}
/* Directory cards also give tactile feedback on touch without hijacking the link. */
.mbg-ads-directory .mbg-dir-card-media:active img{
  transform:scale(1.045)!important;
}
@media(prefers-reduced-motion:reduce){
  body.mbg-ads-detail-page [data-mbg-detail-gallery] .mbg-ad-main-image,
  body.mbg-ads-detail-page [data-mbg-detail-gallery] .mbg-auto-main-image{
    transition:none!important;
  }
}


/* --------------------------------------------------------------------------
   V4.3.2 — PROPERTY/LEGACY HERO ZOOM HARDENING
   Covers current + legacy Property/Hotel/Generic/Automotive hero markup even
   when older records/templates are missing data-mbg-detail-gallery initially.
   JS adds the data attribute at runtime; these class fallbacks make the visual
   state independent of that attribute and keep every ad schema consistent.
   -------------------------------------------------------------------------- */
body.mbg-ads-detail-page .mbg-ad-main-photo.mbg-gallery-touch-zooming,
body.mbg-ads-detail-page .mbg-hotel-main-photo.mbg-gallery-touch-zooming,
body.mbg-ads-detail-page .mbg-auto-hero.mbg-gallery-touch-zooming,
body.mbg-ads-detail-page .mbg-auto-hero-stage.mbg-gallery-touch-zooming{
  cursor:zoom-out!important;
}
body.mbg-ads-detail-page .mbg-ad-main-photo.mbg-gallery-touch-zooming .mbg-ad-main-image,
body.mbg-ads-detail-page .mbg-hotel-main-photo.mbg-gallery-touch-zooming .mbg-ad-main-image,
body.mbg-ads-detail-page .mbg-auto-hero.mbg-gallery-touch-zooming .mbg-auto-main-image,
body.mbg-ads-detail-page .mbg-auto-hero-stage.mbg-gallery-touch-zooming .mbg-auto-main-image{
  transform:scale(1.52)!important;
}
@media(max-width:640px){
  body.mbg-ads-detail-page .mbg-ad-main-photo.mbg-gallery-touch-zooming .mbg-ad-main-image,
  body.mbg-ads-detail-page .mbg-hotel-main-photo.mbg-gallery-touch-zooming .mbg-ad-main-image,
  body.mbg-ads-detail-page .mbg-auto-hero.mbg-gallery-touch-zooming .mbg-auto-main-image,
  body.mbg-ads-detail-page .mbg-auto-hero-stage.mbg-gallery-touch-zooming .mbg-auto-main-image{
    transform:scale(1.62)!important;
  }
}


/* V4.3.3 — hard Property hero zoom fallback.
   Targets the actual image, not gallery state, so legacy/free/single-photo
   Property records behave exactly like current product heroes. */
body.mbg-ads-detail-page .mbg-property-gallery-card .mbg-ad-main-photo{
  overflow:hidden!important;
  cursor:zoom-in!important;
  touch-action:pan-y pinch-zoom!important;
}
body.mbg-ads-detail-page .mbg-property-gallery-card .mbg-ad-main-photo>img,
body.mbg-ads-detail-page .mbg-property-gallery-card img.mbg-ad-main-image{
  transition:transform .34s ease, opacity .16s ease!important;
  will-change:transform!important;
  backface-visibility:hidden!important;
}
@media (hover:hover) and (pointer:fine){
  body.mbg-ads-detail-page .mbg-property-gallery-card .mbg-ad-main-photo>img.mbg-property-hard-hover,
  body.mbg-ads-detail-page .mbg-property-gallery-card img.mbg-ad-main-image.mbg-property-hard-hover{
    transform:scale(1.10)!important;
  }
}
body.mbg-ads-detail-page .mbg-property-gallery-card .mbg-ad-main-photo>img.mbg-property-hard-touch,
body.mbg-ads-detail-page .mbg-property-gallery-card img.mbg-ad-main-image.mbg-property-hard-touch{
  transform:scale(1.52)!important;
  cursor:zoom-out!important;
}
@media (max-width:767px){
  body.mbg-ads-detail-page .mbg-property-gallery-card .mbg-ad-main-photo>img.mbg-property-hard-touch,
  body.mbg-ads-detail-page .mbg-property-gallery-card img.mbg-ad-main-image.mbg-property-hard-touch{
    transform:scale(1.62)!important;
  }
}
