/** Shopify CDN: Minification failed

Line 16:0 Unexpected "{"
Line 16:1 Expected identifier but found "%"
Line 20:4 Unexpected ".2"
Line 25:1 Expected identifier but found "%"
Line 27:0 Unexpected "{"
Line 27:1 Unexpected "{"
Line 27:3 Expected identifier but found "'zfresh-base.css'"
Line 28:0 Unexpected "{"
Line 28:1 Unexpected "{"
Line 28:3 Expected identifier but found "'zfresh-hero.css'"
... and 606 more hidden warnings

**/
{%- comment -%}
  ════════════════════════════════════════════
  Z-FRESH HERO — Premium Product Hero Section
  ════════════════════════════════════════════
  v2.2 — Adds:
  • New "Benefit Bullets" block (replaces badges)
  • Stacked vertical benefit list with bold title + description
  • Full color/size/icon customization
  ════════════════════════════════════════════
{%- endcomment -%}

{{ 'zfresh-base.css' | asset_url | stylesheet_tag }}
{{ 'zfresh-hero.css' | asset_url | stylesheet_tag }}

{%- comment -%} ═══ FEATURE STYLES ═══ {%- endcomment -%}
<style>
  /* ── Thumbnail Strip ── */
  .zf-hero__thumbs {
    display: flex;
    gap: {{ section.settings.thumbnail_gap | default: 8 }}px;
    padding: {{ section.settings.thumbnail_carousel_gap | default: 4 }}px 12px 0;
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .zf-hero__thumbs::-webkit-scrollbar { display: none; }

  /* Gap between image area and info area (mobile stacked layout) */
  .zf-hero__media {
    margin-bottom: {{ section.settings.media_info_gap | default: 4 }}px;
  }

  .zf-hero__thumb {
    flex-shrink: 0;
    width: {{ section.settings.thumbnail_size | default: 56 }}px;
    height: {{ section.settings.thumbnail_size | default: 56 }}px;
    border-radius: {{ section.settings.thumbnail_radius | default: 8 }}px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    opacity: 0.45;
    transition: all 0.25s ease;
    padding: 3px;
    background: {{ section.settings.thumbnail_bg_color | default: '#F4F4F5' }};
  }
  .zf-hero__thumb.is-active {
    border-color: {{ section.settings.thumbnail_active_color | default: '#18181B' }};
    opacity: 1;
  }
  .zf-hero__thumb:hover { opacity: 0.8; }
  .zf-hero__thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    pointer-events: none;
    border-radius: {{ section.settings.thumbnail_radius | default: 8 | minus: 3 }}px;
  }

  /* Hide dots when thumbnails are visible */
  {%- if section.settings.show_thumbnails -%}
    .zf-hero__dots { display: none !important; }
  {%- endif -%}

  /* ── Trustpilot / Custom Stars Image ── */
  .zf-hero__stars-img {
    display: block;
    height: var(--stars-img-h, 20px);
    max-height: var(--stars-img-h, 20px);
    width: auto;
    object-fit: contain;
  }

  /* ── Social Proof Banner ── */
  .zf-hero__social-banner {
    display: flex;
    align-items: center;
    gap: 10px;
    line-height: 1.4;
  }
  .zf-hero__avatars {
    display: flex;
    flex-shrink: 0;
    position: relative;
  }
  .zf-hero__avatar {
    width: var(--sp-avatar-size, 28px);
    height: var(--sp-avatar-size, 28px);
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--sp-avatar-border, #fff);
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  }
  .zf-hero__avatar:not(:first-child) {
    margin-left: -8px;
  }
  .zf-hero__avatar-check {
    position: absolute;
    bottom: -3px;
    right: -5px;
    z-index: 2;
    line-height: 0;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.15));
  }
  .zf-hero__social-text {
    flex: 1;
  }

  /* ── Benefit Bullets ── */
  .zf-hero__benefits {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: var(--benefits-pad-v, 0px) var(--benefits-pad-h, 0px);
  }
  .zf-hero__benefits--has-bg {
    border-radius: var(--hero-card-radius, 8px);
  }
  .zf-hero__benefit {
    display: flex;
    align-items: flex-start;
    gap: var(--benefits-icon-gap, 10px);
    line-height: 1.5;
    padding: var(--benefits-item-pad, 10px) 0;
  }
  .zf-hero__benefit:first-child {
    padding-top: 0;
  }
  .zf-hero__benefit:last-child {
    padding-bottom: 0;
  }
  /* Divider between items */
  .zf-hero__benefits--dividers .zf-hero__benefit + .zf-hero__benefit {
    border-top: 1px solid var(--benefits-divider-color, #F0F0F0);
  }
  /* ── Icon styles ── */
  .zf-hero__benefit-icon {
    flex-shrink: 0;
    width: var(--benefits-icon-size, 20px);
    height: var(--benefits-icon-size, 20px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
  }
  /* Filled circle */
  .zf-hero__benefit-icon--filled {
    border-radius: 50%;
    background: var(--benefits-icon-bg);
    color: var(--benefits-icon-color);
  }
  .zf-hero__benefit-icon--filled svg {
    width: 55%;
    height: 55%;
  }
  /* Outline circle */
  .zf-hero__benefit-icon--outline {
    border-radius: 50%;
    border: 1.5px solid var(--benefits-icon-bg);
    color: var(--benefits-icon-bg);
    background: transparent;
  }
  .zf-hero__benefit-icon--outline svg {
    width: 55%;
    height: 55%;
  }
  /* Bare check (no circle) */
  .zf-hero__benefit-icon--bare {
    color: var(--benefits-icon-bg);
  }
  .zf-hero__benefit-icon--bare svg {
    width: 80%;
    height: 80%;
  }
  /* ── Text ── */
  .zf-hero__benefit-body {
    flex: 1;
    min-width: 0;
  }
  .zf-hero__benefit-title {
    font-weight: 600;
    color: var(--benefits-title-color, #18181B);
  }
  .zf-hero__benefit-dash {
    color: var(--benefits-desc-color, #A1A1AA);
    margin: 0 3px;
    font-weight: 300;
  }
  .zf-hero__benefit-desc {
    font-weight: 400;
    color: var(--benefits-desc-color, #A1A1AA);
  }

  /* ── Block spacing system ── */
  .zf-hero__info-inner {
    gap: 0 !important;
    display: flex;
    flex-direction: column;
  }
  .zf-hero__block {
    margin-bottom: var(--hero-block-gap);
  }
  .zf-hero__block:last-child {
    margin-bottom: 0;
  }
  .zf-hero__block > *,
  .zf-hero__block h1,
  .zf-hero__block h2,
  .zf-hero__block h3,
  .zf-hero__block p,
  .zf-hero__block div,
  .zf-hero__block hr {
    margin-top: 0;
    margin-bottom: 0;
  }
</style>

{%- assign img_pos = section.settings.image_position | default: 'right' -%}

<div
  id="zfresh-hero"
  class="zf-hero{% if img_pos == 'left' %} zf-hero--img-left{% endif %}"
  style="
    --hero-bg: {{ section.settings.bg_color | default: '#FFFFFF' }};
    --hero-text-color: {{ section.settings.text_color | default: '#18181B' }};
    --hero-img-bg: {% if section.settings.show_image_bg %}{{ section.settings.image_bg_color | default: '#F4F4F5' }}{% else %}transparent{% endif %};
    --hero-image-radius: {{ section.settings.image_radius | default: 0 }}px;
    --hero-card-radius: {{ section.settings.card_radius | default: 8 }}px;
    --hero-btn-radius: {{ section.settings.button_radius | default: 12 }}px;
    --hero-badge-radius: {{ section.settings.badge_radius | default: 20 }}px;
    --hero-gap: {{ section.settings.desktop_gap | default: 0 }}px;
    --hero-info-max-w: {{ section.settings.info_max_width | default: 520 }}px;
    --hero-block-gap: {{ section.settings.block_gap | default: 4 }}px;
    padding-top: {{ section.settings.padding_top | default: 0 }}px;
    padding-bottom: {{ section.settings.padding_bottom | default: 0 }}px;
  "
>

  {%- comment -%} ════════════════════
    IMAGE SIDE
  ════════════════════ {%- endcomment -%}
  <div class="zf-hero__media">

    {%- if section.settings.show_social_proof -%}
      <div class="zf-hero__floating-badge zf-hero__floating-badge--left">
        {% render 'zfresh-social-proof',
          rating: section.settings.rating,
          count: section.settings.review_count
        %}
      </div>
    {%- endif -%}

    {%- if section.settings.clinical_badge_text != blank -%}
      <div class="zf-hero__floating-badge zf-hero__floating-badge--right">
        <div class="zf-hero__clinical">
          {%- assign clinical_icon = section.settings.clinical_badge_icon | default: 'flask' -%}
          {% render 'zfresh-icon', icon: clinical_icon, size: '12px' %}
          <span>{{ section.settings.clinical_badge_text }}</span>
        </div>
      </div>
    {%- endif -%}

    <zfresh-carousel
      class="zf-hero__carousel"
      role="region"
      aria-label="{{ 'products.product.media' | t | default: 'Product images' }}"
      data-autoplay="{{ section.settings.carousel_autoplay }}"
      data-speed="{{ section.settings.carousel_speed | default: 5 }}"
      data-loop="{{ section.settings.carousel_loop }}"
    >
      <div class="zf-hero__slides" data-slides>
        {%- if product.media.size > 0 -%}
          {%- for media in product.media -%}
            <div class="zf-hero__slide{% if forloop.first %} is-active{% endif %}" data-slide="{{ forloop.index0 }}" aria-current="{% if forloop.first %}true{% else %}false{% endif %}">
              {%- if media.media_type == 'image' -%}
                {%- if forloop.first -%}
                  {{ media | image_url: width: 860 | image_tag:
                    widths: '375, 430, 645, 860',
                    sizes: '(min-width: 750px) 50vw, 100vw',
                    loading: 'eager',
                    fetchpriority: 'high',
                    class: 'zf-hero__image'
                  }}
                {%- else -%}
                  {{ media | image_url: width: 860 | image_tag:
                    widths: '375, 430, 645, 860',
                    sizes: '(min-width: 750px) 50vw, 100vw',
                    loading: 'lazy',
                    class: 'zf-hero__image'
                  }}
                {%- endif -%}
              {%- endif -%}
            </div>
          {%- endfor -%}
        {%- else -%}
          <div class="zf-hero__slide is-active" data-slide="0">
            <div class="zf-hero__placeholder">
              <span>Z-FRESH</span>
              <span>Upload product images to see them here</span>
            </div>
          </div>
        {%- endif -%}
      </div>

      {%- if product.media.size > 1 -%}
        <div class="zf-hero__dots" data-dots aria-label="Image navigation">
          {%- for media in product.media -%}
            <button
              class="zf-hero__dot{% if forloop.first %} is-active{% endif %}"
              data-dot="{{ forloop.index0 }}"
              aria-label="View image {{ forloop.index }}"
              type="button">
            </button>
          {%- endfor -%}
        </div>
      {%- endif -%}
    </zfresh-carousel>

    {%- if section.settings.show_thumbnails and product.media.size > 1 -%}
      <div class="zf-hero__thumbs" data-thumbs aria-label="Product image thumbnails">
        {%- for media in product.media -%}
          {%- if media.media_type == 'image' -%}
            <button
              class="zf-hero__thumb{% if forloop.first %} is-active{% endif %}"
              data-slide-index="{{ forloop.index0 }}"
              aria-label="View image {{ forloop.index }}"
              type="button"
            >
              {{ media | image_url: width: 120 | image_tag:
                loading: 'lazy',
                alt: media.alt | default: product.title
              }}
            </button>
          {%- endif -%}
        {%- endfor -%}
      </div>
    {%- endif -%}

  </div>

  {%- comment -%} ════════════════════
    INFO SIDE — Block-based
  ════════════════════ {%- endcomment -%}
  <div class="zf-hero__info">
    <div class="zf-hero__info-inner">
      {%- for block in section.blocks -%}
        <div class="zf-hero__block">
        {%- case block.type -%}

          {%- when 'heading' -%}
            <{{ block.settings.tag | default: 'h1' }}
              class="zf-hero__title"
              style="
                font-size: clamp({{ block.settings.font_size_mobile | default: '26px' }}, 7vw, {{ block.settings.font_size_desktop | default: '48px' }});
                {%- if block.settings.color != blank -%}color: {{ block.settings.color }};{%- endif -%}
              "
              {{ block.shopify_attributes }}>
              {{ block.settings.text }}
            </{{ block.settings.tag | default: 'h1' }}>

          {%- when 'subtitle' -%}
            <div
              class="zf-hero__subtitle"
              style="
                font-size: {{ block.settings.font_size | default: '15px' }};
                {%- if block.settings.color != blank -%}color: {{ block.settings.color }};{%- else -%}color: var(--zf-text-secondary, #52525B);{%- endif -%}
              "
              {{ block.shopify_attributes }}>
              {{ block.settings.text }}
            </div>

          {%- when 'benefit_bullets' -%}
            {%- assign bb_bg = block.settings.bg_color | default: 'transparent' -%}
            {%- assign bb_icon_bg = block.settings.icon_bg_color | default: '#0D9373' -%}
            {%- assign bb_icon_color = block.settings.icon_check_color | default: '#FFFFFF' -%}
            {%- assign bb_title_color = block.settings.title_color | default: '#18181B' -%}
            {%- assign bb_desc_color = block.settings.desc_color | default: '#A1A1AA' -%}
            {%- assign bb_font = block.settings.font_size | default: '14px' -%}
            {%- assign bb_icon_size = block.settings.icon_size | default: 20 -%}
            {%- assign bb_icon_gap = block.settings.icon_text_gap | default: 10 -%}
            {%- assign bb_item_pad = block.settings.item_padding | default: 10 -%}
            {%- assign bb_pad_v = block.settings.padding_vertical | default: 0 -%}
            {%- assign bb_pad_h = block.settings.padding_horizontal | default: 0 -%}
            {%- assign bb_icon_style = block.settings.icon_style | default: 'filled' -%}
            {%- assign bb_divider_color = block.settings.divider_color | default: '#F0F0F0' -%}
            <div
              class="zf-hero__benefits{% if bb_bg != 'transparent' %} zf-hero__benefits--has-bg{% endif %}{% if block.settings.show_dividers %} zf-hero__benefits--dividers{% endif %}"
              style="
                --benefits-icon-size: {{ bb_icon_size }}px;
                --benefits-icon-gap: {{ bb_icon_gap }}px;
                --benefits-icon-bg: {{ bb_icon_bg }};
                --benefits-icon-color: {{ bb_icon_color }};
                --benefits-title-color: {{ bb_title_color }};
                --benefits-desc-color: {{ bb_desc_color }};
                --benefits-item-pad: {{ bb_item_pad }}px;
                --benefits-divider-color: {{ bb_divider_color }};
                --benefits-pad-v: {{ bb_pad_v }}px;
                --benefits-pad-h: {{ bb_pad_h }}px;
                font-size: {{ bb_font }};
                background: {{ bb_bg }};
              "
              {{ block.shopify_attributes }}
            >
              {%- for i in (1..4) -%}
                {%- assign title_key = 'bullet_' | append: i | append: '_title' -%}
                {%- assign desc_key = 'bullet_' | append: i | append: '_desc' -%}
                {%- assign b_title = block.settings[title_key] -%}
                {%- assign b_desc = block.settings[desc_key] -%}
                {%- if b_title != blank -%}
                  <div class="zf-hero__benefit">
                    <span
                      class="zf-hero__benefit-icon zf-hero__benefit-icon--{{ bb_icon_style }}"
                      aria-hidden="true"
                    >
                      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
                        <polyline points="20 6 9 17 4 12"/>
                      </svg>
                    </span>
                    <span class="zf-hero__benefit-body">
                      <strong class="zf-hero__benefit-title">{{ b_title }}</strong>
                      {%- if b_desc != blank -%}
                        <span class="zf-hero__benefit-dash">—</span>
                        <span class="zf-hero__benefit-desc">{{ b_desc }}</span>
                      {%- endif -%}
                    </span>
                  </div>
                {%- endif -%}
              {%- endfor -%}
            </div>

          {%- when 'badges' -%}
            <div
              class="zf-hero__badges"
              style="font-size: {{ block.settings.font_size | default: '12px' }};"
              {{ block.shopify_attributes }}>
              {%- for i in (1..4) -%}
                {%- assign badge_key = 'badge_' | append: i -%}
                {%- assign style_key = 'badge_' | append: i | append: '_style' -%}
                {%- assign icon_key = 'badge_' | append: i | append: '_icon' -%}
                {%- assign badge_text = block.settings[badge_key] -%}
                {%- assign badge_style = block.settings[style_key] | default: 'steel' -%}
                {%- assign badge_icon = block.settings[icon_key] | default: 'check' -%}
                {%- if badge_text != blank -%}
                  <span
                    class="zf-badge zf-badge--{{ badge_style }}"
                    style="border-radius: var(--hero-badge-radius);">
                    {% render 'zfresh-icon', icon: badge_icon, size: '13px' %}
                    {{ badge_text }}
                  </span>
                {%- endif -%}
              {%- endfor -%}
            </div>

          {%- when 'price' -%}
            <div
              class="zf-hero__price"
              style="
                --price-size: {{ block.settings.font_size | default: '24px' }};
                {%- if block.settings.color != blank -%}--price-color: {{ block.settings.color }};{%- endif -%}
              "
              {{ block.shopify_attributes }}>
              {%- if block.settings.prefix != blank -%}
                <span class="zf-hero__price-prefix">{{ block.settings.prefix }}</span>
              {%- endif -%}
              <span class="zf-hero__price-current">
                {{ product.selected_or_first_available_variant.price | money }}
              </span>
              {%- if product.compare_at_price_max > product.price_min -%}
                <span class="zf-hero__price-compare">
                  {{ product.compare_at_price_max | money }}
                </span>
                {%- assign save_amount = product.compare_at_price_max | minus: product.price_min -%}
                {%- assign save_percent = save_amount | times: 100 | divided_by: product.compare_at_price_max -%}
                <span class="zf-hero__price-save">Save {{ save_percent }}%</span>
              {%- endif -%}
              {%- if block.settings.suffix != blank -%}
                <span class="zf-hero__price-suffix">{{ block.settings.suffix }}</span>
              {%- endif -%}
            </div>

          {%- when 'rating' -%}
            {%- assign star_icon_size = block.settings.star_size | default: '16px' -%}
            {%- assign stars_img_height = block.settings.stars_image_height | default: 20 -%}
            {%- assign stars_img_retina = stars_img_height | times: 3 -%}
            <div
              class="zf-hero__inline-rating"
              style="font-size: {{ block.settings.font_size | default: '13px' }};"
              {{ block.shopify_attributes }}>

              {%- if block.settings.stars_image != blank -%}
                <span class="zf-stars" style="--stars-img-h: {{ stars_img_height }}px;" aria-label="{{ block.settings.stars | default: 5 }} out of 5 stars">
                  {{ block.settings.stars_image | image_url: height: stars_img_retina | image_tag:
                    class: 'zf-hero__stars-img',
                    loading: 'lazy',
                    alt: 'Rating stars'
                  }}
                </span>
              {%- elsif block.settings.stars_image_url != blank -%}
                <span class="zf-stars" style="--stars-img-h: {{ stars_img_height }}px;" aria-label="{{ block.settings.stars | default: 5 }} out of 5 stars">
                  <img
                    src="{{ block.settings.stars_image_url }}"
                    class="zf-hero__stars-img"
                    alt="Rating stars"
                    loading="lazy"
                  >
                </span>
              {%- else -%}
                <span class="zf-stars" style="color: {{ block.settings.star_color | default: '#F5A623' }}; font-size: {{ star_icon_size }};" aria-label="{{ block.settings.stars | default: 5 }} out of 5 stars">
                  {%- assign star_count = block.settings.stars | default: 5 -%}
                  {%- for i in (1..star_count) -%}
                    {% render 'zfresh-icon', icon: 'star', size: star_icon_size %}
                  {%- endfor -%}
                </span>
              {%- endif -%}

              {%- if block.settings.text != blank -%}
                <span class="zf-caption" style="font-size: inherit; color: var(--zf-text-muted, #71717A);">{{ block.settings.text }}</span>
              {%- endif -%}
            </div>

          {%- when 'cta' -%}
            {%- assign btn_bg = block.settings.bg_color -%}
            {%- assign btn_text_color = block.settings.text_color -%}
            <a
              href="{{ block.settings.link | default: product.url }}"
              class="zf-btn zf-btn--{{ block.settings.style | default: 'primary' }} zf-btn--lg zf-hero__cta{% if block.settings.pulse %} zf-btn--pulse{% endif %}{% if block.settings.full_width %} zf-btn--full{% endif %}"
              style="
                border-radius: var(--hero-btn-radius);
                font-size: {{ block.settings.font_size | default: '16px' }};
                {%- if btn_bg != blank -%}--btn-bg: {{ btn_bg }};{%- endif -%}
                {%- if btn_text_color != blank -%}--btn-color: {{ btn_text_color }};{%- endif -%}
              "
              {{ block.shopify_attributes }}>
              {{ block.settings.text }}
              {%- if block.settings.show_arrow -%}
                {% render 'zfresh-icon', icon: 'arrow-right', size: '18px' %}
              {%- endif -%}
            </a>

          {%- when 'trust' -%}
            <div
              class="zf-trust-row zf-hero__trust"
              style="font-size: {{ block.settings.font_size | default: '11px' }}; justify-content: {{ block.settings.alignment | default: 'flex-start' }};"
              {{ block.shopify_attributes }}>
              {%- for i in (1..4) -%}
                {%- assign text_key = 'item_' | append: i -%}
                {%- assign icon_key = 'icon_' | append: i -%}
                {%- assign item_text = block.settings[text_key] -%}
                {%- assign item_icon = block.settings[icon_key] | default: 'check' -%}
                {%- if item_text != blank -%}
                  <span class="zf-trust-item">
                    {% render 'zfresh-icon', icon: item_icon, size: '14px' %}
                    {{ item_text }}
                  </span>
                {%- endif -%}
              {%- endfor -%}
            </div>

          {%- when 'social_proof_banner' -%}
            {%- assign sp_bg = block.settings.bg_color | default: 'transparent' -%}
            {%- assign sp_text_color = block.settings.text_color | default: '#52525B' -%}
            {%- assign sp_check_color = block.settings.checkmark_color | default: '#22C55E' -%}
            {%- assign sp_font = block.settings.font_size | default: '13px' -%}
            {%- assign sp_avatar_size = block.settings.avatar_size | default: 28 -%}
            {%- assign sp_border_color = block.settings.avatar_border_color | default: '#FFFFFF' -%}
            {%- assign sp_pad_v = block.settings.padding_vertical | default: 10 -%}
            {%- assign sp_pad_h = block.settings.padding_horizontal | default: 14 -%}
            <div
              class="zf-hero__social-banner"
              style="
                background: {{ sp_bg }};
                color: {{ sp_text_color }};
                font-size: {{ sp_font }};
                padding: {{ sp_pad_v }}px {{ sp_pad_h }}px;
                {%- if sp_bg != 'transparent' -%}
                  border-radius: var(--hero-card-radius);
                {%- endif -%}
              "
              {{ block.shopify_attributes }}
            >
              {%- assign has_avatars = false -%}
              {%- if block.settings.avatar_1 != blank or block.settings.avatar_2 != blank or block.settings.avatar_3 != blank or block.settings.avatar_4 != blank -%}
                {%- assign has_avatars = true -%}
              {%- endif -%}

              {%- if has_avatars -%}
                <div class="zf-hero__avatars" style="--sp-avatar-size: {{ sp_avatar_size }}px; --sp-avatar-border: {{ sp_border_color }};">
                  {%- for i in (1..4) -%}
                    {%- assign avatar_key = 'avatar_' | append: i -%}
                    {%- assign avatar_img = block.settings[avatar_key] -%}
                    {%- if avatar_img != blank -%}
                      <img
                        src="{{ avatar_img | image_url: width: 80 }}"
                        class="zf-hero__avatar"
                        alt="Customer"
                        width="{{ sp_avatar_size }}"
                        height="{{ sp_avatar_size }}"
                        loading="lazy"
                      >
                    {%- endif -%}
                  {%- endfor -%}
                  {%- if block.settings.show_checkmark -%}
                    <span class="zf-hero__avatar-check" style="color: {{ sp_check_color }};">
                      <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                        <circle cx="8" cy="8" r="8" fill="currentColor"/>
                        <path d="M5 8L7 10L11 6" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                      </svg>
                    </span>
                  {%- endif -%}
                </div>
              {%- endif -%}

              {%- if block.settings.text != blank -%}
                <span class="zf-hero__social-text">{{ block.settings.text }}</span>
              {%- endif -%}
            </div>

          {%- when 'richtext' -%}
            <div
              class="zf-hero__richtext"
              style="
                font-size: {{ block.settings.font_size | default: '15px' }};
                {%- if block.settings.color != blank -%}color: {{ block.settings.color }};{%- else -%}color: var(--zf-text-secondary, #52525B);{%- endif -%}
              "
              {{ block.shopify_attributes }}>
              {{ block.settings.text }}
            </div>

          {%- when 'spacer' -%}
            <div
              style="height: {{ block.settings.height | default: 16 }}px;"
              {{ block.shopify_attributes }}
              aria-hidden="true">
            </div>

          {%- when 'divider' -%}
            <hr
              class="zf-hero__divider"
              style="{%- if block.settings.color != blank -%}background: {{ block.settings.color }};{%- endif -%}"
              {{ block.shopify_attributes }}>

        {%- endcase -%}
        </div>
      {%- endfor -%}
    </div>
  </div>
</div>

{%- if section.settings.show_thumbnails and product.media.size > 1 -%}
<script>
  (function() {
    const hero = document.getElementById('zfresh-hero');
    if (!hero) return;

    const thumbsContainer = hero.querySelector('[data-thumbs]');
    const slidesContainer = hero.querySelector('[data-slides]');
    const dotsContainer   = hero.querySelector('[data-dots]');
    if (!thumbsContainer) return;

    thumbsContainer.addEventListener('click', function(e) {
      var thumb = e.target.closest('.zf-hero__thumb');
      if (!thumb) return;

      var index = thumb.dataset.slideIndex;

      if (dotsContainer) {
        var dot = dotsContainer.querySelector('[data-dot="' + index + '"]');
        if (dot) dot.click();
      }

      thumbsContainer.querySelectorAll('.zf-hero__thumb').forEach(function(t) {
        t.classList.remove('is-active');
      });
      thumb.classList.add('is-active');
    });

    if (slidesContainer) {
      var syncThumbs = function() {
        var activeSlide = slidesContainer.querySelector('.zf-hero__slide.is-active');
        if (!activeSlide) return;
        var index = activeSlide.dataset.slide;
        thumbsContainer.querySelectorAll('.zf-hero__thumb').forEach(function(t) {
          t.classList.toggle('is-active', t.dataset.slideIndex === index);
        });
      };

      var observer = new MutationObserver(syncThumbs);
      observer.observe(slidesContainer, {
        subtree: true,
        attributes: true,
        attributeFilter: ['class']
      });
    }
  })();
</script>
{%- endif -%}

<script src="{{ 'zfresh-hero-carousel.js' | asset_url }}" defer="defer"></script>
<script src="{{ 'zfresh-animations.js' | asset_url }}" defer="defer"></script>

{% schema %}
{
  "name": "Z-Fresh: Hero",
  "tag": "section",
  "class": "zf-section-wrapper",
  "settings": [
    {
      "type": "header",
      "content": "Layout"
    },
    {
      "type": "select",
      "id": "image_position",
      "label": "Image position (desktop)",
      "options": [
        { "value": "right", "label": "Right" },
        { "value": "left", "label": "Left" }
      ],
      "default": "right"
    },
    {
      "type": "range",
      "id": "desktop_gap",
      "min": 0,
      "max": 60,
      "step": 4,
      "unit": "px",
      "label": "Gap between columns (desktop)",
      "default": 0
    },
    {
      "type": "range",
      "id": "info_max_width",
      "min": 360,
      "max": 640,
      "step": 20,
      "unit": "px",
      "label": "Info column max width",
      "default": 520
    },
    {
      "type": "range",
      "id": "block_gap",
      "min": 0,
      "max": 40,
      "step": 2,
      "unit": "px",
      "label": "Spacing between info blocks",
      "default": 4,
      "info": "Controls ALL vertical spacing between elements. Slide to 0 for zero gap."
    },
    {
      "type": "header",
      "content": "Image ↔ Content gaps"
    },
    {
      "type": "range",
      "id": "thumbnail_carousel_gap",
      "min": 0,
      "max": 24,
      "step": 2,
      "unit": "px",
      "label": "Gap: product image → thumbnails",
      "default": 4,
      "info": "Space between the main carousel and the thumbnail strip"
    },
    {
      "type": "range",
      "id": "media_info_gap",
      "min": 0,
      "max": 40,
      "step": 2,
      "unit": "px",
      "label": "Gap: thumbnails → content below",
      "default": 4,
      "info": "Space between thumbnail strip and the first info block (social proof, heading, etc.)"
    },
    {
      "type": "range",
      "id": "padding_top",
      "min": 0,
      "max": 100,
      "step": 4,
      "unit": "px",
      "label": "Top padding",
      "default": 0
    },
    {
      "type": "range",
      "id": "padding_bottom",
      "min": 0,
      "max": 100,
      "step": 4,
      "unit": "px",
      "label": "Bottom padding",
      "default": 0
    },
    {
      "type": "header",
      "content": "Colors"
    },
    {
      "type": "color",
      "id": "bg_color",
      "label": "Background",
      "default": "#FFFFFF"
    },
    {
      "type": "color",
      "id": "text_color",
      "label": "Text color",
      "default": "#18181B"
    },
    {
      "type": "header",
      "content": "Image area"
    },
    {
      "type": "checkbox",
      "id": "show_image_bg",
      "label": "Show background behind images",
      "default": false
    },
    {
      "type": "color",
      "id": "image_bg_color",
      "label": "Image background color",
      "default": "#F4F4F5",
      "info": "Only visible when background is enabled"
    },
    {
      "type": "header",
      "content": "Thumbnail Strip"
    },
    {
      "type": "checkbox",
      "id": "show_thumbnails",
      "label": "Show image thumbnails below carousel",
      "default": true,
      "info": "Replaces dot navigation with clickable image previews"
    },
    {
      "type": "range",
      "id": "thumbnail_size",
      "min": 40,
      "max": 80,
      "step": 4,
      "unit": "px",
      "label": "Thumbnail size",
      "default": 56
    },
    {
      "type": "range",
      "id": "thumbnail_radius",
      "min": 0,
      "max": 20,
      "step": 2,
      "unit": "px",
      "label": "Thumbnail corner radius",
      "default": 8
    },
    {
      "type": "range",
      "id": "thumbnail_gap",
      "min": 4,
      "max": 16,
      "step": 2,
      "unit": "px",
      "label": "Thumbnail gap (between each)",
      "default": 8
    },
    {
      "type": "color",
      "id": "thumbnail_active_color",
      "label": "Active thumbnail border color",
      "default": "#18181B"
    },
    {
      "type": "color",
      "id": "thumbnail_bg_color",
      "label": "Thumbnail background color",
      "default": "#F4F4F5",
      "info": "Visible behind images when using 'contain' fit"
    },
    {
      "type": "header",
      "content": "Corner radius"
    },
    {
      "type": "range",
      "id": "image_radius",
      "min": 0,
      "max": 40,
      "step": 2,
      "unit": "px",
      "label": "Product image corners",
      "default": 0
    },
    {
      "type": "range",
      "id": "button_radius",
      "min": 0,
      "max": 40,
      "step": 2,
      "unit": "px",
      "label": "Button corners",
      "default": 12
    },
    {
      "type": "range",
      "id": "badge_radius",
      "min": 0,
      "max": 40,
      "step": 2,
      "unit": "px",
      "label": "Badge corners",
      "default": 20
    },
    {
      "type": "range",
      "id": "card_radius",
      "min": 0,
      "max": 32,
      "step": 2,
      "unit": "px",
      "label": "Floating badge corners",
      "default": 8
    },
    {
      "type": "header",
      "content": "Carousel"
    },
    {
      "type": "checkbox",
      "id": "carousel_autoplay",
      "label": "Auto-advance slides",
      "default": false,
      "info": "Disabled by default. Not recommended for mobile."
    },
    {
      "type": "range",
      "id": "carousel_speed",
      "min": 2,
      "max": 10,
      "step": 1,
      "unit": "s",
      "label": "Auto-advance interval",
      "default": 5
    },
    {
      "type": "checkbox",
      "id": "carousel_loop",
      "label": "Loop back to first slide",
      "default": true
    },
    {
      "type": "header",
      "content": "Floating badges (image area)"
    },
    {
      "type": "checkbox",
      "id": "show_social_proof",
      "label": "Show star rating badge",
      "default": true
    },
    {
      "type": "text",
      "id": "rating",
      "label": "Star rating",
      "default": "4.9"
    },
    {
      "type": "text",
      "id": "review_count",
      "label": "Review count",
      "default": "2,847"
    },
    {
      "type": "text",
      "id": "clinical_badge_text",
      "label": "Clinical badge text (leave blank to hide)",
      "default": "Clinically Studied"
    },
    {
      "type": "select",
      "id": "clinical_badge_icon",
      "label": "Clinical badge icon",
      "options": [
        { "value": "flask", "label": "Flask" },
        { "value": "shield", "label": "Shield" },
        { "value": "check", "label": "Check" },
        { "value": "sparkle", "label": "Sparkle" },
        { "value": "star", "label": "Star" }
      ],
      "default": "flask"
    }
  ],
  "blocks": [
    {
      "type": "heading",
      "name": "Heading",
      "limit": 1,
      "settings": [
        {
          "type": "text",
          "id": "text",
          "label": "Heading text",
          "default": "Still Worried About Your Breath Right Now?"
        },
        {
          "type": "select",
          "id": "tag",
          "label": "HTML tag",
          "options": [
            { "value": "h1", "label": "H1" },
            { "value": "h2", "label": "H2" },
            { "value": "p", "label": "Paragraph" }
          ],
          "default": "h1"
        },
        {
          "type": "color",
          "id": "color",
          "label": "Color (leave blank for section default)"
        },
        {
          "type": "select",
          "id": "font_size_mobile",
          "label": "Size (mobile)",
          "options": [
            { "value": "20px", "label": "XS (20px)" },
            { "value": "24px", "label": "S (24px)" },
            { "value": "26px", "label": "M (26px)" },
            { "value": "30px", "label": "L (30px)" },
            { "value": "36px", "label": "XL (36px)" },
            { "value": "40px", "label": "2XL (40px)" },
            { "value": "44px", "label": "3XL (44px)" }
          ],
          "default": "26px"
        },
        {
          "type": "select",
          "id": "font_size_desktop",
          "label": "Size (desktop)",
          "options": [
            { "value": "32px", "label": "S (32px)" },
            { "value": "40px", "label": "M (40px)" },
            { "value": "48px", "label": "L (48px)" },
            { "value": "56px", "label": "XL (56px)" },
            { "value": "64px", "label": "2XL (64px)" },
            { "value": "72px", "label": "3XL (72px)" }
          ],
          "default": "48px"
        }
      ]
    },
    {
      "type": "subtitle",
      "name": "Subtitle",
      "limit": 2,
      "settings": [
        {
          "type": "richtext",
          "id": "text",
          "label": "Text",
          "default": "<p>The first oral probiotic that <strong>kills bad breath instantly</strong>, fixes it permanently — and rebuilds your oral health from the inside.</p>"
        },
        {
          "type": "select",
          "id": "font_size",
          "label": "Font size",
          "options": [
            { "value": "13px", "label": "S (13px)" },
            { "value": "14px", "label": "M-S (14px)" },
            { "value": "15px", "label": "M (15px)" },
            { "value": "16px", "label": "L (16px)" },
            { "value": "17px", "label": "XL (17px)" },
            { "value": "18px", "label": "XXL (18px)" }
          ],
          "default": "15px"
        },
        {
          "type": "color",
          "id": "color",
          "label": "Color (leave blank for default)"
        }
      ]
    },
    {
      "type": "rating",
      "name": "Star Rating",
      "limit": 1,
      "settings": [
        {
          "type": "header",
          "content": "Custom stars image (e.g. Trustpilot)"
        },
        {
          "type": "image_picker",
          "id": "stars_image",
          "label": "Stars image (upload / media library)"
        },
        {
          "type": "text",
          "id": "stars_image_url",
          "label": "Or paste stars image URL",
          "info": "Use if the image is in Shopify Files. Leave blank if using the picker above."
        },
        {
          "type": "range",
          "id": "stars_image_height",
          "min": 12,
          "max": 40,
          "step": 2,
          "unit": "px",
          "label": "Stars image height",
          "default": 20
        },
        {
          "type": "header",
          "content": "Fallback icon stars"
        },
        {
          "type": "range",
          "id": "stars",
          "min": 1,
          "max": 5,
          "step": 1,
          "label": "Number of stars",
          "default": 5,
          "info": "Only used when no image is provided"
        },
        {
          "type": "color",
          "id": "star_color",
          "label": "Star icon color",
          "default": "#F5A623",
          "info": "Only used when no image is provided"
        },
        {
          "type": "select",
          "id": "star_size",
          "label": "Star icon size",
          "options": [
            { "value": "14px", "label": "S (14px)" },
            { "value": "16px", "label": "M (16px)" },
            { "value": "18px", "label": "L (18px)" },
            { "value": "20px", "label": "XL (20px)" }
          ],
          "default": "16px",
          "info": "Only used when no image is provided"
        },
        {
          "type": "header",
          "content": "Rating text"
        },
        {
          "type": "text",
          "id": "text",
          "label": "Rating text",
          "default": "4.9 from 2,847+ happy customers"
        },
        {
          "type": "select",
          "id": "font_size",
          "label": "Text size",
          "options": [
            { "value": "11px", "label": "S (11px)" },
            { "value": "12px", "label": "M-S (12px)" },
            { "value": "13px", "label": "M (13px)" },
            { "value": "14px", "label": "L (14px)" },
            { "value": "16px", "label": "XL (16px)" }
          ],
          "default": "13px"
        }
      ]
    },
    {
      "type": "social_proof_banner",
      "name": "Social Proof Banner",
      "limit": 2,
      "settings": [
        {
          "type": "header",
          "content": "Avatar images"
        },
        { "type": "image_picker", "id": "avatar_1", "label": "Avatar 1" },
        { "type": "image_picker", "id": "avatar_2", "label": "Avatar 2" },
        { "type": "image_picker", "id": "avatar_3", "label": "Avatar 3" },
        { "type": "image_picker", "id": "avatar_4", "label": "Avatar 4 (optional)" },
        {
          "type": "range",
          "id": "avatar_size",
          "min": 20, "max": 44, "step": 2, "unit": "px",
          "label": "Avatar size", "default": 28
        },
        { "type": "color", "id": "avatar_border_color", "label": "Avatar border color", "default": "#FFFFFF" },
        { "type": "header", "content": "Text & checkmark" },
        {
          "type": "richtext",
          "id": "text",
          "label": "Banner text",
          "default": "<p><strong>2,847+</strong> customers started their fresh breath transformation this month</p>"
        },
        { "type": "checkbox", "id": "show_checkmark", "label": "Show checkmark icon", "default": true },
        { "type": "color", "id": "checkmark_color", "label": "Checkmark color", "default": "#22C55E" },
        { "type": "header", "content": "Styling" },
        { "type": "color", "id": "bg_color", "label": "Background color", "default": "#F4F4F5", "info": "Set to transparent for no background" },
        { "type": "color", "id": "text_color", "label": "Text color", "default": "#52525B" },
        {
          "type": "select", "id": "font_size", "label": "Font size",
          "options": [
            { "value": "11px", "label": "S (11px)" },
            { "value": "12px", "label": "M-S (12px)" },
            { "value": "13px", "label": "M (13px)" },
            { "value": "14px", "label": "L (14px)" }
          ],
          "default": "13px"
        },
        { "type": "range", "id": "padding_vertical", "min": 0, "max": 24, "step": 2, "unit": "px", "label": "Padding top / bottom", "default": 10 },
        { "type": "range", "id": "padding_horizontal", "min": 0, "max": 24, "step": 2, "unit": "px", "label": "Padding left / right", "default": 14 }
      ]
    },
    {
      "type": "benefit_bullets",
      "name": "Benefit Bullets",
      "limit": 1,
      "settings": [
        {
          "type": "header",
          "content": "── Icon style"
        },
        {
          "type": "select",
          "id": "icon_style",
          "label": "Icon style",
          "options": [
            { "value": "filled", "label": "Filled circle" },
            { "value": "outline", "label": "Outline circle" },
            { "value": "bare", "label": "Check only (no circle)" }
          ],
          "default": "outline"
        },
        {
          "type": "range",
          "id": "icon_size",
          "min": 14,
          "max": 32,
          "step": 2,
          "unit": "px",
          "label": "Icon size",
          "default": 20
        },
        {
          "type": "color",
          "id": "icon_bg_color",
          "label": "Icon color",
          "default": "#0D9373",
          "info": "Fill or stroke color depending on style"
        },
        {
          "type": "color",
          "id": "icon_check_color",
          "label": "Checkmark color",
          "default": "#FFFFFF",
          "info": "Only used with Filled style"
        },
        {
          "type": "header",
          "content": "── Typography"
        },
        {
          "type": "select",
          "id": "font_size",
          "label": "Text size",
          "options": [
            { "value": "13px", "label": "XS (13px)" },
            { "value": "14px", "label": "S (14px)" },
            { "value": "15px", "label": "M (15px)" },
            { "value": "16px", "label": "L (16px)" },
            { "value": "17px", "label": "XL (17px)" },
            { "value": "18px", "label": "2XL (18px)" },
            { "value": "20px", "label": "3XL (20px)" }
          ],
          "default": "15px"
        },
        {
          "type": "color",
          "id": "title_color",
          "label": "Bold title color",
          "default": "#18181B"
        },
        {
          "type": "color",
          "id": "desc_color",
          "label": "Description color",
          "default": "#A1A1AA"
        },
        {
          "type": "header",
          "content": "── Layout"
        },
        {
          "type": "range",
          "id": "item_padding",
          "min": 4,
          "max": 24,
          "step": 2,
          "unit": "px",
          "label": "Padding between items",
          "default": 10
        },
        {
          "type": "range",
          "id": "icon_text_gap",
          "min": 4,
          "max": 20,
          "step": 2,
          "unit": "px",
          "label": "Gap: icon → text",
          "default": 10
        },
        {
          "type": "header",
          "content": "── Dividers"
        },
        {
          "type": "checkbox",
          "id": "show_dividers",
          "label": "Show divider between items",
          "default": true
        },
        {
          "type": "color",
          "id": "divider_color",
          "label": "Divider color",
          "default": "#F0F0F0"
        },
        {
          "type": "header",
          "content": "── Background (optional)"
        },
        {
          "type": "color",
          "id": "bg_color",
          "label": "Background",
          "default": "#00000000",
          "info": "Leave transparent for no background"
        },
        {
          "type": "range",
          "id": "padding_vertical",
          "min": 0,
          "max": 24,
          "step": 2,
          "unit": "px",
          "label": "Padding top / bottom",
          "default": 0
        },
        {
          "type": "range",
          "id": "padding_horizontal",
          "min": 0,
          "max": 24,
          "step": 2,
          "unit": "px",
          "label": "Padding left / right",
          "default": 0
        },
        {
          "type": "header",
          "content": "── Bullet 1"
        },
        {
          "type": "text",
          "id": "bullet_1_title",
          "label": "Title",
          "default": "Bad breath killed instantly"
        },
        {
          "type": "text",
          "id": "bullet_1_desc",
          "label": "Description",
          "default": "Zinc destroys odor molecules on contact"
        },
        {
          "type": "header",
          "content": "── Bullet 2"
        },
        {
          "type": "text",
          "id": "bullet_2_title",
          "label": "Title",
          "default": "The root cause, actually fixed"
        },
        {
          "type": "text",
          "id": "bullet_2_desc",
          "label": "Description",
          "default": "Probiotics replace the bacteria behind it"
        },
        {
          "type": "header",
          "content": "── Bullet 3"
        },
        {
          "type": "text",
          "id": "bullet_3_title",
          "label": "Title",
          "default": "Fresh breath that lasts all day"
        },
        {
          "type": "text",
          "id": "bullet_3_desc",
          "label": "Description",
          "default": "No more gum, mints, or worrying"
        },
        {
          "type": "header",
          "content": "── Bullet 4"
        },
        {
          "type": "text",
          "id": "bullet_4_title",
          "label": "Title",
          "default": "Healthier mouth overall"
        },
        {
          "type": "text",
          "id": "bullet_4_desc",
          "label": "Description",
          "default": "Strengthens gums, teeth, and oral flora"
        }
      ]
    },
    {
      "type": "badges",
      "name": "Prop Badges",
      "limit": 1,
      "settings": [
        {
          "type": "select", "id": "font_size", "label": "Badge text size",
          "options": [
            { "value": "10px", "label": "S (10px)" },
            { "value": "11px", "label": "M-S (11px)" },
            { "value": "12px", "label": "M (12px)" },
            { "value": "13px", "label": "L (13px)" },
            { "value": "14px", "label": "XL (14px)" }
          ],
          "default": "12px"
        },
        { "type": "header", "content": "Badge 1" },
        { "type": "text", "id": "badge_1", "label": "Text", "default": "Works in Seconds" },
        { "type": "select", "id": "badge_1_style", "label": "Style", "options": [{ "value": "gold", "label": "Gold" },{ "value": "steel", "label": "Silver" },{ "value": "dark", "label": "Dark" },{ "value": "white", "label": "White" },{ "value": "chrome", "label": "Chrome" }], "default": "gold" },
        { "type": "select", "id": "badge_1_icon", "label": "Icon", "options": [{ "value": "lightning", "label": "Lightning" },{ "value": "flask", "label": "Flask" },{ "value": "sparkle", "label": "Sparkle" },{ "value": "shield", "label": "Shield" },{ "value": "check", "label": "Check" },{ "value": "leaf", "label": "Leaf" },{ "value": "heart", "label": "Heart" },{ "value": "clock", "label": "Clock" },{ "value": "star", "label": "Star" }], "default": "lightning" },
        { "type": "header", "content": "Badge 2" },
        { "type": "text", "id": "badge_2", "label": "Text", "default": "30+ Years Research" },
        { "type": "select", "id": "badge_2_style", "label": "Style", "options": [{ "value": "gold", "label": "Gold" },{ "value": "steel", "label": "Silver" },{ "value": "dark", "label": "Dark" },{ "value": "white", "label": "White" },{ "value": "chrome", "label": "Chrome" }], "default": "steel" },
        { "type": "select", "id": "badge_2_icon", "label": "Icon", "options": [{ "value": "lightning", "label": "Lightning" },{ "value": "flask", "label": "Flask" },{ "value": "sparkle", "label": "Sparkle" },{ "value": "shield", "label": "Shield" },{ "value": "check", "label": "Check" },{ "value": "leaf", "label": "Leaf" },{ "value": "heart", "label": "Heart" },{ "value": "clock", "label": "Clock" },{ "value": "star", "label": "Star" }], "default": "flask" },
        { "type": "header", "content": "Badge 3" },
        { "type": "text", "id": "badge_3", "label": "Text", "default": "1 Gummy/Day" },
        { "type": "select", "id": "badge_3_style", "label": "Style", "options": [{ "value": "gold", "label": "Gold" },{ "value": "steel", "label": "Silver" },{ "value": "dark", "label": "Dark" },{ "value": "white", "label": "White" },{ "value": "chrome", "label": "Chrome" }], "default": "steel" },
        { "type": "select", "id": "badge_3_icon", "label": "Icon", "options": [{ "value": "lightning", "label": "Lightning" },{ "value": "flask", "label": "Flask" },{ "value": "sparkle", "label": "Sparkle" },{ "value": "shield", "label": "Shield" },{ "value": "check", "label": "Check" },{ "value": "leaf", "label": "Leaf" },{ "value": "heart", "label": "Heart" },{ "value": "clock", "label": "Clock" },{ "value": "star", "label": "Star" }], "default": "sparkle" },
        { "type": "header", "content": "Badge 4 (optional)" },
        { "type": "text", "id": "badge_4", "label": "Text" },
        { "type": "select", "id": "badge_4_style", "label": "Style", "options": [{ "value": "gold", "label": "Gold" },{ "value": "steel", "label": "Silver" },{ "value": "dark", "label": "Dark" },{ "value": "white", "label": "White" },{ "value": "chrome", "label": "Chrome" }], "default": "dark" },
        { "type": "select", "id": "badge_4_icon", "label": "Icon", "options": [{ "value": "lightning", "label": "Lightning" },{ "value": "flask", "label": "Flask" },{ "value": "sparkle", "label": "Sparkle" },{ "value": "shield", "label": "Shield" },{ "value": "check", "label": "Check" },{ "value": "leaf", "label": "Leaf" },{ "value": "heart", "label": "Heart" },{ "value": "clock", "label": "Clock" },{ "value": "star", "label": "Star" }], "default": "check" }
      ]
    },
    {
      "type": "price",
      "name": "Price",
      "limit": 1,
      "settings": [
        { "type": "text", "id": "prefix", "label": "Prefix (e.g. 'Starting at')" },
        { "type": "text", "id": "suffix", "label": "Suffix (e.g. '/month')" },
        {
          "type": "select", "id": "font_size", "label": "Price size",
          "options": [
            { "value": "18px", "label": "S (18px)" },
            { "value": "20px", "label": "M (20px)" },
            { "value": "24px", "label": "L (24px)" },
            { "value": "28px", "label": "XL (28px)" },
            { "value": "32px", "label": "XXL (32px)" }
          ],
          "default": "24px"
        },
        { "type": "color", "id": "color", "label": "Price color (leave blank for default)" }
      ]
    },
    {
      "type": "cta",
      "name": "CTA Button",
      "limit": 2,
      "settings": [
        { "type": "text", "id": "text", "label": "Button text", "default": "Get Fresh Breath Now" },
        { "type": "url", "id": "link", "label": "Button link" },
        {
          "type": "select", "id": "style", "label": "Button style",
          "options": [
            { "value": "primary", "label": "Primary (dark)" },
            { "value": "chrome", "label": "Chrome (metallic)" },
            { "value": "outline", "label": "Outline" },
            { "value": "white", "label": "White" }
          ],
          "default": "primary"
        },
        { "type": "color", "id": "bg_color", "label": "Custom background (overrides style)" },
        { "type": "color", "id": "text_color", "label": "Custom text color (overrides style)" },
        {
          "type": "select", "id": "font_size", "label": "Text size",
          "options": [
            { "value": "14px", "label": "S (14px)" },
            { "value": "16px", "label": "M (16px)" },
            { "value": "17px", "label": "L (17px)" },
            { "value": "18px", "label": "XL (18px)" }
          ],
          "default": "16px"
        },
        { "type": "checkbox", "id": "full_width", "label": "Full width", "default": true },
        { "type": "checkbox", "id": "show_arrow", "label": "Show arrow icon", "default": true },
        { "type": "checkbox", "id": "pulse", "label": "Subtle pulse animation", "default": false }
      ]
    },
    {
      "type": "trust",
      "name": "Trust Row",
      "limit": 1,
      "settings": [
        {
          "type": "select", "id": "alignment", "label": "Alignment",
          "options": [
            { "value": "flex-start", "label": "Left" },
            { "value": "center", "label": "Center" },
            { "value": "flex-end", "label": "Right" },
            { "value": "space-between", "label": "Spread" }
          ],
          "default": "flex-start"
        },
        {
          "type": "select", "id": "font_size", "label": "Text size",
          "options": [
            { "value": "9px", "label": "XS (9px)" },
            { "value": "10px", "label": "S (10px)" },
            { "value": "11px", "label": "M (11px)" },
            { "value": "12px", "label": "L (12px)" },
            { "value": "13px", "label": "XL (13px)" }
          ],
          "default": "11px"
        },
        { "type": "text", "id": "item_1", "label": "Item 1", "default": "Secure Checkout" },
        { "type": "select", "id": "icon_1", "label": "Icon 1", "options": [{ "value": "lock", "label": "Lock" },{ "value": "shield", "label": "Shield" },{ "value": "truck", "label": "Truck" },{ "value": "refresh", "label": "Guarantee" },{ "value": "check", "label": "Check" },{ "value": "heart", "label": "Heart" },{ "value": "star", "label": "Star" },{ "value": "package", "label": "Package" }], "default": "lock" },
        { "type": "text", "id": "item_2", "label": "Item 2", "default": "30-Day Guarantee" },
        { "type": "select", "id": "icon_2", "label": "Icon 2", "options": [{ "value": "lock", "label": "Lock" },{ "value": "shield", "label": "Shield" },{ "value": "truck", "label": "Truck" },{ "value": "refresh", "label": "Guarantee" },{ "value": "check", "label": "Check" },{ "value": "heart", "label": "Heart" },{ "value": "star", "label": "Star" },{ "value": "package", "label": "Package" }], "default": "refresh" },
        { "type": "text", "id": "item_3", "label": "Item 3", "default": "Free Shipping" },
        { "type": "select", "id": "icon_3", "label": "Icon 3", "options": [{ "value": "lock", "label": "Lock" },{ "value": "shield", "label": "Shield" },{ "value": "truck", "label": "Truck" },{ "value": "refresh", "label": "Guarantee" },{ "value": "check", "label": "Check" },{ "value": "heart", "label": "Heart" },{ "value": "star", "label": "Star" },{ "value": "package", "label": "Package" }], "default": "truck" },
        { "type": "text", "id": "item_4", "label": "Item 4 (optional)" },
        { "type": "select", "id": "icon_4", "label": "Icon 4", "options": [{ "value": "lock", "label": "Lock" },{ "value": "shield", "label": "Shield" },{ "value": "truck", "label": "Truck" },{ "value": "refresh", "label": "Guarantee" },{ "value": "check", "label": "Check" },{ "value": "heart", "label": "Heart" },{ "value": "star", "label": "Star" },{ "value": "package", "label": "Package" }], "default": "check" }
      ]
    },
    {
      "type": "richtext",
      "name": "Rich Text",
      "settings": [
        { "type": "richtext", "id": "text", "label": "Content", "default": "<p>Add any custom text here.</p>" },
        {
          "type": "select", "id": "font_size", "label": "Font size",
          "options": [
            { "value": "13px", "label": "S (13px)" },
            { "value": "14px", "label": "M-S (14px)" },
            { "value": "15px", "label": "M (15px)" },
            { "value": "16px", "label": "L (16px)" },
            { "value": "18px", "label": "XL (18px)" }
          ],
          "default": "15px"
        },
        { "type": "color", "id": "color", "label": "Color (leave blank for default)" }
      ]
    },
    {
      "type": "spacer",
      "name": "Spacer",
      "settings": [
        { "type": "range", "id": "height", "min": 4, "max": 80, "step": 4, "unit": "px", "label": "Height", "default": 16 }
      ]
    },
    {
      "type": "divider",
      "name": "Divider",
      "settings": [
        { "type": "color", "id": "color", "label": "Line color" }
      ]
    }
  ],
  "presets": [
    {
      "name": "Z-Fresh: Hero",
      "blocks": [
        {
          "type": "social_proof_banner",
          "settings": {
            "text": "<p><strong>2,847+</strong> customers started their fresh breath transformation this month</p>",
            "show_checkmark": true,
            "checkmark_color": "#22C55E",
            "bg_color": "#F4F4F5"
          }
        },
        {
          "type": "rating",
          "settings": {
            "stars_image_url": "/cdn/shop/files/1.avif?v=1770050532",
            "stars_image_height": 20,
            "text": "4.9 from 2,847+ happy customers"
          }
        },
        {
          "type": "heading",
          "settings": {
            "text": "Still Worried About Your Breath Right Now?",
            "tag": "h1",
            "font_size_mobile": "26px",
            "font_size_desktop": "48px"
          }
        },
        {
          "type": "subtitle",
          "settings": {
            "text": "<p>The first oral probiotic that <strong>kills bad breath instantly</strong>, fixes it permanently — and rebuilds your oral health from the inside.</p>"
          }
        },
        {
          "type": "benefit_bullets",
          "settings": {
            "icon_style": "outline",
            "icon_size": 20,
            "bullet_1_title": "Bad breath killed instantly",
            "bullet_1_desc": "Zinc destroys odor molecules on contact",
            "bullet_2_title": "The root cause, actually fixed",
            "bullet_2_desc": "Probiotics replace the bacteria behind it",
            "bullet_3_title": "Fresh breath that lasts all day",
            "bullet_3_desc": "No more gum, mints, or worrying",
            "bullet_4_title": "Healthier mouth overall",
            "bullet_4_desc": "Strengthens gums, teeth, and oral flora",
            "icon_bg_color": "#0D9373",
            "show_dividers": true
          }
        },
        {
          "type": "price",
          "settings": {
            "font_size": "24px"
          }
        },
        {
          "type": "cta",
          "settings": {
            "text": "Get Fresh Breath Now",
            "style": "primary",
            "show_arrow": true,
            "full_width": true
          }
        },
        {
          "type": "trust",
          "settings": {
            "item_1": "Secure Checkout",
            "icon_1": "lock",
            "item_2": "30-Day Guarantee",
            "icon_2": "refresh",
            "item_3": "Free Shipping",
            "icon_3": "truck"
          }
        }
      ]
    }
  ]
}
{% endschema %}
