/* 

Font:
    font-family: "League Spartan", sans-serif;

    font-family: "Cormorant Garamond", serif;
/* =============== Root Variables =============== */
:root {
    --brand-color: #222222;
    --brand-color-hover: #555555;
    --text-color: #222222;
    --text-color-grey: #555555;
    --text-color-in-dark-bg: #F2F2F2;
    --link-color: #222222;
    --grey-1: #F7F7F7;
    --grey-2: #EEEEEE;
    --grey-3: #E6E6E6;
    --dark-grey-1: #444444;
    --font-heading: "Cormorant Garamond", serif;
    --font-body: "League Spartan", sans-serif;
}

/* =============== Accessibility =============== */
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link:focus,
.skip-link:focus-visible {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 100000;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0.75rem 1rem;
  overflow: visible;
  clip: auto;
  white-space: normal;
  background: var(--brand-color);
  color: var(--text-color-in-dark-bg);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  text-decoration: none;
  outline: 2px solid var(--text-color-in-dark-bg);
  outline-offset: 2px;
}

/* =============== Layout =============== */
#wrapper {
    width: 100%;
    margin: 0;
    position: relative;
    overflow-x: hidden;
  }
body.single-product #wrapper {
  overflow: visible;
}
.container {
  width: calc(100% - 40px);
  max-width: 1760px;
  margin: 0 auto;
}
section + section,
section + div,
div + section,
.three-image-gallery + section,
.three-image-gallery + div {
  margin-top: 75px !important;
}
.woocommerce section + section,
.woocommerce section + div,
.woocommerce div + section {
  margin-top: 0 !important;
}
.three-image-gallery.no-margin-bottom + div {
  margin-top: 0 !important;
}

.narrow-1, .narrow-1380 {
  max-width: 1380px;
  margin-left: auto;
  margin-right: auto;
}
.narrow-2, .narrow-1180 {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.narrow-3, .narrow-1540 {
  max-width: 1540px;
  margin-left: auto;
  margin-right: auto;
}
.narrow-4, .narrow-960 {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
.narrow-1280 {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
.narrow-1080 {
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 1280px) {
  .container {
    width: calc(100% - 56px);
  }
  section + section,
  section + div,
  div + section,
  .three-image-gallery + section,
  .three-image-gallery + div {
    margin-top: 100px !important;
  }
  .woocommerce section + section,
  .woocommerce section + div,
  .woocommerce div + section {
    margin-top: 0 !important;
  }
  .three-image-gallery.no-margin-bottom + div {
    margin-top: 0 !important;
  }
  .three-image-gallery.no-margin-bottom {
    margin-bottom: 0 !important;
  }
}
@media (min-width: 1440px) {
  .container {
    width: calc(100% - 72px);
}
}
/* =============== Typography =============== */
body {
    font-family: var(--font-body);
    font-weight: 300;
    line-height: 1.5;
}
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 500;
    line-height: 1.2;
    padding-bottom: 0.75em;
}
h2 {
  font-size: clamp(24px, 30px, 36px);
}
h3 {
  font-size: clamp(18px, 20px, 24px);
}
p + p {
  margin-top: 1rem;
}
p + ul, p + ol, p + dl,
ul + p, ol + p, dl + p,
p + .wp-block-buttons {
  margin-top: 1rem;
}
strong {
  font-weight: 600;
}
ul {
  list-style: disc;
  padding-left: 1.5rem;
}
ol {
  list-style: decimal;
  padding-left: 1.5rem;
}
li + li {
  margin-top: 0.75rem;
}
.other-recommended-posts-wrapper li + li,
.site-footer-social-list li + li {
  margin-top: 0;
}

nav li + li {
  margin-top: 0;
}
dl {
  list-style: none;
}
.inline-padding-left {
  padding-left: 2rem;
}
.single-blog-page p + .wp-block-image,
.single-blog-page .wp-block-gallery {
  margin: 2rem auto !important;
}


/* =============== Colour setting =============== */
.has-brandcolour-background-color {
  background-color: var(--brand-color);
  color: #FFFFFF;
}
.has-brand-color-color {
  color: var(--brand-color);
}
.has-grey-1-background-color {
  background-color: var(--grey-1);
}
.has-grey-2-background-color {
  background-color: var(--grey-2);
}
.has-grey-3-background-color {
  background-color: var(--grey-3);
}
.has-dark-grey-1-background-color {
  background-color: var(--dark-grey-1);
  color: #FFFFFF;
}
.has-grey-1-color {
  color: var(--grey-1);
}
.has-grey-2-color {
  color: var(--grey-2);
}
.has-grey-3-color {
  color: var(--grey-3);
}
.has-dark-grey-1-color {
  color: var(--dark-grey-1);
}
/* =============== Background setting =============== */
.light-grey-bg {
  background-color: var(--grey-1);
  padding: 75px 0;
}
@media (min-width: 801px) {
  .light-grey-bg {
    padding: 100px 0;
  }
}
/* =============== Link setting =============== */
p a, li a {
  font-weight: 500;
  color: var(--link-color);
  text-decoration: none;
  transition: .6s;
}
p a:hover, li a:hover {
  opacity: 0.7;
  text-decoration: underline;
}
.woocommerce li a {
  opacity: 1;
}
p a:link, p a:visited, li a:link, li a:visited {
  color: var(--link-color);
}
p a:focus, p a:active, li a:focus, li a:active {
  color: var(--link-color);
}
footer a {
  font-weight: 300;
}
footer a:hover {
  text-decoration: none;
}
.single-blog-page a {
  color: var(--link-color);
  text-decoration: none;
}
.single-blog-page a:link, .single-blog-page a:visited {
  color: var(--link-color);
}
.single-blog-page a:hover {
  color: var(--link-color-hover);
  text-decoration: underline;
}
.single-blog-page a:focus, .single-blog-page a:active {
  color: var(--link-color);
}
/* =============== button setting =============== */
.wp-block-button__link {
  min-width: 280px !important;
  max-height: 32px !important;
  height: 32px !important;  
  background-color: var(--brand-color) !important;
  color: #FFFFFF !important;
  border-radius: 0 !important;
  text-transform: capitalize;
  text-align: center;
  text-decoration: none !important;
  font-size: 0.95rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.5px;
  transition: .6s;
  padding: 0.35rem 1.5rem !important;
}
.white-button .wp-block-button__link {
  background-color: #FFFFFF !important;
  color: var(--brand-color) !important;
}
.wp-block-button__link:hover {
  /* background-color: var(--brand-color-hover) !important; */
  text-decoration: none !important;
}
.white-button .wp-block-button__link:hover {
  background-color: #bbbbbb !important;
}
.link-underline {
  width: fit-content;
  font-weight: 400;
  font-size: 0.9rem;
  text-transform: capitalize;
  text-decoration: none;
  color: var(--link-color);
  position: relative;
  display: inline-block;
  margin-top: 1rem;
}
.link-underline a {
  font-weight: 400;
  font-size: 0.9rem;
  text-decoration: none;
  color: var(--link-color);
  position: relative;
  display: inline-block;
  margin-top: 1rem;
}

.overflow-images .link-underline,
.overflow-images .link-underline a {
  color: #FFFFFF !important;
}
.woocommerce .link-underline {
  margin-top: 0;
}
.link-underline:link,
.link-underline:visited {
  color: var(--link-color);
}
.link-underline a:link,
.link-underline a:visited {
  color: var(--link-color);
}

.overflow-images .link-underline:link,
.overflow-images .link-underline:visited,
.overflow-images .link-underline a:link,
.overflow-images .link-underline a:visited,
.home-hero-description .link-underline:link,
.home-hero-description .link-underline:visited,
.home-hero-description .link-underline a:link,
.home-hero-description .link-underline a:visited {
  color: #FFFFFF !important;
}
.overflow-images .link-underline:hover,
.overflow-images .link-underline a:hover,
.home-hero-description .link-underline:hover,
.home-hero-description .link-underline a:hover {
  color: #FFFFFF !important;
}
.link-underline:hover {
  opacity: 1;
  text-decoration: none;
}
.link-underline a:hover {
  opacity: 1;
  text-decoration: none;
}
.link-underline:focus,
.link-underline:active {
  color: var(--link-color);
}
.link-underline a:focus,
.link-underline a:active {
  color: var(--link-color);
}
.overflow-images .link-underline:focus,
.overflow-images .link-underline:active,
.overflow-images .link-underline a:focus,
.overflow-images .link-underline a:active,
.home-hero-description .link-underline:focus,
.home-hero-description .link-underline:active,
.home-hero-description .link-underline a:focus,
.home-hero-description .link-underline a:active {
  color: #FFFFFF !important;
}
.link-underline::before,
.link-underline a::before,
.link-underline::after,
.link-underline a::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  pointer-events: none;
}

.link-underline::before, .link-underline a::before {
  width: calc(100% + 1px);
  bottom: 0;
  height: 1px;
  background-color: currentColor;
  opacity: 0.85;
}
.woocommerce .link-underline::before {
  display: none;
}

.two-image-boxes .link-underline::before, 
.two-image-boxes .link-underline a::before, 
.overflow-images .link-underline::before,
.overflow-images .link-underline a::before,
.home-hero-description .link-underline::before,
.home-hero-description .link-underline a::before {
  width: 100%;
}

.overflow-images .link-underline::before,
.overflow-images .link-underline a::before,
.overflow-images .link-underline::after,
.overflow-images .link-underline a::after,
.home-hero-description .link-underline::after,
.home-hero-description .link-underline a::after {
  background-color: #FFFFFF;
}

.link-underline::after,
.link-underline a::after {
  bottom: 0;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
}

.link-underline:hover::after,
.link-underline:focus-visible::after,
.link-underline a:hover::after,
.link-underline a:focus-visible::after {
  transition: transform 0.7s ease;
  transform: scaleX(1);
}
.link-underline:hover::before,
.link-underline:focus-visible::before,
.link-underline a:hover::before,
.link-underline a:focus-visible::before {
  opacity: 0;
}

.hero-tailoor-buttons a {
  font-size: 14px;
  color: #FFFFFF;
  border: 1px solid #FFFFFF;
  text-decoration: none;
  text-transform: capitalize;
  padding: 0.35rem 0.75rem;
  transition: .6s;
}
.hero-tailoor-buttons a + a {
  margin-left: 1rem;
}
.hero-tailoor-buttons a:hover {
  opacity: 0.7;
}
/* =============== Top message bar =============== */
.site-top-message {
  position: relative;
  z-index: 40;
  width: 100%;
  background-color: #333333;
  color: var(--text-color-in-dark-bg);
}

.site-top-message__inner {
  width: calc(100% - 40px);
  max-width: 1760px;
  margin: 0 auto;
}

.top-message-bar {
  width: 100%;
  min-height: 36px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  column-gap: 3rem;
  row-gap: 5px;
  color: var(--text-color-in-dark-bg);
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  padding: 3px 0;
  margin: 0 auto;
}

.top-message-bar__slide {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.top-message-bar div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.top-message-bar div.google {
  gap: 0.5rem;
}

.top-message-bar div.contact-info {
  gap: 1.25rem;
}

.top-message-bar img {
  height: 13px !important;
  width: auto;
  padding-bottom: 2px;
}

.top-message-bar img.google-logo {
  height: 17px !important;
  width: auto;
  padding-top: 2px;
}

.top-message-bar div a {
  color: var(--text-color-in-dark-bg);
  text-decoration: none;
  padding-top: 2px;
  transition: .6s;
}

.top-message-bar div a:hover {
  color: #dfdfdf;
}

@media (prefers-reduced-motion: reduce) {
  .top-message-bar .top-message-bar__slide {
    transition: none;
    transform: none;
  }
}

/* =============== Product category page =============== */
.product-category-breadcrumb {
  background: var(--grey-2);
}
.product-category-breadcrumb .container {
  padding-top: 10px;
  padding-bottom: 10px;
}
.product-category-breadcrumb__nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.55rem;
  font-size: 0.9em;
  line-height: 1.2;
  text-transform: none;
}
.product-category-breadcrumb__nav a {
  color: #666666;
  text-decoration: none;
}
.product-category-breadcrumb__nav a:hover {
  color: #1d1d1d;
}
.product-category-breadcrumb__sep,
.product-category-breadcrumb__nav .breadcrumb-separator {
  color: #8b8b8b;
}
.product-category-breadcrumb__nav .breadcrumb_last {
  color: #555555;
}

.product-category-hero {
  background: var(--grey-1);
  padding: 2.5rem 0;
}
.product-category-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 420px);
  gap: clamp(1.5rem, 4vw, 5rem);
  align-items: center;
}
.product-category-hero__content h1 {
  font-size: clamp(1.75rem, 3.2vw, 2.25rem);
  line-height: 1.02;
  margin: 0;
  padding-bottom: 1rem;
}
.product-category-hero__content p + p {
  margin-top: 0.75rem;
}
.product-category-hero__description {
  max-width: 960px;
  color: var(--text-color-grey);
}
.product-category-hero__description p {
  margin: 0;
}
.product-category-hero__media {
  margin: 0;
}
.product-category-hero__image {
  display: block;
  width: 100%;
  max-width: 420px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.product-category-catalogue {
  padding-top: 48px;
}
.product-category-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 2rem;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 1.1rem;
}
.product-category-toolbar button,
.product-category-toolbar input,
.product-category-toolbar select,
.product-category-toolbar textarea {
  font-family: inherit;
  font-weight: inherit;
}
.product-loop-filters {
  position: relative;
  flex: 1;
}
.product-loop-filters__main {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}

/* Temporarily hide inline toolbar filters — keep More filters / Filter only.
   Remove these rules if the client wants the other filters back. */
