<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
   
    <meta name="p:domain_verify" content="0ccb19b2069a3185e6e98a6eba1c894e"/>


    <!-- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -->
        <!-- Google Tag Manager -->
    <script>
        (function(w, d, s, l, i) {
            w[l] = w[l] || [];
            w[l].push({
                'gtm.start': new Date().getTime(),
                event: 'gtm.js'
            });
            var f = d.getElementsByTagName(s)[0],
                j = d.createElement(s),
                dl = l != 'dataLayer' ? '&l=' + l : '';
            j.async = true;
            j.src =
                'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
            f.parentNode.insertBefore(j, f);
        })(window, document, 'script', 'dataLayer', 'GTM-WHV462N');
    </script>
    <!-- End Google Tag Manager -->
    
  <!-- Meta Pixel Code -->
      <!-- End Meta Pixel Code -->
        <meta name="format-detection" content="telephone=no" />
    <title>Rachel Allan Fashion Designer Dresses</title>
    <meta name="keywords" content="cocktail dresses, floral homecoming dresses, pageant ball gowns, prom dress outlet" />
    <meta name="description" content="Designers at Rachel Allan are fully aware of the sentiments that every girl associates with wearing a designer dress, hence whenever they sit down to design any special occasion dress it is nothing short of a wonder in itself." />
    <meta name="robots" content="index, follow" />

    <meta name="language" content="English" />
    <meta name="author" content="Rachel Allan" />
    <meta name="_token" content="ab6tyAq9gOkQ3BCgZ47RkqClFui1NRIfQmSTNnJx" />
    <meta name="msvalidate.01" content="2069FBA39CC72E34541FA9FBB7E8AA56" />
    <meta name="og_image" property="og:image" content="https://www.rachelallan.com//assets/imgs/logo.png" />
    <meta name="og_title" property="og:title" content="Rachel Allan Fashion Designer Dresses" />
    <meta property="og:description" content="Designers at Rachel Allan are fully aware of the sentiments that every girl associates with wearing a designer dress, hence whenever they sit down to design any special occasion dress it is nothing short of a wonder in itself." />
    <meta property="og:url" content="https://www.rachelallan.com/" />
    <meta property="og:site_name" content="Rachel Allan" />
    <!-- <meta name="viewport" content="user-scalable=no,user-scalable=no initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="twitter:card" content="summary_large_image" />
    <meta name="twitter:site" content="@rachelallan" />
    <meta name="twitter:title" content="Rachel Allan Fashion Designer Dresses" />
    <meta name="twitter:description" content="Designers at Rachel Allan are fully aware of the sentiments that every girl associates with wearing a designer dress, hence whenever they sit down to design any special occasion dress it is nothing short of a wonder in itself." />
    <meta name="twitter:image" content="https://www.rachelallan.com//assets/imgs/logo.png" />
    <link rel="canonical" href="https://www.rachelallan.com" />
    <link rel="icon" type="image/x-icon"  href="https://www.rachelallan.com/favicon.ico" />

    <!--<title>Rachel Allan Fashion Designer Dresses</title>-->
<!-- Fonts-->
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600,700%7CDroid+Serif:400,700" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Nunito+Sans:200,300,400,600,700,900" rel="stylesheet">

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Hind&display=swap" rel="stylesheet">

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=PT+Serif&display=swap" rel="stylesheet">


<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Karla&family=Montserrat&display=swap" rel="stylesheet">

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Dancing+Script&display=swap" rel="stylesheet">

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Marcellus&display=swap" rel="stylesheet">

    <!--<link rel="stylesheet" type="text/css" href="https://www.rachelallan.com/dflip/css/dflip.css?v=1781112245" />-->
    <!--<link rel="stylesheet" type="text/css" href="https://www.rachelallan.com/dflip/css/themify-icons.css?v=1781112245" />-->

  <!-- main -->
  <link rel="stylesheet" type="text/css" href="https://www.rachelallan.com/css/style.css?v=1781112245" />
  <link rel="stylesheet" type="text/css" href="https://www.rachelallan.com/css/responsive.css?v=1781112245"/>
  <link rel="stylesheet" type="text/css" href="https://www.rachelallan.com/css/bootstrap.min.css?v=1781112245"/>
  <!-- <link rel="stylesheet" href="css/bootstrap-icons.css">  -->
  <!-- fontawesome -->
  <link rel="stylesheet"  href="https://www.rachelallan.com/css/font-awesome.min.css?v=1781112245"/>  


  <link href="https://www.rachelallan.com/css/header.css?v=1781112245" rel="stylesheet">
  
  <link href="https://www.rachelallan.com/css/swipe.css?v=1781112245" rel="stylesheet">

  <!-- <script src="js/jquery.js"></script> -->
  <script defer src="https://www.rachelallan.com/js/header.js"></script>
    <!--<script defer src="https://www.rachelallan.com/js/theme.js?v=1781112245"></script>-->
    <!--<script defer src="https://www.rachelallan.com/js/rachel.js?v=1781112245"></script>-->


  <link href="https://www.rachelallan.com/css/blog.css?v=1781112245" rel="stylesheet">


  <link rel="stylesheet"  href="https://www.rachelallan.com/css/owl.carousel.min.css"/>
  <link rel="stylesheet"  href="https://www.rachelallan.com/css/owl.theme.default.min.css"/>
  <link href="https://www.rachelallan.com/css/new-main.css?v=17811122453" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css" rel="stylesheet">
    <!-- <link href="https://www.rachelallan.com/css/aos.css?v=1781112245" rel="stylesheet"> -->

    
</head>

<body class="ps-loading">
    <!-- <section> -->
        <!-- ////////////////hidden content end -->
<!-- Start Header Section -->
<div class="header">
    <div class="main-container">
        <div class="top-container">
            
            <ul class="top-stores" id="textslider">
                                    <li class="top-stores__link item active">
                        <a href="javascript:void(0)">NEW DROP | FALL 2026 IS HERE!</a>
                    </li>
                                    <li class="top-stores__link item ">
                        <a href="javascript:void(0)">FOLLOW US ON TIKTOK!</a>
                    </li>
                                    <li class="top-stores__link item ">
                        <a href="javascript:void(0)">DM US ON INSTAGRAM!</a>
                    </li>
                                    <li class="top-stores__link item ">
                        <a href="javascript:void(0)">VISIT OUR STORE LOCATOR TO FIND A RETAILER NEAR YOU</a>
                    </li>
                            </ul>
        </div>
        <div class="preheader-container">
            <a class="preheader__logo" href="https://www.rachelallan.com">
                <img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/black.svg" alt="logo" width="100%" height="auto"
                    loading="lazy">
            </a>
        </div>
        <div class="main-head" id="fixheader">
            <div class="head-container">
                <div class="head-content">
                    <div class="menu" id="menuToggle" onclick="toggleMenu()">
                        <img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/menu.svg" alt="menu">
                        <img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/cross.png" alt="cross">
                    </div>
                    <a class="logo" href="https://www.rachelallan.com"><img loading="lazy" 
                            src="https://www.rachelallan.com/images/head-footimg/black.svg" alt="logo"></a>
                    <div class="menu-items">
                        <!-- <a href="#"><i class="bi bi-geo-alt"></i></a> -->
                        <!-- <a href="#"><i class="far fa-heart"></i></a> -->
                        <!-- <a href="#" data-bs-toggle="modal" data-bs-target="#loginModal" class="user"><i class="fa fa-user-o"></i></a>
            <a href="#" class="search">
              <svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" fill="currentColor" class="bi bi-search" viewBox="0 0 16 16">
                <path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0" />
              </svg>
            </a>
            <a href="https://www.rachelallan.com/stores/" class="strore"><svg xmlns="http://www.w3.org/2000/svg" width="21"
                height="21" fill="" class="bi bi-shop-window" viewBox="0 0 17 17">
                <path
                  d="M2.97 1.35A1 1 0 0 1 3.73 1h8.54a1 1 0 0 1 .76.35l2.609 3.044A1.5 1.5 0 0 1 16 5.37v.255a2.375 2.375 0 0 1-4.25 1.458A2.371 2.371 0 0 1 9.875 8 2.37 2.37 0 0 1 8 7.083 2.37 2.37 0 0 1 6.125 8a2.37 2.37 0 0 1-1.875-.917A2.375 2.375 0 0 1 0 5.625V5.37a1.5 1.5 0 0 1 .361-.976l2.61-3.045zm1.78 4.275a1.375 1.375 0 0 0 2.75 0 .5.5 0 0 1 1 0 1.375 1.375 0 0 0 2.75 0 .5.5 0 0 1 1 0 1.375 1.375 0 1 0 2.75 0V5.37a.5.5 0 0 0-.12-.325L12.27 2H3.73L1.12 5.045A.5.5 0 0 0 1 5.37v.255a1.375 1.375 0 0 0 2.75 0 .5.5 0 0 1 1 0zM1.5 8.5A.5.5 0 0 1 2 9v6h12V9a.5.5 0 0 1 1 0v6h.5a.5.5 0 0 1 0 1H.5a.5.5 0 0 1 0-1H1V9a.5.5 0 0 1 .5-.5zm2 .5a.5.5 0 0 1 .5.5V13h8V9.5a.5.5 0 0 1 1 0V13a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.5a.5.5 0 0 1 .5-.5z">
                </path>
              </svg>
            </a> -->
                        
                        <!-- <form class="search-form"> -->
                        <form action="https://www.rachelallan.com/search" method="get" role="search" id="HeaderSearchForm"
                            class="search-form site-header__search-form" autocomplete="off">
                            <div class="input-container">
                                <input type="search" name="q" class="search-input" placeholder="Search..." value="">
                                <button type="button" class="search-toggle" id="searchToggleBtn">
                                    <!-- Search Icon -->
                                    <svg xmlns="http://www.w3.org/2000/svg" class="search-icon" fill="none" viewBox="0 0 24 24"
                                        stroke-width="1.5" stroke="currentColor">
                                        <path stroke-linecap="round" stroke-linejoin="round"
                                            d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" />
                                    </svg>
                                </button>
                                <!--<button type="button" class="close-toggle" id="searchCloseBtn">-->
                                    <!-- Close Icon -->
                                <!--    <svg xmlns="http://www.w3.org/2000/svg" class="close-icon" fill="none" viewBox="0 0 24 24"-->
                                <!--        stroke-width="1.5" stroke="currentColor">-->
                                <!--        <path stroke-linecap="round" stroke-linejoin="round"-->
                                <!--            d="M6 18L18 6M6 6l12 12" />-->
                                <!--    </svg>-->
                                <!--</button>-->
                            </div>
                        </form>

                            <a href="https://www.rachelallan.com/favourites" class="ms-3 d-none d-md-flex"><i class="fa fa-heart-o "></i></a>

                    </div>

                    <div class="menu-links d-block d-md-block d-lg-none">
                        <ul class="menu-content content1">
                            <li class="links-li"><a href="javascript:void(0)" id="subToggle" onclick="subToggle()"
                                    class="show-content2">Collections<img loading="lazy" 
                                        src="https://www.rachelallan.com/images/head-footimg/right-arrow.svg" alt="right-arrow"
                                        class="right-arrow show-content2"></a>
                            </li>
                            <li class="links-li"><a href="javascript:void(0)" id="subToggle" onclick="subToggle()"
                                    class="show-content3">Events<img loading="lazy" 
                                        src="https://www.rachelallan.com/images/head-footimg/right-arrow.svg" alt="right-arrow"
                                        class="right-arrow show-content3"></a>
                            </li>
                            <li class="links-li"><a href="https://www.rachelallan.com/blogs"> Blog </a></li>
                            <li class="links-li"><a href="https://www.rachelallan.com/stores/"> Store Locator </a></li>
                            <li class="links-li"><a href="https://www.rachelallan.com/favourites"> Favorites </a></li>
                            <li class="links-li"><a href="javascript:void(0)" id="subToggle" onclick="subToggle()"
                                    class="show-content4">Login<img loading="lazy" 
                                        src="https://www.rachelallan.com/images/head-footimg/right-arrow.svg" alt="right-arrow"
                                        class="right-arrow show-content4"></a>
                            </li>
                                                      
                        </ul>
                        <ul class="menu-content content2">
                            <h3>
                                <a href="javascript:void(0);" class="show-content1">
                                    <img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/right-arrow.svg" alt="right-arrow"
                                        class="right-arrow">Collections
                                </a>
                            </h3>
                                                                                        
                                <li class="sub-li"><a href="https://www.rachelallan.com/prom">All Prom/Pageant
                                        <img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/down-arrow.svg" alt="down-arrow"
                                            class="down-arrow"></a>

                                    <ul class="nav-list">
                                        
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/prom-dresses">Prom Dresses</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/homecoming-dresses">Homecoming Dresses</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/curves-dresses">Plus Size Dresses</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/pageant-dresses">Pageant Dresses</a>

                                                                                                    <ul class="nav-sublist">
                                                                                                                    
                                                            <li class="nav-subitem"><a
                                                                    href="https://www.rachelallan.com/pageant">Pageant</a>
                                                            </li>
                                                                                                                    
                                                            <li class="nav-subitem"><a
                                                                    href="https://www.rachelallan.com/pageant-dresses-fun-fashion-interview">Fun Fashion/Interview</a>
                                                            </li>
                                                                                                            </ul>
                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/little-girl-pageant-dresses">Little Girl Pageant Dresses</a>

                                                                                                    <ul class="nav-sublist">
                                                                                                                    
                                                            <li class="nav-subitem"><a
                                                                    href="https://www.rachelallan.com/little-girl-pageant">Little Girl Pageant</a>
                                                            </li>
                                                                                                                    
                                                            <li class="nav-subitem"><a
                                                                    href="https://www.rachelallan.com/little-girl-pageant-dresses-fun-fashion-interview">Fun Fashion/Interview</a>
                                                            </li>
                                                                                                            </ul>
                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/pageant-accessories">Pageant Accessories</a>

                                                                                            </li>
                                                                            </ul>
                                </li>
                                                            
                                <li class="sub-li"><a href="https://www.rachelallan.com/bridal">All Bridal
                                        <img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/down-arrow.svg" alt="down-arrow"
                                            class="down-arrow"></a>

                                    <ul class="nav-list">
                                        
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/Bridal-Dresses">Lo&#039; Adoro Bridal</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/couture-damour-bridal-dresses">Couture D&#039;Amour</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/florencia-bridal-dresses">Florencia</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/moda-bella-bridal-dresses">Moda Bella</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/bridal-minis-bridal-gowns">Bridal Minis</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/Ball-Gown-Bridal">Ball Gowns</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/modest-bridal-dresses">Modest</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/Social-Occasion-Dresses">Social Occasion</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/Rachel-Allan-Flowergirl-Dresses">Flower Girl/First Communion</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/bridal-Accessories">Bridal Accessories</a>

                                                                                            </li>
                                                                            </ul>
                                </li>
                                                            
                                <li class="sub-li"><a href="https://www.rachelallan.com/quince">All Quinceanera
                                        <img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/down-arrow.svg" alt="down-arrow"
                                            class="down-arrow"></a>

                                    <ul class="nav-list">
                                        
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/alianna-quinceneara-gowns">Alianna</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/alta-couture-quinceanera-gowns">Alta Couture</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/la-reina-quinceanera-gowns">La Reina</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/carmina-quinceanera-gowns">Carmina</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/charro-quinceanera-gowns">Charro</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/mini-quince">Mini Quince</a>

                                                                                            </li>
                                                                                    
                                            <li class="nav-item">
                                                <a
                                                    href="https://www.rachelallan.com/quinceanera-accessories">Quinceanera Accessories</a>

                                                                                            </li>
                                                                            </ul>
                                </li>
                            
                        </ul>
                        <ul class="menu-content content3">
                            <h3>
                                <a href="javascript:void(0);" class="show-content1">
                                    <img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/right-arrow.svg" alt="right-arrow"
                                        class="right-arrow">Events
                                </a>
                            </h3>
                            <ul>
                                <li class="sub-li"><a
                                        href="https://www.rachelallan.com/events/designer-events/rachel/">Designer Events</a>
                                </li>
                                <li class="sub-li"><a href="https://www.rachelallan.com/events/market-experience/rachel/">
                                        Market Experiences </a></li>
                            </ul>
                        </ul>
                        <ul class="menu-content content4">
                            <h3>
                                <a href="javascript:void(0);" class="show-content1">
                                    <img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/right-arrow.svg" alt="right-arrow"
                                        class="right-arrow">Login
                                </a>
                            </h3>
                            <li class="sub-li"><a target="_blank" href="https://retailer.rachelallan.com/us">Retailer US Login</a></li>
                            <li class="sub-li"><a target="_blank" href="https://retailer.rachelallan.com/us/inventory">US Stock Lookup</a></li>
                            <li class="sub-li"><a target="_blank" href="https://retailer.rachelallan.com/uk">Retailer UK Login</a></li>
                            <li class="sub-li"><a target="_blank" href="https://retailer.rachelallan.com/uk/inventory">UK Stock Lookup</a></li>
                            <li class="sub-li"><a target="_blank" href="https://retailer.rachelallan.com/eu">Retailer EU Login</a></li>
                            <li class="sub-li"><a target="_blank" href="https://retailer.rachelallan.com/eu/inventory">EU Stock Lookup</a></li>
                            
                        </ul>
                    </div>

                    <div class="menu-links d-none d-md-none d-lg-block">
                        <ul class="menu-content content1">
                            <li
                                class="links-li site-nav__item site-nav__expanded-item site-nav--has-dropdown site-nav--is-megamenu">
                                <a href="#">Collections<img loading="lazy" 
                                        src="https://www.rachelallan.com/images/head-footimg/right-arrow.svg" alt="right-arrow"
                                        class="new--top-level site-nav__link site-nav__link--underline site-nav__link--has-dropdown"></a>

                                <!-- <a href="#" class="new--top-level site-nav__link site-nav__link--underline site-nav__link--has-dropdown"> Collections </a> -->
                                <div class="site-nav__dropdown megamenu text-left">
                                    <div class="page-width">
                                        <div class="grid py-0 m-0">

                                                                                                                                        
                                                <div
                                                    class="grid__item custom-width-30 appear-animation appear-delay-1 ps-0">
                                                    <div class="h5">
                                                        <a href="https://www.rachelallan.com/prom"
                                                            class="site-nav__dropdown-link site-nav__dropdown-link--top-level">
                                                            All Prom/Pageant
                                                        </a>
                                                    </div>

                                                    
                                                                                                            
                                                        <div>
                                                            <a href="https://www.rachelallan.com/prom-dresses"
                                                                class="site-nav__dropdown-link">
                                                                Prom Dresses
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/homecoming-dresses"
                                                                class="site-nav__dropdown-link">
                                                                Homecoming Dresses
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/curves-dresses"
                                                                class="site-nav__dropdown-link">
                                                                Plus Size Dresses
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/pageant-dresses"
                                                                class="site-nav__dropdown-link">
                                                                Pageant Dresses
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                                                                                                    <div>
                                                                    <a href="https://www.rachelallan.com/pageant"
                                                                        class="site-nav__dropdown-link">
                                                                        - Pageant
                                                                    </a>
                                                                </div>
                                                                                                                                                                                            <div>
                                                                    <a href="https://www.rachelallan.com/pageant-dresses-fun-fashion-interview"
                                                                        class="site-nav__dropdown-link">
                                                                        - Fun Fashion/Interview
                                                                    </a>
                                                                </div>
                                                                                                                                                                                                                                
                                                        <div>
                                                            <a href="https://www.rachelallan.com/little-girl-pageant-dresses"
                                                                class="site-nav__dropdown-link">
                                                                Little Girl Pageant Dresses
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                                                                                                    <div>
                                                                    <a href="https://www.rachelallan.com/little-girl-pageant"
                                                                        class="site-nav__dropdown-link">
                                                                        - Little Girl Pageant
                                                                    </a>
                                                                </div>
                                                                                                                                                                                            <div>
                                                                    <a href="https://www.rachelallan.com/little-girl-pageant-dresses-fun-fashion-interview"
                                                                        class="site-nav__dropdown-link">
                                                                        - Fun Fashion/Interview
                                                                    </a>
                                                                </div>
                                                                                                                                                                                                                                
                                                        <div>
                                                            <a href="https://www.rachelallan.com/pageant-accessories"
                                                                class="site-nav__dropdown-link">
                                                                Pageant Accessories
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                            </div>
                                                                                            
                                                <div
                                                    class="grid__item custom-width-30 appear-animation appear-delay-1 ">
                                                    <div class="h5">
                                                        <a href="https://www.rachelallan.com/bridal"
                                                            class="site-nav__dropdown-link site-nav__dropdown-link--top-level">
                                                            All Bridal
                                                        </a>
                                                    </div>

                                                    
                                                                                                            
                                                        <div>
                                                            <a href="https://www.rachelallan.com/Bridal-Dresses"
                                                                class="site-nav__dropdown-link">
                                                                Lo&#039; Adoro Bridal
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/couture-damour-bridal-dresses"
                                                                class="site-nav__dropdown-link">
                                                                Couture D&#039;Amour
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/florencia-bridal-dresses"
                                                                class="site-nav__dropdown-link">
                                                                Florencia
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/moda-bella-bridal-dresses"
                                                                class="site-nav__dropdown-link">
                                                                Moda Bella
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/bridal-minis-bridal-gowns"
                                                                class="site-nav__dropdown-link">
                                                                Bridal Minis
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/Ball-Gown-Bridal"
                                                                class="site-nav__dropdown-link">
                                                                Ball Gowns
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/modest-bridal-dresses"
                                                                class="site-nav__dropdown-link">
                                                                Modest
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/Social-Occasion-Dresses"
                                                                class="site-nav__dropdown-link">
                                                                Social Occasion
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/Rachel-Allan-Flowergirl-Dresses"
                                                                class="site-nav__dropdown-link">
                                                                Flower Girl/First Communion
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/bridal-Accessories"
                                                                class="site-nav__dropdown-link">
                                                                Bridal Accessories
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                            </div>
                                                                                            
                                                <div
                                                    class="grid__item custom-width-30 appear-animation appear-delay-1 ">
                                                    <div class="h5">
                                                        <a href="https://www.rachelallan.com/quince"
                                                            class="site-nav__dropdown-link site-nav__dropdown-link--top-level">
                                                            All Quinceanera
                                                        </a>
                                                    </div>

                                                    
                                                                                                            
                                                        <div>
                                                            <a href="https://www.rachelallan.com/alianna-quinceneara-gowns"
                                                                class="site-nav__dropdown-link">
                                                                Alianna
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/alta-couture-quinceanera-gowns"
                                                                class="site-nav__dropdown-link">
                                                                Alta Couture
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/la-reina-quinceanera-gowns"
                                                                class="site-nav__dropdown-link">
                                                                La Reina
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/carmina-quinceanera-gowns"
                                                                class="site-nav__dropdown-link">
                                                                Carmina
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/charro-quinceanera-gowns"
                                                                class="site-nav__dropdown-link">
                                                                Charro
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/mini-quince"
                                                                class="site-nav__dropdown-link">
                                                                Mini Quince
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                                    
                                                        <div>
                                                            <a href="https://www.rachelallan.com/quinceanera-accessories"
                                                                class="site-nav__dropdown-link">
                                                                Quinceanera Accessories
                                                            </a>
                                                        </div>

                                                        
                                                                                                                                                            </div>
                                            

                                        </div>
                                    </div>
                                </div>

                            </li>
                            
                            <li class="links-li"><a href="https://www.rachelallan.com/events/designer-events/rachel/"> Designer Events </a></li>
                            <li class="links-li"><a href="https://www.rachelallan.com/events/market-experience/rachel/"> Market Experiences </a></li>
                            <li class="links-li"><a href="https://www.rachelallan.com/blogs"> Blog </a></li>
                            <li class="links-li"><a href="https://www.rachelallan.com/stores/"> Store Locator </a></li>
                            <li class="links-li"><a href="#" data-bs-toggle="modal"
                                    data-bs-target="#loginModal" class="user">
                                    Login
                                </a></li>
                        </ul>
                        <!-- <ul class="menu-content content2">
              <h3>
                <a href="javascript:void(0);">
                  <img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/right-arrow.svg" alt="right-arrow"
                    class="right-arrow show-content1">Collections
                </a>
              </h3>
              <li class="sub-li"><a href="#">All Prom/Pageant <img loading="lazy" 
                    src="https://www.rachelallan.com/images/head-footimg/down-arrow.svg" alt="down-arrow"
                    class="down-arrow"></a>
                <ul class="nav-list">
                  <li class="nav-item">
                    <a href="#"> Prom Dresses</a>
                  </li>
                  <li class="nav-item">
                    <a href="#">Plus Size Dresses </a>
                  </li>
                  <li class="nav-item">
                    <a href="#">Homecoming Dresses</a>
                  </li>
                  <li class="nav-item"><a href="#">Pageant Dresses</a>
                    <ul class="nav-sublist">
                      <li class="nav-subitem"><a href="#"> Pageant </a></li>
                      <li class="nav-subitem"><a href="#"> Fun Fashion/Interview </a></li>
                    </ul>
                  </li>
                  <li class="nav-item"><a href="#"> Little Girl Pageant Dresses </a>
                    <ul class="nav-sublist">
                      <li class="nav-subitem"><a href="#"> Little Girl Pageant </a></li>
                      <li class="nav-subitem"><a href="#"> Fun Fashion/Interview </a></li>
                    </ul>
                  </li>
                  <li class="nav-item"><a href="#"> Couture Dresses </a></li>
                </ul>
              </li>
              <li class="sub-li"><a href="#">All Bridal<img loading="lazy" 
                    src="https://www.rachelallan.com/images/head-footimg/down-arrow.svg" alt="down-arrow"
                    class="down-arrow"></a>
                <ul class="nav-list">
                  <li class="nav-item">
                    <a href="#" class="mobile-nav__link"> Couture D'Amour </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Florencia </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Lo' Adoro Bridal </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Moda Bella </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Bridal Minis </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Ball Gowns </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Modest </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Bridesmaids </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Social Occasion </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Flower Girl/First Communion </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Bridal Accessories </a>
                  </li>
                </ul>
              </li>
              <li class="sub-li"><a href="#"> All Quinceanera <img loading="lazy" 
                    src="https://www.rachelallan.com/images/head-footimg/down-arrow.svg" alt="down-arrow"
                    class="down-arrow"></a>
                <ul class="nav-list">
                  <li class="nav-item">
                    <a href="#"> Alianna </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Alta Couture </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> La Reina </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Carmina </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Charro </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Mini Quince </a>
                  </li>
                  <li class="nav-item">
                    <a href="#"> Quinceanera Accessories </a>
                  </li>
                </ul>
              </li>
            </ul> -->
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<!-- End Header Section -->
<!-- Modal -->
<div class="modal fade" id="loginModal" data-bs-keyboard="false" tabindex="-1" aria-labelledby="loginModalLabel"
    aria-hidden="true">
    <div class="modal-dialog modal-sm modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header">
                <h3 class="modal-title" id="loginModalLabel">Login/Register</h3>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <ul class="login-links">
                    <li><a title="login" target="_blank" href="https://retailer.rachelallan.com/us">RETAILER US
                            LOGIN</a></li>
                    <li><a title="login" target="_blank" href="https://retailer.rachelallan.com/us/inventory">US
                            STOCK LOOKUP</a></li>
                    <li><a title="login" target="_blank" href="https://retailer.rachelallan.com/uk">RETAILER UK
                            LOGIN</a></li>
                    <li><a title="login" target="_blank" href="https://retailer.rachelallan.com/uk/inventory">UK
                            STOCK LOOKUP</a></li>
                    <li><a title="login" target="_blank" href="https://retailer.rachelallan.com/eu">RETAILER EU
                            LOGIN</a></li>
                    <li><a title="login" target="_blank" href="https://retailer.rachelallan.com/eu/inventory">EU
                            STOCK LOOKUP</a></li>
                    


                </ul>
            </div>
            <!-- <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Understood</button>
      </div> -->
        </div>
    </div>
