html, body {
   font-family: "Open Sans", sans-serif;
}

:root {
   --bs-success-bg-subtle: #B6F2CA;
   --bs-success-border-subtle: #B6F2CA;
   --bs-info-bg-subtle: #FFE5C8;
   --bs-info-border-subtle: #FFE5C8;
   --bs-warning-bg-subtle: #FFE5C8;
   --bs-warning-border-subtle: #FFE5C8;
   --bs-danger-bg-subtle: #FFD0DC;
   --bs-danger-border-subtle: #FFD0DC;
}

.alert {
   --bs-alert-border-color: transparent;
   --bs-alert-color: #323232;
   border: none;
   color: #323232;
   font-size: 16px;
   font-weight: 400;
   line-height: 20px;
   min-height: 51px;
   padding: 14px;
}

.alert-banner__content {
   display: flex;
   align-items: center;
   gap: 12px;
}

.alert-banner__icon {
   flex: 0 0 auto;
}

.alert-success .alert-banner__icon,
.alert-info .alert-banner__icon,
.alert-warning .alert-banner__icon {
   width: 16px;
   height: 16px;
}

.alert-danger .alert-banner__icon {
   width: 20px;
   height: 17px;
}

.alert-banner__close {
   margin-left: auto;
   padding: 0;
   border: 0;
   background: transparent;
   line-height: 1;
   flex: 0 0 auto;
}

.alert-banner__close img {
   width: 21px;
   height: 22px;
   display: block;
}

h1, h2, .h1, .h2 {
   font-family: "futura-pt-bold", sans-serif;
}

h1, .h1 {
   font-size: 48px;
   line-height: 50px;
   margin-bottom: 20px;
}

h2, .h2 {
   font-size: 32px;
   line-height: 38px;
   margin-bottom: 15px;
}

h3, .h3 {
   font-size: 18px;
   line-height: 24px;
   margin-bottom: 15px;
}

p {
   font-size: 16px;
   line-height: 20px;
   margin-bottom: 12px;
}

.col-12 > p:last-child{
   margin-bottom: 0;
}

#content li {
   line-height: 20px;
   margin-bottom: 12px;
}

.valid.modified:not([type=checkbox]) {
   outline: 1px solid #26b050;
}

.invalid {
   outline: 1px solid red;
}

.validation-message {
   color: red;
}

#blazor-error-ui {
   background: lightyellow;
   bottom: 0;
   box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
   display: none;
   left: 0;
   padding: 0.6rem 1.25rem 0.7rem 1.25rem;
   position: fixed;
   width: 100%;
   z-index: 1000;
}

   #blazor-error-ui .dismiss {
      cursor: pointer;
      position: absolute;
      right: 0.75rem;
      top: 0.5rem;
   }

.blazor-error-boundary {
   background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
   padding: 1rem 1rem 1rem 3.7rem;
   color: white;
}

   .blazor-error-boundary::after {
      content: "An error has occurred."
   }

article#content > section, footer, #Newsletter {
   padding: 40px 0;
}

   article#content > section#StockistResults {
      padding: 40px 0 40px;
   }

article#content {
   padding: 60px 0 60px;
}

.basket {
   width: 40px;
   height: 40px;
   position: relative;
}

.basket-amount {
   position: absolute;
   top: 15px;
   right: 13px;
   width: 10px;
   height: 18px;
   color: #1E1E1E;
   font-size: 16px;
   font-weight: 700;
}

.card {
   overflow: hidden;
   border-bottom-left-radius: 0;
   border-bottom-right-radius: 0;
   background: #F2F0F0;
}

a.card {
   text-decoration: none;
}

   a.card:hover {
      background: #F0E6D7;
   }

.card-body {
   border-bottom: solid 3px #9B8245;
}

.card-img-top.crop {
   height: 200px;
   object-fit: cover;
   object-position: center;
   display: flex;
   justify-content: center;
   align-items: center;
}

.card img.fill {
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: center;
}

.card-body .restrict-width {
   max-width: 300px;
   margin-left: auto;
   margin-right: auto;
}

.card .book {
   display: flex;
   justify-content: center;
   align-items: center;
}

.offer-card.card {
   border: solid 1px #F2F0F0;
   border-radius: 3px;
}

   .offer-card.card > .card-body {
      background: #FAFAFA;
      border: none;
      padding: 1em;
   }

   .offer-card.card:hover > .card-body {
      background: #F2F0F0;
   }

