/*
Font:
    font-family: "Inter", sans-serif;
    font-family: "Playfair Display", serif;
*/
/* =============== Root Variables =============== */
:root {
    /* Lapels brand palette */
    --lapels-gold: #c69e67;
    --lapels-light-bg: #f4eee5;
    --lapels-light-green-bg: #e6f5eb;
    --lapels-dark-green: #0c261f;
    --lapels-green: #23523c;
    --lapels-dark-text: #091913;
    --lapels-light-text: #f9f9f9;

    /* Semantic theme tokens */
    --brand-color: var(--lapels-dark-green);
    --brand-color-hover: var(--lapels-gold);
    --text-color: var(--lapels-dark-text);
    --text-color-grey: #3d4f49;
    --text-color-in-dark-bg: var(--lapels-light-text);
    --link-color: var(--lapels-dark-text);
    --grey-1: var(--lapels-light-bg);
    --grey-2: #ebe3d8;
    --grey-3: #a7b6af;
    --dark-grey-1: var(--lapels-dark-green);
    --font-heading: "Playfair Display", serif;
    --font-body: "Inter", sans-serif;
    --site-top-message-height: 36px;
    --site-currency-bar-height: 28px;
    --header-offset-top: 0px;
    --border-radius-small: 4px;
    --border-radius-medium: 8px;
    --border-radius-large: 16px;
}

body.has-top-message {
    --header-offset-top: var(--site-top-message-height);
}

body.has-currency-bar {
    --header-offset-top: var(--site-currency-bar-height);
}

body.has-currency-bar.has-top-message {
    --header-offset-top: calc(var(--site-currency-bar-height) + var(--site-top-message-height));
}

/* =============== 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% - 32px);
  max-width: 1600px;
  margin: 0 auto;
}
section + section,
section + div,
div + section,
.three-image-gallery + section,
.three-image-gallery + div {
  margin-top: 75px !important;
}
section.has-light-background-background-color + .wp-block-cover {
  margin-top: 0 !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;
}
.has-background {
  padding-top: 50px;
  padding-bottom: 50px;
}

.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;
}
.narrow-1024 {
  max-width: 1024px;
  margin-left: auto;
  margin-right: auto;
}
.wp-block-cover {
  padding: 3rem 0;
}
@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;
  }
  .has-background {
    padding-top: 75px;
    padding-bottom: 75px;
  }
}
@media (min-width: 1440px) {
  .container {
    width: calc(100% - 72px);
  }
  .has-background {
    padding-top: 100px;
    padding-bottom: 100px;
  }
}
/* =============== 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: 1em;
}
h1 {
  font-size: clamp(2rem, 2.5vw, 3rem);
}
h2 {
  font-size: clamp(1.75rem, 2.5vw, 2.5rem);
}
h3 {
  font-size: clamp(1.35rem, 2vw, 1.5rem);
}
h4 {
  font-size: clamp(1.25rem, 1.5vw, 1.5rem);
}
h5 {
  font-size: clamp(1rem, 1vw, 1rem);
}
h6 {
  font-size: clamp(0.75rem, 0.5vw, 1rem);
}
h2.big-golden-dot,
h3.big-golden-dot,
h4.big-golden-dot,
.wp-block-heading.big-golden-dot {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  color: var(--lapels-gold);
  font-family: var(--font-heading);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

h2.big-golden-dot::before,
h3.big-golden-dot::before,
h4.big-golden-dot::before,
.wp-block-heading.big-golden-dot::before {
  content: "";
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: currentColor;
  margin-top: 3px;
}
.h3.big-golden-dot::before {
  width: 14px;
  height: 14px;
}
.h4.big-golden-dot::before {
  width: 12px;
  height: 12px;
}


.narrow-text {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.wp-block-cover .narrow-text {
  margin-bottom: 1.5rem;
}
.opening-text {
  max-width: 720px;
  margin: 0 auto 50px;
}
.opening-text p {
  font-family: var(--font-heading);
}
p + h2, p + h3, p + h4, p + h5, p + h6,
ul + h2, ul + h3, ul + h4, ul + h5, ul + h6,
ol + h2, ol + h3, ol + h4, ol + h5, ol + h6,
.single-product-tabs__panel h2, .single-product-tabs__panel h3, .single-product-tabs__panel h4, .single-product-tabs__panel h5, .single-product-tabs__panel h6 {
  margin-top: 1.75em;
}
.single-product-tabs__content > h2:first-child, .single-product-tabs__content > h3:first-child, .single-product-tabs__panel > h4:first-child, .single-product-tabs__panel > h5:first-child, .single-product-tabs__panel > h6:first-child {
  margin-top: 0;
}
p + p {
  margin-top: 1rem;
}
p + ul, p + ol, p + dl,
ul + p, ol + p, dl + p,
p + .wp-block-buttons, ul + .wp-block-buttons, ol + .wp-block-buttons, dl + .wp-block-buttons {
  margin-top: 1.5rem;
}
strong {
  font-weight: 600;
}
em {
  font-style: italic;
}
ul {
  list-style: disc;
  padding-left: 1.5rem;
}
ol {
  list-style: decimal;
  padding-left: 1.5rem;
}
li + li {
  margin-top: 0.75rem;
}
li::marker {
  color: var(--lapels-gold);
}
.other-recommended-posts-wrapper li + li,
.site-footer-social-widget ul li + li,
.single-product-tabs li + li,
.product-loop-swatches li + li {
  margin-top: 0;
}

nav li + li {
  margin-top: 0;
}
dl {
  list-style: none;
}
.inline-padding-left {
  padding-left: 2rem;
}
@media (min-width: 1080px) {
  .opening-text {
    margin: 0 auto 75px;
  }
}

/* =============== Colour setting =============== */
.has-brandcolour-background-color,
.has-dark-green-background-color {
  background-color: var(--lapels-dark-green);
  color: var(--lapels-light-text);
}
.has-brandcolour-color,
.has-dark-green-color {
  color: var(--lapels-dark-green);
}
.has-dark-text-background-color {
  background-color: var(--lapels-dark-text);
  color: var(--lapels-light-text);
}
.has-dark-text-color {
  color: var(--lapels-dark-text);
}
.has-grey-1-background-color,
.has-light-background-background-color {
  background-color: var(--lapels-light-bg);
}
.has-grey-2-background-color,
.has-highlight-gold-background-color {
  background-color: var(--lapels-gold);
  color: var(--lapels-dark-text);
}
.has-grey-3-background-color,
.has-white-text-background-color {
  background-color: var(--lapels-light-text);
  color: var(--lapels-dark-text);
}
.has-dark-grey-1-background-color {
  background-color: var(--lapels-dark-green);
  color: var(--lapels-light-text);
}
.has-grey-1-color,
.has-light-background-color {
  color: var(--lapels-light-bg);
}
.has-grey-2-color,
.has-highlight-gold-color {
  color: var(--lapels-gold);
}
.has-grey-3-color,
.has-white-text-color {
  color: var(--lapels-light-text);
}
.has-dark-grey-1-color {
  color: var(--lapels-dark-green);
}
.has-green-background-color {
  background-color: var(--lapels-green);
  color: var(--lapels-light-text);
}
.has-green-color {
  color: var(--lapels-green);
}
/* =============== 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;
}
/* =============== button setting =============== */
.wp-block-button__link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 280px !important;
  max-height: none !important;
  height: auto !important;
  min-height: 32px !important;
  padding: 0.5rem 1.5rem !important;
  background-color: var(--lapels-green) !important;
  color: var(--lapels-light-text) !important;
  border: 0;
  border-radius: var(--border-radius-small) !important;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none !important;
  font-family: var(--font-body);
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus {
  background-color: var(--lapels-gold) !important;
  color: var(--lapels-dark-text) !important;
  text-decoration: none !important;
}

.is-style-arrow .wp-block-button__link::after {
  content: "\2192";
  margin-left: 0.45rem;
  line-height: 1;
}

.white-button .wp-block-button__link {
  background-color: #FFFFFF !important;
  color: var(--brand-color) !important;
}
.white-button .wp-block-button__link:hover,
.white-button .wp-block-button__link:focus {
  background-color: #bbbbbb !important;
  color: var(--brand-color) !important;
}
.link-underline {
  font-weight: 400;
  font-size: 0.9rem;
  text-decoration: none;
  color: var(--link-color);
  position: relative;
  display: inline-block;
  margin-top: 1rem;
}
.woocommerce .link-underline {
  margin-top: 0;
}
.link-underline:link,
.link-underline:visited {
  color: var(--link-color);
}
.link-underline:hover {
  opacity: 1;
  text-decoration: none;
}
.link-underline:focus,
.link-underline:active {
  color: var(--link-color);
}
.link-underline::before,
.link-underline::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  pointer-events: none;
}

.link-underline::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,
.overflow-images .link-underline::before {
  width: 100%;
}

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

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

.hero-tailoor-buttons a {
  font-size: 14px;
  color: #FFFFFF;
  border: 1px solid #FFFFFF;
  text-decoration: none;
  text-transform: uppercase;
  padding: 0.35rem 0.75rem;
  transition: .6s;
}
.hero-tailoor-buttons a + a {
  margin-left: 1rem;
}
.hero-tailoor-buttons a:hover {
  opacity: 0.7;
}
/* =============== Currency bar =============== */
.site-currency-bar {
  position: relative;
  z-index: 120;
  min-height: var(--site-currency-bar-height);
  background-color: var(--lapels-dark-green);
  color: var(--lapels-light-text);
}

.site-currency-bar .container {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: var(--site-currency-bar-height);
}

.site-currency-bar .frcc-currency-converter,
.site-currency-bar .frcc-combobox {
  width: min(70vw, 22rem) !important;
  margin-left: auto;
  color: var(--lapels-light-text) !important;
}

.site-currency-bar .frcc-combobox-input {
  height: var(--site-currency-bar-height) !important;
  padding: 0 1.5rem 0 2.5rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--lapels-light-text) !important;
  font-family: var(--font-body) !important;
  font-size: 0.68rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  line-height: var(--site-currency-bar-height) !important;
  text-align: left;
  text-transform: uppercase;
  box-shadow: none !important;
  outline: none !important;
}

.site-currency-bar .frcc-combobox-arrow {
  color: var(--lapels-light-text) !important;
}

.site-currency-bar .frcc-combobox-list {
  background-color: var(--lapels-dark-green) !important;
  border: 1px solid rgba(249, 249, 249, 0.16) !important;
  border-radius: 0 !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28) !important;
}

.site-currency-bar .frcc-combobox-item {
  color: var(--lapels-light-text) !important;
  font-family: var(--font-body);
  font-size: 0.72rem !important;
  letter-spacing: 0.04em;
  line-height: 1.4;
  white-space: normal !important;
}

.site-currency-bar .frcc-combobox-item:hover,
.site-currency-bar .frcc-combobox-item.frcc-selected {
  background-color: rgba(249, 249, 249, 0.08) !important;
  color: var(--lapels-light-text) !important;
}

/* =============== 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: transparent;
}
.product-category-breadcrumb .container {
  padding-top: 1rem;
  padding-bottom: 0.5rem;
}
.product-category-breadcrumb__nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
  color: #8a8a8a;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.4;
  text-transform: none;
}
.product-category-breadcrumb__nav a {
  color: #8a8a8a;
  text-decoration: none;
}
.product-category-breadcrumb__nav a:hover {
  color: var(--lapels-dark-text);
}
.product-category-breadcrumb__sep,
.product-category-breadcrumb__nav .breadcrumb-separator {
  color: #b0b0b0;
}
.product-category-breadcrumb__nav .breadcrumb_last {
  color: #8a8a8a;
}

.single-product-page .single-product-breadcrumb {
  background: transparent;
}

.single-product-page .single-product-breadcrumb .container {
  padding-top: 1rem;
  padding-bottom: 0.75rem;
}

.single-product-page .product-category-breadcrumb__nav {
  gap: 0.4rem;
  color: #8a8a8a;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.4;
}

.single-product-page .product-category-breadcrumb__nav a {
  color: #8a8a8a;
}

.single-product-page .product-category-breadcrumb__nav a:hover,
.single-product-page .product-category-breadcrumb__nav a:focus {
  color: var(--lapels-dark-text);
}

.single-product-page .product-category-breadcrumb__sep,
.single-product-page .product-category-breadcrumb__nav .breadcrumb-separator {
  color: #b0b0b0;
}

.single-product-page .product-category-breadcrumb__nav .breadcrumb_last {
  color: #8a8a8a;
}

.product-category-hero {
  background: transparent;
  padding: 0.5rem 0 2rem;
}
.product-category-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 32%);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
}
.product-category-hero__content h1 {
  font-family: var(--font-body);
  font-size: clamp(1.25rem, 4vw, 1.75rem);
  font-weight: 500;
  line-height: 1.05;
  margin: 0;
  padding-bottom: 1rem;
  color: var(--lapels-dark-text);
}
.product-category-hero__content p + p {
  margin-top: 0.75rem;
}
.product-category-hero__description {
  max-width: 36rem;
  /* color: var(--text-color-grey); */
  font-family: var(--font-body);
  /* font-size: 0.95rem; */
  line-height: 1.65;
}
.product-category-hero__description p {
  margin: 0;
}
.product-category-hero__media {
  position: relative;
  margin: 0;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #f2f2f2;
}
.product-category-hero__media img,
.product-category-hero__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover;
  object-position: center center;
}
.product-category-hero--overlay {
  padding-top: 0.35rem;
}
.product-category-hero--overlay .product-category-hero__inner {
  display: block;
  position: relative;
}
.product-category-hero--overlay .product-category-hero__media {
  aspect-ratio: 2.35 / 1;
  background: #161616;
}
.product-category-hero--overlay .product-category-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.18) 42%, transparent 68%);
  pointer-events: none;
}
.product-category-hero--overlay .product-category-hero__content {
  position: absolute;
  left: 50%;
  bottom: clamp(1.35rem, 8%, 3.25rem);
  z-index: 1;
  width: min(44rem, calc(100% - 2.5rem));
  transform: translateX(-50%);
  text-align: center;
  color: #fff;
}
.product-category-hero--overlay .product-category-hero__content h1 {
  padding-bottom: 0.55rem;
  color: #fff;
  font-size: clamp(1.15rem, 1.6vw, 1.45rem);
  font-weight: 500;
  line-height: 1.25;
  text-align: center;
}
.product-category-hero--overlay .product-category-hero__description {
  max-width: none;
  margin: 0 auto;
  color: #fff;
  font-size: clamp(0.78rem, 1.05vw, 0.92rem);
  line-height: 1.45;
  text-align: center;
}
.product-category-hero--overlay .product-category-hero__description a {
  color: #fff;
}

.product-category-catalogue {
  padding-top: 0.5rem;
  padding-bottom: 3rem;
}
.product-category-catalogue__header {
  margin-bottom: 1.25rem;
}
.product-category-catalogue__grid-area {
  width: 100%;
}
.product-category-catalogue__grid-inner {
  width: 100%;
  max-width: none;
  margin: 0;
}
.product-category-load-more {
  display: flex;
  justify-content: center;
  margin-top: clamp(2rem, 4vw, 3rem);
  padding: 0 1rem 0.5rem;
}
.product-category-load-more__button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.85rem 2.4rem;
  border: 0;
  border-radius: 6px;
  background-color: var(--lapels-dark-green);
  color: #ffffff;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.2s ease, opacity 0.2s ease;
}
.product-category-load-more__button:hover,
.product-category-load-more__button:focus {
  background-color: var(--lapels-dark-text);
  outline: none;
}
.product-category-load-more__button:disabled {
  opacity: 0.65;
  cursor: wait;
}
@media (min-width: 1920px) {
  .product-category-catalogue__grid-inner {
    width: calc(100% - 56px);
    max-width: 1600px;
    margin-left: auto;
    margin-right: auto;
  }
}
.product-category-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.35rem;
  margin: 0 0 1.25rem;
  padding: 0 0 1rem;
  border-bottom: 1px solid rgba(9, 25, 19, 0.1);
}
.product-category-pills__item {
  color: #8a8a8a;
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
  transition: color 0.2s ease;
}
.product-category-pills__item:hover,
.product-category-pills__item:focus {
  color: var(--lapels-dark-text);
  outline: none;
}
.product-category-pills__item.is-active {
  color: var(--lapels-dark-text);
  font-weight: 500;
}
.product-category-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.75rem;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 0.88rem;
}
.product-category-toolbar .product-loop-filters {
  order: 0;
  flex: 1 1 auto;
  min-width: 0;
}
.product-category-toolbar__controls {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin-left: auto;
  order: 1;
  flex: 0 0 auto;
}
.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;
  min-width: 0;
}
.product-loop-filters__main {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.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-ui {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.product-loop-filters__select-ui .product-loop-filters__select,
.product-loop-filters__select-ui .orderby {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  appearance: none !important;
  pointer-events: none;
}
.product-loop-filters__select-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 125px;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.3;
  padding: 0.35rem 0.2rem;
  cursor: pointer;
}
.product-loop-filters__select-trigger::after {
  content: "";
  width: 0.38rem;
  height: 0.38rem;
  margin-top: -0.15rem;
  border-right: 1.5px solid var(--lapels-dark-text);
  border-bottom: 1.5px solid var(--lapels-dark-text);
  transform: rotate(45deg);
  flex: 0 0 auto;
  transition: transform 0.2s ease;
}
.product-loop-filters__select-ui.is-open .product-loop-filters__select-trigger::after {
  transform: rotate(-135deg);
  margin-top: 0.12rem;
}
.product-loop-filters__select-trigger:focus {
  outline: none;
}
.product-loop-filters__select-menu {
  position: absolute;
  top: calc(100% + 0.4rem);
  left: 0;
  z-index: 40;
  min-width: max(100%, 10rem);
  width: max-content;
  max-width: min(16rem, calc(100vw - 2rem));
  margin: 0;
  padding: 0;
  list-style: none;
  background: #ffffff;
  border: 1px solid var(--grey-3);
}
.product-loop-filters__select-menu[hidden] {
  display: none !important;
}
.product-loop-filters__select-option {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.55rem 0.95rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.86rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.3;
  text-align: left;
  text-transform: none;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.product-loop-filters__select-option:hover,
.product-loop-filters__select-option:focus {
  background: var(--grey-1);
  outline: none;
}
.product-loop-filters__select-option.is-selected {
  background: var(--grey-1);
  font-weight: 500;
  color: var(--brand-color);
}
.product-loop-filters__select {
  min-width: 125px;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.3;
  padding: 0.35rem 1.4rem 0.35rem 0.2rem;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--lapels-dark-text) 50%), linear-gradient(135deg, var(--lapels-dark-text) 50%, transparent 50%);
  background-position: calc(100% - 0.75rem) 50%, calc(100% - 0.45rem) 50%;
  background-size: 0.3rem 0.3rem, 0.3rem 0.3rem;
  background-repeat: no-repeat;
  cursor: pointer;
}
.product-loop-filters__select::-ms-expand {
  display: none;
}
.product-loop-filters__select:focus {
  outline: none;
}
.product-category-grid-toggles {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}
.product-category-grid-toggle {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  height: auto;
  margin: 0;
  padding: 0.15rem;
  border: 0;
  background: transparent;
  cursor: pointer;
  opacity: 0.35;
  transition: opacity 0.2s ease;
}
.product-category-grid-toggle.is-active,
.product-category-grid-toggle:hover,
.product-category-grid-toggle:focus {
  outline: none;
  opacity: 1;
}
.product-category-grid-toggle__icon {
  display: block;
  height: 12px;
  width: auto;
  max-width: none;
  object-fit: contain;
  object-position: center;
}
.product-category-grid-toggle__icon--4 {
  height: 12px;
  width: 25px;
  aspect-ratio: 64 / 30.79;
}
.product-category-grid-toggle__icon--3 {
  height: 12px;
  width: 18px;
  aspect-ratio: 47.42 / 30.79;
}
.product-category-grid-toggle__icon--2 {
  height: 12px;
  width: 12px;
  aspect-ratio: 30.83 / 30.78;
}
.product-category-grid-toggle__icon--1 {
  height: 12px;
  width: 6px;
  aspect-ratio: 14.25 / 30.78;
}
.product-loop-filters__mobile-filter-toggle {
  display: none;
}
.product-loop-filters__mobile-filter-toggle::after {
  content: "";
  width: 0.38rem;
  height: 0.38rem;
  border-right: 1px solid var(--lapels-dark-text);
  border-bottom: 1px solid var(--lapels-dark-text);
  transform: rotate(45deg);
  margin-top: -0.15rem;
  margin-left: 0.35rem;
  transition: transform 0.2s ease;
}
.product-category-grid-toggles--mobile {
  display: none;
}
.product-loop-filters__sort {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  position: relative;
  margin-left: auto;
}
.product-loop-filters__sort .product-loop-filters__select-ui {
  display: inline-block;
}
.product-loop-filters__sort .product-loop-filters__select-trigger {
  min-width: 0;
  width: auto;
}
.product-loop-filters__sort .product-loop-filters__select-menu {
  left: auto;
  right: 0;
}
.product-loop-filters__more-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 0;
  background: transparent;
  padding: 0.35rem 0.2rem;
  margin-right: 1rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  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,