</div>
    <!-- </section> -->
     
    <!-- Loading Screen -->
    <div id="loading-screen" class="loading-screen">
        <div class="loading-content">
            <div class="loading-spinner">
                <div class="spinner"></div>
            </div>
            <div class="loading-text">Loading...</div>
        </div>
    </div>
        <!-- Main Content Container -->
    <div id="main-content" class="main-content hidden">
        <!-- <section>
            <div class=" p-0"> -->
                <!-- include('includes.sub-header') -->
            <!-- </div> -->
                    <style>
        a {
            text-decoration: none;
            color: inherit;
        }

        a:hover {
            text-decoration: none;
            color: inherit;
        }
        .mobile-view-all {
            height: 100%;
            margin: auto;
        }

        .mobile-view-all .view-all {
            position: absolute;
            bottom: 0;
            left: auto;
        }

        body {
            height: 100vh;
            overflow: hidden;
        }

        /* Start Header */
        .header .logo {
            transition: max-width 0.3s linear, opacity 0.3s linear;
            overflow: hidden;
            opacity: 0;
            max-width: 0;
            margin: 0;
        }

        .header .sticky .logo {
            opacity: 1;
            max-width: 148px;
            margin: 0 15px;
            display: flex;
        }

        .header.fixed .preheader-container {
            height: 0 !important;
        }

        .header .preheader-container {
            width: auto;
            max-width: 1440px;
            padding: 0 20px;
            display: block;
            overflow: hidden;
            transition: height 0.3s linear;
            will-change: height;
            backface-visibility: hidden;
        }

        .header .preheader-container .preheader__logo {
            padding: 12px 0 8px;
            display: block;
        }

        .header .preheader-container .preheader__logo img {
            display: block;
            width: 100%;
            max-height: 100%;
            max-width: 100%;
        }


        /*@media (min-width : 320px) and (max-width : 768px) {*/
        /*    .header .menu-links {*/
        /*        top: 140px;*/
        /*    }*/
        /*}*/

        /* End Header */
        @media screen and (min-width : 1024px) {
            /* Start Header */
            .header .sticky .logo {
                margin-left: 0;
            }

            .header .preheader-container {
                padding: 0 48px;
                z-index: 999;
                background: #fff;
            }

            .header .site-nav_dropdown {
                top: 200px !important;
            }
            /* End Header */
        }

        @media screen and (min-width : 1500px) {
            /* Start Header */
            .header .preheader-container {
                width: 100%;
                margin: auto;
                padding: 0 20px;
            }
            /* End Header */
        }

        @media screen and (min-width: 1600px) {
            /* Start Header */
            .header .preheader-container {
                padding: 0
            }
            /* End Header */
        }
    /* loading screen */
    .loading-screen {
        position: relative;
        width: 100%;
        min-height: 95vh;
        background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
        display: flex;
        justify-content: center;
        align-items: center;
        z-index: 100;

        transition: opacity 0.5s ease-out, visibility 0.5s ease-out;

        /* margin: 20px 0; */

        /* border-radius: 12px; */

        /* box-shadow: 0 4px 15px rgba(0,0,0,0.1); */

    }



    .loading-screen.hidden {

        opacity: 0;

        visibility: hidden;

        height: 0;

        min-height: 0;

        margin: 0;

        overflow: hidden;

    }



    .main-content {

        transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;

    }



    .main-content.hidden {

        opacity: 0;

        visibility: hidden;

    }



    .main-content.visible {

        opacity: 1;

        visibility: visible;

    }


    .loading-content {

        text-align: center;

        color: #333;

    }



    .loading-spinner {

        margin-bottom: 20px;

    }



    .spinner {

        width: 50px;

        height: 50px;

        border: 4px solid rgba(0, 0, 0, 0.3);

        border-top: 4px solid #333;

        border-radius: 50%;

        animation: spin 1s linear infinite;

        margin: 0 auto;

    }



    @keyframes spin {

        0% { transform: rotate(0deg); }

        100% { transform: rotate(360deg); }

    }



    .loading-text {

        font-size: 18px;

        font-weight: 500;

        letter-spacing: 1px;

        color: #333;

        animation: pulse 2s ease-in-out infinite;

    }



    @keyframes pulse {

        0%, 100% { opacity: 1; }

        50% { opacity: 0.7; }

    }



    /* Responsive adjustments */

    @media (max-width: 768px) {

        /* .loading-screen {

            min-height: 50vh;

            margin: 15px 0;

        } */

        

        .spinner {

            width: 40px;

            height: 40px;

            border-width: 3px;

        }

        

        .loading-text {

            font-size: 16px;

        }

    }



    @media (max-width: 480px) {

        /* .loading-screen {

            min-height: 40vh;

            margin: 10px 0;

        } */

        

        .spinner {

            width: 35px;

            height: 35px;

            border-width: 3px;

        }

        

        .loading-text {

            font-size: 14px;

        }

    }

    /* end loading sreen */



    .mobile_video_link .hls-video-player, .mobile-hls-slider .hls-video-player,.hls-video-player{

        height: 100vh !important;

        object-fit: cover !important;

    }

    /* Hide all video controls for slider HLS videos */
    .hls-video-container .hls-video-player::-webkit-media-controls-panel,
    .hls-video-container .hls-video-player::-webkit-media-controls-play-button,
    .hls-video-container .hls-video-player::-webkit-media-controls-timeline,
    .hls-video-container .hls-video-player::-webkit-media-controls-current-time-display,
    .hls-video-container .hls-video-player::-webkit-media-controls-time-remaining-display,
    .hls-video-container .hls-video-player::-webkit-media-controls-mute-button,
    .hls-video-container .hls-video-player::-webkit-media-controls-volume-slider,
    .hls-video-container .hls-video-player::-webkit-media-controls-fullscreen-button {
        display: none !important;
        opacity: 0 !important;
    }

    .hls-video-container .hls-video-player {
        pointer-events: none;
    }

    /* Hide HLS video containers until video is ready */

    .hls-video-container {

        opacity: 0;

        visibility: hidden;

        transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;

    }



    .hls-video-container.hls-ready {

        opacity: 1;

        visibility: visible;

    }

    </style>



    


    <div class="clearfix"></div>

    <section class="main-banner swiper-slide">

        <div class="container-fluid">

            <div class="row">

                <div class="col-12 p-0">

                    <div id="carouselExampleControls" class="carousel slide" data-bs-ride="carousel">

                        <div class="carousel-inner ">

                            
                            
                                
                                    <div class="carousel-item active ">

                                        
                                        
                                            <video preload="none"  class="full-width-content" width="100%" playsinline autoplay muted loop>

                                                <source src="https://media.rachelallan.com/sliders/S8HnvYEPMgj183bwZpSRJnIH5JuuQ2SxEssYNGjJ.mp4" type="video/mp4">

                                            </video>

                                        
                                        
                                    </div>

                                
                                
                            
                        </div>

                        

                    </div>

                </div>

            </div>

        </div>

    </section>



    <!-- section 1 & 2 -->



    <section class="swiper-slide section2">

        <div class="home-container book-app-section">

            
                <div class="collection-header">

                    <h3>The dress you have always imagined!</h3>

                    <h2>RACHEL ALLAN</h2>

                    <a href="https://rachelallan.com/stores">FIND A BOUTIQUE</a>

                </div>

            


            
                <div class="collection-container" id="collections">

                    <!-- item 1 -->

                    
                        


                        <div class="collection-box">

                            <picture>

                                <source srcset="https://media.rachelallan.com/categoryhome/1780927592_F26Banner_imgH02_03.webp" type="image/webp">

                                <img loading="lazy" src="https://media.rachelallan.com/categoryhome/1780927592_F26Banner_imgH02_03.jpg" alt="Bridal">

                            </picture>

                            <div class="info-box">

                                <!--<h2>Bridal</h2>-->

                                <!--<p>Fall 2026 Bridal Collections</p>-->

                                <a href="https://rachelallan.com/bridal">Bridal</a>

                            </div>

                        </div>

                    
                        


                        <div class="collection-box">

                            <picture>

                                <source srcset="https://media.rachelallan.com/categoryhome/1780927597_F26Banner_imgH02_01.webp" type="image/webp">

                                <img loading="lazy" src="https://media.rachelallan.com/categoryhome/1780927597_F26Banner_imgH02_01.jpg" alt="Homecoming">

                            </picture>

                            <div class="info-box">

                                <!--<h2>Homecoming</h2>-->

                                <!--<p>Shine Bright in Prom Silhouettes</p>-->

                                <a href="https://rachelallan.com/prom">Homecoming</a>

                            </div>

                        </div>

                    
                        


                        <div class="collection-box">

                            <picture>

                                <source srcset="https://media.rachelallan.com/categoryhome/1780927602_F26Banner_imgH02_02.webp" type="image/webp">

                                <img loading="lazy" src="https://media.rachelallan.com/categoryhome/1780927602_F26Banner_imgH02_02.jpg" alt="Quinceanera">

                            </picture>

                            <div class="info-box">

                                <!--<h2>Quinceanera</h2>-->

                                <!--<p>Regal elegance &amp; craftsmanship.</p>-->

                                <a href="https://rachelallan.com/quince">Quinceanera</a>

                            </div>

                        </div>

                    


                </div>

            
        </div>

    </section>



<!-- end section 1 & 2 -->

<!-- section 2 -->

    


    <section class="swiper-slide">

        <div class="container-fluid">

            <div class="row">

                <div class="col-12 p-0">

                    <a href="https://rachelallan.com/quince">

                        <!-- if (!$agent->isMobile()) -->

                         
                        <div class="video_link d-none d-md-none d-lg-block" width="100%">

                          

                                <!-- <video preload="none"  loop="" class="myVideo full-width-content" width="100%" autoplay muted playsinline>

                                    <source src="https://media.rachelallan.com/categoryhome/1780927644_Quince Banners_03A.mp4" type="video/mp4">

                                </video> -->

                            
                            
                                <video preload="none"  loop="" class="myVideo full-width-content" width="100%" autoplay muted playsinline>

                                    <source src="https://media.rachelallan.com/categoryhome/1780927644_Quince Banners_03A.mp4" type="video/mp4">

                                </video> 

                                


                        </div>

                        
                        <!-- else -->

                        

                        
                        <div class="d-lg-none d-md-block d-block mobile_video_link" width="100%">

                            
                                
                                
                                    <video preload="none"  loop="" class="mobileMyVideo full-width-content" width="100%" autoplay muted playsinline>

                                        <source src="https://media.rachelallan.com/categoryhome/1780927650_Quince Banners SQ03A.mp4" type="video/mp4">

                                    </video>

                                
                            
                        </div>

                        
                        <!-- endif -->

                    </a>

                    <a href="https://rachelallan.com/quince" class="">

                    <div class="hero-content">

                      

                         
                        <h1>Explore Quinceanera</h1>

                        
                       

                        <!--<p>Engalanada con diseños lujosos y detalles brillantes que elevan sin esfuerzo la elegancia a un nivel completamente nuevo.</p>-->

                        
                        <!--<a href="https://rachelallan.com/quince" class="btn ">Explore Quinceanera</a>-->

                        
                    </div>

                    </a>

                </div>

            </div>

        </div>

    </section>

