.elementor-10 .elementor-element.elementor-element-17c94a4{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-10 .elementor-element.elementor-element-17c94a4.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-10 .elementor-element.elementor-element-6db7238.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-10 .elementor-element.elementor-element-f4c6260{--display:flex;}.elementor-widget-posts .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-posts .elementor-post__title, .elementor-widget-posts .elementor-post__title a{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-posts .elementor-post__meta-data{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-posts .elementor-post__excerpt p{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-posts .elementor-post__read-more{color:var( --e-global-color-accent );}.elementor-widget-posts a.elementor-post__read-more{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-posts .elementor-post__card .elementor-post__badge{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-posts .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-posts .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-10 .elementor-element.elementor-element-19e3969{--grid-row-gap:35px;--grid-column-gap:30px;}.elementor-10 .elementor-element.elementor-element-19e3969 .elementor-posts-container .elementor-post__thumbnail{padding-bottom:calc( 0.66 * 100% );}.elementor-10 .elementor-element.elementor-element-19e3969:after{content:"0.66";}.elementor-10 .elementor-element.elementor-element-19e3969 .elementor-post__thumbnail__link{width:100%;}.elementor-10 .elementor-element.elementor-element-19e3969 .elementor-post__meta-data span + span:before{content:"///";}.elementor-10 .elementor-element.elementor-element-19e3969.elementor-posts--thumbnail-left .elementor-post__thumbnail__link{margin-right:20px;}.elementor-10 .elementor-element.elementor-element-19e3969.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{margin-left:20px;}.elementor-10 .elementor-element.elementor-element-19e3969.elementor-posts--thumbnail-top .elementor-post__thumbnail__link{margin-bottom:20px;}@media(max-width:1024px){.elementor-10 .elementor-element.elementor-element-6db7238{width:var( --container-widget-width, 834px );max-width:834px;--container-widget-width:834px;--container-widget-flex-grow:0;}}@media(min-width:768px){.elementor-10 .elementor-element.elementor-element-17c94a4{--width:95.518%;}}@media(max-width:767px){.elementor-10 .elementor-element.elementor-element-17c94a4{--width:116.812%;--min-height:0px;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-10 .elementor-element.elementor-element-17c94a4.e-con{--flex-grow:1;--flex-shrink:0;}.elementor-10 .elementor-element.elementor-element-6db7238{width:var( --container-widget-width, 340px );max-width:340px;--container-widget-width:340px;--container-widget-flex-grow:0;}.elementor-10 .elementor-element.elementor-element-19e3969 .elementor-posts-container .elementor-post__thumbnail{padding-bottom:calc( 0.5 * 100% );}.elementor-10 .elementor-element.elementor-element-19e3969:after{content:"0.5";}.elementor-10 .elementor-element.elementor-element-19e3969 .elementor-post__thumbnail__link{width:100%;}}/* Start custom CSS for html, class: .elementor-element-6db7238 *//* ===========================
   BRasta Fresh — iPhone Full-Bleed + No-Side-Scroll + Anti-Zoom
   =========================== */

/* 0) Global guard */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;          /* kunci biar ga geser kiri-kanan */
  -webkit-text-size-adjust: 100%; /* cegah auto-zoom teks iOS */
}

/* 1) Matikan batas kontainer tema + Elementor */
.site, .site-main, .content-area, .container, .wrap, .content,
.entry-content, #primary, #content, .page-content,
.elementor-section.elementor-section-boxed > .elementor-container,
.elementor-container {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 2) Kanvas utama tidak membatasi lebar */
.bf-wrap {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 100svh;                  /* tinggi viewport modern */
  min-height: -webkit-fill-available;  /* fallback iOS lama */
}

/* 3) Paksa blok-blok utama full-bleed (tembus gutter tema) */
.bf-header,
.bf-rotator,
.bf-hero,
.bf-cats,
.bf-promo,
.bf-grid,
.bf-map {
  /* trik margin-hack agar benar2 selebar viewport */
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100svw !important;     /* iOS Safari-friendly */
  max-width: 100svw !important;
  padding-left: max(16px, env(safe-area-inset-left, 0));
  padding-right: max(16px, env(safe-area-inset-right, 0));
  overflow-x: hidden !important; /* jaga tiap blok */
}

/* 4) Rotator edge-to-edge */
.bf-rot { overflow: hidden !important; }
.bf-rot-track { display:flex; transition:transform .5s ease; will-change: transform; }
.bf-rot .bf-slide { min-width: 100%; aspect-ratio: 16/6; }
.bf-rot .bf-slide img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}

/* 5) Sticky promo & bottom nav ikut full-bleed & center */
.bf-stickyPromo,
.bf-bottomNav {
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;  /* center */
  width: 100svw !important;
  max-width: 100svw !important;
  margin: 0 !important;
  padding-left: env(safe-area-inset-left, 0);
  padding-right: env(safe-area-inset-right, 0);
}

/* 6) Form & CTA — cegah auto-zoom saat fokus input */
input, select, textarea {
  font-size: 16px !important;   /* ambang iOS */
  line-height: 1.2;
}
/* kurangi peluang double-tap zoom pada elemen klik */
a, button, .bf-btn { touch-action: manipulation; }

/* 7) Hilangkan padding kolom kecil yang suka bikin “nggak full” */
@media (max-width: 767px) {
  .elementor-column, .elementor-widget-wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
  }
}

/* 8) Jika masih ada tepi putih dari parent di beberapa theme */
body .elementor-section,
body .elementor-top-section {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* 9) Khusus #bf-alpukat: 3 kolom rapat */
#bf-alpukat .bf-gridWrap{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
#bf-alpukat .bf-prod .bf-meta{ padding: 8px; }
#bf-alpukat .bf-name{
  font-size: 12px; line-height: 1.2;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
#bf-alpukat .bf-price{ font-size: 12px; }
#bf-alpukat .bf-actions .bf-btn{
  padding: .45rem .5rem; font-size: 12px; border-radius: 10px;
}
@media (min-width:600px){
  #bf-alpukat .bf-gridWrap{ grid-template-columns: repeat(3, 1fr); gap: 12px; }
}

/* === FIX STICKY PROMO — MOBILE ONLY (≤ 767px) === */
@media (max-width: 767px){
  /* Reset semua warisan full-bleed / translate di mobile */
  .bf-stickyPromo{
    position: fixed !important;
    bottom: calc(env(safe-area-inset-bottom, 0) + 12px) !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;           /* matikan translateX(-50%) */
    width: auto !important;               /* jangan 100svw */
    padding: 0 12px !important;           /* inset kiri/kanan */
    z-index: 120 !important;
    display: flex !important;
    justify-content: center !important;
    pointer-events: none !important;      /* klik hanya pada .bf-bar */
  }
  .bf-stickyPromo .bf-bar{
    width: calc(100vw - 24px) !important; /* full lebar - inset 12px */
    max-width: 560px !important;          /* biar proporsional */
    border-radius: 16px !important;
    pointer-events: auto !important;
  }

  /* Hindari horizontal scroll dari sticky */
  html, body { overflow-x: hidden !important; }
}
.bf-stickyPromo .bf-bar{
  width: 100% !important;
  max-width: 100% !important;
  border-radius: 16px !important;
}
<script>
(function(){
  // aktif hanya saat Elementor editor
  if (!document.body.classList.contains('elementor-editor-active')) return;

  var sticky = document.querySelector('.bf-stickyPromo');
  if (!sticky) return;

  // baca posisi awal dari data-attr (opsional)
  var ox = parseInt(sticky.getAttribute('data-offset-x') || 16, 10);
  var oy = parseInt(sticky.getAttribute('data-offset-y') || 16, 10);
  var align = sticky.getAttribute('data-align') || 'center';
  sticky.style.setProperty('--promo-x', ox + 'px');
  sticky.style.setProperty('--promo-y', oy + 'px');
  sticky.setAttribute('data-align', align);

  // helper ubah align
  function setAlign(a){
    sticky.style.setProperty('--promo-align', a);
    sticky.classList.remove('bf-left','bf-center','bf-right');
    sticky.classList.add('bf-' + a);
  }
  setAlign(align);

  // drag (touch & mouse)
  var dragging=false, sx=0, sy=0, startX=ox, startY=oy;
  function start(e){
    dragging = true;
    var t = (e.touches && e.touches[0]) || e;
    sx = t.clientX; sy = t.clientY;
    startX = ox; startY = oy;
    e.preventDefault();
  }
  function move(e){
    if(!dragging) return;
    var t = (e.touches && e.touches[0]) || e;
    var dx = t.clientX - sx, dy = t.clientY - sy;
    // untuk left/right geser horizontal jadi --promo-x, vertikal jadi --promo-y
    if (align === 'center'){ ox = Math.max(0, startX + dx); } else { ox = Math.max(0, startX + (align==='right' ? -dx : dx)); }
    oy = Math.max(0, startY - dy);
    sticky.style.setProperty('--promo-x', ox + 'px');
    sticky.style.setProperty('--promo-y', oy + 'px');
  }
  function end(){
    if(!dragging) return;
    dragging=false;
    // simpan di localStorage (khusus browser kamu)
    localStorage.setItem('bfStickyPos', JSON.stringify({x:ox,y:oy,align:align}));
  }
  // bind
  var handle = sticky.querySelector('.bf-bar') || sticky;
  handle.style.cursor='grab';
  handle.addEventListener('mousedown', start, {passive:false});
  document.addEventListener('mousemove', move, {passive:false});
  document.addEventListener('mouseup', end, {passive:false});
  handle.addEventListener('touchstart', start, {passive:false});
  document.addEventListener('touchmove', move, {passive:false});
  document.addEventListener('touchend', end, {passive:false});

  // load posisi terakhir
  try{
    var saved = JSON.parse(localStorage.getItem('bfStickyPos')||'null');
    if(saved){
      ox = saved.x; oy = saved.y; align = saved.align || align;
      sticky.style.setProperty('--promo-x', ox + 'px');
      sticky.style.setProperty('--promo-y', oy + 'px');
      setAlign(align);
    }
  }catch(_){}
})();
</script>/* End custom CSS */