/* ==========================================================================
   Responsive Footer Fix — Alina Storefront
   --------------------------------------------------------------------------
   The Framer footer is a "fixed reveal": a fixed panel behind the page with
   a 100vh spacer creating the reveal scroll distance. On tablet/mobile the
   design already handles overflow — the Content Wrapper variant is 70–80vh
   with overflow:auto (internal scroll) — so the reveal animation and the
   ALINA wordmark are kept as designed on every breakpoint.

   The two real defects fixed here:

   1. The footer link grid forces equal-height rows (grid-auto-rows:
      minmax(0,1fr)), sized to fill the fixed desktop panel. In the stacked
      mobile/tablet variants that leaves a large phantom gap under short
      columns ("Jelajahi" has one link) and inflates the card height.
      → size rows to their content on the stacked variants only.

   2. Internal scrolling of the footer card is handled in
      assets/alina-template-links.js by marking the card with
      data-lenis-prevent, so the Lenis smooth-scroll doesn't swallow
      wheel/touch events aimed at the card.

   Variant map (.framer-3CM2x footer component):
     base            desktop ≥1200 (fixed 800px panel, 4 columns)
     v-xjunfi/v-1jm3kin  tablet (2 columns, card 70vh, overflow:auto)
     v-1sqsijj/v-bbjst3  mobile (1 column, card 80vh, overflow:auto)
   ========================================================================== */

/* Kill the 68px jump when Framer flips the footer variant mid-reveal.
   Framer ships two variants per breakpoint: the animating one (xjunfi/1sqsijj)
   inherits the base card offset `bottom: -60px`, while the settled one
   (1jm3kin/bbjst3) overrides it to `bottom: 8px`. The flip is driven straight off
   scroll position with no hysteresis, so the card snaps 68px the moment it
   settles — and scrolling up and down across that threshold makes it snap
   repeatedly. Pin the animating variants to the settled offset: same reveal
   (opacity/scale still animate), no jump. Desktop (base ≥1440 and 1p8oucx) is
   deliberately untouched — 1p8oucx is already 8px, and the base -60px only
   applies where no variant class is present. */
.framer-3CM2x.framer-v-xjunfi .framer-i7wxv9,
.framer-3CM2x.framer-v-1sqsijj .framer-i7wxv9 {
  bottom: 8px;
}

/* CATATAN 2026-07-18 — percobaan yang GAGAL, jangan diulang.
   Sempat ditambahkan `.framer-3CM2x.framer-3CM2x .framer-i7wxv9{bottom:8px}`
   untuk menyamakan state animasi desktop (-60px) dengan state settled (8px).
   Analisisnya benar bahwa selisih 68px itu ada, TAPI menyamakannya merusak
   geometri reveal di /shop (footer "bablas" — kartu lewat batas) dan
   sentakannya sendiri TIDAK hilang. Berarti -60px pada base bukan cacat,
   melainkan posisi awal yang memang dipakai animasi; penyebab sentakan ada
   di tempat lain. Sudah di-revert. */

/* Stacked variants: grid rows follow their content — removes the phantom
   gap under short columns and shrinks the card so less scrolling is needed. */
.framer-3CM2x.framer-v-xjunfi .framer-en8en1,
.framer-3CM2x.framer-v-1jm3kin .framer-en8en1,
.framer-3CM2x.framer-v-1sqsijj .framer-en8en1,
.framer-3CM2x.framer-v-bbjst3 .framer-en8en1 {
  grid-template-rows: none;
  grid-auto-rows: auto;
}

/* Scrollable footer card variants: momentum scrolling on iOS. */
.framer-3CM2x.framer-v-1jm3kin .framer-i7wxv9,
.framer-3CM2x.framer-v-bbjst3 .framer-i7wxv9 {
  -webkit-overflow-scrolling: touch;
}

/* Wordmark ALINA jangan menimpa isi kartu di layar sempit.
   Framer memberi `Brand Name Reveal` z-index:1 sementara Content Wrapper
   z-index:auto — di desktop tak masalah karena kartunya pendek (48vh) dan
   tidak pernah mencapai wordmark. Di tablet/mobile kartunya 70–80vh sehingga
   menelan posisi wordmark, dan wordmark tercetak DI ATAS daftar tautan.

   Cacat ini sudah lama ada tapi tak pernah terlihat: isi kartu mobile selalu
   opacity:0 karena bug state bersama di setupLogoReveal (lihat
   assets/alina-catalog.js). Begitu isinya benar-benar tampil, tumpukan itu
   muncul.

   Di-scope lewat MEDIA QUERY, bukan nama varian: nama varian Framer
   (g417kr, bbjst3, 1sqsijj, …) berubah setiap ekspor ulang dan tidak semuanya
   terdaftar di aturan lain di file ini — lebar layar adalah kondisi yang
   sebenarnya kita maksud. Desktop sengaja tidak disentuh. */
@media (max-width: 1199px) {
  .framer-3CM2x .framer-i7wxv9 {
    z-index: 2;
  }
}

/* Sembunyikan lencana pembayaran bawaan template (PayPal · Mastercard · Visa).
   Alina TIDAK menerima satu pun dari ketiganya. Checkout sendiri menyatakan
   "Pembayaran online (virtual account, e-wallet, kartu) sedang disiapkan" —
   belum ada gateway aktif (DOKU masih rencana Fase 2), pesanan masuk dengan
   status "menunggu pembayaran" lalu instruksinya dikirim terpisah. Memajang
   logo kartu di footer memberi kesan pembeli bisa bayar pakai kartu — itu
   menyesatkan, dan mahal ongkosnya kalau pembeli kadung checkout.

   Tombol pengaturan cookie (__framer-cookie-component-button) ikut disembunyikan
   setelah diverifikasi di produksi bahwa situs ini TIDAK memasang cookie apa pun:
   document.cookie kosong, nol skrip pelacak (tanpa GA/Pixel/GTM), dan
   document.cookie tidak pernah dipanggil di assets/alina-*.js. Satu-satunya
   jejak adalah `framerCookiesConsentMode` di localStorage — state milik widget
   itu sendiri. Jadi ini widget consent untuk cookie yang tidak ada.
   ⚠️ Kalau nanti dipasang analytics/pixel/iklan, TAMPILKAN LAGI tombol ini
   (hapus selector .framer-1kvvuj5-container di bawah) — saat itu ia jadi
   kontrol privasi yang wajib, bukan hiasan.

   Garis pemisah "|" ikut disembunyikan karena kedua isi di kanannya sudah
   hilang; kalau tidak, ia menggantung tanpa apa-apa di sebelahnya.
   Sisa footer: "©2026, Hak Cipta Dilindungi" saja.

   Disembunyikan lewat CSS, bukan dihapus dari 21 HTML: markup Framer
   ter-minify dan diregenerasi tiap ekspor, jadi menyunting node berisiko
   merusak struktur dan hilang saat ekspor berikutnya. Aturan ini bertahan. */
.framer-5vakub,
.framer-1nlixw1,
.framer-1kvvuj5-container {
  display: none !important;
}