<!-- end section 2 -->


    


    <section class=" swiper-slide">

        <div class="container-fluid">

            <div class="row">

                <div class="col-12 p-0">

                    <a href="https://rachelallan.com/prom">

                        <!-- if (!$agent->isMobile()) -->

                         
                        <div class="video_link d-none d-md-none d-lg-block" width="100%">

                            
                            
                                <video preload="none"  loop="" class="myVideo full-width-content" width="100%" autoplay muted playsinline>

                                    <source src="https://media.rachelallan.com/categoryhome/1780927657_Hoco Banners_02A.mp4" type="video/mp4">

                                </video> 

                            
                        </div>

                        
                        <!-- else -->

                        

                        
                        <div class="d-lg-none d-md-block d-block mobile_video_link" width="100%">

                            
                                
                                
                                    <video preload="none"  loop="" class="mobileMyVideo full-width-content" width="100%" autoplay muted playsinline>

                                        <source src="https://media.rachelallan.com/categoryhome/1780927667_Hoco Banners SQ02A.mp4" type="video/mp4">

                                    </video>

                                
                            
                        </div>

                        
                        <!-- endif -->

                    </a>

                    <a href="https://rachelallan.com/prom" class="">

                    <div class="hero-content">

                      

                         
                        <h1>View Homecoming</h1>

                        
                       

                        <!--<p>Engalanada con diseños lujosos y detalles brillantes que elevan sin esfuerzo la elegancia a un nivel completamente nuevo.</p>-->

                        
                        <!--<a href="https://rachelallan.com/prom" class="btn ">Explore Homecoming</a>-->

                        
                    </div>

                    </a>

                </div>

            </div>

        </div>

    </section>



    


    <section class="main-pad swiper-slide">

        <div class="container-fluid">

            <div class="row">

                <div class="col-12 p-0">

                    <a href="https://rachelallan.com/bridal">

                        <!-- if (!$agent->isMobile()) -->

                         
                        <div class="video_link d-none d-md-none d-lg-block" width="100%">

                            
                            
                                <video preload="none"  loop="" class="myVideo full-width-content" width="100%" autoplay muted playsinline>

                                    <source src="https://media.rachelallan.com/categoryhome/1780927675_Bridal Banners_01A.mp4" type="video/mp4">

                                </video> 

                            
                        </div>

                        
                        <!-- else -->

                        

                        
                        <div class="d-lg-none d-md-block d-block mobile_video_link" width="100%">

                            
                                
                                
                                    <video preload="none"  loop="" class="mobileMyVideo full-width-content" width="100%" autoplay muted playsinline>

                                        <source src="https://media.rachelallan.com/categoryhome/1780927683_Bridal Banners SQ01A.mp4" type="video/mp4">

                                    </video>

                                
                            
                        </div>

                        
                        <!-- endif -->

                    </a>

                    <a href="https://rachelallan.com/bridal" class="">

                    <div class="hero-content">

                      

                         
                        <h1>Experience Bridal</h1>

                        
                       

                        <!--<p>Engalanada con diseños lujosos y detalles brillantes que elevan sin esfuerzo la elegancia a un nivel completamente nuevo.</p>-->

                        
                        <!--<a href="https://rachelallan.com/bridal" class="btn ">Explore Bridal</a>-->

                        
                    </div>

                    </a>

                </div>

            </div>

        </div>

    </section>



<section class="insta-pad swiper-slide">

    <div class="home-container">

        <div class="row">

            <div class="insta-main ">

                <h2 class="main-heading">FOLLOW OUR INSTAGRAM</h2>

                <!--<p>All retailers are welcome to apply for wholesale status, however, only those businesses that provide a valid Sales Tax Exemption Number/Resale Certificate Number can be approved. Once approved you will be able to see our complete product line with wholesale pricing.</p>-->

            </div>

        </div>

        
        <!-- Latest compiled and minified CSS -->
<!-- Optional theme -->
<!-- Latest compiled and minified JavaScript -->
<script src="https://www.rachelallan.com/js/instafeed.min.js?v=1" type="text/javascript"></script>
<style>
.insta-grid {
    display: grid;
    width: 100%;
    max-width: 100%;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}
.insta-pic-wrapper {
    width: 100%;
    aspect-ratio: 1 / 1;
       margin-bottom: 6px;
}

.insta-pic {
    width: 100%;
    height: 100%;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    background: #eee;
    margin-bottom: 0px !important;
}

.skeleton {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #eee, #f5f5f5, #eee);
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
    0% {background-position: 200% 0}
    100% {background-position: -200% 0}
}

.insta-shop {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: rgba(0,0,0,.5);
    color: #fff;
    opacity: 0;
    transition: .3s;
}

.insta-pic:hover .insta-shop {
    opacity: 1;
}
.insta-shop button{
    margin:initial !important;
}
.insta-pic:hover .insta-shop {
    display: flex !important;
}
</style>
<div id="bridal_token" class="insta-grid" style="margin:0px;"></div>
<div id="quince_token" class="insta-grid" style="margin:0px;"></div>
<div id="prom_token" class="insta-grid" style="margin:0px;"></div>
<script>
let limit = 4;
if (window.innerWidth <= 575) limit = 2;
else if (window.innerWidth <= 768) limit = 3;

function loadInstaFeed(account, targetId) {

    fetch(`/api/instagram/${account}`)
    .then(res => res.json())
    .then(response => {

        const data = response.data;

        const container = document.getElementById(targetId);
        container.innerHTML = '';

        if (!data || data.length === 0) return;

        data.forEach(item => {

            // Your API already gives optimized image
            const imgUrl = item.image;
            const link   = item.link;

            container.innerHTML += `
            <div class="insta-pic-wrapper">
                <div class="insta-pic lazy" data-bg="${imgUrl}">
                    <a href="${link}" target="_blank">
                        <div class="insta-shop">
                            <i class="fa fa-instagram"></i>
                            <button type="button" class="btn btn-dark">View Now</button>
                        </div>
                    </a>
                    <div class="skeleton"></div>
                </div>
            </div>`;
        });

        initLazyLoad();
    })
    .catch(err => console.error('Instagram feed error:', err));
}

// Load feeds
loadInstaFeed('bridal', 'bridal_token');
loadInstaFeed('quince', 'quince_token');
loadInstaFeed('prom',   'prom_token');


// Lazy load
function initLazyLoad() {

    const lazyElements = document.querySelectorAll('.lazy');

    const observer = new IntersectionObserver((entries, obs) => {

        entries.forEach(entry => {

            if (entry.isIntersecting) {

                const el = entry.target;
                const bg = el.getAttribute('data-bg');

                el.style.background = `url(${bg}) center / cover no-repeat`;

                const skeleton = el.querySelector('.skeleton');
                if (skeleton) skeleton.remove();

                obs.unobserve(el);
            }

        });

    }, { rootMargin: '50px', threshold: 0.1 });

    lazyElements.forEach(el => observer.observe(el));
}
</script>




        
    </div>

</section>




    <section class="swiper-slide ">

        <div class="w-100">

            <!-- <hr /> -->

            <div class="" style="height: calc(100vh - 68px);width:100%">

                  <!-- Description with show more -->

                  
                <div style="height:100%; position: relative;" class="image-container">

    
    <picture>

        <source srcset="https://media.rachelallan.com/categories/l1q0K7Pyit5htnjKsA57WulxD5G7Ph4ZrchtKAyj.webp" type="image/webp">

        <img loading="lazy" src="https://media.rachelallan.com/categories/l1q0K7Pyit5htnjKsA57WulxD5G7Ph4ZrchtKAyj.webp" alt=""

            style="height: 100%; object-fit: cover; width: 100%;" />

    </picture>

    
    <div style="position: absolute; bottom: 100px; left: 0; width: 100%; height: 100%; display: flex; justify-content: center; align-items:flex-end;" class="ra-content-wrapper">

        <button type="button" class="ra-view-detail-btn ra-pulse" onmouseover="this.classList.remove('ra-pulse'); this.querySelector('span:last-child').style.transform='scaleX(1)'; this.querySelector('span:last-child').style.transformOrigin='left'; this.querySelector('span:first-child').style.color='#000'" onmouseout="this.classList.add('ra-pulse'); this.querySelector('span:last-child').style.transform='scaleX(0)'; this.querySelector('span:last-child').style.transformOrigin='right'; this.querySelector('span:first-child').style.color='#fff'" onclick="raOpenModal()">

            <span>View Details</span>

            <span style="content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: #fff; z-index: -1; transform: scaleX(0); transform-origin: right; transition: transform 0.5s cubic-bezier(0.5, 1.6, 0.4, 0.7);"></span>

        </button>

       

        <style>

            /* Scoped button styles */

            .ra-view-detail-btn {

                display: inline-block !important;

                padding: 12px 30px !important;

                color: #fff !important;

                background: transparent !important;

                border: 2px solid #fff !important;

                font-size: 16px !important;

                font-weight: 500 !important;

                text-transform: uppercase !important;

                letter-spacing: 2px !important;

                text-decoration: none !important;

                position: relative !important;

                overflow: hidden !important;

                transition: all 0.3s ease !important;

                z-index: 1 !important;

                cursor: pointer !important;

                outline: none !important;

            }

            

            @keyframes ra-pulse {

                0% { transform: scale(1); }

                50% { transform: scale(1.05); }

                100% { transform: scale(1); }

            }

            

            .ra-view-detail-btn.ra-pulse {

                animation: ra-pulse 2s infinite;

            }

            

        /* Professional Full-Screen Modal Styles */

            .ra-modal-overlay {

                position: absolute;

                    top: 0;

                    left: 0;

                    right: 0;

                    bottom: 0;

                width: 100vw;

                height: 100vh;

                background: #ffffff;

                z-index: 9999;

                opacity: 0;

                transition: opacity 0.4s ease, visibility 0.4s ease;

                overflow-y: auto;

                display: none;

                visibility: hidden;

                touch-action: pan-y;

                margin: 0;

                padding: 0;

                -webkit-overflow-scrolling: touch;

            }

            

            .ra-modal-overlay.ra-active {

                display: block;

                opacity: 1;

                visibility: visible;

            }

            

            /* Prevent body scroll when modal is open */

            body.ra-modal-open {

                overflow: hidden;

                height: 100vh;

                position: fixed;

                width: 100%;

                }

                

            /* Ensure modal content can scroll when modal is open */

            .modal.show .modal-body {

                overflow-y: auto;

                max-height: 70vh;

            }

        

            /* Prevent page slide transitions when any modal is open */

            body.modal-open {

                overflow: hidden;

            }

            

            .ra-modal-content {

                background: #ffffff;

                width: 100%;

                min-height: 100vh;

                margin: 0;

            padding: 0;

                position: relative;

            touch-action: pan-y;

            transition: transform 0.4s ease, opacity 0.4s ease;

                opacity: 0;

                overflow-y: auto;

            box-sizing: border-box;

            -webkit-overflow-scrolling: touch;

        }

            

            .ra-modal-overlay.ra-active .ra-modal-content {

                opacity: 1;

            }

            

        /* Professional Header */

        .ra-modal-header {

            background: linear-gradient(135deg, #000000 0%, #333333 100%);

            color: #ffffff;

            padding: 2rem 3rem;

            position: fixed;

            top: 48px;

            border-bottom: 3px solid #f8f9fa;

            width: 100%;

            box-sizing: border-box;

            left: 0;

            right: 0;

            z-index: 100;

        }

            

        .ra-modal-header h1 {

            font-size: 1.8rem;

            font-weight: 700;

            margin: 0;

            letter-spacing: 1px;

            text-transform: uppercase;

            font-family: 'Poppins', sans-serif;

        }

        

        .ra-modal-header p {

            font-size: 13px;

            margin: 0.5rem 0 0 0;

            opacity: 0.9;

            font-weight: 300;

            width: calc(100% - 60px);

            }

            

            .ra-close-modal {

            position: absolute;

            top: 2rem;

            right: 3rem;

            background: rgba(255, 255, 255, 0.1);

            border: 2px solid rgba(255, 255, 255, 0.3);

            color: #ffffff;

            width: 50px;

            height: 50px;

            border-radius: 50%;

            font-size: 24px;

            line-height: 1;

            cursor: pointer;

            transition: all 0.3s ease;

            display: flex;

            align-items: center;

            justify-content: center;

            z-index: 101;

        }

            

            .ra-close-modal:hover {

                background: rgba(255, 255, 255, 0.2);

                border-color: rgba(255, 255, 255, 0.5);

                transform: scale(1.1);

            }

            

            /* Professional Content Area */

            .ra-modal-body {

                padding: 17rem 1.5rem 10rem;

                max-width: 1200px;

                margin: 0 auto;

            }

            

        .ra-desc-box {

                line-height: 1.6;

            font-size: 0.95rem;

                color: #333;

            }

        

        .ra-desc-box p {

            margin-bottom: 1.5rem;

            text-align: justify;

        }

            

            .ra-desc-box strong {

                color: #000;

            font-weight: 700;

            font-size: 1rem;

            display: block;

            margin-bottom: 0.5rem;

            }

            

            .ra-desc-box em {

                color: #666;

                font-style: italic;

                font-weight: 500;

            }

            

            /* Professional Sections */

            .ra-section {

                margin-bottom: 3rem;

                padding: 2rem;

                background: #f8f9fa;

                border-radius: 12px;

                border-left: 4px solid #000;

            }

            

        .ra-section h3 {

            color: #000;

            font-size: 1.1rem;

            font-weight: 700;

            margin-bottom: 1rem;

            text-transform: uppercase;

            letter-spacing: 1px;

        }

            

            .ra-section p {

                margin-bottom: 1rem;

            }

            

            /* FAQ Section */

            .ra-faq-section {

                background: #ffffff;

                border: 2px solid #e9ecef;

                border-radius: 12px;

                padding: 2rem;

                margin-top: 2rem;

            }

            

        .ra-faq-section h3 {

            color: #000;

            font-size: 1.1rem;

            font-weight: 700;

            margin-bottom: 1.5rem;

            text-align: center;

            text-transform: uppercase;

            letter-spacing: 1px;

        }

            

            .ra-faq-item {

                margin-bottom: 1.5rem;

                padding-bottom: 1.5rem;

                border-bottom: 1px solid #e9ecef;

            }

            

            .ra-faq-item:last-child {

                border-bottom: none;

                margin-bottom: 0;

                padding-bottom: 0;

            }

            

        .ra-faq-question {

            font-weight: 700;

            color: #000;

            margin-bottom: 0.5rem;

            font-size: 0.95rem;

        }

            

            .ra-faq-answer {

                color: #666;

                line-height: 1.6;

            }

            

            /* Responsive Design */

            @media (max-width: 1024px) {

            .ra-modal-header {

                padding: 1.5rem 2rem;

            }

            

            .ra-modal-header h1 {

                font-size: 1.5rem;

            }

            

            .ra-close-modal {

                top: 1.5rem;

                right: 2rem;

                width: 45px;

                height: 45px;

                font-size: 20px;

            }

            

            .ra-modal-body {

                padding: 17rem 1.5rem 10rem;

            }

            

            .ra-section {

                padding: 1.5rem;

            }

        }

        @media screen and (min-width:1024px){

            .ra-modal-body {

             padding: 17rem 1.5rem 10rem;

            }

            

            /* Touch scrolling for larger screens (tablets, touch laptops) */

            .ra-modal-overlay {

                touch-action: pan-y;

                -webkit-overflow-scrolling: touch;

                }

                

                .ra-modal-content {

                touch-action: pan-y;

                -webkit-overflow-scrolling: touch;

                }

                

                .ra-desc-box {

                touch-action: pan-y;

                -webkit-overflow-scrolling: touch;

            }

        }

            

        @media (max-width: 768px) {

            .ra-modal-overlay {

                position: absolute;

                top:0;

                left: 0;

                width: 100vw;

                max-height: 100vh;

                z-index: 9999;

            }

            

            .ra-modal-content {

                width: 100%;

                min-height: 100vh;

                margin: 0;

                padding: 0;

            }

            

            .ra-modal-header {

                padding: 1rem 1.5rem;

                position: fixed;

                top: 48px;

                z-index: 100;

            }

            

            .ra-modal-header h1 {

                font-size: 1.3rem;

            }

            

            .ra-close-modal {

                top: 1rem;

                right: 1.5rem;

                width: 40px;

                height: 40px;

                font-size: 18px;

            }

            

            .ra-modal-body {

             padding: 17rem 1.5rem 10rem;

            }

            

            .ra-section {

                padding: 1rem;

            }

            

            .ra-desc-box {

                font-size: 0.9rem;

            }

        }

        

        </style>

        <div id="raDetailsModal" class="ra-modal-overlay" onclick="raCloseModal(event)">

            <div class="ra-modal-content" onclick="event.stopPropagation()">

                <!-- Professional Header -->

                <div class="ra-modal-header">

                <button class="ra-close-modal" onclick="raCloseModal(event)" aria-label="Close">&times;</button>

                    <h1>Rachel Allan</h1>

                    <p>Discover Our Premium Collection of Prom, Bridal and Quinceanera Dresses</p>

                </div>

                

                <!-- Professional Content Body -->

                <div class="ra-modal-body">

                   <p><em><strong>Discover Rachel Allan Prom, Bridal and Quinceanera Dresses</strong></em></p>
<p><strong>Empowerment Through Fashion</strong> <br />At Rachel Allan, our philosophy centers around the belief that fashion is not just about garments, but a means of empowerment and self-expression. With years of industry experience, we have perfected the art of crafting dresses that not only dazzle the eye but also instill confidence in those who wear them.</p>
<p><strong>Impeccable Craftsmanship and Quality</strong> <br />Our attention to detail, impeccable craftsmanship, and dedication to quality are second to none. Each Rachel Allan dress is a testament to our commitment to quality, ensuring customer satisfaction and loyalty.</p>
<p><em><strong>Inclusivity in Every Design</strong></em></p>
<p><strong>Celebrating Diversity</strong> <br />What sets Rachel Allan apart is our unwavering commitment to inclusivity. We understand that beauty comes in all forms, and our diverse range of designs caters to a variety of body types, ensuring that every customer finds a dress that resonates with their unique style and persona.</p>
<p><strong>A Dress for Every Occasion</strong> <br />From the red carpet to formal galas, weddings, and milestone celebrations, our dresses are designed to capture the essence of the wearer, making each moment a memorable one.</p>
<p><em><strong>The Benefits of Choosing Rachel Allan</strong></em></p>
<p><strong>Innovative Designs</strong> <br />By choosing to stock Rachel Allan dresses, you are not just adding a brand to your collection; you are becoming a part of a movement that celebrates individuality and confidence. Our collections boast innovative designs that are ahead of the curve, ensuring that your customers will always have access to the latest trends.</p>
<p><strong>Comprehensive Marketing Support</strong> <br />We offer comprehensive marketing support to drive footfall to your store, including promotional materials, social media assets, and event collaboration opportunities.</p>
<p><strong>Elevating Your Store&rsquo;s Reputation</strong> <br />Stocking Rachel Allan dresses elevates your store&rsquo;s reputation and positions you as a purveyor of high-quality, empowering fashion. Our designs have graced countless special occasions, earning us a reputation for elegance and originality.</p>
<p><strong>FAQs:</strong></p>
<p><strong>What makes Rachel Allan prom dresses unique?</strong> <br />Rachel Allan prom dresses are known for their innovative designs, high-quality materials, and inclusive sizing, ensuring every customer finds a dress that fits perfectly.</p>
<p><strong>Are Rachel Allan prom dresses available in various sizes?</strong> <br />Yes, our prom dress collection is available in a wide range of sizes to accommodate different body types, celebrating diversity and inclusivity.</p>
<p><strong>How can I partner with Rachel Allan to stock their dresses?</strong> <br />Partnering with Rachel Allan is simple. Contact us through our website for more information on how to become a retailer and enjoy the array of benefits we offer.</p>

                </div>

            </div>

        </div>

        <script>

            function checkScreenSize() {

                const wrapper = document.querySelector('.ra-content-wrapper');

                const modalContainer = document.querySelector('.ra-modal-container');

                const viewDetailBtn = document.querySelector('.ra-view-detail-btn');

                const imageContainer = document.querySelector('.image-container');

                

                if (window.innerWidth >= 1366) {

                    // Hide both button and modal on desktop

                    if (wrapper) wrapper.style.display = 'none';

                    if (modalContainer) modalContainer.style.display = 'none';

                    if (imageContainer) imageContainer.style.height = '50vh';

                } else {

                    // Show button and set up modal for mobile/tablet

                    if (wrapper) wrapper.style.display = 'flex';

                    if (modalContainer) modalContainer.style.display = 'none';

                    if (viewDetailBtn) viewDetailBtn.style.display = 'inline-block';

                    if (imageContainer) imageContainer.style.height = '100%';

                }

            }



            // Initial check

            checkScreenSize();

            

            // Check on window resize with debounce

            let resizeTimer;

            window.addEventListener('resize', () => {

                clearTimeout(resizeTimer);

                resizeTimer = setTimeout(checkScreenSize, 250);

            });



            function raOpenModal() {

                const modal = document.getElementById('raDetailsModal');

                if (modal) {

                    // First make it visible

                            modal.style.display = 'block';

                    // Force reflow

                    void modal.offsetWidth;

                    // Add active class to trigger the transition

                    modal.classList.add('ra-active');

                    // Prevent body scroll when modal is open

                            document.body.classList.add('ra-modal-open');

                    // Update modal state

                    isModalOpen = true;

                }

            }

            

            function raCloseModal(event) {

                if (event) {

                    event.preventDefault();

                    event.stopPropagation();

                }

                const modal = document.getElementById('raDetailsModal');

                if (modal) {

                    // Remove active class to trigger the transition

                    modal.classList.remove('ra-active');

                            // Restore body scroll

                            document.body.classList.remove('ra-modal-open');

                    // Update modal state

                    isModalOpen = false;

                    // After the transition completes, hide the modal

                    setTimeout(() => {

                        if (modal && !modal.classList.contains('ra-active')) {

                            modal.style.display = 'none';

                        }

                    }, 300);

                    // Re-enable body scroll

                    document.body.style.overflow = '';

                }

            }



            // Close modal when pressing Escape key

            document.addEventListener('keydown', function(event) {

                if (event.key === 'Escape') {

                    raCloseModal();

                }

            });



            // Close modal when clicking outside content

            document.addEventListener('click', function(event) {

                const modal = document.getElementById('raDetailsModal');

                if (modal && modal.classList.contains('ra-active') && event.target === modal) {

                    raCloseModal(event);

                }

            });

        </script>

    </div>

</div>

                
                <!-- Description with show more -->

                <div class="home-container" style="height:48%; display:flex; flex-direction:column; padding: 15px 48px;">

                    

                    <!-- text box -->

                    <div id="descBox" class="desc-box">

                    <p><em><strong>Discover Rachel Allan Prom, Bridal and Quinceanera Dresses</strong></em></p>
<p><strong>Empowerment Through Fashion</strong> <br />At Rachel Allan, our philosophy centers around the belief that fashion is not just about garments, but a means of empowerment and self-expression. With years of industry experience, we have perfected the art of crafting dresses that not only dazzle the eye but also instill confidence in those who wear them.</p>
<p><strong>Impeccable Craftsmanship and Quality</strong> <br />Our attention to detail, impeccable craftsmanship, and dedication to quality are second to none. Each Rachel Allan dress is a testament to our commitment to quality, ensuring customer satisfaction and loyalty.</p>
<p><em><strong>Inclusivity in Every Design</strong></em></p>
<p><strong>Celebrating Diversity</strong> <br />What sets Rachel Allan apart is our unwavering commitment to inclusivity. We understand that beauty comes in all forms, and our diverse range of designs caters to a variety of body types, ensuring that every customer finds a dress that resonates with their unique style and persona.</p>
<p><strong>A Dress for Every Occasion</strong> <br />From the red carpet to formal galas, weddings, and milestone celebrations, our dresses are designed to capture the essence of the wearer, making each moment a memorable one.</p>
<p><em><strong>The Benefits of Choosing Rachel Allan</strong></em></p>
<p><strong>Innovative Designs</strong> <br />By choosing to stock Rachel Allan dresses, you are not just adding a brand to your collection; you are becoming a part of a movement that celebrates individuality and confidence. Our collections boast innovative designs that are ahead of the curve, ensuring that your customers will always have access to the latest trends.</p>
<p><strong>Comprehensive Marketing Support</strong> <br />We offer comprehensive marketing support to drive footfall to your store, including promotional materials, social media assets, and event collaboration opportunities.</p>
<p><strong>Elevating Your Store&rsquo;s Reputation</strong> <br />Stocking Rachel Allan dresses elevates your store&rsquo;s reputation and positions you as a purveyor of high-quality, empowering fashion. Our designs have graced countless special occasions, earning us a reputation for elegance and originality.</p>
<p><strong>FAQs:</strong></p>
<p><strong>What makes Rachel Allan prom dresses unique?</strong> <br />Rachel Allan prom dresses are known for their innovative designs, high-quality materials, and inclusive sizing, ensuring every customer finds a dress that fits perfectly.</p>
<p><strong>Are Rachel Allan prom dresses available in various sizes?</strong> <br />Yes, our prom dress collection is available in a wide range of sizes to accommodate different body types, celebrating diversity and inclusivity.</p>
<p><strong>How can I partner with Rachel Allan to stock their dresses?</strong> <br />Partnering with Rachel Allan is simple. Contact us through our website for more information on how to become a retailer and enjoy the array of benefits we offer.</p>

                    </div>

                </div>

            </div>

        </div>

    </section>


        <!-- </section> -->
    </div>
    <style>
    input#mce-EMAIL:-webkit-autofill {
    background-color: transparent !important; /* your desired color */
    -webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
    -webkit-text-fill-color: #fff !important;
    transition: background-color 5000s ease-in-out 0s;
    }
    
    /* Footer submit button styles */
    .footer .submit {
        background-color: #ffffff;
        padding: 10px 24px;
        border-radius: 4px;
        color: #dadde1;
        font-weight: 500;
        text-transform: uppercase;
        font-size: 14px;
        margin-top: 30px;
        transition: color 0.3s ease;
    }
    
    /* Active state when email is filled */
    .footer .submit.has-email {
        color: #000000 !important;
    }
