/** Shopify CDN: Minification failed

Line 16:0 Unexpected "{"
Line 16:1 Expected identifier but found "%"
Line 19:10 Expected identifier but found whitespace
Line 19:19 Unexpected "/"
Line 25:86 Unterminated string token
Line 31:1 Expected identifier but found "%"
Line 33:0 Unexpected "<"
Line 37:1 Expected identifier but found "%"
Line 203:0 Unexpected "{"
Line 203:1 Expected identifier but found "%"
... and 225 more hidden warnings

**/
{% comment %}
  ─────────────────────────────────────────────────────────
  CREMA CLUB — INSTELLINGEN PAGINA
  Bestand: sections/cc-instellingen.liquid

  Eén section, vijf blokken (in de theme editor aanpasbaar):
  1. Hero
  2. De 4 basics        → blocks type "basic"  (illustratie via image picker)
  3. Aanbevolen tools   → blocks type "gear"   (illustratie via image picker)
  4. Explainer video's  → blocks type "video"  (Shopify-video óf YouTube/Vimeo-URL)
  5. Prompt + CTA

  Zolang je geen eigen afbeelding kiest, toont elk blok een
  ingebouwde lijn-illustratie als fallback.
  ─────────────────────────────────────────────────────────
{% endcomment %}

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,700;1,9..144,400;1,9..144,600&family=Karla:ital,wght@0,400;0,500;0,700;1,400&display=swap" rel="stylesheet">

{% style %}
.cc-instellingen{
  --cc-cream:#f7f2e9;
  --cc-cream-2:#efe7d8;
  --cc-espresso:#241a12;
  --cc-roast:#3a2c1f;
  --cc-caramel:#b0722c;
  --cc-terra:#b7431f;
  --cc-leaf:#4a6741;
  --cc-line:#ddd2bf;
  --cc-white:#fffdf8;
  --cc-display:"Fraunces",Georgia,serif;
  --cc-body:"Karla",Helvetica,sans-serif;
  font-family:var(--cc-body);
  background:var(--cc-cream);
  color:var(--cc-espresso);
  line-height:1.6;font-size:16.5px;
  -webkit-font-smoothing:antialiased;
}
.cc-instellingen *{margin:0;padding:0;box-sizing:border-box}
.cc-instellingen img,.cc-instellingen svg{display:block;max-width:100%}

.cc-inner{max-width:1180px;margin:0 auto}
.cc-section{padding:3.6rem 1.25rem}
.cc-eyebrow{
  display:inline-block;font-size:.8rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--cc-terra);margin-bottom:1rem;
}
.cc-h1{
  font-family:var(--cc-display);
  font-size:clamp(2.1rem,5.4vw,3.4rem);
  font-weight:600;line-height:1.12;letter-spacing:-.015em;
  margin-bottom:1.1rem;
}
.cc-h2{
  font-family:var(--cc-display);
  font-size:clamp(1.65rem,3.6vw,2.35rem);
  font-weight:600;line-height:1.18;letter-spacing:-.01em;
  margin-bottom:.8rem;
}
.cc-h1 em,.cc-h2 em{font-style:italic;color:var(--cc-caramel)}
.cc-section-head{max-width:680px;margin:0 auto 2.6rem;text-align:center}
.cc-section-head p{color:var(--cc-roast)}

/* Hero */
.cc-hero{max-width:880px;margin:0 auto;padding:4.2rem 1.25rem 3.4rem;text-align:center}
.cc-hero p{max-width:600px;margin:0 auto;font-size:1.08rem;color:var(--cc-roast)}

/* Basics */
.cc-basics{background:var(--cc-white);border-top:1px solid var(--cc-line);border-bottom:1px solid var(--cc-line)}
.cc-basics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
@media(max-width:980px){.cc-basics-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cc-basics-grid{grid-template-columns:1fr}}
.cc-basic-card{
  background:var(--cc-cream);border:1px solid var(--cc-line);
  border-radius:10px;padding:1.8rem 1.5rem 1.7rem;
  text-align:center;position:relative;
}
.cc-basic-card .cc-num{
  position:absolute;top:.9rem;left:1.1rem;
  font-family:var(--cc-display);font-style:italic;
  font-size:1.05rem;color:var(--cc-caramel);
}
.cc-illo-slot{width:92px;height:92px;margin:0 auto 1.15rem;color:var(--cc-roast)}
.cc-illo-slot img,.cc-illo-slot svg{width:100%;height:100%;object-fit:contain}
.cc-basic-card h3{font-family:var(--cc-display);font-weight:600;font-size:1.13rem;line-height:1.25;margin-bottom:.5rem}
.cc-basic-card h3 em{font-style:italic}
.cc-basic-card p{font-size:.92rem;color:var(--cc-roast)}
.cc-tag{
  display:inline-block;margin-top:.8rem;
  font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:var(--cc-cream-2);border:1px solid var(--cc-line);
  border-radius:99px;padding:.22rem .7rem;
}