.linked-offer-title,
.linked-offer-date {
   font-size: 18px;
   font-weight: 700;
   line-height: 24px;
}

.offer-padding{
   padding-top: 32px;
   padding-bottom: 32px;
}

nav .has-megamenu {
   position: static !important;
}

nav .megamenu {
   left: 0;
   right: 0;
   width: 100%;
   margin-top: 4px !important;
   padding-top: 3.5rem !important;
   padding-bottom: 4rem !important;
   border-bottom: solid 3px #9B8245;
}

.megamenu li .megamenu-item-description {
   margin-bottom: 0;
}

/*.megamenu li:not(:last-child):not(:nth-last-child(2)) .megamenu-item-description {
    margin-bottom: 2rem;
}*/

.img-holder {
   position: relative;
}

.zoom-btn {
   font-size: 24px;
   position: absolute;
   top: 5px;
   right: 5px;
}

.slick-prev:before, .slick-next:before {
   color: #160a40 !important;
}

.stepper {
   font-size: 18px;
}
/*
.link-highlight{
   color: #3A2C6B;
   text-decoration: none;
}

.link-highlight:hover h1, .link-highlight:hover h2, .link-highlight:hover h3, .link-highlight:hover h4 {
   color: #009CB9;
   text-decoration: none;
}
*/

.btn:not(.btn-link) {
   min-width: 140px;
}

.btn-primary:hover {
   background: #AA183B;
   border-color: #AA183B;
}

.btn-outline-primary:hover {
   color: #6D0D22;
   background: #F0E6D7;
}

.btn-dark:hover {
   color: #FAFAFA;
   background: #737373;
   border-color: #737373;
}

.btn-outline-dark:hover {
   color: #FAFAFA;
   background: #737373;
   border-color: #737373;
}

.nav-link.dropdown-toggle.show {
   font-weight: 700;
}

.navbar-nav > .nav-item > .nav-link.dropdown-toggle {
   min-width: 100px;
   text-align: center;
}

.form-label.required::after {
   content: " *";
   font-size: 13px;
   display: inline-block;
   padding-left: 5px;
}

.dropdown-toggle::after {
   transition: 300ms;
}

.dropdown-toggle.show::after {
   transform: rotate(180deg);
}

header {
   border-bottom: solid 3px #9B8245;
}

footer {
   border-top: solid 6px;
}

.navbar-brand {
   position: relative;
   width: 103px;
}

   .navbar-brand img {
      position: absolute;
      top: -43px;
      z-index: 1001;
   }

.icon-hover-white:hover svg g path {
   fill: #fafafa;
}

.copyright, .copyright a {
   color: #737373;
   line-height: 20px;
}

.ratio-3x2 {
   --bs-aspect-ratio: 66.66666666666667%;
}


.form-check-input[type="radio"].radio-square {
   border-radius: 2px;
   width: 18px;
   height: 18px;
   border: 2px solid #6D0D22;
   background-color: transparent;
   background-image: none;
}

   .form-check-input[type="radio"].radio-square:checked {
      border-color: #6D0D22;
      background-color: transparent;
      background-image: none;
   }

      .form-check-input[type="radio"].radio-square:checked::before {
         content: "";
         display: block;
         width: 10px;
         height: 10px;
         margin: 2px auto;
         border-radius: 1px;
         background: #6D0D22;
      }

   .form-check-input[type="radio"].radio-square:focus {
      box-shadow: 0 0 0 2px rgba(109, 13, 34, .25);
   }

.form-check-input[type="checkbox"].checkbox-square {
   appearance: none;
   -webkit-appearance: none;
   width: 18px;
   height: 18px;
   border-radius: 2px;
   border: 2px solid #6D0D22;
   background-image: none;
   position: relative;
   cursor: pointer;
}

   .form-check-input[type="checkbox"].checkbox-square:checked::after {
      content: "";
      position: absolute;
      left: 5px;
      top: 1px;
      width: 5px;
      height: 10px;
      border: solid #FFFFFF;
      border-width: 0 2px 2px 0;
      transform: rotate(45deg);
   }

   .form-check-input[type="checkbox"].checkbox-square:focus {
      box-shadow: 0 0 0 2px rgba(109, 13, 34, .25);
   }

.badge-tt {
   font-size: 12px;
   font-weight: 700;
   line-height: 18px;
   position: absolute;
   top: 0;
   padding: 2px 18px;
   z-index: 3;
}