.product-loop-filters__main .product-loop-filters__category-toggle,
.product-loop-filters__main .product-loop-filters__price-toggle {
  display: none;
}
.product-loop-filters__select-wrap {
  position: relative;
}
.product-loop-filters__select-wrap span:not(.screen-reader-text) {
  display: block;
  font-size: 13px;
  margin-bottom: 0.5rem;
}
.product-loop-filters__select {
  min-width: 125px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #222222;
  font-size: 14px;
  line-height: 1.3;
  padding: 0.35rem 1.4rem 0.35rem 0.2rem;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #888888 50%), linear-gradient(135deg, #888888 50%, transparent 50%);
  background-position: calc(100% - 0.75rem) calc(0.9rem), calc(100% - 0.45rem) calc(0.9rem);
  background-size: 0.3rem 0.3rem, 0.3rem 0.3rem;
  background-repeat: no-repeat;
}
.product-loop-filters__select:focus {
  outline: none;
}
.product-loop-filters__more-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 0;
  background: transparent;
  padding: 0.35rem 0.2rem;
  color: #222222;
  font-size: 1rem;
  cursor: pointer;
}
.product-loop-filters__more-toggle-icon {
  width: 1.2rem;
  height: 1.2rem;
  object-fit: contain;
  display: block;
}
.product-loop-filters__price-toggle {
  gap: 0.35rem;
}
.product-loop-filters__category-toggle::after {
  content: "";
  width: 0.38rem;
  height: 0.38rem;
  border-right: 1px solid #767676;
  border-bottom: 1px solid #767676;
  transform: rotate(45deg);
  margin-top: -0.15rem;
  margin-left: 0.35rem;
  transition: transform 0.2s ease;
}
.product-loop-filters.is-category-open .product-loop-filters__category-toggle::after {
  transform: rotate(-135deg);
  margin-top: 0.12rem;
}
.product-loop-filters__price-toggle::after {
  content: "";
  width: 0.38rem;
  height: 0.38rem;
  border-right: 1px solid #767676;
  border-bottom: 1px solid #767676;
  transform: rotate(45deg);
  margin-top: -0.15rem;
  margin-left: 0.35rem;
  transition: transform 0.2s ease;
}
.product-loop-filters.is-price-open .product-loop-filters__price-toggle::after {
  transform: rotate(-135deg);
  margin-top: 0.12rem;
}
.product-loop-filters__category-panel,
.product-loop-filters__price-panel {
  position: absolute;
  top: calc(100% + 0.4rem);
  left: 0;
  width: min(860px, calc(100vw - 2rem));
  background: #ffffff;
  border: 1px solid #D6D6D6;
  padding: 1rem 1.1rem;
  z-index: 30;
}
.product-loop-filters__sort .woocommerce-ordering {
  margin: 0;
  position: relative;
}
.product-loop-filters__sort .orderby {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.product-loop-filters__sort-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  width: 190px;
  min-width: 190px;
  border: 1px solid var(--brand-color);
  background: #FFFFFF;
  color: var(--text-color);
  padding: 0.65rem 0.8rem 0.45rem;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: inherit;
  line-height: 1.3;
  cursor: pointer;
  text-align: left;
}
.product-loop-filters__sort-toggle::after {
  content: "\f0d7";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  margin-left: auto;
  font-size: 14px;
  color: var(--text-color);
}
.product-loop-filters__sort-toggle[aria-expanded="true"]::after {
  content: "\f0d8";
}
.product-loop-filters__sort-list {
  position: absolute;
  top: calc(100% + 0.25rem);
  left: 0;
  right: 0;
  z-index: 40;
  margin: 0;
  padding: 0;
  list-style: none;
  background: #FFFFFF;
  color: var(--text-color);
  border: 1px solid var(--brand-color);
}
.product-loop-filters__sort-list[hidden] {
  display: none;
}
.product-loop-filters__sort-list li {
  margin: 0;
  padding: 0.65rem 0.8rem 0.45rem;
  color: var(--text-color);
  font-size: 0.95rem;
  background: #FFFFFF;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.product-loop-filters__sort-list li:hover,
.product-loop-filters__sort-list li:focus,
.product-loop-filters__sort-list li.is-active {
  background: var(--grey-1);
}
.product-loop-filters__sort-list li:focus {
  outline: none;
}
.woocommerce .woocommerce-ordering {
  margin-bottom: 0 !important;
}
.product-loop-filters__drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 9998;
}
.product-loop-filters__drawer {
  position: fixed;
  left: 0;
  top: 0;
  width: 40%;
  max-width: 680px;
  min-width: 320px;
  height: 100vh;
  background: #FFFFFF;
  z-index: 100000;
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform 0.35s ease;
  box-shadow: 10px 0 28px rgba(0, 0, 0, 0.15);
}
.product-loop-filters__drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 1.2rem;
  border-bottom: 1px solid #E4E4E4;
}
.product-loop-filters__drawer-header h2 {
  margin: 0;
  font-size: 22px;
  padding-bottom: 0;
}
.product-loop-filters__drawer-close {
  border: 0;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.product-loop-filters__drawer-body {
  flex: 1;
  overflow: auto;
  padding: 1.2rem;
  display: grid;
  gap: 1rem;
}
.product-loop-filters__drawer-body .product-loop-filters__select {
  width: 100%;
  border: 1px solid #DDDDDD;
  padding: 0.7rem 2rem 0.7rem 0.7rem;
}
.product-loop-filters__price {
  padding-bottom: 0.2rem;
}
.product-loop-filters__category {
  padding-bottom: 0.2rem;
}
.product-loop-filters__category-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}
.product-loop-filters__category-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 42px;
  padding: 0.45rem 0.85rem;
  border: 1px solid var(--grey-3);
  border-radius: 0;
  color: var(--text-color);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.product-loop-filters__category-chip--parent {
  background: var(--grey-1);
}
.product-loop-filters__category-chip--child {
  background: transparent;
}
.product-loop-filters__category-chip:hover {
  border-color: var(--brand-color);
}
.product-loop-filters__category-chip.is-selected {
  background: var(--grey-2);
  border-color: var(--brand-color);
  color: var(--text-color);
}
.product-loop-filters__category-chip-count {
  color: var(--text-color-grey);
  font-size: 13px;
  font-weight: 300;
}
.product-loop-filters__category-chip.is-selected .product-loop-filters__category-chip-count {
  color: var(--text-color);
}
.product-loop-filters__category-chip-tick {
  display: none;
  width: 0.85rem;
  height: 0.85rem;
  position: relative;
  flex: 0 0 auto;
}
.product-loop-filters__category-chip-tick::before {
  content: "";
  position: absolute;
  left: 0.15rem;
  top: 0.05rem;
  width: 0.35rem;
  height: 0.6rem;
  border-right: 1.5px solid var(--brand-color);
  border-bottom: 1.5px solid var(--brand-color);
  transform: rotate(45deg);
}
.product-loop-filters__category-chip.is-selected .product-loop-filters__category-chip-tick {
  display: block;
}
.product-loop-filters__price-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.product-loop-filters__price-head h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 400;
}
.product-loop-filters__price-reset {
  border: 0;
  border-bottom: 1px solid #222222;
  background: transparent;
  font-size: 14px;
  padding: 0;
  cursor: pointer;
}
.product-loop-filters__price-slider {
  position: relative;
  height: 28px;
  margin-bottom: 0.8rem;
}
.product-loop-filters__price-track,
.product-loop-filters__price-fill {
  position: absolute;
  top: 12px;
  height: 1px;
}
.product-loop-filters__price-track {
  left: 0;
  right: 0;
  background: #222222;
}
.product-loop-filters__price-fill {
  left: 0;
  right: 0;
  background: #222222;
}
.product-loop-filters__price-range {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  margin: 0;
  height: 28px;
  background: transparent;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
}
.product-loop-filters__price-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid #222222;
  background: #FFFFFF;
  cursor: pointer;
  pointer-events: auto;
}
.product-loop-filters__price-range::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1px solid #222222;
  background: #FFFFFF;
  cursor: pointer;
  pointer-events: auto;
}
.product-loop-filters__price-range::-webkit-slider-runnable-track {
  background: transparent;
}
.product-loop-filters__price-range::-moz-range-track {
  background: transparent;
}
.product-loop-filters__price-values {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.product-loop-filters__price-values p {
  margin: 0;
}
.product-loop-filters__price-values p:first-child {
  font-size: 24px;
}
.product-loop-filters__price-values p:last-child {
  font-size: 14px;
  color: #767676;
}
.product-loop-filters__price-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.55rem;
}
.product-loop-filters__price-apply {
  font-size: 14px;
  color: #222222;
}
.product-loop-filters__drawer-actions {
  display: flex;
  gap: 0.7rem;
  padding: 1rem 1.2rem 1.2rem;
  border-top: 1px solid #E4E4E4;
}
body .mccann-btn,
body.woocommerce .mccann-btn,
body.woocommerce a.mccann-btn,
body.woocommerce button.mccann-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  min-height: 32px;
  padding: 0.35rem 1.5rem 0.2rem;
  margin: 0;
  background-color: var(--brand-color);
  color: #FFFFFF;
  border: 1px solid var(--brand-color);
  border-radius: 0;
  text-transform: capitalize;
  text-align: center;
  text-decoration: none;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: 0.5px;
  line-height: 1;
  cursor: pointer;
  transition: 0.6s;
}
body .mccann-btn:hover,
body .mccann-btn:focus,
body.woocommerce .mccann-btn:hover,
body.woocommerce .mccann-btn:focus,
body.woocommerce a.mccann-btn:hover,
body.woocommerce a.mccann-btn:focus,
body.woocommerce button.mccann-btn:hover,
body.woocommerce button.mccann-btn:focus {
  background-color: #000000;
  color: #FFFFFF;
  text-decoration: none;
}
body .mccann-btn--secondary,
body.woocommerce .mccann-btn--secondary,
body.woocommerce a.mccann-btn--secondary,
body.woocommerce button.mccann-btn--secondary {
  background-color: #FFFFFF;
  color: var(--brand-color);
}
body .mccann-btn--secondary:hover,
body .mccann-btn--secondary:focus,
body.woocommerce .mccann-btn--secondary:hover,
body.woocommerce .mccann-btn--secondary:focus,
body.woocommerce a.mccann-btn--secondary:hover,
body.woocommerce a.mccann-btn--secondary:focus,
body.woocommerce button.mccann-btn--secondary:hover,
body.woocommerce button.mccann-btn--secondary:focus {
  background-color: #BBBBBB;
  color: var(--brand-color);
}
.product-loop-filters__drawer-actions .mccann-btn {
  flex: 1;
}
body.more-filters-open {
  overflow: hidden;
}
body.more-filters-open .product-loop-filters__drawer-backdrop {
  opacity: 1;
  visibility: visible;
}
body.more-filters-open .product-loop-filters__drawer {
  transform: translateX(0);
}
.product-category-page ul.products {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2rem;
}
.woocommerce .product-category-page ul.products {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.product-category-page ul.products::before,
.product-category-page ul.products::after {
  content: none !important;
  display: none !important;
}
.product-category-page ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  background: var(--grey-1);
  border: 1px solid transparent;
  padding: 10px;
  transition: 1s;
}
.product-category-page ul.products li.product.product-transit {
  transition: 0.5s;
}
.product-category-page ul.products li.product .woocommerce-LoopProduct-link {
  display: block;
  color: #222222;
  text-decoration: none;
}
.product-shortcode-products ul.products li.product .woocommerce-LoopProduct-link:hover {
  opacity: 1;
}
.product-category-page ul.products li.product .woocommerce-LoopProduct-link img {
  display: block;
  width: 100%;
  object-position: center;
  background: #F7F7F7;
  padding: 20px 20px 0 20px;
  image-rendering: auto;
}
.product-shortcode-products {
  margin-top: 2rem;
}
.product-shortcode-products ul.products li.product,
.shop-featured-category__grid ul.products li.product {
  align-self: start;
  opacity: 1;
  transform: none;
  transition: border-color 1s, background-color 1s;
  padding: 20px;
}
.product-shortcode-products ul.products li.product .woocommerce-LoopProduct-link img {
  max-height: none;
  height: auto;
  width: 100%;
  padding: 0;
  object-fit: contain;
}
.product-category-page ul.products li.product .woocommerce-loop-product__title {
  text-align: center;
  font-size: clamp(1.05rem, 1.05rem, 1.15rem) !important;
  font-weight: 500;
  line-height: 1.25;
  padding: 0.25rem 0 0 !important;
}
.product-shortcode-products ul.products li.product .woocommerce-loop-product__title {
  text-align: left;
  margin-top: 1rem;
}
.product-category-page ul.products li.product .product-loop-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  border: 1px solid var(--brand-color);
  padding: 1rem 1.25rem 0.9rem;
  margin: 1rem 20px 20px;
}
.product-shortcode-products ul.products li.product .product-loop-meta {
  border: none;
  padding: 0;
  margin: 0.75rem 0 0 0;
}
.product-shortcode-products ul.products li.product .product-loop-meta .link-underline {
  margin-top: 0;
}
.product-category-page ul.products li.product .product-loop-meta .price {
  margin: 0;
  text-align: left;
  color: var(--text-color);
  font-size: 14px;
  line-height: 1.1;
}
.product-shortcode-products ul.products li.product .product-loop-meta .price {
  font-weight: 300;
}
.product-category-page ul.products li.product .product-loop-meta .price * {
  font-size: inherit;
}
.product-category-page ul.products li.product .product-book-tailor-link,
.product-category-page ul.products li.product .product-loop-cta-link,
.product-shortcode-products ul.products li.product .product-loop-cta-link {
  font-size: 14px;
  line-height: 1.1;
  color: #222222;
  white-space: nowrap;
}
.product-category-page ul.products li.product:hover .product-loop-meta {
  border-color: #222222;
  background: #222222;
}
.product-shortcode-products ul.products li.product:hover .product-loop-meta {
  background-color: transparent;
  border-color: none;
}
.product-category-page ul.products li.product:hover {
  border-color: var(--brand-color);
  background: var(--grey-2);
}
.product-shortcode-products ul.products li.product:hover {
  border-color: transparent;
  background: var(--grey-2);
}
.product-category-page ul.products li.product:hover .product-loop-meta .price,
.product-category-page ul.products li.product:hover .product-book-tailor-link,
.product-category-page ul.products li.product:hover .product-loop-cta-link,
.product-category-page ul.products li.product:hover .product-loop-meta .price * {
  color: #FFFFFF;
}
.product-shortcode-products ul.products li.product:hover .product-loop-meta .price,
.product-shortcode-products ul.products li.product:hover .product-book-tailor-link,
.product-shortcode-products ul.products li.product:hover .product-loop-cta-link,
.product-shortcode-products ul.products li.product:hover .product-loop-meta .price * {
  color: var(--text-color);
}
.product-category-page ul.products li.product:hover .woocommerce-LoopProduct-link img,
.product-category-page ul.products li.product:hover .woocommerce-loop-product__title {
  background: var(--grey-2);
}

.product-shortcode-products + .product-shortcode-products {
  margin-top: 2rem !important;
}

.shop-featured-categories {
  display: flex;
  flex-direction: column;
  gap: clamp(3rem, 6vw, 5rem);
  margin-top: 2rem;
}
.shop-featured-category__grid {
  margin-top: 0;
}

.product-category-seo-content {
  padding-top: 70px;
}
.product-category-seo-content__dark {
  position: relative;
  overflow: hidden;
  background-color: var(--brand-color);
  color: #FFFFFF;
}
.product-category-seo-content__dark::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--seo-bg-image) no-repeat right center;
  background-size: auto 100%;
  z-index: 0;
}
.product-category-seo-content__dark::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(34,34,34,0.98) 0%, rgba(34,34,34,0.98) 56%, rgba(34,34,34,0.98) 70%, rgba(34,34,34,0.45) 84%, rgba(34,34,34,0.14) 100%);
  z-index: 0;
}
.product-category-seo-content__dark a {
  color: #FFFFFF;
}
.product-category-seo-content__dark a:link,
.product-category-seo-content__dark a:visited {
  color: #FFFFFF;
}
.product-category-seo-content__dark a:hover {
  text-decoration: underline;
}
.product-category-seo-content__dark a:focus,
.product-category-seo-content__dark a:active {
  color: #FFFFFF;
}
.product-category-seo-content__dark-inner {
  position: relative;
  z-index: 1;
  width: min(760px, 100%);
  padding: clamp(4rem, 7vw, 8rem) 0;
  text-align: center;
  margin: 0 auto;
}
.product-category-seo-content__dark-copy h2,
.product-category-seo-content__dark-copy h3 {
  color: #FFFFFF;
  line-height: 1.2;
  margin: 0;
  padding-bottom: 1rem;
}
.product-category-seo-content__dark-copy {
  font-size: 14px;
  line-height: 1.9;
  color: rgba(255,255,255,0.92);
}

.product-category-seo-content__grey {
  background-color: var(--grey-1);
}

.product-category-seo-content__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 6rem);
  padding: clamp(3.2rem, 5vw, 4rem) 0;
}
.product-category-seo-content__column {
  color: #2f2f2f;
  font-size: 14px;
  line-height: 1.85;
}
.product-category-seo-content__column h2,
.product-category-seo-content__column h3,
.product-category-seo-content__column h4 {
  line-height: 1.15;
  margin: 0;
  padding-bottom: 1rem;
}
.product-category-seo-content h2 {
  font-size: clamp(1.25rem, 2.8vw, 1.75rem);
}
.product-category-seo-content h3 {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  padding-top: 1.25rem;
  padding-bottom: 0.25rem;
}
.product-category-seo-content p + h2 {
  margin-top: 2rem;
}
.product-category-seo-content p + h3, 
.product-category-seo-content ul + h3 {
  margin-top: 1.25rem;
}
.product-category-seo-content p + ul {
  margin-top: 0.25rem;
}
.product-category-seo-content li {
  margin-top: 0.05rem;
}
.product-category-page + .site-footer {
  margin-top: 0;
}
.archive .product-category-page + .site-footer {
  margin-top: 75px;
}