/* Gear */
.cc-gear-wrap{
  max-width:880px;margin:0 auto;background:var(--cc-white);
  border:1px solid var(--cc-line);border-radius:12px;
  padding:2.4rem 2.2rem;
}
@media(max-width:560px){.cc-gear-wrap{padding:1.7rem 1.3rem}}
.cc-gear-list{list-style:none;margin:1.6rem 0 1.4rem;display:grid;gap:1.05rem}
.cc-gear-list li{
  display:flex;gap:1.1rem;align-items:center;
  padding-bottom:1.05rem;border-bottom:1px dashed var(--cc-line);
}
.cc-gear-list li:last-child{border-bottom:0;padding-bottom:0}
.cc-check{
  flex:none;width:26px;height:26px;border-radius:50%;
  background:var(--cc-leaf);color:var(--cc-cream);
  display:grid;place-items:center;font-size:.8rem;font-weight:700;
}
.cc-gear-illo{
  flex:none;width:70px;height:70px;
  background:var(--cc-cream);border:1px solid var(--cc-line);
  border-radius:10px;padding:11px;color:var(--cc-roast);
}
.cc-gear-illo img,.cc-gear-illo svg{width:100%;height:100%;object-fit:contain}
@media(max-width:560px){.cc-gear-illo{width:58px;height:58px;padding:9px}}
.cc-gear-list b{display:block;font-size:1.02rem}
.cc-gear-list span{font-size:.93rem;color:var(--cc-roast)}
.cc-gear-note{
  font-size:.95rem;color:var(--cc-roast);
  border-left:3px solid var(--cc-caramel);
  padding:.35rem 0 .35rem 1rem;font-style:italic;
}