.badge-tt-2 {
   font-size: 12px;
   font-weight: 700;
   line-height: 18px;
   position: absolute;
   top: 0;
   left: 15px;
   padding: 2px 18px;
   z-index: 3;
}

.btn-1, .btn:not(.btn-link) {
   min-width: 141px;
   padding-left: 10px;
   padding-right: 10px;
}

.btn.btn-2 {
   min-width: 303px;
}

.btn-login {
   width: 113px;
   min-width: unset!important;
   height: 38px;
}

.btn-filter {
   border-width: 1px;
   border-color: #323232;
   font-weight: 400;
   padding: 4px 20px;
   min-width: 141px;
}

.btn-check:hover + .btn-filter {
   border-color: #323232;
   color: #fff;
   background: #323232;
}

.btn-check:checked + .btn-filter {
   color: #fff;
   background: #323232;
   border-color: #323232;
}

/*.btn-check:checked:hover + .btn-filter {
   color: unset;
   background: none;
   border-color: #323232;
}
*/

.btn.btn-width-auto {
   min-width: auto;
}

.faq-category-img {
   max-width: 103px;
   max-height: 80px;
}

/*slick*/
.slick-track {
   display: flex !important;
   align-items: center !important;
}

.slick-slide {
   height: inherit !important;
   display: flex !important;
   align-items: center !important;
   justify-content: center !important;
}

.slick-dots {
   bottom: -45px !important;
}

.theatre-image {
   margin-top: 14px;
   border-radius: 6px;
}

.yes-no-toggle {
   position: relative;
   flex: 0 0 auto;
}

   .yes-no-toggle input[type="checkbox"] {
      position: absolute;
      opacity: 0;
      pointer-events: none;
   }

   .yes-no-toggle label {
      position: relative;
      display: inline-block;
      width: 100px;
      height: 40px;
      border-radius: 999px;
      background-color: #8c8c8c;
      border: 2px solid #8c8c8c;
      cursor: pointer;
      transition: all 0.2s ease;
   }

      .yes-no-toggle label::before {
         content: "No";
         position: absolute;
         left: 55px;
         top: 50%;
         transform: translateY(-50%);
         color: #ffffff;
         font-size: 1rem;
         line-height: 1;
      }

      .yes-no-toggle label::after {
         content: "";
         position: absolute;
         top: 1px;
         left: 1px;
         width: 34px;
         height: 34px;
         border-radius: 50%;
         background-color: #f3f3f3;
         transition: all 0.2s ease;
      }

   .yes-no-toggle input[type="checkbox"]:checked + label {
      background-color: #1f1f1f;
      border-color: #1f1f1f;
   }

      .yes-no-toggle input[type="checkbox"]:checked + label::before {
         content: "Yes";
         left: 18px;
      }

      .yes-no-toggle input[type="checkbox"]:checked + label::after {
         left: 61px;
      }

   .yes-no-toggle input[type="checkbox"]:focus + label {
      outline: 0;
      box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
   }


.marker-cluster {
   background-clip: padding-box;
   border-radius: 0!important;
   width: 40px;
   height: 40px;
   clip-path: polygon(18% 0%, 82% 0%, 100% 58%, 50% 100%, 0% 58%);
}

.marker-cluster div {
   width: 30px;
   height: 30px;
   margin-left: 5px;
   margin-top: 5px;
   text-align: center;
   border-radius: 0 !important;
   clip-path: polygon(18% 0%, 82% 0%, 100% 58%, 50% 100%, 0% 58%);
   font-family: "Open Sans", sans-serif;
   font-weight: 400;
   font-size: 12px;
   display: flex;
   align-items: center;
   justify-content: center;
}

.marker-cluster span {
   font-size: 12px !important;
   line-height: 16px !important;
   transform: translateY(-1px);
}

.marker-cluster-small div {
   width: 24px !important;
   height: 24px !important;
}

.marker-cluster-medium div {
   width: 28px !important;
   height: 28px !important;
}

.marker-cluster-large div {
   width: 33px !important;
   height: 33px !important;
}

.fav-btn {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 12px;
}

.fav-btn-icon {
   width: 20px;
   height: 20px;
   object-fit: contain;
}

.breakout{
   border-radius: 6px;
}

.nav-card {
   display: block;
}

.nav-card:hover {
   background-color: #F2F0F0;
   text-decoration: none;
}