/* =============== Single product page =============== */
.single-product-content {
  padding: 20px 0;
}
.single-product-content__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 3.2rem);
  column-gap: clamp(2.25rem, 5vw, 5rem);
  align-items: start;
}
.single-product-content__gallery {
  position: relative;
  display: block;
  padding-right: 0;
  padding-left: 0;
  height: auto;
  min-height: 0;
}
.single-product-content__gallery-track {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.single-product-content__image {
  margin: 0;
  background: #F2F2F2;
  scroll-snap-align: start;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.single-product-content__image-tag,
.single-product-content__image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.woocommerce-notices-wrapper {
  margin-top: 0 !important;
}
@media (min-width: 911px) {
  .woocommerce .single-product-content {
    background-color: var(--grey-1);
    padding: 20px;
    margin-top: 20px !important;
    min-height: 720px;
    box-sizing: border-box;
  }
  .single-product-content__inner {
    align-items: start;
    min-height: 0;
  }
  .single-product-content__gallery {
    display: block;
    min-height: 0;
    overflow: visible;
  }
  .single-product-content__gallery-track {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    max-height: none;
    height: auto;
    overflow: visible;
    scroll-snap-type: none;
  }
  .single-product-content__image {
    flex: 0 0 auto;
    height: auto;
    min-height: 0;
    padding: 0;
  }
  .single-product-content__image-tag,
  .single-product-content__image img {
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: cover;
  }
  .single-product-content__description {
    position: sticky;
    top: 50px;
    background-color: var(--grey-1);
    z-index: 1;
  }
  .single-product-content__summary {
    height: 100%;
  }
}
.single-product-content__dots {
  display: flex;
}
.single-product-content__dots--mobile {
  display: none;
}
.single-product-content__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 0;
  background: #BEBEBE;
  padding: 0;
  cursor: pointer;
  transition: transform 0.2s ease, background-color 0.2s ease;
}
.single-product-content__dot:hover {
  transform: scale(1.1);
}
.single-product-content__dot.is-active {
  background: #222222;
}
.single-product-content__summary {
  background-color: var(--grey-1);
  padding: clamp(0.2rem, 1vw, 0.8rem) 0;
}
.single-product-content__title {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  line-height: 1.04;
  margin: 0;
  padding-bottom: 0.6rem;
}
.single-product-content__price {
  margin: 0;
  color: var(--text-color);
  font-size: clamp(1.2rem, 2.4vw, 1.55rem);
  font-weight: 400;
  margin-top: 0.75rem;
}
.single-product-content__price .price-prefix,
.single-product-content__price .woocommerce-Price-currencySymbol {
  font-size: 0.7em;
}
.single-product-content__price .woocommerce-Price-currencySymbol {
  padding-right: 2px;
}
.single-product-content__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.85rem;
  margin-top: 1.6rem;
  margin-bottom: 1.6rem;
}
.single-product-content__buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
  width: 100%;
  max-width: 280px;
}
.single-product-content__buttons--single {
  grid-template-columns: 1fr;
}
.single-product-content__add-btn.button,
.single-product-content__book-btn.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-height: 32px !important;
  height: 32px !important;
  border: 0;
  border-radius: 0 !important;
  background-color: var(--brand-color) !important;
  color: #FFFFFF !important;
  text-transform: capitalize;
  text-align: center;
  text-decoration: none !important;
  font-size: 0.95rem !important;
  font-weight: 400 !important;
  line-height: 1.2;
  letter-spacing: 0.5px;
  transition: .6s;
  padding: 0.65rem 1rem !important;
}
.single-product-content__add-btn.button:hover,
.single-product-content__book-btn.button:hover {
  opacity: 0.5;
  text-decoration: none !important;
}
.single-product-content__add-btn.button.added {
  opacity: 0.6;
}
.single-product-content__fit-link {
  font-size: 0.95rem;
}
.single-product-content__fit-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.single-product-content__fit-icon {
  width: 15px;
  height: 15px;
  object-fit: contain;
  display: block;
  padding-bottom: 2px;
}
.single-product-content__section {
  color: #333333;
  font-size: 1rem;
  line-height: 1.75;
}
.single-product-content__section h1,
.single-product-content__section h2,
.single-product-content__section h3,
.single-product-content__section h4,
.single-product-content__section h5,
.single-product-content__section h6 {
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.35;
  padding-bottom: 0;
}
.single-product-content__section li + li {
  margin-top: 0.25rem;
}
.single-product-content__section p {
  margin: 0;
}
.single-product-content__section ul {
  margin-top: 0.5rem;
}
.single-product-content__section h5 + h5 {
  margin-top: 1.5rem;
}
.single-product-content__attributes {
  margin-top: 1.6rem;
}
.single-product-content__description {
  margin-top: 1.6rem;
}
.single-product-page + .site-footer {
  margin-top: 1.6rem;
}
.woocommerce .single-product-recommendations {
  background: var(--grey-1);
  padding: clamp(50px, 5vw, 75px) 0;
  margin-top: clamp(50px, 75px, 75px) !important;
}
.single-product-page .single-product-content + .single-product-recommendations {
  margin-top: 0 !important;
}
.single-product-recommendations .container {
  max-width: 1700px;
}
.single-product-recommendations__title {
  text-align: center;
  margin: 0;
  padding-bottom: 1.6rem;
  font-size: clamp(1.25rem, 3vw, 1.75rem);
}
.single-product-recommendations__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2rem;
  margin: 0 clamp(20px, 3vw, 3.2rem);
}
.single-product-recommendations__item {
  min-width: 0;
}
.single-product-recommendations__item,
.product-category-page ul.products li.product {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 1.8s ease, transform 1.8s ease;
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.single-product-recommendations__item.is-scroll-revealed,
.product-category-page ul.products li.product.is-scroll-revealed {
  opacity: 1;
  transform: translateY(0);
}
.single-product-recommendations__link {
  display: block;
  text-align: center;
  color: var(--text-color);
  text-decoration: none;
}
@media (prefers-reduced-motion: reduce) {
  .single-product-recommendations__item,
  .product-category-page ul.products li.product {
    transition: none;
    transform: none;
    opacity: 1;
  }
}
.single-product-recommendations__image-wrap {
  background: var(--grey-1);
  overflow: hidden;
  isolation: isolate;
}
.single-product-recommendations__image {
  display: block;
  width: 100%;
  height: 240px;
  object-fit: contain;
  transform: scale(1);
  transition: transform 0.9s ease;
}
.single-product-recommendations__link:hover .single-product-recommendations__image,
.single-product-recommendations__link:focus .single-product-recommendations__image {
  transform: scale(1.06);
}
.single-product-recommendations__name {
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.4;
  margin: 0;
  padding: 0.95rem 0 0.2rem;
}
.single-product-recommendations__price {
  margin: 0;
  font-size: 0.95rem;
}
.single-product-recommendations__price .price-prefix {
  font-size: 0.95em;
}
@media (max-width: 1280px) {
  .product-category-page ul.products,
  .woocommerce .product-category-page ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


@media (max-width: 910px) {
  .product-loop-filters__main {
    gap: 0.2rem 1rem;
  }
  .product-loop-filters__sort {
    margin-left: auto;
  }
  .product-loop-filters__category-panel,
  .product-loop-filters__price-panel {
    width: 100%;
    max-width: none;
  }
  .product-loop-filters__drawer {
    left: 0;
    right: auto;
    width: 85%;
    max-width: 500px;
    min-width: 0;
    height: 100%;
    height: 100dvh;
    top: 0;
    transform: translateX(-100%);
    box-shadow: 10px 0 28px rgba(0, 0, 0, 0.15);
  }
  body.more-filters-open .product-loop-filters__drawer {
    transform: translateX(0);
  }
  .product-category-hero {
    padding: 20px 0 2.5rem;
  }
  .product-category-hero__inner {
    grid-template-columns: 1fr;
  }
  .product-category-hero__media {
    order: -1;
  }
  .product-category-seo-content__dark {
    background-color: var(--brand-color);
  }
  .product-category-seo-content__dark::before {
    background-position: center bottom;
    background-size: cover;
  }
  .product-category-seo-content__dark::after {
    background: linear-gradient(to bottom, rgba(34,34,34,0.95) 0%, rgba(34,34,34,0.95) 62%, rgba(34,34,34,0.48) 82%, rgba(34,34,34,0.2) 100%);
  }
  .product-category-seo-content__dark-inner {
    width: 100%;
    text-align: left;
  }
  .product-category-seo-content__columns {
    grid-template-columns: 1fr;
  }
  .single-product-content__inner {
    grid-template-columns: 1fr;
  }
  .product-category-page ul.products,
  .woocommerce .product-category-page ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .single-product-content__gallery {
    position: relative;
    display: block;
    min-height: 0;
    padding-right: 0;
  }
  .single-product-content__gallery-track {
    flex-direction: row;
    gap: 0;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .single-product-content__gallery-track::-webkit-scrollbar {
    width: 0;
    height: 0;
  }
  .single-product-content__image {
    flex: 0 0 100%;
    min-height: 0;
  }
  .single-product-content__dots--mobile {
    display: flex;
    position: absolute;
    left: 50%;
    bottom: 0.75rem;
    transform: translateX(-50%);
    justify-content: center;
    align-items: center;
    gap: 0.45rem;
    z-index: 3;
    padding: 0.3rem 0.5rem;
  }
  .single-product-content__summary {
    padding-top: 20px;
    padding-bottom: 20px;
    padding-left: 20px;
    padding-right: 20px;
  }
  .single-product-content__actions {
    flex-wrap: wrap;
  }
  .single-product-recommendations__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .single-product-recommendations__image {
    height: 210px;
  }
  .single-product-content__buttons {
    width: 100%;
    max-width: none;
  }
}
@media (max-width: 640px) {
  .product-category-page ul.products,
  .woocommerce .product-category-page ul.products {
    grid-template-columns: 1fr;
  }
  .product-category-toolbar {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
  }
  .product-category-toolbar .product-loop-filters {
    flex: 0 0 auto;
  }
  .product-category-toolbar .product-loop-filters__sort {
    flex: 0 1 auto;
    margin-left: auto;
    min-width: 0;
  }
  .product-category-toolbar .product-loop-filters__sort-toggle {
    min-width: 0;
    max-width: 100%;
  }
  .single-product-content {
    padding: 0 0 18px;
  }
  .single-product-content__gallery {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    padding-left: 0;
    padding-right: 0;
  }
  .single-product-content__image-tag,
  .single-product-content__image img {
    height: clamp(240px, 76vw, 430px);
    width: 100vw;
  }
  .single-product-content__summary {
    padding-left: 20px;
    padding-right: 20px;
  }
  .single-product-content__actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.65rem;
  }
  .single-product-content__buttons {
    grid-template-columns: 1fr;
    max-width: none;
  }
  .single-product-content__add-btn.button,
  .single-product-content__book-btn.button {
    width: 100%;
    text-align: center;
  }
  .single-product-recommendations {
    padding-top: 1.9rem;
    padding-bottom: 2rem;
  }
  .single-product-recommendations__grid {
    grid-template-columns: 1fr;
  }
  .single-product-recommendations__image {
    height: 260px;
  }
}
@media (min-width: 811px) {
  .single-product-content__summary {
    padding-right: 3vw;
  }
}
@media (min-width: 701px) {
  .top-message-bar:not([data-has-extra="1"]) {
    justify-content: space-between;
  }

  .top-message-bar:not([data-has-extra="1"]) .top-message-bar__slide {
    display: flex;
    flex: 0 1 auto;
  }

  .top-message-bar:not([data-has-extra="1"]) .top-message-bar__slide--reviews {
    justify-content: flex-start;
    margin-right: auto;
  }

  .top-message-bar:not([data-has-extra="1"]) .top-message-bar__slide--contact {
    justify-content: flex-end;
    margin-left: auto;
  }

  .top-message-bar[data-has-extra="1"]:not(.is-desktop-extra) {
    justify-content: space-between;
  }

  .top-message-bar[data-has-extra="1"]:not(.is-desktop-extra) .top-message-bar__slide--reviews,
  .top-message-bar[data-has-extra="1"]:not(.is-desktop-extra) .top-message-bar__slide--contact {
    display: flex;
    flex: 0 1 auto;
  }

  .top-message-bar[data-has-extra="1"]:not(.is-desktop-extra) .top-message-bar__slide--reviews {
    justify-content: flex-start;
    margin-right: auto;
  }

  .top-message-bar[data-has-extra="1"]:not(.is-desktop-extra) .top-message-bar__slide--contact {
    justify-content: flex-end;
    margin-left: auto;
  }

  .top-message-bar[data-has-extra="1"]:not(.is-desktop-extra) .top-message-bar__slide--extra {
    display: none;
  }

  .top-message-bar[data-has-extra="1"].is-desktop-extra .top-message-bar__slide--reviews,
  .top-message-bar[data-has-extra="1"].is-desktop-extra .top-message-bar__slide--contact {
    display: none;
  }

  .top-message-bar[data-has-extra="1"].is-desktop-extra .top-message-bar__slide--extra {
    display: flex;
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 700px) {
  .site-top-message__inner {
    width: calc(100% - 24px);
  }

  .top-message-bar,
  .top-message-bar.is-mobile-carousel {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    flex-wrap: nowrap !important;
    align-items: center;
    justify-items: center;
    position: relative;
    overflow: hidden;
    min-height: 36px;
    padding: 6px 0;
    column-gap: 0;
    row-gap: 0;
  }

  .top-message-bar .top-message-bar__slide {
    grid-area: 1 / 1;
    display: flex !important;
    width: 100%;
    max-width: 100%;
    margin: 0 !important;
    justify-content: center;
    align-items: center;
    align-self: center;
    justify-self: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 0;
    transition: opacity 0.45s ease, transform 0.45s ease, visibility 0.45s ease;
    transform: translateY(8px);
  }

  .top-message-bar .top-message-bar__slide.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    z-index: 1;
    transform: translateY(0);
  }
}

@media (min-width: 1280px) {
  .site-top-message__inner {
    width: calc(100% - 56px);
  }
}

@media (min-width: 1440px) {
  .site-top-message__inner {
    width: calc(100% - 72px);
  }

  .product-category-seo-content__dark::after {
    background: linear-gradient(to right, rgba(34,34,34,0.98) 0%, rgba(34,34,34,0.98) 56%, rgba(34,34,34,0.98) 70%, rgba(34,34,34,0.95) 84%, rgba(34,34,34,0.14) 100%);
  }
}
/* =============== Page Hero =============== */
.home-hero {
  position: relative;
  width: 100%;
  height: calc(60vh - 36px);
  height: calc(60svh - 36px);
  overflow: hidden;
  background-color: #111111;
}

body:not(.has-top-message) .home-hero {
  height: 60vh;
  height: 60svh;
}

.home-hero.home-hero--home {
  height: calc(100vh - 36px);
  height: calc(100svh - 36px);
}

body:not(.has-top-message) .home-hero.home-hero--home {
  height: 100vh;
  height: 100svh;
}

.home-hero-backdrop {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.home-hero--blog-index .home-hero-backdrop {
  position: absolute;
  inset: 0;
  height: auto;
}

.home-hero-media-link {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  color: var(--text-color-in-dark-bg);
  text-decoration: none;
}

.home-hero-image,
.home-hero-video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

@media (prefers-reduced-motion: reduce) {
  .home-hero--video .home-hero-video {
    display: none;
  }
}

.home-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.55) 0%,
    rgba(0, 0, 0, 0.2) 22%,
    rgba(0, 0, 0, 0) 45%,
    rgba(0, 0, 0, 0) 55%,
    rgba(0, 0, 0, 0.25) 78%,
    rgba(0, 0, 0, 0.6) 100%
  );
  pointer-events: none;
}

.home-hero.home-hero--inner::after {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.4) 0%,
    rgba(0, 0, 0, 0.2) 22%,
    rgba(0, 0, 0, 0.05) 45%,
    rgba(0, 0, 0, 0.05) 55%,
    rgba(0, 0, 0, 0.2) 78%,
    rgba(0, 0, 0, 0.4) 100%
  );
}

.home-hero.home-hero--video::after {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.5) 0%,
    rgba(0, 0, 0, 0.25) 22%,
    rgba(0, 0, 0, 0) 45%,
    rgba(0, 0, 0, 0) 55%,
    rgba(0, 0, 0, 0.25) 78%,
    rgba(0, 0, 0, 0.5) 100%
  );
}

.home-hero.home-hero--inner.home-hero--video::after {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.5) 0%,
    rgba(0, 0, 0, 0.25) 22%,
    rgba(0, 0, 0, 0.08) 45%,
    rgba(0, 0, 0, 0.08) 55%,
    rgba(0, 0, 0, 0.25) 78%,
    rgba(0, 0, 0, 0.5) 100%
  );
}

.home-hero-title {
  position: absolute;
  left: 50%;
  bottom: clamp(1px, 2.4vw, 1rem);
  transform: translateX(-50%);
  width: min(92%, 900px);
  margin: 0;
  text-align: center;
  color: var(--text-color-in-dark-bg);
  font-size: clamp(28px, 2.4vw, 36px);
  font-weight: 400;
  line-height: 1.1;
  z-index: 3;
}

.home-hero-description {
  position: absolute;
  left: 50%;
  bottom: clamp(1.5rem, 3.8vw, 2.25rem);
  transform: translateX(-50%);
  width: min(92%, 720px);
  margin: 0;
  padding-top: 0;
  text-align: center;
  color: var(--text-color-in-dark-bg);
  font-weight: 300;
  line-height: 1.5;
  z-index: 3;
}

.home-hero-description p {
  margin: 0 0 0.5rem;
}

.home-hero-description p:last-child {
  margin-bottom: 0;
}

.home-hero:has(.home-hero-description) .home-hero-title {
  bottom: clamp(2.5rem, 5vw, 3.5rem);
}

.home-hero--blog-index .home-hero-title {
  position: relative;
  left: auto;
  bottom: auto;
  transform: none;
  width: min(92%, 900px);
  margin: 0;
}

.home-hero--blog-index .home-hero-description {
  position: relative;
  left: auto;
  bottom: auto;
  transform: none;
  width: min(92%, 720px);
  margin: 0.5rem auto 0;
}

.home-hero--blog-index:has(.home-hero-description) .home-hero-title {
  bottom: auto;
}