.product-loop-filters__attribute-toggle::after {
  content: "";
  width: 0.38rem;
  height: 0.38rem;
  border-right: 1px solid var(--lapels-dark-text);
  border-bottom: 1px solid var(--lapels-dark-text);
  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,
.product-loop-filters__attribute-toggle.is-open::after,
.product-loop-filters__attribute-toggle[aria-expanded="true"]::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 var(--lapels-dark-text);
  border-bottom: 1px solid var(--lapels-dark-text);
  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;
  background: #ffffff;
  border: 1px solid var(--grey-3);
  padding: 1rem 1.1rem;
  z-index: 30;
}
.product-loop-filters__category-panel {
  width: min(860px, calc(100vw - 2rem));
}
.product-loop-filters__attribute-panel {
  width: min(640px, calc(100vw - 2rem));
}
.product-loop-filters__price-panel {
  width: min(420px, calc(100vw - 2rem));
}
.product-loop-filters__sort .woocommerce-ordering {
  margin: 0;
  position: relative;
}
.product-loop-filters__sort .orderby {
  min-width: 125px;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.3;
  padding: 0.35rem 1.4rem 0.35rem 0.2rem;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--lapels-dark-text) 50%), linear-gradient(135deg, var(--lapels-dark-text) 50%, transparent 50%);
  background-position: calc(100% - 0.75rem) 50%, calc(100% - 0.45rem) 50%;
  background-size: 0.3rem 0.3rem, 0.3rem 0.3rem;
  background-repeat: no-repeat;
  cursor: pointer;
}
.product-loop-filters__sort .orderby::-ms-expand {
  display: none;
}
.product-loop-filters__sort .orderby: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;
  right: 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;
  background: transparent;
  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,
.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-family: var(--font-heading);
  font-size: 18px;
  font-weight: 400;
  color: var(--lapels-dark-text);
}
.product-loop-filters__price-reset {
  border: 0;
  border-bottom: 1px solid var(--lapels-dark-text);
  background: transparent;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  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: var(--lapels-dark-text);
}
.product-loop-filters__price-fill {
  left: 0;
  right: 0;
  background: var(--lapels-dark-text);
}
.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 var(--lapels-dark-text);
  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 var(--lapels-dark-text);
  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-family: var(--font-body);
  font-size: 24px;
  color: var(--lapels-dark-text);
}
.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: var(--lapels-dark-text);
}
.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: uppercase;
  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: 1.25rem;
}
.product-category-catalogue__grid-inner ul.products {
  gap: 4px;
}
.woocommerce .product-category-page ul.products {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.product-category-page ul.products.is-grid-3,
.woocommerce .product-category-page ul.products.is-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.product-category-page ul.products.is-grid-4,
.woocommerce .product-category-page ul.products.is-grid-4 {
  grid-template-columns: repeat(4, 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: transparent;
  border: 0;
  padding: 0;
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.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: var(--lapels-dark-text);
  text-decoration: none;
}
.product-loop-image {
  display: block;
  position: relative;
  aspect-ratio: 1 / 1.35;
  overflow: hidden;
  background: #f2f2f2;
}
.product-loop-image__primary,
.product-loop-image__secondary,
.product-category-page ul.products li.product .woocommerce-LoopProduct-link img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1.35;
  height: auto;
  object-fit: cover;
  object-position: center;
  background: #f2f2f2;
  padding: 0;
  image-rendering: auto;
}
.product-loop-image__secondary {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.25s ease;
}
.product-category-catalogue__grid-inner ul.products li.product:hover .product-loop-image--has-hover .product-loop-image__secondary {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .product-loop-image__secondary {
    transition: none;
  }
}
.product-shortcode-products {
  margin-top: 2rem;
}
.product-shortcode-products ul.products li.product {
  align-self: start;
  opacity: 1;
  transform: none;
  transition: border-color 1s, background-color 1s;
  padding: 20px;
}
.product-shortcode-products .product-loop-image {
  aspect-ratio: 1 / 1;
  height: auto;
}
.product-shortcode-products ul.products li.product .woocommerce-LoopProduct-link img,
.product-shortcode-products .product-loop-image__primary,
.product-shortcode-products .product-loop-image__secondary {
  max-height: none;
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  padding: 0;
  object-fit: cover;
  object-position: center;
}
.product-shortcode-products .product-loop-image__primary {
  height: auto;
}
.product-shortcode-products ul.products li.product:hover .product-loop-image--has-hover .product-loop-image__secondary {
  opacity: 1;
}
.product-shortcode-products ul.products li.product a,
.product-shortcode-products ul.products li.product a:hover {
  opacity: 1;
  text-decoration: none;
}
.product-category-page ul.products li.product .woocommerce-loop-product__title {
  text-align: left;
  font-family: var(--font-body);
  font-size: 0.92rem !important;
  font-weight: 400;
  line-height: 1.4;
  padding: 0.9rem 0.35rem 0.2rem 0.75rem !important;
  margin: 0 !important;
  color: var(--lapels-dark-text);
}
.product-shortcode-products ul.products li.product .woocommerce-loop-product__title {
  text-align: left;
  margin-top: 1rem;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.product-shortcode-products .product-loop-cta-link {
  display: none !important;
}
.product-shortcode-products .product-consult-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 0.85rem;
  padding: 0.7rem 0.75rem;
  border: 1px solid var(--lapels-green);
  background: transparent;
  color: var(--lapels-green);
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.02em;
  text-align: center;
  text-decoration: none;
}
.product-shortcode-products .product-consult-button:hover,
.product-shortcode-products .product-consult-button:focus {
  background: var(--lapels-green);
  color: var(--lapels-light-text);
  opacity: 1;
  text-decoration: none;
}
.product-category-page ul.products li.product .product-loop-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0.55rem;
  border: 0;
  padding: 0 0.35rem 0.5rem 0.75rem;
  margin: 0;
}
.product-category-page ul.products li.product .product-loop-meta--archive {
  text-align: left;
}
.product-category-page ul.products li.product .star-rating,
.product-category-page ul.products li.product .woocommerce-product-rating {
  display: none !important;
}
.product-shortcode-products ul.products li.product .product-loop-meta {
  border: none;
  padding: 0;
  margin: 0.75rem 0 0 0;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}
.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(--lapels-dark-text);
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.2;
}
.product-shortcode-products ul.products li.product .product-loop-meta .price {
  font-weight: 300;
  font-family: var(--font-body);
  font-size: 14px;
}
.product-category-page ul.products li.product .product-loop-meta .price * {
  font-size: inherit;
  font-family: inherit;
}
.product-loop-swatches {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 0.4rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.product-loop-swatches__item {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 50%;
  background: var(--swatch-color, #ccc);
  border: 1px solid rgba(0, 0, 0, 0.12);
  box-sizing: border-box;
}
.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-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;
  width: 100%;
}
.shop-featured-category {
  width: 100%;
}
.shop-featured-category__header {
  width: calc(100% - 32px);
  max-width: 1600px;
  margin: 0 auto 1.25rem;
}
.shop-featured-category__title {
  margin: 0;
  padding: 0;
  color: var(--lapels-dark-text);
  font-family: var(--font-heading);
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  font-weight: 500;
  line-height: 1.2;
}
.shop-featured-category__grid {
  width: 100%;
  max-width: none;
  margin-top: 0;
}
.shop-featured-category__footer {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}
.shop-featured-category__more {
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.86rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-decoration: none;
}
.shop-featured-category__more:hover,
.shop-featured-category__more:focus {
  color: var(--lapels-gold);
}
@media (min-width: 1280px) {
  .shop-featured-category__header {
    width: calc(100% - 56px);
  }
}
@media (min-width: 1440px) {
  .shop-featured-category__header {
    width: calc(100% - 72px);
  }
}

.product-category-seo-content {
  padding-top: clamp(3rem, 6vw, 4.5rem);
}
.product-category-seo-block {
  background: #ffffff;
}
.product-category-seo-block--text-columns {
  background: var(--grey-1);
}
.product-category-seo-block__inner {
  display: grid;
  align-items: center;
  gap: clamp(1.75rem, 4vw, 4rem);
  padding: clamp(2.5rem, 5vw, 4.5rem) 0;
}
.product-category-seo-block--media-left .product-category-seo-block__inner {
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
}
.product-category-seo-block--media-right .product-category-seo-block__inner {
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
}
.product-category-seo-block--text-columns .product-category-seo-block__inner {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 5rem);
}
.product-category-seo-block__media {
  margin: 0;
  min-height: 100%;
  background: var(--grey-2);
  overflow: hidden;
}
.product-category-seo-block__image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: clamp(220px, 32vw, 420px);
  object-fit: cover;
  object-position: center;
}
.product-category-seo-block__content {
  color: var(--lapels-dark-text);
}

.product-category-seo-block__body,
.product-category-seo-block__column {
  color: #2f2f2f;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.85;
}
.product-category-seo-block__body p,
.product-category-seo-block__column p {
  margin: 0 0 1rem;
}
.product-category-seo-block__body p:last-child,
.product-category-seo-block__column p:last-child {
  margin-bottom: 0;
}
.product-category-seo-block__body h2,
.product-category-seo-block__body h3,
.product-category-seo-block__column h2,
.product-category-seo-block__column h3,
.product-category-seo-block__column h4 {
  /* margin: 0 0 1rem; */
}
.product-category-seo-block__body h3,
.product-category-seo-block__column h3 {
  font-size: 1rem;
  font-weight: 500;
}
.product-category-seo-block__body ul,
.product-category-seo-block__column ul {
  margin: 0 0 1rem;
  padding-left: 1.1rem;
}
.product-category-seo-block__body a,
.product-category-seo-block__column a {
  color: inherit;
  text-decoration: underline;
}
.product-category-page + .site-footer {
  margin-top: 0;
}
.archive .product-category-page + .site-footer {
  margin-top: 75px;
}

/* Shop / category archives: soft corners on bordered UI + buttons (not product images) */
body:is(.woocommerce-shop, .tax-product_cat, .tax-product_tag, .post-type-archive-product) :is(
  .button,
  button,
  .mccann-btn,
  a.button,
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="image"]),
  select,
  textarea,
  .product-loop-filters__select-menu,
  .product-loop-filters__select-option,
  .product-loop-filters__select-trigger,
  .product-loop-filters__select,
  .product-loop-filters__sort .orderby,
  .product-loop-filters__category-chip,
  .product-loop-filters__drawer,
  .product-loop-filters__drawer-actions .mccann-btn,
  .product-loop-filters__drawer-actions a,
  .product-category-load-more__button,
  .product-category-pills__item,
  .product-category-grid-toggle,
  .woocommerce-message,
  .woocommerce-info,
  .woocommerce-error,
  .woocommerce-notices-wrapper .button
) {
  border-radius: var(--border-radius-small) !important;
}

/* Product grid images stay square on shop */
body:is(.woocommerce-shop, .tax-product_cat, .tax-product_tag, .post-type-archive-product) :is(
  .product-loop-image,
  .product-loop-image img,
  .product-loop-image__primary,
  .product-loop-image__secondary,
  ul.products li.product,
  ul.products li.product img
) {
  border-radius: 0 !important;
}