/* Videos */
.cc-videos{background:var(--cc-espresso);color:var(--cc-cream)}
.cc-videos .cc-eyebrow{color:#e9c98f}
.cc-videos .cc-h2{color:var(--cc-white)}
.cc-videos .cc-section-head p{color:#cdbfa8}
.cc-video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media(max-width:900px){.cc-video-grid{grid-template-columns:1fr;max-width:560px;margin:0 auto}}
.cc-video-card h3{font-family:var(--cc-display);font-weight:600;font-size:1.12rem;margin:.95rem 0 .3rem;color:var(--cc-white)}
.cc-video-card p{font-size:.9rem;color:#cdbfa8}
.cc-video-slot{
  aspect-ratio:16/9;border:2px dashed #6b5a44;border-radius:10px;
  background:#312417;display:grid;place-items:center;
  text-align:center;color:#a9987e;font-size:.88rem;padding:1rem;
  overflow:hidden;
}
.cc-video-slot.has-media{border:0;padding:0;background:#000}
.cc-video-slot .cc-play{
  width:46px;height:46px;border-radius:50%;border:2px solid #a9987e;
  display:grid;place-items:center;margin:0 auto .6rem;font-size:1rem;
}
.cc-video-slot iframe,.cc-video-slot video{width:100%;height:100%;border:0}
.cc-step-label{font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#e9c98f}

/* Prompt */
.cc-prompt-wrap{max-width:880px;margin:0 auto}
.cc-prompt-box{
  background:var(--cc-white);border:1px solid var(--cc-line);
  border-radius:12px;overflow:hidden;box-shadow:0 2px 0 var(--cc-line);
}
.cc-prompt-top{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.85rem 1.25rem;background:var(--cc-cream-2);
  border-bottom:1px solid var(--cc-line);
}
.cc-prompt-top span{font-size:.85rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--cc-roast)}
.cc-copy-btn{
  font-family:var(--cc-body);font-weight:700;font-size:.88rem;
  background:var(--cc-espresso);color:var(--cc-cream);
  border:0;border-radius:99px;padding:.5rem 1.15rem;cursor:pointer;
  transition:background .15s;
}
.cc-copy-btn:hover{background:var(--cc-terra)}
.cc-prompt-body{padding:1.5rem 1.6rem;font-size:.95rem;line-height:1.65;color:var(--cc-roast);white-space:pre-wrap}
.cc-prompt-body mark{background:#f3e2c4;color:var(--cc-espresso);border-radius:4px;padding:0 .25em;font-weight:700}
.cc-prompt-hint{margin-top:1rem;font-size:.9rem;color:var(--cc-roast);text-align:center}

/* CTA */
.cc-cta{text-align:center;padding:3.8rem 1.25rem 4.4rem;background:var(--cc-white);border-top:1px solid var(--cc-line)}
.cc-btn-primary{
  display:inline-block;margin-top:1.4rem;
  background:var(--cc-terra);color:var(--cc-white);
  font-weight:700;font-size:1.02rem;text-decoration:none;
  border-radius:99px;padding:.95rem 2.2rem;
  transition:background .15s,transform .15s;
}
.cc-btn-primary:hover{background:var(--cc-espresso);transform:translateY(-1px)}
.cc-cta small{display:block;margin-top:1rem;color:var(--cc-roast);font-size:.88rem}
{% endstyle %}

<div class="cc-instellingen">

  {%- comment -%} ══════════ BLOK 1: HERO ══════════ {%- endcomment -%}
  <div class="cc-hero">
    <span class="cc-eyebrow">{{ section.settings.hero_eyebrow }}</span>
    <h1 class="cc-h1">{{ section.settings.hero_title }}</h1>
    <p>{{ section.settings.hero_text }}</p>
  </div>

  {%- comment -%} ══════════ BLOK 2: DE BASICS ══════════ {%- endcomment -%}
  <section class="cc-section cc-basics">
    <div class="cc-inner">
      <div class="cc-section-head">
        <span class="cc-eyebrow">{{ section.settings.basics_eyebrow }}</span>
        <h2 class="cc-h2">{{ section.settings.basics_title }}</h2>
        <p>{{ section.settings.basics_text }}</p>
      </div>
      <div class="cc-basics-grid">
        {%- assign basic_i = 0 -%}
        {%- for block in section.blocks -%}
          {%- if block.type == 'basic' -%}
            {%- assign basic_i = basic_i | plus: 1 -%}
            <div class="cc-basic-card" {{ block.shopify_attributes }}>
              <span class="cc-num">{{ basic_i | prepend: '0' | slice: -2, 2 }}</span>
              <div class="cc-illo-slot">
                {%- if block.settings.image != blank -%}
                  {{ block.settings.image | image_url: width: 184 | image_tag: alt: block.settings.title | strip_html }}
                {%- else -%}
                  {%- case block.settings.fallback_icon -%}
                    {%- when 'basket' -%}
                      <svg viewBox="0 0 96 96" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M24 30h48l-4 26a10 10 0 0 1-10 9H38a10 10 0 0 1-10-9z"/><path d="M20 30h56"/><path d="M40 65v6l-7 7M56 65v6l7 7"/><circle cx="40" cy="44" r="1.6" fill="currentColor"/><circle cx="48" cy="40" r="1.6" fill="currentColor"/><circle cx="56" cy="44" r="1.6" fill="currentColor"/><circle cx="44" cy="50" r="1.6" fill="currentColor"/><circle cx="52" cy="50" r="1.6" fill="currentColor"/></svg>
                    {%- when 'portafilter' -%}
                      <svg viewBox="0 0 96 96" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="42" cy="42" r="20"/><path d="M58 54l24 24"/><path d="M34 42h16M42 34v16" stroke-width="2.4"/><path d="M30 78l10-10" stroke-dasharray="1 6" stroke-width="2.4"/></svg>
                    {%- when 'dial' -%}
                      <svg viewBox="0 0 96 96" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="48" cy="48" r="30"/><path d="M48 48L62 34"/><circle cx="48" cy="48" r="4" fill="currentColor"/><path d="M48 18v6M78 48h-6M48 78v-6M18 48h6" stroke-width="2.4"/><path d="M30 70c4 3 11 6 18 6" stroke-width="2.4"/></svg>
                    {%- else -%}
                      <svg viewBox="0 0 96 96" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="18" y="58" width="60" height="20" rx="4"/><path d="M30 68h20" stroke-width="2.4"/><path d="M48 20c-8 0-12 6-12 12s5 10 12 10 12-4 12-10-4-12-12-12z"/><path d="M48 26c-2 3-2 8 0 12" stroke-width="2.4"/><path d="M64 50h14" stroke-width="2.4"/></svg>
                  {%- endcase -%}
                {%- endif -%}
              </div>
              <h3>{{ block.settings.title }}</h3>
              <p>{{ block.settings.text }}</p>
              {%- if block.settings.tag != blank -%}
                <span class="cc-tag">{{ block.settings.tag }}</span>
              {%- endif -%}
            </div>
          {%- endif -%}
        {%- endfor -%}
      </div>
    </div>
  </section>

  {%- comment -%} ══════════ BLOK 3: AANBEVOLEN TOOLS ══════════ {%- endcomment -%}
  <section class="cc-section">
    <div class="cc-inner">
      <div class="cc-section-head">
        <span class="cc-eyebrow">{{ section.settings.gear_eyebrow }}</span>
        <h2 class="cc-h2">{{ section.settings.gear_title }}</h2>
        <p>{{ section.settings.gear_text }}</p>
      </div>
      <div class="cc-gear-wrap">
        <ul class="cc-gear-list">
          {%- for block in section.blocks -%}
            {%- if block.type == 'gear' -%}
              <li {{ block.shopify_attributes }}>
                <span class="cc-check">✓</span>
                <div class="cc-gear-illo">
                  {%- if block.settings.image != blank -%}
                    {{ block.settings.image | image_url: width: 140 | image_tag: alt: block.settings.title }}
                  {%- else -%}
                    {%- case block.settings.fallback_icon -%}
                      {%- when 'scale' -%}
                        <svg viewBox="0 0 96 96" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="14" y="30" width="68" height="40" rx="8"/><rect x="24" y="42" width="30" height="16" rx="3"/><path d="M30 50h12" stroke-width="3"/><circle cx="68" cy="50" r="5"/></svg>
                      {%- when 'leveler' -%}
                        <svg viewBox="0 0 96 96" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="48" cy="30" r="12"/><path d="M48 42v10"/><rect x="26" y="52" width="44" height="14" rx="4"/><path d="M30 74l6-6M48 74v-8M66 74l-6-6" stroke-width="3"/></svg>
                      {%- else -%}
                        <svg viewBox="0 0 96 96" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="48" cy="24" r="10"/><path d="M48 34v10"/><path d="M36 44h24" stroke-width="3"/><path d="M38 44l-2 30M48 44v30M58 44l2 30" stroke-width="2.5"/></svg>
                    {%- endcase -%}
                  {%- endif -%}
                </div>
                <div><b>{{ block.settings.title }}</b><span>{{ block.settings.text }}</span></div>
              </li>
            {%- endif -%}
          {%- endfor -%}
        </ul>
        <p class="cc-gear-note">{{ section.settings.gear_note }}</p>
      </div>
    </div>
  </section>

  {%- comment -%} ══════════ BLOK 4: EXPLAINER VIDEO'S ══════════ {%- endcomment -%}
  <section class="cc-section cc-videos">
    <div class="cc-inner">
      <div class="cc-section-head">
        <span class="cc-eyebrow">{{ section.settings.videos_eyebrow }}</span>
        <h2 class="cc-h2">{{ section.settings.videos_title }}</h2>
        <p>{{ section.settings.videos_text }}</p>
      </div>
      <div class="cc-video-grid">
        {%- assign video_i = 0 -%}
        {%- for block in section.blocks -%}
          {%- if block.type == 'video' -%}
            {%- assign video_i = video_i | plus: 1 -%}
            <div class="cc-video-card" {{ block.shopify_attributes }}>
              {%- if block.settings.video != blank -%}
                <div class="cc-video-slot has-media">{{ block.settings.video | video_tag: controls: true, preload: 'metadata' }}</div>
              {%- elsif block.settings.video_url != blank -%}
                <div class="cc-video-slot has-media">
                  {%- if block.settings.video_url.type == 'youtube' -%}
                    <iframe src="https://www.youtube.com/embed/{{ block.settings.video_url.id }}" title="{{ block.settings.title }}" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
                  {%- elsif block.settings.video_url.type == 'vimeo' -%}
                    <iframe src="https://player.vimeo.com/video/{{ block.settings.video_url.id }}" title="{{ block.settings.title }}" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
                  {%- endif -%}
                </div>
              {%- else -%}
                <div class="cc-video-slot"><div><div class="cc-play">▶</div>Kies een video in de theme editor</div></div>
              {%- endif -%}
              <span class="cc-step-label">Video {{ video_i }}</span>
              <h3>{{ block.settings.title }}</h3>
              <p>{{ block.settings.text }}</p>
            </div>
          {%- endif -%}
        {%- endfor -%}
      </div>
    </div>
  </section>

  {%- comment -%} ══════════ BLOK 5a: PROMPT ══════════ {%- endcomment -%}
  <section class="cc-section">
    <div class="cc-prompt-wrap">
      <div class="cc-section-head">
        <span class="cc-eyebrow">{{ section.settings.prompt_eyebrow }}</span>
        <h2 class="cc-h2">{{ section.settings.prompt_title }}</h2>
        <p>{{ section.settings.prompt_text }}</p>
      </div>
      <div class="cc-prompt-box">
        <div class="cc-prompt-top">
          <span>De omreken-prompt</span>
          <button class="cc-copy-btn" id="ccCopyBtn" type="button">Kopieer prompt</button>
        </div>
        {%- comment -%} De prompttekst zelf pas je hieronder aan (gemarkeerde invulvelden = <mark>). {%- endcomment -%}
        <div class="cc-prompt-body" id="ccPromptText">Gedraag je als een Michelin-ster barista en expert in thuis-espressomachines. Ik heb specialty coffee gekocht. De brander heeft deze bonen perfect afgesteld voor een Sage Barista Express (54mm filterdrager) met de volgende instellingen:

• Dosering: 19 gram
• Zettemperatuur: <mark>[vul aantal graden Celsius in]</mark>
• Maalgraad: <mark>[vul maalgraad in]</mark>
• Binnenmolen (burr) instelling: <mark>[vul burr-instelling in]</mark>

Ik heb zelf een <mark>[jouw exacte apparaat en maler indien van toepassing]</mark>. Deze machine heeft een <mark>[afmetingen in mm]</mark> filterdrager en <mark>[vul de schaal van de molen in]</mark>.

Vertaal de Sage-settings direct naar de beste startinstellingen voor mijn espresso set-up. Geef mij specifiek:

1. De omgerekende dosering in grammen voor mijn formaat dubbele filterdrager (rekening houdend met de puck-dikte).
2. De geschatte maalgraadstand op mijn molen.
3. De temperatuurstand voor mijn machine die het meest past bij de aanbevolen temperatuur.
4. De doel-output in grammen en doorlooptijd in seconden voor mijn eerste shot.</div>
      </div>
      <p class="cc-prompt-hint">{{ section.settings.prompt_hint }}</p>
    </div>
  </section>

  {%- comment -%} ══════════ BLOK 5b: CTA ══════════ {%- endcomment -%}
  <div class="cc-cta">
    <span class="cc-eyebrow">{{ section.settings.cta_eyebrow }}</span>
    <h2 class="cc-h2">{{ section.settings.cta_title }}</h2>
    <a class="cc-btn-primary" href="{{ section.settings.cta_link }}">{{ section.settings.cta_label }}</a>
    <small>{{ section.settings.cta_sub }}</small>
  </div>

</div>

<script>
(function(){
  var btn=document.getElementById('ccCopyBtn');
  if(!btn)return;
  btn.addEventListener('click',function(){
    var t=document.getElementById('ccPromptText').innerText;
    navigator.clipboard.writeText(t).then(function(){
      btn.textContent='Gekopieerd ✓';
      setTimeout(function(){btn.textContent='Kopieer prompt';},2000);
    });
  });
})();
</script>

{% schema %}
{
  "name": "Instellingen (Crema Club)",
  "settings": [
    { "type": "header", "content": "Hero" },
    { "type": "text", "id": "hero_eyebrow", "label": "Eyebrow", "default": "Van zak tot shot" },
    { "type": "inline_richtext", "id": "hero_title", "label": "Titel", "default": "Onze instellingen werken. <em>Als jouw basis klopt.</em>" },
    { "type": "textarea", "id": "hero_text", "label": "Tekst", "default": "Op elke zak staan de exacte instellingen voor de Sage Barista Express. Op deze pagina vind je alles om ze goed te gebruiken: check één keer je set-up, en elke nieuwe boon zit vanaf dag één goed." },

    { "type": "header", "content": "De basics" },
    { "type": "text", "id": "basics_eyebrow", "label": "Eyebrow", "default": "Eerst even dit" },
    { "type": "inline_richtext", "id": "basics_title", "label": "Titel", "default": "De 4 basics waar onze instellingen op geijkt zijn" },
    { "type": "textarea", "id": "basics_text", "label": "Tekst", "default": "Wijkt je set-up hiervan af? Dan kloppen de instellingen op de zak niet meer. Zet dit één keer goed en je bent klaar." },

    { "type": "header", "content": "Aanbevolen tools" },
    { "type": "text", "id": "gear_eyebrow", "label": "Eyebrow", "default": "Niet verplicht, wel slim" },
    { "type": "inline_richtext", "id": "gear_title", "label": "Titel", "default": "Drie tools die het verschil maken" },
    { "type": "textarea", "id": "gear_text", "label": "Tekst", "default": "Je kunt zonder. Maar voor een paar tientjes haal je hier meer smaakwinst uit dan uit welke dure upgrade dan ook." },
    { "type": "textarea", "id": "gear_note", "label": "Notitie onderaan", "default": "Je kunt zo diep in het accessoire-konijnenhol duiken als je zelf wil. Maar deze drie geven je de meeste impact voor het minste geld. Daarna wordt het hobby." },

    { "type": "header", "content": "Video's" },
    { "type": "text", "id": "videos_eyebrow", "label": "Eyebrow", "default": "Zo stel je 'm in" },
    { "type": "inline_richtext", "id": "videos_title", "label": "Titel", "default": "Drie instellingen, drie korte video's" },
    { "type": "textarea", "id": "videos_text", "label": "Tekst", "default": "Alles wat op onze zakken staat, stel je in met deze drie knoppen op je Sage Barista Express. Kijk mee, het duurt telkens nog geen minuut." },

    { "type": "header", "content": "Prompt-blok" },
    { "type": "text", "id": "prompt_eyebrow", "label": "Eyebrow", "default": "Andere machine?" },
    { "type": "inline_richtext", "id": "prompt_title", "label": "Titel", "default": "Geen Sage, <em>geen probleem!</em>" },
    { "type": "textarea", "id": "prompt_text", "label": "Tekst", "default": "Onze instellingen zijn geijkt op de Sage Barista Express, maar met AI reken je ze in 30 seconden om naar jouw machine. Kopieer de prompt, vul de instellingen van je zak in en plak 'm in ChatGPT of Claude." },
    { "type": "text", "id": "prompt_hint", "label": "Hint onder promptbox", "default": "Tip: de gele velden vind je terug op het etiket van je Crema Club zak." },

    { "type": "header", "content": "CTA onderaan" },
    { "type": "text", "id": "cta_eyebrow", "label": "Eyebrow", "default": "Set-up klaar?" },
    { "type": "inline_richtext", "id": "cta_title", "label": "Titel", "default": "Dan is de volgende boon <em>het leukste deel.</em>" },
    { "type": "text", "id": "cta_label", "label": "Knoptekst", "default": "Ontdek de abonnementen" },
    { "type": "url", "id": "cta_link", "label": "Knoplink" },
    { "type": "textarea", "id": "cta_sub", "label": "Subtekst", "default": "Elke maand een nieuwe single origin, vers gebrand, met de instellingen op de zak." }
  ],
  "blocks": [
    {
      "type": "basic",
      "name": "Basic (kaart)",
      "settings": [
        { "type": "image_picker", "id": "image", "label": "Illustratie (vervangt fallback)" },
        { "type": "select", "id": "fallback_icon", "label": "Fallback-illustratie", "options": [
          { "value": "basket", "label": "Filterbakje" },
          { "value": "portafilter", "label": "Portafilter" },
          { "value": "dial", "label": "Draaiknop" },
          { "value": "dose", "label": "Dosering/weegschaal" }
        ], "default": "basket" },
        { "type": "inline_richtext", "id": "title", "label": "Titel", "default": "Titel" },
        { "type": "inline_richtext", "id": "text", "label": "Tekst", "default": "Tekst" },
        { "type": "text", "id": "tag", "label": "Label (optioneel)" }
      ]
    },
    {
      "type": "gear",
      "name": "Tool (checklist-item)",
      "settings": [
        { "type": "image_picker", "id": "image", "label": "Illustratie (vervangt fallback)" },
        { "type": "select", "id": "fallback_icon", "label": "Fallback-illustratie", "options": [
          { "value": "scale", "label": "Weegschaal" },
          { "value": "leveler", "label": "Leveler" },
          { "value": "wdt", "label": "WDT-tool" }
        ], "default": "scale" },
        { "type": "text", "id": "title", "label": "Titel", "default": "Titel" },
        { "type": "textarea", "id": "text", "label": "Tekst", "default": "Tekst" }
      ]
    },
    {
      "type": "video",
      "name": "Explainer video",
      "settings": [
        { "type": "video", "id": "video", "label": "Video (upload in Shopify)" },
        { "type": "video_url", "id": "video_url", "label": "…of YouTube/Vimeo URL", "accept": ["youtube", "vimeo"] },
        { "type": "text", "id": "title", "label": "Titel", "default": "Titel" },
        { "type": "textarea", "id": "text", "label": "Tekst", "default": "Tekst" }
      ]
    }
  ],
  "presets": [
    {
      "name": "Instellingen (Crema Club)",
      "blocks": [
        { "type": "basic", "settings": {
          "fallback_icon": "basket",
          "title": "Dual shot, single wall",
          "text": "Gebruik het dubbele, <strong>enkelwandige</strong> filterbakje (zonder dubbele bodem). Alleen daarmee proef je wat de boon écht kan.",
          "tag": "Zit bij je Sage" } },
        { "type": "basic", "settings": {
          "fallback_icon": "portafilter",
          "title": "Originele Sage portafilter",
          "text": "Geen bodemloze filterdragers van derden en <strong>geen puck screens</strong>. Die veranderen de extractie, en dus de smaak.",
          "tag": "Keep it simple" } },
        { "type": "basic", "settings": {
          "fallback_icon": "dial",
          "title": "Filter size: <em>double</em>",
          "text": "Zet de instelling <strong>FILTER SIZE</strong> op je machine altijd op <strong>double</strong>. Zo klopt het watervolume met onze recepten.",
          "tag": "Eén druk op de knop" } },
        { "type": "basic", "settings": {
          "fallback_icon": "dose",
          "title": "19 gram, mét leveler",
          "text": "Doseer <strong>19g</strong> bonen en strijk af met een leveler. Zo zit je portafilter nooit te vol en krijg je elke keer dezelfde puck.",
          "tag": "Consistentie = smaak" } },
        { "type": "gear", "settings": {
          "fallback_icon": "scale",
          "title": "Digitale keukenweegschaal",
          "text": "Op 0,1g nauwkeurig. Wegen verslaat schatten, elke dag opnieuw. Dé snelste weg naar een consistente shot." } },
        { "type": "gear", "settings": {
          "fallback_icon": "leveler",
          "title": "Leveler met gewicht",
          "text": "Strijkt je koffiebed vlak én drukt licht aan. Geen bergen en dalen meer in je puck, geen kanaaltjes in je extractie." } },
        { "type": "gear", "settings": {
          "fallback_icon": "wdt",
          "title": "WDT-tool",
          "text": "Prikt klontjes los vóór het tampen. Klinkt nerdy, is het ook, maar je crema wordt er zichtbaar beter van." } },
        { "type": "video", "settings": {
          "title": "De interne molen (burr) instellen",
          "text": "Waar de binnenste maalschijf zit, en hoe je 'm op de juiste stand zet." } },
        { "type": "video", "settings": {
          "title": "Watertemperatuur aanpassen",
          "text": "In een paar knoppen naar de zettemperatuur die op de zak staat." } },
        { "type": "video", "settings": {
          "title": "Watervolume programmeren",
          "text": "Zo programmeer je de juiste shot-output onder de 2-cup knop." } }
      ]
    }
  ]
}
{% endschema %}