/* Page title when hero is disabled or empty */
.page-header--no-hero {
  background-color: var(--grey-1);
  padding: clamp(2rem, 4.5vw, 3.25rem) 0;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.page-header--no-hero .content-title {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: none;
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3.2vw, 2.25rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.02em;
  text-align: center;
  color: var(--text-color);
}

main > .page-header--no-hero + .blog-index,
main > article > .page-header--no-hero + .wp-block-group,
main > article > .page-header--no-hero + .entry-content {
  margin-top: 0 !important;
}

.home-hero-categories {
  position: relative;
  left: auto;
  bottom: auto;
  transform: none;
  width: min(92%, 1200px);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  z-index: 3;
}

.home-hero--blog-index {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  padding-bottom: clamp(0.8rem, 2.4vw, 1.8rem);
}

.home-hero-category {
  display: inline-block;
  border: 0.5px solid #FFFFFF;
  border-radius: 0;
  padding: 0.35rem 0.75rem 0.1rem;
  color: #FFFFFF;
  text-transform: uppercase;
  text-decoration: none;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 300;
  letter-spacing: 0.06em;
  line-height: 1.1;
}
.home-hero-category:link, 
.home-hero-category:visited {
  color: #FFFFFF;
}
.home-hero-category:hover {
  opacity: 0.6;
  text-decoration: none;
}
.home-hero-category:focus,
.home-hero-category:active {
  color: #FFFFFF;
}

.home-hero-category.is-current {
  background-color: rgba(255, 255, 255, 0.16);
}

/* =============== Blog index =============== */
.blog-index {
  margin-top: clamp(2.5rem, 7vw, 5rem);
  margin-bottom: clamp(4rem, 8vw, 6rem);
}

.blog-index-section + .blog-index-section {
  margin-top: clamp(3rem, 8vw, 5.5rem);
}

.blog-index-section__title {
  text-align: center;
  margin-bottom: clamp(1.2rem, 2.8vw, 2rem);
  padding-bottom: 0;
}

.blog-index-grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.5rem;
}

.blog-post-card {
  min-width: 0;
}

.blog-post-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--text-color);
  text-decoration: none;
}

.blog-post-card__link:link,
.blog-post-card__link:visited,
.blog-post-card__link:hover,
.blog-post-card__link:focus {
  color: var(--text-color);
  text-decoration: none;
  opacity: 1;
}

.blog-post-card__image {
  margin: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: var(--grey-2);
}

.blog-post-card__image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transform: scale(1);
  transition: transform 0.8s ease;
}

.blog-post-card__link:hover .blog-post-card__image img,
.blog-post-card__link:focus .blog-post-card__image img,
.blog-post-card__link:focus-visible .blog-post-card__image img {
  transform: scale(1.08);
}

.blog-post-card__category {
  margin-top: 0.8rem;
  margin-bottom: 0;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  font-weight: 500;
  color: #777777;
}

.blog-post-card__title {
  margin-top: 0.55rem;
  margin-bottom: 0.8rem;
  font-family: var(--font-body);
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.35;
  padding-bottom: 0;
}

.blog-post-card__date {
  margin-top: auto;
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #8E8E8E;
}

.blog-index-section__cta {
  margin-top: 1.35rem;
  text-align: center;
}

.blog-index-load-more.link-underline {
  border: 0;
  background: transparent;
  color: var(--link-color);
  padding: 0;
  cursor: pointer;
  font-family: var(--font-body);
}

.blog-index-load-more.link-underline:disabled {
  opacity: 0.6;
  cursor: default;
}

@media (min-width: 700px) {
  .blog-index-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.8rem;
  }
}

@media (min-width: 1024px) {
  .blog-index-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: clamp(1.1rem, 1.8vw, 1.8rem);
    row-gap: 2.1rem;
  }
}

/* =============== Single blog page =============== */
body.single-post .site-header {
  background-color: #FFFFFF;
}

.single-blog-post section + section {
  margin-top: 0 !important;
}

.single-blog-hero {
  background-color: var(--grey-1);
  padding-bottom: 0;
}

.single-blog-hero__layout {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 5rem);
}

.single-blog-hero__thumbnail {
  margin: 0;
}

.single-blog-hero__image {
  width: 100%;
  display: block;
  object-position: center center;
}

.single-blog-hero__thumbnail.is-landscape {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: #FFFFFF;
}

.single-blog-hero__thumbnail.is-landscape .single-blog-hero__image {
  height: 100%;
  object-fit: cover;
}

.single-blog-hero__thumbnail.is-portrait {
  background-color: transparent;
}

.single-blog-hero__thumbnail.is-portrait .single-blog-hero__image {
  height: auto;
  object-fit: initial;
}

.single-blog-hero__category {
  display: inline-block;
  margin-bottom: clamp(0.7rem, 1.8vw, 1.2rem);
  text-transform: uppercase;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-decoration: none;
  color: #777777;
}
.single-blog-hero__title {
  margin: 0;
  padding-bottom: 0;
  font-size: clamp(1.25rem, 3.6vw, 1.5rem);
  line-height: 1.1;
}

.single-blog-hero__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: clamp(1.1rem, 2.2vw, 1.8rem);
}

.single-blog-hero__tag {
  border: 1px solid #C7C7C7;
  padding: 0.45rem 1.1rem 0.35rem;
  text-transform: uppercase;
  font-size: 0.66rem;
  line-height: 1;
  letter-spacing: 0.06em;
  text-decoration: none;
  color: var(--text-color);
}
.single-blog-content p + h2,
.single-blog-content h2.wp-block-heading {
  margin-top: 2em;
}
.single-blog-content p + h3,
.single-blog-content p + h4,
.single-blog-content p + h5,
.single-blog-content p + h6 {
  margin-top: 1.25em;
}
.single-blog-content h2 {
  font-size: clamp(24px, 2.8vw, 28px);
}
.single-blog-content h3 {
  font-size: clamp(18px, 2.8vw, 20px);
}

.single-blog-content-section {
  padding-top: clamp(2rem, 4.5vw, 4rem);
  padding-bottom: clamp(3rem, 5vw, 4.5rem);
}

.single-blog-content > *:first-child {
  margin-top: 0;
}

.single-blog-content > *:last-child {
  margin-bottom: 0;
}

.single-blog-content .wp-block-buttons:last-of-type {
  margin-top: 3rem;
}
.single-blog-content .blog-cta-banner .wp-block-buttons:last-of-type {
  margin-top: 0;
}

.single-blog-content .wp-block-image img {
  width: 100%;
  height: auto;
}

.related-posts {
  padding-top: clamp(2.5rem, 5vw, 4rem);

}

.related-posts .container {
  border-top: 1px solid #666666;
  padding-top: clamp(2rem, 4vw, 3rem);
}

.related-posts h2 {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: clamp(1.25rem, 3vw, 1.5rem);
  line-height: 1.2;
  margin-bottom: clamp(1.4rem, 2.8vw, 2.2rem);
  padding-bottom: 0;
}

.other-recommended-posts-wrapper {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.5rem;
}

.related-post-card {
  min-width: 0;
}

.related-posts .blog-post-card__image {
  position: relative;
}

.related-posts .blog-post-card__image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.22);
  pointer-events: none;
}

.related-post-card__title {
  margin-top: 0.9rem;
  margin-bottom: 0;
  padding-bottom: 0;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: clamp(1rem, 2vw, 1.15rem);
  line-height: 1.35;
}
.blog-cta-banner {
  margin-top: 5rem;
  margin-bottom: 5rem;
}
.wp-block-media-text.blog-cta-banner h2 {
  font-family: var(--font-body);
  font-size: clamp(1.25rem, 3vw, 1.5rem);
  padding-top: 0.5rem;
  padding-bottom: 0.75rem;
}

@media (max-width: 959px) {
  .wp-block-media-text.blog-cta-banner {
    grid-template-columns: 45% auto !important;
  }
}
@media (max-width: 700px) {
  .wp-block-media-text.blog-cta-banner {
    grid-template-columns: 35% auto !important;
  }
}
@media (max-width: 599px) {
  .wp-block-media-text.blog-cta-banner {
    padding-bottom: 1.5rem;
  }
  .wp-block-media-text.blog-cta-banner figure {
    margin-bottom: 1.5rem;
  }
}
@media (min-width: 500px) {
  .other-recommended-posts-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

@media (min-width: 700px) {
  .single-blog-hero__thumbnail.is-landscape {
    width: clamp(240px, 30vw, 420px);
    max-width: 100%;
    justify-self: start;
  }

  .single-blog-hero, .single-blog-content .container.narrow-1280,
  .single-blog-content .single-blog-hero__layout,
  .single-blog-hero__thumbnail.is-portrait,
  .single-blog-hero__thumbnail.is-portrait img {
    max-height: 400px;
    width: auto;
    overflow: hidden;
  }

  .other-recommended-posts-wrapper {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .other-recommended-posts-wrapper {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: clamp(1.1rem, 1.8vw, 1.8rem);
    row-gap: 2.1rem;
  }
  .single-blog-hero {
    max-height: 500px;
    overflow: hidden;
  }
  .single-blog-hero, .single-blog-content .container.narrow-1280,
  .single-blog-content .single-blog-hero__layout,
  .single-blog-hero__thumbnail.is-portrait,
  .single-blog-hero__thumbnail.is-portrait img {
    max-height: 450px;
    width: auto;
  }
}

@media (max-width: 700px) {
  .single-blog-hero {
    padding-bottom: 1.75rem;
  }
  .single-blog-hero__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .single-blog-hero__thumbnail {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
}

@media (max-width: 700px) {
  /* .single-blog-hero__title {
    font-size: clamp(1.8rem, 8vw, 2.3rem);
  } */
}


/* =============== Header =============== */
.site-header {
  position: relative;
  z-index: 30;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
  top: 0;
}

.site-header.is-with-hero {
  position: absolute;
  top: 36px;
  left: 0;
  width: 100%;
}

body:not(.has-top-message) .site-header.is-with-hero {
  top: 0;
}

.site-header.is-with-hero.is-scrolled {
  background-color: #FFFFFF;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
}

.site-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.hamberger-menu {
  display: none;
  border: 0;
  background: transparent;
  padding: 0;
  width: 32px;
  height: 24px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
}

.hamberger-menu span {
  width: 22px;
  height: 1.5px;
  background-color: var(--link-color);
  transition: transform 0.25s ease, opacity 0.25s ease, background-color 0.25s ease;
}
.site-branding {
  display: flex;
  align-items: center;
}
.site-branding-link {
  display: inline-flex;
  align-items: center;
  color: var(--text-color);
  text-decoration: none;
}

.site-branding .site-logo {
  display: block;
  width: auto;
  max-height: 40px;
}

.site-branding .site-logo--white {
  display: none;
}

.site-header.is-on-hero .site-branding .site-logo--black {
  display: none;
}

.site-header.is-on-hero .site-branding .site-logo--white {
  display: block;
}

.site-navigation .site-menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: clamp(0.8rem, 1.6vw, 2rem);
}

.site-navigation .site-menu li a {
  display: inline-block;
  color: var(--link-color);
  text-decoration: none;
  text-transform: uppercase;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1;
  transition: opacity 0.25s ease;
}

.site-navigation {
  margin-left: auto;
}

.site-header-cart {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--link-color);
  text-decoration: none;
  line-height: 1;
  margin-left: 0.25rem;
  transition: opacity 0.25s ease;
}
.site-header-cart:hover,
.site-header-cart:focus {
  opacity: 0.7;
  text-decoration: none;
}

.site-header-cart__icon {
  display: block;
  width: 22px;
  height: 22px;
  object-fit: contain;
  padding-bottom: 4px;
}
.site-header-cart__icon--white {
  display: none;
}
.site-header.is-on-hero .site-header-cart__icon--dark {
  display: none;
}
.site-header.is-on-hero .site-header-cart__icon--white {
  display: block;
}

.site-header-cart__count {
  position: absolute;
  top: -6px;
  right: -8px;
  min-width: 14px;
  height: 14px;
  padding: 2px 3px 0;
  display: none;
  align-items: center;
  justify-content: center;
  background-color: #000;
  color: #fff;
  border: 1px solid #000000;
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}
.site-header-cart__count.is-visible {
  display: inline-flex;
}
.site-header.is-on-hero .site-header-cart__count {
  background-color: #fff;
  color: #000;
  border-color: #fff;
}

.site-header.is-on-hero .site-branding-link,
.site-header.is-on-hero .site-navigation .site-menu li a,
.site-header.is-on-hero .site-header-cart {
  color: var(--text-color-in-dark-bg);
}

.site-header.is-on-hero .hamberger-menu span {
  background-color: var(--text-color-in-dark-bg);
}

.site-navigation .site-menu li a:hover,
.site-navigation .site-menu li a:focus {
  opacity: 0.7;
}

.menu-mobile-backdrop {
  display: none;
}

.menu-mobile {
  display: none;
}

.site-menu-mobile {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-menu-mobile li {
  transition: background-color 0.25s ease;
}

.site-menu-mobile li a {
  display: block;
  padding: 0.85rem 0;
  color: var(--text-color-in-dark-bg);
  text-decoration: none;
  text-transform: uppercase;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.2;
}

.site-menu-mobile li:hover,
.site-menu-mobile li:focus-within {
  background-color: var(--dark-grey-1);
}

@media (max-width: 1024px) {
  .site-header-inner {
    display: grid;
    grid-template-columns: 32px 1fr 32px;
    align-items: center;
    gap: 0.75rem;
  }

  .site-navigation {
    display: none;
  }

  .hamberger-menu,
  .site-header-cart {
    display: inline-flex;
  }

  .hamberger-menu {
    position: relative;
    z-index: 100001;
  }

  .hamberger-menu.active span {
    background-color: var(--text-color-in-dark-bg);
  }

  .hamberger-menu.active span:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg);
  }

  .hamberger-menu.active span:nth-child(2) {
    opacity: 0;
  }

  .hamberger-menu.active span:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg);
  }

  .site-branding {
    justify-self: center;
  }

  .site-branding .site-logo {
    max-height: 34px;
  }

  body.mobile-menu-open {
    overflow: hidden;
  }

  .menu-mobile-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 9998;
    background: rgba(0, 0, 0, 0.35);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }

  .menu-mobile-backdrop.active {
    opacity: 1;
    visibility: visible;
  }

  .menu-mobile {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 85%;
    max-width: 500px;
    height: 100%;
    height: 100dvh;
    background-color: var(--brand-color);
    color: var(--text-color-in-dark-bg);
    box-shadow: 10px 0 28px rgba(0, 0, 0, 0.35);
    transform: translateX(-100%);
    transition: transform 0.35s ease;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .menu-mobile.active {
    transform: translateX(0);
  }

  .menu-mobile__inner {
    padding: clamp(6rem, 12vw, 6.5rem) 0 2rem;
  }

  .site-menu-mobile li a {
    font-weight: 400;
    letter-spacing: 1px;
    padding: 0.85rem clamp(1.25rem, 5vw, 2rem);
  }

  /* Shop / product / cart / checkout: light mobile menu */
  body:is(
    .shop-archive,
    .woocommerce-shop,
    .post-type-archive-product,
    .tax-product_cat,
    .tax-product_tag,
    .single-product,
    .woocommerce-cart,
    .woocommerce-checkout,
    .woocommerce-account
  ) .menu-mobile,
  body[class*="tax-pa_"] .menu-mobile {
    background-color: #FFFFFF;
    color: var(--text-color);
    box-shadow: 10px 0 28px rgba(0, 0, 0, 0.15);
  }

  body:is(
    .shop-archive,
    .woocommerce-shop,
    .post-type-archive-product,
    .tax-product_cat,
    .tax-product_tag,
    .single-product,
    .woocommerce-cart,
    .woocommerce-checkout,
    .woocommerce-account
  ) .site-menu-mobile li a,
  body[class*="tax-pa_"] .site-menu-mobile li a {
    color: var(--text-color);
    opacity: 1;
  }

  body:is(
    .shop-archive,
    .woocommerce-shop,
    .post-type-archive-product,
    .tax-product_cat,
    .tax-product_tag,
    .single-product,
    .woocommerce-cart,
    .woocommerce-checkout,
    .woocommerce-account
  ) .site-menu-mobile li:is(:hover, :focus-within),
  body[class*="tax-pa_"] .site-menu-mobile li:is(:hover, :focus-within) {
    background-color: var(--grey-1);
  }

  body:is(
    .shop-archive,
    .woocommerce-shop,
    .post-type-archive-product,
    .tax-product_cat,
    .tax-product_tag,
    .single-product,
    .woocommerce-cart,
    .woocommerce-checkout,
    .woocommerce-account
  ) .site-menu-mobile li:is(:hover, :focus-within) a,
  body[class*="tax-pa_"] .site-menu-mobile li:is(:hover, :focus-within) a {
    opacity: 1;
  }

  body:is(
    .shop-archive,
    .woocommerce-shop,
    .post-type-archive-product,
    .tax-product_cat,
    .tax-product_tag,
    .single-product,
    .woocommerce-cart,
    .woocommerce-checkout,
    .woocommerce-account
  ) .hamberger-menu.active span,
  body[class*="tax-pa_"] .hamberger-menu.active span {
    background-color: var(--link-color);
  }
}
/* =============== First content =============== */
.first-content {
  max-width: 960px;
  text-align: center;

}
.first-content h2 {
  font-size: clamp(32px, 40px, 48px);
}
/* =============== Two image boxes =============== */
.two-image-boxes {
  gap: 1.5rem;
}