/* =============== 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 {
  position: relative;
  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;
}
.single-product-content__image .single-product-wishlist-toggle,
.single-product-content__gallery > .single-product-wishlist-toggle {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #ffffff;
  cursor: pointer;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.single-product-content__image .single-product-wishlist-toggle:hover,
.single-product-content__image .single-product-wishlist-toggle:focus,
.single-product-content__gallery > .single-product-wishlist-toggle:hover,
.single-product-content__gallery > .single-product-wishlist-toggle:focus {
  transform: scale(1.06);
  outline: none;
}
.single-product-content__image .single-product-wishlist-toggle__icon,
.single-product-content__gallery > .single-product-wishlist-toggle .single-product-wishlist-toggle__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}
.single-product-content__image .single-product-wishlist-toggle__icon svg,
.single-product-content__gallery > .single-product-wishlist-toggle .single-product-wishlist-toggle__icon svg {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
}
.single-product-content__image .single-product-wishlist-toggle__icon--solid,
.single-product-content__gallery > .single-product-wishlist-toggle .single-product-wishlist-toggle__icon--solid {
  display: none;
}
.single-product-content__image .single-product-wishlist-toggle.is-active .single-product-wishlist-toggle__icon--outline,
.single-product-content__gallery > .single-product-wishlist-toggle.is-active .single-product-wishlist-toggle__icon--outline {
  display: none;
}
.single-product-content__image .single-product-wishlist-toggle.is-active .single-product-wishlist-toggle__icon--solid,
.single-product-content__gallery > .single-product-wishlist-toggle.is-active .single-product-wishlist-toggle__icon--solid {
  display: flex;
}
.woocommerce-notices-wrapper {
  margin-top: 0 !important;
}
@media (min-width: 911px) {
  .woocommerce .single-product-content {
    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;
    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 {
  padding: clamp(0.2rem, 1vw, 0.8rem) 0;
}
.single-product-content__intro {
  padding-bottom: 1.35rem;
  margin-bottom: 1.35rem;
  border-bottom: 1px solid rgba(9, 25, 19, 0.12);
}
.single-product-content__title {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  line-height: 1.04;
  margin: 0 0 2rem;
  padding-bottom: 0;
}
.single-product-content__short-description {
  margin-top: 0;
}
.single-product-content__short-description p {
  margin: 0;
  color: var(--text-color-grey);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.6;
}
.single-product-content__short-description p + p {
  margin-top: 0.65rem;
}
.single-product-content__short-description ul,
.single-product-content__short-description ol {
  margin: 0.65rem 0 1.5rem;
  padding-left: 1.1rem;
  color: var(--text-color-grey);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.6;
}
.single-product-content__short-description li {
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.6;
}
.single-product-content__short-description li + li {
  margin-top: 0.25rem;
}
.single-product-content__price {
  margin: 1rem 0 0;
  color: var(--text-color);
  font-family: var(--font-body);
  font-size: clamp(1.2rem, 2.4vw, 1.55rem);
  font-weight: 600;
}
.single-product-content__stock-notice {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0.55rem 0 0;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.35;
}
.single-product-content__stock-dot {
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background-color: currentColor;
  flex-shrink: 0;
}
.single-product-content__stock-notice.is-critical {
  color: #c0392b;
}
.single-product-content__stock-notice.is-low {
  color: #d97706;
}
.single-product-content__actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
  margin-top: 1.35rem;
  margin-bottom: 1.25rem;
}
.single-product-content__buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  width: 100%;
  max-width: none;
}
.single-product-content__buttons--single {
  grid-template-columns: 1fr;
}
.single-product-content__buttons .single-product-content__add-btn,
.single-product-content__buttons .single-product-content__book-btn,
.single-product-content__buttons .single-product-content__wishlist-btn,
body.woocommerce .woocommerce .single-product-content__buttons .single-product-content__add-btn.button,
body.woocommerce .woocommerce .single-product-content__buttons .single-product-content__book-btn.button,
body.woocommerce .woocommerce .single-product-content__buttons button.single-product-content__add-btn.button.alt,
body.woocommerce .woocommerce .single-product-content__buttons a.single-product-content__add-btn.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem;
  width: 100%;
  min-height: 2.85rem !important;
  max-height: none !important;
  height: auto !important;
  margin: 0 !important;
  padding: 1rem 1rem 0.85rem !important;
  border-radius: 2px !important;
  text-transform: uppercase !important;
  text-align: center;
  text-decoration: none !important;
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: 0.06em !important;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, opacity 0.25s ease;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}
.single-product-content__btn-label {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  line-height: 1 !important;
  text-transform: inherit !important;
  color: inherit;
}
.single-product-content__buttons .single-product-content__add-btn,
.single-product-content__buttons .single-product-content__book-btn,
body.woocommerce .woocommerce .single-product-content__buttons .single-product-content__add-btn.button,
body.woocommerce .woocommerce .single-product-content__buttons .single-product-content__book-btn.button,
body.woocommerce .woocommerce .single-product-content__buttons button.single-product-content__add-btn.button.alt {
  border: 0 !important;
  background-color: var(--lapels-dark-text) !important;
  color: #FFFFFF !important;
}
.single-product-content__buttons .single-product-content__add-btn:hover,
.single-product-content__buttons .single-product-content__book-btn:hover,
.single-product-content__buttons .single-product-content__add-btn:focus,
.single-product-content__buttons .single-product-content__book-btn:focus,
body.woocommerce .woocommerce .single-product-content__buttons .single-product-content__add-btn.button:hover,
body.woocommerce .woocommerce .single-product-content__buttons .single-product-content__book-btn.button:hover,
body.woocommerce .woocommerce .single-product-content__buttons button.single-product-content__add-btn.button.alt:hover,
body.woocommerce .woocommerce .single-product-content__buttons .single-product-content__add-btn.button:focus,
body.woocommerce .woocommerce .single-product-content__buttons .single-product-content__book-btn.button:focus,
body.woocommerce .woocommerce .single-product-content__buttons button.single-product-content__add-btn.button.alt:focus {
  background-color: var(--lapels-green) !important;
  border-color: transparent !important;
  /* color: var(--lapels-dark-text) !important; */
  opacity: 1;
  text-decoration: none !important;
}
.single-product-content__add-btn.button.added {
  opacity: 0.85;
}
.single-product-content__buttons .single-product-content__wishlist-btn {
  border: 1px solid rgba(9, 25, 19, 0.28) !important;
  background-color: #ffffff !important;
  color: var(--lapels-dark-text) !important;
}
.single-product-content__buttons .single-product-content__wishlist-btn:hover,
.single-product-content__buttons .single-product-content__wishlist-btn:focus {
  border-color: var(--lapels-dark-text) !important;
  background-color: #ffffff !important;
  color: var(--lapels-dark-text) !important;
}
.single-product-content__buttons .single-product-content__wishlist-btn.is-active,
.single-product-content__buttons .single-product-content__wishlist-btn.is-active:hover,
.single-product-content__buttons .single-product-content__wishlist-btn.is-active:focus {
  border-color: var(--lapels-dark-text) !important;
  background-color: var(--lapels-dark-text) !important;
  color: #ffffff !important;
}
.single-product-content__wishlist-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}
.single-product-content__wishlist-icon svg {
  display: block;
  width: 1rem;
  height: 1rem;
}
.single-product-content__wishlist-icon--solid {
  display: none;
}
.single-product-content__wishlist-btn.is-active .single-product-content__wishlist-icon--outline {
  display: none;
}
.single-product-content__wishlist-btn.is-active .single-product-content__wishlist-icon--solid {
  display: inline-flex;
}
.single-product-content__btn-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  line-height: 0;
}
.single-product-content__btn-icon svg,
.single-product-content__btn-icon img {
  display: block;
  width: 1rem;
  height: 1rem;
  object-fit: contain;
}
.single-product-content__btn-icon-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
}
.single-product-content__btn-icon-img--default {
  opacity: 1;
}
.single-product-content__btn-icon-img--hover {
  display: none;
}
.single-product-content__fit-link,
.single-product-content__fit-wrap,
.single-product-content__fit-icon {
  display: none;
}
.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-variations {
  margin: 0 0 1.5rem;
}
.single-product-variations__attributes {
  display: grid;
  gap: 1.35rem;
  margin-bottom: 1.5rem;
}
.single-product-variations__label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}
.single-product-variations__label {
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.single-product-variations__options-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.single-product-variations__size-guide {
  flex-shrink: 0;
  margin-left: auto;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-decoration: underline;
  text-transform: uppercase;
}
.single-product-variations__size-guide:hover,
.single-product-variations__size-guide:focus {
  color: var(--lapels-green);
}
.single-product-variations__options {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}
.single-product-variations__option {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-family: var(--font-body);
  color: var(--lapels-dark-text);
  transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.single-product-variations__option--color {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid transparent;
  border-radius: 50%;
  padding: 2px;
}
.single-product-variations__swatch {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}
.single-product-variations__option--color:hover,
.single-product-variations__option--color:focus,
.single-product-variations__option--color.is-selected {
  border-color: var(--lapels-dark-text);
}
.single-product-variations__option--size,
.single-product-variations__option--default {
  min-width: 2.15rem;
  min-height: 2.15rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid transparent;
  border-radius: 2px;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1;
}
.single-product-variations__option--size:hover,
.single-product-variations__option--size:focus,
.single-product-variations__option--default:hover,
.single-product-variations__option--default:focus {
  border-color: #cfcfcf;
}
.single-product-variations__option--size.is-selected,
.single-product-variations__option--default.is-selected {
  border-color: #cfcfcf;
  background-color: var(--lapels-light-bg);
}
.single-product-variations__option.is-disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.single-product-variations__select {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.single-product-variations .quantity {
  display: none !important;
}
.single-product-variations .woocommerce-variation {
  display: none !important;
}
.single-product-variations .single_variation_wrap {
  margin-top: 0.25rem;
}
.single-product-variations .woocommerce-variation-price {
  margin-bottom: 0.75rem;
}
.single-product-variations .woocommerce-variation-add-to-cart {
  display: block;
  width: 100%;
}
.single-product-variations .single_add_to_cart_button.disabled,
.single-product-variations .single_add_to_cart_button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.single-product-variations .single_add_to_cart_button:not(.disabled):not(:disabled) {
  opacity: 1;
  cursor: pointer;
}
.single-product-trust-points {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: grid;
  gap: 0.1rem;
}
.single-product-trust-points__item {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  color: var(--text-color-grey);
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 400;
  line-height: 1.4;
}
.single-product-trust-points__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  color: var(--lapels-dark-text);
  line-height: 0;
}
.single-product-trust-points__icon svg {
  display: block;
  width: 1.15rem;
  height: 1.15rem;
}
.single-product-trust-points__icon img {
  display: block;
  width: 1.15rem;
  height: 1.15rem;
  object-fit: contain;
}
.single-product-consultation {
  margin: 0.25rem 0 0;
}
.single-product-consultation__link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 400;
  line-height: 1.45;
  text-decoration: none;
  transition: color 0.2s ease;
}
.single-product-consultation__link:hover,
.single-product-consultation__link:focus {
  color: var(--lapels-green);
}
.single-product-consultation__arrow {
  display: inline-flex;
  line-height: 0;
}
.single-product-content__description {
  margin-top: 1.6rem;
  color: var(--text-color-grey);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.6;
}
.single-product-content__description p,
.single-product-content__description li,
.single-product-content__description ul,
.single-product-content__description ol {
  color: var(--text-color-grey);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.6;
}
.single-product-content__description p + p {
  margin-top: 0.65rem;
}
.single-product-content__description ul,
.single-product-content__description ol {
  margin: 0.65rem 0 0;
  padding-left: 1.1rem;
}
.single-product-content__description li + li {
  margin-top: 0.25rem;
}

/* Product info tabs + moderated reviews */
.single-product-content__summary .single-product-tabs {
  margin-top: 1.75rem;
  margin-bottom: 0;
  max-width: none;
  width: 100%;
}
@media (min-width: 768px) {
  .single-product-content__summary .single-product-tabs {
    position: sticky;
    top: 20px;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0 1.25rem;
  }
  .single-product-tabs__item {
    display: contents;
  }
}
.single-product-tabs__tab {
  appearance: none;
  background: none;
  border: 0;
  margin: 0;
  padding: 0.75rem 0;
  color: var(--text-color-grey);
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 0.86rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.3;
  text-align: left;
  transition: color 0.2s ease, border-color 0.2s ease;
}
@media (min-width: 768px) {
  .single-product-tabs__tab {
    order: 1;
    flex: 0 0 auto;
    width: auto;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    white-space: nowrap;
  }
  .single-product-tabs__tab.is-active {
    color: var(--lapels-dark-text);
    border-bottom-color: var(--lapels-green);
  }
  .single-product-tabs__tab-icon {
    display: none;
  }
  .single-product-tabs__panel {
    order: 2;
    flex: 0 0 100%;
    width: 100%;
    margin-top: 1.25rem;
  }
}
.single-product-tabs__tab-label {
  display: block;
}
.single-product-tabs__tab-icon {
  position: relative;
  flex: 0 0 auto;
  width: 0.75rem;
  height: 0.75rem;
}
.single-product-tabs__tab-icon::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.45rem;
  height: 0.45rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translate(-50%, -70%) rotate(45deg);
  transition: transform 0.25s ease;
}
.single-product-tabs__item.is-active .single-product-tabs__tab-icon::before {
  transform: translate(-50%, -20%) rotate(-135deg);
}
.single-product-tabs__tab:hover,
.single-product-tabs__tab:focus {
  color: var(--lapels-dark-text);
  outline: none;
}
.single-product-tabs__panel {
  display: none;
}
.single-product-tabs__panel.is-active {
  display: block;
}
.single-product-tabs__content,
.single-product-tabs__content p,
.single-product-tabs__content li {
  color: var(--text-color-grey);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.65;
}
.single-product-tabs__content p + p {
  margin-top: 0.65rem;
}
.single-product-tabs__content ul,
.single-product-tabs__content ol {
  margin: 0.65rem 0 0;
  padding-left: 1.1rem;
}
@media (max-width: 767px) {
  .single-product-tabs {
    display: flex;
    flex-direction: column;
    border-top: 1px solid rgba(9, 25, 19, 0.12);
  }
  .single-product-tabs__item {
    border-bottom: 1px solid rgba(9, 25, 19, 0.12);
  }
  .single-product-tabs__tab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 1rem 0;
    color: var(--lapels-dark-text);
    font-size: 0.9rem;
    font-weight: 500;
    border-bottom: 0;
  }
  .single-product-tabs__tab.is-active {
    color: var(--lapels-dark-text);
  }
  .single-product-tabs__panel {
    padding: 0 0 1.15rem;
  }
  .single-product-tabs__item:not(.is-active) .single-product-tabs__panel {
    display: none;
  }
}

.lapels-reviews-disclaimer {
  margin: 0.85rem 0 0;
  padding: 0;
  background: none;
  border: 0;
  color: #8a8a8a;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.45;
}
.lapels-reviews-form-note {
  margin: 0 0 1.1rem;
  color: var(--text-color-grey);
  font-size: 0.86rem;
  line-height: 1.5;
}
.lapels-verified-purchase,
.woocommerce-review__verified.lapels-verified-purchase {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-left: 0.5rem;
  padding: 0;
  border: 0;
  background: none;
  color: #2ea44f;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
  vertical-align: middle;
}
.lapels-verified-purchase__icon {
  display: block;
  width: 14px;
  height: 14px;
  object-fit: contain;
  flex-shrink: 0;
}
.lapels-verified-purchase__label {
  color: #2ea44f;
}
.lapels-product-reviews .woocommerce-Reviews-title {
  margin: 0 0 1rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-heading, var(--font-body));
  font-size: 1.15rem;
  font-weight: 500;
}
.lapels-product-reviews .commentlist {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
}
.lapels-product-reviews .commentlist .review,
.lapels-product-reviews .commentlist .comment {
  margin: 0 0 1.35rem;
  padding: 0 0 1.35rem;
  border-bottom: 1px solid rgba(9, 25, 19, 0.1);
}
.lapels-product-reviews .commentlist .meta {
  margin: 0 0 0.45rem;
  color: var(--text-color-grey);
  font-size: 0.86rem;
}
.lapels-product-reviews .woocommerce-review__author {
  color: var(--lapels-dark-text);
  font-weight: 600;
}
.lapels-product-reviews .description,
.lapels-product-reviews .description p {
  color: var(--text-color-grey);
  font-size: 0.92rem;
  line-height: 1.6;
}
.lapels-product-reviews #review_form_wrapper {
  margin-top: 0.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(9, 25, 19, 0.1);
}
.lapels-product-reviews .comment-reply-title {
  display: block;
  margin-bottom: 0.85rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-heading, var(--font-body));
  font-size: 1.05rem;
  font-weight: 500;
}
.lapels-product-reviews .comment-form label {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--lapels-dark-text);
  font-size: 0.86rem;
  font-weight: 500;
}
.lapels-product-reviews .comment-form input[type="text"],
.lapels-product-reviews .comment-form input[type="email"],
.lapels-product-reviews .comment-form textarea,
.lapels-product-reviews .comment-form select {
  width: 100%;
  max-width: 100%;
  margin-bottom: 0.85rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid rgba(9, 25, 19, 0.18);
  background: #fff;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.92rem;
}
.lapels-product-reviews .comment-form .form-submit {
  margin-top: 0.5rem;
}
.lapels-product-reviews .comment-form .submit {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.7rem 1.4rem;
  border: 0;
  background: var(--lapels-dark-text);
  color: #fff;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: background 0.2s ease;
}
.lapels-product-reviews .comment-form .submit:hover,
.lapels-product-reviews .comment-form .submit:focus {
  background: var(--lapels-green);
  outline: none;
}
.lapels-product-reviews .star-rating {
  float: right;
  margin-left: 0.5rem;
}
@media (max-width: 767px) {
  .lapels-product-reviews .star-rating {
    float: none;
    display: block;
    margin: 0 0 0.4rem;
  }
}

.single-product-page + .site-footer {
  margin-top: 1.6rem;
}
.woocommerce .single-product-recommendations,
.single-product-recommendations {
  background: #fff;
  padding: clamp(50px, 5vw, 75px) 0;
  margin-top: clamp(40px, 5vw, 75px) !important;
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  max-width: none;
}
.single-product-page .single-product-content + .single-product-recommendations {
  margin-top: 0 !important;
}
.single-product-recommendations__inner.container,
.single-product-recommendations__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
.single-product-recommendations__title {
  text-align: center;
  margin: 0;
  padding: 0 1rem 1.75rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-heading);
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}
.single-product-recommendations__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2px;
  margin: 0;
  padding: 0;
  width: 100%;
}
.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;
  }
}

html.js-section-reveal #main-content > article > :is(
  section,
  .wp-block-group,
  .wp-block-cover,
  .wp-block-columns,
  .wp-block-media-text,
  .home-category-spotlight,
  .home-collection-tiles,
  .shop-category-tiles,
  .home-product-picker
) {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 1.6s ease, transform 1.6s ease;
}
html.js-section-reveal #main-content > article > :is(
  section,
  .wp-block-group,
  .wp-block-cover,
  .wp-block-columns,
  .wp-block-media-text,
  .home-category-spotlight,
  .home-collection-tiles,
  .shop-category-tiles,
  .home-product-picker
).is-scroll-revealed {
  opacity: 1;
  transform: translateY(0);
}
html.js-section-reveal #main-content > article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) {
  opacity: 1;
  transform: none;
  transition: none;
}
@media (prefers-reduced-motion: reduce) {
  html.js-section-reveal #main-content > article > :is(
    section,
    .wp-block-group,
    .wp-block-cover,
    .wp-block-columns,
    .wp-block-media-text,
    .home-category-spotlight,
    .home-collection-tiles,
    .shop-category-tiles,
    .home-product-picker
  ) {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.single-product-recommendations__image-wrap {
  position: relative;
  background: #f2f2f2;
  overflow: hidden;
  isolation: isolate;
  aspect-ratio: 1 / 1.35;
  width: 100%;
}
.single-product-recommendations__image-wrap img,
.single-product-recommendations__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  transform: scale(1);
  transition: transform 0.9s ease;
}
.single-product-recommendations__link:hover .single-product-recommendations__image-wrap img,
.single-product-recommendations__link:hover .single-product-recommendations__image,
.single-product-recommendations__link:focus .single-product-recommendations__image-wrap img,
.single-product-recommendations__link:focus .single-product-recommendations__image {
  transform: scale(1.06);
}
.single-product-recommendations__name {
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.4;
  margin: 0;
  padding: 0.95rem 0.5rem 0.25rem;
}
.single-product-recommendations__price {
  margin: 0;
  padding: 0 0.5rem 1rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.3;
}
.single-product-recommendations__price .price-prefix,
.single-product-recommendations__price .woocommerce-Price-currencySymbol {
  font-size: 0.95em;
}
@media (max-width: 1280px) {
  .product-category-page ul.products,
  .woocommerce .product-category-page ul.products,
  .product-category-page ul.products.is-grid-4,
  .woocommerce .product-category-page ul.products.is-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .product-category-page ul.products.is-grid-3,
  .woocommerce .product-category-page ul.products.is-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .product-category-page ul.products.is-grid-2,
  .woocommerce .product-category-page ul.products.is-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .product-category-page ul.products.is-grid-1,
  .woocommerce .product-category-page ul.products.is-grid-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}

@media (max-width: 500px) {
  .product-loop-filters__drawer {
    width: min(88vw, 360px);
  }
  .product-loop-filters__drawer-actions {
    flex-direction: column;
  }
  .product-loop-filters__drawer-actions .mccann-btn {
    width: 100%;
    flex: none;
  }
}
@media (max-width: 910px) {
  .product-category-toolbar {
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
  }
  .product-category-toolbar .product-loop-filters {
    flex: 0 0 auto;
    min-width: 0;
  }
  .product-loop-filters__main {
    gap: 0;
  }
  .product-loop-filters__desktop-filters {
    display: none;
  }
  .product-loop-filters__mobile-filter-toggle {
    display: inline-flex;
  }
  .product-loop-filters__sort {
    margin-left: 0;
  }
  .product-category-grid-toggles--desktop {
    display: none;
  }
  .product-category-grid-toggles--mobile {
    display: inline-flex;
  }
  .product-category-catalogue__grid-inner ul.products {
    gap: 4px;
  }
  .product-loop-filters__category-panel,
  .product-loop-filters__price-panel {
    display: none !important;
  }
  .product-loop-filters__drawer {
    left: 0;
    right: auto;
    width: min(88vw, 500px);
    max-width: none;
    min-width: 0;
    height: 100vh;
    top: 0;
    transform: translateX(-100%);
    box-shadow: 10px 0 28px rgba(0, 0, 0, 0.2);
  }
  body.more-filters-open .product-loop-filters__drawer {
    transform: translateX(0);
  }
  .product-category-hero {
    padding: 20px 0 2.5rem;
  }
  .product-category-hero--overlay {
    padding: 0.35rem 0 2rem;
  }
  .product-category-hero__inner {
    grid-template-columns: 1fr;
  }
  .product-category-hero__media {
    order: -1;
  }
  .product-category-hero--overlay .product-category-hero__media {
    order: 0;
    aspect-ratio: 4 / 5;
  }
  .product-category-hero--overlay .product-category-hero__content {
    bottom: 1.35rem;
    width: calc(100% - 1.75rem);
  }
  .product-category-seo-block--media-left .product-category-seo-block__inner,
  .product-category-seo-block--media-right .product-category-seo-block__inner,
  .product-category-seo-block--text-columns .product-category-seo-block__inner {
    grid-template-columns: 1fr;
  }
  .product-category-seo-block__image {
    min-height: clamp(200px, 55vw, 320px);
  }
  .single-product-content__inner {
    grid-template-columns: 1fr;
  }
  .product-category-page ul.products,
  .woocommerce .product-category-page ul.products,
  .product-category-page ul.products.is-grid-3,
  .woocommerce .product-category-page ul.products.is-grid-3,
  .product-category-page ul.products.is-grid-4,
  .woocommerce .product-category-page ul.products.is-grid-4,
  .product-category-page ul.products.is-grid-2,
  .woocommerce .product-category-page ul.products.is-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .product-category-page ul.products.is-grid-1,
  .woocommerce .product-category-page ul.products.is-grid-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .product-category-toolbar__controls {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.85rem;
    width: auto;
    margin-left: 0;
  }

  /* <911px product: no breadcrumb; gallery flush under header */
  body.single-product.has-header-solid #main-content {
    padding-top: 0;
  }
  .single-product-page .single-product-breadcrumb {
    display: none;
  }
  .single-product-content {
    padding: 0 0 18px;
  }
  .single-product-content__gallery {
    position: relative;
    display: block;
    min-height: 0;
    margin-top: 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
    padding-left: 0;
    padding-right: 0;
  }
  .single-product-content__gallery-track {
    flex-direction: row;
    align-items: stretch;
    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%;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    height: auto;
    overflow: hidden;
    display: block;
    line-height: 0;
  }
  .single-product-content__image-tag,
  .single-product-content__image img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center;
  }
  .single-product-content__gallery > .single-product-wishlist-toggle {
    top: 0.85rem;
    right: 0.85rem;
    z-index: 5;
  }
  .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));
    gap: 2px;
    margin: 0;
    padding: 0;
  }
  .single-product-recommendations__image {
    height: 100%;
  }
  .single-product-content__buttons {
    width: 100%;
    max-width: none;
  }
}
@media (max-width: 640px) {
  .product-category-page ul.products,
  .woocommerce .product-category-page ul.products,
  .product-category-page ul.products.is-grid-3,
  .woocommerce .product-category-page ul.products.is-grid-3,
  .product-category-page ul.products.is-grid-4,
  .woocommerce .product-category-page ul.products.is-grid-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .product-category-catalogue__grid-inner ul.products {
    gap: 4px;
  }
  .product-category-catalogue__header .product-category-toolbar {
    flex-direction: row;
    align-items: center;
    flex-wrap: nowrap;
  }
  .product-category-pills {
    gap: 0.35rem 1rem;
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  .product-category-pills__item {
    flex: 0 0 auto;
  }
  .single-product-content__actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.65rem;
  }
  .single-product-content__buttons {
    grid-template-columns: 1fr 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;
    padding-left: 0;
    padding-right: 0;
  }
  .single-product-recommendations__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px;
    margin: 0;
    padding: 0;
  }
  .single-product-recommendations__title {
    letter-spacing: 0.06em;
    font-size: 1.2rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
}
@media (max-width: 474px) {
  .single-product-content__buttons {
    grid-template-columns: 1fr;
  }
}
@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);
  }
}
/* =============== 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-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: 1;
  background: rgba(0, 0, 0, 0.25);
  pointer-events: none;
}

.home-hero.home-hero--inner::after {
  background: rgba(0, 0, 0, 0.5);
}

.home-hero.home-hero--video::after {
  background: rgba(0, 0, 0, 0.45);
}

.home-hero.home-hero--inner.home-hero--video::after {
  background: rgba(0, 0, 0, 0.55);
}

.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: 2;
}

.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: 2;
}

.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-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: 2;
}

.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 archive =============== */
.blog-archive-page {
  background-color: #ffffff;
}