</style>
<!-- Start Footer Section -->
<section class="footer swiper-slide ">
    <div class="main-container">
        <div class="footer-container">
            <!-- logo -->
            
            <div class="heading">
                <h2>Stay Up To Date With Rachel Allan</h2>
            </div>
            <div class="footer-list">
                <form action="" class="form">
                    <h3>Sign up here!</h3>
                    <div class="checkcontainer">
                        <!-- <div class="checkcontent">
                                    <input type="checkbox" id="newsletter-bridal">
                                    <label for="newsletter-bridal"> Bridal</label>
                                </div>
                                <div class="checkcontent">
                                    <input type="checkbox" id="newsletter-occasion">
                                    <label for="newsletter-occasion">Occasion Wear</label>
                                </div> -->
                    </div>
                    <div class="input-container">
                        <input name="email" type="email" id="mce-EMAIL" autocomplete="off"
                            placeholder="&nbsp;"  required>
                        <label for="newsletter" class="label">
                            Email <span class="label-required">*</span>
                        </label>
                    </div>
                    <div class="field-consent">
                        <input type="checkbox"><span>By subscribing you confirm that you have read and agree to our &nbsp;<a href="https://www.rachelallan.com/privacy-policy/" title="Privacy Policy" target="_blank"> Privacy Policy</a>.</span>
                    </div>
                    <button class="submit" type="button" id="subscribe-btn" onclick="subscribe()">SUBSCRIBE</button>
                </form>

                <div class="footer-social">
                    <h3>Follow us</h3>
                    <div class="social-icons">
                        <div class="social-item">
                            <a href="javascript:void(0)" class="social-link"><i
                                    class="fa fa-instagram"></i><span>Instagram</span></a>
                            <ul class="popup-inner instagram">
                                <li><a href="https://www.instagram.com/rachelallanquince">@RACHELALLANQUINCE</a></li>
                                <li><a href="https://www.instagram.com/rachelallanbridal">@RACHELALLANBRIDAL</a></li>
                                <li><a href="https://www.instagram.com/rachelallan">@RACHELALLAN</a></li>
                            </ul>
                        </div>
                        <div class="social-item">
                            <a href="javascript:void(0)" class="social-link"><i
                                    class="fa fa-facebook-f"></i><span>Facebook</span></a>
                            <ul class="popup-inner facebook">
                                <li><a href="https://www.facebook.com/rachelallanquince">@RACHELALLANQUINCE</a></li>
                                <li><a
                                        href="https://www.facebook.com/rachelallanbridalgowns">@RACHELALLANBRIDALGOWNS</a>
                                </li>
                                <li><a href="https://www.facebook.com/realrachelallan">@REALRACHELALLAN</a></li>
                            </ul>

                        </div>
                        <div class="social-item">
                            <a href="javascript:void(0)" class="social-link"><i
                                    class="bi bi-tiktok"></i><span>TikTok</span></a>
                            <ul class="popup-inner tiktok">
                                <li><a
                                        href="https://www.tiktok.com/@rachelallanquinceanera">@RACHELALLANQUINCEANERA</a>
                                </li>
                                <li><a href="https://www.tiktok.com/@rachelallanbridal_">@RACHELALLANBRIDAL_</a></li>
                                <li><a href="https://www.tiktok.com/@rachelallan_">@RACHELALLAN_</a></li>
                            </ul>
                        </div>
                        <div class="social-item">
                            <a href="javascript:void(0)" class="social-link"><i
                                    class="fa fa-pinterest-p"></i><span>Pinterest</span></a>
                            <ul class="popup-inner pinterest">
                                <li><a
                                        href="https://www.pinterest.com/rachelallanbridalandquince">@RACHELALLANBRIDALANDQUINCE</a>
                                </li>
                                <li><a href="https://www.pinterest.com/rachelallanprom">@RACHELALLANPROM</a></li>
                            </ul>
                        </div>
                        <div class="social-item">
                            <a href="javascript:void(0)" class="social-link"><i
                                    class="fa fa-youtube"></i><span>Youtube</span></a>
                            <ul class="popup-inner youtube">
                                <li><a
                                        href="https://www.youtube.com/@rachelallanbridalandquince">@RACHELALLANBRIDALANDQUINCE</a>
                                </li>
                                <li><a
                                        href="https://www.youtube.com/channel/UCYUn4jQB_092wR5TH2IFHDw">@RACHELALLANPROM</a>
                                </li>
                            </ul>
                        </div>
                    </div>
                </div>

                <div class="ques-list">
                    <div class="ques-item">
                        <div class="ques">
                            <h3>Customer Care</h3><img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/down-arrow.svg"
                                alt="down-arrow">
                        </div>
                        <div class="ans">
                            <ul>
                                <li>
                                    <a href="https://www.rachelallan.com/faq/">FAQS</a>
                                </li>
                                <li>
                                    <a href="#sizeChartModal" class="charts" data-bs-toggle="modal"
                                        data-img-url="https://media.rachelallan.com/sizechart/D4D0VCvST23OqpaGTrjNiMMtIPW9eW9WKQbSUPb8.jpg">SIZE CHART</a>
                                </li>
                                <li>
                                    <a href="https://www.rachelallan.com/contact/">CONTACT US</a>
                                </li>
                            </ul>
                        </div>
                    </div>
                    <div class="ques-item">
                        <div class="ques">
                            <h3>Login</h3><img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/down-arrow.svg"
                                alt="down-arrow">
                        </div>
                        <div class="ans">
                            <ul>

                                <li><a title="login" target="_blank"
                                        href="https://retailer.rachelallan.com/us">RETAILER US LOGIN</a></li>
                                <li><a title="login" target="_blank"
                                        href="https://retailer.rachelallan.com/us/inventory">US STOCK LOOKUP</a></li>
                                <li><a title="login" target="_blank"
                                        href="https://retailer.rachelallan.com/uk">RETAILER UK LOGIN</a></li>
                                <li><a title="login" target="_blank"
                                        href="https://retailer.rachelallan.com/uk/inventory">UK STOCK LOOKUP</a></li>
                                <li><a title="login" target="_blank" href="https://retailer.rachelallan.com/eu">RETAILER EU
                                        LOGIN</a></li>
                                <li><a title="login" target="_blank" href="https://retailer.rachelallan.com/eu/inventory">EU
                                        STOCK LOOKUP</a></li>
                                

                            </ul>
                        </div>
                    </div>
                    <div class="ques-item">
                        <div class="ques">
                            <h3>Information</h3><img loading="lazy"  src="https://www.rachelallan.com/images/head-footimg/down-arrow.svg"
                                alt="down-arrow">
                        </div>
                        <div class="ans">
                            <ul>

                                <li><a href="https://www.rachelallan.com/about/">ABOUT US</a></li>
                                <li><a href="https://www.rachelallan.com/privacy-policy/"
                                        title="Privacy Policy">PRIVACY POLICY</a></li>
                                <li><a href="https://www.rachelallan.com/terms/"
                                        title="Terms &amp; Conditions">TERMS &amp; CONDITIONS</a>
                                </li>
                                <li><a href="https://www.rachelallan.com/stores/">STORE LOCATOR</a></li>
                                <li><a href="https://www.rachelallan.com/model-inquiry">MODEL INQUIRY</a></li>
                                <li><a href="https://www.rachelallan.com/content-creator">CONTENT CREATORS</a></li>

                            </ul>
                        </div>
                    </div>

                    <div class="ques-item">
                        <div class="ans">
                            <p class="copyright__text" lang="en">
                                <span>Copyright © 2025 Rachel Allan
                                </span><span> All rights reserved</span>
                            </p>
                        </div>
                    </div>
                </div>
                <!-- <p class="copyright__text" lang="en">
                            <span>Copyright © 2024 Rachel Allan
                            </span><span> All rights reserved</span></p> -->
                <div class="bottom-logo">
                    <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1335 137.88">
                        <!-- Generator: Adobe Illustrator 29.4.0, SVG Export Plug-In . SVG Version: 2.1.0 Build 152)  -->
                        <defs>
                            <style>
                                .st0 {
                                    fill: #fff;
                                }
                            </style>
                        </defs>
                        <path class="st0"
                            d="M0,0h27.46C42.78,0,53.15.62,58.59,1.87c8.19,1.88,14.84,5.9,19.97,12.06,5.12,6.16,7.69,13.75,7.69,22.76,0,7.51-1.77,14.11-5.3,19.8-3.53,5.69-8.58,10-15.14,12.9-6.56,2.91-15.62,4.4-27.18,4.46l49.59,64.02h-17.05L21.57,73.86h-7.79v64.02H0V0ZM13.78,13.49v46.87l23.75.19c9.2,0,16.01-.87,20.42-2.62,4.41-1.75,7.86-4.55,10.33-8.39,2.47-3.84,3.71-8.14,3.71-12.89s-1.25-8.83-3.75-12.61c-2.5-3.78-5.79-6.48-9.86-8.11-4.07-1.62-10.83-2.44-20.28-2.44H13.78Z" />
                        <path class="st0"
                            d="M172.1,0l64.3,137.89h-14.88l-21.69-45.37h-59.4l-21.48,45.37h-15.37L168.73,0h3.37ZM170.36,29.29l-23.63,49.91h47.14l-23.51-49.91Z" />
                        <path class="st0"
                            d="M361.78,27.66l-10.35,7.94c-5.71-7.44-12.57-13.07-20.57-16.91-8-3.84-16.79-5.76-26.37-5.76-10.47,0-20.17,2.51-29.09,7.54-8.92,5.03-15.84,11.78-20.75,20.26-4.91,8.48-7.36,18.01-7.36,28.6,0,16,5.49,29.36,16.47,40.07,10.98,10.71,24.83,16.06,41.54,16.06,18.38,0,33.77-7.2,46.14-21.6l10.35,7.85c-6.54,8.33-14.71,14.77-24.5,19.32-9.79,4.55-20.72,6.83-32.8,6.83-22.97,0-41.08-7.65-54.35-22.94-11.13-12.91-16.69-28.5-16.69-46.77,0-19.22,6.74-35.39,20.21-48.51C267.13,6.56,284.02,0,304.3,0c12.26,0,23.32,2.42,33.2,7.27,9.88,4.85,17.97,11.65,24.28,20.39Z" />
                        <path class="st0"
                            d="M389.11,0h13.78v57.84h70.21V0h13.78v137.89h-13.78v-66.55h-70.21v66.55h-13.78V0Z" />
                        <path class="st0"
                            d="M520.53,0h79.02v13.5h-65.24v43.21h64.68v13.5h-64.68v54.18h64.68v13.5h-78.46V0Z" />
                        <path class="st0" d="M623.35,0h13.78v124.58h53.05v13.31h-66.83V0Z" />
                        <path class="st0"
                            d="M821.51,0l64.3,137.89h-14.88l-21.69-45.37h-59.4l-21.48,45.37h-15.37L818.14,0h3.37ZM819.77,29.29l-23.63,49.91h47.14l-23.51-49.91Z" />
                        <path class="st0" d="M907.19,0h13.78v124.58h53.05v13.31h-66.83V0Z" />
                        <path class="st0" d="M995.86,0h13.78v124.58h53.05v13.31h-66.83V0Z" />
                        <path class="st0"
                            d="M1140.87,0l64.3,137.89h-14.88l-21.69-45.37h-59.4l-21.48,45.37h-15.37L1137.5,0h3.37ZM1139.13,29.29l-23.63,49.91h47.14l-23.51-49.91Z" />
                        <path class="st0"
                            d="M1226.64,137.88V0h3l91.77,105.7V0h13.59v137.89h-3.09l-91.02-104.41v104.41h-14.25Z" />
                    </svg>
                </div>
            </div>
        </div>
    </div>