.two-image-boxes > .wp-block-column {
  position: relative;
  aspect-ratio: 1 / 1;
  padding: clamp(1.2rem, 2.4vw, 2rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
}

.two-image-boxes > .wp-block-column > figure {
  position: absolute;
  inset: 0;
  margin: 0;
  z-index: -2;
}

.two-image-boxes > .wp-block-column > figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transform: scale(1);
  transition: transform 1s ease;
}

.two-image-boxes > .wp-block-column:hover > figure img {
  transform: scale(1.12);
}

.two-image-boxes > .wp-block-column::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.36);
  z-index: -1;
}

.two-image-boxes > .wp-block-column h2,
.two-image-boxes > .wp-block-column p {
  margin: 0;
  text-align: center;
  color: #FFFFFF;
}

.two-image-boxes > .wp-block-column h2 {
  font-size: 28px;
  font-weight: 400;
  line-height: 1.15;
}

.two-image-boxes > .wp-block-column p a {
  color: #FFFFFF;
  text-decoration: none;
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  /* border-bottom: 1px solid rgba(255, 255, 255, 0.8); */
  padding-bottom: 0.15rem;
}

@media (max-width: 781px) {
  .two-image-boxes {
    gap: 0.8rem;
  }
}
.paragraph-narrow {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
/* =============== Two image boxes =============== */
.overflow-images {
  background-color: var(--brand-color);
  color: #FFFFFF;
  position: relative;
}
.overflow-images .container {
  display: flex;
  flex-direction: column-reverse;
  row-gap: 0;
  text-align: center;
  margin-top: 130px;
}
.overflow-images .two-col-right-image {
  width: 75%;
  max-width: 420px;
  position: relative;
  top: -70px;
}
.overflow-images .two-col-left-image {
  width: 75%;
  max-width: 420px;
  float: right;
  position: relative;
  bottom: -80px;
}
.overflow-images .wp-block-column:last-child {
  height: 100%;
}
.overflow-images a {
  color: #FFFFFF;
}
.overflow-images .link-underline {
  color: #FFFFFF;
}
@media (min-width: 580px) {
  .overflow-images .container  {
    row-gap: 3rem;
  }

}
@media (max-width: 800px) {
  .overflow-images {
    overflow: visible;
    margin-top: 120px !important;
    margin-bottom: 80px;
  }

  .overflow-images .container {
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  .overflow-images .two-col-right-image,
  .overflow-images .two-col-left-image {
    width: min(92%, 520px);
    max-width: 520px;
    float: none;
    top: 0;
    bottom: 0;
    margin-left: auto;
    margin-right: auto;
  }

  .overflow-images .two-col-right-image {
    transform: translateY(-70px);
  }

  .overflow-images .two-col-left-image {
    transform: translateY(80px);
    margin-top: 0.75rem;
  }
}
@media (min-width: 801px) {
  .overflow-images {
    height: 100vh;
    margin-top: 125px;
    margin-bottom: 125px;
    overflow: visible;
  }

  .overflow-images .container {
    max-width: 1380px;
    margin-top: 0;
    margin: 200px auto;
    display: block;
    text-align: left;
    row-gap: 0;
  }

  .overflow-images .wp-block-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
    column-gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
  }

  .overflow-images .wp-block-column {
    position: relative;
  }

  .overflow-images .wp-block-column:first-child {
    text-align: center;
    padding-top: 6rem;
  }

  .overflow-images .wp-block-column:first-child p {
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
  }

  .overflow-images .two-col-right-image,
  .overflow-images .two-col-left-image {
    width: 90%;
    max-width: 560px;
    float: none;
    margin: 0 auto;
  }

  .overflow-images .two-col-right-image {
    margin-left: auto;
    top: 0;
    transform: translateY(-100px);
  }

  .overflow-images .two-col-left-image {
    margin-top: 2.5rem;
    bottom: 0;
    transform: translateY(50px);
  }
}
@media (min-width: 1280px) {
  .overflow-images {
    height: 100%;
  }
  .overflow-images .container {
    column-gap: 10rem;
  }
  .overflow-images .wp-block-column:first-child {
    padding-top: 10rem;
  }
  .overflow-images .two-col-left-image {
    margin-top: 0.5rem;
    bottom: 0;
    transform: translateY(100px);
  }
  .overflow-images .two-col-right-image,
  .overflow-images .two-col-left-image {
    width: 100%;
    max-width: 560px;
  }

}
/* =============== Google reviews =============== */
.google-reviews {
  background-color: var(--brand-color);
  color: #FFFFFF;
  padding: 85px 0 75px;
}
.google-reviews .container {
  max-width: 1380px;
}
.google-reviews .ti-widget.ti-goog .ti-review-item>.ti-inner {
  border-radius: 0 !important;
}
.google-reviews .ti-widget.ti-goog .ti-review-content {
  font-size: 14px !important;
}
  /* =============== Image and text =============== */
  .image-and-text .container {
    display: flex;
    align-items: center !important;
  }
  .image-and-text .container > div {
    height: fit-content;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
  }
  .image-and-text .container > div h2 {
    width: 100%;
    text-align: center;
  }
  .image-and-text .container > div p {
    width: 100%;
    max-width: 460px;
    text-align: center;
  }
  .image-and-text .container > div p + p {
    margin-top: 1.5rem;
  }

/* =============== Footer =============== */
.site-footer {
  margin-top: 110px;
  background-color: #FFFFFF;
  color: var(--text-color);
  border-top: 1px solid var(--grey-3);
}

.site-footer-main {
  background-color: var(--grey-3);
  padding-top: 56px;
  padding-bottom: 28px;
}

.site-footer-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  column-gap: clamp(2rem, 5vw, 7rem);
  align-items: start;
}

.site-footer-menus {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(1rem, 3vw, 4rem);
  max-width: 600px;
}

.site-footer-menu-col ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer-menu-col li {
  margin: 0;
}

.site-footer-menu-col li + li {
  margin-top: 3px;
}

.site-footer-menu-col li:first-child {
  margin-bottom: 1rem;
}
.site-footer-menu-col li:first-child a {
  font-family: var(--font-heading);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.1;
}


.site-footer-menu-col a {
  text-decoration: none;
  color: var(--text-color);
  font-size: 0.96rem;
  transition: opacity 0.25s ease;
}

.site-footer-menu-col a:hover,
.site-footer-menu-col a:focus {
  opacity: 0.7;
}
.site-footer-menu-col li:first-child a:hover {
  cursor: default;
  opacity: 1;
  color: var(--text-color)!important;
}

.site-footer-newsletter h3,
.site-footer-social h3 {
  font-size: 22px;
  line-height: 1.1;
  padding-bottom: 0;
  margin-bottom: 1rem;
}

.site-footer-newsletter .widget {
  margin: 0;
}

.site-footer-newsletter .wpcf7 form {
  display: grid;
  row-gap: 0.65rem;
  margin: 0;
}

.site-footer-newsletter .wpcf7 p {
  margin: 0;
}

.site-footer-newsletter .wpcf7 .footer-newsletter-label {
  display: block;
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.1;
  margin-bottom: 0.35rem;
}

.site-footer-newsletter .wpcf7 .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.site-footer-newsletter .wpcf7 input[type="email"] {
  width: 100%;
  min-height: 36px;
  border: 1px solid var(--grey-3);
  border-bottom: 1px solid var(--brand-color);
  font-family: var(--font-body);
  border-radius: 0;
  padding: 0.3rem 0.5rem 0.3rem;
  color: var(--text-color);
  background-color: transparent;
}

.site-footer-newsletter .wpcf7 input[type="email"]:focus {
  border-color: var(--dark-grey-1);
  outline: none;
  box-shadow: none;
}

.site-footer-newsletter .wpcf7 input[type="email"]::placeholder,
.site-footer-newsletter .wpcf7 input[type="email"]::-webkit-input-placeholder,
.site-footer-newsletter .wpcf7 input[type="email"]::-moz-placeholder,
.site-footer-newsletter .wpcf7 input[type="email"]:-ms-input-placeholder {
  font-family: var(--font-body);
}

.site-footer-newsletter .wpcf7 input[type="submit"] {
  min-width: 170px;
  height: 32px;
  border: 0;
  border-radius: 0;
  background-color: var(--brand-color);
  color: #FFFFFF;
  text-transform: none;
  font-family: var(--font-body);
  font-size: 0.95rem;
  cursor: pointer;
  transition: opacity 0.25s ease;
}

.site-footer-newsletter .wpcf7 input[type="submit"]:hover,
.site-footer-newsletter .wpcf7 input[type="submit"]:focus {
  opacity: 0.85;
}
.wpcf7-not-valid-tip {
  font-size: 0.9rem !important;
  color: var(--grey-text-color) !important;
  margin-top: 0.35rem;
}
.wpcf7-response-output {
  font-size: 0.9rem !important;
  border-color: var(--dark-grey-1) !important;
  margin-left: 0 !important;
}
.contact-form-with-image .wpcf7-response-output {
  font-size: 1rem !important;
}
.site-footer-social {
  margin-top: 1.6rem;
}

.site-footer-social-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.site-footer-social-list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  color: var(--text-color);
  text-decoration: none;
  font-size: 0.9rem;
  transition: opacity 0.25s ease;
}

.site-footer-social-list a:hover,
.site-footer-social-list a:focus {
  opacity: 0.7;
}

.site-footer-bottom {
  background-color: var(--brand-color);
  color: #FFFFFF;
}

.site-footer-bottom-inner {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
}

.site-footer-payments {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.site-footer-payments img {
  height: 20px !important;
  width: auto;
  display: block;
}

.site-footer-payments .payment-icon--visa {
  height: 14px;
}
.site-footer-payments .payment-icon--paypal,
.site-footer-payments .payment-icon--google-pay {
  height: 15px;
}

.site-footer-meta {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  font-size: 0.85rem;
}

.site-footer-meta p {
  margin: 0;
}
.site-footer-meta a {
  color: #FFFFFF;
  text-decoration: none;
  transition: opacity 0.25s ease;
}
.site-footer-meta a:link,
.site-footer-meta a:visited {
  color: #FFFFFF;
}
.site-footer-meta a:focus,
.site-footer-meta a:active {
  color: #FFFFFF;
}
.site-footer-meta a:hover,
.site-footer-meta a:focus {
  opacity: 0.7;
}

@media (max-width: 960px) {
  .site-footer {
    margin-top: 80px;
  }

  .site-footer-main {
    padding-top: 42px;
    padding-bottom: 20px;
  }

  .site-footer-inner {
    grid-template-columns: 1fr;
    row-gap: 2rem;
  }

  .site-footer-menus {
    max-width: 100%;
    grid-template-columns: 1fr;
    row-gap: 0;
    border-top: 1px solid var(--grey-3);
    border-bottom: 1px solid var(--grey-3);
  }

  .site-footer-menu-col {
    border-bottom: 1px solid var(--grey-3);
  }

  .site-footer-menu-col:last-child {
    border-bottom: 0;
  }

  .site-footer-menu-col .footer-menu {
    margin: 0;
  }

  .site-footer-menu-col li:first-child a {
    position: relative;
    display: block;
    font-size: 1.35rem;
    padding: 1rem 2rem 1rem 0;
  }

  .site-footer-menu-col li:first-child a::after {
    content: "";
    position: absolute;
    right: 0.25rem;
    top: 50%;
    width: 6px;
    height: 6px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: translateY(-60%) rotate(45deg);
    transition: transform 0.25s ease;
  }

  .site-footer-menu-col li:not(:first-child) {
    display: none;
  }

  .site-footer-menu-col li:not(:first-child) a {
    display: block;
    font-size: 1rem;
    padding: 0.25rem 0;
  }

  .site-footer-menu-col.is-open li:not(:first-child) {
    display: block;
  }

  .site-footer-menu-col.is-open li:first-child a::after {
    transform: translateY(-35%) rotate(225deg);
  }
  .site-footer-menu-col.is-open li:last-child {
    margin-bottom: 2rem;
  }

  .site-footer-bottom-inner {
    flex-direction: column;
    align-items: center;
    padding: 1rem 0 0.75rem;
  }

  .site-footer-meta {
    align-items: flex-start;
    gap: 1rem;
  }
}
  /* =============== Contact page =============== */
/* Contact Form 7 - Contact page style */
.cf7-contact-form {
  max-width: 720px;
}

.cf7-contact-form label {
  display: block;
  margin-bottom: 0.25rem;
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.2;
}

.cf7-contact-form .wpcf7-form-control-wrap {
  display: block;
}

.cf7-contact-form input[type="text"],
.cf7-contact-form input[type="email"],
.cf7-contact-form input[type="tel"],
.cf7-contact-form textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid #bdbdbd;
  border-radius: 0;
  background: transparent;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 300;
  letter-spacing: 0.25px;
  color: var(--text-color);
  padding: 0 0 0.75rem;
  box-shadow: none;
  outline: none;
}

.cf7-contact-form textarea {
  min-height: 160px;
  max-height: 160px;
  resize: vertical;
  line-height: 1.6;
  letter-spacing: 0.25px;
}

.cf7-contact-form input::placeholder,
.cf7-contact-form textarea::placeholder {
  color: #7f7f7f;
  font-family: var(--font-body);
  font-weight: 300;
}

.cf7-contact-form input:focus,
.cf7-contact-form textarea:focus {
  border-bottom-color: #8f8f8f;
  outline: none;
  box-shadow: none;
}

.cf7-contact-form input[type="submit"] {
  min-width: 280px;
  height: 32px;
  border: 0;
  border-radius: 0;
  background: var(--brand-color);
  color: #ffffff;
  font-family: var(--font-body);
  font-size: 0.95rem;
  cursor: pointer;
  transition: opacity 0.25s ease;
  padding: 0.5rem;
}

.cf7-contact-form input[type="submit"]:hover,
.cf7-contact-form input[type="submit"]:focus {
  opacity: 0.85;
}
.contact-form-with-image .wpcf7 form .wpcf7-response-output {
  padding: 0.4em 0.5em 0.2em !important;
}
.contact-form-with-image .cf7-submit-wrap {
  margin-top: 0 !important;
}
@media (min-width: 782px) {
  .contact-form-with-image .wp-block-columns {
    align-items: stretch !important;
  }

  .contact-form-with-image .wp-block-column {
    display: flex;
    flex-direction: column;
  }

  .contact-form-with-image .wp-block-column:first-child > figure,
  .contact-form-with-image .wp-block-column:first-child > .wp-block-image {
    margin: 0;
    height: 100%;
    flex: 1;
  }

  .contact-form-with-image .wp-block-column:first-child > figure img,
  .contact-form-with-image .wp-block-column:first-child > .wp-block-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
  }
}
@media (min-width: 993px) and (max-width: 1279px) {
  .contact-form-with-image .wp-block-column:last-child {
    justify-content: center;
  }
}
@media (min-width: 1280px) {
  .contact-form-with-image .wp-block-columns {
    column-gap: 6rem;
  }
  .contact-form-with-image .wp-block-column:last-child {
    padding: 4rem 0;
  }
}
@media (min-width: 1280px) {
  .contact-form-with-image .wp-block-columns {
    align-items: center !important;
  }
}

/* =============== About Timeline =============== */
.about-timeline {
  position: relative;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 2rem !important;
}

.about-timeline h3 {
  font-family: var(--font-body);
  font-size: clamp(18px, 2.4vw, 20px);
  font-weight: 500;
  margin-bottom: 1em;
}

.about-timeline::before {
  content: "";
  position: absolute;
  top: 33px;
  bottom: 0;
  left: 50%;
  width: 1px;
  background-color: var(--brand-color);
  transform: translateX(-50%);
}

.about-timeline > .wp-block-columns,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns,
.about-timeline .about-timeline-row {
  position: relative;
  align-items: flex-start !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-bottom: 2.6rem;
  column-gap: 6.2rem;
}

.about-timeline > .wp-block-columns::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns::before,
.about-timeline .about-timeline-row::before {
  content: "";
  position: absolute;
  top: 0;
  height: 1px;
  background-color: var(--brand-color);
  transition: transform 0.7s ease, background-color 0.4s ease, height 0.4s ease;
}

.about-timeline > .wp-block-columns.timeline-left::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-left::before,
.about-timeline .about-timeline-row.timeline-left::before {
  right: 50%;
  width: 2.5rem;
  transform-origin: left center;
  transform: scaleX(0);
}

.about-timeline > .wp-block-columns.timeline-right::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-right::before,
.about-timeline .about-timeline-row.timeline-right::before {
  right: 50%;
  width: 2.5rem;
  transform-origin: left center;
  transform: scaleX(0);
}

.about-timeline > .wp-block-columns.is-active::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.is-active::before,
.about-timeline .about-timeline-row.is-active::before {
  transform: scaleX(1);
  height: 1px;
  background-color: var(--brand-color);
}

.about-timeline .wp-block-column {
  min-width: 0;
}

.about-timeline .wp-block-column.timeline-content {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.85s ease, transform 0.85s ease;
}