.blog-archive-header {
  padding: clamp(0.5rem, 2vw, 1rem) 0 clamp(2.25rem, 3vw, 2.75rem);
  text-align: center;
}

.blog-archive-header__eyebrow {
  margin: 0 0 clamp(1rem, 2.5vw, 1.5rem);
  padding-bottom: 0;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.blog-archive-header__dot {
  display: inline-block;
  margin-right: 0.5rem;
  font-size: 1.5rem;
  line-height: 1;
  vertical-align: middle;
  transform: translateY(-0.08em);
}

.blog-archive-header__intro > *:first-child {
  margin-top: 0;
}

.blog-archive-header__intro > *:last-child {
  margin-bottom: 0;
}

.blog-archive-header__intro .blog-archive-title,
.blog-archive-header__intro h2.blog-archive-title {
  margin: 0 0 0.85rem;
  padding-bottom: 0;
  color: var(--lapels-dark-text);
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 500;
  line-height: 1.15;
  text-align: center;
}

.blog-archive-header__intro p.blog-archive-title,
.blog-archive-header__intro .blog-archive-title p,
.blog-archive-header__intro .blog-archive-title:last-child {
  margin: 0 auto;
  max-width: 36rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: clamp(0.95rem, 1.8vw, 1.05rem);
  font-weight: 400;
  line-height: 1.55;
  text-align: center;
}

.blog-archive-categories {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 1.75rem;
  margin-bottom: clamp(2rem, 4vw, 3rem);
  padding-bottom: 0.25rem;
}

/* Press featured (latest) hero — before category nav */
.press-featured {
  margin: 0 auto clamp(1.75rem, 4vw, 2.75rem);
}
.press-featured__link {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: clamp(280px, 42vw, 520px);
  overflow: hidden;
  border-radius: var(--border-radius-large);
  color: #ffffff;
  text-decoration: none;
  isolation: isolate;
}
.press-featured__link:hover,
.press-featured__link:focus {
  color: #ffffff;
  text-decoration: none;
}
.press-featured__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.press-featured__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1);
  transition: transform 0.9s ease;
}
.press-featured__link:hover .press-featured__image,
.press-featured__link:focus .press-featured__image {
  transform: scale(1.04);
}
.press-featured__overlay {
  position: absolute;
  inset: 0;
  background: rgba(9, 25, 19, 0.52);
}
.press-featured__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
  max-width: 44rem;
  padding: clamp(1.5rem, 4vw, 3rem) 1.25rem;
  text-align: center;
}
.press-featured__publication {
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.92);
}
.press-featured__title {
  margin: 0;
  padding-bottom: 0;
  color: #ffffff;
  font-family: var(--font-heading);
  font-size: clamp(1.45rem, 3.4vw, 2.35rem);
  font-weight: 500;
  line-height: 1.25;
}
.press-featured__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.35rem;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  color: #ffffff;
}
.press-featured__cta-arrow {
  display: block;
  width: 0.75rem;
  height: 0.75rem;
  flex: 0 0 auto;
}

.blog-archive-category {
  position: relative;
  display: inline-block;
  padding: 0.15rem 0 0.65rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
  transition: opacity 0.25s ease;
}

.blog-archive-category:hover,
.blog-archive-category:focus {
  opacity: 0.7;
  text-decoration: none;
}

.blog-archive-category.is-current::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background-color: var(--lapels-dark-text);
}

.blog-archive {
  margin-bottom: clamp(3.5rem, 7vw, 5.5rem);
}

.blog-archive-pagination {
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
}

.blog-archive-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  min-height: 2rem;
  margin: 0 0.35rem;
  padding: 0;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  transition: opacity 0.25s ease;
}

.blog-archive-pagination .page-numbers:hover,
.blog-archive-pagination .page-numbers:focus {
  opacity: 0.7;
  text-decoration: none;
}

.blog-archive-pagination .page-numbers.current {
  min-width: 2rem;
  min-height: 2rem;
  border-radius: 50%;
  background-color: var(--lapels-dark-text);
  color: #ffffff;
  font-weight: 500;
  opacity: 1;
}

.blog-archive-pagination .page-numbers.dots {
  min-width: auto;
  letter-spacing: 0.12em;
}

.blog-archive-pagination ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.blog-archive-pagination li {
  margin: 0;
}

/* =============== Lapels Homepage =============== */
.lapels-front-page__article {
  margin: 0;
}
.shop-category-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
}
.lapels-front-page .shop-category-tiles {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.shop-category-tiles__link {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  color: #fff;
  text-decoration: none;
}
.shop-category-tiles__link:hover,
.shop-category-tiles__link:focus {
  color: #fff;
  text-decoration: none;
  opacity: 1;
}
.shop-category-tiles__media {
  position: absolute;
  inset: 0;
}
.shop-category-tiles__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.6s ease;
}
.shop-category-tiles__link::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(9, 25, 19, 0.38);
  transition: background-color 0.3s ease;
}
.shop-category-tiles__link:hover::after,
.shop-category-tiles__link:focus::after {
  background: rgba(9, 25, 19, 0.22);
}
.shop-category-tiles__link:hover .shop-category-tiles__image,
.shop-category-tiles__link:focus .shop-category-tiles__image {
  transform: scale(1.04);
}
.shop-category-tiles__label {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  color: #fff;
  font-family: var(--font-heading);
  font-size: clamp(1rem, 1.5vw, 1.35rem);
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
  pointer-events: none;
}
@media (min-width: 768px) {
  .shop-category-tiles {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (prefers-reduced-motion: reduce) {
  .shop-category-tiles__image,
  .shop-category-tiles__link::after {
    transition: none;
  }
  .shop-category-tiles__link:hover .shop-category-tiles__image,
  .shop-category-tiles__link:focus .shop-category-tiles__image {
    transform: none;
  }
}

.home-collection-tiles {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.home-collection-tiles__link {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  color: #fff;
  text-decoration: none;
}
.home-collection-tiles__link:hover,
.home-collection-tiles__link:focus {
  color: #fff;
  text-decoration: none;
  opacity: 1;
}
.home-collection-tiles__media {
  position: absolute;
  inset: 0;
}
.home-collection-tiles__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.6s ease;
}
.home-collection-tiles__link::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(9, 25, 19, 0.38);
  transition: background-color 0.3s ease;
}
.home-collection-tiles__link:hover::after,
.home-collection-tiles__link:focus::after {
  background: rgba(9, 25, 19, 0.22);
}
.home-collection-tiles__link:hover .home-collection-tiles__image,
.home-collection-tiles__link:focus .home-collection-tiles__image {
  transform: scale(1.04);
}
.home-collection-tiles__copy {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 1.25rem;
  text-align: center;
  pointer-events: none;
}
.home-collection-tiles__title {
  color: #fff;
  font-family: var(--font-heading);
  font-size: clamp(1.15rem, 2vw, 1.65rem);
  font-weight: 400;
  line-height: 1.2;
}
.home-collection-tiles__subtitle {
  color: #fff;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.3;
}
.home-collection-tiles__link--wide {
  aspect-ratio: 15 / 16;
}
@media (min-width: 768px) {
  .home-collection-tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-collection-tiles__link {
    aspect-ratio: 4 / 3;
  }
  .home-collection-tiles__link--wide {
    grid-column: 1 / -1;
    aspect-ratio: 5 / 2;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-collection-tiles__image,
  .home-collection-tiles__link::after {
    transition: none;
  }
  .home-collection-tiles__link:hover .home-collection-tiles__image,
  .home-collection-tiles__link:focus .home-collection-tiles__image {
    transform: none;
  }
}

.home-product-picker {
  margin: 0;
  padding: 0.5rem 0 1rem;
}
.home-product-picker__title {
  width: min(1600px, calc(100% - 32px));
  margin: 0 auto 1.15rem;
  padding: 0;
  color: var(--lapels-dark-green);
  font-size: clamp(2rem, 3vw, 2.75rem);
  font-weight: 500;
  line-height: 1.15;
  text-align: center;
}
.home-product-picker__filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: min(1600px, calc(100% - 32px));
  gap: 0.35rem 1.25rem;
  margin: 0 auto 1.75rem;
}
.home-product-picker__filter {
  appearance: none;
  margin: 0;
  padding: 0.1rem 0;
  border: 0;
  background: none;
  box-shadow: none;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  cursor: pointer;
}
.home-product-picker__filter.is-active {
  text-decoration: underline;
  text-underline-offset: 0.28em;
}
.home-product-picker__panel[hidden] {
  display: none !important;
}
.home-product-picker__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem 4px;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.home-product-picker__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--lapels-dark-text);
  text-align: center;
  text-decoration: none;
}
.home-product-picker__card:hover,
.home-product-picker__card:focus {
  color: var(--lapels-dark-text);
  text-decoration: none;
  opacity: 1;
}
.home-product-picker__media {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: #f2f2f2;
}
.home-product-picker__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.home-product-picker__name {
  display: block;
  max-width: 16rem;
  margin-top: 0.9rem;
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 400;
  line-height: 1.35;
}
.home-product-picker__price {
  display: block;
  margin-top: 0.35rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.2;
}
.home-product-picker__price .amount,
.home-product-picker__price del,
.home-product-picker__price ins {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  text-decoration: none;
}
@media (min-width: 768px) {
  .home-product-picker__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.75rem 4px;
  }
}
@media (min-width: 1280px) {
  .home-product-picker__title,
  .home-product-picker__filters {
    width: min(1600px, calc(100% - 56px));
  }
}
@media (min-width: 1440px) {
  .home-product-picker__title,
  .home-product-picker__filters {
    width: min(1600px, calc(100% - 72px));
  }
}

.home-category-spotlight__content {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.home-category-spotlight__media {
  display: none;
}
.home-category-spotlight__title {
  margin: 0 0 1.15rem;
  padding: 0;
  color: var(--lapels-dark-green);
  font-size: clamp(1.6rem, 2.4vw, 2.15rem);
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
}
.home-category-products {
  position: relative;
}
.home-category-products__viewport {
  overflow: hidden;
}
.home-category-products__track {
  display: flex;
  flex-wrap: nowrap;
  position: relative;
  transition: transform 0.45s ease;
}
.home-category-products__card {
  display: flex;
  flex: 0 0 50%;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  min-width: 0;
  padding: 0 4px 0 0;
  color: var(--lapels-dark-text);
  text-align: center;
  text-decoration: none;
}
.home-category-products__card:hover,
.home-category-products__card:focus {
  color: var(--lapels-dark-text);
  text-decoration: none;
  opacity: 1;
}
.home-category-products__media {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #f2f2f2;
}
.home-category-products__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.home-category-products__name {
  display: block;
  margin-top: 0.7rem;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.35;
}
.home-category-products__price {
  display: block;
  margin-top: 0.3rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.2;
}
.home-category-products__price .amount,
.home-category-products__price del,
.home-category-products__price ins {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-decoration: none;
}
.home-category-spotlight__more {
  margin: 1.25rem 0 0;
  text-align: center;
}
.home-category-spotlight__more .link-underline {
  margin-top: 0;
}
@media (min-width: 768px) {
  .home-category-spotlight {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 4px;
    align-items: stretch;
  }
  .home-category-spotlight__media {
    display: block;
    position: relative;
    overflow: hidden;
    min-height: 100%;
  }
  .home-category-spotlight__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
  .home-category-products__card {
    flex-basis: 25%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-category-products__track {
    transition: none;
  }
}

.lapels-front-page .lapels-home-hero.alignfull,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover).alignfull,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.lapels-home-hero,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover).alignfull,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  padding: clamp(5rem, 14vw, 9rem) clamp(1.25rem, 4vw, 2rem) clamp(0.5rem, 2.5vw, 2rem) !important;
  box-sizing: border-box;
  overflow: hidden;
}

.lapels-home-hero::after,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover).alignfull::after,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.62) 0%,
    rgba(0, 0, 0, 0.28) 38%,
    rgba(0, 0, 0, 0.08) 62%,
    transparent 100%
  );
}

.lapels-home-hero .wp-block-cover__image-background,
.lapels-home-hero .wp-block-cover__background,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-cover__image-background,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-cover__background {
  position: absolute;
  inset: 0;
}

.lapels-home-hero .wp-block-cover__inner-container,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: none;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  row-gap: 1rem;
  text-align: center;
}

.lapels-home-hero__content,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-cover__inner-container > .wp-block-group {
  width: min(100%, 720px);
  text-align: center;
}

.lapels-home-hero__content > .lapels-home-hero__eyebrow,
.lapels-home-hero__content > .lapels-home-hero__title,
.lapels-home-hero__content > .lapels-home-hero__description,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .lapels-home-hero__eyebrow,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .lapels-home-hero__title,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .lapels-home-hero__description,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-cover__inner-container > :is(p, h1, h2, h3, h4, h5, h6) {
  color: var(--lapels-light-text);
}

.lapels-home-hero__eyebrow,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .lapels-home-hero__eyebrow {
  margin: 0 0 0.85rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.lapels-home-hero__title,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .lapels-home-hero__title,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-cover__inner-container > h1 {
  /* font-size: clamp(28px, 2.8vw, 36px); */
  margin: 0;
  padding-bottom: 0;
}

.lapels-home-hero__highlight {
  color: var(--lapels-gold);
  font-weight: 400;
}

.lapels-home-hero__description,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .lapels-home-hero__description {
  margin: 0 0 1.75rem;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}

.lapels-home-hero__content .wp-block-buttons,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem 1rem;
  margin-top: 0;
}

.lapels-home-hero__cta .wp-block-button__link,
.is-style-lapels-hero-cta .wp-block-button__link,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .lapels-home-hero__cta .wp-block-button__link,
.lapels-home-hero__content .wp-block-buttons .wp-block-button .wp-block-button__link,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-buttons .wp-block-button .wp-block-button__link {
  display: inline-block;
  min-width: 12.5rem !important;
  max-height: none !important;
  height: auto !important;
  padding: 1rem 2.25rem 0.9rem !important;
  background-color: var(--lapels-light-bg) !important;
  color: var(--lapels-green) !important;
  border: 1px solid transparent;
  border-radius: var(--border-radius-small) !important;
  box-shadow: none;
  font-family: var(--font-body);
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  text-decoration: none !important;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

/* Even buttons: swapped default colours */
.lapels-home-hero__content .wp-block-buttons .wp-block-button:nth-child(even) .wp-block-button__link,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-buttons .wp-block-button:nth-child(even) .wp-block-button__link {
  background-color: var(--lapels-green) !important;
  color: var(--lapels-light-bg) !important;
}

.lapels-home-hero__cta .wp-block-button__link:hover,
.lapels-home-hero__cta .wp-block-button__link:focus,
.is-style-lapels-hero-cta .wp-block-button__link:hover,
.is-style-lapels-hero-cta .wp-block-button__link:focus,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .lapels-home-hero__cta .wp-block-button__link:hover,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .lapels-home-hero__cta .wp-block-button__link:focus,
.lapels-home-hero__content .wp-block-buttons .wp-block-button:nth-child(odd) .wp-block-button__link:hover,
.lapels-home-hero__content .wp-block-buttons .wp-block-button:nth-child(odd) .wp-block-button__link:focus,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-buttons .wp-block-button:nth-child(odd) .wp-block-button__link:hover,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-buttons .wp-block-button:nth-child(odd) .wp-block-button__link:focus {
  background-color: var(--lapels-green) !important;
  color: var(--lapels-light-bg) !important;
  border-color: var(--lapels-green) !important;
  opacity: 1;
  text-decoration: none !important;
}

.lapels-home-hero__content .wp-block-buttons .wp-block-button:nth-child(even) .wp-block-button__link:hover,
.lapels-home-hero__content .wp-block-buttons .wp-block-button:nth-child(even) .wp-block-button__link:focus,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-buttons .wp-block-button:nth-child(even) .wp-block-button__link:hover,
body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .wp-block-buttons .wp-block-button:nth-child(even) .wp-block-button__link:focus {
  background-color: var(--lapels-light-bg) !important;
  color: var(--lapels-green) !important;
  border-color: var(--lapels-green) !important;
  opacity: 1;
  text-decoration: none !important;
}

/* Non-hero cover buttons: second button outline style */
article > .wp-block-cover ~ .wp-block-cover .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.85rem 1rem;
}

article > .wp-block-cover ~ .wp-block-cover .wp-block-buttons .wp-block-button:nth-child(even) .wp-block-button__link {
  display: inline-block;
  min-width: 12.5rem !important;
  max-height: none !important;
  height: auto !important;
  padding: 1rem 2.25rem 0.9rem !important;
  background-color: transparent !important;
  color: var(--lapels-light-text) !important;
  border: 1px solid var(--lapels-light-text) !important;
  border-radius: var(--border-radius-small) !important;
  box-shadow: none;
  font-family: var(--font-body);
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  text-decoration: none !important;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

article > .wp-block-cover ~ .wp-block-cover .wp-block-buttons .wp-block-button:nth-child(even) .wp-block-button__link:hover,
article > .wp-block-cover ~ .wp-block-cover .wp-block-buttons .wp-block-button:nth-child(even) .wp-block-button__link:focus {
  background-color: var(--lapels-green) !important;
  /* color: var(--lapels-dark-text) !important; */
  border-color: var(--lapels-green) !important;
  opacity: 1;
  text-decoration: none !important;
}

@media (max-width: 767px) {
  .lapels-home-hero,
  body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover).alignfull,
  body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) {
    padding-bottom: clamp(1.5rem, 2.5vw, 1.75rem) !important;
  }

  .lapels-home-hero__description,
  body.has-header-cover-hero article > .wp-block-cover:not(.wp-block-cover ~ .wp-block-cover) .lapels-home-hero__description {
    margin-bottom: 1.5rem;
  }

  article > .wp-block-cover ~ .wp-block-cover .wp-block-buttons .wp-block-button:nth-child(even) .wp-block-button__link {
    min-width: 10.5rem !important;
    padding: 0.9rem 1.75rem !important;
  }

  .lapels-home-hero__cta .wp-block-button__link,
  .is-style-lapels-hero-cta .wp-block-button__link {
    min-width: 10.5rem !important;
    padding: 0.9rem 1.75rem !important;
  }
}

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

.blog-archive .blog-index-grid {
  margin-top: 0;
}

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

.blog-archive .blog-post-card__image {
  border-radius: var(--border-radius-small);
}

.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;
  font-size: 0.78rem;
  font-weight: 400;
  color: #6d7872;
}

.blog-post-card__title {
  margin-top: 0.5rem;
  margin-bottom: 0.65rem;
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.8vw, 1.15rem);
  font-weight: 600;
  line-height: 1.35;
  padding-bottom: 0;
}

