templates/Accueil/boutique_5sur5.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3. <head>
  4.     <meta charset="utf-8">
  5.     <meta content="width=device-width, initial-scale=1.0" name="viewport">
  6.     <title>Boutique 5sur5séjour - Souvenirs de séjours</title>
  7.     <meta content="Découvrez notre boutique de souvenirs pour immortaliser les séjours de vos enfants. Albums photos, livres souvenirs, tirages et plus encore." name="description">
  8.     
  9.     <!-- Favicons -->
  10.     <link href="{{ asset('Accueil/imagesAccueil/favicon.png') }}" rel="icon">
  11.     <link href="{{ asset('Accueil/imagesAccueil/apple-touch-icon.png') }}" rel="apple-touch-icon">
  12.     
  13.     <!-- Google Fonts -->
  14.     <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
  15.     
  16.     <!-- Bootstrap 5 -->
  17.     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
  18.     <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css" rel="stylesheet">
  19.     
  20.     <style>
  21.         :root {
  22.             --5sur5-teal: #41A2AA;
  23.             --5sur5-orange: #F56040;
  24.             --5sur5-orange-light: #F09E7A;
  25.             --teal-light: rgba(65, 162, 170, 0.08);
  26.             --teal-hover: rgba(65, 162, 170, 0.12);
  27.             --orange-light: rgba(245, 96, 64, 0.08);
  28.             --text-dark: #1A1A1A;
  29.             --text-secondary: #6B7280;
  30.             --text-muted: #9CA3AF;
  31.             --border-light: #E7F2F3;
  32.             --bg-page: #FAFBFC;
  33.             --bg-white: #FFFFFF;
  34.             --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.06);
  35.             --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08);
  36.             --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
  37.         }
  38.         body {
  39.             font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  40.             background: var(--bg-page);
  41.             margin: 0;
  42.             padding: 0;
  43.         }
  44.         /* ========== BOUTIQUE PREMIUM - HEADER HERO ========== */
  45.         .boutique-hero {
  46.             background: linear-gradient(135deg, rgba(65, 162, 170, 0.04) 0%, rgba(255, 255, 255, 1) 100%);
  47.             border-radius: 20px;
  48.             padding: 48px 32px;
  49.             margin: 32px auto 40px;
  50.             max-width: 1200px;
  51.             text-align: center;
  52.             border: 1px solid var(--border-light);
  53.             box-shadow: var(--shadow-sm);
  54.             position: relative;
  55.         }
  56.         .boutique-hero-label {
  57.             display: inline-block;
  58.             font-size: 11px;
  59.             font-weight: 700;
  60.             text-transform: uppercase;
  61.             letter-spacing: 1.5px;
  62.             color: var(--5sur5-teal);
  63.             background: var(--teal-light);
  64.             padding: 6px 16px;
  65.             border-radius: 20px;
  66.             margin-bottom: 20px;
  67.         }
  68.         .boutique-hero-title {
  69.             font-size: 36px;
  70.             font-weight: 700;
  71.             color: var(--text-dark);
  72.             margin-bottom: 16px;
  73.             line-height: 1.2;
  74.             letter-spacing: -0.5px;
  75.         }
  76.         .boutique-hero-subtitle {
  77.             font-size: 17px;
  78.             color: var(--text-secondary);
  79.             line-height: 1.6;
  80.             max-width: 700px;
  81.             margin: 0 auto 24px;
  82.         }
  83.         .boutique-hero-badge {
  84.             position: absolute;
  85.             top: 24px;
  86.             right: 24px;
  87.             display: flex;
  88.             align-items: center;
  89.             gap: 8px;
  90.             padding: 8px 16px;
  91.             background: var(--bg-white);
  92.             border: 1px solid var(--border-light);
  93.             border-radius: 12px;
  94.             font-size: 12px;
  95.             color: var(--text-secondary);
  96.         }
  97.         .boutique-hero-badge i {
  98.             color: var(--5sur5-teal);
  99.             font-size: 16px;
  100.         }
  101.         .boutique-hero-cta {
  102.             display: inline-flex;
  103.             align-items: center;
  104.             gap: 8px;
  105.             padding: 14px 28px;
  106.             background: var(--5sur5-teal);
  107.             color: white;
  108.             border-radius: 12px;
  109.             font-size: 16px;
  110.             font-weight: 600;
  111.             text-decoration: none;
  112.             transition: all 0.3s ease;
  113.         }
  114.         .boutique-hero-cta:hover {
  115.             background: #359BA3;
  116.             transform: translateY(-2px);
  117.             box-shadow: 0 4px 12px rgba(65, 162, 170, 0.3);
  118.             color: white;
  119.         }
  120.         /* ========== BARRE DE FILTRES PREMIUM ========== */
  121.         .boutique-filters {
  122.             max-width: 1200px;
  123.             margin: 0 auto 40px;
  124.             padding: 0 24px;
  125.         }
  126.         .boutique-filters-container {
  127.             display: flex;
  128.             justify-content: center;
  129.             gap: 12px;
  130.             flex-wrap: wrap;
  131.             padding: 16px 24px;
  132.             background: var(--bg-white);
  133.             border: 1px solid var(--border-light);
  134.             border-radius: 16px;
  135.             box-shadow: var(--shadow-sm);
  136.         }
  137.         .filter-btn {
  138.             padding: 10px 20px;
  139.             font-size: 14px;
  140.             font-weight: 600;
  141.             color: var(--text-secondary);
  142.             background: transparent;
  143.             border: 1.5px solid var(--border-light);
  144.             border-radius: 24px;
  145.             cursor: pointer;
  146.             transition: all 0.3s ease;
  147.             white-space: nowrap;
  148.         }
  149.         .filter-btn:hover {
  150.             border-color: var(--5sur5-teal);
  151.             color: var(--5sur5-teal);
  152.             background: var(--teal-light);
  153.         }
  154.         .filter-btn.active {
  155.             background: var(--5sur5-teal);
  156.             color: white;
  157.             border-color: var(--5sur5-teal);
  158.             box-shadow: 0 2px 8px rgba(65, 162, 170, 0.2);
  159.         }
  160.         /* ========== GRILLE PRODUITS PREMIUM ========== */
  161.         .boutique-products {
  162.             max-width: 1200px;
  163.             margin: 0 auto;
  164.             padding: 0 24px 80px;
  165.         }
  166.         .products-grid {
  167.             display: grid;
  168.             grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  169.             gap: 32px;
  170.             margin-top: 24px;
  171.         }
  172.         @media (max-width: 768px) {
  173.             .products-grid {
  174.                 grid-template-columns: 1fr;
  175.                 gap: 24px;
  176.             }
  177.         }
  178.         /* ========== CARTE PRODUIT PREMIUM ========== */
  179.         .product-card-premium {
  180.             background: var(--bg-white);
  181.             border: 0;
  182.             border-radius: 16px;
  183.             overflow: hidden;
  184.             box-shadow: var(--shadow-sm);
  185.             transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  186.             display: flex;
  187.             flex-direction: column;
  188.             height: 100%;
  189.         }
  190.         .product-card-premium:hover {
  191.             transform: translateY(-4px);
  192.             box-shadow: var(--shadow-lg);
  193.         }
  194.         .product-card-premium.d-none {
  195.             display: none !important;
  196.         }
  197.         .product-image-wrapper {
  198.             position: relative;
  199.             width: 100%;
  200.             padding-top: 75%; /* Ratio 4:3 */
  201.             overflow: hidden;
  202.             background: linear-gradient(135deg, var(--teal-light) 0%, var(--orange-light) 100%);
  203.         }
  204.         .product-image-wrapper img {
  205.             position: absolute;
  206.             top: 0;
  207.             left: 0;
  208.             width: 100%;
  209.             height: 100%;
  210.             object-fit: cover;
  211.         }
  212.         .product-badge-premium {
  213.             position: absolute;
  214.             top: 12px;
  215.             left: 12px;
  216.             background: var(--5sur5-orange);
  217.             color: white;
  218.             padding: 6px 12px;
  219.             border-radius: 8px;
  220.             font-size: 11px;
  221.             font-weight: 700;
  222.             text-transform: uppercase;
  223.             letter-spacing: 0.5px;
  224.             display: flex;
  225.             align-items: center;
  226.             gap: 4px;
  227.             z-index: 2;
  228.         }
  229.         .product-badge-premium.badge-teal {
  230.             background: var(--5sur5-teal);
  231.         }
  232.         .product-badge-premium i {
  233.             font-size: 12px;
  234.         }
  235.         .product-content {
  236.             padding: 24px;
  237.             flex: 1;
  238.             display: flex;
  239.             flex-direction: column;
  240.         }
  241.         .product-title {
  242.             font-size: 20px;
  243.             font-weight: 700;
  244.             color: var(--text-dark);
  245.             margin-bottom: 8px;
  246.             line-height: 1.3;
  247.         }
  248.         .product-tagline {
  249.             font-size: 14px;
  250.             color: var(--text-secondary);
  251.             margin-bottom: 16px;
  252.             line-height: 1.5;
  253.             font-style: italic;
  254.         }
  255.         .product-benefits {
  256.             list-style: none;
  257.             padding: 0;
  258.             margin: 0 0 20px 0;
  259.             display: flex;
  260.             flex-direction: column;
  261.             gap: 8px;
  262.         }
  263.         .product-benefits li {
  264.             display: flex;
  265.             align-items: center;
  266.             gap: 8px;
  267.             font-size: 13px;
  268.             color: var(--text-secondary);
  269.         }
  270.         .product-benefits li i {
  271.             color: var(--5sur5-teal);
  272.             font-size: 14px;
  273.             flex-shrink: 0;
  274.         }
  275.         .product-price-section {
  276.             margin-top: auto;
  277.             padding-top: 20px;
  278.             border-top: 1px solid var(--border-light);
  279.         }
  280.         .product-price {
  281.             font-size: 28px;
  282.             font-weight: 700;
  283.             color: var(--5sur5-teal);
  284.             margin-bottom: 4px;
  285.         }
  286.         .product-price-note {
  287.             font-size: 12px;
  288.             color: var(--text-muted);
  289.             margin-bottom: 16px;
  290.         }
  291.         .product-info-note {
  292.             display: inline-flex;
  293.             align-items: center;
  294.             gap: 6px;
  295.             padding: 8px 14px;
  296.             background: var(--teal-light);
  297.             color: var(--5sur5-teal);
  298.             border-radius: 8px;
  299.             font-size: 13px;
  300.             font-weight: 600;
  301.             text-decoration: none;
  302.         }
  303.         .product-info-note i {
  304.             font-size: 14px;
  305.         }
  306.         /* ========== CTA SECTION ========== */
  307.         .cta-section {
  308.             max-width: 1200px;
  309.             margin: 60px auto;
  310.             padding: 40px 24px;
  311.             background: linear-gradient(135deg, var(--5sur5-teal) 0%, #359BA3 100%);
  312.             border-radius: 20px;
  313.             text-align: center;
  314.             box-shadow: var(--shadow-lg);
  315.         }
  316.         .cta-section h3 {
  317.             font-size: 28px;
  318.             font-weight: 700;
  319.             color: white;
  320.             margin-bottom: 16px;
  321.         }
  322.         .cta-section p {
  323.             font-size: 17px;
  324.             color: rgba(255, 255, 255, 0.9);
  325.             margin-bottom: 24px;
  326.             max-width: 600px;
  327.             margin-left: auto;
  328.             margin-right: auto;
  329.         }
  330.         .cta-buttons {
  331.             display: flex;
  332.             justify-content: center;
  333.             gap: 16px;
  334.             flex-wrap: wrap;
  335.         }
  336.         .cta-btn-primary {
  337.             display: inline-flex;
  338.             align-items: center;
  339.             gap: 8px;
  340.             padding: 16px 32px;
  341.             background: white;
  342.             color: var(--5sur5-teal);
  343.             border-radius: 12px;
  344.             font-size: 16px;
  345.             font-weight: 600;
  346.             text-decoration: none;
  347.             transition: all 0.3s ease;
  348.         }
  349.         .cta-btn-primary:hover {
  350.             background: var(--bg-page);
  351.             transform: translateY(-2px);
  352.             box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
  353.         }
  354.         .cta-btn-secondary {
  355.             display: inline-flex;
  356.             align-items: center;
  357.             gap: 8px;
  358.             padding: 16px 32px;
  359.             background: rgba(255, 255, 255, 0.1);
  360.             color: white;
  361.             border: 2px solid white;
  362.             border-radius: 12px;
  363.             font-size: 16px;
  364.             font-weight: 600;
  365.             text-decoration: none;
  366.             transition: all 0.3s ease;
  367.         }
  368.         .cta-btn-secondary:hover {
  369.             background: rgba(255, 255, 255, 0.2);
  370.             color: white;
  371.         }
  372.         /* Responsive Hero */
  373.         @media (max-width: 768px) {
  374.             .boutique-hero {
  375.                 padding: 32px 24px;
  376.                 margin: 24px 12px;
  377.                 border-radius: 12px;
  378.             }
  379.             .boutique-hero-label {
  380.                 font-size: 9px;
  381.                 padding: 4px 10px;
  382.                 margin-bottom: 12px;
  383.             }
  384.             .boutique-hero-title {
  385.                 font-size: 24px;
  386.                 margin-bottom: 12px;
  387.             }
  388.             .boutique-hero-subtitle {
  389.                 font-size: 14px;
  390.                 margin-bottom: 20px;
  391.             }
  392.             .boutique-hero-badge {
  393.                 display: none;
  394.             }
  395.             .boutique-filters {
  396.                 padding: 0 12px;
  397.                 margin: 0 auto 24px;
  398.             }
  399.             .boutique-filters-container {
  400.                 padding: 12px;
  401.                 gap: 8px;
  402.                 border-radius: 12px;
  403.             }
  404.             .filter-btn {
  405.                 padding: 8px 14px;
  406.                 font-size: 12px;
  407.                 border-radius: 16px;
  408.             }
  409.             .boutique-products {
  410.                 padding: 0 12px 60px;
  411.             }
  412.             .products-grid {
  413.                 margin-top: 12px;
  414.                 gap: 20px;
  415.             }
  416.             .cta-section {
  417.                 margin: 40px 12px;
  418.                 padding: 32px 20px;
  419.             }
  420.             .cta-section h3 {
  421.                 font-size: 22px;
  422.             }
  423.             .cta-section p {
  424.                 font-size: 15px;
  425.             }
  426.             .cta-buttons {
  427.                 flex-direction: column;
  428.                 align-items: stretch;
  429.             }
  430.             .cta-btn-primary,
  431.             .cta-btn-secondary {
  432.                 width: 100%;
  433.                 justify-content: center;
  434.             }
  435.         }
  436.     </style>
  437. </head>
  438. <body style="margin: 0; padding: 0;">
  439.     {% include 'Accueil/header.html.twig' %}
  440.     <main id="main" style="padding-top: 0; margin-top: 0;">
  441.         <div style="background: var(--bg-page); min-height: 100vh; padding-top: 24px;">
  442.             
  443.             {# ========== HEADER HERO PREMIUM ========== #}
  444.             <div class="boutique-hero">
  445.                 <div class="boutique-hero-badge">
  446.                     <i class="bi bi-shield-lock-fill"></i>
  447.                     <span>Paiement sécurisé</span>
  448.                 </div>
  449.                 <span class="boutique-hero-label">Boutique souvenirs 5sur5</span>
  450.                 <h1 class="boutique-hero-title">Les souvenirs des séjours, en quelques clics</h1>
  451.                 <p class="boutique-hero-subtitle">
  452.                     Des albums et packs photos pour prolonger le séjour à la maison. Créez des souvenirs inoubliables grâce à nos produits pensés pour les familles.
  453.                 </p>
  454.                 <a href="/Parent/login" class="boutique-hero-cta">
  455.                     <i class="bi bi-box-arrow-in-right"></i>
  456.                     Accéder à ma boutique
  457.                 </a>
  458.             </div>
  459.             {# ========== BARRE DE FILTRES PREMIUM ========== #}
  460.             <div class="boutique-filters">
  461.                 <div class="boutique-filters-container">
  462.                     <button class="filter-btn active" data-filter="all" onclick="filterProducts('all')">
  463.                         Tous
  464.                     </button>
  465.                     <button class="filter-btn" data-filter="album" onclick="filterProducts('album')">
  466.                         Albums imprimés
  467.                     </button>
  468.                     <button class="filter-btn" data-filter="pack" onclick="filterProducts('pack')">
  469.                         Packs numériques
  470.                     </button>
  471.                     <button class="filter-btn" data-filter="tirage" onclick="filterProducts('tirage')">
  472.                         Tirages photos
  473.                     </button>
  474.                 </div>
  475.             </div>
  476.             {# ========== GRILLE PRODUITS PREMIUM ========== #}
  477.             <div class="boutique-products">
  478.                 <div class="products-grid" id="productsGrid">
  479.                     {% for item in produit %}
  480.                         {% if 'Connexion' not in item.idTypeProduit.labeletype and item.id != 6 %}
  481.                             {# Déterminer la catégorie du produit pour le filtre #}
  482.                             {% set productCategory = 'all' %}
  483.                             {% if item.id == 4 or item.id == 5 %}
  484.                                 {% set productCategory = 'album' %}
  485.                             {% elseif item.id == 12 or item.id == 13 or item.id == 14 %}
  486.                                 {% set productCategory = 'pack' %}
  487.                             {% elseif item.id == 1 or item.id == 2 or item.id == 3 or item.id == 8 or item.id == 9 or item.id == 10 %}
  488.                                 {% set productCategory = 'tirage' %}
  489.                             {% endif %}
  490.                             {# Déterminer le tagline selon le type de produit #}
  491.                             {% set productTagline = '' %}
  492.                             {% if item.id == 4 or item.id == 5 %}
  493.                                 {% set productTagline = 'Idéal pour offrir aux grands-parents' %}
  494.                             {% elseif item.id == 12 or item.id == 13 or item.id == 14 %}
  495.                                 {% set productTagline = 'Souvenir numérique à partager' %}
  496.                             {% elseif item.id == 1 or item.id == 2 or item.id == 3 or item.id == 8 or item.id == 9 or item.id == 10 %}
  497.                                 {% set productTagline = 'Souvenir tangible du séjour' %}
  498.                             {% else %}
  499.                                 {% set productTagline = 'Qualité photo professionnelle' %}
  500.                             {% endif %}
  501.                             <div class="product-card-premium" data-category="{{ productCategory }}">
  502.                                 
  503.                                 {# Badge produit #}
  504.                                 {% if item.id == 4 %}
  505.                                     <span class="product-badge-premium badge-teal">
  506.                                         <i class="bi bi-star-fill"></i> Meilleur choix
  507.                                     </span>
  508.                                 {% elseif item.id == 5 %}
  509.                                     <span class="product-badge-premium">
  510.                                         <i class="bi bi-heart-fill"></i> Premium
  511.                                     </span>
  512.                                 {% endif %}
  513.                                 {# Image produit #}
  514.                                 <div class="product-image-wrapper">
  515.                                     {% if item.typeProduitPhotos is defined and item.typeProduitPhotos|length > 0 %}
  516.                                         <img src="{{ item.typeProduitPhotos[0].idAttachement.path }}" 
  517.                                              alt="{{ item.idTypeProduit.labeletype }} {% if item.sousTitre %} {{ item.sousTitre }} {% endif %}">
  518.                                     {% else %}
  519.                                         <img src="{{ asset('Accueil/imagesAccueil/default-product.png') }}" 
  520.                                              alt="{{ item.idTypeProduit.labeletype }}">
  521.                                     {% endif %}
  522.                                 </div>
  523.                                 {# Contenu produit #}
  524.                                 <div class="product-content">
  525.                                     <h3 class="product-title">
  526.                                         {{ item.idTypeProduit.labeletype }} 
  527.                                         {% if item.sousTitre %} {{ item.sousTitre }} {% endif %}
  528.                                     </h3>
  529.                                     <p class="product-tagline">{{ productTagline }}</p>
  530.                                     
  531.                                     {# Bénéfices #}
  532.                                     <ul class="product-benefits">
  533.                                         {% if item.id == 4 or item.id == 5 %}
  534.                                             <li><i class="bi bi-check-circle-fill"></i> Format premium</li>
  535.                                             <li><i class="bi bi-check-circle-fill"></i> Personnalisation incluse</li>
  536.                                             <li><i class="bi bi-check-circle-fill"></i> Livraison offerte</li>
  537.                                         {% elseif item.id == 12 or item.id == 13 or item.id == 14 %}
  538.                                             <li><i class="bi bi-check-circle-fill"></i> Téléchargement immédiat</li>
  539.                                             <li><i class="bi bi-check-circle-fill"></i> Haute résolution</li>
  540.                                             <li><i class="bi bi-check-circle-fill"></i> Usage illimité</li>
  541.                                         {% else %}
  542.                                             <li><i class="bi bi-check-circle-fill"></i> Papier satiné premium</li>
  543.                                             <li><i class="bi bi-check-circle-fill"></i> Qualité professionnelle</li>
  544.                                             <li><i class="bi bi-check-circle-fill"></i> Format standard</li>
  545.                                         {% endif %}
  546.                                     </ul>
  547.                                     {# Prix et CTA #}
  548.                                     <div class="product-price-section">
  549.                                         <div class="product-price">{{ item.montantTTC|number_format(2) }} €</div>
  550.                                         <div class="product-price-note">par {{ item.idTypeProduit.labeletype|lower }}</div>
  551.                                         
  552.                                         <a href="/Parent/login" class="product-info-note">
  553.                                             <i class="bi bi-info-circle"></i>
  554.                                             Se connecter pour commander
  555.                                         </a>
  556.                                     </div>
  557.                                 </div>
  558.                             </div>
  559.                         {% endif %}
  560.                     {% endfor %}
  561.                 </div>
  562.             </div>
  563.             {# ========== CTA SECTION ========== #}
  564.             <div class="cta-section">
  565.                 <h3>Prêt à immortaliser vos souvenirs ?</h3>
  566.                 <p>Connectez-vous pour commander vos albums, tirages et packs numériques personnalisés. Simple, rapide et sécurisé.</p>
  567.                 <div class="cta-buttons">
  568.                     <a href="/Parent/login" class="cta-btn-primary">
  569.                         <i class="bi bi-box-arrow-in-right"></i>
  570.                         Se connecter
  571.                     </a>
  572.                     <a href="/#contact" class="cta-btn-secondary">
  573.                         <i class="bi bi-envelope"></i>
  574.                         Nous contacter
  575.                     </a>
  576.                 </div>
  577.             </div>
  578.         </div>
  579.     </main>
  580.     {% include 'Accueil/_footer_premium.html.twig' %}
  581.     <!-- Vendor JS Files -->
  582.     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
  583.     
  584.     <script>
  585.         // Fonction de filtrage des produits
  586.         function filterProducts(category) {
  587.             // Mettre à jour les boutons actifs
  588.             document.querySelectorAll('.filter-btn').forEach(btn => {
  589.                 btn.classList.remove('active');
  590.             });
  591.             event.target.classList.add('active');
  592.             // Récupérer toutes les cartes produits
  593.             const productCards = document.querySelectorAll('.product-card-premium');
  594.             let visibleCount = 0;
  595.             // Filtrer les cartes
  596.             productCards.forEach(card => {
  597.                 const cardCategory = card.getAttribute('data-category');
  598.                 
  599.                 if (category === 'all' || cardCategory === category) {
  600.                     card.classList.remove('d-none');
  601.                     visibleCount++;
  602.                 } else {
  603.                     card.classList.add('d-none');
  604.                 }
  605.             });
  606.         }
  607.         // Initialisation au chargement de la page
  608.         document.addEventListener('DOMContentLoaded', function() {
  609.             // S'assurer que tous les produits sont visibles par défaut
  610.             const productCards = document.querySelectorAll('.product-card-premium');
  611.             productCards.forEach(card => {
  612.                 card.classList.remove('d-none');
  613.             });
  614.         });
  615.     </script>
  616. </body>
  617. </html>