</section>
<!-- End Footer Section -->
<style>
    /* Subscribe modal - professional styling */
    .ra-subscribe-modal{
        border: 0;
        border-radius: 14px;
        overflow: hidden;
        box-shadow: 0 20px 60px rgba(0,0,0,0.35);
        background: #fff;
    }
    .ra-subscribe-header{display:flex;align-items:center;justify-content:space-between;background:#000;padding:16px 20px;color:#fff;position:relative}
    .ra-subscribe-modal .modal-title{margin:0;font-size:18px;font-weight:700;letter-spacing:.3px}
    .ra-subscribe-close{background:transparent;border:0;color:#fff;font-size:28px;line-height:1;cursor:pointer;padding:0 4px;margin-left:12px;position:absolute;top:12px;right:12px;z-index:2}
    .ra-subscribe-close:focus{outline:none;box-shadow:none}

    .ra-subscribe-body{padding:24px}
    .ra-subscribe-radio{margin-bottom:10px}
    .ra-subscribe-footer{display:flex;gap:12px;justify-content:flex-end;padding:16px 24px;border-top:1px solid #eee;background:#fafafa}
    .ra-btn-secondary{background:#e9ecef;color:#000;border:0;border-radius:8px;padding:10px 16px;font-weight:600}
    .ra-btn-primary{background:#000;color:#fff;border:0;border-radius:8px;padding:10px 16px;font-weight:700}
    .ra-btn-secondary:focus,.ra-btn-primary:focus{outline:none;box-shadow:none}
    .ra-subscribe-modal input[type="radio"]:focus{outline:none;box-shadow:none}

    @media (min-width: 768px){.modal-dialog.modal-md{max-width:520px}}

 
</style>
<div class="modal fade" id="sizeChartModal" tabindex="-1" role="dialog" aria-labelledby="sizeChartModalLabel"
    aria-hidden="true">
    <div class="modal-dialog modal-lg" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
                    <!-- <span aria-hidden="true">&times;</span> -->
                </button>
            </div>
            <div class="modal-body">
                <img loading="lazy"  src="" class="img-fluid" />
            </div>
        </div>
    </div>
</div>

<!-- Modal -->
<div class="modal fade" id="subscribeModal" tabindex="-1" aria-labelledby="subscribeModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-md">
        <div class="modal-content ra-subscribe-modal text-dark">
            <div class="ra-subscribe-header">
                <h5 class="modal-title" id="subscribeModalLabel">Subscribe</h5>
                <button type="button" class="ra-subscribe-close" data-bs-dismiss="modal" aria-label="Close">&times;</button>
            </div>
            <form action="https://www.rachelallan.com/subscribe" method="post" id="subscribe-form" autocomplete="off">
                <input type="hidden" name="_token" value="ab6tyAq9gOkQ3BCgZ47RkqClFui1NRIfQmSTNnJx">                <div class="modal-body ra-subscribe-body">
                    <div class="sub-msg"></div>
                    <input type="hidden" name="email" id="s-email">

                    <div class="form-check ra-subscribe-radio">
                        <input class="form-check-input" type="radio" name="type" id="flexRadioDefault1" value="R">
                        <label class="form-check-label" for="flexRadioDefault1">I'm a Retailer</label>
                    </div>
                    <div class="form-check ra-subscribe-radio">
                        <input class="form-check-input" type="radio" name="type" id="flexRadioDefault2" value="D" checked>
                        <label class="form-check-label" for="flexRadioDefault2">I'm shopping for my dress</label>
                    </div>
                </div>
                <div class="ra-subscribe-footer">
                    <button type="button" class="btn ra-btn-secondary" data-bs-dismiss="modal">Close</button>
                    <button type="button" class="btn ra-btn-primary" id="subscribe_submit">Submit</button>
                </div>
            </form>
        </div>
    </div>
</div>
<!-- Mobile Footer Modal -->
<div class="modal fade" id="mobileFooterModal" tabindex="-1" role="dialog" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="mobileModalTitle"></h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body" id="mobileModalBody">
                <!-- Content will be inserted here by JavaScript -->
            </div>
        </div>
    </div>
</div>



<style>
    .js-cookie-consent {
        width: 100%;
        padding: 12px;
        position: fixed;
        bottom: 0px;
        text-align: center;
        background: #000;
        z-index: 999999;
    }

    .js-cookie-consent-agree {
        font-size: 10px;
    }

    .cookie-consent__message {
        font-size: 12px;
        color: #fff;
    }

    .disagree-btn {
        text-align: right;
    }

    .agree-btn {
        text-align: left;
    }

    .cookie-msg {
        text-align: left;
    }

    @media only screen and (max-width: 550px) {
        .cookie-msg {
            text-align: center;
        }
    }
</style>
<div class="js-cookie-consent cookie-consent ">
    <div class=" row">
    <div class="col-12 col-md-7 offset-md-1 cookie-msg">
        <span class="cookie-consent__message ">
            We use cookies and other tracking technologies to improve your browsing experience. By clicking agree and browsing our website, you consent to our use of cookies and other tracking technologies. More information can be found on our <a style="color:white;font-size:12px;font-weight:bold" href="https://www.rachelallan.com/privacy-policy"> Privacy Policy </a>.
        </span>
    </div>

    <div class="col-12 col-md-4">
        <div class="row">
            <div class="col-md-6 col-6 mt-2 disagree-btn">
                <button class="js-cookie-consent-agree cookie-consent__agree btn btn-dark ">
                    DISAGREE
                </button>
            </div>
            <div class="col-md-6 col-6 mt-2 agree-btn">
                <button class="js-cookie-consent-agree cookie-consent__agree btn btn-dark ">
                    AGREE
                </button>
            </div>
        </div>
    </div>
</div>

</div>
    <script>

        window.laravelCookieConsent = (function () {

            const COOKIE_VALUE = 1;
            const COOKIE_DOMAIN = 'www.rachelallan.com';

            function consentWithCookies() {
                setCookie('laravel_cookie_consent', COOKIE_VALUE, 7300);
                hideCookieDialog();
            }

            function cookieExists(name) {
                return (document.cookie.split('; ').indexOf(name + '=' + COOKIE_VALUE) !== -1);
            }

            function hideCookieDialog() {
                const dialogs = document.getElementsByClassName('js-cookie-consent');

                for (let i = 0; i < dialogs.length; ++i) {
                    dialogs[i].style.display = 'none';
                }
            }

            function setCookie(name, value, expirationInDays) {
                const date = new Date();
                date.setTime(date.getTime() + (expirationInDays * 24 * 60 * 60 * 1000));
                document.cookie = name + '=' + value
                    + ';expires=' + date.toUTCString()
                    + ';domain=' + COOKIE_DOMAIN
                    + ';path=/'
                    + '';
            }

            if (cookieExists('laravel_cookie_consent')) {
                hideCookieDialog();
            }

            const buttons = document.getElementsByClassName('js-cookie-consent-agree');

            for (let i = 0; i < buttons.length; ++i) {
                buttons[i].addEventListener('click', consentWithCookies);
            }

            return {
                consentWithCookies: consentWithCookies,
                hideCookieDialog: hideCookieDialog
            };
        })();
    </script>

</body>
<script src="https://www.rachelallan.com/js/jquery-1.12.4.min.js"></script>
<script src="https://www.rachelallan.com/js/notify.min.js"></script>
    <!-- <script src="https://www.rachelallan.com/js/aos.js"></script>
    <script>
    AOS.init(); -->
    </script>
<!-- <script src="https://www.rachelallan.com/js/bootstrap.min.js"></script> -->
<script src="https://www.rachelallan.com/js/bootstrap.bundle.min.js"></script>
<script src="https://www.rachelallan.com/js/owl.carousel.min.js"></script>
<!--<script src="https://www.rachelallan.com/dflip/js/dflip.min.js" type="text/javascript"></script>-->
<script>
    function setInstagramSize() {
        setTimeout(() => {
            var instaWidth = $(".insta-pic").width();
            $(".insta-pic").css("height", (instaWidth - 20) + "px");
        }, 500);

    }

    function setSizeChartHeigth() {
        var windowHeight = $(window).height() - 150;
        $("#sizeChartModal .modal-body").css("height", windowHeight + "px");
    }

    function setLeftImageWidth() {
        var width = $(".model-image.fixed").parent(".col-sm-6").width();
        if (width != null) {
            $(".model-image.fixed").css("width", width + "px");
        }
    }

    $(document).ready(function() {
        setInstagramSize();
        setSizeChartHeigth();
        $(".video_image").on("click", function() {
            var chk_video = true;
            if ($(this).is(":visible")) {
                if (chk_video) {
                    $(this).hide();
                    // $(".video_link").html('<video loop id="myVideo" width="100%" height="auto" controls="false"><source src="https://www.rachelallan.com/videos/S22RachelAllan_LocationNoAudio.mp4" type="video/mp4"></video>');
                    $(this).parent().find(".video_link").show();
                    $(this).parent().find(".myVideo").get(0).play();
                    // document.getElementById("myVideo").play();
                    chk_video = false;
                    var vids = $(this).parent().find(".myVideo");
                    $.each(vids, function() {
                        this.controls = false;
                    });
                } else {
                    $(this).hide();
                    $(this).parent().find(".video_link").show();
                    $(this).parent().find(".myVideo").get(0).pause();
                    // document.getElementById("myVideo").pause();

                    //chk_video=true;
                }

            }
        });

        $(".mobile_video_image").on("click", function() {
            var chk_video = true;
            if ($(this).is(":visible")) {
                if (chk_video) {
                    $(this).hide();
                    // $(".video_link").html('<video loop id="myVideo" width="100%" height="auto" controls="false"><source src="https://www.rachelallan.com/videos/S22RachelAllan_LocationNoAudio.mp4" type="video/mp4"></video>');
                    $(this).parent().find(".mobile_video_link").show();
                    $(this).parent().find(".mobileMyVideo").get(0).play();
                    // document.getElementById("myVideo").play();
                    chk_video = false;
                    var vids = $(this).parent().find(".mobileMyVideo");
                    $.each(vids, function() {
                        this.controls = false;
                    });
                } else {
                    $(this).hide();
                    $(this).parent().find(".mobile_video_link").show();
                    $(this).parent().find(".mobileMyVideo").get(0).pause();
                    // document.getElementById("myVideo").pause();

                    //chk_video=true;
                }

            }
        });

        $(".video_link").on("click", function() {
            $(this).find('.myVideo').get(0).pause();
            // document.getElementById("myVideo").pause();
            $(this).parent().find(".video_image").show();
            $(this).parent().find(".video_link").hide();
            // $(".video_image").show();
            // $(".video_link").hide();

        });

        $(".mobile_video_link").on("click", function() {
            $(this).find('.mobileMyVideo').get(0).pause();
            // document.getElementById("myVideo").pause();
            $(this).parent().find(".mobile_video_image").show();
            $(this).parent().find(".mobile_video_link").hide();
            // $(".video_image").show();
            // $(".video_link").hide();

        });


    });

    $(window).resize(function() {
        setInstagramSize();
    });
</script>
<script>
    // document.addEventListener("DOMContentLoaded", function(){
    // window.addEventListener('scroll', function() {
    //     if (window.scrollY > 100) {
    //         setLeftImageWidth();
    //         document.getElementById('header-tag').classList.add('site-header--stuck');
    //         document.getElementById('header-tag').classList.add('site-header--opening');
    //         if(document.getElementById('product-list-sidebar')!=null) {
    //           document.getElementById('product-list-sidebar').classList.add('sticky-sidebar');
    //         }
    //         if(document.getElementById('model-image')!=null) {
    //           document.getElementById('model-image').classList.add('fixed');
    //         }

    //     } else {
    //         document.getElementById('header-tag').classList.remove('site-header--stuck');
    //         document.getElementById('header-tag').classList.remove('site-header--opening');
    //         if(document.getElementById('product-list-sidebar')!=null) {
    //           document.getElementById('product-list-sidebar').classList.remove('sticky-sidebar');
    //         }
    //         if(document.getElementById('model-image')!=null) {
    //           document.getElementById('model-image').classList.remove('fixed');
    //         }
    //     } 
    // });
    // }); 
</script>

<script>
    $(document).ready(function() {
        var owl = $('#related');
        owl.owlCarousel({
            margin: 10,
            nav: false,
            dots: true,
            autoplay: true,
            autoplayTimeout: 9000,
            autoplayHoverPause: true,
            loop: true,
            responsive: {
                0: {
                    items: 1
                },
                600: {
                    items: 2
                },
                1000: {
                    items: 5
                },
            }
        })
    })

    function fadeToggleTopSection() {
        var $elements = $('#textslider .item');
        var count = $elements.length;
        $elements.each(function(i) {
            let el = this;
            setTimeout(function() {
                $(el).css("opacity", 1);
            }, 4200 * i);
            setTimeout(function() {
                $(el).css("opacity", 0);
            }, 4000 * (i + 1));

        });
        setTimeout(function() {
            fadeToggleTopSection();
        }, 4200 * count);
    }

    $(document).ready(function() {
        fadeToggleTopSection();
        // var owl = $('#textslider');
        //     owl.owlCarousel({
        //     items: 1,
        //     loop: true,
        //     autoplay: true,
        //     autoplayHoverPause: true,
        //     smartSpeed:1500,
        //     animateIn: 'fadeIn', // add this
        //     animateOut: 'fadeOut' 
        // })
    })
    $(document).ready(function() {

        $(document).on("click", ".js-search-header", function() {
            setTimeout(function() {
                $(".site-header__search-input").focus();
            }, 1000);
        });

        var owl = $('#detail-prod');
        owl.owlCarousel({
            margin: 10,
            autoplay: true,
            autoplayTimeout: 4000,
            autoplayHoverPause: true,
            nav: false,

            loop: true,
            responsive: {
                0: {
                    items: 1
                },
                600: {
                    items: 1
                },
                1000: {
                    items: 1
                },
            }
        })
    });
</script>
<script>
    // Start Header-link
    // $('.links-li a.head-dropdown').click(function () {
    //   $(this).toggleClass("active").siblings("sub-events").slideToggle();
    //   // Remove active class from siblings and slide up their dropdown-info
    //   $(this).closest('.links-li').siblings().find('.head-dropdown').removeClass('active').end().find('.sub-events').slideUp();
    // });
    $(document).ready(function() {
        const $linksLi = $('.links-li');

        // Toggle on click
        $('.head-dropdown').click(function(e) {
            e.stopPropagation(); // Prevent click bubbling
            const $parentLi = $(this).closest('.links-li');

            // Close other open menus
            $linksLi.not($parentLi).removeClass('show');

            // Toggle current
            $parentLi.toggleClass('show');
        });

        // Keep open on hover
        $linksLi.hover(
            function() {
                $(this).addClass('show');
            },
            function() {
                $(this).removeClass('show');
            }
        );

        // Close when clicking outside
        $(document).click(function() {
            $linksLi.removeClass('show');
        });
    });

    // End Header-link
</script>

<script>
    // Start Fixed Header
    window.onscroll = function() {
        headFunction()
    };
    var header1 = $("#fixheader");
    var sticky1 = header1.offsetTop;

    function headFunction() {
        if ($(this).scrollTop() > 50 && $(this).width() >= 320) {
            header1.addClass("sticky").removeClass("sticky-down");
            header1.parents(".header").addClass("fixed");
            $('body').css('padding-top', header1.outerHeight());
        } else {
            header1.removeClass("sticky").addClass("sticky-down");
            header1.parents(".header").removeClass("fixed");
            $('body').css('padding-top', 0); // Add this line
        }
    };
    // End Fixed Header

    // Start Header Toggle
    $(document).ready(function() {
        $('#menuToggle').click(function() {
            $(this).toggleClass("active");

            if ($(this).hasClass('active')) {
                $('body').addClass('no-scroll');
            } else {
                $('body').removeClass('no-scroll');
            }

            // Always toggle 'open' on .menu-links
            $('.menu-links').toggleClass('open');

            // Remove 'show-content2' if it exists when menu is toggled
            if ($('.menu-links').hasClass('show-content2')) {
                $('.menu-links').removeClass('show-content2');
            }
        });

        $('.show-content2').click(function() {
            $('.menu-links').addClass('show-content2');
        });

        $('.show-content1').click(function() {
            $('.menu-links').removeClass('show-content2');
        });
        $('.show-content1').click(function() {
            $('.menu-links').removeClass('show-content3');
        });
        $('.show-content1').click(function() {
            $('.menu-links').removeClass('show-content4');
        });
        $('.show-content3').click(function() {
            $('.menu-links').addClass('show-content3').removeClass(".show-content1");
        });
        $('.show-content4').click(function() {
            $('.menu-links').addClass('show-content4').removeClass(".show-content1");
        });

        $(".content2 .down-arrow").click(function(e) {
            e.preventDefault();

            const currentSubLi = $(this).closest(".sub-li");
            const currentNavList = currentSubLi.find(".nav-list");

            if (currentSubLi.hasClass("active")) {
                currentSubLi.removeClass("active");
                currentNavList.slideUp();
            } else {
                $(".content2 .sub-li.active").removeClass("active").find(".nav-list").slideUp();
                currentSubLi.addClass("active");
                currentNavList.slideDown();
            }
        });
    });
    // End Header Toggle


    // Start Header Animation
    $(document).ready(function() {
        // Function to update preheader height
        function updatePreheaderHeight1() {
            var preheader = $('.preheader-container');

            // Reset height to auto to get natural content height
            preheader.css('height', 'auto');

            // Calculate the natural height of the content
            var naturalHeight1 = preheader.outerHeight();

            // Set the calculated height only if it's greater than 0
            if (naturalHeight1 > 0) {
                preheader.css('height', naturalHeight1 + 'px');
            } else {
                console.warn('Preheader height calculated as 0. Content may not be loaded.');
            }
        }

        // Initialize height
        updatePreheaderHeight1();

        // Update on window resize with debounce for performance
        var resizeTimer1;
        $(window).resize(function() {
            clearTimeout(resizeTimer1);
            resizeTimer1 = setTimeout(updatePreheaderHeight1, 100); // Debounce timer
        });

        // Update on window load
        $(window).on("load", function() {
            updatePreheaderHeight1();
        });

        // Optional: Update if content changes (like AJAX loads)
        // $(document).on('ajaxComplete', function() {
        //     updatePreheaderHeight();
        // });
    });
    // End Header Animation


    // Start  Gallery Script
    $.each($('.content-list li'), function(index, ele) {
        $(ele).attr('data-target', index);
    });
    $.each($('.content-description .content'), function(index, ele) {
        $(ele).attr('id', index);
    });
    $(".content-list li").removeClass('active').first().addClass('active');
    $('.content-description .content').first().addClass("show");

    $('.content-list li').click(function() {
        $(this).addClass("active").siblings().removeClass("active");
        var target = $(this).data("target");
        $('.gallery-content .content-description').find("#" + target).addClass('show').siblings().removeClass('show');
    });
    $(".color-code .color").click(function() {
        $(this).addClass('active').siblings().removeClass("active");
    });
    $(".size-list .number span").click(function() {
        $(this).addClass('selected').siblings().removeClass("selected");
    });
    // End Gallery Script

    // Start Carousel Script
    $(document).ready(function() {

        function initializeCarousels() {
            var winWidth = $(window).width();

            // ===============================
            // Handle .recently-viewed-list
            // ===============================
            var $parentCarousel = $('.recently-viewed-list');

            if (winWidth > 768) {
                // Initialize if not already
                if (!$parentCarousel.hasClass('owl-loaded')) {
                    $parentCarousel.addClass('owl-carousel').owlCarousel({
                        loop: false,
                        nav: true,
                        touchDrag: true,
                        mouseDrag: true,
                        pullDrag: true,
                        smartSpeed: 250,
                        fluidSpeed: true,
                        responsiveClass: true,
                        autoplay: false,
                        navText: [""],
                        dots: false,
                        responsive: {
                            375: {
                                items: 3.5,
                                margin: 2,
                                slideBy: 3,
                            },
                            768: {
                                items: 3.1,
                                margin: 0,
                                slideBy: 3,
                            },
                            1024: {
                                items: 5,
                                margin: 0,
                                slideBy: 5,
                            },
                            1366: {
                                items: 5,
                                margin: 0,
                                slideBy: 5,
                            },
                            1500: {
                                items: 5,
                                margin: 0,
                                slideBy: 5,
                            },
                            1600: {
                                items: 5,
                                margin: 0,
                                slideBy: 5,
                            },
                            1900: {
                                items: 5,
                                margin: 0,
                                slideBy: 5,
                            },
                        }
                    });

                    $parentCarousel.on('initialized.owl.carousel changed.owl.carousel resized.owl.carousel refreshed.owl.carousel', updateNavStatus);
                }

            } else {
                // Destroy on small screens
                if ($parentCarousel.hasClass('owl-loaded')) {
                    $parentCarousel.trigger('destroy.owl.carousel')
                        .removeClass('owl-carousel owl-loaded');
                    $parentCarousel.find('.owl-stage-outer').children().unwrap();
                    $parentCarousel.off('initialized.owl.carousel changed.owl.carousel resized.owl.carousel refreshed.owl.carousel');
                }
            }

            // ===============================
            // Handle .item-carousel
            // ===============================
            $('.item-carousel').each(function() {
                var $this = $(this);
                if (winWidth >= 1024) {
                    if (!$this.hasClass('owl-loaded')) {
                        $this.addClass('owl-carousel').owlCarousel({
                            items: 1,
                            loop: true,
                            dots: false,
                            nav: true,
                            touchDrag: false,
                            mouseDrag: false,
                            navText: [
                                "<span class='owl-prev-icon'><</span>",
                                "<span class='owl-next-icon'>></span>"
                            ],
                        });
                    }
                } else {
                    if ($this.hasClass('owl-loaded')) {
                        $this.trigger('destroy.owl.carousel')
                            .removeClass('owl-carousel owl-loaded');
                        $this.find('.owl-stage-outer').children().unwrap();
                    }
                }
            });

        }

        // Only update nav status for the parent carousel
        function updateNavStatus(event) {
            var $carouselEl = $(event.target);

            if (!$carouselEl.hasClass('recently-viewed-list')) return;

            var carousel = event.relatedTarget;
            var current = carousel.current();
            var total = carousel.items().length;

            var viewportWidth = $(window).width();
            var visibleItems = carousel.options.items;

            $.each(carousel.options.responsive, function(breakpoint, setting) {
                if (viewportWidth >= breakpoint) {
                    visibleItems = setting.items || visibleItems;
                }
            });

            var $prev = $('.recently-viewed-list').siblings('.owl-nav').find('.owl-prev');
            var $next = $('.recently-viewed-list').siblings('.owl-nav').find('.owl-next');

            $prev.removeClass('disabled active');
            $next.removeClass('disabled active');

            if (current === 0) {
                $prev.addClass('disabled');
            } else {
                $prev.addClass('active');
            }

            if (current + visibleItems >= total) {
                $next.addClass('disabled');
            } else {
                $next.addClass('active');
            }
        }

        // Init on load
        initializeCarousels();

        // Re-init on resize
        $(window).on('resize', function() {
            initializeCarousels();
        });

        $('.sizebtn, .heart-btn, .owl-prev, .owl-next').on('click', function(e) {
            e.stopPropagation(); // Stops the anchor from firing
            e.preventDefault(); // Optional: stops navigation if needed
        });
    });
    // End Carousel Script

    // Start Heart-icon script
    $('.heart-btn').on('click', function() {

        product_size_id = $(this).attr('data-id');
        that = this;
        $.ajax({
            url: "https://www.rachelallan.com/favourites/updateFav",
            method: 'post',
            data: {
                product_size_id: product_size_id
            },
            success: function(data) {
                if (data.fav == 1) {
                    $(that).addClass('active');
                    $(that).find('.heart-icon').removeClass('fa-heart-o').addClass('fa-heart');

                } else {
                    $(that).removeClass('active');
                    $(that).find('.heart-icon').removeClass('fa-heart').addClass('fa-heart-o');
                }
                $.notify(data.msg, 'success');
            }
        });

    });

    $('.heart-button').on('click', function(e) {
        e.preventDefault();
        product_size_id = $(this).attr('data-id');
        that = this;
        $.ajax({
            url: "https://www.rachelallan.com/favourites/updateFav",
            method: 'post',
            data: {
                product_size_id: product_size_id
            },
            success: function(data) {
                if (data.fav == 1) {
                    $(that).find('.heart').removeClass('text-light').addClass('text-danger');

                } else {
                    $(that).find('.heart').removeClass('text-danger').addClass('text-light');
                }
                $.notify(data.msg, 'success');
            }
        });

    });
    // End Heart-icon script




   // Start Header-search
    (function() {
    const form = document.querySelector('#HeaderSearchForm') || document.querySelector('.search-form');
    if (!form) return; // Exit if form not found
    const toggle = form.querySelector('.search-toggle');
    const input = form.querySelector('.search-input');
    if (!toggle || !input) return; // Exit if required elements not found
    
    // 🔹 create close icon dynamically
    let closeBtn = document.createElement('button');
    closeBtn.type = 'button';
    closeBtn.className = 'search-close pe-0 pt-1';
    closeBtn.innerHTML = `<i class="bi bi-x-lg"></i>
    `;
    closeBtn.style.display = 'none';
    form.querySelector('.input-container').appendChild(closeBtn);
    
    // 🔹 Initialize Bootstrap tooltip for error message
    input.setAttribute('data-bs-toggle', 'tooltip');
    input.setAttribute('data-bs-placement', 'bottom');
    input.setAttribute('data-bs-trigger', 'manual');
    input.setAttribute('data-bs-html', 'true');
    input.setAttribute('title', 'Please enter at least 2 characters to search.');
    
    let tooltipInstance = null;
    let customTooltip = null;
    // Initialize Bootstrap tooltip if available
    if (typeof bootstrap !== 'undefined' && bootstrap.Tooltip) {
        tooltipInstance = new bootstrap.Tooltip(input);
    } else {
        // Fallback: create custom tooltip
        customTooltip = document.createElement('div');
        customTooltip.className = 'search-tooltip';
        customTooltip.style.cssText = 'position: fixed; background: #dc3545; color: white; padding: 5px 10px; border-radius: 4px; font-size: 12px; z-index: 9999; display: none; pointer-events: none; white-space: nowrap; box-shadow: 0 2px 5px rgba(0,0,0,0.2);';
        customTooltip.textContent = 'Please enter at least 2 characters to search.';
        document.body.appendChild(customTooltip);
    }
    
    // Function to show tooltip
    function showTooltip() {
        if (tooltipInstance) {
            tooltipInstance.show();
        } else if (customTooltip) {
            const rect = input.getBoundingClientRect();
            customTooltip.style.display = 'block';
            customTooltip.style.top = (rect.bottom + 5) + 'px';
            customTooltip.style.left = rect.left + 'px';
        }
    }
    
    // Function to hide tooltip
    function hideTooltip() {
        if (tooltipInstance) {
            tooltipInstance.hide();
        } else if (customTooltip) {
            customTooltip.style.display = 'none';
        }
    }
    
    // Validation function
    function validateSearch() {
        const searchValue = input.value.trim();
        if (searchValue.length < 2) {
            input.classList.add('is-invalid');
            showTooltip();
            input.focus();
            return false;
        } else {
            input.classList.remove('is-invalid');
            hideTooltip();
            return true;
        }
    }
    
    // Function to submit search
    function submitSearch() {
        if (validateSearch()) {
            form.submit();
        }
    }
    
    let isOpen = false;
    
    toggle.addEventListener('click', () => {
        if (!isOpen) {
            // open the search bar
            form.classList.add('active');
            input.focus();
            closeBtn.style.display = 'inline';
            isOpen = true;
        } else {
            // if already open → validate and submit form
            submitSearch();
        }
    });
    
    // Handle Enter key press
    input.addEventListener('keydown', (e) => {
        if (e.key === 'Enter') {
            e.preventDefault();
            submitSearch();
        }
    });
    
    // Handle form submit event
    form.addEventListener('submit', (e) => {
        if (!validateSearch()) {
            e.preventDefault();
            return false;
        }
    });
    
    // Clear error on input
    input.addEventListener('input', () => {
        if (input.value.trim().length >= 2) {
            input.classList.remove('is-invalid');
            hideTooltip();
        }
    });
    
    closeBtn.addEventListener('click', () => {
        // close search input
        form.classList.remove('active');
        input.value = '';
        input.classList.remove('is-invalid');
        hideTooltip();
        closeBtn.style.display = 'none';
        isOpen = false;
    });
    
    if (input.value.trim() !== '') {
        form.classList.add('active');    // open the search field
        closeBtn.style.display = 'inline';
        isOpen = true;
    }
        
    // Optional: close on outside click
    document.addEventListener('click', (e) => {
        if (!form.contains(e.target)) {
            form.classList.remove('active');
            input.value = '';
            input.classList.remove('is-invalid');
            hideTooltip();
            closeBtn.style.display = 'none';
            isOpen = false;
        }
    });
    })(); // End Header-search

    // Start Faq Script
    $(".faq .ques").click(function() {
        $(this).parent().toggleClass("active").find('.ans').slideToggle();
        $(this).parent().siblings(".faq-item").removeClass("active").find('.ans').slideUp();
    });
    // End Faq Script

    // Start Footer-Faq Script
    $(document).ready(function() {
        $(".footer .ques").click(function() {
            if (window.innerWidth < 1024) {
                $(this)
                    .parent(".ques-item")
                    .toggleClass("active")
                    .find(".ans")
                    .slideToggle();
                $(this)
                    .parent()
                    .siblings(".ques-item")
                    .removeClass("active")
                    .find(".ans")
                    .slideUp();
            }
        });

        // On load: show all .ans if screen is 1024px or wider
        if (window.innerWidth >= 1024) {
            $(".footer .ques-item").addClass("active");
            $(".footer .ans").show();
        }
    });
    // End Footer-Faq Script
</script><script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script>
    // Initialize HLS Video Players (supports multiple videos)
    $(document).ready(function(){
        // Function to initialize a single HLS video container
        function initHlsVideoPlayer(container) {

            // Check if already initialized

            if (container.data('hls-initialized')) {

                return;

            }

            

            var video = container.find('.hls-video-player')[0];

            

            if (!video) {

                console.warn('HLS: Video element not found in container');

                return;

            }

            

            // Get HLS video URL from data attribute

            var hlsVideoUrl = container.data('hls-url');

            

            // If no URL is set via data attribute, hide the player

            if (!hlsVideoUrl) {

                console.warn('HLS: No URL found in data-hls-url attribute');

                container.hide();

                return;

            }

            

            console.log('HLS: Found video container with URL:', hlsVideoUrl);

            

            // Set video properties for autoplay

            video.muted = true; // Required for autoplay in most browsers

            video.loop = true; // Loop the video

            video.playsInline = true; // Required for mobile

            // Remove controls attribute if present

            video.removeAttribute('controls');

            

            if (Hls.isSupported()) {

                console.log('HLS: Initializing player with URL:', hlsVideoUrl);

                var hls = new Hls({

                    enableWorker: true,

                    lowLatencyMode: false,

                    backBufferLength: 90,

                    debug: true, // Enable debug logging to see what's happening

                    xhrSetup: function(xhr, url) {

                        // Handle CORS for S3 - set withCredentials to false for cross-origin requests

                        // This is required when loading HLS from S3 or other external domains

                        xhr.withCredentials = false;

                        console.log('HLS: Loading resource:', url);

                    }

                });

                

                // Log when manifest is loaded

                hls.on(Hls.Events.MANIFEST_LOADING, function() {

                    console.log('HLS: Loading manifest from:', hlsVideoUrl);

                });

                

                // Log when manifest is loaded successfully

                hls.on(Hls.Events.MANIFEST_LOADED, function(event, data) {

                    console.log('HLS: Manifest loaded successfully', data);

                });

                

                // Log when manifest is parsed

                hls.on(Hls.Events.MANIFEST_PARSED, function(event, data) {

                    console.log('HLS: Manifest parsed successfully', data);

                    console.log('HLS: Available quality levels:', data.levels ? data.levels.length : 0);

                    

                    // Don't show container yet - wait for video to load data

                    // Video is ready to play

                    console.log('HLS: Attempting to play video');

                    setTimeout(function() {

                        video.play().catch(function(error) {

                            console.log('HLS: Autoplay prevented:', error);

                            console.log('HLS: User interaction may be required to start playback');

                        });

                    }, 100);

                });

                

                // Log level switching

                hls.on(Hls.Events.LEVEL_SWITCHED, function(event, data) {

                    console.log('HLS: Switched to quality level:', data.level);

                });

                

                // Log fragment loading

                hls.on(Hls.Events.FRAG_LOADED, function(event, data) {

                    console.log('HLS: Fragment loaded:', data.frag.url);

                });

                

                hls.loadSource(hlsVideoUrl);

                hls.attachMedia(video);

                

                // Store HLS instance on container for later cleanup if needed

                container.data('hls-instance', hls);

                

                // Wait for video to load enough data before showing
                video.addEventListener('loadeddata', function() {

                    console.log('HLS: Video data loaded, showing container');

                    // Show container only when video has loaded data

                    container.addClass('hls-ready');

                }, { once: true });

                // Also try to play when media is ready

                video.addEventListener('canplay', function() {

                    console.log('HLS: Video can play, attempting autoplay');

                    // Ensure container is visible (in case loadeddata didn't fire)

                    container.addClass('hls-ready');

                    video.play().catch(function(error) {

                        console.log('HLS: Autoplay on canplay prevented:', error);

                    });

                }, { once: true });

                

                // Log when video starts playing

                video.addEventListener('play', function() {

                    console.log('HLS: Video started playing!');

                });

                

                // Log when video is playing and ensure container is visible

                video.addEventListener('playing', function() {

                    console.log('HLS: Video is playing!');

                    // Ensure container is visible when video starts playing

                    container.addClass('hls-ready');

                });

                hls.on(Hls.Events.ERROR, function(event, data) {

                    console.error('HLS Error Event:', event, data);

                    if (data.fatal) {

                        switch(data.type) {

                            case Hls.ErrorTypes.NETWORK_ERROR:

                                console.error('HLS: Fatal network error for URL:', hlsVideoUrl);

                                console.error('Error details:', data);

                                

                                // Check for CORS errors - status 0 or undefined response code indicates CORS

                                var isCorsError = false;

                                if (data.response) {

                                    isCorsError = (data.response.code === 0 || data.response.code === undefined || 

                                                 data.details === 'manifestLoadError' || 

                                                 (data.response.stats && data.response.stats.type === 'networkError'));

                                } else {

                                    isCorsError = (data.details === 'manifestLoadError');

                                }

                                

                                if (isCorsError) {

                                    console.error('═══════════════════════════════════════════════════════');

                                    console.error('HLS: CORS ERROR DETECTED!');

                                    console.error('═══════════════════════════════════════════════════════');

                                    console.error('The server is blocking the request due to missing CORS headers.');

                                    console.error('URL:', hlsVideoUrl);

                                    console.error('');

                                    console.error('SOLUTION: Configure CORS on your S3 bucket');

                                    console.error('Go to: AWS S3 Console → Your Bucket → Permissions → CORS');

                                    console.error('');

                                    console.error('Paste this CORS configuration:');

                                    var corsConfig = [{

                                        "AllowedHeaders": ["*"],

                                        "AllowedMethods": ["GET", "HEAD"],

                                        "AllowedOrigins": ["*"],

                                        "ExposeHeaders": ["Content-Length", "Content-Type", "Content-Range", "Accept-Ranges"],

                                        "MaxAgeSeconds": 3000

                                    }];

                                    console.error(JSON.stringify(corsConfig, null, 2));

                                    console.error('═══════════════════════════════════════════════════════');

                                    

                                    // Show user-friendly error message

                                    if (video.parentElement && !video.parentElement.querySelector('.hls-error-message')) {

                                        var errorDiv = document.createElement('div');

                                        errorDiv.className = 'hls-error-message';

                                        errorDiv.style.cssText = 'padding: 30px; text-align: center; background: #fff3cd; border: 2px solid #ffc107; border-radius: 5px; margin: 20px 0;';

                                        errorDiv.innerHTML = '<h3 style="color: #856404; margin-bottom: 15px;">⚠️ CORS Configuration Required</h3>' +

                                                            '<p style="color: #856404; margin-bottom: 10px;"><strong>The video cannot load because the server is not sending CORS headers.</strong></p>' +

                                                            '<p style="color: #856404; margin-bottom: 15px;">Please configure CORS on your S3 bucket to allow requests from this domain.</p>' +

                                                            '<p style="color: #856404; font-size: 12px;">Check the browser console for detailed CORS configuration instructions.</p>';

                                        video.parentElement.insertBefore(errorDiv, video);

                                    }

                                    

                                    // Don't try to recover from CORS errors - they won't work

                                    return;

                                }

                                

                                if (data.response && data.response.code === 404) {

                                    console.error('HLS: Manifest not found (404)');

                                    if (video.parentElement) {

                                        var errorDiv = document.createElement('div');

                                        errorDiv.style.cssText = 'padding: 20px; text-align: center; color: #666;';

                                        errorDiv.innerHTML = '<p>Video file not found (404).</p>';

                                        video.parentElement.insertBefore(errorDiv, video);

                                    }

                                } else {

                                    console.error('HLS: Trying to recover from network error...');

                                    hls.startLoad();

                                }

                                break;

                            case Hls.ErrorTypes.MEDIA_ERROR:

                                console.error('HLS: Fatal media error, trying to recover...');

                                hls.recoverMediaError();

                                break;

                            default:

                                console.error('HLS: Fatal error, destroying player...');

                                hls.destroy();

                                break;

                        }

                    } else {

                        console.warn('HLS: Non-fatal error:', data);

                    }

                });

            } else if (video.canPlayType('application/vnd.apple.mpegurl')) {

                // Native HLS support (Safari)

                video.src = hlsVideoUrl;

                video.muted = true; // Required for autoplay

                video.loop = true; // Loop the video

                // Remove controls attribute if present

                video.removeAttribute('controls');

                

                // Wait for video to load data before showing (not just metadata)
                video.addEventListener('loadeddata', function() {

                    console.log('HLS video data loaded successfully (native)');

                    // Show the video container when data is loaded

                    container.addClass('hls-ready');

                }, { once: true });

                video.addEventListener('loadedmetadata', function() {

                    console.log('HLS video metadata loaded successfully (native)');

                    video.play().catch(function(error) {

                        console.log('Autoplay prevented:', error);

                    });

                });

                

                // Also try to play when video can start playing

                video.addEventListener('canplay', function() {

                    // Ensure container is visible (in case loadeddata didn't fire)

                    container.addClass('hls-ready');

                    video.play().catch(function(error) {

                        console.log('Autoplay on canplay prevented:', error);

                    });

                }, { once: true });

                // Ensure container is visible when video starts playing (native HLS)
                video.addEventListener('playing', function() {

                    console.log('HLS: Video is playing! (native)');

                    // Ensure container is visible when video starts playing

                    container.addClass('hls-ready');

                });

                video.addEventListener('error', function() {

                    console.error('HLS video failed to load');

                });

            } else {

                console.error('HLS is not supported in this browser.');

            }

            

            // Mark as initialized

            container.data('hls-initialized', true);

        }

        

        // Initialize all HLS video containers that are visible

        $('.hls-video-container').each(function() {

            var container = $(this);

            // Only initialize if in active carousel item or not in carousel

            if (!container.closest('.carousel-item').length || container.closest('.carousel-item.active').length) {

                initHlsVideoPlayer(container);

            }

        });

        

        // Initialize HLS videos in carousel when they become active

        $('#carouselExampleControls').on('slid.bs.carousel', function (e) {

            var activeItem = $(e.relatedTarget);

            activeItem.find('.hls-video-container').each(function() {

                initHlsVideoPlayer($(this));

            });

        });

        

        // Also initialize active slide on page load

        $('#carouselExampleControls .carousel-item.active').find('.hls-video-container').each(function() {

            initHlsVideoPlayer($(this));

        });

    }); // End of $(document).ready()

    </script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>



<script>

 // ---------------------- Full Script (Safari / Magic Mouse Optimized) ----------------------

// ---------------------- Full Optimized Slide Scroll Script ----------------------

// Global variables
let sections = document.querySelectorAll('.swiper-slide');
let currentIndex = 0;
let isAnimating = false;
let scrollInitiated = false;
let pendingScrollIndex = null;
let headerTransitionPhase = false; // Track if we're in header transition phase

// =================== INITIALIZATION ===================

// Initialize slides immediately on DOM ready to prevent layout issues
function initializeSlides() {
    sections = document.querySelectorAll('.swiper-slide');

    if (sections.length === 0) {
        setTimeout(initializeSlides, 50);
        return;
    }

    // Set z-index if jQuery available
    if (typeof $ !== 'undefined') {
        $('.swiper-slide').each(function (index) {
            $(this).css('z-index', sections.length - index);
        });
    }

    // Initial slide positioning
    sections.forEach((section, i) => {
        gsap.set(section, {
            yPercent: i === 0 ? 0 : 100,
            zIndex: sections.length - i,
            visibility: 'visible',
            opacity: 1
        });
    });

    // Body overflow lock
    document.body.style.overflow = 'hidden';
    document.documentElement.style.overflow = 'hidden';
    document.documentElement.style.height = '100%';
    document.body.style.height = '100%';

    window.scrollTo(0, 0);
}

if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initializeSlides);
} else {
    initializeSlides();
}

// Pre-load banner images to prevent white screen when scrolling up
function preloadBannerImages() {
    const bannerSlide = document.querySelector('.swiper-slide:first-child, .main-banner.swiper-slide');
    if (bannerSlide) {
        const images = bannerSlide.querySelectorAll('img, picture source, video');
        images.forEach(img => {
            if (img.tagName === 'IMG' && img.src) {
                const preloadImg = new Image();
                preloadImg.src = img.src;
            } else if (img.tagName === 'SOURCE' && img.srcset) {
                const preloadImg = new Image();
                preloadImg.srcset = img.srcset;
            } else if (img.tagName === 'VIDEO' && img.src) {
                const preloadVideo = document.createElement('video');
                preloadVideo.src = img.src;
                preloadVideo.preload = 'auto';
            }
        });
    }
}

// Pre-load banner images after a short delay to not block initial render
setTimeout(preloadBannerImages, 100);

// =================== HEADER SETUP ===================
let header = null;
let sticky = 0;
let slideNo = 0;
let headerCollapsed = false;

function initializeHeader() {
    header = $("#fixheader");
    if (header.length > 0) {
        sticky = header.offset().top;
    }
}

if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initializeHeader);
} else {
    initializeHeader();
}

// =================== SCROLL TO SECTION ===================
function scrollToSection(nextIndex) {
    if (!sections || sections.length === 0) {
        sections = document.querySelectorAll('.swiper-slide');
        if (sections.length === 0) return;
    }

    if (isAnimating || headerTransitionPhase) return;
    
    // Prevent automatic transitions - only allow explicit user-initiated scrolls
    if (nextIndex === currentIndex) return;

    const direction = nextIndex > currentIndex ? 1 : -1;
    const current = sections[currentIndex];
    const next = sections[nextIndex];
    
    // Check if we need to handle header collapse/expand separately
    const isAtBannerWithExpandedHeader = currentIndex === 0 && !headerCollapsed && direction === 1 && header && header.length > 0;
    const isAtBannerWithCollapsedHeader = currentIndex === 0 && headerCollapsed && direction === 1;
    const shouldExpandHeader = headerCollapsed && nextIndex === 0 && direction === -1 && header && header.length > 0;

    if (direction === 1) {
        // SCROLL DOWN
        if (isAtBannerWithExpandedHeader) {
            // FIRST SCROLL: Only collapse header, stay on banner
            isAnimating = true;
            headerTransitionPhase = true;
            header.addClass("sticky").removeClass("sticky-down");
            header.parents(".header").addClass("fixed");
            $('body').animate({ 'padding-top': header.outerHeight() }, {
                duration: 500,
                complete: () => {
                    headerCollapsed = true;
                    headerTransitionPhase = false;
                    isAnimating = false;
                }
            });
            return; // Don't move to next slide yet
        } else if (isAtBannerWithCollapsedHeader) {
            // SECOND SCROLL: Header already collapsed, now move to next slide
            if (nextIndex < 0 || nextIndex >= sections.length) return;
            isAnimating = true;
            gsap.fromTo(next, { yPercent: 100 }, {
                yPercent: 0,
                duration: 0.6,
                ease: 'power2.inOut',
                onStart: () => {
                    next.style.zIndex = parseInt(current.style.zIndex) + 1;
                },
                onComplete: () => {
                    isAnimating = false;
                    currentIndex = nextIndex;
                    gsap.set(current, { yPercent: -100 });
                    
                    // Play video if exists
                    if (next.querySelector('.myVideo')) {
                        const video = next.querySelector('.myVideo');
                        setTimeout(() => {
                            video.play().catch(err => console.log("Autoplay blocked:", err));
                        }, 50);
                    }
                }
            });
            
            // Safety timeout to ensure state resets
            setTimeout(() => {
                if (isAnimating) {
                    isAnimating = false;
                    currentIndex = nextIndex;
                }
            }, 700);
            return;
        } else {
            // Normal slide transition (not from index 0)
            if (nextIndex === currentIndex || nextIndex < 0 || nextIndex >= sections.length) return;
            isAnimating = true;
            gsap.fromTo(next, { yPercent: 100 }, {
                yPercent: 0,
                duration: 0.6,
                ease: 'power2.inOut',
                onStart: () => {
                    next.style.zIndex = parseInt(current.style.zIndex) + 1;
                },
                onComplete: () => {
                    isAnimating = false;
                    currentIndex = nextIndex;
                }
            });
            
            // Safety timeout to ensure state resets
            setTimeout(() => {
                if (isAnimating) {
                    isAnimating = false;
                    currentIndex = nextIndex;
                }
            }, 700);

            if (next.querySelector('.myVideo')) {
                const video = next.querySelector('.myVideo');
                setTimeout(() => {
                    video.play().catch(err => console.log("Autoplay blocked:", err));
                }, 50);
            }
        }

    } else {
        // SCROLL UP
        // Check if we're at banner with collapsed header - just expand header
        const isAtBannerWithCollapsedHeaderUp = currentIndex === 0 && headerCollapsed && direction === -1 && header && header.length > 0;
        // Check if we're coming from below banner (index > 0) to banner (index 0)
        const isComingToBannerFromBelow = currentIndex > 0 && nextIndex === 0 && headerCollapsed && header && header.length > 0;
        
        if (isAtBannerWithCollapsedHeaderUp) {
            // At banner with collapsed header: Just expand header, stay on banner
            isAnimating = true;
            headerTransitionPhase = true;
            header.removeClass("sticky").addClass("sticky-down");
            header.parents(".header").removeClass("fixed");
            $('body').animate({ 'padding-top': 0 }, {
                duration: 500,
                complete: () => {
                    headerCollapsed = false;
                    headerTransitionPhase = false;
                    isAnimating = false;
                    // Ensure we stay on current index (0)
                    currentIndex = 0;
                }
            });
            return;
        } else if (isComingToBannerFromBelow) {
            // FIRST SCROLL UP: From below banner, just show banner (keep header collapsed)
            if (nextIndex < 0 || nextIndex >= sections.length) return;
            isAnimating = true;
            
            // Ensure banner is fully ready and visible BEFORE animation starts
            const bannerZIndex = parseInt(current.style.zIndex || sections.length) + 1;
            
            // CRITICAL: Set banner to be visible at 0% IMMEDIATELY (no white screen)
            // Set transform to 0% via inline style so banner is visible right away
            next.style.zIndex = bannerZIndex;
            next.style.visibility = 'visible';
            next.style.opacity = '1';
            next.style.display = 'block';
            next.style.pointerEvents = 'auto';
            next.style.position = 'absolute'; // Ensure positioning
            next.style.top = '0';
            next.style.left = '0';
            next.style.width = '100%';
            next.style.height = '100vh';
            // Override CSS rule that might hide non-first-child slides
            next.style.setProperty('opacity', '1', 'important');
            next.style.setProperty('visibility', 'visible', 'important');
            // Optimize for animation to prevent white screen
            next.style.setProperty('will-change', 'transform', 'important');
            next.style.setProperty('backface-visibility', 'hidden', 'important');
            next.style.setProperty('transform-style', 'preserve-3d', 'important');
            
            // Set GSAP properties - start at -10% so banner is already mostly visible
            // This prevents white screen while still allowing slide animation
            gsap.set(next, { 
                yPercent: -0,  // Start at -10% so banner is already visible (no white screen)
                zIndex: bannerZIndex,
                visibility: 'visible',
                opacity: 1,
                display: 'block',
                pointerEvents: 'auto',
                force3D: true
            });
            
            // Make ALL banner content visible immediately to prevent white screen
            const allBannerElements = next.querySelectorAll('*');
            allBannerElements.forEach(el => {
                if (el && el.style) {
                    el.style.visibility = 'visible';
                    if (el.style.opacity === '0' || !el.style.opacity) {
                        el.style.opacity = '1';
                    }
                    // Ensure images and videos are loaded/visible
                    if (el.tagName === 'IMG' || el.tagName === 'VIDEO' || el.tagName === 'PICTURE') {
                        el.style.display = 'block';
                        el.style.visibility = 'visible';
                        el.style.opacity = '1';
                    }
                }
            });
            
            // Ensure banner content containers are visible
            const bannerContainers = next.querySelectorAll('.container-fluid, .carousel, .carousel-inner, .row, .col-12, .main-banner, .carousel-item');
            bannerContainers.forEach(container => {
                if (container && container.style) {
                    container.style.visibility = 'visible';
                    container.style.opacity = '1';
                    container.style.display = container.style.display || 'block';
                    // Override any CSS that might hide carousel items
                    container.style.setProperty('opacity', '1', 'important');
                    container.style.setProperty('visibility', 'visible', 'important');
                }
            });
            
            // Ensure active carousel item is visible
            const activeCarouselItem = next.querySelector('.carousel-item.active');
            if (activeCarouselItem && activeCarouselItem.style) {
                activeCarouselItem.style.visibility = 'visible';
                activeCarouselItem.style.opacity = '1';
                activeCarouselItem.style.display = 'block';
                activeCarouselItem.style.setProperty('opacity', '1', 'important');
                activeCarouselItem.style.setProperty('visibility', 'visible', 'important');
            }
            

            // Force multiple reflows to ensure banner is fully rendered
            void next.offsetHeight;
            void next.offsetWidth;
            void next.getBoundingClientRect();
            void next.offsetHeight; // Force another reflow
            
            // Force one more reflow to ensure banner is fully rendered
            void next.offsetHeight;
            
            // Start animation IMMEDIATELY - banner is already visible at -10% (no white screen)
            // Animate from -10% to 0% for smooth slide down effect
            const tl = gsap.timeline({
                onComplete: () => {
                    isAnimating = false;
                    currentIndex = nextIndex;
                    // Keep header collapsed - don't expand yet
                    // User needs to scroll up again to expand header
                }
            });
            
            // Animate banner from -10% to 0% for slide down effect
            // Banner is already visible at -10%, so no white screen, animation starts immediately
            tl.to(next, {
                yPercent: 0,     // End at 0%
                duration: 0.3,
                ease: 'power2.inOut',
                immediateRender: true,
                force3D: true
            }, 0); // Start immediately
            
            // Animate current slide down
            tl.to(current, {
                yPercent: 100,
                duration: 0.3,
                ease: 'power2.inOut',
                immediateRender: true,
                force3D: true // Use GPU acceleration
            }, 0); // Start at same time
            
            // Safety timeout to ensure state resets (match other sections)
            setTimeout(() => {
                if (isAnimating) {
                    isAnimating = false;
                    currentIndex = nextIndex;
                }
            }, 500);
            return;
        } else {
            // Normal slide transition (not to/from index 0 with special header handling)
            if (nextIndex === currentIndex || nextIndex < 0 || nextIndex >= sections.length) return;
            isAnimating = true;
            gsap.to(current, {
                yPercent: 100,
                duration: 0.3,
                ease: 'power2.inOut',
                onComplete: () => {
                    isAnimating = false;
                    currentIndex = nextIndex;
                }
            });
            
            // Safety timeout to ensure state resets
            setTimeout(() => {
                if (isAnimating) {
                    isAnimating = false;
                    currentIndex = nextIndex;
                }
            }, 500);

            if (current.querySelector('.myVideo')) {
                const video = current.querySelector('.myVideo');
                setTimeout(() => {
                    video.play().catch(err => console.log("Autoplay blocked:", err));
                }, 50);
            }
        }
    }
}

// =================== MAGIC MOUSE / TOUCHPAD FIX ===================
let scrollCooldown = false;
const SCROLL_COOLDOWN_TIME = 700; // Reduced from 900 for better responsiveness
const MIN_SCROLL_DELTA = 15; // Reduced from 30 to catch smaller scrolls

window.addEventListener('wheel', (e) => {
    const raDetailsModal = document.getElementById('raDetailsModal');
    const sizeChartModal = document.getElementById('sizeChartModal');
    const modalActive = (raDetailsModal && raDetailsModal.classList.contains('ra-active')) ||
                        (sizeChartModal && sizeChartModal.classList.contains('show'));
    
    // Allow scroll if modal is active (let modal handle its own scrolling)
    if (modalActive) {
        return; // Don't prevent default, let modal scroll
    }
    
    // Check animation state
    if (isAnimating || headerTransitionPhase) {
        e.preventDefault();
        return;
    }

    // Lower threshold for better touchpad/mouse compatibility
    if (Math.abs(e.deltaY) < MIN_SCROLL_DELTA) {
        e.preventDefault();
        return;
    }

    // Check cooldown but allow if it's been too long
    if (scrollCooldown) {
        e.preventDefault();
        return;
    }

    const direction = Math.sign(e.deltaY);
    
    // Special handling for banner slide (index 0) - scroll down collapses header
    if (currentIndex === 0 && direction === 1 && !headerCollapsed) {
        // Ensure header is initialized
        if (!header || header.length === 0) {
            initializeHeader();
            if (!header || header.length === 0) {
                e.preventDefault();
                return;
            }
        }
        
        // First scroll down: just collapse header, stay on banner
        scrollCooldown = true;
        e.preventDefault();
        e.stopPropagation(); // Prevent event from bubbling
        e.stopImmediatePropagation(); // Prevent other handlers from firing
        isAnimating = true;
        headerTransitionPhase = true;
        
        try {
            header.addClass("sticky").removeClass("sticky-down");
            header.parents(".header").addClass("fixed");
            const headerHeight = header.outerHeight() || 48; // Fallback height
            
            $('body').animate({ 'padding-top': headerHeight }, {
                duration: 500,
                complete: () => {
                    headerCollapsed = true;
                    headerTransitionPhase = false;
                    isAnimating = false;
                    // Ensure we stay on current index (0) - don't auto-advance
                    currentIndex = 0;
                }
            });
            
            // Safety timeout to ensure state resets even if animation fails
            setTimeout(() => {
                if (headerTransitionPhase || isAnimating) {
                    headerCollapsed = true;
                    headerTransitionPhase = false;
                    isAnimating = false;
                    currentIndex = 0;
                }
            }, 600);
        } catch (error) {
            console.error('Error collapsing header:', error);
            headerCollapsed = true;
            headerTransitionPhase = false;
            isAnimating = false;
        }
        
        setTimeout(() => {
            scrollCooldown = false;
        }, SCROLL_COOLDOWN_TIME + 300);
        return;
    }
    
    // Special handling for banner slide (index 0) - scroll up expands header
    if (currentIndex === 0 && direction === -1 && headerCollapsed) {
        // Ensure header is initialized
        if (!header || header.length === 0) {
            initializeHeader();
            if (!header || header.length === 0) {
                e.preventDefault();
                return;
            }
        }
        
        // Scroll up at banner with collapsed header: just expand header, stay on banner
        scrollCooldown = true;
        e.preventDefault();
        e.stopPropagation(); // Prevent event from bubbling
        e.stopImmediatePropagation(); // Prevent other handlers from firing
        isAnimating = true;
        headerTransitionPhase = true;
        
        try {
            header.removeClass("sticky").addClass("sticky-down");
            header.parents(".header").removeClass("fixed");
            $('body').animate({ 'padding-top': 0 }, {
                duration: 500,
                complete: () => {
                    headerCollapsed = false;
                    headerTransitionPhase = false;
                    isAnimating = false;
                    // Ensure we stay on current index (0)
                    currentIndex = 0;
                }
            });
            
            // Safety timeout to ensure state resets even if animation fails
            setTimeout(() => {
                if (headerTransitionPhase || isAnimating) {
                    headerCollapsed = false;
                    headerTransitionPhase = false;
                    isAnimating = false;
                    currentIndex = 0;
                }
            }, 600);
        } catch (error) {
            console.error('Error expanding header:', error);
            headerCollapsed = false;
            headerTransitionPhase = false;
            isAnimating = false;
        }
        
        setTimeout(() => {
            scrollCooldown = false;
        }, SCROLL_COOLDOWN_TIME + 300);
        return;
    }
    
    const nextIndex = direction > 0 ? currentIndex + 1 : currentIndex - 1;

    if (nextIndex < 0 || nextIndex >= sections.length) {
        e.preventDefault();
        return;
    }

    scrollCooldown = true;
    e.preventDefault();

    scrollToSection(nextIndex);

    // Longer cooldown when header transition is involved
    const cooldownTime = (currentIndex === 0 && direction === 1) || (nextIndex === 0 && direction === -1) 
        ? SCROLL_COOLDOWN_TIME + 300 
        : SCROLL_COOLDOWN_TIME;

    setTimeout(() => {
        scrollCooldown = false;
    }, cooldownTime);
}, { passive: false });

// =================== TOUCH SWIPE FIX ===================
let touchStartY = 0;
let touchEndY = 0;
let touchCooldown = false;

window.addEventListener('touchstart', (e) => {
    touchStartY = e.changedTouches[0].screenY;
}, false);

window.addEventListener('touchend', (e) => {
    touchEndY = e.changedTouches[0].screenY;
    handleSwipe();
}, false);

function handleSwipe() {
    if (touchCooldown || isAnimating || headerTransitionPhase) return;
    const threshold = 60;

    if (touchStartY - touchEndY > threshold) {
        // Swipe down
        if (currentIndex === 0 && !headerCollapsed && header && header.length > 0) {
            // First swipe: just collapse header
            touchCooldown = true;
            isAnimating = true;
            headerTransitionPhase = true;
            header.addClass("sticky").removeClass("sticky-down");
            header.parents(".header").addClass("fixed");
            $('body').animate({ 'padding-top': header.outerHeight() }, {
                duration: 500,
                complete: () => {
                    headerCollapsed = true;
                    headerTransitionPhase = false;
                    isAnimating = false;
                    // Ensure we stay on current index (0) - don't auto-advance
                    currentIndex = 0;
                }
            });
            setTimeout(() => touchCooldown = false, 1200);
        } else {
            scrollToSection(currentIndex + 1);
            touchCooldown = true;
            const cooldownTime = (currentIndex === 0) ? 1200 : 900;
            setTimeout(() => touchCooldown = false, cooldownTime);
        }
    } else if (touchEndY - touchStartY > threshold) {
        // Swipe up
        // Ensure header is initialized
        if (!header || header.length === 0) {
            initializeHeader();
        }
        
        if (currentIndex === 0 && headerCollapsed) {
            // At banner with collapsed header: just expand header
            if (!header || header.length === 0) {
                return;
            }
            touchCooldown = true;
            isAnimating = true;
            headerTransitionPhase = true;
            header.removeClass("sticky").addClass("sticky-down");
            header.parents(".header").removeClass("fixed");
            $('body').animate({ 'padding-top': 0 }, {
                duration: 500,
                complete: () => {
                    headerCollapsed = false;
                    headerTransitionPhase = false;
                    isAnimating = false;
                    // Ensure we stay on current index (0)
                    currentIndex = 0;
                }
            });
            setTimeout(() => touchCooldown = false, 1200);
        } else {
            scrollToSection(currentIndex - 1);
            touchCooldown = true;
            const cooldownTime = (currentIndex === 0) ? 1200 : 900;
            setTimeout(() => touchCooldown = false, cooldownTime);
        }
    }
}

// =================== KEYBOARD SUPPORT ===================
window.addEventListener('keydown', (e) => {
    const raDetailsModal = document.getElementById('raDetailsModal');
    const sizeChartModal = document.getElementById('sizeChartModal');
    const modalActive = (raDetailsModal && raDetailsModal.classList.contains('ra-active')) ||
                        (sizeChartModal && sizeChartModal.classList.contains('show'));
    if (modalActive || isAnimating || headerTransitionPhase) return;

    if (e.key === 'ArrowDown') {
        // Special handling for banner slide (index 0) - first keypress collapses header
        if (currentIndex === 0 && !headerCollapsed && header && header.length > 0) {
            // First keypress: just collapse header
            isAnimating = true;
            headerTransitionPhase = true;
            header.addClass("sticky").removeClass("sticky-down");
            header.parents(".header").addClass("fixed");
            $('body').animate({ 'padding-top': header.outerHeight() }, {
                duration: 500,
                complete: () => {
                    headerCollapsed = true;
                    headerTransitionPhase = false;
                    isAnimating = false;
                    // Ensure we stay on current index (0) - don't auto-advance
                    currentIndex = 0;
                }
            });
        } else {
            scrollToSection(currentIndex + 1);
        }
    } else if (e.key === 'ArrowUp') {
        // Special handling for banner slide (index 0) - keypress expands header
        // Ensure header is initialized
        if (!header || header.length === 0) {
            initializeHeader();
        }
        
        if (currentIndex === 0 && headerCollapsed) {
            // At banner with collapsed header: just expand header
            if (!header || header.length === 0) {
                return;
            }
            isAnimating = true;
            headerTransitionPhase = true;
            header.removeClass("sticky").addClass("sticky-down");
            header.parents(".header").removeClass("fixed");
            $('body').animate({ 'padding-top': 0 }, {
                duration: 500,
                complete: () => {
                    headerCollapsed = false;
                    headerTransitionPhase = false;
                    isAnimating = false;
                    // Ensure we stay on current index (0)
                    currentIndex = 0;
                }
            });
        } else {
            scrollToSection(currentIndex - 1);
        }
    }
});

// =================== RESPONSIVE HANDLING ===================
let isLargeScreen = window.innerWidth >= 1366;
window.addEventListener('resize', () => {
    isLargeScreen = window.innerWidth >= 1366;
});

    // header 

    // Start Fixed Header

    function myFunction() {

        if (slideNo > 0) {

            header.addClass("sticky").removeClass("sticky-down");

            header.parents(".header").addClass("fixed");

            $('body').css('padding-top', header.outerHeight());

        } else {

            header.removeClass("sticky").addClass("sticky-down");

            header.parents(".header").removeClass("fixed");

            $('body').css('padding-top', 0); // Add this line            

        }

    };

    // End Fixed Header



    // Start Header Toggle

    // $(document).ready(function() {

    //     $('#menuToggle').click(function() {

    //         $(this).toggleClass("active");



    //         if ($(this).hasClass('active')) {

    //             $('.swiper-slide').addClass('no-scroll');

    //         } else {

    //             $('.swiper-slide').removeClass('no-scroll');

    //         }



    //         // Always toggle 'open' on .menu-links

    //         $('.menu-links').toggleClass('open');



    //         // Remove 'show-content2' if it exists when menu is toggled

    //         if ($('.menu-links').hasClass('show-content2')) {

    //             $('.menu-links').removeClass('show-content2');

    //         }

    //     });



    //     $('.show-content2').click(function() {

    //         $('.menu-links').addClass('show-content2');

    //     });



    //     $('.show-content1').click(function() {

    //         $('.menu-links').removeClass('show-content2');

    //     });



    //     $(".content2 .down-arrow").click(function(e) {

    //         e.preventDefault();



    //         const $currentSubLi = $(this).closest(".sub-li");

    //         const $currentNavList = $currentSubLi.find(".nav-list");



    //         if ($currentSubLi.hasClass("active")) {

    //             $currentSubLi.removeClass("active");

    //             $currentNavList.slideUp();

    //         } else {

    //             $(".content2 .sub-li.active").removeClass("active").find(".nav-list").slideUp();

    //             $currentSubLi.addClass("active");

    //             $currentNavList.slideDown();

    //         }

    //     });

    // });

    // End Header Toggle



    // Start Header Animation

    $(document).ready(function() {

        // videoSliderSet();

        // Function to update preheader height

        function updatePreheaderHeight() {

            var $preheader = $('.preheader-container');



            // Reset height to auto to get natural content height

            $preheader.css('height', 'auto');



            // Calculate the natural height of the content

            var naturalHeight = $preheader.outerHeight();



            // Set the calculated height only if it's greater than 0

            if (naturalHeight > 0) {

                $preheader.css('height', naturalHeight + 'px');

            } else {

                console.warn('Preheader height calculated as 0. Content may not be loaded.');

            }

        }



        // Initialize height

        updatePreheaderHeight();



        // Update on window resize with debounce for performance

        var resizeTimer;

        $(window).resize(function() {

            clearTimeout(resizeTimer);

            resizeTimer = setTimeout(updatePreheaderHeight, 100); // Debounce timer

        });



        // Update on window load

        $(window).on("load", function() {

            updatePreheaderHeight();

        });



        // Optional: Update if content changes (like AJAX loads)

        // $(document).on('ajaxComplete', function() {

        //     updatePreheaderHeight();

        // });

    });

    // End Header Animation

    // end header



    $(window).on('scroll', function() {

        console.log('scrolll');

        // videoSliderSet();

    });



    // Optional fallback: center the first slide after images load (fixes flicker / slow image load)

    (function() {

        const container = document.getElementById('collections');

        if (!container) return;



        function centerFirst() {

            const first = container.querySelector('.collection-box');

            if (!first) return;

            // compute left so first card is centered

            const offset = first.offsetLeft - (container.clientWidth - first.offsetWidth) / 2;

            container.scrollTo({

                left: offset,

                behavior: 'smooth'

            });

        }



        // run on load + after small delay (images might influence layout)

        window.addEventListener('load', () => setTimeout(centerFirst, 80));

        // also re-center when orientation/resize changes

        window.addEventListener('resize', () => setTimeout(centerFirst, 80));

    })();



 document.addEventListener("DOMContentLoaded", function () {

    const descBox = document.getElementById("descBox");

    const toggleLink = document.getElementById("toggleLink");



    if (toggleLink) {

        toggleLink.addEventListener("click", function () {

            descBox.classList.toggle("collapsed");

            toggleLink.textContent = descBox.classList.contains("collapsed") ? "Show More" : "Show Less";

        });

    }

  });



      (function($){

        $(window).on('load', function(){

            $.instagramFeed({

                'username': 'unifysofttech',

                'container': "#instagram-feed2",

                'display_profile': false,

                'display_biography': false,

                'display_gallery': true,

                'display_captions': false,

                'callback': null,

                'styling': true,

                'items': 8,

                'items_per_row': 4,

                'margin': 1 

            });

        });

    })(jQuery);

</script>
<script>
    $(document).on("click","a.charts",function(e) {
        e.preventDefault();
        var img = $(this).attr("data-img-url");
        // alert(img);
        $("#sizeChartModal img").attr("src", img);
    });
    $(document).on('click', '.subscribe-a', function() {
        $('#mc-embedded-subscribe').trigger('click');
    });

    // Change button color based on email input
    $(document).ready(function() {
        $('#mce-EMAIL').on('input', function() {
            var email = $(this).val().trim();
            var subscribeBtn = $('#subscribe-btn');
            
            if (email.length > 0) {
                subscribeBtn.addClass('has-email');
            } else {
                subscribeBtn.removeClass('has-email');
            }
        });
    });

    function subscribe() {
        var email = $('#mce-EMAIL').val();
        if (email == "") {
            alert('Email is required');
        } else {
            var pattern = /^\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i

            if (!pattern.test(email)) {
                alert('Not a valid e-mail address');
            } else {
                $('#subscribeModal').modal('show');
                $('#subscribeModal').find('#s-email').val(email);
            }
        }
    }

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
        }
    });
    $(document).on('click', '#subscribe_submit', function() {


        $.ajax({
            url: "https://www.rachelallan.com/subscribe",
            type: 'POST',
            //Options to tell JQuery not to process data or worry about content-type
            // contentType: false, // The content type used when sending data to the server. Default is: "application/x-www-form-urlencoded"
            // processData: false, // To send DOMDocument or non processed data file it is set to false (i.e. data should not be in the form of string)
            // cache: false, // To unable request pages to be cached
            data: $('#subscribe-form').serializeArray(),
            success: function(res) {
                if (res.status == true) {
                    $('.sub-msg').html('<div class="alert alert-success">' + res.msg + '</div>');
                    setTimeout(() => {
                        $('#mce-EMAIL').val('');
                        $('#subscribeModal').modal('hide');
                    }, 5000);

                } else {
                    $('.sub-msg').html('<div class="alert alert-danger">' + res.msg + '</div>');

                }
            }
        });

    });