.blog-post-card__date {
  margin-top: 0;
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 400;
  color: #8e8e8e;
}
.blog-post-card__cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--lapels-dark-text);
}
.blog-post-card__cta-arrow {
  display: block;
  width: 0.75rem;
  height: 0.75rem;
  flex: 0 0 auto;
}
.blog-post-card--press .blog-post-card__title {
  margin-bottom: 0.85rem;
}

@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(3, minmax(0, 1fr));
    column-gap: clamp(1.1rem, 1.8vw, 1.8rem);
    row-gap: 2.1rem;
  }
}

/* =============== Single blog page =============== */
.single-blog-page h1,
.single-blog-page h2,
.single-blog-page h3,
.single-blog-page h4,
.single-blog-page h5,
.single-blog-page h6 {
  font-family: var(--font-body);
}

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

.single-blog-header {
  padding: clamp(2.5rem, 6vw, 4rem) 0 clamp(1.75rem, 3vw, 2.75rem);
  text-align: center;
}

.single-blog-header__title {
  max-width: 52rem;
  margin: 0 auto 1.25rem;
  padding-bottom: 0;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: clamp(1.75rem, 3.2vw, 2.5rem);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.25px;
  text-align: center;
}

.single-blog-header__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.65rem 1.5rem;
  color: #7a8680;
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 400;
  line-height: 1.4;
}

.single-blog-header__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.single-blog-header__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  color: inherit;
}

.single-blog-header__icon svg {
  display: block;
  width: 1rem;
  height: 1rem;
}

.single-blog-featured-image {
  margin: 0 0 clamp(2rem, 4vw, 3rem);
}

.single-blog-featured-image__img {
  display: block;
  width: 100%;
  height: auto;
}

@media (min-width: 768px) {
  .single-blog-featured-image .container {
    max-height: 500px;
    overflow: hidden;
  }

  .single-blog-featured-image__img {
    width: 100%;
    height: 500px;
    max-height: 500px;
    object-fit: cover;
    object-position: center center;
  }
}

.single-blog-content p + h2,
.single-blog-content .wp-block-buttons + h2,
.single-blog-content .wp-block-columns + h2,
.single-blog-content .wp-block-columns + .wp-block-columns,
.single-blog-content .wp-block-table + h2,
.single-blog-content .wp-block-image + h2,
.single-blog-content .wp-block-gallery + h2,
.single-blog-content .wp-block-media-text + h2,
.single-blog-content .wp-block-quote + h2,
.single-blog-content .wp-block-video + h2,
.single-blog-content .wp-block-audio + h2,
.single-blog-content .wp-block-embed + h2,
.single-blog-content .wp-block-html + h2,
.single-blog-content .wp-block-list + h2,
.single-blog-content h2 {
  margin-top: 2em;
}

.single-blog-content p + h3,
.single-blog-content p + h4,
.single-blog-content p + h5,
.single-blog-content p + h6,
.single-blog-content p + .wp-block-buttons,
.single-blog-content p + .wp-block-columns,
.single-blog-content p + .wp-block-table,
.single-blog-content p + .wp-block-gallery,
.single-blog-content p + .wp-block-media-text,
.single-blog-content p + .wp-block-quote,
.single-blog-content p + .wp-block-video,
.single-blog-content p + .wp-block-audio,
.single-blog-content p + .wp-block-embed,
.single-blog-content p + .wp-block-html,
.single-blog-content p + .wp-block-image,
.single-blog-content .wp-block-list {
  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 ul,
.single-blog-content .wp-block-list {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}

.single-blog-content ul li,
.single-blog-content .wp-block-list li {
  position: relative;
  padding-left: 1.6rem;
}

.single-blog-content ul li::before,
.single-blog-content .wp-block-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.52em;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background-color: var(--lapels-gold);
}

.single-blog-content-section {
  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(3rem, 6vw, 5rem);
  padding-bottom: clamp(2rem, 4vw, 3rem);
}

.related-posts .container {
  border-top: 0;
  padding-top: 0;
}

.related-posts__title {
  margin: 0 0 clamp(2rem, 4vw, 3rem);
  padding-bottom: 0;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
}

.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-posts__grid {
  gap: clamp(1.5rem, 3vw, 2.5rem);
}

.related-posts__card {
  min-width: 0;
}

.related-posts__card .blog-post-card__image {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: var(--border-radius-small);
  background-color: var(--grey-2);
}

.related-posts__card .blog-post-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: none;
  transition: transform 0.45s ease;
}

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

.related-posts__card .blog-post-card__category {
  margin-top: 0.85rem;
  margin-bottom: 0;
  color: #6d7872;
  font-size: 0.78rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.related-posts__card .blog-post-card__title {
  margin-top: 0.5rem;
  margin-bottom: 0.65rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.8vw, 1.15rem);
  font-weight: 600;
  line-height: 1.35;
}

.related-posts__card .blog-post-card__date {
  margin-top: 0;
  color: #8e8e8e;
  font-size: 0.78rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.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) {
  .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;
  }
}


/* =============== Header =============== */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  background-color: var(--lapels-dark-green);
  color: var(--lapels-light-text);
  transition: transform 0.45s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

body.has-top-message .site-header,
body.has-currency-bar .site-header {
  top: var(--header-offset-top);
}

body.admin-bar .site-header {
  top: 32px;
}

body.admin-bar.has-top-message .site-header,
body.admin-bar.has-currency-bar .site-header {
  top: calc(32px + var(--header-offset-top));
}

.site-header.is-header-hidden {
  transform: translateY(-100%);
  pointer-events: none;
}

body.has-header-solid #wrapper {
  padding-top: var(--site-header-height, 88px);
}

body.has-header-cover-hero .site-header {
  background-color: transparent;
  box-shadow: none;
}

body.has-header-cover-hero .site-header.is-scrolled {
  background-color: var(--lapels-dark-green);
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.18);
}

@media (max-width: 782px) {
  body.admin-bar .site-header {
    top: 46px;
  }

  body.admin-bar.has-top-message .site-header,
  body.admin-bar.has-currency-bar .site-header {
    top: calc(46px + var(--header-offset-top));
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header {
    transition: none;
  }
}

body.has-header-solid #main-content {
  padding-top: 50px;
}

@media (min-width: 782px) {
  body.has-header-solid #main-content {
    padding-top: 75px;
  }
}

.site-header-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(1rem, 2vw, 2.5rem);
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.site-branding {
  display: flex;
  align-items: center;
  justify-self: start;
}

.site-branding-link {
  display: inline-flex;
  align-items: center;
  color: var(--lapels-light-text);
  text-decoration: none;
}

.site-branding .site-title {
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.1;
  color: var(--lapels-light-text);
}

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

.site-navigation {
  justify-self: center;
  margin-left: 0;
}

.site-navigation .site-menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 0;
}

.site-navigation .site-menu > .menu-item {
  position: relative;
}

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

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

.site-navigation .site-menu > .menu-item > a {
  display: inline-flex;
  align-items: center;
  padding: 0.75rem clamp(0.5rem, 0.8vw, 0.95rem);
}

/* Desktop dropdown — level 2 */
.site-navigation .site-menu > .menu-item-has-children > .sub-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 50%;
  z-index: 200;
  display: block;
  min-width: 15.5rem;
  margin: 0;
  padding: 0.65rem 0;
  list-style: none;
  background-color: var(--lapels-dark-green);
  border: 1px solid rgba(249, 249, 249, 0.12);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 8px);
  transition: opacity 0.35s ease, transform 0.35s ease, visibility 0.35s ease;
}

.site-navigation .site-menu > .menu-item-has-children > .sub-menu::before {
  content: "";
  position: absolute;
  top: -1.5rem;
  left: -1rem;
  width: calc(100% + 2rem);
  height: 1.5rem;
}

.site-navigation .site-menu > .menu-item-has-children:hover > .sub-menu,
.site-navigation .site-menu > .menu-item-has-children:focus-within > .sub-menu,
.site-navigation .site-menu > .menu-item-has-children.is-submenu-open > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.site-navigation .site-menu > .menu-item-has-children > .sub-menu > .menu-item {
  position: relative;
  margin: 0;
  width: 100%;
}

.site-navigation .site-menu > .menu-item-has-children > .sub-menu > .menu-item > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  padding: 0.85rem 1.15rem;
  text-transform: none;
  letter-spacing: 0.04em;
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1.35;
  white-space: nowrap;
  box-sizing: border-box;
}

.site-navigation .site-menu > .menu-item-has-children > .sub-menu > .menu-item-has-children > a::after {
  content: "";
  width: 0.35rem;
  height: 0.35rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
  opacity: 0.75;
  flex: 0 0 auto;
}

.site-navigation .site-menu > .menu-item-has-children > .sub-menu > .menu-item > a:hover,
.site-navigation .site-menu > .menu-item-has-children > .sub-menu > .menu-item > a:focus {
  opacity: 1;
  background-color: rgba(249, 249, 249, 0.08);
}

/* Desktop dropdown — level 3 flyout */
.site-navigation .site-menu .sub-menu .sub-menu {
  position: absolute;
  top: -0.65rem;
  left: 100%;
  z-index: 210;
  display: block;
  min-width: 14.5rem;
  margin: 0;
  padding: 0.65rem 0;
  list-style: none;
  background-color: var(--lapels-dark-green);
  border: 1px solid rgba(249, 249, 249, 0.12);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(8px);
  transition: opacity 0.35s ease, transform 0.35s ease, visibility 0.35s ease;
}

.site-navigation .site-menu .sub-menu .menu-item-has-children:hover > .sub-menu,
.site-navigation .site-menu .sub-menu .menu-item-has-children:focus-within > .sub-menu,
.site-navigation .site-menu .sub-menu .menu-item-has-children.is-submenu-open > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
}

.site-navigation .site-menu .sub-menu .sub-menu > .menu-item > a {
  display: block;
  width: 100%;
  padding: 0.8rem 1.15rem;
  text-transform: none;
  letter-spacing: 0.03em;
  font-size: 0.78rem;
  font-weight: 400;
  line-height: 1.4;
  white-space: nowrap;
  box-sizing: border-box;
}

.site-navigation .site-menu .sub-menu .sub-menu > .menu-item > a:hover,
.site-navigation .site-menu .sub-menu .sub-menu > .menu-item > a:focus {
  opacity: 1;
  background-color: rgba(249, 249, 249, 0.08);
}

/* Keep open while moving into nested panel, including a diagonal path. */
.site-navigation .site-menu .sub-menu .menu-item-has-children > .sub-menu::before {
  content: "";
  position: absolute;
  top: -0.75rem;
  bottom: -0.75rem;
  left: -1rem;
  width: 1rem;
  height: auto;
}

.site-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(0.65rem, 1.2vw, 1rem);
  justify-self: end;
}

.site-header-action {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--lapels-light-text);
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.25s ease;
}

.site-header-action:hover,
.site-header-action:focus {
  opacity: 0.75;
  text-decoration: none;
}

.site-header-action__icon,
.site-header-cart__icon {
  display: block;
  width: 22px;
  height: 22px;
  object-fit: contain;
}

.site-header-cart__count {
  position: absolute;
  top: -2px;
  right: -4px;
  min-width: 14px;
  height: 14px;
  padding: 2px 3px 0;
  display: none;
  align-items: center;
  justify-content: center;
  background-color: var(--lapels-light-text);
  color: var(--lapels-dark-text);
  border: 1px solid var(--lapels-light-text);
  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;
}

.hamberger-menu {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 32px;
  height: 24px;
}

.hamberger-menu span {
  width: 22px;
  height: 1.5px;
  background-color: var(--lapels-light-text);
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.site-header-search {
  border-top: 1px solid rgba(249, 249, 249, 0.15);
  background-color: var(--lapels-dark-green);
}

.site-header-search__inner {
  padding: 0.85rem 0 1rem;
}

.site-header-search__form {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.site-header-search__input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.65rem 0.85rem;
  border: 1px solid rgba(249, 249, 249, 0.25);
  background: rgba(255, 255, 255, 0.08);
  color: var(--lapels-light-text);
}

.site-header-search__input::placeholder {
  color: rgba(249, 249, 249, 0.7);
}

.site-header-search__submit {
  padding: 0.65rem 1rem;
  border: 0;
  background: var(--lapels-light-bg);
  color: var(--lapels-dark-text);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
}

.site-header-search .aws-container,
.site-header-search .aws-search-form,
.site-header-search .aws-wrapper {
  width: 100%;
  max-width: none;
}

.site-header-search .aws-search-field {
  width: 100% !important;
  height: auto !important;
  padding: 0.65rem 2.75rem 0.65rem 0.85rem !important;
  border: 1px solid rgba(249, 249, 249, 0.25) !important;
  border-radius: 0 !important;
  background: rgba(255, 255, 255, 0.08) !important;
  color: var(--lapels-light-text) !important;
  box-shadow: none !important;
  font-family: var(--font-body);
  font-size: 0.9rem;
}

.site-header-search .aws-search-field::placeholder {
  color: rgba(249, 249, 249, 0.7);
}

.site-header-search .aws-search-btn {
  background: transparent;
}

.site-header-search .aws-search-btn svg {
  fill: var(--lapels-light-text);
}

.site-header-search .aws-search-result {
  color: var(--lapels-dark-text);
}

.menu-mobile-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}

.menu-mobile {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 10001;
  display: block;
  width: min(88vw, 360px);
  height: 100vh;
  height: 100dvh;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background-color: var(--lapels-dark-green);
  box-shadow: -12px 0 32px rgba(0, 0, 0, 0.22);
  transform: translateX(100%);
  visibility: hidden;
  pointer-events: none;
  transition: transform 0.35s ease, visibility 0.35s ease;
}

.menu-mobile.is-open,
.menu-mobile-backdrop.is-open {
  visibility: visible;
  pointer-events: auto;
}

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

.menu-mobile-backdrop.is-open {
  opacity: 1;
}

.menu-mobile[hidden],
.menu-mobile-backdrop[hidden] {
  display: none;
}

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

body.mobile-menu-open .menu-mobile {
  z-index: 10003;
}

.menu-mobile__close {
  position: absolute;
  top: calc(var(--header-offset-top, 0px) + 1rem);
  right: 1rem;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.menu-mobile__close span {
  position: absolute;
  width: 1.15rem;
  height: 1.5px;
  background-color: var(--lapels-light-text);
}

.menu-mobile__close span:first-child {
  transform: rotate(45deg);
}

.menu-mobile__close span:last-child {
  transform: rotate(-45deg);
}

.menu-mobile__inner {
  padding: calc(var(--header-offset-top, 0px) + 4.5rem) 1.5rem 2rem;
}

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

.site-menu-mobile li > a {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 3.4rem;
  padding: 1.05rem 0;
  border-bottom: 1px solid rgba(249, 249, 249, 0.1);
  color: var(--lapels-light-text);
  text-decoration: none;
  text-transform: uppercase;
  font-family: var(--font-body);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
}

.menu-mobile .frcc-menu-item {
  display: block !important;
  margin: 0 !important;
}

.menu-mobile .frcc-currency-converter,
.menu-mobile .frcc-combobox {
  width: 100% !important;
  color: var(--lapels-light-text) !important;
}

.menu-mobile .frcc-combobox-input {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  padding: 0.85rem 1.75rem 0.85rem 2rem !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(249, 249, 249, 0.1) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: transparent !important;
  caret-color: var(--lapels-light-text);
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none;
  box-shadow: none !important;
  outline: none !important;
}

.menu-mobile .frcc-combobox-input.frcc-searching {
  color: var(--lapels-light-text) !important;
}

.menu-mobile .frcc-menu-label {
  display: block;
  padding: 0.85rem 1.75rem 0.85rem 2rem;
  border-bottom: 1px solid rgba(249, 249, 249, 0.1);
  color: var(--lapels-light-text);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 400;
  line-height: 1.4;
  white-space: normal;
  pointer-events: none;
}

.menu-mobile .frcc-combobox:has(.frcc-combobox-input.frcc-searching) .frcc-menu-label {
  visibility: hidden;
}

.menu-mobile .frcc-combobox-arrow {
  right: 0 !important;
  color: var(--lapels-light-text) !important;
}

.menu-mobile .frcc-combobox-list {
  width: 100% !important;
  background-color: var(--lapels-dark-green) !important;
  border: 1px solid rgba(249, 249, 249, 0.16) !important;
  border-radius: 0 !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28) !important;
  scrollbar-color: rgba(249, 249, 249, 0.35) transparent;
}

.menu-mobile .frcc-combobox-item {
  color: var(--lapels-light-text) !important;
  font-family: var(--font-body);
  font-size: 0.78rem !important;
  line-height: 1.45;
  white-space: normal !important;
}

.menu-mobile .frcc-combobox-item:hover,
.menu-mobile .frcc-combobox-item.frcc-selected {
  background-color: rgba(249, 249, 249, 0.08) !important;
  color: var(--lapels-light-text) !important;
}

.site-menu-mobile .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0 0 0.35rem 0.85rem;
  display: none;
}

.site-menu-mobile .sub-menu a {
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  opacity: 0.88;
  text-transform: none;
}

.site-menu-mobile .sub-menu .sub-menu {
  padding-left: 0.75rem;
}

.site-menu-mobile .menu-item-has-children {
  position: relative;
}

.site-menu-mobile .menu-item-has-children > a {
  padding-right: 3.25rem;
}

.site-menu-mobile .menu-mobile__toggle {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.4rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--lapels-light-text);
  cursor: pointer;
}

.site-menu-mobile .menu-mobile__toggle::after {
  content: "";
  width: 0.4rem;
  height: 0.4rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-15%) rotate(45deg);
  transition: transform 0.25s ease;
}