.about-timeline > .wp-block-columns.is-active .wp-block-column.timeline-content,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.is-active .wp-block-column.timeline-content,
.about-timeline .about-timeline-row.is-active .wp-block-column.timeline-content {
  opacity: 1;
  transform: translateY(0);
}

.about-timeline .wp-block-column.timeline-content > * {
  max-width: 430px;
}

.about-timeline > .wp-block-columns.timeline-left .wp-block-column.timeline-content > *,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-left .wp-block-column.timeline-content > *,
.about-timeline .about-timeline-row.timeline-left .wp-block-column.timeline-content > * {
  margin-right: auto;
  text-align: right;
}

.about-timeline > .wp-block-columns.timeline-right .wp-block-column.timeline-content > *,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-right .wp-block-column.timeline-content > *,
.about-timeline .about-timeline-row.timeline-right .wp-block-column.timeline-content > * {
  margin-left: auto;
  text-align: left;
}

.about-timeline .wp-block-column.timeline-spacer {
  min-height: 1px;
}

.timeline-last-sentence,
.time-last-sentance {
  margin-top: 3rem !important;
  text-align: center;
  opacity: 0;
  transform: translateY(38px);
  pointer-events: none;
}

.timeline-last-sentence.timeline-last-sentence--pending,
.time-last-sentance.timeline-last-sentence--pending {
  transition: opacity 2s ease 1s, transform 2s ease 1s;
}

.timeline-last-sentence.timeline-last-sentence--visible,
.time-last-sentance.timeline-last-sentence--visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

@media (max-width: 900px) {
  .about-timeline::before {
    display: block;
    left: 0.7rem;
    transform: none;
  }

  .about-timeline > .wp-block-columns::before,
  .about-timeline > .wp-block-group__inner-container > .wp-block-columns::before,
  .about-timeline .about-timeline-row::before {
    display: block;
    left: 0.7rem;
    right: auto;
    width: 1.1rem;
    top: 2rem;
    transform: none;
    height: 1px;
    background-color: #cfcfcf;
  }

  .about-timeline > .wp-block-columns.is-active::before,
  .about-timeline > .wp-block-group__inner-container > .wp-block-columns.is-active::before,
  .about-timeline .about-timeline-row.is-active::before {
    height: 1px;
    background-color: #222222;
  }

  .about-timeline > .wp-block-columns,
  .about-timeline > .wp-block-group__inner-container > .wp-block-columns,
  .about-timeline .about-timeline-row {
    padding-top: 1.4rem;
    padding-bottom: 1.4rem;
    padding-left: 3.8rem;
  }

  .about-timeline > .wp-block-columns .wp-block-column.timeline-content > *,
  .about-timeline > .wp-block-group__inner-container > .wp-block-columns .wp-block-column.timeline-content > *,
  .about-timeline .about-timeline-row .wp-block-column.timeline-content > * {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }

  .about-timeline > .wp-block-columns .wp-block-column.timeline-spacer,
  .about-timeline > .wp-block-group__inner-container > .wp-block-columns .wp-block-column.timeline-spacer,
  .about-timeline .about-timeline-row .wp-block-column.timeline-spacer {
    display: none;
  }
  .about-timeline > .wp-block-columns.timeline-left .wp-block-column.timeline-content > *,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-left .wp-block-column.timeline-content > *,
.about-timeline .about-timeline-row.timeline-left .wp-block-column.timeline-content > * {
    text-align: left;
  }
  .timeline-last-sentence,
  .time-last-sentance {
    text-align: left;
  }
}
@media (min-width: 900px) {
  .about-timeline::before {
    top: 12px;
  }
  .about-timeline > .wp-block-columns.is-active::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.is-active::before,
.about-timeline .about-timeline-row.is-active::before {
  top: 12px
}
.about-timeline > .wp-block-columns.timeline-right::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-right::before,
.about-timeline .about-timeline-row.timeline-right::before {
  left: 50%;
  width: 2.5rem;
  transform-origin: center left;
}
.about-timeline > .wp-block-columns.timeline-left::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-left::before,
.about-timeline .about-timeline-row.timeline-left::before {
  right: 50%;
  width: 2.5rem;
  transform-origin: right center;
}
}
@media (min-width: 1060px) {
  .about-timeline > .wp-block-columns.timeline-right::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-right::before,
.about-timeline .about-timeline-row.timeline-right::before,
.about-timeline > .wp-block-columns.timeline-left::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-left::before,
.about-timeline .about-timeline-row.timeline-left::before {
  width: 7%;
}
}
@media (min-width: 1240px) {
  .about-timeline > .wp-block-columns.timeline-right::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-right::before,
.about-timeline .about-timeline-row.timeline-right::before,
.about-timeline > .wp-block-columns.timeline-left::before,
.about-timeline > .wp-block-group__inner-container > .wp-block-columns.timeline-left::before,
.about-timeline .about-timeline-row.timeline-left::before {
  width: 12%;
}
}

/* =============== Tailor Box =============== */
.meet-the-tailors h2 {
  text-align: center;
}
.tailor-box {
  margin-top: 2rem;
}
@media (min-width: 801px) {
  .tailor-box > div {
    display: grid;
    grid-template-columns: minmax(180px, 340px) minmax(0, 1fr);
    column-gap: 2.8rem;
    align-items: stretch;
  }

  .tailor-box > div > .wp-block-image,
  .tailor-box > div > figure {
    margin: 0;
  }

  .tailor-box > div > .wp-block-image img,
  .tailor-box > div > figure img {
    width: 100%;
    height: auto;
    display: block;
  }

  .tailor-box > div > .wp-block-group {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}
@media (min-width: 1024px) {
  .tailor-box > div {
    grid-template-columns: minmax(180px, 460px) minmax(0, 1fr);
    column-gap: 5rem;
  }
}
/* =============== CTA Banner =============== */
.wp-block-cover.cta-banner {
  min-height: clamp(280px, 30vw, 480px) !important;
  padding: clamp(2.2rem, 5vw, 4.2rem) 1rem !important;
  overflow: hidden;
}

.wp-block-cover.cta-banner .wp-block-cover__background {
  background-color: rgba(0, 0, 0, 0.55) !important;
  opacity: 1 !important;
}

.wp-block-cover.cta-banner .wp-block-cover__inner-container {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.wp-block-cover.cta-banner h2,
.wp-block-cover.cta-banner h3 {
  color: #FFFFFF;
  margin-bottom: 0.9rem;
}

.wp-block-cover.cta-banner p {
  color: rgba(255, 255, 255, 0.92);
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}

.wp-block-cover.cta-banner .wp-block-button {
  margin-top: 1.5rem;
}

.wp-block-cover.cta-banner .wp-block-button__link {
  min-width: 280px;
  height: 32px;
  padding: 0 1.5rem;
  border: 0;
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #FFFFFF;
  color: var(--text-color);
}

.wp-block-cover.cta-banner .wp-block-button__link:hover,
.wp-block-cover.cta-banner .wp-block-button__link:focus {
  background-color: var(--brand-color);
  color: #FFFFFF;
}

main:has(> article > .wp-block-cover.cta-banner:last-child) ~ .site-footer {
  margin-top: 0;
}

main:has(> article > .wp-block-cover.cta-banner:nth-last-child(2)):has(> article > p:last-child:is(:empty, :has(br:only-child))) ~ .site-footer {
  margin-top: 0;
}

/* =============== Client Showcase Slider =============== */
.about-our-clients h2 {
  margin-bottom: 1.75rem;
}
.wp-block-gallery.our-clients-slider.client-slider {
  --client-visible: 5;

  overflow: hidden;
  display: block !important;
}

@media (max-width: 1439px) {
  .wp-block-gallery.our-clients-slider.client-slider {
    --client-visible: 4;
  }
}

.wp-block-gallery.our-clients-slider.client-slider .client-slider__track {
  display: flex;
  flex-wrap: nowrap;
  margin-left: -0.75rem;
  margin-right: -0.75rem;
  will-change: transform;
}

.wp-block-gallery.our-clients-slider.client-slider .client-slider__item {
  flex: 0 0 calc(100% / var(--client-visible));
  max-width: calc(100% / var(--client-visible));
  box-sizing: border-box;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  margin: 0 !important;
  position: relative;
  overflow: hidden;
}

.wp-block-gallery.our-clients-slider.client-slider .client-slider__item img {
  display: block;
  width: 100%;
  height: auto;
}

.wp-block-gallery.our-clients-slider.client-slider .client-slider__item figcaption {
  display: none !important;
}

.wp-block-gallery.our-clients-slider.client-slider .client-slider__name {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0 0.75rem;
  padding: 3.8rem 1.25rem 1rem;
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: 1.25rem;
  text-align: right;
  line-height: 1.2;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0), #000000);
  pointer-events: none;
}

@media (max-width: 1024px) {
  .wp-block-gallery.our-clients-slider.client-slider {
    --client-visible: 3;
  }
}

@media (max-width: 700px) {
  .wp-block-gallery.our-clients-slider.client-slider {
    --client-visible: 2;
  }
}

@media (min-width: 782px) {
  .left-image-right-text.wp-block-columns,
  .left-text-right-image.wp-block-columns,
  .left-image-right-text .wp-block-columns,
  .left-text-right-image .wp-block-columns {
    align-items: center;
  }

  .left-image-right-text.wp-block-columns > .wp-block-column,
  .left-text-right-image.wp-block-columns > .wp-block-column,
  .left-image-right-text .wp-block-columns > .wp-block-column,
  .left-text-right-image .wp-block-columns > .wp-block-column {
    display: flex;
    flex-direction: column;
    justify-content: center;
    row-gap: 2rem;
    max-width: 720px;
  }
}

.left-image-right-text .wp-block-column > figure,
.left-text-right-image .wp-block-column > figure,
.left-image-right-text .wp-block-column > .wp-block-image,
.left-text-right-image .wp-block-column > .wp-block-image {
  width: 100%;
  max-height: 885px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-left: 0;
  margin-right: 0;
}

.left-image-right-text .wp-block-column > figure img,
.left-text-right-image .wp-block-column > figure img,
.left-image-right-text .wp-block-column > .wp-block-image img,
.left-text-right-image .wp-block-column > .wp-block-image img {
  display: block;
  width: 100%;
  max-height: 935px;
  height: auto;
  object-fit: cover;
  object-position: center center;
}

@media (max-width: 781px) {
  .left-image-right-text.wp-block-columns,
  .left-text-right-image.wp-block-columns,
  .left-image-right-text .wp-block-columns,
  .left-text-right-image .wp-block-columns {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
  }

  .left-image-right-text.wp-block-columns > .wp-block-column,
  .left-text-right-image.wp-block-columns > .wp-block-column,
  .left-image-right-text .wp-block-columns > .wp-block-column,
  .left-text-right-image .wp-block-columns > .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  .left-image-right-text.wp-block-columns > .wp-block-column:has(figure),
  .left-image-right-text.wp-block-columns > .wp-block-column:has(.wp-block-image),
  .left-text-right-image.wp-block-columns > .wp-block-column:has(figure),
  .left-text-right-image.wp-block-columns > .wp-block-column:has(.wp-block-image),
  .left-image-right-text .wp-block-columns > .wp-block-column:has(figure),
  .left-image-right-text .wp-block-columns > .wp-block-column:has(.wp-block-image),
  .left-text-right-image .wp-block-columns > .wp-block-column:has(figure),
  .left-text-right-image .wp-block-columns > .wp-block-column:has(.wp-block-image) {
    order: 1;
  }

  .left-image-right-text.wp-block-columns > .wp-block-column:not(:has(figure)):not(:has(.wp-block-image)),
  .left-text-right-image.wp-block-columns > .wp-block-column:not(:has(figure)):not(:has(.wp-block-image)),
  .left-image-right-text .wp-block-columns > .wp-block-column:not(:has(figure)):not(:has(.wp-block-image)),
  .left-text-right-image .wp-block-columns > .wp-block-column:not(:has(figure)):not(:has(.wp-block-image)) {
    order: 2;
  }
}

@media (min-width: 1080px) {
  .left-image-right-text .wp-block-columns,
  .left-text-right-image .wp-block-columns {
    column-gap: 50px;
  }
  .left-image-right-text.wp-block-columns > .wp-block-column,
  .left-text-right-image.wp-block-columns > .wp-block-column,
  .left-image-right-text .wp-block-columns > .wp-block-column,
  .left-text-right-image .wp-block-columns > .wp-block-column {
    row-gap: 2.5rem;
  }
}
@media (min-width: 1580px) {
  .left-image-right-text .wp-block-columns,
  .left-text-right-image .wp-block-columns {
    column-gap: 100px;
  }
}

/* =============== Three Image Gallery =============== */
.wp-block-gallery.three-image-gallery {
  --wp--style--unstable-gallery-gap: 0px;
  --gallery-block--gutter-size: 0px;
  margin: 75px 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 0 !important;
  row-gap: 0 !important;
  gap: 0 !important;
}

.wp-block-gallery.three-image-gallery:has(~ .wp-block-gallery.three-image-gallery) {
  margin-bottom: 0 !important;
}

.wp-block-gallery.three-image-gallery ~ .wp-block-gallery.three-image-gallery {
  margin-top: 0 !important;
}
.three-image-gallery.no-margin-bottom {
  margin-bottom: 0 !important;
}

.wp-block-gallery.three-image-gallery > .wp-block-image,
.wp-block-gallery.three-image-gallery > .blocks-gallery-item {
  margin: 0 !important;
  padding: 0 !important;
}

.wp-block-gallery.three-image-gallery figure {
  margin: 0 !important;
}

.wp-block-gallery.three-image-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image) {
  width: 100% !important;
  max-width: none !important;
  flex-basis: auto !important;
}

.wp-block-gallery.three-image-gallery img {
  display: block;
  width: 100%;
  height: auto;
}

@media (min-width: 1080px) {
  .wp-block-gallery.three-image-gallery {
    margin-top: 100px !important;
    margin-bottom: 100px !important;
  }

  .wp-block-gallery.three-image-gallery:has(~ .wp-block-gallery.three-image-gallery) {
    margin-bottom: 0 !important;
  }

  .wp-block-gallery.three-image-gallery ~ .wp-block-gallery.three-image-gallery {
    margin-top: 0 !important;
  }
  .three-image-gallery.no-margin-bottom {
    margin-bottom: 0 !important;
  }
}

@media (max-width: 1079px) {
  .wp-block-gallery.three-image-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wp-block-gallery.three-image-gallery > .wp-block-image:nth-child(3),
  .wp-block-gallery.three-image-gallery > .blocks-gallery-item:nth-child(3) {
    grid-column: 1 / -1;
  }
}

/* =============== Blog 3 Image Gallery =============== */
.wp-block-gallery.blog-3-image-gallery,
.single-blog-content .wp-block-gallery.blog-3-image-gallery {
  --wp--style--unstable-gallery-gap: 0px;
  --gallery-block--gutter-size: 0px;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 0 !important;
  row-gap: 0 !important;
  gap: 0 !important;
  margin-top: 5rem;
  margin-bottom: 5rem;
}

.wp-block-gallery.blog-3-image-gallery > .wp-block-image,
.wp-block-gallery.blog-3-image-gallery > .blocks-gallery-item,
.single-blog-content .wp-block-gallery.blog-3-image-gallery > .wp-block-image,
.single-blog-content .wp-block-gallery.blog-3-image-gallery > .blocks-gallery-item {
  margin: 0 !important;
  padding: 0 !important;
}