</script>
<script>
    ! function(v, i, b, e, c, o) {
        if (!v[c]) {
            var s = v[c] = function() {
                s.process ? s.process.apply(s, arguments) : s.queue.push(arguments)
            };
            s.queue = [], s.b = 1 * new Date;
            var t = i.createElement(b);
            t.async = !0, t.src = e;
            var n = i.getElementsByTagName(b)[0];
            n.parentNode.insertBefore(t, n)
        }
    }(window, document, "script", "https://s.vibe.co/vbpx.js", "vbpx");
    vbpx('init', 'mzeDcY');
    vbpx('event', 'page_view');
</script>

<script>
    document.addEventListener('DOMContentLoaded', function() {
    const quesItems = document.querySelectorAll('.ques-item');
    const mobileModalEl = document.getElementById('mobileFooterModal');
    const mobileModal = new bootstrap.Modal(mobileModalEl);
    let isMobileView = window.innerWidth < 1024;

    function handleQuesClick(e) {
        if (!isMobileView) return;

        e.preventDefault();
        const title = this.querySelector('h3').textContent;
        const content = this.nextElementSibling.innerHTML;
        
        // Update modal content
        const modalTitle = document.getElementById('mobileModalTitle');
        const modalBody = document.getElementById('mobileModalBody');
        
        if (modalTitle) modalTitle.textContent = title;
        if (modalBody) {
            modalBody.innerHTML = content;
            // Make sure links are clickable in the modal
            modalBody.querySelectorAll('a').forEach(link => {
                link.style.pointerEvents = 'auto';
            });
        }
        
        // Show the modal
        if (mobileModal) {
            mobileModal.show();
        }
    }

    function checkViewport() {
        isMobileView = window.innerWidth < 1024;
    }

    function initFooterAccordion() {
        quesItems.forEach(item => {
            const ques = item.querySelector('.ques');
            if (!ques) return;
            
            // Clone to remove existing event listeners
            const newQues = ques.cloneNode(true);
            ques.parentNode.replaceChild(newQues, ques);
            
            if (isMobileView) {
                newQues.addEventListener('click', handleQuesClick);
            }
        });
    }

    // Initialize on load
    checkViewport();
    initFooterAccordion();
    
    // Handle window resize
    let resizeTimer;
    window.addEventListener('resize', function() {
        clearTimeout(resizeTimer);
        resizeTimer = setTimeout(() => {
            const wasMobile = isMobileView;
            checkViewport();
            
            // Only reinitialize if the viewport category changed
            if ((wasMobile && !isMobileView) || (!wasMobile && isMobileView)) {
                initFooterAccordion();
            }
        }, 250);
    });
});
</script>
<script src="https://www.rachelallan.com/js/jquery.instagramFeed.min.js"></script>
<script>
    // $(document).ready(function(){
    //     setTimeout(() => {
    //         setInstaHeight();    
    //     }, 3000);
    //     $(window).resize(function(){
    //         setInstaHeight();
    //     });
    // });
    // function setInstaHeight() {
    //     $(".insta-box").height($(".insta-box").width());
    // }

    document.addEventListener("DOMContentLoaded", function(){
        loadWebpImages();
         
    	// Hide loading screen and show content when document is ready
    	const loadingScreen = document.getElementById('loading-screen');
    	const mainContent = document.getElementById('main-content');
    	
    	if (loadingScreen && mainContent) {
    		// Add a small delay to ensure smooth transition
    		setTimeout(function() {
    			// Hide loading screen
    			loadingScreen.classList.add('hidden');
    			
    			// Show main content
    			mainContent.classList.remove('hidden');
    			mainContent.classList.add('visible');
    			
    			// Remove loading screen from DOM after transition completes
    			setTimeout(function() {
    				loadingScreen.remove();
    			}, 500);
    		}, 800);
    	}
            	/////// Prevent closing from click inside dropdown
		document.querySelectorAll('.dropdown-menu').forEach(function(element){
			element.addEventListener('click', function (e) {
			  e.stopPropagation();
			});
		})
		// make it as accordion for smaller screens
		if (window.innerWidth < 992) {

			// close all inner dropdowns when parent is closed
			document.querySelectorAll('.navbar .dropdown').forEach(function(everydropdown){
				everydropdown.addEventListener('hidden.bs.dropdown', function () {
					// after dropdown is hidden, then find all submenus
					  this.querySelectorAll('.submenu').forEach(function(everysubmenu){
					  	// hide every submenu as well
					  	everysubmenu.style.display = 'none';
					  });
				})
			});
			
			// document.querySelectorAll('.dropdown-menu a').forEach(function(element){
			// 	element.addEventListener('click', function (e) {
		
			// 	  	let nextEl = this.nextElementSibling;
			// 	  	if(nextEl && nextEl.classList.contains('submenu')) {	
			// 	  		// prevent opening link if link needs to open dropdown
			// 	  		e.preventDefault();
            //             if(!nextEl.classList.contains('last-child-menu')) {
            //                 $(".submenu").hide();
            //             }else {
            //                 $(".last-child-menu").hide();
            //             }
   
            //             if(nextEl.style.display == 'block'){
            //                 nextEl.style.display = 'none';
            //             } else {
            //                 nextEl.style.display = 'block';
            //             }
			// 	  	}
			// 	});
			// })
		}
		// end if innerWidth

	}); 

    (function($){
        $("#hideOnDesktop ul li").on("click",function() {
            $(this).find("ul.first-child-menu").toggle();
        });
        $(".last-child-menu-li").on("click",function() {
            $(this).find("ul.last-child-menu").toggle();
        });

        // $(window).on('load', function(){
        //     $.instagramFeed({
        //         'username': 'unifysofttech',
        //         'container': "#instagram-feed2",
        //         'display_profile': false,
        //         'display_biography': false,
        //         'display_gallery': true,
        //         'display_captions': false,
        //         'callback': null,
        //         'styling': true,
        //         'items': 8,
        //         'items_per_row': 4,
        //         'margin': 1 
        //     });
        // });
    })(jQuery);

      document.addEventListener("DOMContentLoaded", function() {
        const videos = document.querySelectorAll('video[preload="none"]');

        const observer = new IntersectionObserver(entries => {
            entries.forEach(entry => {
            if (entry.isIntersecting) {
                const video = entry.target;
                const source = video.querySelector('source');

                if (source && source.dataset.src) {
                source.src = source.dataset.src;
                video.removeAttribute('preload'); // ✅ Allow browser to preload now
                video.load();
                }

                observer.unobserve(video);
            }
            });
        }, { threshold: 0.25 }); // Load when 25% visible

        videos.forEach(video => observer.observe(video));
        });
        
        function loadWebpImages() {
                // Check if any picture tags exist
            if ($('picture').length === 0) {
                return; // No picture tags found, stop execution
            }
        
            // Loop through all picture elements
            $('picture').each(function() {
                var $picture = $(this);
                var webpImage = $picture.find('source').attr('srcset');
                var jpgImage = $picture.find('img').attr('src');
        
                // If either webp or jpg is missing, skip to next
                if (!webpImage || !jpgImage) {
                    return;
                }
        
                var img = new Image();
                img.src = webpImage;
        
                img.onload = function() {
                    // WebP loaded successfully, do nothing
                };
        
                img.onerror = function() {
                    // WebP failed, fallback to JPG
                    $picture.find('source').attr('srcset', jpgImage);
                };
            });
        }
</script>

    </html>