custom/plugins/ChespackTwoTheme/src/Resources/views/storefront/base.html.twig line 1

Open in your IDE?
  1. {% sw_extends '@Storefront/storefront/base.html.twig' %}
  2. {#{% block base_main %}#}
  3. {% block base_main_inner %}
  4.     {# Copied template from hero banner slider plugin #}
  5.     {% block neno_hero_slider %}
  6.         {% if page.extensions.hero_slider_slides %}
  7.             {% set slides = page.extensions.hero_slider_slides.elements %}
  8.             {% if slides|length > 0 %}
  9.                 {% set config = config('NenoHeroSlider.config') %}
  10.                 {% set validMediaIds = [
  11.                     config.leftArrowIconGraphic,
  12.                     config.rightArrowIconGraphic,
  13.                     config.scrollIndicatorIconGraphic,
  14.                 ]|filter(id => id is not null) %}
  15.                 {% set customMediaCollection = searchMedia(validMediaIds, context.context) %}
  16.                 {% set customLeftArrowGraphic = customMediaCollection.get(config.leftArrowIconGraphic) %}
  17.                 {% set customRightArrowGraphic = customMediaCollection.get(config.rightArrowIconGraphic) %}
  18.                 {% set customScrollIndicatorGraphic = customMediaCollection.get(config.scrollIndicatorIconGraphic) %}
  19.                 {% set controlsDisabled = config.oneSlideControlsDisabled ? (slides|length < 2) : false %}
  20.                 {% set aspectRatioLandscape = (
  21.                     config.aspectRatioWidth and config.aspectRatioHeight and config.aspectRatioHeight is not same as(0)
  22.                     ? (config.aspectRatioWidth / config.aspectRatioHeight)
  23.                     : 2
  24.                     ) %}
  25.                 {% set aspectRatioPortrait = (
  26.                     config.inheritAspectRatioForPortrait
  27.                     ? aspectRatioLandscape
  28.                     : (
  29.                     config.aspectRatioWidthPortrait and config.aspectRatioHeightPortrait and config.aspectRatioHeightPortrait is not same as(0)
  30.                     ? (config.aspectRatioWidthPortrait / config.aspectRatioHeightPortrait)
  31.                     : 0.6
  32.                     )
  33.                     ) %}
  34.                 {% set heroSliderUserConfig = {
  35.                     heightScaleMode: config.heightScaleMode,
  36.                     heightScaleModePortrait: config.heightScaleModePortrait is same as('inherit') ? config.heightScaleMode : config.heightScaleModePortrait,
  37.                     forceLoadPortraitWhenDeviceIsPortrait: config.forceLoadPortraitImagesOnPortraitDevices ? true : false,
  38.                     forceLoadLandscapeWhenDeviceIsLandscape: config.forceLoadLandscapeImagesOnLandscapeDevices ? true : false,
  39.                     transitionMode: config.transitionMode ?: 'slide',
  40.                     aspectRatio: aspectRatioLandscape,
  41.                     aspectRatioPortrait: aspectRatioPortrait,
  42.                     useInterval: config.useInterval and not controlsDisabled ? true : false,
  43.                     boundaryMode: config.boundaryMode ?: 'infinite',
  44.                     infiniteWrapMode: config.infiniteWrapMode ?: 'loop',
  45.                     transitionDuration: config.transitionDuration ?: 1,
  46.                     transitionEasingCurve: config.easingCurve ?: 'EASE',
  47.                     interval: config.intervalDuration ? (config.intervalDuration * 1000) : 12000,
  48.                     fadeScrollIndicatorOnScroll: config.animateScrollIndicator ? true : false,
  49.                     scrollOnScrollIndicatorClick: config.scrollOnScrollIndicatorClick ? true : false,
  50.                     enableArrowKeyControl: config.enableArrowKeyControl and not controlsDisabled ? true : false,
  51.                     touchDragEnabled: config.enableTouchSwiping ? true : false,
  52.                     mouseDragEnabled: config.enableMouseSwiping ? true : false,
  53.                 } %}
  54.                 <div class="hero-slider{% if config.transitionMode is same as('slide') %} hero-slider-mode-slide{% else %} hero-slider-mode-blend{% endif %}"
  55.                     id="hero-slider"
  56.                     data-hero-slider
  57.                     data-hero-slider-options='{{ heroSliderUserConfig|json_encode }}'>
  58.                     <noscript>
  59.                         <style>
  60.                           .hero-slider {
  61.                             overflow: auto; !important;
  62.                           }
  63.                           .hero-slider,
  64.                           .hero-slider-slide-container {
  65.                             height: 60vh !important;
  66.                           }
  67.                           .hero-slider-image {
  68.                             width: 100% !important;
  69.                             height: auto !important;
  70.                           }
  71.                           .hero-slider {
  72.                             position: relative !important;
  73.                           }
  74.                           .hero-slider-image {
  75.                             position: static !important;
  76.                           }
  77.                           .hero-slider-scroll-overlay,
  78.                           .hero-slider-navigation-btn,
  79.                           .hero-slider-menu {
  80.                             display: none;
  81.                           }
  82.                         </style>
  83.                     </noscript>
  84.                     <div class="hero-slider-slide-container">
  85.                         {% apply spaceless %}
  86.                         {% for slide in slides %}
  87.                         {% if slide.mediaLandscape %}
  88.                             {% set alt_title_landscape = slide.translated.imageAltTitle ?: slide.mediaLandscape.alt %}
  89.                             {% set landscape_thumbnails = slide.mediaLandscape.thumbnails|sort|reverse|json_encode %}
  90.                         {% endif %}
  91.                         {% if slide.mediaPortrait %}
  92.                             {% set alt_title_portrait = slide.translated.imageAltTitle ?: slide.mediaLandscape.alt %}
  93.                             {% set portrait_thumbnails = slide.mediaPortrait.thumbnails|sort|reverse|json_encode %}
  94.                         {% endif %}
  95.                         <div class="hero-slider-slide{% if slide.cssClass %} {{ slide.cssClass|sw_sanitize }}{% endif %}"
  96.                             data-animation-duration="60"
  97.                             data-animation-preset-landscape="{{ slide.imageMovementPresetLandscape ?: 'NONE' }}"
  98.                             data-animation-preset-portrait="{{ slide.imageMovementPresetPortrait ?: 'NONE' }}"
  99.                             style="background-color: {{ slide.backgroundColor ?: 'transparent' }}">
  100.                             {# Changed slide structure and layout, added block 'cms_block_hero_banner' #}
  101.                             {% block cms_block_hero_banner %}
  102.                                 <div class="cms-block  pos-0 cms-block-hero-banner">
  103.                                     <div class="cms-block-container">
  104.                                         <div class="cms-block-container-row row cms-row ">
  105.                                             <div class="col-12">
  106.                                                 <div class="cms-block bg-image hero-banner-large pos-0 cms-block-text-on-image">
  107.                                                     {% block cms_block_hero_banner_image %}
  108.                                                         {% if slide.mediaLandscape or slide.mediaPortrait %}
  109.                                                             <img class="hero-slider-image cms-block-background media-mode--cover"
  110.                                                                  alt="{{ slide.translated.imageAltTitle ?: (slide.mediaLandscape.alt ?: slide.mediaPortrait.alt) }}"
  111.                                                                     {% apply spaceless %}
  112.                                                                         {% if slide.mediaPortrait %}
  113.                                                                             {% block neno_hero_slider_slide_portrait_srcset %}
  114.                                                                                 {% if slide.mediaPortrait.thumbnails|length > 0 %}
  115.                                                                                     {% set thumbnails = slide.mediaPortrait.thumbnails|sort|reverse %}
  116.                                                                                     {# generate srcset with all available thumbnails #}
  117.                                                                                     {% set srcsetValue %}{% apply spaceless %}
  118.                                                                                         {{ slide.mediaPortrait|sw_encode_media_url }} {{ thumbnails|first.width + 1 }}w, {% for thumbnail in thumbnails %}{{ thumbnail.url | sw_encode_url }} {{ thumbnail.width }}w{% if not loop.last %}, {% endif %}{% endfor %}
  119.                                                                                     {% endapply %}{% endset %}
  120.                                                                                     data-srcset-portrait="{{ srcsetValue }}"
  121.                                                                                 {% endif %}
  122.                                                                                 data-src-portrait="{{ slide.mediaPortrait|sw_encode_media_url }}"
  123.                                                                             {% endblock %}
  124.                                                                         {% endif %}
  125.                                                                         {% if slide.mediaLandscape %}
  126.                                                                             {% block neno_hero_slider_slide_landscape_srcset %}
  127.                                                                                 {% if slide.mediaLandscape.thumbnails|length > 0 %}
  128.                                                                                     {% set thumbnails = slide.mediaLandscape.thumbnails|sort|reverse %}
  129.                                                                                     {# generate srcset with all available thumbnails #}
  130.                                                                                     {% set srcsetValue %}{% apply spaceless %}
  131.                                                                                         {{ slide.mediaLandscape|sw_encode_media_url }} {{ thumbnails|first.width + 1 }}w, {% for thumbnail in thumbnails %}{{ thumbnail.url | sw_encode_url }} {{ thumbnail.width }}w{% if not loop.last %}, {% endif %}{% endfor %}
  132.                                                                                     {% endapply %}{% endset %}
  133.                                                                                     data-srcset-landscape="{{ srcsetValue }}"
  134.                                                                                 {% endif %}
  135.                                                                                 data-src-landscape="{{ slide.mediaLandscape|sw_encode_media_url }}"
  136.                                                                             {% endblock %}
  137.                                                                         {% endif %}
  138.                                                                     {% endapply %}
  139.                                                                     sizes="100vw"
  140.                                                             >
  141.                                                                 <noscript>
  142.                                                                     {% if slide.mediaLandscape %}
  143.                                                                         {% sw_thumbnails 'hero-slider-thumbnails-landscape' with {
  144.                                                                             media: slide.mediaLandscape,
  145.                                                                             attributes: {
  146.                                                                                 alt: alt_title_landscape,
  147.                                                                                 class: 'hero-slider-thumbnails hero-slider-thumbnails-landscape'
  148.                                                                             }
  149.                                                                         } %}
  150.                                                                     {% endif %}
  151.                                                                     {% if slide.mediaPortrait %}
  152.                                                                         {% sw_thumbnails 'hero-slider-thumbnails-portrait' with {
  153.                                                                             media: slide.mediaPortrait,
  154.                                                                             attributes: {
  155.                                                                                 alt: alt_title_portrait,
  156.                                                                                 class: 'hero-slider-thumbnails hero-slider-thumbnails-portrait'
  157.                                                                             }
  158.                                                                         } %}
  159.                                                                     {% endif %}
  160.                                                                 </noscript>
  161.                                                             </img>
  162.                                                         {% endif %}
  163.                                                     {% endblock %}
  164.                                                     {% block cms_element_hero_banner %}
  165.                                                         <div class="cms-element-hero-banner">
  166.                                                             {% if slide.translated.textContentBeforeHeadline
  167.                                                                 or slide.translated.headline
  168.                                                                 or slide.translated.textContentAfterHeadline
  169.                                                                 or slide.translated.buttonLink %}
  170.                                                                 {% block cms_element_hero_banner_1 %}
  171.                                                                     <div class="cms-block-container-row row cms-row hero-banner-info-1">
  172.                                                                         <div class="col-12">
  173.                                                                             {% block cms_element_hero_banner_1_text %}
  174.                                                                                 <div class="cms-element-text">
  175.                                                                                     {% set headline_tag_name = (loop.first ? (config.headlineTagNameFirstSlide ?: 'h2') : ((config.headlineTagNameFollowingSlides ?: 'h2'))) %}
  176.                                                                                     <{{ headline_tag_name }}>{{ ((slide.translated.headline|raw) ?: '')|sw_sanitize }}</{{ headline_tag_name }}>
  177.                                                                                     <p>{{ ((slide.translated.textContentAfterHeadline|raw) ?: '')|sw_sanitize }}</p>
  178.                                                                                     {% if slide.translated.buttonLink %}
  179.                                                                                         <a class="btn btn-{{ config.ctaButtonType ?: 'primary' }}"
  180.                                                                                            title="{{ slide.translated.buttonLinkText }}"
  181.                                                                                            tabindex="-1"
  182.                                                                                            href="{{ slide.translated.buttonLink }}"{% if slide.translated.buttonLinkNewTab %} target="_blank" rel="noopener"{% endif %}>
  183.                                                                                             {{ slide.translated.buttonLinkText }}
  184.                                                                                         </a>
  185.                                                                                     {% endif %}
  186.                                                                                 </div>
  187.                                                                             {% endblock %}
  188.                                                                         </div>
  189.                                                                     </div>
  190.                                                                 {% endblock %}
  191.                                                                 {% block cms_element_hero_banner_2 %}
  192.                                                                     <div class="cms-block-container-row row cms-row hero-banner-info-2">
  193.                                                                         <div class="col-12">
  194.                                                                             {% block cms_element_hero_banner_2_text %}
  195.                                                                                 {% if slide.translated.textContentBeforeHeadline is not empty %}
  196.                                                                                     <div class="cms-element-text">
  197.                                                                                         <div class="cms-element-text-inner">
  198.                                                                                             {{ ((slide.translated.textContentBeforeHeadline|raw) ?: '')|sw_sanitize }}
  199. <div class="container section-trustpilot" style="max-width: 300px; margin-left: 0!important; margin-right: 0!important; margin-top: 20px">     <div class="trustpilot-widget" data-locale="en-GB" data-template-id="5419b6a8b0d04a076446a9ad" data-businessunit-id="5dd3965425e0ee000163c333" data-style-height="24px" data-style-width="100%" data-theme="dark">          <a href="https://uk.trustpilot.com/review/chespackhygiene.com" rel="noopener">Trustpilot</a>     </div>  </div>  
  200.                                                                                         </div>
  201.                                                                                     </div>
  202.                                                                                 {% endif %}
  203.                                                                             {% endblock %}
  204.                                                                         </div>
  205.                                                                     </div>
  206.                                                                 {% endblock %}
  207.                                                             {% endif %}
  208.                                                         </div>
  209.                                                     {% endblock %}
  210.                                                     {% block cms_element_hero_banner_link %}
  211.                                                         {% if slide.translated.slideLink is not empty %}
  212.                                                             <a href="{{ slide.translated.slideLink }}" class="cms-image-link-overlay"></a>
  213.                                                         {% endif %}
  214.                                                     {% endblock %}
  215.                                                 </div>
  216.                                             </div>
  217.                                         </div>
  218.                                     </div>
  219.                                 </div>
  220.                             {% endblock %}
  221.                     </div>
  222.                     {% endfor %}
  223.                     {% endapply %}
  224.                 </div>
  225.                 {% if config.showNavigationControls and not controlsDisabled %}
  226.                     <button
  227.                             type="button"
  228.                             class="hero-slider-btn hero-slider-navigation-btn hero-slider-navigation-btn-left"
  229.                             aria-controls="hero-slider"
  230.                             aria-label="{{ 'neno-hero-slider.controls.prevTitle' | trans }}"
  231.                             title="{{ 'neno-hero-slider.controls.prevTitle' | trans }}"
  232.                     >
  233.                         {% block neno_hero_slider_prev_icon %}
  234.                             {% if customLeftArrowGraphic %}
  235.                                 <span
  236.                                         class="icon hs-custom-icon"
  237.                                         style="background-image: url('{{ customLeftArrowGraphic.url }}');"
  238.                                         role="presentation"
  239.                                 ></span>
  240.                             {% else %}
  241.                                 {% sw_icon 'arrow-head-left' %}
  242.                             {% endif %}
  243.                         {% endblock %}
  244.                     </button>
  245.                     <button
  246.                             type="button"
  247.                             class="hero-slider-btn hero-slider-navigation-btn hero-slider-navigation-btn-right"
  248.                             aria-controls="hero-slider"
  249.                             aria-label="{{ 'neno-hero-slider.controls.nextTitle' | trans }}"
  250.                             title="{{ 'neno-hero-slider.controls.nextTitle' | trans }}"
  251.                     >
  252.                         {% block neno_hero_slider_next_icon %}
  253.                             {% if customRightArrowGraphic %}
  254.                                 <span
  255.                                         class="icon hs-custom-icon"
  256.                                         style="background-image: url('{{ customRightArrowGraphic.url }}');"
  257.                                         role="presentation"
  258.                                 ></span>
  259.                             {% else %}
  260.                                 {% sw_icon 'arrow-head-right' %}
  261.                             {% endif %}
  262.                         {% endblock %}
  263.                     </button>
  264.                 {% endif %}
  265.                 {% if config.showJumpNavigation and not controlsDisabled %}
  266.                     <div class="hero-slider-menu hs-{{ config.bulletDirection ?: 'vertical' }}" role="menu">
  267.                         {% for slide in slides %}
  268.                             <button type="button" class="hero-slider-btn hero-slider-menu-item" role="menuitemradio"></button>
  269.                         {% endfor %}
  270.                     </div>
  271.                 {% endif %}
  272.                 {% if config.showScrollIndicator %}
  273.                     <div class="hero-slider-scroll-overlay hs-horizontal-align-{{ config.scrollIndicatorAlignment ?: 'center' }}" role="presentation">
  274.                         <button type="button" title="{{ 'neno-hero-slider.scrollDown'|trans }}" class="hero-slider-btn hero-slider-scroll-icon hs-interactive">
  275.                             {% if customScrollIndicatorGraphic %}
  276.                                 <span
  277.                                         class="icon hs-custom-icon"
  278.                                         style="background-image: url('{{ customScrollIndicatorGraphic.url }}');"
  279.                                         role="presentation"
  280.                                 ></span>
  281.                             {% else %}
  282.                                 {% sw_icon 'arrow-head-down' %}
  283.                             {% endif %}
  284.                         </button>
  285.                     </div>
  286.                 {% endif %}
  287.                 </div>
  288.                 {% block neno_hero_slider_user_style %}
  289.                     <style>
  290.                       .hero-slider .hero-slider-navigation-btn {
  291.                       {% if config.navigationControlBackgroundColor %}
  292.                         background-color: {{ config.navigationControlBackgroundColor }};
  293.                       {% endif %}
  294.                       {% if config.navigationControlIconColor %}
  295.                         color: {{ config.navigationControlIconColor }};
  296.                       {% endif %}
  297.                       }
  298.                       .hero-slider .hero-slider-scroll-icon {
  299.                       {% if config.navigationControlBackgroundColor %}
  300.                         background-color: {{ config.scrollIndicatorBackgroundColor }};
  301.                       {% endif %}
  302.                       {% if config.navigationControlIconColor %}
  303.                         color: {{ config.scrollIndicatorIconColor }};
  304.                       {% endif %}
  305.                       }
  306.                       .hero-slider .hero-slider-menu-item {
  307.                       {% if config.jumpNavigationItemBackgroundColor %}
  308.                         background-color: {{ config.jumpNavigationItemBackgroundColor }};
  309.                       {% endif %}
  310.                       {% if config.jumpNavigationItemBorderColor %}
  311.                         border-color: {{ config.jumpNavigationItemBorderColor }};
  312.                       {% endif %}
  313.                       }
  314.                       .hero-slider .hero-slider-menu-item:after,
  315.                       .hero-slider .hero-slider-menu-item::after {
  316.                       {% if config.jumpNavigationItemFillColor %}
  317.                         background-color: {{ config.jumpNavigationItemFillColor }};
  318.                       {% endif %}
  319.                       }
  320.                       .hero-slider .btn.hero-slider-cta-btn {
  321.                       {% if config.ctaButtonType is same as('primary') %}
  322.                       {% if config.ctaButtonBackgroundColor %}
  323.                         background-color: {{ config.ctaButtonBackgroundColor }};
  324.                       {% endif %}
  325.                       {% if config.ctaButtonBackgroundColor %}
  326.                         border-color: {{ config.ctaButtonBackgroundColor }};
  327.                       {% endif %}
  328.                       {% if config.ctaButtonBackgroundColor %}
  329.                         color: {{ config.ctaButtonTextColor }};
  330.                       {% endif %}
  331.                       {% else %}
  332.                       {% if config.ctaButtonBackgroundColor %}
  333.                         border-color: {{ config.ctaButtonBackgroundColor }};
  334.                       {% endif %}
  335.                       {% if config.ctaButtonBackgroundColor %}
  336.                         color: {{ config.ctaButtonBackgroundColor }};
  337.                       {% endif %}
  338.                       {% endif %}
  339.                         font-family: {{ config.buttonFontFamily ? ('"' ~ config.buttonFontFamily ~ '"')|raw|sw_sanitize : 'inherit' }};
  340.                         font-size: {{ config.buttonFontSize ? (config.buttonFontSize ~ 'rem') : '.875rem' }};
  341.                         margin-bottom: {{ config.belowButtonGap ? (config.belowButtonGap ~ 'em') : '0' }};
  342.                       }
  343.                       .hero-slider .btn.hero-slider-cta-btn:hover {
  344.                       {% if config.ctaButtonType is same as('primary') %}
  345.                       {% if config.ctaButtonBackgroundColor %}
  346.                         background-color: {{ config.ctaButtonHoverBackgroundColor ?: config.ctaButtonBackgroundColor }};
  347.                       {% endif %}
  348.                       {% if config.ctaButtonBackgroundColor %}
  349.                         border-color: {{ config.ctaButtonBackgroundColor }};
  350.                       {% endif %}
  351.                       {% if config.ctaButtonTextColor %}
  352.                         color: {{ config.ctaButtonTextColor }};
  353.                       {% endif %}
  354.                       {% else %}
  355.                       {% if config.ctaButtonBackgroundColor %}
  356.                         border-color: {{ config.ctaButtonBackgroundColor }};
  357.                       {% endif %}
  358.                       {% if config.ctaButtonBackgroundColor %}
  359.                         background-color: {{ config.ctaButtonBackgroundColor }};
  360.                       {% endif %}
  361.                       {% if config.ctaButtonBackgroundColor %}
  362.                         color: {{ config.ctaButtonTextColor }};
  363.                       {% endif %}
  364.                       {% endif %}
  365.                       }
  366.                       .hero-slider .hero-slider-headline {
  367.                         color: {{ config.headlineColor ?: (config.defaultTextBlockColor ?: 'inherit') }};
  368.                         font-family: {{ config.headlineFontFamily ? ('"' ~ config.headlineFontFamily ~ '"')|raw|sw_sanitize : 'inherit' }};
  369.                         font-weight: {{ config.headlineFontWeight ?: 'bold' }};
  370.                         font-size: {{ config.headlineFontSizeXs ? (config.headlineFontSizeXs ~ 'rem') : 'initial' }};
  371.                         line-height: {{ config.headlineLineHeight ?: 'inherit' }};
  372.                         margin-bottom: {{ config.afterHeadlineGap ? (config.afterHeadlineGap ~ 'em') : '0' }};
  373.                       }
  374.                       .hero-slider .hero-slider-content-before {
  375.                         font-family: {{ config.textAboveHeadlineFontFamily ? ('"' ~ config.textAboveHeadlineFontFamily ~ '"')|raw|sw_sanitize : 'inherit' }};
  376.                         font-size: {{ config.fontSizeAboveHeadlineXs ? (config.fontSizeAboveHeadlineXs ~ 'rem') : 'initial' }};
  377.                         line-height: {{ config.textAboveHeadlineLineHeight ?: 'inherit' }};
  378.                         margin-bottom: {{ config.beforeHeadlineGap ? (config.beforeHeadlineGap ~ 'em') : '0' }};
  379.                       }
  380.                       .hero-slider .hero-slider-content-after {
  381.                         font-family: {{ config.textBelowHeadlineFontFamily ? ('"' ~ config.textBelowHeadlineFontFamily ~ '"')|raw|sw_sanitize : 'inherit' }};
  382.                         font-size: {{ config.fontSizeBelowHeadlineXs ? (config.fontSizeBelowHeadlineXs ~ 'rem') : 'initial' }};
  383.                         line-height: {{ config.textBelowHeadlineLineHeight ?: 'inherit' }};
  384.                         margin-bottom: {{ config.afterTextBelowHeadlineGap ? (config.afterTextBelowHeadlineGap ~ 'em') : '0' }};
  385.                       }
  386.                       {% if config.textTransitionMode is same as('fadein') %}
  387.                       .hero-slider .hero-slider-slide .hero-slider-description {
  388.                         opacity: 0;
  389.                         transition: opacity .7s ease, transform .5s ease;
  390.                         transition-delay: {{ config.transitionDuration ?: 0 }}s;
  391.                         transform: translateY(10%);
  392.                       }
  393.                       .hero-slider .hero-slider-slide.active .hero-slider-description {
  394.                         opacity: 1;
  395.                         transform: translateY(0);
  396.                       }
  397.                       {% endif %}
  398.                       @media all and (min-width: {{ (theme_config('breakpoint.md') - 1) ~ 'px' }}) {
  399.                         .hero-slider .hero-slider-headline {
  400.                           font-size: {{ config.headlineFontSizeMd ? (config.headlineFontSizeMd ~ 'rem') : 'initial' }};
  401.                         }
  402.                         .hero-slider .hero-slider-content-before {
  403.                           font-size: {{ config.fontSizeAboveHeadlineMd ? (config.fontSizeAboveHeadlineMd ~ 'rem') : 'initial' }};
  404.                         }
  405.                         .hero-slider .hero-slider-content-after {
  406.                           font-size: {{ config.fontSizeBelowHeadlineMd ? (config.fontSizeBelowHeadlineMd ~ 'rem') : 'initial' }};
  407.                         }
  408.                       }
  409.                       @media all and (min-width: {{ (theme_config('breakpoint.lg') - 1) ~ 'px' }}) {
  410.                         .hero-slider .hero-slider-headline {
  411.                           font-size: {{ config.headlineFontSizeLg ? (config.headlineFontSizeLg ~ 'rem') : 'initial' }};
  412.                         }
  413.                         .hero-slider .hero-slider-content-before {
  414.                           font-size: {{ config.fontSizeAboveHeadlineLg ? (config.fontSizeAboveHeadlineLg ~ 'rem') : 'initial' }};
  415.                         }
  416.                         .hero-slider .hero-slider-content-after {
  417.                           font-size: {{ config.fontSizeBelowHeadlineLg ? (config.fontSizeBelowHeadlineLg ~ 'rem') : 'initial' }};
  418.                         }
  419.                       }
  420.                       {{ config.userInjectedCSS ? (config.userInjectedCSS|raw|sw_sanitize) : '' }}
  421.                     </style>
  422.                 {% endblock %}
  423.                 {% block neno_hero_slider_init_script %}
  424.                     <script type="text/javascript">
  425.                         (function () {
  426.                             var forcePOnP = '{{ config.forceLoadPortraitImagesOnPortraitDevices }}' === '1';
  427.                             var forceLOnL = '{{ config.forceLoadPortraitImagesOnPortraitDevices }}' === '1';
  428.                             // load first image without waiting for main script execution
  429.                             var firstSlideImage = document.querySelector('img.hero-slider-image');
  430.                             function loadLandscapeImage() {
  431.                                 var lsSrcSet = firstSlideImage.getAttribute('data-srcset-landscape');
  432.                                 var lsSrc = firstSlideImage.getAttribute('data-src-landscape');
  433.                                 if (lsSrcSet) {
  434.                                     firstSlideImage.srcSet = lsSrcSet;
  435.                                 } else if (lsSrc) {
  436.                                     firstSlideImage.src = lsSrc;
  437.                                 }
  438.                             }
  439.                             function loadPortraitImage() {
  440.                                 var poSrcSet = firstSlideImage.getAttribute('data-srcset-portrait');
  441.                                 var poSrc = firstSlideImage.getAttribute('data-src-portrait');
  442.                                 if (poSrcSet) {
  443.                                     firstSlideImage.srcSet = poSrcSet;
  444.                                 } else if (poSrc) {
  445.                                     firstSlideImage.src = poSrc;
  446.                                 }
  447.                             }
  448.                             function fillHeight(el) {
  449.                                 var vRect = el.getBoundingClientRect();
  450.                                 el.style.height = (window.innerHeight - vRect.top) + 'px';
  451.                             }
  452.                             var el = document.querySelector('.hero-slider');
  453.                             var hsmLandscape = '{{ config.heightScaleMode }}';
  454.                             var hsmPortrait = '{{ config.heightScaleModePortrait }}';
  455.                             var hasFixedAspectL = hsmLandscape === 'fixed_aspect';
  456.                             var hasFixedAspectP = hsmPortrait === 'inherit' ? hasFixedAspectL : (hsmPortrait === 'fixed_aspect');
  457.                             var windowAspect = window.innerWidth / window.innerHeight;
  458.                             var isViewportP = (windowAspect < 1);
  459.                             var initWidth = el.getBoundingClientRect().width;
  460.                             // prime slider height
  461.                             if (isViewportP) {
  462.                                 if (hasFixedAspectP) {
  463.                                     el.style.height = (1 / {{ aspectRatioPortrait }} * (initWidth || window.innerWidth)) + 'px';
  464.                                 } else {
  465.                                     fillHeight(el);
  466.                                 }
  467.                             } else {
  468.                                 if (hasFixedAspectL) {
  469.                                     el.style.height = (1 / {{ aspectRatioLandscape }} * (initWidth || window.innerWidth)) + 'px';
  470.                                 } else {
  471.                                     fillHeight(el);
  472.                                 }
  473.                             }
  474.                             if (firstSlideImage) {
  475.                                 if ('objectFit' in firstSlideImage.style) {
  476.                                     firstSlideImage.style.objectFit = 'cover';
  477.                                     firstSlideImage.style.objectPosition = 'center center';
  478.                                 }
  479.                                 if (isViewportP && forcePOnP) {
  480.                                     loadPortraitImage();
  481.                                 } else if (!isViewportP && forceLOnL) {
  482.                                     loadLandscapeImage();
  483.                                 } else {
  484.                                     var bRect = el.getBoundingClientRect();
  485.                                     var boxAspectRatio = (bRect.width / bRect.height);
  486.                                     if (boxAspectRatio < 1) {
  487.                                         loadPortraitImage();
  488.                                     } else {
  489.                                         loadLandscapeImage();
  490.                                     }
  491.                                 }
  492.                                 firstSlideImage.classList.add('hs-image-loaded');
  493.                             }
  494.                         })();
  495.                     </script>
  496.                 {% endblock %}
  497.             {% endif %}
  498.         {% endif %}
  499.     {% endblock %}
  500.     {{ parent() }}
  501. {% endblock %}
  502. {% block base_header %}
  503.     <header id="myHeader" class="header-main header-defualt" data-flyout-menu="true">
  504.         {% block base_header_inner %}
  505.             <div class="container">
  506.                 {% sw_include '@Storefront/storefront/layout/header/header.html.twig' %}
  507.             </div>
  508.         {% endblock %}
  509.         {% sw_include '@Storefront/storefront/layout/navigation/navigation-flyout.html.twig' %}
  510.     </header>
  511.         <div style="display:flex; align-items:center; color:white; justify-content:center;height:60px; background-color:#396db4;"><strong>Customer Notice:</strong>On Tuesday 14th the website will be undergoing improvements and be unavailable for up to 24 hours</div>
  512. {% endblock %}
  513. {# Removed main navigation #}
  514. {% block base_navigation %}{% endblock %}