{%- liquid assign container = section.settings.container assign padding_full_width = section.settings.padding_full_width assign show_sticky_info = section.settings.show_sticky_info assign mg_top_desktop = section.settings.mg_top_desktop assign mg_top_tablet = section.settings.mg_top_tablet assign mg_top_mobile = section.settings.mg_top_mobile assign mg_bottom_desktop = section.settings.mg_bottom_desktop assign mg_bottom_tablet = section.settings.mg_bottom_tablet assign mg_bottom_mobile = section.settings.mg_bottom_mobile assign main_image_position = section.settings.main_image_position assign main_image_show_custom_cursor = section.settings.main_image_show_custom_cursor assign count_color = section.settings.count_color assign icon_color = section.settings.icon_color assign thumnail_layout = section.settings.thumnail_layout assign main_image_arrows_desktop = section.settings.main_image_arrows_desktop assign main_image_arrows_mobile = section.settings.main_image_arrows_mobile assign main_image_counter_mobile = section.settings.main_image_counter_mobile assign main_image_enable_parallax_mb = section.settings.main_image_enable_parallax_mb assign main_image_show_zoom_icon_mb = section.settings.main_image_show_zoom_icon_mb assign main_image_layout = section.settings.main_image_layout assign show_thumbnail_mobile = section.settings.show_thumbnail_mobile assign max_thumbnail_to_show = section.settings.thumbnail_to_show assign current_variant = product.selected_or_first_available_variant assign variantCount = product.variants | size assign featured_media_aspect_ratio = product.featured_media.aspect_ratio if product.featured_media.aspect_ratio == nil assign featured_media_aspect_ratio = 1 endif assign media_size = section.settings.product_image_ratio assign portrait_aspect_ratio = section.settings.portrait_aspect_ratio | append: '%' assign zoomed_image = section.settings.zoomed_image assign media_fit = section.settings.media_fit assign product_image_popup = section.settings.product_image_popup assign video_layout = section.settings.video_layout assign show_badge = section.settings.show_badge assign show_hot_stock = settings.show_hot_stock if show_hot_stock assign productMaxStock = settings.hot_stock_limit | plus: 0 endif assign show_qty = section.settings.show_qty assign show_subtotal = section.settings.show_subtotal assign subtotal_style = section.settings.subtotal_style assign show_subtotal_text = false assign subtotal = 0 if show_subtotal assign show_subtotal_text = true assign subtotal = current_variant.price | money comment [Yagi Automatic Discount Helper] start - overrride the subtotal if there is auto discount applied from the app endcomment assign auto_discounted_price = current_variant.metafields.app--168074346497.auto_discounted_price.value | default: current_variant.price if auto_discounted_price < current_variant.price assign subtotal = auto_discounted_price | money endif comment [Yagi Automatic Discount Helper] end - overrride the subtotal if there is auto discount applied from the app endcomment endif assign show_sticky_add_to_cart = section.settings.show_sticky_add_to_cart assign sticky_atc_layout = section.settings.sticky_atc_layout assign show_sticky_vendor = section.settings.show_sticky_vendor assign show_tab = section.settings.show_tab if show_tab assign tab_layout = section.settings.tab_layout assign tab_layout_mobile = section.settings.tab_layout_mobile assign icon_style_layout = section.settings.icon_style_layout assign title_font_size = section.settings.title_font_size assign title_font_size_mb = section.settings.title_font_size_mb assign font_weight_title = section.settings.font_weight_title assign title_text_transform = section.settings.title_text_transform assign title_padding_top_bottom = section.settings.title_padding_top_bottom if section.blocks.size > 0 assign show_tab = true else assign show_tab = false endif endif assign first_3d_model = product.media | where: "media_type", "model" | first assign has_product_combo = false assign has_sidebar = false assign show_sidebar = section.settings.show_sidebar assign sidebar_type = 'vertical' assign sidebar_position = section.settings.sidebar_position assign show_sidebar_collapse = section.settings.show_sidebar_collapse assign sidebar_collapse_default = section.settings.sidebar_collapse_default if show_sidebar if sidebar_type == 'vertical' if section.blocks.size > 0 assign has_sidebar = true endif endif endif if has_sidebar assign sidebar_heading_font = section.settings.sidebar_heading_font assign sidebar_heading_font_size = section.settings.sidebar_heading_font_size assign sidebar_heading_font_weight = section.settings.sidebar_heading_font_weight assign sidebar_heading_text_transform = section.settings.sidebar_heading_text_transform assign enable_sticky = section.settings.enable_sticky assign sidebar_layout = section.settings.sidebar_layout endif assign has_breadcrumb = false for block in section.blocks case block.type when 'breadcrumb' assign breadcrumb_layout = block.settings.breadcrumb_layout assign breadcrumb_alignment = block.settings.breadcrumb_alignment assign breadcrumb_mg_top_desktop = block.settings.breadcrumb_mg_top_desktop assign breadcrumb_mg_top_mobile = block.settings.breadcrumb_mg_top_mobile assign breadcrumb_mg_bottom_desktop = block.settings.breadcrumb_mg_bottom_desktop assign breadcrumb_mg_bottom_mobile = block.settings.breadcrumb_mg_bottom_mobile assign breadcrumb_bg = block.settings.breadcrumb_bg assign breadcrumb_gradient = block.settings.breadcrumb_gradient assign breadcrumb_bg_mb = block.settings.breadcrumb_bg_mb assign breadcrumb_gradient_mb = block.settings.breadcrumb_gradient_mb if breadcrumb_layout == 'full' assign check_breadcrumb_full = true else assign check_breadcrumb_full = false endif assign has_breadcrumb = true when 'title' assign check_block_title = true when 'quantity_selector' assign check_block_qty = true assign qty_style = block.settings.qty_style assign qty_layout = block.settings.qty_layout when 'perks' assign has_perks = true assign show_compare_color = block.settings.show_compare_color if show_compare_color assign show_compare_color_drop_drap = block.settings.show_compare_color_drop_drap assign product_swatch_option = settings.swatch | downcase assign compare_layout = block.settings.compare_layout assign isColor = false for option in product.options_with_values assign option_name = option.name | downcase if product_swatch_option contains option_name assign isColor = true assign index = forloop.index0 if option.values.size > 1 assign show_compare_color = true endif endif endfor endif assign show_size_chart = block.settings.show_size_chart if show_size_chart assign has_size_chart = false assign size_chart_type = block.settings.size_chart_type if size_chart_type == 'product_type' or size_chart_type == 'product_vendor' assign size_chart_image_type = block.settings.size_chart_image_type elsif size_chart_type == 'custom_image' assign size_chart_image = block.settings.size_chart_image endif if size_chart_type == 'product_type' if size_chart_image_type == 'jpg' assign size_chart_image = product.type | handle | append: '-sizechart.jpg' else assign size_chart_image = product.type | handle | append: '-sizechart.png' endif if images[size_chart_image] != blank assign has_size_chart = true endif elsif size_chart_type == 'product_vendor' if size_chart_image_type == 'jpg' assign size_chart_image = product.vendor | handle | append: '-sizechart.jpg' else assign size_chart_image = product.vendor | handle | append: '-sizechart.jpg' endif if images[size_chart_image] != blank assign has_size_chart = true endif elsif size_chart_type == 'metafield' if product.metafields.c_f.size_chart assign has_size_chart = true endif elsif size_chart_type == 'custom_image' if size_chart_image != blank assign has_size_chart = true endif endif endif when 'buy_buttons' assign check_block_buttons = true when 'share' assign show_share = block.settings.show_share assign share_layout = block.settings.share_layout when 'variant_picker' assign picker_type = block.settings.picker_type when 'grouped_product' assign product_combo = product.metafields.c_f.product_combo assign combo_discount_rate = product.metafields.c_f.combo_discount_rate | plus: 0 | divided_by: 100.00 if product_combo assign has_product_combo = true else assign has_product_combo = false endif when 'complementary_products' assign complementary_product_title = block.settings.complementary_product_title assign complementary_product_arrows = block.settings.complementary_product_arrows assign complementary_product_dots = block.settings.complementary_product_dots assign complementary_product_layout = block.settings.complementary_product_layout if complementary_product_layout == "1" assign complementary_product_limit_1 = block.settings.complementary_product_limit_1 endif if complementary_product_layout == "2" assign complementary_product_limit_2 = block.settings.complementary_product_limit_2 assign complementary_product_object = block.settings.complementary_product_object endif endcase endfor if show_qty if check_block_qty if check_block_buttons if qty_layout == '1' assign check_show_qty = 'show_qty_1' elsif qty_layout == '2' assign check_show_qty = 'show_qty_2' endif else assign check_show_qty = 'show_qty_1' endif else assign check_show_qty = 'show_qty_0' endif else assign check_show_qty = 'show_qty_0' endif if show_share if check_block_title and check_block_buttons assign check_show_share = share_layout elsif check_block_title and check_block_buttons != true if share_layout == '2' assign check_show_share = '1' else assign check_show_share = share_layout endif elsif check_block_title != true and check_block_buttons if share_layout == '3' assign check_show_share = '1' else assign check_show_share = share_layout endif endif endif assign show_customization_option = settings.show_customization_option if show_customization_option assign has_customization_option = false assign customization_option_type = settings.customization_option_type assign customization_option_hidden = settings.customization_option_hidden if customization_option_type == 'all' assign has_customization_option = true elsif customization_option_type == 'tag' assign customization_option_tags = settings.customization_option_tags | downcase | strip | split: "," for tag in customization_option_tags assign tagtitle = tag | strip assign productTag = product.tags | downcase if productTag contains tagtitle assign has_customization_option = true endif endfor elsif customization_option_type == 'collection' assign customization_option_collection = settings.customization_option_collection | downcase | handle if customization_option_collection != blank for collection in product.collections assign collection_title = collection.title | downcase | handle if collection_title == customization_option_collection assign has_customization_option = true endif endfor endif endif assign customization_option_1 = settings.customization_option_1 assign customization_option_2 = settings.customization_option_2 endif -%} {%- if first_3d_model -%} <link rel="stylesheet" href="{{ 'component-deferred-media.css' | asset_url }}" media="print" onload="this.media='all'"> <link rel="stylesheet" href="{{ 'component-product-model.css' | asset_url }}" media="print" onload="this.media='all'"> <link id="ModelViewerStyle" rel="stylesheet" href="https://cdn.shopify.com/shopifycloud/model-viewer-ui/assets/v1.0/model-viewer-ui.css" media="print" onload="this.media='all'"> <link id="ModelViewerOverride" rel="stylesheet" href="{{ 'component-model-viewer-ui.css' | asset_url }}" media="print" onload="this.media='all'"> {%- endif -%} <style type="text/css"> #ProductSection-{{ section.id }} .productView-thumbnail .productView-thumbnail-link:after{ padding-bottom: {{ portrait_aspect_ratio }}; } #ProductSection-{{ section.id }} .cursor-wrapper .counter { color: {{ count_color }}; } #ProductSection-{{ section.id }} .cursor-wrapper .counter #count-image:before { background-color: {{ count_color }}; } #ProductSection-{{ section.id }} .custom-cursor__inner .arrow:before, #ProductSection-{{ section.id }} .custom-cursor__inner .arrow:after { background-color: {{ icon_color }}; } #ProductSection-{{ section.id }} .tabs-contents .toggleLink, #ProductSection-{{ section.id }} .tabs .tab .tab-title { font-size: {{ title_font_size | append: 'px' }}; font-weight: {{ font_weight_title }}; text-transform: {{ title_text_transform }}; padding-top: {{ title_padding_top_bottom | append: 'px' }}; padding-bottom: {{ title_padding_top_bottom | append: 'px' }}; } {% if has_sidebar %} :root { {% if sidebar_heading_font == 'font_1' %} --sidebar-heading-font: var(--font-heading-family); {% elsif sidebar_heading_font == 'font_2' %} --sidebar-heading-font: var(--font-body-family); {% endif %} {% if colors_bg != 'rgba(0,0,0,0)' and colors_bg != blank %} --body-bg: {{ colors_bg }}; {% endif %} } {% endif %} {% if has_sidebar %} #ProductSection-{{ section.id }} .sidebarBlock-heading{ font-family: var(--sidebar-heading-font); font-size: {{ sidebar_heading_font_size | append: 'px' }}; font-weight: {{ sidebar_heading_font_weight }}; text-transform: {{ sidebar_heading_text_transform }}; } {% endif %} @media (max-width: 550px) { #ProductSection-{{ section.id }} .tabs-contents .toggleLink, #ProductSection-{{ section.id }} .tabs .tab .tab-title { font-size: {{ title_font_size_mb | append: 'px' }}; } } @media (max-width: 767px) { #ProductSection-{{ section.id }} { padding-top: {{ mg_top_mobile | append: 'px' }}; padding-bottom: {{ mg_bottom_mobile | append: 'px' }}; } } @media (min-width: 1025px) { {% if container == 'fullwidth' %} #ProductSection-{{ section.id }} > .container-full, #ProductSection-{{ section.id }} .moreItem-breadcrumb { padding-left: {{ padding_full_width | append: 'px' }}; padding-right: {{ padding_full_width | append: 'px' }}; } {% endif %} } @media (min-width: 768px) and (max-width: 1199px) { #ProductSection-{{ section.id }} { padding-top: {{ mg_top_tablet | append: 'px' }}; padding-bottom: {{ mg_bottom_tablet | append: 'px' }}; } } @media (min-width: 1200px) { #ProductSection-{{ section.id }} { padding-top: {{ mg_top_desktop | append: 'px' }}; padding-bottom: {{ mg_bottom_desktop | append: 'px' }}; } } </style> <script> window.product_inven_array_{{ product.id }} = { {% for variant in product.variants %} '{{ variant.id }}': '{{ variant.inventory_quantity }}', {%endfor%} }; window.selling_array_{{ product.id }} = { {% for variant in product.variants %} '{{ variant.id }}': '{{ variant.inventory_policy }}', {%endfor%} }; window.subtotal = { show: {{ show_subtotal_text }}, style: {{ subtotal_style }}, text: `{{ 'products.product.sub_total' | t : value : '[value]' }}` }; window.variant_image_group = 'false'; </script> {%- if product_image_popup == 'fancybox' -%} <link rel="stylesheet" href="{{ 'component-fancybox.css' | asset_url }}" media="print" onload="this.media='all'"> <noscript>{{ 'component-fancybox.css' | asset_url | stylesheet_tag }}</noscript> {%- endif -%} <div class="product-details product-full-width-2{% if has_sidebar %} has-sidebar{% endif %}" data-section-id="{{ section.id }}" data-section-type="product" id="ProductSection-{{ section.id }}" data-has-combo="{{ has_product_combo }}" data-image-opo> {% if has_breadcrumb %} {%- liquid if breadcrumb_gradient != 'rgba(0,0,0,0)' or breadcrumb_bg != 'rgba(0,0,0,0)' or breadcrumb_gradient_mb != 'rgba(0,0,0,0)' or breadcrumb_bg_mb != 'rgba(0,0,0,0)' assign breadcrumb_has_bg = true else assign breadcrumb_has_bg = false endif -%} <div class="productView-moreItem moreItem-breadcrumb {% unless check_breadcrumb_full %}hidden-on-desktop{% endunless %}" style="--spacing-top: {{ breadcrumb_mg_top_desktop | append: 'px' }}; --spacing-bottom: {{ breadcrumb_mg_bottom_desktop | append: 'px' }}; --spacing-top-mb: {{ breadcrumb_mg_top_mobile | append: 'px' }}; --spacing-bottom-mb: {{ breadcrumb_mg_bottom_mobile | append: 'px' }}; --breadcrumb-bg: {%- if breadcrumb_gradient != '' -%}{{ breadcrumb_gradient }}{%- else -%}{{ breadcrumb_bg }}{%- endif -%}; --breadcrumb-mb-bg: {% if breadcrumb_gradient_mb != blank and breadcrumb_gradient_mb != 'rgba(0,0,0,0)' %}{{ breadcrumb_gradient_mb }}{% elsif breadcrumb_bg_mb != blank and breadcrumb_bg_mb != 'rgba(0,0,0,0)' %}{{ breadcrumb_bg_mb }}{% else %}#fff{% endif %}; " > {% if breadcrumb_has_bg %} <div class="breadcrumb-bg"> {% endif %} <div class="{% if container == '1170' %}container-1170{% elsif container == '1770' %}container-1770{% elsif container == 'fullwidth'%}container-full{% else %}container{% endif %}"> {% render 'breadcrumb', alignment: breadcrumb_alignment %} </div> {% if breadcrumb_has_bg %} </div> {% endif %} </div> {% endif %} <div class="productView-container {% if container == '1170' %}container-1170{% elsif container == '1770' %}container-1770{% elsif container == 'fullwidth'%}container-full{% else %}container{% endif %}"> <div class="productView halo-productView layout-{{ thumnail_layout }} positionMainImage--{{ main_image_position }}{% if product.media.size == 0 %} productView-no-media{% endif %}{% if show_sticky_info %} productView-sticky{% endif %}{% if main_image_enable_parallax_mb %} productView-parallax-mobile{%endif %}{% if has_sidebar %} has-left-sidebar sidebar--layout_{{ sidebar_type }}{% endif %}" data-product-handle="{{ product.handle }}"> {%- if has_sidebar -%} {{ 'component-main-sidebar.css' | asset_url | stylesheet_tag }} <div class="toolbar-wrapper toolbar-mobile"> <div class="toolbar-item toolbar-sidebar" data-sidebar> <span class="toolbar-icon icon-filter"> {% render 'icon-sidebar' %} </span> </div> </div> <div class="page-sidebar page-sidebar-{{ sidebar_position }} page-sidebar--{{ sidebar_type }} sidebar--{{ sidebar_layout }}{% if enable_sticky %} has-sticky{% endif %}" id="halo-sidebar"> <a href="javascript:void(0)" class="halo-sidebar-close" data-close-sidebar role="button"> <span class="visually-hidden">{{ 'general.common.close' | t }}</span> {% render 'icon-close' %} </a> <div class="halo-sidebar-header text-left"> <span class="title"> {{ 'sections.sidebar.title' | t }} </span> </div> <div class="halo-sidebar-wrapper custom-scrollbar"> {% render 'sidebar', results: collection, section: section, sidebar_type: sidebar_type, show_collapse: show_sidebar_collapse, sidebar_collapse: sidebar_collapse_default %} </div> </div> {%- endif -%} {%- if has_sidebar -%} <div class="page-content" id="ProductContent"> {%- endif -%} <div class="productView-top"> <div class="halo-productView-left productView-images clearfix{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--fade-in{% endif %}" data-image-gallery> {%- if main_image_show_custom_cursor -%} <div class="cursor-wrapper handleMouseLeave"> <div class="custom-cursor custom-cursor__outer"> <div class="custom-cursor custom-cursor__inner"> <span class="arrow arrow-bar fadeIn"></span> </div> </div> {%- if product.media.size -%} <div class="counter"><span id="count-image">1</span>{{ product.media.size }}</div> {%- endif -%} </div> {%- endif -%} <div class="productView-images-wrapper" data-video-{{ video_layout }}> <div class="productView-image-wrapper"> {%- if show_badge -%} {% render 'product-badge', product: product, class: 'productView-badge', badge_detail: true, serial: 1 %} {%- endif -%} <div class="productView-nav style-{{ main_image_layout }} image-fit-{{ media_fit }}" data-image-gallery-main data-arrows-desk="{{ main_image_arrows_desktop }}" data-arrows-mobi="{{ main_image_arrows_mobile }}" data-counter-mobi="{{ main_image_counter_mobile }}" data-media-count="{{ product.media.size }}" > {%- for media in product.media -%} {%- case media.media_type -%} {%- when 'image' -%} <div class="productView-image productView-image-{{ media_size }} filter-{{ media.alt | handle }} fit-{{ media_fit }}" data-index="{{ forloop.index }}"> <div class="productView-img-container product-single__media" data-media-id="{{ media.id }}" {% unless media_fit == 'unset' %} {% if product.featured_media %} {% if media_size == 'adapt' %} style="padding-bottom: {{ 1 | divided_by: featured_media_aspect_ratio | times: 100 }}%;" {% elsif media_size == 'square' %} style="padding-bottom: 100%;" {% elsif media_size == 'portrait' %} {% if portrait_aspect_ratio != blank %} style="padding-bottom: {{ portrait_aspect_ratio }};" {% endif %} {% endif %} {% endif %} {% endunless %} > <div class="media" {% if zoomed_image and main_image_show_custom_cursor != true %} data-zoom-image="{{ media.preview_image | img_url: 'master' }}"{% endif %} {% if product_image_popup == 'fancybox' %} data-fancybox="images" href="{{ media.preview_image | img_url: 'master' }}" {% endif %} > <img id="product-featured-image-{{ media.id }}" {% if settings.enable_lazyload and forloop.index > 3 %}data-{% endif %}srcset="{{ media.preview_image | img_url: 'master' }}" {% unless settings.enable_lazyload and forloop.index > 3 %}src="{{ media | img_url: 'master' }}"{% endunless %} alt="{{ media.preview_image.alt | escape }}" sizes="auto" loading="lazy" data-sizes="auto" data-main-image data-index="{{ forloop.index }}" data-cursor-image {% if settings.enable_lazyload and forloop.index > 3 %}class="lazyload"{% endif %} /> {%- if settings.enable_lazyload and forloop.index > 3 -%}<span class="data-lazy-loading"></span>{%- endif -%} </div> </div> </div> {%- when 'external_video' -%} {%- if video_layout == 'thumbnail' -%} <div class="productView-image productView-image-{{ media_size }}"> <div class="productView-img-container product-single__media" data-media-id="{{ media.id }}" {% if media_size == 'adapt' %} style="padding-bottom: {{ 1 | divided_by: featured_media_aspect_ratio | times: 100 }}%;" {% elsif media_size == 'square' %} style="padding-bottom: 100%;" {% elsif media_size == 'portrait' %} {% if portrait_aspect_ratio != blank %} style="padding-bottom: {{ portrait_aspect_ratio }};" {% endif %} {% endif %} > {%- if media.host == 'youtube' -%} <div class="media has-video"> <img srcset="https://i.ytimg.com/vi/{{ media.external_id }}/maxresdefault.jpg" src="https://i.ytimg.com/vi/{{ media.external_id }}/maxresdefault.jpg" alt="{{ media.alt | escape }}" sizes="(min-width: 1200px) calc((1200px - 10rem) / 2), (min-width: 750px) calc((100vw - 11.5rem) / 2), calc(100vw - 4rem)" loading="lazy" data-sizes="auto" > </div> <div class="productView-video youtube" data-type="youtube" data-video-url="{{ media.external_id }}"> <div data-youtube="{{ media.external_id }}"></div> </div> {%- else -%} <div class="media has-video"> <img srcset="{{ media | img_url: 'master' }}" src="{{ media | img_url: 'master' }}" alt="{{ media.alt | escape }}" sizes="(min-width: 1200px) calc((1200px - 10rem) / 2), (min-width: 750px) calc((100vw - 11.5rem) / 2), calc(100vw - 4rem)" loading="lazy" data-sizes="auto" > </div> <div class="productView-video vimeo" data-vimeo data-type="vimeo" data-video-url="{{ media | external_video_tag }}"> {{ media | external_video_tag }} </div> {%- endif -%} </div> </div> {%- endif -%} {%- when 'video' -%} {%- if video_layout == 'thumbnail' -%} <div class="productView-image productView-image-{{ media_size }}"> <div class="productView-img-container product-single__media" data-media-id="{{ media.id }}" {% if media_size == 'adapt' %} style="padding-bottom: {{ 1 | divided_by: featured_media_aspect_ratio | times: 100 }}%;" {% elsif media_size == 'square' %} style="padding-bottom: 100%;" {% elsif media_size == 'portrait' %} {% if portrait_aspect_ratio != blank %} style="padding-bottom: {{ portrait_aspect_ratio }};" {% endif %} {% endif %} > <div class="media has-video"> <img srcset="{{ media | img_url: 'master' }}" src="{{ media | img_url: 'master' }}" alt="{{ media.alt | escape }}" sizes="(min-width: 1200px) calc((1200px - 10rem) / 2), (min-width: 750px) calc((100vw - 11.5rem) / 2), calc(100vw - 4rem)" loading="lazy" data-sizes="auto" > </div> <div class="productView-video mp4" data-mp4 data-type="mp4" data-video-url="{{ media | video_tag: controls: true, image_size: 'master' }}"> {{ media | video_tag: controls: true, image_size: 'master' }} </div> </div> </div> {%- endif -%} {%- when 'model' -%} <div class="productView-image productView-image-{{ media_size }}"> <product-model class="deferred-media no-js-hidden productView-img-container product-single__media" {% if media_size == 'adapt' %} style="padding-bottom: {{ 1 | divided_by: featured_media_aspect_ratio | times: 100 }}%;" {% elsif media_size == 'square' %} style="padding-bottom: 100%;" {% elsif media_size == 'portrait' %} {% if portrait_aspect_ratio != blank %} style="padding-bottom: {{ portrait_aspect_ratio }};" {% endif %} {% endif %} > <button id="Deferred-Poster-Modal-{{ media.id }}" class="deferred-media__poster" type="button"> <span class="deferred-media__poster-button motion-reduce"> {%- render 'icon-3d-model' -%} </span> <img srcset="{% if media.preview_image.width >= 288 %}{{ media.preview_image | img_url: '288x' }} 288w,{% endif %} {% if media.preview_image.width >= 576 %}{{ media.preview_image | img_url: '576x' }} 576w,{% endif %} {% if media.preview_image.width >= 550 %}{{ media.preview_image | img_url: '550x' }} 550w,{% endif %} {% if media.preview_image.width >= 1100 %}{{ media.preview_image | img_url: '1100x' }} 1100w{% endif %}" src="{{ media | img_url: '550x550' }}" sizes="(min-width: 1200px) calc((1200px - 10rem) / 2), (min-width: 750px) calc((100vw - 11.5rem) / 2), calc(100vw - 4rem)" loading="lazy" width="576" height="{{ 576 | divided_by: media.preview_image.aspect_ratio }}" alt="{{ media.preview_image.alt | escape }}" > </button> <template> {{ media | media_tag: image_size: "2048x", toggleable: true }} </template> </product-model> <button class="button product__xr-button" type="button" aria-label="{{ 'products.product.xr_button_label' | t }}" data-shopify-xr data-shopify-model3d-id="{{ media.id }}" data-shopify-title="title" data-shopify-xr-hidden > {% render 'icon-3d-model' %} {{ 'products.product.xr_button' | t }} </button> </div> {%- else -%} <div class="productView-image productView-image-{{ media_size }}"> <div class="productView-img-container product-single__media" data-media-id="{{ media.id }}" {% if media_size == 'adapt' %} style="padding-bottom: {{ 1 | divided_by: featured_media_aspect_ratio | times: 100 }}%;" {% elsif media_size == 'square' %} style="padding-bottom: 100%;" {% elsif media_size == 'portrait' %} {% if portrait_aspect_ratio != blank %} style="padding-bottom: {{ portrait_aspect_ratio }};" {% endif %} {% endif %} > {{ media | media_tag }} </div> </div> {%- endcase -%} {%- endfor -%} </div> {%- if video_layout == 'popup' -%} <div class="productView-videoPopup"> {%- for media in product.media -%} {%- case media.media_type -%} {%- when 'external_video' -%} {%- if media.host == 'youtube' -%} <a class="videoPopup-btn" data-fancybox="video-gallery" href="https://www.youtube.com/watch?v={{ media.external_id }}" data-width="1200" data-height="675"> {% render 'icon-video' %} </a> {%- else -%} <a class="videoPopup-btn" data-fancybox="video-gallery" href="https://vimeo.com/{{ media.external_id }}" data-width="1200" data-height="675"> {% render 'icon-video' %} </a> {%- endif -%} {%- when 'video' -%} <a class="videoPopup-btn" data-fancybox="video-gallery" href="{{ media | video_tag | split: 'source src="' | last | split: '" type=video/mp4>' | first | strip_html | remove: '">'}}" data-width="1200" data-height="675"> {% render 'icon-video' %} </a> {%- endcase -%} {%- endfor -%} </div> {%- endif -%} {%- if main_image_show_zoom_icon_mb -%} <div class="productView-iconZoom"> {% render 'icon-zoom-1' %} </div> {%- endif -%} {%- if show_compare_color and isColor and compare_layout == '2' -%} <div class="productView-compareColor style-{{ compare_layout }}"> <button type="button" class="link" aria-label="{{ 'compare_color.general.title' | t }}" data-open-compare-color-popup> <span class="visually-hidden"> {{ 'compare_color.general.title' | t }} </span> {% render 'icon-compare-color' %} </button> </div> {%- endif -%} </div> {%- if thumnail_layout != '4' -%} <div class="productView-thumbnail-wrapper{% unless show_thumbnail_mobile %} is-hidden-mobile{% endunless %}"> <div class="productView-for clearfix" data-max-thumbnail-to-show="{{ max_thumbnail_to_show }}"> {%- for media in product.media -%} {%- case media.media_type -%} {%- when 'image' -%} <div class="productView-thumbnail filter-{{ media.alt | handle }}" data-media-id="{{ section.id }}-{{ media.id }}"> <a class="productView-thumbnail-link animated-loading" href="javascript:void(0)" data-image="{{ media | img_url: 'large' }}"> <img src="{%- if thumnail_layout == '3' -%}{{ media | img_url: 'large' }}{% else %}{{ media | img_url: 'medium' }}{% endif %}" alt="{{ media.alt | escape }}" title="{{ media.alt | escape }}" loading="lazy" /> </a> </div> {%- when 'external_video' -%} {%- if video_layout == 'thumbnail' -%} <div class="productView-thumbnail filter-{{ media.alt | handle }}" data-media-id="{{ section.id }}-{{ media.id }}"> <div class="productView-thumbnail-link animated-loading"> <img src="{%- if thumnail_layout == '3' -%}{{ media | img_url: 'large' }}{% else %}{{ media | img_url: 'medium' }}{% endif %}" alt="{{ media.alt | escape }}" title="{{ media.alt | escape }}" loading="lazy" /> </div> <div class="productView-thumbnail-icon"> {% render 'icon-video' %} </div> </div> {%- endif -%} {%- when 'video' -%} {%- if video_layout == 'thumbnail' -%} <div class="productView-thumbnail filter-{{ media.alt | handle }}" data-media-id="{{ section.id }}-{{ media.id }}"> <div class="productView-thumbnail-link animated-loading"> <img src="{{ media | media_tag | split: 'src="' | last | split: '">' | first }}" alt="{{ media.alt | escape }}" title="{{ media.alt | escape }}" loading="lazy" /> </div> <div class="productView-thumbnail-icon"> {% render 'icon-video' %} </div> </div> {%- endif -%} {%- when 'model' -%} <div class="productView-thumbnail" data-media-id="{{ section.id }}-{{ media.id }}"> <div class="productView-thumbnail-link animated-loading"> <img src="{{ media | media_tag | split: 'poster="' | last | split: '">' | first }}" alt="{{ media.alt | escape }}" title="{{ media.alt | escape }}" loading="lazy" /> </div> <div class="productView-thumbnail-icon"> {% render 'icon-3d-model' %} </div> </div> {%- else -%} <div class="productView-thumbnail filter-{{ media.alt | handle }}" data-media-id="{{ section.id }}-{{ media.id }}"> <div class="productView-thumbnail-link animated-loading"> {{ media | media_tag }} </div> </div> {%- endcase -%} {%- endfor -%} </div> </div> {%- endif -%} </div> </div> <div class="halo-productView-right productView-details clearfix"> <div class="productView-product clearfix"> {%- for block in section.blocks -%} {%- liquid assign spacing_top = block.settings.spacing_top assign spacing_bottom = block.settings.spacing_bottom -%} {%- case block.type -%} {%- when 'breadcrumb' -%} {%- if breadcrumb_layout == 'content' -%} <div class="productView-moreItem moreItem-breadcrumb {% unless check_breadcrumb_full %}hidden-on-mobile{% endunless %}{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ breadcrumb_mg_top_desktop | append: 'px' }}; --spacing-bottom: {{ breadcrumb_mg_bottom_desktop | append: 'px' }}; --spacing-top-mb: {{ breadcrumb_mg_top_mobile | append: 'px' }}; --spacing-bottom-mb: {{ breadcrumb_mg_bottom_mobile | append: 'px' }}; --breadcrumb-bg: {%- if breadcrumb_gradient != '' -%}{{ breadcrumb_gradient }}{%- else -%}{{ breadcrumb_bg }}{%- endif -%}; --breadcrumb-mb-bg: {% if breadcrumb_gradient_mb != blank and breadcrumb_gradient_mb != 'rgba(0,0,0,0)' %}{{ breadcrumb_gradient_mb }}{% elsif breadcrumb_bg_mb != blank and breadcrumb_bg_mb != 'rgba(0,0,0,0)' %}{{ breadcrumb_bg_mb }}{% else %}#fff{% endif %}; " > {% render 'breadcrumb', alignment: breadcrumb_alignment %} </div> {%- endif -%} {%- when 'vendor' -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > {% render 'product-vendor', block: block, product: product, fontsize_text: fontsize_text, color_title: color_title, text_transform: text_transform %} </div> {%- when 'title' -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger {% if share_layout == '3' %}animate--fade-in{% else %}animate--slide-in{% endif %}{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > {% render 'product-title', block: block, product: product, check_show_share: check_show_share, share_layout: check_show_share %} </div> {%- when 'meta' -%} {%- liquid assign show_review = block.settings.show_review assign show_sold_in = block.settings.show_sold_in assign sold_in_number = block.settings.sold_in_number assign sold_in_hours = block.settings.sold_in_hours assign color_text_sold_in = block.settings.color_text_sold_in -%} {%- if show_review or show_sold_in -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}; --color-text-sold-in: {{ color_text_sold_in }}" > <div class="productView-meta{% if show_review == false and show_sold_in == false %} productView-meta-2{% endif %} clearfix"> {%- if show_review -%} {% render 'product-rating', product: product %} {%- endif -%} {%- if show_sold_in -%} {% render 'product-sold-in-last', sold_in_number: sold_in_number, sold_in_hours: sold_in_hours %} {%- endif -%} </div> </div> {%- endif -%} {%- when 'short_description' -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > {% render 'product-short-description', block: block, product: product, fontsize_text: fontsize_text, color_text: color_text %} </div> {%- when 'variant_description' -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > {% render 'product-variant-description', block: block, product: product, current_variant: current_variant %} </div> {%- when 'info' -%} {%- liquid assign show_vendor = block.settings.show_vendor assign show_availability = block.settings.show_availability assign show_sku = block.settings.show_sku assign show_product_type = block.settings.show_product_type assign stock_level_display = block.settings.stock_level_display assign enable_border_top = block.settings.enable_border_top assign enable_border_bottom = block.settings.enable_border_bottom assign color_border = block.settings.color_border -%} {%- if show_vendor or show_availability or show_sku or show_product_type -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > {% render 'product-info', product: product, show_vendor: show_vendor, show_availability: show_availability, show_sku: show_sku, current_variant: current_variant, show_product_type: show_product_type, stock_level_display: stock_level_display, enable_border_top: enable_border_top, enable_border_bottom: enable_border_bottom, color_border: color_border %} </div> {%- endif -%} {%- when 'price' -%} {% assign fontsize_text = block.settings.fontsize_text %} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}; --fontsize-text: {{ fontsize_text | append: 'px' }}" > {% if has_product_combo %} <div> {%- if combo_discount_rate > 0 -%} <span class="old-price bundle-old-price-in-main"> {{ cart.total_price | money }} </span> <span class="bundle-price-in-main" data-bundle-product-price data-bundle-discount-rate="{{ combo_discount_rate }}"> {%- assign compensation = 1 | minus: combo_discount_rate -%} {{ cart.total_price | times: compensation | money }} </span> {%- endif -%} <span class="price price-in-main" data-combo-product-total style="display: none"> {{ cart.total_price | money }} </span> </div> {% else %} <div class="productView-price no-js-hidden clearfix" id="product-price-{{ product.id }}"> {%- render 'price', product: product, use_variant: true, price_class: 'price--medium' -%} </div> {% endif %} </div> {%- when 'countdown' -%} {%- liquid assign show_countdown = settings.show_countdown if show_countdown assign countdown_type = settings.countdown_type assign countdown_time = settings.countdown_time assign countdown_collection = settings.countdown_collection | downcase | handle assign countdown_style = settings.countdown_style endif -%} {%- if show_countdown -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > {% render 'product-countdown', product: product, countdown_type: countdown_type, countdown_style: countdown_style, countdown_time: countdown_time, countdown_collection: countdown_collection %} </div> {%- endif -%} {%- when 'variant_picker' -%} {% unless has_product_combo %} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > {% render 'product-variant', block: block, product: product, variantCount: variantCount, current_variant: current_variant, picker_type: picker_type %} </div> {% endunless %} {%- when 'customization_property' -%} {% if has_customization_option == true %} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > {% render 'product-customization', block: block, product: product, customization_option_1: customization_option_1, customization_option_2: customization_option_2, customization_option_hidden: customization_option_hidden %} </div> {% endif %} {%- when 'hot_stock' -%} {% unless has_product_combo %} {% render 'product-hot-stock', block: block, product: product, variantCount: variantCount, show_hot_stock: show_hot_stock, productMaxStock: productMaxStock, current_variant: current_variant %} {% endunless %} {%- when 'perks' -%} {% unless has_product_combo %} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > {% render 'product-perks', product: product, show_size_chart: show_size_chart, has_size_chart: has_size_chart, show_compare_color: show_compare_color, isColor: isColor, compare_layout: compare_layout %} </div> {% endunless %} {%- when 'quantity_selector' -%} {% unless has_product_combo %} {%- if check_show_qty == 'show_qty_1' -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > <div class="quantity_selector"> {% render 'product-quantity', current_variant: current_variant, qty_style: qty_style, check_hidden: false, quantity_stt: 2 %} </div> {%- if show_subtotal and subtotal_style == '1' -%} <div class="productView-subtotal"> <span class="text">{{ 'sections.cart.subtotal' | t | append: ': ' }}</span> <span class="money-subtotal">{{ subtotal }}</span> </div> {%- endif -%} </div> {%- endif -%} {% endunless %} {%- when 'buy_buttons' -%} {% unless has_product_combo %} <div class="productView-moreItem" style="--spacing-top: {{ spacing_top | append: 'px' }}; --spacing-bottom: {{ spacing_bottom | append: 'px' }}" > {% render 'product-button', block: block, product: product, current_variant: current_variant, check_show_share: check_show_share, share_layout: check_show_share, section: section, check_show_qty: check_show_qty, qty_style: qty_style, show_subtotal_text: show_subtotal_text, subtotal: subtotal, subtotal_style: subtotal_style %} </div> {% endunless %} {%- when 'customer_viewing' -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }};--spacing-bottom: {{ spacing_bottom | append: 'px' }}"> {% render 'product-customer-viewing', block: block %} </div> {%- when 'pickup_availability' -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }};--spacing-bottom: {{ spacing_bottom | append: 'px' }}"> {%- liquid assign show_pickup_availability = block.settings.show_pickup_availability -%} {%- if show_pickup_availability -%} {% render 'product-pickup-availability', product: product, current_variant: current_variant %} {%- endif -%} </div> {%- when 'share' -%} {%- if check_show_share == '1' -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }};--spacing-bottom: {{ spacing_bottom | append: 'px' }}"> {% render 'halo-share', product: product, share_layout: check_show_share %} </div> {%- endif -%} {%- when 'trust_image' -%} {%- liquid assign show_trust_image = block.settings.show_trust_image -%} {%- if show_trust_image -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }};--spacing-bottom: {{ spacing_bottom | append: 'px' }}"> <div class="productView-securityImage"> {%- render 'halo-trust-image', type: 'product' -%} </div> </div> {%- endif -%} {%- when 'product_text' -%} {%- liquid assign content_spacing = block.settings.content_spacing assign custom_block_align = block.settings.custom_block_align assign background_color_block = block.settings.background_color_block assign background_gradient_color_block = block.settings.background_gradient_color_block -%} <div class="productView-moreItem moreItem-productText{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }};--spacing-bottom: {{ spacing_bottom | append: 'px' }};{% if background_gradient_color_block != blank %}--background-style: {{ background_gradient_color_block }};{% else %}--background-style: {{ background_color_block }};{% endif %}"> <div class="productView-customText text-{{ custom_block_align }}" style="--content-spacing: {{ content_spacing | append: 'px' }};"> {% render 'product-text', block: block %} </div> </div> {%- when 'custom_information' -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }};--spacing-bottom: {{ spacing_bottom | append: 'px' }};"> {% render 'product-custom-information', block: block %} </div> {%- when 'grouped_product' -%} {%- if has_product_combo -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }};--spacing-bottom: {{ spacing_bottom | append: 'px' }};"> {% render 'grouped-product', block: block, show_share: show_share check_show_share: check_show_share, share_layout: check_show_share, picker_type: picker_type, show_size_chart: show_size_chart, has_size_chart: has_size_chart, show_compare_color: show_compare_color, isColor: isColor, compare_layout: compare_layout, has_perks: has_perks, product_combo: product_combo %} </div> {%- endif -%} {%- when 'custom_liquid' -%} {{ block.settings.custom_liquid }} {%- when 'complementary_products' -%} <div class="productView-moreItem{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger animate--slide-in{% endif %}" style="--spacing-top: {{ spacing_top | append: 'px' }};--spacing-bottom: {{ spacing_bottom | append: 'px' }};"> <complementary-products class="productView-complementary complementary-products style-{{ complementary_product_layout }} no-js-hidden" id="complementary-product-data" data-complementary-product data-url="{{ routes.product_recommendations_url }}?section_id={{ section.id }}&product_id={{ product.id }}&limit=10&intent=complementary"> {%- if recommendations.performed and recommendations.products_count > 0 -%} {%- if complementary_product_title -%} <div class="complementary-products-title"> <div class="title"><span class="text">{{ complementary_product_title | escape }}</span></div> </div> {%- endif -%} <div class="complementary-products-slider" {% if complementary_product_layout == "2" %}style="--complementary-object-fit: {{ complementary_product_object }};"{% endif %}> <div class="products-carousel {% if complementary_product_layout == "1" %}column-{{ complementary_product_limit }}{% endif %}" data-item-arrows= "{{ complementary_product_arrows }}" data-item-dots= "{{ complementary_product_dots }}"{% if complementary_product_layout == "1" %} data-item-to-show="{{ complementary_product_limit_1 }}"{% endif %}{% if complementary_product_layout == "2" %} data-item-rows="{{ complementary_product_limit_2 }}"{% endif %} > {%- if complementary_product_layout == "1" -%} {%- for product in recommendations.products limit: limit -%} <div class="product"> {% render 'product-grid-layout', product_card_product: product, media_size: image_ratio, portrait_aspect_ratio: portrait_aspect_ratio, serial: forloop.index, sectionId: section.id, show_list: true, loading: true %} </div> {%- endfor -%} {%- endif -%} {%- if complementary_product_layout == "2" -%} {%- for product in recommendations.products limit: limit offset: continue -%} <div class="product"> {% render 'product-card-custom', product_card_product: product %} </div> {%- endfor -%} {%- endif -%} </div> </div> {%- endif-%} </complementary-products> <script src="{{ "build-complementary-products.js" | asset_url }}" defer></script> </div> {%- when '@app' -%} {% render block %} {%- endcase -%} {%- endfor -%} {%- if show_tab -%} {%- if tab_layout == 'vertical' or tab_layout == 'vertical_sidebar' or tab_layout == 'popup' -%} {% render 'halo-product-tab', product: product, section: section, tab_layout: tab_layout, tab_layout_mobile: tab_layout_mobile, icon_style_layout: icon_style_layout %} {%- endif -%} {%- endif -%} </div> </div> </div> {%- if has_sidebar -%} </div> {% endif %} {%- unless has_product_combo -%} {%- if show_sticky_add_to_cart -%} {{ 'component-sticky-add-to-cart.css' | asset_url | stylesheet_tag }} {% render 'halo-sticky-add-to-cart', product: product, current_variant: current_variant, variantCount: variantCount, show_vendor: show_sticky_vendor, sticky_atc_layout: sticky_atc_layout, container: container, show_qty: show_qty, qty_style: qty_style, subtotal: subtotal %} {% comment %} {% render 'halo-sticky-add-to-cart-mobile', product: product, current_variant: current_variant, variantCount: variantCount, show_vendor: show_sticky_vendor, sticky_atc_layout: sticky_atc_layout, container: container, show_qty: show_qty, qty_style: qty_style, subtotal: subtotal %} {% endcomment %} {%- endif -%} {%- endunless -%} </div> </div> {% unless has_product_combo %} {% render 'product-bundle' %} {% endunless %} <div class="productView-bottom{% if settings.banner_animation == 'effect_fade_up' %} scroll-trigger{% if tab_layout_mobile == 'popup' %} animate--fade-in{% else %} animate--slide-in{% endif %}{% endif %}"> <div class="{% if container == '1170' %}container-1170{% elsif container == '1770' %}container-1770{% elsif container == 'fullwidth'%}container-full{% else %}container{% endif %}"> {%- if show_tab and tab_layout == 'horizontal' -%} {% render 'halo-product-tab', product: product, section: section, tab_layout: tab_layout, tab_layout_mobile: tab_layout_mobile, icon_style_layout: icon_style_layout %} {%- endif -%} </div> </div> </div> {%- if show_size_chart and has_size_chart -%} {% render 'halo-size-chart-popup', product: product, size_chart_type: size_chart_type, size_chart_image: size_chart_image %} {%- endif -%} {%- if show_compare_color and isColor -%} {% render 'halo-compare-color-popup', product: product, show_compare_color_drop_drap: show_compare_color_drop_drap, index: index %} {%- endif -%} <script src="{{ 'variants.js' | asset_url }}" defer="defer"></script> {%- if show_sticky_add_to_cart -%} <script src="{{ 'sticky-add-to-cart.js' | asset_url }}" defer="defer"></script> {%- endif -%} {%- if first_3d_model -%} <script src="{{ 'deferred-media.js' | asset_url }}" defer></script> <script type="application/json" id="ProductJSON-{{ product.id }}"> {{ product.media | where: 'media_type', 'model' | json }} </script> <script src="{{ 'product-model.js' | asset_url }}" defer></script> {%- endif -%} {%- if main_image_show_custom_cursor -%} <script src="{{ 'gsap.js' | asset_url }}" defer="defer"></script> {%- endif -%} {%- if product_image_popup == 'fancybox' -%} <script src="{{ 'fancybox.js' | asset_url }}" defer="defer"></script> {%- endif -%} {%- if zoomed_image and main_image_show_custom_cursor != true -%} <script src="{{ 'zoomed-image.js' | asset_url }}" defer="defer"></script> {%- endif -%} {% render 'schema', product: product %}