.site-menu-mobile .menu-item-has-children.is-open > .menu-mobile__toggle::after {
  transform: translateY(15%) rotate(-135deg);
}

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

  .site-navigation {
    display: none;
  }

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

  .site-header-action--account,
  .site-header-action--wishlist {
    display: none;
  }

  .hamberger-menu {
    display: inline-flex;
  }

  .site-branding .site-logo,
  .site-branding .custom-logo {
    max-height: 34px;
  }
}
/* =============== 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 {
  border-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: clamp(4rem, 8vw, 6.5rem);
  background-color: var(--lapels-light-bg);
  color: var(--lapels-green);
  border-top: 1px solid var(--lapels-light-green-bg);
}

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

.site-footer-main {
  padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(2.5rem, 5vw, 3.5rem);
}

.site-footer-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  column-gap: clamp(2rem, 6vw, 6rem);
  align-items: start;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.site-footer-intro__heading .widget,
.site-footer-intro__content .widget {
  margin: 0;
}

.site-footer-intro__title,
.site-footer-intro__heading h2 {
  margin: 0;
  padding-bottom: 0;
  color: var(--lapels-dark-green);
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 4.5vw, 3.5rem);
  font-weight: 600;
  line-height: 1.15;
}

.site-footer-intro__content {
  max-width: 34rem;
  margin-left: auto;
}

.site-footer-intro__content p,
.site-footer-newsletter p {
  margin: 0 0 1.25rem;
  color: var(--lapels-dark-green);
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0.02em;
}

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

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

.site-footer-newsletter .lapels-footer-signup {
  display: flex;
  align-items: stretch;
  width: 100%;
  border: 1px solid var(--lapels-green);
  background-color: #ffffff;
  border-radius: var(--border-radius-small);
  overflow: hidden;
}

.site-footer-newsletter .lapels-footer-signup > p {
  display: flex;
  align-items: stretch;
  margin: 0;
}

.site-footer-newsletter .lapels-footer-signup > p:has(.wpcf7-form-control-wrap) {
  flex: 1 1 auto;
  min-width: 0;
}

.site-footer-newsletter .lapels-footer-signup > p:has(input[type="submit"]):not(:has(.wpcf7-form-control-wrap)) {
  flex: 0 0 auto;
}

.site-footer-newsletter .lapels-footer-signup > p:only-child {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
}

.site-footer-newsletter .lapels-footer-signup > p:only-child .wpcf7-form-control-wrap {
  flex: 1 1 auto;
  min-width: 0;
}

.site-footer-newsletter .lapels-footer-signup .wpcf7-spinner {
  display: none;
}

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

.site-footer-newsletter .lapels-footer-signup input[type="email"] {
  width: 100%;
  min-height: 46px;
  padding: 0.75rem 1rem;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  color: var(--lapels-green);
  font-family: var(--font-body);
  font-size: 0.78rem;
  letter-spacing: 0.02em;
}

.site-footer-newsletter .lapels-footer-signup input[type="email"]:focus {
  outline: none;
  box-shadow: none;
}

.site-footer-newsletter .lapels-footer-signup input[type="email"]::placeholder {
  color: rgba(35, 82, 60, 0.55);
}

.site-footer-newsletter .lapels-footer-signup input[type="submit"] {
  position: static;
  min-width: 7.25rem !important;
  max-height: none !important;
  height: auto !important;
  min-height: 46px;
  margin: 0;
  padding: 0 1.15rem !important;
  border: 0;
  border-radius: 0 2px 2px 0;
  background-color: var(--lapels-green) !important;
  color: var(--lapels-light-text) !important;
  font-family: var(--font-body);
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.site-footer-newsletter .lapels-footer-signup input[type="submit"]:hover,
.site-footer-newsletter .lapels-footer-signup input[type="submit"]:focus {
  background-color: var(--lapels-dark-green) !important;
  color: var(--lapels-light-text) !important;
  opacity: 1;
}

.site-footer-newsletter .wpcf7-not-valid-tip {
  font-size: 0.75rem !important;
  margin-top: 0.35rem;
}

.site-footer-newsletter .wpcf7-response-output {
  margin: 0.75rem 0 0 !important;
  font-size: 0.75rem !important;
  border-color: var(--lapels-green) !important;
}

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

.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: 0.45rem;
}

.site-footer-menu-col li:first-child {
  margin-bottom: 1rem;
}

.site-footer-menu-col--contact li:first-child {
  margin-bottom: 0.5rem;
}

.site-footer-menu-col li:first-child > a {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.2;
  pointer-events: none;
  cursor: default;
}

.site-footer-menu-col a {
  color: var(--lapels-green);
  font-size: 0.78rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: opacity 0.25s ease;
}

.site-footer-menu-col li:not(:first-child) a:hover,
.site-footer-menu-col li:not(:first-child) a:focus {
  opacity: 0.7;
}

.site-footer-menu-col li:first-child > a:hover,
.site-footer-menu-col li:first-child > a:focus {
  opacity: 1;
  color: var(--lapels-green) !important;
}

.site-footer-bottom-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 1.5rem;
  border-top: 1px solid var(--lapels-light-green-bg);
  min-height: 4.5rem;
  padding: 1rem 0;
}

.site-footer-copyright p {
  margin: 0;
  color: var(--lapels-green);
  font-size: 0.72rem;
  letter-spacing: 0.02em;
}

.site-footer-copyright p + p {
  margin-top: 0.35rem;
}

.site-footer-copyright a,
.site-footer-credit a {
  color: var(--lapels-green);
  font-weight: 500;
  text-decoration: none;
  transition: opacity 0.25s ease;
}

.site-footer-copyright a:hover,
.site-footer-copyright a:focus,
.site-footer-credit a:hover,
.site-footer-credit a:focus {
  opacity: 0.7;
}

.site-footer-legal {
  justify-self: center;
}

.site-footer-legal-menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer-legal-menu a {
  color: var(--lapels-green);
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: opacity 0.25s ease;
}

.site-footer-legal-menu a:hover,
.site-footer-legal-menu a:focus {
  opacity: 0.7;
}

.site-footer-social {
  justify-self: end;
}

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

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

.site-footer-social-widget a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  min-height: 2.5rem;
  color: var(--lapels-green);
  font-size: 1.45rem;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: opacity 0.25s ease;
}

.site-footer-social-widget img,
.site-footer-social-widget svg {
  display: block;
  width: 2.5rem;
  height: 2.5rem;
  object-fit: contain;
}

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

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

  .site-footer-main {
    padding-top: 2.5rem;
    padding-bottom: 2rem;
  }

  .site-footer-intro {
    grid-template-columns: 1fr;
    row-gap: 2rem;
    margin-bottom: 2.5rem;
  }

  .site-footer-intro__content {
    max-width: none;
    margin-left: 0;
  }

  .site-footer-menus {
    grid-template-columns: 1fr;
    row-gap: 0;
    border-top: 1px solid var(--lapels-light-green-bg);
    border-bottom: 1px solid var(--lapels-light-green-bg);
  }

  .site-footer-menu-col {
    border-bottom: 1px solid var(--lapels-light-green-bg);
  }

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

  .site-footer-menu-col li:first-child > a {
    position: relative;
    display: block;
    padding: 1rem 2rem 1rem 0;
    pointer-events: auto;
    cursor: pointer;
  }

  .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;
    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: 1.5rem;
  }

  .site-footer-bottom-inner {
    grid-template-columns: 1fr;
    justify-items: start;
    text-align: left;
    border-top: 0;
    padding: 1.25rem 0 1rem;
  }

  .site-footer-legal,
  .site-footer-social {
    justify-self: start;
  }

  .site-footer-legal-menu {
    justify-content: flex-start;
  }

  .site-footer-social-widget ul {
    justify-content: flex-start;
  }
}
  /* =============== Contact page =============== */

.contact-details > h1 {
  margin: 0 0 1rem;
  color: var(--lapels-dark-green);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  line-height: 1.2;
}

.contact-details > h1 + p {
  margin: 0 0 2rem;
  color: var(--text-color-grey);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.65;
}

.contact-details-info {
  padding: clamp(1.5rem, 2vw, 1.75rem);
  border: 1px solid var(--grey-3);
  border-radius: var(--border-radius-small);
  background-color: #ffffff;
}

.contact-details-info .wp-block-columns {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 1rem;
  margin: 0;
}

.contact-details-info .wp-block-columns > .wp-block-column {
  min-width: 0;
}

.contact-details-info .wp-block-columns > .wp-block-column:first-child {
  display: flex;
  flex: 0 0 3.125rem !important;
  align-items: center;
  justify-content: center;
  max-width: 3.125rem;
}

.contact-details-info .wp-block-columns > .wp-block-column:last-child {
  flex: 1 1 auto !important;
  width: auto !important;
}

.contact-details-info .wp-block-columns + .wp-block-columns {
  margin-top: 1.75rem;
}

.contact-details-info .wp-block-columns .wp-block-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.125rem;
  height: 3.125rem;
  margin: 0;
  border-radius: 50%;
  background-color: var(--lapels-light-green-bg);
}

.contact-details-info .wp-block-columns .wp-block-image img {
  display: block;
  width: 1.35rem;
  height: auto;
  max-height: 1.35rem;
  object-fit: contain;
}

.contact-details-info .wp-block-columns h3 {
  color: var(--lapels-dark-green);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
}

.contact-details-info .wp-block-columns p {
  margin: 0;
  color: var(--text-color-grey);
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.55;
}

.contact-details-info .wp-block-columns p + p {
  margin-top: 0.15rem;
}

.contact-details-info .wp-block-columns a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.contact-details-info .wp-block-columns a:hover,
.contact-details-info .wp-block-columns a:focus {
  color: var(--lapels-green);
}

/* Contact Form 7 - Contact page style */
.contact-form-wrap .wpcf7 {
  margin-top: 1.5rem;
}

.contact-form-wrap .wpcf7 form {
  margin: 0;
}

.cf7-contact-form {
  max-width: 720px;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid var(--grey-3);
  border-radius: var(--border-radius-small);
  background-color: #ffffff;
}
.cf7-form-title {
  text-align: center;
  margin-top: 2rem;
  margin-bottom: 50px;
}

.cf7-contact-form > p {
  margin: 0 0 1rem;
}

.cf7-contact-form > p:last-child {
  margin-bottom: 0;
}

.cf7-contact-form label {
  display: block;
  margin-bottom: 0;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 500;
  line-height: 1.35;
}

.cf7-contact-form .wpcf7-form-control-wrap {
  display: block;
  margin-top: 0.55rem;
}

.cf7-contact-form input[type="text"],
.cf7-contact-form input[type="email"],
.cf7-contact-form input[type="tel"],
.cf7-contact-form select,
.cf7-contact-form textarea {
  width: 100%;
  border: 1px solid #e6ebf0;
  border-radius: var(--border-radius-small);
  background-color: #ffffff;
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--text-color);
  padding: 0.9rem 1rem;
  box-shadow: none;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
}

.cf7-contact-form input[type="text"],
.cf7-contact-form input[type="email"],
.cf7-contact-form input[type="tel"],
.cf7-contact-form select {
  min-height: 2.8rem;
}

.cf7-contact-form select {
  padding-right: 2.75rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--lapels-dark-text) 50%), linear-gradient(135deg, var(--lapels-dark-text) 50%, transparent 50%);
  background-position: calc(100% - 1.3rem) calc(50% - 1px), calc(100% - 1rem) calc(50% - 1px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

.cf7-contact-form textarea {
  min-height: 7.25rem;
  resize: vertical;
  line-height: 1.6;
}

.cf7-contact-form input::placeholder,
.cf7-contact-form textarea::placeholder {
  color: #9aa6b2;
  font-family: var(--font-body);
  font-weight: 400;
}

.cf7-contact-form input:focus,
.cf7-contact-form select:focus,
.cf7-contact-form textarea:focus {
  border-color: var(--lapels-green);
  box-shadow: 0 0 0 1px var(--lapels-green);
}

.cf7-contact-form .cf7-submit-wrap {
  margin-top: 1.4rem;
}

.cf7-contact-form input[type="submit"] {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 2.85rem;
  border: 0;
  border-radius: var(--border-radius-small);
  background: var(--lapels-dark-green);
  color: #ffffff;
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.25s ease, opacity 0.25s ease;
  padding: 0.9rem 1rem;
}

.cf7-contact-form input[type="submit"]:hover,
.cf7-contact-form input[type="submit"]:focus {
  background-color: var(--lapels-green);
  opacity: 1;
}

.cf7-contact-form--appointment {
  max-width: none;
}

.cf7-contact-form .cf7-form-row {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
}

.cf7-contact-form .cf7-form-row > p {
  margin: 0;
}

.cf7-contact-form .cf7-form-row--2col {
  grid-template-columns: 1fr;
}

.cf7-contact-form .cf7-form-row--checkbox {
  align-items: start;
  gap: 1rem 1.5rem;
}

.cf7-contact-form .cf7-form-note {
  margin: 0;
  color: var(--text-color-grey);
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-style: italic;
  font-weight: 400;
  line-height: 1.55;
}

.cf7-contact-form .cf7-form-note p {
  margin: 0;
}

.cf7-contact-form .wpcf7-checkbox label,
.cf7-contact-form .wpcf7-acceptance label {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  color: var(--text-color-grey);
  font-size: 0.85rem;
  font-weight: 400;
  line-height: 1.45;
}

.cf7-contact-form .wpcf7-checkbox input,
.cf7-contact-form .wpcf7-acceptance input {
  width: auto;
  min-height: 0;
  margin-top: 0.2rem;
  padding: 0;
  flex-shrink: 0;
}
.cf7-ask-whatsapp {
  margin-bottom: 0 !important;
}

@media (min-width: 782px) {
  .cf7-contact-form .cf7-form-row--2col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cf7-contact-form .cf7-form-row--checkbox {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
  }
}

.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;
  }
}

/* =============== FAQs =============== */
.faqs-wrap .wp-block-details {
  margin: 0;
  border-bottom: 1px solid var(--grey-3);
}

.faqs-wrap .wp-block-details:first-child {
  border-top: 1px solid var(--grey-3);
}

.faqs-wrap .wp-block-details summary {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: 0.35px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  list-style: none;
  cursor: pointer;
  padding: 1.35rem 0;
}

.faqs-wrap .wp-block-details summary::-webkit-details-marker {
  display: none;
}

.faqs-wrap .wp-block-details summary::marker {
  content: "";
}

.faqs-wrap .wp-block-details summary::after {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--lapels-dark-green);
  border-radius: 50%;
  background-color: transparent;
  background-image:
    linear-gradient(var(--lapels-dark-green), var(--lapels-dark-green)),
    linear-gradient(var(--lapels-dark-green), var(--lapels-dark-green));
  background-size: 0.625rem 1px, 1px 0.625rem;
  background-position: center, center;
  background-repeat: no-repeat;
  transition: background-color 0.25s ease, border-color 0.25s ease;
}

.faqs-wrap .wp-block-details[open] summary {
  padding-bottom: 0.85rem;
}

.faqs-wrap .wp-block-details[open] summary::after {
  border-color: var(--lapels-dark-green);
  background-color: var(--lapels-dark-green);
  background-image: linear-gradient(var(--lapels-light-text), var(--lapels-light-text));
  background-size: 0.625rem 1px;
}

.faqs-wrap .wp-block-details > :not(summary) {
  margin: 0;
  padding: 0 3rem 1.35rem 0;
}

/* =============== Google Reviews =============== */
.google-reviews-wrap .google-reviews-intro {
  max-width: 42rem;
  margin: 0 auto 3rem;
  text-align: center;
}

.google-reviews-wrap .google-reviews-columns {
  align-items: flex-start;
}

.google-reviews-wrap .google-reviews-sidebar {
  position: sticky;
  top: calc(var(--header-offset-top) + 1.5rem);
}

.google-reviews-wrap .google-reviews-sidebar .wp-block-heading {
  margin: 0 0 1rem;
}

.google-reviews-wrap .google-reviews-sidebar a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--lapels-dark-text);
  text-decoration: none;
  transition: color 0.2s ease;
}

.google-reviews-wrap .google-reviews-sidebar a:hover,
.google-reviews-wrap .google-reviews-sidebar a:focus {
  color: var(--lapels-green);
}

.google-reviews-list {
  display: grid;
  gap: 2rem;
}

.google-review-item {
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--grey-3);
}

.google-review-item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.google-review-item__header {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 0.65rem;
}

.google-review-item__avatar {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  overflow: hidden;
  border-radius: 50%;
}

.google-review-item__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.google-review-item__avatar--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--lapels-light-green-bg);
  color: var(--lapels-dark-green);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
}

.google-review-item__name {
  margin: 0;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.3;
}

.google-review-stars {
  display: flex;
  gap: 0.15rem;
  margin-bottom: 0.85rem;
}

.google-review-star {
  color: #d5d5d5;
  font-size: 0.95rem;
  line-height: 1;
}

.google-review-star.is-filled {
  color: var(--lapels-dark-text);
}

.google-review-item__text {
  color: var(--text-color-grey);
}

.google-review-item__text p {
  margin: 0 0 0.75rem;
}

.google-review-item__text p:last-child {
  margin-bottom: 0;
}

.google-review-item__toggle {
  margin-top: 0.35rem;
  padding: 0;
  border: 0;
  background: none;
  color: var(--lapels-green);
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: underline;
  cursor: pointer;
  transition: color 0.2s ease;
}

.google-review-item__toggle:hover,
.google-review-item__toggle:focus {
  color: var(--lapels-dark-green);
}

.google-review-item__text.is-expanded .google-review-item__excerpt {
  display: none;
}

.google-review-item__full[hidden] {
  display: none;
}

@media (max-width: 781px) {
  .google-reviews-wrap .google-reviews-intro {
    margin-bottom: 2rem;
    text-align: left;
  }

  .google-reviews-wrap .google-reviews-sidebar {
    position: static;
    margin-bottom: 2rem;
  }
}

/* =============== About Timeline =============== */
.about-timeline h3 {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--lapels-gold);
}
/* .about-timeline h3::before {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: currentColor;
} */
.about-timeline em {
  font-weight: 500;
}
.about-timeline + .about-timeline {
  margin-top: 2rem;
}

/* =============== 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,
.wp-block-cover.cta-banner-book {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(280px, 30vw, 480px);
  padding: clamp(2.2rem, 5vw, 4.2rem) 1rem !important;
  overflow: hidden;
  isolation: isolate;
}

/* Honour Cover block height from the editor when set. */
.wp-block-cover.cta-banner-book[style*="min-height"] {
  min-height: unset;
}

/* Honour Cover content position from the editor. */
.wp-block-cover.cta-banner.is-position-top-left,
.wp-block-cover.cta-banner-book.is-position-top-left {
  align-items: flex-start;
  justify-content: flex-start;
}
.wp-block-cover.cta-banner.is-position-top-center,
.wp-block-cover.cta-banner-book.is-position-top-center {
  align-items: flex-start;
  justify-content: center;
}
.wp-block-cover.cta-banner.is-position-top-right,
.wp-block-cover.cta-banner-book.is-position-top-right {
  align-items: flex-start;
  justify-content: flex-end;
}
.wp-block-cover.cta-banner.is-position-center-left,
.wp-block-cover.cta-banner-book.is-position-center-left {
  align-items: center;
  justify-content: flex-start;
}
.wp-block-cover.cta-banner.is-position-center-center,
.wp-block-cover.cta-banner-book.is-position-center-center {
  align-items: center;
  justify-content: center;
}
.wp-block-cover.cta-banner.is-position-center-right,
.wp-block-cover.cta-banner-book.is-position-center-right {
  align-items: center;
  justify-content: flex-end;
}
.wp-block-cover.cta-banner.is-position-bottom-left,
.wp-block-cover.cta-banner-book.is-position-bottom-left {
  align-items: flex-end;
  justify-content: flex-start;
}
.wp-block-cover.cta-banner.is-position-bottom-center,
.wp-block-cover.cta-banner-book.is-position-bottom-center {
  align-items: flex-end;
  justify-content: center;
}
.wp-block-cover.cta-banner.is-position-bottom-right,
.wp-block-cover.cta-banner-book.is-position-bottom-right {
  align-items: flex-end;
  justify-content: flex-end;
}

.wp-block-cover.cta-banner .wp-block-cover__image-background,
.wp-block-cover.cta-banner-book .wp-block-cover__image-background,
.wp-block-cover.cta-banner .wp-block-cover__video-background,
.wp-block-cover.cta-banner-book .wp-block-cover__video-background {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  z-index: 0;
}

.wp-block-cover.cta-banner .wp-block-cover__background,
.wp-block-cover.cta-banner-book .wp-block-cover__background {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1;
  /* Do not force opacity:1 — that kills Cover “dim” and hides the image. */
}

.wp-block-cover.cta-banner .wp-block-cover__inner-container,
.wp-block-cover.cta-banner-book .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

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

.wp-block-cover.cta-banner p,
.wp-block-cover.cta-banner-book 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,
.wp-block-cover.cta-banner-book .wp-block-button {
  margin-top: 1.5rem;
}

.wp-block-cover.cta-banner .wp-block-button__link,
.wp-block-cover.cta-banner-book .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,
.wp-block-cover.cta-banner-book .wp-block-button__link:hover,
.wp-block-cover.cta-banner-book .wp-block-button__link:focus {
  background-color: var(--brand-color);
  color: #FFFFFF;
}