.wp-block-gallery.blog-3-image-gallery figure,
.single-blog-content .wp-block-gallery.blog-3-image-gallery figure {
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

.wp-block-gallery.blog-3-image-gallery img,
.single-blog-content .wp-block-gallery.blog-3-image-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

@media (max-width: 810px) and (min-width: 451px) {
  .wp-block-gallery.blog-3-image-gallery,
  .single-blog-content .wp-block-gallery.blog-3-image-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wp-block-gallery.blog-3-image-gallery > .wp-block-image:nth-child(1),
  .wp-block-gallery.blog-3-image-gallery > .blocks-gallery-item:nth-child(1),
  .single-blog-content .wp-block-gallery.blog-3-image-gallery > .wp-block-image:nth-child(1),
  .single-blog-content .wp-block-gallery.blog-3-image-gallery > .blocks-gallery-item:nth-child(1) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 450px) {
  .wp-block-gallery.blog-3-image-gallery,
  .single-blog-content .wp-block-gallery.blog-3-image-gallery {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* =============== Process with Number =============== */
.process-with-number,
.wp-block-columns.process-with-number {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  counter-reset: process-step;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  row-gap: 2.5rem;
  column-gap: 3rem;
  margin-top: 3rem;
  margin-bottom: 50px !important;
}

.process-with-number > .wp-block-column {
  position: relative;
  background-color: var(--grey-1);
  padding: clamp(2.5rem, 4vw, 3rem) clamp(1.5rem, 2.2vw, 2rem);
  margin: 0 !important;
  flex-basis: auto !important;
  width: auto !important;
}

.process-with-number > .wp-block-column::before {
  counter-increment: process-step;
  content: counter(process-step);
  position: absolute;
  top: -3.6rem;
  left: -1.8rem;
  font-family: "Sirivennela", sans-serif;
  font-size: 170px;
  font-weight: 200;
  font-style: italic;
  line-height: 1;
  color: #dddddd;
  pointer-events: none;
}

.process-with-number > .wp-block-column h2 {
  font-size: clamp(1.35rem, 2.4vw, 1.45rem);
  text-align: center;
  margin-bottom: 0.4rem;
  z-index: 10;
}

.process-with-number > .wp-block-column h2 + p {
  text-align: center;
  font-size: 1.1rem;
  font-weight: 500;
  margin-top: 0;
  margin-bottom: 1.1rem;
}

@media (min-width: 720px) {
  .process-with-number,
  .wp-block-columns.process-with-number {
    --process-step-offset: 3.8rem;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: clamp(3rem, 2.6vw, 5rem);
    row-gap: calc(2rem + var(--process-step-offset));
    align-items: start;
    margin-bottom: 175px !important;
  }

  .process-with-number > .wp-block-column:nth-child(even) {
    transform: translateY(var(--process-step-offset));
  }

  .process-with-number > .wp-block-column:nth-child(odd) {
    transform: translateY(0);
  }
}
@media (min-width: 1280px) {
  .process-with-number,
  .wp-block-columns.process-with-number {
    column-gap: 5rem;

  }
  .pricing-table{
    padding: 100px 0;
  }
  section + .pricing-table {
    padding-top: 0;
  }
  section + .pricing-table.has-background {
    padding-top: 100px;
    margin-top: 0;
    margin-bottom: 100px;
  }

}
/* =============== Pricing Table =============== */
.pricing-table {
  padding: 75px 0;
}
section + .pricing-table {
  padding-top: 0;
}
section + .pricing-table.has-background {
  padding-top: 75px;
  margin-bottom: 75px;
}
.pricing-table .wp-block-table {
  --pricing-table-side-inset: clamp(0.75rem, 4vw, 3rem);
  padding-left: var(--pricing-table-side-inset);
  padding-right: var(--pricing-table-side-inset);
}

.pricing-table .wp-block-table table {
  width: 100%;
  min-width: 0;
  table-layout: auto;
  margin-top: 1rem;
}

.pricing-table .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background-color: var(--grey-1);
}

.pricing-table .wp-block-table.is-style-stripes tbody tr:nth-child(even) {
  background-color: #FFFFFF;
}

.pricing-table .wp-block-table table th:nth-child(1),
.pricing-table .wp-block-table table td:nth-child(1),
.pricing-table .wp-block-table table th:nth-child(5),
.pricing-table .wp-block-table table td:nth-child(5) {
  width: 5%;
}

.pricing-table .wp-block-table table th:nth-child(2),
.pricing-table .wp-block-table table td:nth-child(2) {
  width: auto;
}
.pricing-table .wp-block-table table th:nth-child(3),
.pricing-table .wp-block-table table td:nth-child(3) {
  padding-right: 0;
}
.pricing-table .wp-block-table table th:nth-child(3),
.pricing-table .wp-block-table table td:nth-child(3),
.pricing-table .wp-block-table table th:nth-child(4),
.pricing-table .wp-block-table table td:nth-child(4) {
  width: 1%;
  white-space: nowrap;
}
.wp-block-table.is-style-stripes {
  border-bottom: none !important;
}
.pricing-table + .gallery-and-text-block,
.pricing-table + .gallery-and-text-block .three-image-gallery {
  margin-top: 0 !important;
}
@media (min-width: 720px) {
  .pricing-table .wp-block-table table th:nth-child(1),
.pricing-table .wp-block-table table td:nth-child(1),
.pricing-table .wp-block-table table th:nth-child(5),
.pricing-table .wp-block-table table td:nth-child(5) {
  width: 10%;
}

}
.gallery-and-text-block .has-brandcolour-background-color {
  padding: 75px 0;
}
@media (min-width: 1080px) {
  .gallery-and-text-block .has-brandcolour-background-color {
    padding: 125px 0;
  }

}

/* =============== WooCommerce: shared theming for Shop / Cart / Checkout / My Account =============== */

/* Page wrapper: Cart / Checkout / My Account use the theme's .container, with
 * an extra .mccann-wc-container modifier to apply vertical rhythm and a more
 * comfortable max-width for forms/tables. */
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account {
  font-family: var(--font-body);
  color: var(--text-color);
}
.mccann-wc-container {
  max-width: 1380px;
  padding-top: 2rem;
  padding-bottom: 4rem;
}
.woocommerce-account .woocommerce,
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart {
  width: calc(100% - 40px) !important;
  max-width: 1760px !important;
  margin: 0 auto !important;
}
@media (min-width: 1280px) {
  .mccann-wc-container {
    padding-top: 3rem;
    padding-bottom: 5rem;
  }
}

/* Page headings (page.php uses .content-title; .entry-title kept as a safety net) */
body.woocommerce-cart .content-title,
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .content-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-account .content-title,
body.woocommerce-account .entry-title,
body.woocommerce .woocommerce h1,
body.woocommerce .woocommerce h2,
body.woocommerce .woocommerce h3 {
  font-family: var(--font-heading);
  font-weight: 500;
  color: var(--text-color);
}
body.woocommerce-cart .content-title,
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .content-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-account .content-title,
body.woocommerce-account .entry-title {
  font-size: clamp(1.25rem, 1.5rem, 2rem);
  text-align: center;
  width: calc(100% - 40px);
  max-width: 1760px;
  /* background-color: var(--grey-1); */
  margin: 1rem auto 0;
  /* padding: 3rem 0; */
}

/* Buttons: force every WC .button (primary, secondary, alt) into the brand primary style */
body.woocommerce .woocommerce .button,
body.woocommerce .woocommerce-page .button,
body.woocommerce .woocommerce a.button,
body.woocommerce .woocommerce button.button,
body.woocommerce .woocommerce input.button,
body.woocommerce .woocommerce a.button.alt,
body.woocommerce .woocommerce button.button.alt,
body.woocommerce .woocommerce input.button.alt,
body.woocommerce .woocommerce #respond input#submit,
body.woocommerce .woocommerce #place_order,
body.woocommerce .woocommerce .checkout-button,
body.woocommerce .woocommerce-MyAccount-content .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0.55rem 1.75rem;
  margin: 0;
  background-color: var(--brand-color);
  color: #FFFFFF;
  border: 1px solid var(--brand-color);
  border-radius: 0;
  text-transform: capitalize;
  text-decoration: none;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: 0.5px;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease, opacity 0.3s ease;
}
body.woocommerce .woocommerce .button:hover,
body.woocommerce .woocommerce a.button:hover,
body.woocommerce .woocommerce button.button:hover,
body.woocommerce .woocommerce input.button:hover,
body.woocommerce .woocommerce a.button.alt:hover,
body.woocommerce .woocommerce button.button.alt:hover,
body.woocommerce .woocommerce input.button.alt:hover,
body.woocommerce .woocommerce #place_order:hover,
body.woocommerce .woocommerce .checkout-button:hover,
body.woocommerce .woocommerce-MyAccount-content .button:hover {
  background-color: var(--brand-color-hover);
  border-color: var(--brand-color-hover);
  color: #FFFFFF;
  text-decoration: none;
}
body.woocommerce .woocommerce .button:disabled,
body.woocommerce .woocommerce .button.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.wc-block-components-button__text {
  color: var(--text-color);
  letter-spacing: 0.5px;
  text-transform: capitalize;
}
.wc-block-cart__submit {
  background-color: var(--brand-color) !important;
  transition: 0.6s;
}
.wc-block-cart__submit:hover {
  opacity: 0.7;
}
.wc-block-cart__submit .wc-block-components-button__text {
  color: #FFFFFF !important;
  font-weight: 500;
  padding-top: 3px;
  text-transform: capitalize;
}
.wc-block-cart__submit-button .wc-block-components-button__text:link,
.wc-block-cart__submit-button .wc-block-components-button__text:visited {
  color: var(--brand-color) !important;
}
.wc-block-cart__submit-button .wc-block-components-button__text:hover {
  opacity: 0.7;
}
.wc-block-cart__submit-button .wc-block-components-button__text:active,
.wc-block-cart__submit-button .wc-block-components-button__text:focus {
  color: var(--brand-color) !important;
}

/* Form fields: inputs, selects, textareas, labels */
body.woocommerce .woocommerce form .form-row label,
body.woocommerce .woocommerce-page form .form-row label,
body.woocommerce .woocommerce-form-row label {
  display: block;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.3px;
  color: var(--text-color);
  margin-bottom: 0.4rem;
}
body.woocommerce .woocommerce form .form-row input.input-text,
body.woocommerce .woocommerce form .form-row textarea,
body.woocommerce .woocommerce form .form-row select,
body.woocommerce-page form .form-row input.input-text,
body.woocommerce-page form .form-row textarea,
body.woocommerce-page form .form-row select,
body.woocommerce .woocommerce input[type="text"],
body.woocommerce .woocommerce input[type="email"],
body.woocommerce .woocommerce input[type="tel"],
body.woocommerce .woocommerce input[type="password"],
body.woocommerce .woocommerce input[type="number"],
body.woocommerce .woocommerce input[type="search"],
body.woocommerce .woocommerce textarea,
body.woocommerce .woocommerce select {
  width: 100%;
  padding: 0.7rem 0.85rem;
  border: 1px solid #BBBBBB;
  border-radius: 0;
  background-color: #FFFFFF;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.4;
  color: var(--text-color);
  box-shadow: none;
  transition: border-color 0.2s ease;
}
body.woocommerce .woocommerce form .form-row input.input-text:focus,
body.woocommerce .woocommerce form .form-row textarea:focus,
body.woocommerce .woocommerce form .form-row select:focus,
body.woocommerce .woocommerce input[type="text"]:focus,
body.woocommerce .woocommerce input[type="email"]:focus,
body.woocommerce .woocommerce input[type="tel"]:focus,
body.woocommerce .woocommerce input[type="password"]:focus,
body.woocommerce .woocommerce input[type="number"]:focus,
body.woocommerce .woocommerce textarea:focus,
body.woocommerce .woocommerce select:focus {
  outline: none;
  border-color: var(--brand-color);
}
body.woocommerce .woocommerce form .form-row {
  margin: 0 0 1rem;
  padding: 0;
}
body.woocommerce .woocommerce form .form-row-first,
body.woocommerce .woocommerce form .form-row-last {
  width: 49%;
}
body.woocommerce .woocommerce form .form-row.woocommerce-invalid input.input-text,
body.woocommerce .woocommerce form .form-row.woocommerce-invalid select {
  border-color: #C24545;
}
body.woocommerce .required {
  color: #C24545;
  text-decoration: none;
}

/* Select2 (used by checkout country/state) */
body.woocommerce .select2-container--default .select2-selection--single {
  height: auto;
  border: 1px solid #BBBBBB;
  border-radius: 0;
  background-color: #FFFFFF;
}
body.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0.7rem 0.85rem;
  line-height: 1.4;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--text-color);
}
body.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
  right: 0.5rem;
}

/* Quantity input */
body.woocommerce .woocommerce .quantity .qty,
body.woocommerce-page .quantity .qty {
  width: 64px;
  min-width: 64px;
  padding: 0.45rem 0.55rem;
  text-align: center;
  border: 1px solid #BBBBBB;
  border-radius: 0;
  background-color: #FFFFFF;
  font-family: var(--font-body);
  font-size: 14px;
}

/* Notices (success, info, error) */
body.woocommerce .woocommerce-message,
body.woocommerce .woocommerce-info,
body.woocommerce .woocommerce-error,
body.woocommerce-page .woocommerce-message,
body.woocommerce-page .woocommerce-info,
body.woocommerce-page .woocommerce-error {
  background: #FFFFFF;
  border: 1px solid #DDDDDD;
  border-left: 3px solid var(--brand-color);
  border-radius: 0;
  /* padding: 0.9rem 1.1rem 0.9rem 1.1rem; */
  margin: 0 0 1.5rem;
  color: var(--text-color);
  font-family: var(--font-body);
  font-size: 14px;
  list-style: none;
}
.woocommerce-info::before {
  color: var(--brand-color) !important;
}
body.woocommerce .woocommerce-error {
  border-left-color: #C24545;
}
body.woocommerce .woocommerce-message::before,
body.woocommerce .woocommerce-info::before,
body.woocommerce .woocommerce-error::before {
  color: var(--brand-color);
  top: 1rem;
}
body.woocommerce .woocommerce-message a.button,
body.woocommerce .woocommerce-info a.button {
  margin-left: 1rem;
  min-height: 32px;
  padding: 0.4rem 1rem;
  font-size: 0.85rem;
}

/* Shop tables (cart, checkout review, order tables) */
body.woocommerce .shop_table,
body.woocommerce-page .shop_table {
  border: 0;
  border-collapse: collapse;
  border-radius: 0;
  width: 100%;
  font-family: var(--font-body);
  font-size: 14px;
}
body.woocommerce .shop_table th,
body.woocommerce-page .shop_table th {
  background: transparent;
  border-bottom: 1px solid var(--brand-color);
  padding: 0.9rem 0.6rem;
  font-family: var(--font-body);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-size: 13px;
  color: var(--text-color);
}
body.woocommerce .shop_table td,
body.woocommerce-page .shop_table td {
  border-top: 0;
  border-bottom: 1px solid #E4E4E4;
  padding: 1rem 0.6rem;
  vertical-align: middle;
  background: transparent;
}
body.woocommerce .shop_table tfoot td,
body.woocommerce .shop_table tfoot th {
  font-weight: 500;
}
body.woocommerce .shop_table .product-thumbnail img {
  width: 72px;
  height: auto;
}
body.woocommerce .shop_table .product-name a {
  color: var(--text-color);
  text-decoration: none;
  font-weight: 400;
}
body.woocommerce .shop_table .product-name a:hover {
  text-decoration: underline;
}
body.woocommerce .shop_table .product-remove a.remove {
  width: 22px;
  height: 22px;
  line-height: 20px;
  font-size: 18px;
  font-weight: 300;
  color: #888888 !important;
  border: 1px solid #CCCCCC;
  border-radius: 50%;
  background: #FFFFFF !important;
  text-align: center;
}
body.woocommerce .shop_table .product-remove a.remove:hover {
  background: var(--brand-color) !important;
  color: #FFFFFF !important;
  border-color: var(--brand-color);
}

/* =============== Cart page =============== */
body.woocommerce-cart .woocommerce-cart-form {
  margin-bottom: 2.5rem;
}
body.woocommerce-cart .woocommerce-cart-form .actions {
  padding: 1.25rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
}
body.woocommerce-cart .woocommerce-cart-form .coupon {
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
}
body.woocommerce-cart .woocommerce-cart-form .coupon label {
  display: none;
}
body.woocommerce-cart .woocommerce-cart-form .coupon input.input-text {
  width: auto;
  min-width: 220px;
}
body.woocommerce-cart .cart-collaterals {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 900px) {
  body.woocommerce-cart .cart-collaterals {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
  body.woocommerce-cart .cart-collaterals .cross-sells {
    order: 1;
  }
  body.woocommerce-cart .cart-collaterals .cart_totals {
    order: 2;
  }
}
body.woocommerce-cart .cart_totals {
  background: var(--grey-1);
  border: 1px solid var(--grey-3);
  padding: 1.5rem;
}
body.woocommerce-cart .cart_totals h2 {
  font-family: var(--font-heading);
  font-size: clamp(20px, 2vw, 26px);
  margin: 0 0 1rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--grey-3);
}
body.woocommerce-cart .cart_totals .shop_table th {
  border-bottom: 0;
  padding: 0.55rem 0;
}
body.woocommerce-cart .cart_totals .shop_table td {
  border-bottom: 0;
  padding: 0.55rem 0;
  text-align: right;
}
body.woocommerce-cart .cart_totals .order-total td,
body.woocommerce-cart .cart_totals .order-total th {
  border-top: 1px solid var(--grey-3);
  font-size: 1.05rem;
  font-weight: 500;
  padding-top: 0.9rem;
}
body.woocommerce-cart .wc-proceed-to-checkout {
  padding: 1rem 0 0;
}
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  width: 100%;
}
body.woocommerce-cart .cross-sells h2 {
  font-family: var(--font-heading);
  font-size: clamp(20px, 2vw, 26px);
  margin: 0 0 1rem;
  padding-bottom: 0;
}

/* Empty cart */
body.woocommerce-cart .cart-empty.woocommerce-info {
  text-align: center;
  padding: 2.5rem 1.5rem;
  border: 1px solid var(--grey-3);
  border-left-width: 1px;
}
body.woocommerce-cart .cart-empty.woocommerce-info::before {
  display: none;
}
body.woocommerce-cart .return-to-shop {
  text-align: center;
  margin-top: 1rem;
}