@media (min-width: 992px) {
   header {
      height: 88px;
      position: fixed;
      top: 0;
      transition: top 0.2s ease-in-out;
      width: 100%;
      z-index: 1000;
   }

   .navbar {
      padding: 22px;
   }

   body {
      padding-top: 88px !important;
   }

   .nav-up {
      top: -120px;
   }


   .breakout {
      width: min(1112px, 100vw);
      position: relative;
      left: 50%;
      transform: translateX(-50%);
   }

   .breakout-inner {
      max-width: 950px;
      margin-left: auto;
      margin-right: auto;
   }
}



@media (max-width: 991px) {
}

@media (max-width: 767px) {
   .nav-link.accordion-button::after {
      width: 20px;
      height: 20px;
      vertical-align: top;
      background-image: url(/images/chevron-down.svg);
      background-position: center center;
      background-repeat: no-repeat;
   }

   .navbar-nav > .nav-item > .nav-link.dropdown-toggle {
      min-width: 65px;
      margin-right: 10px;
      text-align: left;
   }
}

@media (min-width: 768px) {
   .collapse.dont-collapse-sm {
      display: block;
      height: auto !important;
      visibility: visible;
   }
}

@media (max-width: 575px) {

   .btn.btn-2 {
      min-width: 170px;
   }

   .btn.btn-width-auto {
      min-width: 90px;
   }

   .text-mobile-bold {
      font-weight: bold;
   }

   article#content > section, footer, #Newsletter) {
      padding: 20px 0;
   }
}

@media only screen and (max-width: 500px) {
   .g-recaptcha {
      transform: scale(0.77);
      transform-origin: 0 0;
   }
}

@media (min-width: 992px) and (max-width: 1200px) {
   .container-navbar {
      max-width: 95%;
   }
}

@media (min-width: 992px) and (max-width: 1097px) {
   .login {
      height: 50px;
   }
}

/****************/
/* Checkout */
/****************/

/* Stepper Container */
.stepper-container {
   width: 100%;
   max-width: 600px;
   margin: 0 auto;
   padding: 20px 0;
}

.stepper-wrapper {
   display: flex;
   justify-content: space-between;
   position: relative;
   margin-bottom: 20px;
}

   /* Connecting Line between steps */
   .stepper-wrapper::before {
      content: '';
      position: absolute;
      top: 25px;
      left: 80px;
      right: 80px;
      height: 2px;
      background-color: #000000;
      z-index: 1;
   }

.stepper-item {
   position: relative;
   display: flex;
   flex-direction: column;
   align-items: center;
   flex: 1;
   z-index: 2;
}

/* Pentagon shape for step number */
.step-counter {
   width: 50px;
   height: 50px;
   background-color: #000000; /* Outer pentagon = border color */
   display: flex;
   justify-content: center;
   align-items: center;
   font-size: 18px;
   font-weight: bold;
   color: #000000;
   transition: all 0.3s ease;
   position: relative;
   z-index: 3;
   clip-path: polygon( 10% 16%, 66% 3%, 98% 50%, 66% 97%, 10% 84% );
}

/* Inner fill for inactive state (creates outline effect) */
.step-counter::after {
   content: '';
   position: absolute;
   inset: 3px; /* Border thickness */
   background-color: #fafafa;
   clip-path: polygon( 10% 16%, 66% 3%, 98% 50%, 66% 97%, 10% 84% );
   z-index: -1;
}

/* Step label below circle */
.step-name {
   margin-top: 10px;
   font-size: 14px;
   font-weight: 500;
   color: #000000;
   text-align: center;
   transition: color 0.3s ease;
}

/* Active step - filled pentagon */
.stepper-item.active .step-counter {
   color: white; /* Text color changes to white */
}

.stepper-item.active .step-counter::after {
   background-color: #000000; /* Inner fill same as outer = solid pentagon */
}

.stepper-item.active .step-name {
   color: #000000;
   font-weight: 600;
}

.btn-payment-method {
   cursor: pointer;
   border: 1px solid #000000;
   padding: 1.5rem;
   height: 100px;
   transition: border-color 0.2s ease-in-out;
   display: flex;
   align-items: center;
}

.btn-payment-method:hover {
   border-color: var(--bs-primary);
}

.btn-payment-method.selected {
   border-color: var(--bs-primary) !important;
   border-width: 2px;
}

.btn-payment-method img {
   max-height: 50px;
   width: auto;
   height: auto;
   display: block;
}

.btn-payment-method p {
   margin: 0;
}

/*Group Gifting*/
.img-gift {
   max-height: 300px;
   min-width: 600px;
   object-fit: cover;
   border-radius: 10px;
}