/* Press archive: CTA banner after posts, edge-to-edge */
.press-archive-cta {
  margin-top: clamp(2.5rem, 6vw, 4.5rem);
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.press-archive-cta .wp-block-cover {
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

/* =============== 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: uppercase;
  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;
}
.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;
}
.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: 30px;
  min-width: 30px;
  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) */
.single-product-notices {
  margin: 0 auto 1rem;
}
.single-product-notices .woocommerce-notices-wrapper:empty {
  display: none;
}
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 {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem 1rem;
  position: relative;
  background: var(--lapels-light-bg);
  border: 1px solid var(--grey-2);
  border-left: 3px solid var(--lapels-dark-text);
  border-radius: var(--border-radius-small);
  outline: none;
  box-shadow: none;
  padding: 0.95rem 1.1rem;
  margin: 0 0 1.5rem;
  color: var(--text-color);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.45;
  list-style: none !important;
}
body.woocommerce .woocommerce-message,
body.woocommerce-page .woocommerce-message {
  border-left-color: var(--lapels-green);
  background: var(--lapels-light-green-bg);
}
body.woocommerce .woocommerce-info,
body.woocommerce-page .woocommerce-info {
  border-left-color: var(--lapels-dark-text);
}
body.woocommerce .woocommerce-error,
body.woocommerce-page .woocommerce-error {
  border-left-color: #a94442;
  background: #f8f1f0;
}
body.woocommerce .woocommerce-error > li,
body.woocommerce-page .woocommerce-error > li {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  width: auto;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  list-style: none !important;
}
body.woocommerce .woocommerce-message::before,
body.woocommerce .woocommerce-info::before,
body.woocommerce .woocommerce-error::before,
body.woocommerce-page .woocommerce-message::before,
body.woocommerce-page .woocommerce-info::before,
body.woocommerce-page .woocommerce-error::before {
  position: static !important;
  top: auto !important;
  left: auto !important;
  display: inline-flex !important;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0 !important;
  padding: 0;
  font-size: 1rem !important;
  line-height: 1 !important;
}
body.woocommerce .woocommerce-message::before,
body.woocommerce-page .woocommerce-message::before {
  color: var(--lapels-green) !important;
}
body.woocommerce .woocommerce-info::before,
body.woocommerce-page .woocommerce-info::before {
  color: var(--lapels-dark-text) !important;
}
body.woocommerce .woocommerce-error::before,
body.woocommerce-page .woocommerce-error::before {
  color: #a94442 !important;
}
body.woocommerce .woocommerce-message a.button,
body.woocommerce .woocommerce-info a.button,
body.woocommerce .woocommerce-error a.button,
body.woocommerce-page .woocommerce-message a.button,
body.woocommerce-page .woocommerce-info a.button,
body.woocommerce-page .woocommerce-error a.button,
body.woocommerce .woocommerce-error > li a.button,
body.woocommerce-page .woocommerce-error > li a.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  float: none !important;
  margin: 0 0 0 auto !important;
  min-height: 40px;
  padding: 0.55rem 1.25rem !important;
  border: 1px solid var(--lapels-dark-text) !important;
  border-radius: var(--border-radius-small) !important;
  background: var(--lapels-dark-text) !important;
  color: #ffffff !important;
  font-family: var(--font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: none !important;
}
body.woocommerce .woocommerce-message a.button:hover,
body.woocommerce .woocommerce-info a.button:hover,
body.woocommerce .woocommerce-error a.button:hover,
body.woocommerce-page .woocommerce-message a.button:hover,
body.woocommerce-page .woocommerce-info a.button:hover,
body.woocommerce-page .woocommerce-error a.button:hover,
body.woocommerce .woocommerce-message a.button:focus,
body.woocommerce .woocommerce-info a.button:focus,
body.woocommerce .woocommerce-error a.button:focus,
body.woocommerce-page .woocommerce-message a.button:focus,
body.woocommerce-page .woocommerce-info a.button:focus,
body.woocommerce-page .woocommerce-error a.button:focus {
  background: var(--lapels-green) !important;
  border-color: var(--lapels-green) !important;
  color: #ffffff !important;
}

/* Text links inside notices (e.g. "Undo?") */
body.woocommerce .woocommerce-message a:not(.button),
body.woocommerce .woocommerce-info a:not(.button),
body.woocommerce .woocommerce-error a:not(.button),
body.woocommerce-page .woocommerce-message a:not(.button),
body.woocommerce-page .woocommerce-info a:not(.button),
body.woocommerce-page .woocommerce-error a:not(.button) {
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: inherit;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  background: none;
  border: 0;
  box-shadow: none;
}
body.woocommerce .woocommerce-message a:not(.button):hover,
body.woocommerce .woocommerce-info a:not(.button):hover,
body.woocommerce .woocommerce-error a:not(.button):hover,
body.woocommerce-page .woocommerce-message a:not(.button):hover,
body.woocommerce-page .woocommerce-info a:not(.button):hover,
body.woocommerce-page .woocommerce-error a:not(.button):hover,
body.woocommerce .woocommerce-message a:not(.button):focus,
body.woocommerce .woocommerce-info a:not(.button):focus,
body.woocommerce .woocommerce-error a:not(.button):focus,
body.woocommerce-page .woocommerce-message a:not(.button):focus,
body.woocommerce-page .woocommerce-info a:not(.button):focus,
body.woocommerce-page .woocommerce-error a:not(.button):focus {
  color: var(--lapels-green);
  text-decoration: underline;
}

/* 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 — Lapels =============== */
.lapels-cart {
  width: 100%;
}
.lapels-cart__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  margin: 0 0 clamp(1.25rem, 3vw, 2rem);
}
.lapels-cart__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--text-color-grey);
}
.lapels-cart__breadcrumb a {
  color: var(--text-color-grey);
  text-decoration: none;
}
.lapels-cart__breadcrumb a:hover {
  color: var(--lapels-dark-text);
  text-decoration: underline;
}
.lapels-cart__breadcrumb-current {
  color: var(--lapels-dark-text);
}
.lapels-cart__continue-top {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--lapels-dark-text);
  text-decoration: underline;
}
.lapels-cart__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}
@media (min-width: 960px) {
  .lapels-cart__grid {
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.9fr);
    gap: clamp(1.5rem, 3vw, 2.5rem);
  }
}
.lapels-cart-panel {
  border: 1px solid #e0e0e0;
  border-radius: var(--border-radius-small);
  background: #ffffff;
  padding: clamp(1rem, 2.5vw, 1.5rem);
}
.lapels-cart-panel--summary {
  border: 0;
  background: transparent;
  padding: 0;
}
.lapels-cart-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 1rem;
  padding: 0 0 0.85rem;
  border-bottom: 1px solid #ececec;
}
.lapels-cart-panel__title {
  margin: 0;
  padding: 0;
  border: 0;
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--lapels-dark-text);
  line-height: 1.2;
}
.lapels-cart-delete {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #c0392b;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
}
.lapels-cart-delete:hover:not(:disabled) {
  color: #a93226;
  text-decoration: underline;
}
.lapels-cart-delete:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.lapels-cart-items {
  display: flex;
  flex-direction: column;
}
.lapels-cart-item {
  display: grid;
  grid-template-columns: auto 88px minmax(0, 1fr);
  gap: 0.85rem 1.25rem;
  align-items: start;
  padding: 1.15rem 0;
  border-bottom: 1px solid #ececec;
}
.lapels-cart-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
@media (min-width: 640px) {
  .lapels-cart-item {
    grid-template-columns: auto 110px minmax(0, 1fr);
    gap: 1rem 1.5rem;
  }
}
.lapels-cart-item__select {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.35rem;
  cursor: pointer;
}
.lapels-cart-item__checkbox {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}
.lapels-cart-item__check {
  display: block;
  width: 1.15rem;
  height: 1.15rem;
  border: 1.5px solid #c8c8c8;
  border-radius: 50%;
  background: #ffffff;
  box-sizing: border-box;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}
.lapels-cart-item__checkbox:checked + .lapels-cart-item__check {
  border-color: var(--lapels-dark-text);
  background: var(--lapels-dark-text);
  box-shadow: inset 0 0 0 3px #ffffff;
}
.lapels-cart-item__checkbox:focus-visible + .lapels-cart-item__check {
  outline: 2px solid var(--lapels-green);
  outline-offset: 2px;
}
.lapels-cart-item__media {
  width: 100%;
}
.lapels-cart-item__media img,
.lapels-cart-item__media .attachment-woocommerce_thumbnail {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border: 0;
  border-radius: 0;
}
.lapels-cart-item__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem 1.5rem;
  min-width: 0;
}
@media (min-width: 720px) {
  .lapels-cart-item__body {
    height: 100%;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    column-gap: clamp(1.5rem, 4vw, 3rem);
    padding-bottom: 0.25rem;
  }
}
.lapels-cart-item__name {
  margin: 0 0 0.35rem;
  padding: 0;
  border: 0;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--lapels-dark-text);
}
.lapels-cart-item__name a {
  color: inherit;
  text-decoration: none;
}
.lapels-cart-item__name a:hover {
  text-decoration: underline;
}
.lapels-cart-item__attrs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem 1.35rem;
}
.lapels-cart-item__attr {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 0.3rem;
  margin: 0;
  min-width: 0;
}
.lapels-cart-item__attr-prefix,
.lapels-cart-item__attr-label {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  color: #6d6d6d;
  white-space: nowrap;
}
.lapels-cart-item__attr-select {
  min-width: 0;
  min-height: 0;
  width: auto;
  max-width: 9rem;
  padding: 0 1.1rem 0 0;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%236d6d6d' stroke-width='1.2' d='M1 1.2 5 5l4-3.8'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.05rem center;
  background-size: 9px 6px;
  appearance: none;
  -webkit-appearance: none;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
  color: #6d6d6d;
  cursor: pointer;
  box-shadow: none !important;
}
.lapels-cart-item__attr-select:focus {
  outline: none;
  border: 0 !important;
  color: var(--lapels-dark-text);
}
.lapels-cart-item__attrs.is-loading {
  opacity: 0.55;
  pointer-events: none;
}
.lapels-cart-item .variation,
.lapels-cart-item .wc-item-meta {
  display: none;
}
.lapels-cart-item__side {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.65rem;
}
@media (min-width: 720px) {
  .lapels-cart-item__side {
    align-items: flex-end;
    min-width: 8.5rem;
  }
}
.lapels-cart-item__price {
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--lapels-dark-text);
}
.lapels-cart-item__controls {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.lapels-cart-item__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  color: #6d6d6d;
  text-decoration: none !important;
  border: 0 !important;
  background: transparent !important;
  font-size: 0 !important;
  line-height: 1;
  margin-right: 1rem;
  margin-bottom: 0.75rem;
}
.lapels-cart-item__remove:hover {
  color: #c0392b;
  background: transparent !important;
}
.lapels-cart-qty {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: transparent;
  border: 0;
}
.lapels-cart-qty__btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box;
  width: 1.65rem !important;
  height: 1.65rem !important;
  min-width: 1.65rem !important;
  min-height: 1.65rem !important;
  max-width: 1.65rem !important;
  max-height: 1.65rem !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #ececec !important;
  color: #5a5a5a !important;
  font-size: 0 !important;
  font-weight: 400 !important;
  line-height: 0 !important;
  letter-spacing: 0 !important;
  text-indent: 0 !important;
  text-transform: none !important;
  text-decoration: none !important;
  box-shadow: none !important;
  cursor: pointer;
}
.lapels-cart-qty__btn svg {
  display: block;
  width: 0.7rem;
  height: 0.7rem;
  flex: 0 0 auto;
  pointer-events: none;
}
.lapels-cart-qty__btn--minus,
.lapels-cart-qty__btn--plus {
  border: 0 !important;
}
.lapels-cart-qty__btn:hover {
  background: #e0e0e0 !important;
  color: var(--lapels-dark-text) !important;
}
.lapels-cart-qty .quantity {
  margin: 0;
  float: none;
  width: auto;
}
.lapels-cart-qty .qty,
.lapels-cart-qty .lapels-cart-qty__input {
  width: 1.35rem !important;
  min-width: 1.1rem;
  min-height: 1.65rem !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  text-align: center;
  font-family: var(--font-body);
  font-size: 13px !important;
  font-weight: 400;
  line-height: 1.65rem !important;
  color: var(--lapels-dark-text);
  box-shadow: none !important;
  -moz-appearance: textfield;
  appearance: textfield;
}
.lapels-cart-qty .qty::-webkit-outer-spin-button,
.lapels-cart-qty .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.lapels-cart-form-actions {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.lapels-cart-summary {
  background: transparent;
  border: 0;
  padding: 0;
}
.lapels-cart-summary__card {
  border: 1px solid #e0e0e0;
  border-radius: var(--border-radius-small);
  background: #ffffff;
  padding: clamp(1rem, 2.5vw, 1.5rem);
}
.lapels-cart-summary__header {
  margin-bottom: 1rem;
}
.lapels-cart-summary__rows {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  margin: 0 0 1.15rem;
}
.lapels-cart-summary__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--lapels-dark-text);
}
.lapels-cart-summary__row--muted {
  color: var(--text-color-grey);
}
.lapels-cart-summary__row--total {
  margin-top: 0.35rem;
  padding-top: 0.85rem;
  border-top: 1px solid #ececec;
  font-size: 0.95rem;
  font-weight: 600;
}
.lapels-cart-summary__value {
  text-align: right;
}
.lapels-cart-summary__value--discount {
  color: #c0392b;
}
.lapels-cart-promo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
  margin: 0 0 0.85rem;
}
.lapels-cart-promo__input {
  width: 100%;
  min-height: 44px;
  padding: 0.65rem 0.85rem;
  border: 1px solid #d8d8d8;
  border-radius: var(--border-radius-small);
  background: #ffffff;
  font-family: var(--font-body);
  font-size: 13px;
}
.lapels-cart-promo__btn,
body.woocommerce-cart .lapels-cart-promo__btn.button {
  min-height: 44px;
  min-width: 5.5rem;
  padding: 0.65rem 1rem !important;
  border: 1px solid var(--lapels-dark-text) !important;
  border-radius: var(--border-radius-small) !important;
  background: var(--lapels-dark-text) !important;
  color: #ffffff !important;
  font-family: var(--font-body) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
.lapels-cart-promo__btn:hover,
body.woocommerce-cart .lapels-cart-promo__btn.button:hover {
  background: var(--lapels-green) !important;
  border-color: var(--lapels-green) !important;
  color: #ffffff !important;
}
.lapels-cart-summary__note {
  margin: 0;
  font-family: var(--font-body);
  font-size: 12px;
  line-height: 1.5;
  color: var(--text-color-grey);
}
.lapels-cart-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem 0 0;
  margin: 0;
}
.lapels-cart-button,
body.woocommerce-cart .lapels-cart-button.button,
body.woocommerce-cart a.lapels-cart-button {
  display: flex !important;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  padding: 0.8rem 1.25rem !important;
  border-radius: var(--border-radius-small) !important;
  font-family: var(--font-body) !important;
  font-size: 0.82rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  text-align: center;
  box-sizing: border-box;
}
.lapels-cart-button--primary,
body.woocommerce-cart .lapels-cart-button--primary.button {
  border: 1px solid var(--lapels-dark-text) !important;
  background: var(--lapels-dark-text) !important;
  color: #ffffff !important;
}
.lapels-cart-button--primary:hover,
body.woocommerce-cart .lapels-cart-button--primary.button:hover {
  background: var(--lapels-green) !important;
  border-color: var(--lapels-green) !important;
  color: #ffffff !important;
}
.lapels-cart-button--outline,
body.woocommerce-cart a.lapels-cart-button--outline {
  border: 1px solid var(--lapels-dark-text) !important;
  background: #ffffff !important;
  color: var(--lapels-dark-text) !important;
}
.lapels-cart-button--outline:hover,
body.woocommerce-cart a.lapels-cart-button--outline:hover {
  background: var(--lapels-dark-text) !important;
  color: #ffffff !important;
}
.lapels-cart-guest-link {
  display: block;
  margin-top: 0.25rem;
  text-align: center;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--lapels-dark-text);
  text-decoration: underline;
}
.lapels-cart-guest-link:hover {
  color: var(--lapels-green);
}
.lapels-cart-collaterals-hidden {
  display: none !important;
}
body.woocommerce-cart .content-title,
body.woocommerce-cart .entry-title {
  display: none;
}

/* Empty cart */
.lapels-cart--empty {
  padding-top: clamp(1.5rem, 4vw, 2.5rem);
  padding-bottom: clamp(2rem, 5vw, 4rem);
}
body.woocommerce-cart .lapels-cart--empty .cart-empty.woocommerce-info,
body.woocommerce-cart .lapels-cart--empty .woocommerce-info.cart-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 140px;
  padding: clamp(2rem, 5vw, 3rem) 1.5rem;
  margin: 0 0 1.25rem;
  border: 1px solid #e0e0e0;
  border-left: 1px solid #e0e0e0;
  border-radius: var(--border-radius-small);
  background: #ffffff;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.95rem;
}
body.woocommerce-cart .lapels-cart--empty .cart-empty.woocommerce-info::before {
  display: none !important;
  content: none !important;
}
body.woocommerce-cart .lapels-cart--empty .return-to-shop,
body.woocommerce-cart .lapels-cart-empty__actions {
  display: flex;
  justify-content: center;
  margin: 0;
  text-align: center;
}
body.woocommerce-cart .lapels-cart--empty .return-to-shop .button,
body.woocommerce-cart .lapels-cart--empty a.lapels-cart-button {
  width: auto;
  min-width: 220px;
  max-width: 100%;
  border-radius: var(--border-radius-small) !important;
}