/* =============== Checkout page =============== */
body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout .woocommerce-form-login-toggle {
  margin-bottom: 1rem;
}
body.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
@media (min-width: 980px) {
  body.woocommerce-checkout form.checkout {
    grid-template-columns: 1.4fr 1fr;
  }
  body.woocommerce-checkout form.checkout #customer_details {
    grid-column: 1;
  }
  body.woocommerce-checkout form.checkout #order_review_heading,
  body.woocommerce-checkout form.checkout #order_review {
    grid-column: 2;
  }
}
body.woocommerce-checkout #customer_details .col2-set {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 720px) {
  body.woocommerce-checkout #customer_details .col2-set {
    grid-template-columns: 1fr 1fr;
  }
}
body.woocommerce-checkout #customer_details .col2-set .col-1,
body.woocommerce-checkout #customer_details .col2-set .col-2 {
  width: 100%;
  max-width: none;
  float: none;
  padding: 0;
}
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3,
body.woocommerce-checkout #order_review_heading {
  font-family: var(--font-heading);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 500;
  margin: 0 0 1rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--grey-3);
}
body.woocommerce-checkout #order_review {
  background: var(--grey-1);
  border: 1px solid var(--grey-3);
  padding: 1.5rem;
}
body.woocommerce-checkout #payment {
  background: transparent;
  border-radius: 0;
}
body.woocommerce-checkout #payment ul.payment_methods {
  border-bottom: 1px solid var(--grey-3);
  padding: 0 0 1rem;
  margin: 0 0 1rem;
}
body.woocommerce-checkout #payment ul.payment_methods li {
  list-style: none;
  margin: 0 0 0.4rem;
  font-size: 14px;
}
body.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
  margin-right: 0.5rem;
}
body.woocommerce-checkout #payment div.payment_box {
  background: #FFFFFF;
  border: 1px solid var(--grey-3);
  border-radius: 0;
  margin: 0.4rem 0 0;
  font-size: 13px;
}
body.woocommerce-checkout #payment div.payment_box::before {
  display: none;
}
body.woocommerce-checkout #payment .place-order {
  padding: 0;
  margin: 0;
}
body.woocommerce-checkout #payment #place_order {
  width: 100%;
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  margin-bottom: 1rem;
  font-size: 13px;
}

/* =============== My Account page =============== */
body.woocommerce-account .woocommerce > h2,
body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3 {
  font-family: var(--font-heading);
  font-weight: 500;
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
}
body.woocommerce-account .woocommerce > h2 {
  font-size: clamp(1rem, 1.1rem, 1.2rem) !important;
  margin-bottom: 0;
}
.woocommerce-MyAccount-content p {
  margin-bottom: 1rem;
}

/* Login / Register (logged out) */
body.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
body.woocommerce-account:not(.logged-in) .woocommerce > div.u-columns {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  max-width: 920px;
  margin: 0 auto;
}
@media (min-width: 760px) {
  body.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
  body.woocommerce-account:not(.logged-in) .woocommerce > div.u-columns {
    grid-template-columns: 1fr 1fr;
  }
}
body.woocommerce-account .u-column1,
body.woocommerce-account .u-column2 {
  width: 100%;
  max-width: none;
  float: none;
  padding: 1.5rem;
  background: var(--grey-1);
  border: 1px solid var(--grey-3);
}
body.woocommerce-account .u-column1 h2,
body.woocommerce-account .u-column2 h2 {
  width: 100%;
  font-size: clamp(1rem, 1.1rem, 1.2rem);
  text-align: left;
  margin: 0 0 1rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--grey-3);
}
.woocommerce-Button, .woocommerce-info .button {
  font-family: var(--font-body) !important;
  text-transform: capitalize !important;
  font-weight: 400 !important;
  letter-spacing: 0.5px !important;
  background-color: var(--brand-color) !important;
  color: #FFFFFF !important;
  border-color: var(--brand-color) !important;
  padding-top: 0.65rem !important;
  padding-bottom: 0.5rem !important;
}
body.woocommerce-account .woocommerce-form__label-for-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 13px;
}
body.woocommerce-account .lost_password a,
body.woocommerce-account .woocommerce-privacy-policy-text a {
  color: var(--link-color);
  text-decoration: underline;
}

/* Logged-in dashboard */
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
  width: 100%;
  float: none;
}
@media (min-width: 860px) {
  body.woocommerce-account.logged-in .woocommerce {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 2.5rem;
    align-items: start;
  }
  body.woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
  }
  body.woocommerce-account .woocommerce-MyAccount-navigation {
    grid-column: 1;
  }
  body.woocommerce-account .woocommerce-MyAccount-content {
    grid-column: 2;
  }
}
@media (max-width: 860px) {
  body.woocommerce-account .woocommerce-MyAccount-content {
    margin-top: 2rem;
  }
  
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--grey-3);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li {
  margin: 0;
  border-bottom: 1px solid var(--grey-3);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 0.85rem 0.4rem;
  color: var(--text-color);
  text-decoration: none;
  font-size: 14px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  transition: color 0.2s ease;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  color: var(--brand-color);
  font-weight: 500;
}
body.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
  margin-top: 0;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address {
  background: var(--grey-1);
  border: 1px solid var(--grey-3);
  padding: 1.25rem;
  margin-bottom: 1rem;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title h3 {
  margin: 0;
  padding: 0;
  font-size: 1.1rem;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
  font-size: 0.9rem;
  letter-spacing: 0.5px;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit:link,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit:visited {
  color: var(--brand-color);
  text-decoration: underline;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit:hover {
  opacity: 0.7;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit:active,
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address-title .edit:focus {
  color: var(--brand-color);
  text-decoration: underline;
}
.woocommerce-EditAccountForm .button {
  margin-top: 1rem !important;
}

/* =============== Shop archive polish =============== */


body.woocommerce.archive .woocommerce-result-count,
body.woocommerce-shop .woocommerce-result-count {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--text-color-grey);
  margin: 0 0 1rem;
}
body.woocommerce span.onsale,
body.woocommerce-page span.onsale {
  background: var(--brand-color);
  color: #FFFFFF;
  border-radius: 0;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  padding: 0.25rem 0.6rem;
  min-height: 0;
  line-height: 1.2;
  top: 12px;
  left: 12px;
}
body.woocommerce nav.woocommerce-pagination ul,
body.woocommerce-page nav.woocommerce-pagination ul {
  border: 0;
  display: inline-flex;
  gap: 0.25rem;
  margin-top: 2rem;
}
body.woocommerce nav.woocommerce-pagination ul li {
  border: 0;
  margin: 0;
}
body.woocommerce nav.woocommerce-pagination ul li a,
body.woocommerce nav.woocommerce-pagination ul li span {
  min-width: 36px;
  height: 36px;
  padding: 0 0.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--grey-3);
  background: #FFFFFF;
  color: var(--text-color);
  font-family: var(--font-body);
  font-size: 14px;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}
body.woocommerce nav.woocommerce-pagination ul li a:hover,
body.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--brand-color);
  border-color: var(--brand-color);
  color: #FFFFFF;
}

/* Mobile: collapse shop_table rows to stacked cards on small screens */
@media (max-width: 720px) {
  body.woocommerce-cart .shop_table.cart thead {
    display: none;
  }
  body.woocommerce-cart .shop_table.cart,
  body.woocommerce-cart .shop_table.cart tbody,
  body.woocommerce-cart .shop_table.cart tr,
  body.woocommerce-cart .shop_table.cart td {
    display: block;
    width: 100%;
  }
  body.woocommerce-cart .shop_table.cart tr.cart_item {
    border: 1px solid var(--grey-3);
    padding: 0.75rem;
    margin-bottom: 1rem;
  }
  body.woocommerce-cart .shop_table.cart tr.cart_item td {
    border: 0;
    padding: 0.35rem 0;
    text-align: left;
  }
  body.woocommerce-cart .shop_table.cart tr.cart_item td::before {
    content: attr(data-title) ": ";
    font-weight: 500;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.5px;
    margin-right: 0.5rem;
  }
  body.woocommerce-cart .shop_table.cart tr.cart_item td.product-thumbnail::before,
  body.woocommerce-cart .shop_table.cart tr.cart_item td.product-remove::before {
    display: none;
  }
  body.woocommerce-cart .woocommerce-cart-form .coupon input.input-text {
    min-width: 0;
    flex: 1;
  }
}

/* =============== WooCommerce Blocks: product grid (.wc-block-grid__products) =============== */
/* WooCommerce Blocks default CSS uses display:flex with `.wc-block-grid.has-N-columns
 * .wc-block-grid__product { flex: 1 0 25%; }` rules at high specificity (and sometimes
 * loads after the theme). We need to overrule that with !important so Grid wins,
 * otherwise items size to their content and a missing 300x300 thumbnail (like the 4th
 * product before its thumbnail is regenerated) blows out the row. */
.wc-block-grid .wc-block-grid__products,
ul.wc-block-grid__products {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.woocommerce-cart .wc-block-grid__products {
  background-color: var(--grey-1);
  padding: 1.5rem;
}
.woocommerce-cart .wc-block-grid__product {
  background-color: #ffffff;
  padding-top: 0.5rem;
}
@media (max-width: 909px) {
  body.woocommerce-cart .wc-block-grid .wc-block-grid__products,
  body.woocommerce-cart ul.wc-block-grid__products {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 719px) {
  body.woocommerce-cart .wc-block-grid .wc-block-grid__products,
  body.woocommerce-cart ul.wc-block-grid__products {
    grid-template-columns: 1fr !important;
  }
  .wc-block-grid__product {
    padding-top: 0.5rem !important;
  }
}

@media (min-width: 720px) {
  .wc-block-grid .wc-block-grid__products,
  ul.wc-block-grid__products {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1024px) {
  .wc-block-grid .wc-block-grid__products,
  ul.wc-block-grid__products {
    grid-template-columns: repeat(4, 1fr);
  }
  /* Respect explicit column-count classes on the parent block or the list itself. */
  .wc-block-grid.has-1-columns .wc-block-grid__products,
  .wc-block-grid.columns-1 .wc-block-grid__products,
  .wc-block-grid__products.has-1-columns,
  .wc-block-grid__products.columns-1 {
    grid-template-columns: 1fr;
  }
  .wc-block-grid.has-2-columns .wc-block-grid__products,
  .wc-block-grid.columns-2 .wc-block-grid__products,
  .wc-block-grid__products.has-2-columns,
  .wc-block-grid__products.columns-2 {
    grid-template-columns: repeat(2, 1fr);
  }
  .wc-block-grid.has-3-columns .wc-block-grid__products,
  .wc-block-grid.columns-3 .wc-block-grid__products,
  .wc-block-grid__products.has-3-columns,
  .wc-block-grid__products.columns-3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .wc-block-grid.has-5-columns .wc-block-grid__products,
  .wc-block-grid.columns-5 .wc-block-grid__products,
  .wc-block-grid__products.has-5-columns,
  .wc-block-grid__products.columns-5 {
    grid-template-columns: repeat(5, 1fr);
  }
  .wc-block-grid.has-6-columns .wc-block-grid__products,
  .wc-block-grid.columns-6 .wc-block-grid__products,
  .wc-block-grid__products.has-6-columns,
  .wc-block-grid__products.columns-6 {
    grid-template-columns: repeat(6, 1fr);
  }
}

/* Override WC's `.wc-block-grid.has-N-columns .wc-block-grid__product { flex: 1 0 25% }`
 * with !important so cells obey the grid track width instead of their flex-basis. */
.wc-block-grid .wc-block-grid__products .wc-block-grid__product,
ul.wc-block-grid__products .wc-block-grid__product {
  flex: initial !important;
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 100%;
  float: none !important;
  list-style: none;
  text-align: center;
}
.wc-block-grid__products .wc-block-grid__product-link {
  display: block;
  text-decoration: none;
  color: inherit;
}

/* Image cell: fix a uniform aspect ratio so unthumbnailed images (no 300x300
 * yet generated) don't make their cell taller than the rest of the row. */
.wc-block-grid__products .wc-block-grid__product-image {
  display: block;
  width: 100%;
  margin: 0 0 1rem;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--grey-1);
}
.wc-block-grid__products .wc-block-grid__product-image a,
.wc-block-grid__products .wc-block-grid__product-image > * {
  display: block;
  width: 100%;
  height: 100%;
}
.wc-block-grid__products .wc-block-grid__product-image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  object-fit: contain;
  object-position: center;
}
.wc-block-grid__products .wc-block-grid__product-title {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 400;
  letter-spacing: 0.3px;
  margin: 0 0 0.4rem;
  padding: 0;
  line-height: 1.3;
}
.wc-block-grid__products .wc-block-grid__product-price {
  font-family: var(--font-body);
  font-size: 0.9rem;
  margin: 0 0 1rem;
}
.wc-block-grid__products .wc-block-grid__product-price .wc-block-grid__product-price__value {
  color: var(--text-color);
}
.wc-block-grid__products .wc-block-grid__product-add-to-cart {
  margin-top: auto;
}
.wc-block-grid__products .wc-block-grid__product-add-to-cart .wp-block-button__link,
.wc-block-grid__products .wc-block-grid__product-add-to-cart .wc-block-components-product-button .wc-block-components-button {
  width: 100%;
  min-width: 200px !important;
}
.wp-theme-sostheme-mccann .wc-block-components-product-name {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 1.25rem !important;
  color: var(--text-color);
  text-decoration: none;
}
.wc-block-components-product-metadata__description h5,
.wc-block-components-product-metadata__description h5 strong {
  font-family: var(--font-body);
  font-size: 0.95rem !important;
  font-weight: 300;
}
.woocommerce-form-login .woocommerce-button {
  background-color: var(--brand-color) !important;
  color: #FFFFFF !important;
  border-color: var(--brand-color) !important;
  border-radius: 0 !important;
  text-transform: capitalize !important;
  text-decoration: none !important;
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.5px !important;
  padding: 0.65rem 1.5rem 0.5rem !important;
  transition: background-color 0.3s ease, color 0.3s ease, opacity 0.3s ease;
}
.woocommerce-form__label-for-checkbox {
  padding-top: 0.4rem;
}
.woocommerce-form.woocommerce-form-login {
  max-width: 500px;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 1rem !important;
}
h2:has(+ .woocommerce-form.woocommerce-form-login) {
  text-align: center;
}
h2:has(+ .wp-block-product-new) {
  background-color: var(--grey-1);
  padding-top: 2rem;
  padding-bottom: 0;
  margin-top: 2rem;
} 

.wc-block-components-checkout-place-order-button {
  background-color: var(--brand-color) !important;
  transition: 0.6s;
}
.wc-block-components-checkout-place-order-button:hover {
  opacity: 0.7;
}
.wc-block-components-checkout-place-order-button__text {
  color: #FFFFFF !important;
  text-transform: capitalize;
}
.three-text-col .wp-block-columns {
  column-gap: 5rem;
}
.three-text-col .wp-block-columns .wp-block-column {
  position: relative;
  padding-bottom: 5.5rem;
}
.three-text-col .wp-block-columns .wp-block-column .wp-block-buttons {
  width: 100%;
  position: absolute;
  bottom: 1.5rem;
  margin: 0 auto;
}

/* =============== Gallery Slider =============== */
.wp-block-gallery.gallery-slider.gallery-slider--ready,
.gallery-slider.gallery-slider--ready {
  --gallery-slider-per-slide: 3;
  --gallery-slider-gap: 1rem;
  --gallery-slider-slot: calc((100% - ((var(--gallery-slider-per-slide) - 1) * var(--gallery-slider-gap))) / var(--gallery-slider-per-slide));

  display: block !important;
  overflow: hidden;
  gap: 0 !important;
  flex-wrap: nowrap !important;
}

.gallery-slider__track {
  display: flex;
  flex-wrap: nowrap;
  will-change: transform;
}

.gallery-slider__slide {
  display: flex;
  flex: 0 0 100%;
  min-width: 100%;
  gap: var(--gallery-slider-gap);
  box-sizing: border-box;
}

.wp-block-gallery.gallery-slider.gallery-slider--ready .gallery-slider__slide > figure.wp-block-image,
.wp-block-gallery.gallery-slider.gallery-slider--ready .gallery-slider__slide > .wp-block-image,
.wp-block-gallery.gallery-slider.gallery-slider--ready .gallery-slider__slide > .blocks-gallery-item,
.gallery-slider.gallery-slider--ready .gallery-slider__slide > figure.wp-block-image,
.gallery-slider.gallery-slider--ready .gallery-slider__slide > .blocks-gallery-item {
  flex: 0 0 var(--gallery-slider-slot);
  max-width: var(--gallery-slider-slot);
  width: var(--gallery-slider-slot) !important;
  min-width: 0;
  margin: 0 !important;
}

.gallery-slider__slide img {
  display: block;
  width: 100%;
  height: auto;
}