JAVA SUNRISE 10 ROBUSTO

Rp850.000

Rated: 5,00 out of 1 vote.


SKU: JS10R Categories: , Tags: ,

Description

Java Sunrise Robustoo Detail

Brand: Besuki Raya Cigar
Series: Java Sunrise

  • Wooden box of 10
  • Vitola: Robusto
  • Shape: Parejo
  • Ring Gauge: 50 (20mm)
  • Length: 5″ (125 mm)
  • Duration: 45 – 60 minute
  • Filler: Long
  • Body: Light to Medium
  • Strength: 6/9
  • Wrapper : Indonesian Javabo
  • Binder : Indonesian Javano
  • Filler : Mix of Indonesian Tobacco
  • Flavor Profile:
    1/3: Chocolate, Creamy, Floral
    2/3: Cinamon, Hooney, Roasted Nuts
    3/3: Coffee, Chilli Pepper, Salty

Citarasa Java Sunrise Robusto memberikan kesan taste ringan, lembut dan umami, sesaat setelah hisapan. Cocok buat penggemar cerutu pemula dan sebgai cerutu harian.

griyacerutu.com

Loading tour packages...
/* CSS Styling */ .tour-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; padding: 15px 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; } .tour-card { display: flex; flex-direction: column; background: #ffffff; border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; text-decoration: none; color: #333333; transition: transform 0.2s ease, box-shadow 0.2s ease; } .tour-card:hover { transform: translateY(-4px); box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); } .tour-image-wrap { position: relative; height: 200px; overflow: hidden; } .tour-image { width: 100%; height: 100%; object-fit: cover; } .tour-badge-location { position: absolute; top: 12px; left: 12px; background: rgba(0, 0, 0, 0.6); color: #ffffff; padding: 4px 10px; border-radius: 20px; font-size: 0.75rem; font-weight: 600; } .tour-badge-popular { position: absolute; top: 12px; right: 12px; background: #ef4444; color: #ffffff; padding: 4px 10px; border-radius: 20px; font-size: 0.75rem; font-weight: 700; } .tour-title-overlay { position: absolute; bottom: 0; left: 0; width: 100%; margin: 0; padding: 20px 15px 12px; background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); color: #ffffff; font-size: 1.2rem; box-sizing: border-box; } .tour-content { padding: 15px; display: flex; flex-direction: column; flex-grow: 1; } .tour-meta { display: flex; justify-content: space-between; font-size: 0.85rem; color: #64748b; margin-bottom: 10px; font-weight: 500; } .tour-highlight { font-size: 0.9rem; line-height: 1.4; color: #475569; margin: 0 0 15px 0; flex-grow: 1; } .tour-footer { display: flex; justify-content: space-between; align-items: flex-end; border-top: 1px solid #f1f5f9; padding-top: 12px; } .tour-price-box { display: flex; flex-direction: column; } .tour-price-label { font-size: 0.7rem; color: #94a3b8; text-transform: uppercase; } .tour-price-value { font-size: 1.1rem; font-weight: 700; color: #0f172a; } .status-badge { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 6px; font-size: 0.8rem; font-weight: 600; } .status-badge.available { background: #dcfce7; color: #166534; } .status-badge.booked { background: #fee2e2; color: #991b1b; } .status-dot { width: 8px; height: 8px; border-radius: 50%; } .status-dot.green { background: #22c55e; } .status-dot.red { background: #ef4444; } /* JavaScript - IIFE Wrapped to Prevent Global Variable Collisions */ (function() { const SHEET_ID = "1A6cbxdRFYNbG6VLDlaBIDuAOuTUfkBlPs5eCpOZG4pg"; async function fetchAndRenderToursForContainer(container) { const sheetName = container.dataset.sheet; if (!sheetName) return; // Added nocache to bypass stale browser data const gvizUrl = `https://docs.google.com/spreadsheets/d/${SHEET_ID}/gviz/tq?tqx=out:json&sheet=${encodeURIComponent(sheetName)}&nocache=${Date.now()}`; try { const response = await fetch(gvizUrl); const rawText = await response.text(); const jsonString = rawText.substring(rawText.indexOf("{"), rawText.lastIndexOf("}") + 1); const parsedData = JSON.parse(jsonString); const rows = parsedData.table?.rows || []; const tours = rows.map(row => { const c = row.c; if (!c) return null; let rawDate = c[7] ? (c[7].f || c[7].v || "") : ""; let formattedDate = String(rawDate).trim().replace(/\//g, "-"); return { location: c[0] && c[0].v ? c[0].v : "", imageUrl: c[1] && c[1].v ? c[1].v : "https://debako.com/wp-content/uploads/2025/09/trip-1.jpg", title: c[2] && c[2].v ? c[2].v : "", reviews: c[3] && c[3].v ? c[3].v : 0, timeRequired: c[4] && c[4].v ? c[4].v : "-", highlight: c[5] && c[5].v ? c[5].v : "", price: c[6] && c[6].v ? c[6].v : "", bookedDate: formattedDate, pageLink: c[8] && c[8].v ? c[8].v : "#", isPopular: c[9] && c[9].v ? c[9].v : "" }; }).filter(tour => tour && tour.title && tour.title.toLowerCase() !== "title"); renderTourCards(container, tours); } catch (error) { console.error(`Error fetching tour data for ${sheetName}:`, error); container.innerHTML = `

Failed to load tour packages. Please check Google Sheet permissions.

`; } } function renderTourCards(container, data) { if (!data || data.length === 0) { container.innerHTML = `

No tours available.

`; return; } container.innerHTML = data.map(tour => { const isBooked = tour.bookedDate && tour.bookedDate !== ""; const statusHtml = isBooked ? ` Booked: ${tour.bookedDate}` : ` Available`; const showPopular = (tour.isPopular && (tour.isPopular.toLowerCase() === 'yes' || tour.isPopular.toLowerCase() === 'popular')) || Number(tour.reviews) >= 5; const popularBadgeHtml = showPopular ? `🔥 Popular` : ''; return `
${tour.title} ${tour.location ? `${tour.location}` : ''} ${popularBadgeHtml}

${tour.title}

⏱ ${tour.timeRequired} ⭐ ${tour.reviews} Reviews

${tour.highlight}

`; }).join(''); } // Interval Checker: Solves DOM racing issues in desktop environments[cite: 7] function initAllTourGrids() { const checkExist = setInterval(() => { const grids = document.querySelectorAll(".tour-grid[data-sheet]:not([data-initialized='true'])"); if (grids.length > 0) { clearInterval(checkExist); grids.forEach(grid => { grid.dataset.initialized = 'true'; fetchAndRenderToursForContainer(grid); }); } }, 100); setTimeout(() => clearInterval(checkExist), 10000); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initAllTourGrids); } else { initAllTourGrids(); } })();