/* =============== Wishlist page =============== */
.lapels-wishlist-page {
  padding: clamp(1.5rem, 4vw, 2.5rem) 0 clamp(3rem, 6vw, 5rem);
}
.lapels-wishlist__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  margin: 0 0 1.25rem;
}
.lapels-wishlist__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--text-color-grey);
}
.lapels-wishlist__breadcrumb a {
  color: var(--text-color-grey);
  text-decoration: none;
}
.lapels-wishlist__breadcrumb a:hover {
  color: var(--lapels-dark-text);
  text-decoration: underline;
}
.lapels-wishlist__breadcrumb-current {
  color: var(--lapels-dark-text);
}
.lapels-wishlist__continue {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--lapels-dark-text);
  text-decoration: underline;
}
.lapels-wishlist__title {
  margin: 0 0 clamp(1.25rem, 3vw, 1.75rem);
  font-family: var(--font-body);
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--lapels-dark-text);
}
.lapels-wishlist__status {
  margin: 0 0 1.25rem;
}
.lapels-wishlist__loading,
.lapels-wishlist__error {
  margin: 0;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--text-color-grey);
}
.lapels-wishlist__error {
  color: #c0392b;
}
.lapels-wishlist__empty-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 140px;
  margin: 0 0 1.25rem;
  padding: clamp(2rem, 5vw, 3rem) 1.5rem;
  border: 1px solid #e0e0e0;
  border-radius: var(--border-radius-small);
  background: #ffffff;
  text-align: center;
}
.lapels-wishlist__empty-panel p {
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--lapels-dark-text);
}
.lapels-wishlist__empty-actions {
  display: flex;
  justify-content: center;
  margin: 0;
}
.lapels-wishlist__empty-actions .button {
  width: auto;
  min-width: 220px;
}
.lapels-wishlist__content ul.products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
  width: 100%;
}
@media (min-width: 760px) {
  .lapels-wishlist__content ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem 1rem;
  }
}
@media (min-width: 1100px) {
  .lapels-wishlist__content ul.products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.lapels-wishlist__content ul.products li.product {
  position: relative;
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  /* Override archive scroll-reveal — wishlist cards are AJAX-injected after that runs. */
  opacity: 1;
  transform: none;
}
.lapels-wishlist-item__remove {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #c0392b;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.lapels-wishlist-item__remove:hover,
.lapels-wishlist-item__remove:focus {
  background: #ffffff;
  color: #a93226;
  outline: none;
}

/* =============== Search results =============== */
.lapels-search-page {
  padding: clamp(1.5rem, 4vw, 2.5rem) 0 clamp(3rem, 6vw, 5rem);
}
.lapels-search__header {
  margin: 0 0 clamp(1.75rem, 4vw, 2.5rem);
}
.lapels-search__breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0 1rem;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--text-color-grey);
}
.lapels-search__breadcrumb a {
  color: inherit;
  text-decoration: none;
}
.lapels-search__breadcrumb a:hover {
  color: var(--lapels-green);
}
.lapels-search__breadcrumb-current {
  color: var(--lapels-dark-text);
}
.lapels-search__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  font-weight: 500;
  line-height: 1.2;
  color: var(--lapels-dark-text);
}
.lapels-search__empty {
  padding: clamp(2rem, 5vw, 3rem) 1.5rem;
  border: 1px solid #e0e0e0;
  border-radius: var(--border-radius-small);
  background: #ffffff;
  text-align: center;
}
.lapels-search__empty p {
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--lapels-dark-text);
}
.lapels-search__empty-actions {
  margin-top: 1.25rem !important;
}
.lapels-search__section {
  margin: 0 0 clamp(2.5rem, 5vw, 4rem);
}
.lapels-search__section:last-child {
  margin-bottom: 0;
}
.lapels-search__section-header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin: 0 0 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--grey-2);
}
.lapels-search__section-title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
  font-weight: 500;
  color: var(--lapels-dark-text);
}
.lapels-search__count {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--text-color-grey);
}
.lapels-search-category-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 0.75rem;
}
@media (min-width: 760px) {
  .lapels-search-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem 1rem;
  }
}
@media (min-width: 1100px) {
  .lapels-search-category-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.lapels-search-category-card {
  min-width: 0;
}
.lapels-search-category-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--lapels-dark-text);
  text-decoration: none;
}
.lapels-search-category-card__link:hover,
.lapels-search-category-card__link:focus {
  color: var(--lapels-dark-text);
  text-decoration: none;
}
.lapels-search-category-card__image {
  margin: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--grey-2);
  border-radius: var(--border-radius-small);
}
.lapels-search-category-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform 0.8s ease;
}
.lapels-search-category-card__link:hover .lapels-search-category-card__image img,
.lapels-search-category-card__link:focus .lapels-search-category-card__image img {
  transform: scale(1.06);
}
.lapels-search-category-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding-top: 0.75rem;
}
.lapels-search-category-card__title {
  margin: 0;
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.8vw, 1.15rem);
  font-weight: 600;
  line-height: 1.35;
}
.lapels-search-category-card__count {
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.78rem;
  color: var(--text-color-grey);
}
.lapels-search__products ul.products {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 0.75rem;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
  width: 100%;
}
@media (min-width: 760px) {
  .lapels-search__products ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem 1rem;
  }
}
@media (min-width: 1100px) {
  .lapels-search__products ul.products,
  .lapels-search__products ul.products.is-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .lapels-search__content .blog-index-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.lapels-search__products ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
}
.lapels-search-content-card__excerpt {
  margin: 0;
  font-family: var(--font-body);
  font-size: 0.85rem;
  line-height: 1.45;
  color: var(--text-color-grey);
}

/* Keep cart product thumbnails square */
body.woocommerce-cart .lapels-cart-item__media img,
body.woocommerce-cart .lapels-cart-item__media .attachment-woocommerce_thumbnail {
  border-radius: 0 !important;
}

/* Cart notices + buttons use soft corners */
body.woocommerce-cart :is(
  .woocommerce-message,
  .woocommerce-info,
  .woocommerce-error
) {
  border-radius: var(--border-radius-small) !important;
}
body.woocommerce-cart :is(
  .woocommerce-message a.button,
  .woocommerce-info a.button,
  .woocommerce .button,
  .woocommerce a.button,
  .woocommerce button.button,
  .lapels-cart-button,
  .lapels-cart-promo__btn,
  .lapels-cart-promo__input,
  .lapels-cart-panel,
  .lapels-cart-summary__card
) {
  border-radius: var(--border-radius-small) !important;
}
body.woocommerce-cart .lapels-cart-qty__btn,
body.woocommerce-cart .lapels-cart-qty__btn.lapels-cart-qty__btn--minus,
body.woocommerce-cart .lapels-cart-qty__btn.lapels-cart-qty__btn--plus {
  border-radius: 50% !important;
}
body.woocommerce-cart .lapels-cart-qty .qty,
body.woocommerce-cart .lapels-cart-qty .lapels-cart-qty__input,
body.woocommerce-cart .lapels-cart-item__attr-select {
  border-radius: 0 !important;
}

/* =============== 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;
}

/* =============== Lapels My Account — reusable form system =============== */
.lapels-account-page {
  padding: clamp(2rem, 5vw, 4rem) 0 clamp(3rem, 6vw, 5rem);
}
.lapels-account-page--auth .woocommerce > h2 {
  display: none;
}
body.woocommerce-account:not(.logged-in) .entry-title,
body.woocommerce-account:not(.logged-in) .content-title {
  display: none;
}
.lapels-account-forms--split .lapels-account-forms__grid,
body.woocommerce-account:not(.logged-in) .lapels-account-forms__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(2.5rem, 5vw, 4rem);
  align-items: start;
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .lapels-account-forms--split .lapels-account-forms__grid,
  body.woocommerce-account:not(.logged-in) .lapels-account-forms__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2rem, 4vw, 5rem);
  }
}
.lapels-account-forms--split .lapels-account-panel,
.lapels-account-forms__grid .lapels-account-panel {
  float: none;
  width: 100%;
  min-width: 0;
}
.lapels-account-page--auth .lapels-account-form.login,
.lapels-account-page--auth .lapels-account-form.register,
body.woocommerce-account .lapels-account-page--auth form.login,
body.woocommerce-account .lapels-account-page--auth form.register {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  text-align: left;
}
.lapels-account-page--auth .lapels-account-panel__title {
  text-align: left;
}
.lapels-account-forms--login-only {
  max-width: 520px;
  margin: 0 auto;
}
.lapels-account-panel,
body.woocommerce-account .lapels-account-panel {
  width: 100%;
  max-width: none;
  float: none;
  padding: 0;
  background: transparent;
  border: 0;
}
.lapels-account-panel__title {
  margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
  font-family: var(--font-body);
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--lapels-dark-text);
  text-align: left;
  border: 0;
  padding: 0;
}
.lapels-account-form .lapels-account-field,
.lapels-account-page .woocommerce-MyAccount-content .form-row {
  margin: 0 0 1rem;
  padding: 0;
}
.lapels-account-form .lapels-account-field label,
.lapels-account-page .woocommerce-MyAccount-content .form-row label {
  display: block;
  margin-bottom: 0.45rem;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--lapels-dark-text);
}
.lapels-account-form .input-text,
.lapels-account-form input[type="text"],
.lapels-account-form input[type="email"],
.lapels-account-form input[type="tel"],
.lapels-account-form input[type="password"],
.lapels-account-page .woocommerce-MyAccount-content .input-text,
.lapels-account-page .woocommerce-MyAccount-content input[type="text"],
.lapels-account-page .woocommerce-MyAccount-content input[type="email"],
.lapels-account-page .woocommerce-MyAccount-content input[type="tel"],
.lapels-account-page .woocommerce-MyAccount-content input[type="password"],
.lapels-account-page .woocommerce-MyAccount-content textarea,
.lapels-account-page .woocommerce-MyAccount-content select {
  width: 100%;
  min-height: 44px;
  padding: 0.7rem 0.85rem;
  border: 1px solid #d8d8d8;
  border-radius: 0;
  background: #ffffff;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.4;
  color: var(--lapels-dark-text);
  box-shadow: none;
}
.lapels-account-form .input-text:focus,
.lapels-account-page .woocommerce-MyAccount-content .input-text:focus,
.lapels-account-page .woocommerce-MyAccount-content input:focus,
.lapels-account-page .woocommerce-MyAccount-content textarea:focus,
.lapels-account-page .woocommerce-MyAccount-content select:focus {
  outline: none;
  border-color: var(--lapels-dark-text);
}
.lapels-account-password {
  position: relative;
  display: block;
}
.lapels-account-password__input {
  padding-right: 2.75rem !important;
}
.lapels-account-password__toggle {
  position: absolute;
  top: 50%;
  right: 0.65rem;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #6d6d6d;
  cursor: pointer;
}
.lapels-account-password__toggle:hover,
.lapels-account-password__toggle:focus {
  color: var(--lapels-dark-text);
  outline: none;
}
.lapels-account-password__icon {
  display: block;
}
.lapels-account-password__icon[hidden] {
  display: none !important;
}
.lapels-account-field--remember {
  display: none;
}
.lapels-account-forgot {
  margin: 0.35rem 0 1.15rem;
  text-align: right;
}
.lapels-account-forgot a {
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 13px;
  text-decoration: underline;
}
.lapels-account-actions {
  margin: 0;
}
.lapels-account-button,
.lapels-account-page .lapels-account-button.button {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0.7rem 1.5rem;
  border: 1px solid var(--lapels-dark-text);
  border-radius: 0;
  background: var(--lapels-dark-text);
  color: #ffffff;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.lapels-account-button:hover,
.lapels-account-button:focus,
.lapels-account-page .lapels-account-button.button:hover,
.lapels-account-page .lapels-account-button.button:focus {
  background: var(--lapels-green);
  border-color: var(--lapels-green);
  color: #ffffff;
  text-decoration: none;
}
.lapels-account-note {
  margin: 0 0 1rem;
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-color-grey);
}
body.woocommerce-account .lapels-account-page .woocommerce-MyAccount-content > h2,
body.woocommerce-account .lapels-account-page .woocommerce-MyAccount-content > h3 {
  font-family: var(--font-body);
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--lapels-dark-text);
  border: 0;
  padding: 0;
  margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
}

/* =============== 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;
}

/* Logged-in dashboard */
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content,
body.woocommerce-account .lapels-account-dashboard {
  width: 100%;
  float: none;
}
@media (min-width: 860px) {
  body.woocommerce-account.logged-in .lapels-account-page--dashboard {
    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,
  body.woocommerce-account .lapels-account-dashboard {
    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 .button,
.lapels-account-page .woocommerce-MyAccount-content .button,
body.woocommerce-account .lapels-account-page .woocommerce-MyAccount-content button[type="submit"] {
  min-height: 44px;
  border-radius: 0;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
body.woocommerce-account .lapels-account-page .woocommerce-MyAccount-content .button:not(.edit),
body.woocommerce-account .lapels-account-page .woocommerce-MyAccount-content button[type="submit"] {
  border: 1px solid var(--lapels-dark-text);
  background: var(--lapels-dark-text);
  color: #ffffff;
}
body.woocommerce-account .lapels-account-page .woocommerce-MyAccount-content .button:not(.edit):hover,
body.woocommerce-account .lapels-account-page .woocommerce-MyAccount-content .button:not(.edit):focus,
body.woocommerce-account .lapels-account-page .woocommerce-MyAccount-content button[type="submit"]:hover,
body.woocommerce-account .lapels-account-page .woocommerce-MyAccount-content button[type="submit"]:focus {
  background: var(--lapels-green);
  border-color: var(--lapels-green);
  color: #ffffff;
}

.woocommerce-Button, .woocommerce-info .button {
  font-family: var(--font-body) !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
}
body.woocommerce-account .woocommerce-privacy-policy-text a {
  color: var(--link-color);
  text-decoration: underline;
}
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;
}
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: 1rem;
}
@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: uppercase !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;
}
body:not(.woocommerce-account) .woocommerce-form.woocommerce-form-login {
  max-width: 500px;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 1rem !important;
}
body:not(.woocommerce-account) 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;
}
.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;
}

/* Our Origin — media & text quote */
.our-origin blockquote,
.our-origin .wp-block-quote {
  margin: 1.5rem 0 0;
  padding: 1.1rem 1.25rem 1.1rem 1.35rem;
  border: 0;
  border-left: 4px solid var(--lapels-gold);
  border-radius: 0;
  background: var(--lapels-light-bg);
  /* color: var(--lapels-gold); */
  font-style: normal;
  line-height: 1.55;
  quotes: none;
}
.our-origin blockquote p,
.our-origin .wp-block-quote p {
  margin: 0;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
}
.our-origin blockquote::before,
.our-origin blockquote::after,
.our-origin .wp-block-quote::before,
.our-origin .wp-block-quote::after {
  content: none;
  display: none;
}
.our-origin .wp-block-quote cite {
  display: block;
  margin-top: 0.65rem;
  color: var(--lapels-dark-text);
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-style: normal;
  font-weight: 400;
}
.our-origin .wp-block-media-text .wp-block-media-text__content {
  padding-top: 2rem;
  padding-bottom: 2rem;
  padding-left: 12%;
}
@media (max-width: 1079px) {
  .our-origin .wp-block-media-text,
  .our-origin .wp-block-media-text.is-stacked-on-mobile {
    grid-template-columns: 100% !important;
  }
  .our-origin .wp-block-media-text > .wp-block-media-text__media,
  .our-origin .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media {
    grid-column: 1;
    grid-row: 1;
  }
  .our-origin .wp-block-media-text > .wp-block-media-text__content,
  .our-origin .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 2;
    padding-top: 2rem;
    padding-left: 0;
    padding-right: 0;
  }
.wp-block-buttons:has(> .wp-block-button:only-child) {
  justify-content: center;
}
}
.our-origin .wp-block-media-text .wp-block-media-text__content h3 {
  font-size: 1rem;
}
.wp-block-media-text > .wp-block-media-text__content {
  padding-left: 8%;
  padding-right: 0;
}
.wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content {
  padding-left: 0;
  padding-right: 8%;
}
/* Stack image + text earlier than WP default (600px → 1079px) */
@media (max-width: 1079px) {
  .wp-block-media-text.is-stacked-on-mobile {
    grid-template-columns: 100% !important;
  }
  .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media {
    grid-column: 1;
    grid-row: 1;
  }
  .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 2;
  }
  .wp-block-media-text > .wp-block-media-text__content,
  .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content {
    padding-left: 0;
    padding-right: 0;
  }
  .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
    padding-top: 2rem;
  }
  .wp-block-media-text > .wp-block-media-text__media,
  .wp-block-media-text.is-image-fill > .wp-block-media-text__media,
  .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media {
    min-height: 380px;
  }
}
@media (max-width: 500px) {
  .our-origin .wp-block-buttons:has(> .wp-block-button:nth-child(2):last-child) {
    flex-direction: column;
    align-items: stretch;
  }
  .our-origin .wp-block-buttons:has(> .wp-block-button:nth-child(2):last-child) > .wp-block-button {
    width: 100%;
  }
  .our-origin .wp-block-buttons:has(> .wp-block-button:nth-child(2):last-child) .wp-block-button__link {
    width: 100%;
    justify-content: center;
  }
}

.h3plush2 h3 {
  /* font-size: 1rem; */
}
.highlight-boxes h3 {
  font-size: 2rem;

  color: var(--lapels-gold);
}
.highlight-boxes .wp-block-column {
  border: 1px solid var(--lapels-light-bg);
  border-radius: var(--border-radius-medium);
  padding: 2rem 3rem;
}
@media (max-width: 899px) {
  .highlight-boxes .wp-block-columns {
    flex-wrap: wrap !important;
  }
  .highlight-boxes .wp-block-columns > .wp-block-column {
    flex-basis: calc(50% - 1em) !important;
    flex-grow: 0;
  }
  .highlight-boxes .wp-block-column {
    padding: 1.25rem 1rem 1.25rem 1.5rem;
  }
}
.highlight-boxes h4 {
  font-size: 1.25rem;
  font-weight: 400;
  padding-bottom: 1rem;
}
.lb-services.wp-block-columns {
  row-gap: 4rem;
}
.lb-services.wp-block-columns,
.lb-services .wp-block-columns {
  flex-wrap: wrap !important;
}
.lb-services.wp-block-columns > .wp-block-column,
.lb-services .wp-block-columns > .wp-block-column {
  flex-basis: calc(50% - 1em) !important;
  flex-grow: 0;
}
.lb-services h3 {
  margin-top: 1.5rem;
}
.lb-services h4 {
  font-size: 1.1rem;
  font-weight: 500;
  font-family: var(--font-body);
}
.wp-block-heading a {
  text-decoration: none;
  color: var(--lapels-dark-text);
  transition: color 0.3s ease;
}
.wp-block-heading a:hover {
  color: var(--lapels-gold) !important;
}
.wp-block-heading a:link, .wp-block-heading a:visited {
  color: var(--lapels-dark-text);
  text-decoration: none;
}
.wp-block-heading a:active, .wp-block-heading a:focus {
  color: var(--lapels-dark-text);
  text-decoration: none;
}
@media (max-width: 899px) {
  .lb-services.wp-block-columns > .wp-block-column,
  .lb-services .wp-block-columns > .wp-block-column {
    flex-basis: 100% !important;
  }
}
.mill-boxes h3 {
  color: var(--lapels-gold);
  padding-bottom: 0.75rem;
}
.mill-boxes.wp-block-columns,
.mill-boxes .wp-block-columns {
  flex-wrap: wrap !important;
}
.mill-boxes.wp-block-columns > .wp-block-column,
.mill-boxes .wp-block-columns > .wp-block-column {
  flex-basis: calc(33.333% - 1.34em) !important;
  flex-grow: 0;
}

.mill-boxes .wp-block-column {
  border: 1px solid var(--lapels-light-bg);
  border-radius: var(--border-radius-medium);
  padding: 2rem 2rem 2rem 2.5rem;
}
.has-light-background-background-color .mill-boxes .wp-block-column {
  border-color: var(--lapels-gold);
}
@media (max-width: 899px) {
  .mill-boxes.wp-block-columns > .wp-block-column,
  .mill-boxes .wp-block-columns > .wp-block-column {
    flex-basis: calc(50% - 1em) !important;
  }
  .mill-boxes .wp-block-column {
    padding: 2rem 1.25rem 2rem 1.75rem;
  }
}
@media (max-width: 600px) {
  .mill-boxes.wp-block-columns > .wp-block-column,
  .mill-boxes .wp-block-columns > .wp-block-column {
    flex-basis: 100% !important;
  }
}

/* Lapels style table — no grid lines; header underline + even-row tint */
.lb-style-table.wp-block-table,
.lb-style-table.wp-block-table table,
.lb-style-table.wp-block-table th,
.lb-style-table.wp-block-table td,
.wp-block-table.lb-style-table,
.wp-block-table.lb-style-table table,
.wp-block-table.lb-style-table th,
.wp-block-table.lb-style-table td {
  border: 0 !important;
  border-width: 0 !important;
}
.lb-style-table.wp-block-table,
.wp-block-table.lb-style-table {
  border-bottom: 0 !important;
}
.lb-style-table.wp-block-table thead th,
.lb-style-table.wp-block-table thead td,
.wp-block-table.lb-style-table thead th,
.wp-block-table.lb-style-table thead td {
  border-bottom: 3px solid var(--lapels-dark-text) !important;
}
.lb-style-table.wp-block-table tbody tr:nth-child(even),
.wp-block-table.lb-style-table tbody tr:nth-child(even) {
  background-color: #f2f2f2;
}
.note-box {
  background-color: #f2f2f2;
  border-radius: var(--border-radius-medium);
  padding: 2rem;
}
.has-background .note-box {
  background-color: rgba(255, 255, 255, 0.5);
}