@font-face {
  font-family: 'MuseoModerno';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/museomoderno/MuseoModerno-300.woff2') format('woff2');
}
@font-face {
  font-family: 'MuseoModerno';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/museomoderno/MuseoModerno-400.woff2') format('woff2');
}
@font-face {
  font-family: 'MuseoModerno';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/museomoderno/MuseoModerno-700.woff2') format('woff2');
}

/* Static runtime support for the WordPress-free Moleculla snapshot. */
.m-opening-gateway {
  align-items: center;
  background: #f2eee7;
  box-sizing: border-box;
  color: #504a4a;
  display: flex;
  height: 100vh;
  height: 100svh;
  isolation: isolate;
  justify-content: center;
  letter-spacing: 0;
  min-height: 720px;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.m-opening-gateway + .wp-site-blocks {
  display: none !important;
}

.m-opening-gateway::before,
.m-opening-gateway::after {
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

.m-opening-gateway::before {
  background-image: url("/assets/images/2025/09/Moleculla_Lifestyle_Wellness_Nutrition_Main_Page_2.webp");
  background-position: center center;
  background-size: cover;
  opacity: 0.94;
  z-index: -2;
}

.m-opening-gateway::after {
  background: linear-gradient(
    90deg,
    rgba(251, 250, 243, 0.46),
    rgba(251, 250, 243, 0.2) 42%,
    rgba(242, 238, 231, 0.48)
  );
  z-index: -1;
}

.m-opening-gateway__brand {
  color: #504a4a;
  font-family: 'MuseoModerno', system-ui, sans-serif;
  font-size: 1.85rem;
  font-weight: 300;
  left: 0;
  letter-spacing: 0;
  line-height: 1;
  margin: 0;
  position: absolute;
  right: 0;
  text-align: center;
  text-transform: none;
  top: 2rem;
  z-index: 2;
}

.m-seo-heading {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}

.ia-roulette-container {
  overflow: hidden !important;
  width: 100% !important;
}

.ia-roulette-track {
  animation: moleculla-ia-scroll var(--m-ia-duration, 36s) linear infinite !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  min-width: max-content !important;
  transform: translate3d(0, 0, 0);
  will-change: transform;
  width: max-content !important;
}

.ia-roulette-container:hover .ia-roulette-track,
.ia-roulette-container:focus-within .ia-roulette-track {
  animation-play-state: paused !important;
}

.ia-item {
  flex: 0 0 auto !important;
}

.ia-item[data-m-ia-clone="true"] {
  pointer-events: none;
}

@keyframes moleculla-ia-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(calc(var(--m-ia-loop-width, 50%) * -1), 0, 0);
  }
}

.m-opening-gateway__choices {
  align-items: center;
  box-sizing: border-box;
  display: grid;
  gap: 5rem;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  max-width: 1480px;
  padding: 0 4rem;
  position: relative;
  width: 100%;
  z-index: 2;
}

.m-opening-gateway__choice {
  align-items: center;
  background: rgba(251, 250, 243, 0.72);
  border: 1px solid rgba(80, 74, 74, 0.42);
  border-radius: 999px;
  box-sizing: border-box;
  color: #504a4a !important;
  display: flex;
  font-size: 2.05rem;
  font-weight: 300;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
  max-width: 24rem;
  min-height: 4.85rem;
  padding: 1.2rem 2rem;
  text-align: center;
  text-decoration: none !important;
  text-transform: none;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
  width: 100%;
}

.m-opening-gateway__choice--shop {
  justify-self: start;
}

.m-opening-gateway__choice--mentoring {
  justify-self: end;
}

.m-opening-gateway__choice:hover,
.m-opening-gateway__choice:focus {
  background: #504a4a;
  border-color: #504a4a;
  color: #fbfaf3 !important;
  outline: none;
  transform: translateY(-1px);
}

.m-opening-gateway__choice:focus-visible {
  outline: 2px solid #9d8775;
  outline-offset: 4px;
}

@media (min-width: 1400px) {
  .m-opening-gateway__choice {
    font-size: 2.35rem;
    max-width: 27rem;
    min-height: 5.25rem;
  }
}

@media (max-width: 900px) {
  .m-opening-gateway {
    min-height: 620px;
  }

  .m-opening-gateway__choices {
    gap: 2rem;
    padding: 0 2rem;
  }

  .m-opening-gateway__choice {
    font-size: 1.7rem;
    max-width: 20rem;
    min-height: 4.25rem;
    padding: 1rem 1.5rem;
  }
}

@media (max-width: 640px) {
  .m-opening-gateway {
    min-height: 100vh;
    min-height: 100svh;
  }

  .m-opening-gateway::before {
    background-position: center center;
  }

  .m-opening-gateway__brand {
    font-size: 1.55rem;
    top: 1.25rem;
  }

  .m-opening-gateway__choices {
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    padding: 7rem 1.25rem 3rem;
  }

  .m-opening-gateway__choice,
  .m-opening-gateway__choice--shop,
  .m-opening-gateway__choice--mentoring {
    font-size: 1.2rem;
    justify-self: center;
    max-width: 18rem;
    min-height: 3.65rem;
  }
}

.m-mentoring-page {
  background: #fbfaf3;
  color: #504a4a;
  letter-spacing: 0;
}

.m-training-opening {
  background: #ffffff;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.85fr);
  min-height: 620px;
}

.m-training-opening__copy {
  align-self: center;
  box-sizing: border-box;
  max-width: 780px;
  padding: 5rem 5rem 5rem 6rem;
}

.m-training-opening__copy h1 {
  color: #504a4a;
  font-size: 3.65rem;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 1.02;
  margin: 0 0 2rem;
}

.m-training-opening__copy p:not(.m-training-kicker) {
  color: #665f58;
  font-size: 1.35rem;
  font-weight: 300;
  line-height: 1.35;
  margin: 0.55rem 0;
}

.m-training-bullets {
  list-style: none;
  padding: 0;
  margin: 2rem 0 0;
}

.m-training-bullets li {
  position: relative;
  padding-left: 1.5rem;
  color: #665f58;
  font-size: 1.1rem;
  font-weight: 300;
  line-height: 1.6;
  margin-bottom: 0.6rem;
}

.m-training-bullets li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: #9d8775;
  font-weight: bold;
}

.m-training-opening__media {
  background-image: url("/assets/images/2026/06/q-tight.jpg");
  background-position: center;
  background-size: cover;
  display: block;
  min-height: 520px;
  text-decoration: none;
}

a.m-training-opening__media:hover {
  opacity: 0.96;
}

/* Desktop: the image spans exactly the copy's text block
   (top of heading to bottom of last bullet) instead of the
   full section height. Vertical spacing moves to the section
   so the grid row is sized by the text. */
@media (min-width: 901px) {
  .m-training-opening {
    min-height: 0;
    padding: 2.5rem 0;
  }

  .m-training-opening__copy {
    align-self: stretch;
    padding-bottom: 0;
    padding-top: 0;
  }

  .m-training-opening__copy .m-training-bullets {
    margin-bottom: 0;
  }

  .m-training-opening__copy .m-training-bullets li:last-child {
    margin-bottom: 0;
  }

  .m-training-opening__media {
    min-height: 0;
    background-size: cover;
  }
}

.m-training-kicker,
#m-training-title.m-training-kicker {
  color: #9d8775 !important;
  font-family: var(--wp--preset--font-family--manrope), sans-serif !important;
  font-size: 1.9rem !important;
  font-weight: 300 !important;
  letter-spacing: 0.05em !important;
  line-height: 1.1 !important;
  margin: 0 0 2rem !important;
  text-transform: uppercase !important;
  white-space: normal !important;
}

/* Desktop hero heading on ONE line: the copy column offers ~770px,
   the single line needs ~594px at full size, so lift the 34rem cap,
   forbid wrapping and let the font scale down slightly on narrower
   desktops so it never overflows. */
@media (min-width: 901px) {
  #m-training-title.m-training-kicker {
    font-size: min(1.6rem, 2.27vw) !important;
    max-width: none !important;
    white-space: nowrap !important;
  }
}

.m-training-about,
.m-training-focus {
  box-sizing: border-box;
}

.m-training-about {
  display: grid;
  gap: 4rem;
  grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr);
  padding: 5rem 6rem 1rem;
}

.m-training-about h2,
.m-training-section-head h2 {
  color: #504a4a;
  font-size: 2.15rem;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 1.15;
  margin: 0;
}

.m-training-about__copy,
.m-training-about__copy p {
  color: #5d5650;
  font-size: 1.25rem !important;
  line-height: 1.6 !important;
}

.m-about-details-accordion .m-details-content,
.m-about-details-accordion .m-details-content p,
.m-about-details-accordion .m-details-content li {
  font-size: 1.25rem !important;
  line-height: 1.6 !important;
}

.m-training-about__copy p {
  margin: 0 0 1.2rem;
}

.m-training-about__copy a {
  color: #9d8775;
  text-decoration: underline;
}

.m-training-catalog {
  background: #fff;
}

.m-training-section-head {
  margin: 0 auto 2rem;
  max-width: 1180px;
}

.m-training-focus-grid {
  display: grid;
  gap: 1rem;
  margin: 0 auto;
  max-width: 1180px;
}

.m-training-focus {
  padding: 2.25rem 6rem 5rem;
}

.m-training-focus-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.m-training-focus-grid div {
  border-bottom: 1px solid rgba(80, 74, 74, 0.22);
  color: #504a4a;
  font-size: 1.1rem;
  padding: 1.25rem 0;
}

.m-mentoring-products {
  box-sizing: border-box;
  padding: 2.75rem 4rem 3.5rem;
}

/* Collapse the gap between the Free courses section and the
   Instagram feed strip (same treatment as the home mission block). */
.m-mentoring-body .m-training-catalog {
  padding-bottom: 0 !important;
}

.m-mentoring-body .m-mentoring-page + .m-feed-strip {
  padding-top: var(--wp--preset--spacing--30) !important;
}

.m-mentoring-products__header {
  align-items: end;
  display: flex;
  gap: 1.5rem;
  justify-content: space-between;
  margin: 0 auto 1.25rem;
  max-width: 1180px;
}

.m-mentoring-products__header h2 {
  color: #504a4a;
  font-size: 1.6rem;
  font-weight: 300;
  letter-spacing: 0;
  margin: 0;
}

.m-mentoring-products__header a {
  color: #9d8775;
  font-size: 0.95rem;
  text-decoration: underline;
}

.m-mentoring-products__header a[href="/shop-site/"] {
  color: #9d8775;
}

.m-mentoring-product-grid {
  display: grid !important;
  gap: 1.25rem !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  list-style: none !important;
  margin: 0 auto !important;
  max-width: 640px;
  padding: 0 !important;
}

.m-mentoring-product-grid .wc-block-product {
  background: #fff;
  border: 1px solid rgba(80, 74, 74, 0.12);
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column;
  min-width: 0 !important;
  padding: 0 0 0.9rem !important;
  width: auto !important;
}

.m-mentoring-product-grid .wc-block-product > :not(:last-child) {
  margin-bottom: 0.35rem;
}

.m-mentoring-product-grid .wc-block-components-product-image,
.m-mentoring-product-grid .wc-block-grid__product-image {
  margin: 0 0 0.5rem !important;
}

.m-mentoring-product-grid .wc-block-components-product-image img {
  aspect-ratio: 4 / 5;
  height: auto !important;
  object-fit: cover;
  width: 100% !important;
}

.m-mentoring-product-grid .wp-block-post-title,
.m-mentoring-product-grid .wp-block-woocommerce-product-price,
.m-mentoring-product-grid .wp-block-woocommerce-product-button {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.m-mentoring-product-grid .wp-block-post-title {
  margin-bottom: 0.4rem !important;
}

.m-mentoring-product-grid .wp-block-woocommerce-product-button {
  align-items: center !important;
  display: flex !important;
  flex-direction: column;
  gap: 0.4rem !important;
  justify-content: center !important;
  margin-top: auto !important;
  min-height: 3.25rem;
  padding-bottom: 0.25rem;
  padding-top: 0.4rem;
}

.m-mentoring-product-grid .wp-block-button__link,
.m-mentoring-product-grid .wc-block-components-product-button__button,
.m-mentoring-product-grid .m-buy-now-link {
  box-sizing: border-box !important;
  height: 48px !important;
  margin: 0 !important;
  max-height: 48px !important;
  min-height: 48px !important;
  min-width: 10.25rem;
  padding-bottom: 0.85rem !important;
  padding-top: 0.85rem !important;
  width: auto !important;
}

.m-mentoring-product-grid .m-buy-now-link {
  margin-top: 0 !important;
}

@media (max-width: 900px) {
  .m-training-opening,
  .m-training-about {
    grid-template-columns: 1fr;
  }

  .m-training-opening__copy,
  .m-training-about,
  .m-training-focus {
    padding: 3rem 2rem;
  }

  .m-training-opening__copy h1 {
    font-size: 2.7rem;
  }

  #m-training-title.m-training-kicker {
    font-size: 1.6rem !important;
    white-space: normal;
  }

  .m-training-focus-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .m-mentoring-products {
    padding: 3rem 2rem 4rem;
  }

  .m-mentoring-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .m-training-opening {
    min-height: auto;
  }

  .m-training-opening__copy,
  .m-training-about,
  .m-training-focus {
    padding: 2.5rem 1.25rem;
  }

  .m-training-opening__copy h1 {
    font-size: 2.1rem;
  }

  .m-training-kicker {
    font-size: 1.3rem !important;
    white-space: normal !important;
  }

  .m-training-opening__copy p:not(.m-training-kicker),
  .m-training-bullets li,
  .m-training-about__copy,
  .m-training-about__copy p,
  .m-about-details-accordion .m-details-content,
  .m-about-details-accordion .m-details-content p,
  .m-about-details-accordion .m-details-content li {
    font-size: 1.08rem !important;
  }

  .m-training-opening__media {
    min-height: 320px;
  }

  .m-training-about h2,
  .m-training-section-head h2 {
    font-size: 1.75rem;
  }

  .m-training-focus-grid {
    grid-template-columns: 1fr;
  }

  .m-mentoring-products {
    padding: 2.5rem 1.25rem 3.5rem;
  }

  .m-mentoring-products__header {
    align-items: start;
    flex-direction: column;
  }

  .m-mentoring-product-grid {
    grid-template-columns: 1fr !important;
  }
}

.wc-block-mini-cart__badge[hidden] {
  display: none !important;
}

/* Mentoring product page: match description typography to the
   /mentoring/ about section (1.25rem, softer color), and add a
   gap between the booking/product area and the description. */
.wc-block-product-description.has-small-font-size {
  font-size: 1.25rem !important;
  line-height: 1.6 !important;
  color: #5d5650;
}

.wc-block-product-description.has-small-font-size p,
.wc-block-product-description.has-small-font-size.has-small-font-size p {
  font-size: 1.25rem !important;
  line-height: 1.6 !important;
  margin-bottom: 1.2rem;
}

/* Breathing room before the "What is included:" accordion. */
.wc-block-product-description.has-small-font-size h4 {
  margin-top: 2.5rem;
  font-size: 1.25rem !important;
  line-height: 1.6 !important;
}

.wc-block-product-description.has-small-font-size h4 + p,
.wc-block-product-description.has-small-font-size h4 + ul {
  margin-top: 1.2rem;
}

/* Mentoring product page: align the gallery image with the top of
   the right-column text (heading row). */
@media (min-width: 901px) {
  body.post-825 .wp-block-woocommerce-product-image-gallery {
    margin-top: 20px !important;
  }
}

/* Mentoring product page: the gallery image stretches so the left
   column ends at the same line as the booking widget. The image
   keeps its aspect ratio via object-fit (sides crop on narrower
   desktops; full photo shows on wide screens). */
body.post-825 .wp-block-columns.alignwide > .wp-block-column:first-child {
  display: flex;
  flex-direction: column;
}

body.post-825 .wp-block-woocommerce-product-image-gallery {
  display: flex;
  flex-direction: column;
  flex: 1;
}

body.post-825 .wp-block-woocommerce-product-image-gallery .woocommerce-product-gallery {
  display: flex;
  flex-direction: column;
  flex: 1;
}

body.post-825 .woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
body.post-825 .woocommerce-product-gallery .woocommerce-product-gallery__image,
body.post-825 .woocommerce-product-gallery a {
  height: 100%;
}

body.post-825 .woocommerce-product-gallery img.wp-post-image {
  height: 100% !important;
  object-fit: cover;
}

/* Mentoring product page: gap between the photo and the description
   text below the columns. */
@media (min-width: 901px) {
  .wp-block-columns.alignwide {
    margin-bottom: 2.5rem;
  }
}

/* Desktop: halve the top padding of the "about" section — the gap
   between the MORE INFO strip and the description text. */
@media (min-width: 901px) {
  .m-training-about {
    padding-top: 2.5rem;
  }
}

/* =========================================
   SALE BADGE — sticker on the product image
   (product grids + single product gallery)
   ========================================= */
.wc-block-components-product-image,
.wp-block-woocommerce-product-image-gallery,
.woocommerce-product-gallery {
  position: relative;
}

/* =========================================
   SINGLE PRODUCT — purchase area (variation
   select, quantity, Add to cart / Buy now)
   ========================================= */

/* Variable-product forms must not use the simple-product 3-column grid,
   which scatters the variation table and buttons into columns. */
.wp-block-woocommerce-add-to-cart-form form.cart.variations_form,
form.cart.variations_form {
  display: block !important;
}

/* Attribute label sits above a full-width styled dropdown. */
.variations,
.variations tbody,
.variations tr,
.variations th.label,
.variations td.value {
  display: block;
  width: 100%;
}

.variations th.label {
  color: #756d68;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em;
  margin: 0;
  padding: 0 0 0.45rem !important;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}

.variations th.label label {
  font: inherit;
  margin: 0;
}

.variations td.value {
  margin-bottom: 0.4rem;
  position: relative;
}

.variations select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1l5 5 5-5' stroke='%23504a4a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-position: right 0.9rem center;
  background-repeat: no-repeat;
  border: 1px solid rgba(80, 74, 74, 0.28);
  border-radius: 8px;
  box-sizing: border-box;
  color: #504a4a;
  cursor: pointer;
  font: inherit;
  font-size: 0.95rem;
  min-height: 48px;
  padding: 0.6rem 2.5rem 0.6rem 0.9rem;
  width: 100%;
}

.variations select:focus {
  border-color: #9d8775;
  box-shadow: 0 0 0 2px rgba(221, 185, 153, 0.22);
  outline: none;
}

a.reset_variations {
  color: #9d8775;
  display: inline-block;
  font-size: 0.82rem;
  margin: 0.1rem 0 0;
  text-decoration: underline;
}

/* Button row: quantity + Add to cart on one line, Buy now full width below.
   Scoped with .variations_form for specificity over the generic block rules. */
.variations_form .woocommerce-variation-add-to-cart.variations_button {
  align-items: stretch !important;
  display: grid !important;
  gap: 0.75rem !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  margin-top: 1.25rem !important;
  width: 100% !important;
}

.variations_form .woocommerce-variation-add-to-cart.variations_button > .quantity {
  grid-column: 1 !important;
  grid-row: 1 !important;
}

.variations_form .woocommerce-variation-add-to-cart.variations_button > .single_add_to_cart_button {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
}

.variations_form .woocommerce-variation-add-to-cart.variations_button > .m-buy-now-button {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  width: 100% !important;
}

/* Header cart + account icons. The WooCommerce block stylesheets that
   normally size these SVGs are not loaded in the static snapshot, so the
   icons collapse to 0x0. Give them explicit dimensions. */
.wc-block-mini-cart__icon {
  display: block;
  height: 28px;
  width: 28px;
}

.wc-block-customer-account__account-icon,
.wp-block-woocommerce-customer-account svg {
  display: block;
  height: 26px;
  width: 26px;
}

.wc-block-mini-cart__button {
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 0;
}

.wc-block-mini-cart__quantity-badge {
  display: inline-block;
  position: relative;
}

/* Item-count bubble on the cart icon. */
.wc-block-mini-cart__badge:not([hidden]) {
  align-items: center;
  background: #ddb999 !important;
  border-radius: 999px;
  color: #504a4a !important;
  display: flex;
  font-size: 0.7rem;
  font-weight: 600;
  height: 1.15rem;
  justify-content: center;
  min-width: 1.15rem;
  padding: 0 0.2rem;
  position: absolute;
  right: -0.5rem;
  top: -0.45rem;
}

.m-feed-strip {
  background: #fff;
  box-sizing: border-box;
  clear: both;
  display: block !important;
  margin: 0;
  opacity: 1 !important;
  padding: 3.25rem clamp(1rem, 4vw, 4rem);
  visibility: visible !important;
  width: 100%;
}

.m-feed-strip__header {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin: 0 auto 1.25rem;
  max-width: 1320px;
}

.m-feed-strip__header p {
  color: #504a4a;
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  margin: 0;
  text-transform: uppercase;
}

.m-feed-strip__header a,
.m-feed-card a {
  color: #9d8775;
  font-size: 0.82rem;
  text-decoration: none;
  text-transform: uppercase;
}

.m-feed-grid {
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0 auto;
  max-width: 1320px;
}

.m-feed-card {
  aspect-ratio: 1;
  background: #f4f1ec;
  display: block;
  margin: 0;
  overflow: hidden;
  position: relative;
}

.m-feed-card img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.m-feed-card a {
  align-items: end;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.42), transparent 58%);
  color: #fff;
  display: flex;
  inset: 0;
  justify-content: center;
  opacity: 0;
  padding: 1rem;
  position: absolute;
  transition: opacity 160ms ease;
}

.m-feed-card:hover a,
.m-feed-card:focus-within a {
  opacity: 1;
}

.m-booking-steps {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 1.6rem;
}

.m-booking-steps div {
  min-width: 0;
}

.m-booking-steps span {
  color: var(--m-booking-accent);
  display: block;
  font-size: 0.88rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.25;
  margin-bottom: 0.7rem;
  text-transform: none;
}

.m-booking-steps i {
  background: #e1d8cf;
  display: block;
  height: 0.55rem;
  width: 100%;
}

.m-booking-steps .is-active i,
.m-booking-steps .is-complete i {
  background: var(--m-booking-accent);
}

.m-booking-panel[hidden] {
  display: none !important;
}

.m-booking-instruction {
  color: var(--m-booking-muted);
  font-size: 0.98rem;
  line-height: 1.55;
  margin: 0 0 1.45rem;
}

.m-booking-times {
  display: grid;
}

.m-booking-times button {
  align-items: center;
  background: #fff !important;
  border: 0;
  border-bottom: 1px solid var(--m-booking-line);
  border-radius: 0 !important;
  color: #504a4a !important;
  cursor: pointer;
  display: grid;
  font-size: 1rem;
  grid-template-columns: 1.35rem minmax(0, 1fr);
  justify-items: start;
  min-height: 2.65rem;
  padding: 0.45rem 0.75rem;
  text-align: left;
}

.m-booking-times button:last-child {
  border-bottom: 0;
}

.m-booking-times button span {
  border: 1px solid #ddd1c7;
  border-radius: 999px;
  display: block;
  height: 1rem;
  width: 1rem;
}

.m-booking-times button:hover,
.m-booking-times button:focus {
  background: var(--m-booking-soft) !important;
  outline: none;
}

.m-booking-summary {
  border-top: 1px solid var(--m-booking-line);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.m-booking-summary div {
  border-bottom: 1px solid var(--m-booking-line);
  border-right: 1px solid var(--m-booking-line);
  display: grid;
  gap: 0.35rem;
  padding: 1rem;
}

.m-booking-summary div:nth-child(4n) {
  border-right: 0;
}

.m-booking-summary span {
  color: #9d8775;
  font-size: 0.78rem;
  letter-spacing: 0;
  text-transform: uppercase;
}

.m-booking-summary strong {
  color: #504a4a;
  font-size: 1rem;
  font-weight: 500;
}

.m-booking-actions {
  align-items: center;
  border-top: 1px solid var(--m-booking-line);
  display: flex;
  justify-content: flex-end;
  margin-top: 1.65rem;
  padding-top: 1.25rem;
}

.single_add_to_cart_button:disabled,
.single_add_to_cart_button[aria-disabled="true"] {
  cursor: not-allowed !important;
  opacity: 0.55;
}

.woocommerce-product-gallery {
  opacity: 1 !important;
  overflow: visible !important;
  position: relative !important;
}

.woocommerce-product-gallery__wrapper {
  display: block !important;
}

.woocommerce-product-gallery__image:first-child {
  max-width: 100%;
}

.woocommerce-product-gallery__image:not(:first-child) {
  display: none !important;
}

.woocommerce-product-gallery__image a,
.woocommerce-product-gallery__image img {
  display: block;
}

.woocommerce-product-gallery__image img {
  height: auto;
  width: 100%;
}

.m-static-gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
}

.m-static-gallery-thumb {
  background: transparent;
  border: 0;
  cursor: pointer;
  display: block;
  margin: 0;
  padding: 0;
}

.m-static-gallery-thumb img {
  aspect-ratio: 1;
  display: block;
  object-fit: cover;
  opacity: 0.45;
  width: 100%;
}

.m-static-gallery-thumb.is-active img,
.m-static-gallery-thumb:hover img {
  opacity: 1;
}

.m-static-gallery-trigger {
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
  display: block;
  height: 44px;
  position: absolute;
  right: 18px;
  text-indent: -9999px;
  top: 24px;
  width: 44px;
  z-index: 4;
}

.m-static-gallery-trigger::before {
  border: 3px solid #111;
  border-radius: 50%;
  content: "";
  height: 13px;
  left: 12px;
  position: absolute;
  top: 11px;
  width: 13px;
}

.m-static-gallery-trigger::after {
  background: #111;
  content: "";
  height: 3px;
  left: 25px;
  position: absolute;
  top: 27px;
  transform: rotate(45deg);
  width: 11px;
}

.wp-block-woocommerce-cart.m-cart-empty .wp-block-woocommerce-filled-cart-block,
.wp-block-woocommerce-cart.m-cart-filled .wp-block-woocommerce-empty-cart-block {
  display: none !important;
}

.m-static-notices {
  left: auto;
  margin: 0;
  max-width: min(440px, calc(100vw - 2rem));
  pointer-events: none;
  position: fixed;
  right: clamp(1rem, 3vw, 2.5rem);
  top: clamp(5.75rem, 8vw, 7rem);
  width: max-content;
  z-index: 10000;
}

.m-notice {
  align-items: center;
  background: #fbfaf3;
  border: 1px solid rgba(80, 74, 74, 0.16);
  border-radius: 8px;
  box-shadow: 0 18px 45px rgba(48, 40, 34, 0.16);
  box-sizing: border-box;
  color: #504a4a;
  display: flex;
  font-size: 0.95rem;
  gap: 0.9rem;
  justify-content: space-between;
  line-height: 1.45;
  max-width: 100%;
  min-width: min(360px, calc(100vw - 2rem));
  padding: 1rem 1.1rem;
  pointer-events: auto;
}

.m-notice--error {
  background: #fff8f6;
  border-color: rgba(166, 64, 53, 0.28);
}

.m-notice a {
  color: #504a4a;
  font-weight: 700;
  text-decoration: underline;
}

.m-buy-now-button,
.m-buy-now-link {
  align-items: center;
  background-color: #ddb999 !important;
  border: 1px solid #ddb999 !important;
  border-radius: 999px !important;
  color: #504a4a !important;
  display: inline-flex;
  font-weight: 400;
  justify-content: center;
  letter-spacing: 0;
  min-height: 48px;
  text-decoration: none !important;
  text-transform: uppercase;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.m-buy-now-button:hover,
.m-buy-now-link:hover {
  background-color: #504a4a !important;
  border-color: #504a4a !important;
  color: #fff !important;
}

.wp-block-woocommerce-add-to-cart-form .variations_button {
  align-items: center !important;
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.7rem !important;
  justify-content: flex-start;
  max-width: 100%;
  width: max-content;
}

.wp-block-woocommerce-add-to-cart-form .variations_button > .quantity,
.wp-block-woocommerce-add-to-cart-form .variations_button > .single_add_to_cart_button,
.wp-block-woocommerce-add-to-cart-form .variations_button > .m-buy-now-button {
  flex: 0 0 auto;
  margin: 0 !important;
}

.wp-block-woocommerce-add-to-cart-form form.cart > .m-buy-now-button,
.wp-block-woocommerce-add-to-cart-form .variations_button > .m-buy-now-button {
  grid-column: auto;
  justify-self: auto;
}

.wp-block-button.wc-block-components-product-button .m-buy-now-link {
  box-sizing: border-box !important;
  font-size: inherit;
  height: 48px !important;
  margin-top: 0.5rem;
  max-height: 48px !important;
  min-height: 48px !important;
  padding: 1rem 2.25rem;
  width: auto;
}

.m-notice-close,
.m-text-button,
.m-mini-cart-panel header button,
.m-mini-cart-item button {
  background: transparent;
  border: 0;
  color: #504a4a;
  cursor: pointer;
  font: inherit;
  padding: 0;
}

.m-notice-close,
.m-mini-cart-panel header button,
.m-mini-cart-item button {
  font-weight: 700;
  line-height: 1;
  min-height: 28px;
  min-width: 28px;
}

.m-cart-layout,
.m-checkout-layout {
  align-items: start;
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  margin: 1rem 0 4rem;
}

.m-cart-items,
.m-cart-summary,
.m-checkout-form,
.m-order-received {
  background: #fff;
  border: 1px solid rgba(80, 74, 74, 0.18);
  border-radius: 6px;
  color: #504a4a;
}

.m-cart-items,
.m-checkout-form,
.m-order-received {
  padding: 1.5rem;
}

.m-cart-summary {
  padding: 1.35rem;
  position: sticky;
  top: 92px;
}

.m-cart-summary h3,
.m-checkout-form h3,
.m-order-received h2 {
  color: #504a4a;
  margin-top: 0;
}

.m-cart-table {
  border-collapse: collapse;
  width: 100%;
}

.m-cart-table th,
.m-cart-table td {
  border-bottom: 1px solid rgba(80, 74, 74, 0.14);
  padding: 1rem 0.75rem;
  text-align: left;
  vertical-align: middle;
}

.m-cart-table th {
  color: #6f6868;
  font-size: 0.8rem;
  letter-spacing: 0;
  text-transform: uppercase;
}

.m-cart-product {
  align-items: center;
  display: flex;
  gap: 1rem;
  min-width: 260px;
}

.m-cart-image {
  display: block;
  flex: 0 0 76px;
}

.m-cart-image img,
.m-mini-cart-item img {
  aspect-ratio: 1;
  border-radius: 6px;
  display: block;
  object-fit: cover;
  width: 100%;
}

.m-cart-name,
.m-mini-cart-item a {
  color: #504a4a;
  font-weight: 700;
  text-decoration: none;
}

.m-cart-options,
.m-mini-cart-item small {
  color: #766f6f;
  display: block;
  font-size: 0.9rem;
  margin-top: 0.2rem;
}

.m-text-button {
  margin-top: 0.45rem;
  text-decoration: underline;
}

.m-cart-quantity {
  align-items: center;
  border: 1px solid rgba(80, 74, 74, 0.24);
  border-radius: 4px;
  display: inline-flex;
  min-height: 42px;
  overflow: hidden;
}

.m-cart-quantity button {
  background: #faf7f4;
  border: 0;
  color: #504a4a;
  cursor: pointer;
  font-size: 1rem;
  height: 42px;
  width: 36px;
}

.m-cart-quantity input {
  border: 0;
  color: #504a4a;
  height: 42px;
  text-align: center;
  width: 48px;
}

.m-cart-line-total {
  font-weight: 700;
}

.m-total-line {
  align-items: center;
  border-bottom: 1px solid rgba(80, 74, 74, 0.14);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: 0.85rem 0;
}

.m-total-line--grand {
  border-bottom: 0;
  font-size: 1.15rem;
}

.m-primary-action {
  align-items: center;
  background: #504a4a !important;
  border-radius: 999px;
  color: #fbfaf3 !important;
  display: inline-flex;
  justify-content: center;
  letter-spacing: 0;
  margin-top: 1rem;
  min-height: 44px;
  padding: 0.75rem 1.1rem;
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease;
  width: 100%;
}

.m-primary-action:hover,
.m-primary-action:focus {
  background: #9d8775 !important;
  color: #fbfaf3 !important;
  outline: none;
}

.wp-block-button__link,
.single_add_to_cart_button,
.add_to_cart_button,
.mailpoet_form .mailpoet_submit,
form.mailpoet_form_form .mailpoet_submit,
.cwginstock-subscribe-form .cwgstock_button,
.custom-modal-footer .custom-modal-button,
.m-primary-action {
  align-items: center;
  border: 1px solid #504a4a !important;
  border-radius: 999px !important;
  box-sizing: border-box;
  display: inline-flex;
  font-family: inherit;
  font-size: var(--wp--preset--font-size--small, 0.875rem) !important;
  font-weight: 400 !important;
  justify-content: center;
  letter-spacing: 0 !important;
  line-height: 1.15 !important;
  min-height: 48px;
  padding: 0.85rem 1.35rem !important;
  text-align: center;
  text-decoration: none !important;
  text-transform: uppercase;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, opacity 160ms ease;
}

.wp-block-woocommerce-add-to-cart-form .variations_button > .single_add_to_cart_button,
.wp-block-woocommerce-add-to-cart-form .variations_button > .m-buy-now-button,
.wp-block-woocommerce-add-to-cart-form form.cart > .single_add_to_cart_button,
.wp-block-woocommerce-add-to-cart-form form.cart > .m-buy-now-button {
  box-sizing: border-box !important;
  height: 48px !important;
  min-height: 48px !important;
  padding-bottom: 0 !important;
  padding-top: 0 !important;
  white-space: nowrap;
}

.wp-block-woocommerce-add-to-cart-form .quantity.wc-block-components-quantity-selector {
  height: 48px !important;
  min-height: 48px !important;
}

.wp-element-button[hidden],
.wp-block-button__link[hidden],
button[hidden],
a[hidden] {
  display: none !important;
}

.wp-block-button__link,
.single_add_to_cart_button,
.add_to_cart_button,
.mailpoet_form .mailpoet_submit,
form.mailpoet_form_form .mailpoet_submit,
.cwginstock-subscribe-form .cwgstock_button,
.custom-modal-footer .custom-modal-button,
.m-primary-action {
  background: #504a4a !important;
  color: #fbfaf3 !important;
}

.wp-block-button__link:hover,
.wp-block-button__link:focus,
.single_add_to_cart_button:hover,
.single_add_to_cart_button:focus,
.add_to_cart_button:hover,
.add_to_cart_button:focus,
.mailpoet_form .mailpoet_submit:hover,
.mailpoet_form .mailpoet_submit:focus,
form.mailpoet_form_form .mailpoet_submit:hover,
form.mailpoet_form_form .mailpoet_submit:focus,
.cwginstock-subscribe-form .cwgstock_button:hover,
.cwginstock-subscribe-form .cwgstock_button:focus,
.custom-modal-footer .custom-modal-button:hover,
.custom-modal-footer .custom-modal-button:focus,
.m-primary-action:hover,
.m-primary-action:focus {
  background: #9d8775 !important;
  border-color: #9d8775 !important;
  color: #fbfaf3 !important;
  outline: none;
}

.m-secondary-action {
  color: #504a4a;
  display: inline-flex;
  justify-content: center;
  margin-top: 0.85rem;
  text-decoration: underline;
  width: 100%;
}

.m-order-received {
  margin: 2rem auto 4rem;
  max-width: 760px;
  text-align: center;
}

.m-checkout-form label {
  color: #504a4a;
  display: grid;
  font-size: 0.95rem;
  gap: 0.4rem;
  margin-bottom: 1rem;
}

.m-checkout-note {
  color: #6f6868;
  font-size: 0.95rem;
  margin: -0.35rem 0 0.9rem;
}

.m-checkout-form input,
.m-checkout-form textarea {
  border: 1px solid rgba(80, 74, 74, 0.28);
  border-radius: 4px;
  box-sizing: border-box;
  color: #504a4a;
  font: inherit;
  min-height: 44px;
  padding: 0.7rem 0.8rem;
  width: 100%;
}

.m-checkout-form textarea {
  min-height: 110px;
  resize: vertical;
}

.m-field-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.m-field-grid label:nth-child(3) {
  grid-column: 1 / -1;
}

.m-order-kicker {
  color: #d4925b;
  font-weight: 700;
  margin: 0 0 0.35rem;
  text-transform: uppercase;
}

.m-order-meta {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 1.5rem 0;
}

.m-order-meta span {
  background: #faf7f4;
  border-radius: 4px;
  padding: 0.85rem;
}

.m-mini-cart[hidden] {
  display: none;
}

.m-mini-cart {
  inset: 0;
  position: fixed;
  z-index: 9999;
}

.m-mini-cart-backdrop {
  background: rgba(40, 36, 36, 0.42);
  inset: 0;
  position: absolute;
}

.m-mini-cart-panel {
  background: #fff;
  box-shadow: -10px 0 35px rgba(0, 0, 0, 0.18);
  color: #504a4a;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  height: 100%;
  margin-left: auto;
  max-width: min(420px, 92vw);
  padding: 1.25rem;
  position: relative;
  width: 420px;
}

.m-mini-cart-panel header {
  align-items: center;
  border-bottom: 1px solid rgba(80, 74, 74, 0.14);
  display: flex;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
}

.m-mini-cart-panel h2 {
  margin: 0;
}

.m-mini-cart-items {
  overflow: auto;
}

.m-mini-cart-item {
  align-items: center;
  border-bottom: 1px solid rgba(80, 74, 74, 0.12);
  display: grid;
  gap: 0.85rem;
  grid-template-columns: 70px minmax(0, 1fr) auto;
  padding: 0.85rem 0;
}

.m-mini-cart-item span {
  color: #6f6868;
  display: block;
  margin-top: 0.25rem;
}

.m-mini-cart-total {
  align-items: center;
  border-top: 1px solid rgba(80, 74, 74, 0.14);
  display: flex;
  justify-content: space-between;
  margin-top: 1rem;
  padding-top: 1rem;
}

.m-mini-cart-empty {
  align-content: center;
  display: grid;
  gap: 1rem;
  min-height: 45vh;
  text-align: center;
}

.m-mini-cart-open {
  overflow: hidden;
}

@media (max-width: 780px) {
  .m-cart-layout,
  .m-checkout-layout,
  .m-field-grid,
  .m-order-meta {
    grid-template-columns: 1fr;
  }

  .m-cart-summary {
    position: static;
  }

  .m-cart-table,
  .m-cart-table tbody,
  .m-cart-table tr,
  .m-cart-table td {
    display: block;
    width: 100%;
  }

  .m-cart-table thead {
    display: none;
  }

  .m-cart-table tr {
    border-bottom: 1px solid rgba(80, 74, 74, 0.14);
    padding: 1rem 0;
  }

  .m-cart-table td {
    border-bottom: 0;
    padding: 0.45rem 0;
  }

  .m-cart-product {
    min-width: 0;
  }

  .m-feed-strip {
    padding: 2.25rem 1rem;
  }

  .m-feed-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .m-booking-steps {
    gap: 0.55rem;
    grid-template-columns: 1fr;
  }

  .m-booking-steps span {
    font-size: 0.82rem;
    margin-bottom: 0.35rem;
  }

  .m-booking-steps i {
    height: 0.5rem;
  }

  .m-booking-summary {
    grid-template-columns: 1fr;
  }

  .m-booking-summary div {
    border-right: 0;
  }

  .m-booking-actions {
    align-items: stretch;
    flex-direction: column-reverse;
    gap: 0.75rem;
  }

  .cwginstock-subscribe-form .panel.panel-primary.cwginstock-panel-primary .panel-body.cwginstock-panel-body .row .col-md-12 .col-md-12 {
    flex-direction: column !important;
    gap: 0.8rem !important;
    width: 100% !important;
  }

  .cwginstock-subscribe-form .panel.panel-primary.cwginstock-panel-primary .form-group.center-block:first-of-type,
  .cwginstock-subscribe-form .panel.panel-primary.cwginstock-panel-primary .form-group.center-block:last-of-type {
    flex: 0 1 auto !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  .cwginstock-subscribe-form .cwgstock_button {
    width: 100% !important;
  }

  .woocommerce #customer_login,
  .woocommerce .u-columns.col2-set {
    box-sizing: border-box !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: calc(100vw - 2.5rem) !important;
    width: 100% !important;
  }

  .wp-block-spacer {
    max-width: 100% !important;
  }

  .m-static-notices {
    left: 1rem;
    right: 1rem;
    top: 5.25rem;
    width: auto;
  }

  .m-notice {
    min-width: 0;
    width: 100%;
  }

  .wp-block-woocommerce-add-to-cart-form .variations_button {
    display: grid !important;
    gap: 0.7rem !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    width: 100%;
  }

  .wp-block-woocommerce-add-to-cart-form .variations_button > .quantity,
  .wp-block-woocommerce-add-to-cart-form .variations_button > .single_add_to_cart_button {
    width: 100%;
  }

  .wp-block-woocommerce-add-to-cart-form .variations_button > .single_add_to_cart_button,
  .wp-block-woocommerce-add-to-cart-form .variations_button > .m-buy-now-button,
  .wp-block-woocommerce-add-to-cart-form form.cart > .single_add_to_cart_button,
  .wp-block-woocommerce-add-to-cart-form form.cart > .m-buy-now-button {
    padding-left: 0.7rem !important;
    padding-right: 0.7rem !important;
  }

  .wp-block-woocommerce-add-to-cart-form form.cart > .m-buy-now-button,
  .wp-block-woocommerce-add-to-cart-form .variations_button > .m-buy-now-button {
    grid-column: 1 / -1;
    justify-self: stretch;
    margin-left: 0;
    width: 100%;
  }
}

/* =========================================
   CATEGORY NAVIGATION: Text-only (no pill shapes)
   ========================================= */

.m-category-nav-buttons .wp-block-button__link,
.wp-container-core-buttons-is-layout-5f6a3da4 .wp-block-button__link {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  color: #504a4a !important;
  box-shadow: none !important;
  padding: 0.5rem 1.2rem !important;
  min-height: unset !important;
  transition: color 200ms ease !important;
}

.m-category-nav-buttons .wp-block-button__link:hover,
.m-category-nav-buttons .wp-block-button__link:focus,
.wp-container-core-buttons-is-layout-5f6a3da4 .wp-block-button__link:hover,
.wp-container-core-buttons-is-layout-5f6a3da4 .wp-block-button__link:focus {
  background: transparent !important;
  background-color: transparent !important;
  color: #9d8775 !important;
  text-decoration: none !important;
}

/* =========================================
   REDUCE GAP: Text section → Product grid
   ========================================= */

/* Reduce bottom padding on "Moleculla was created for you" text section */
.wp-container-core-group-is-layout-b675918d {
  padding-bottom: 0 !important;
}

/* Reduce top padding on the product grid section */
.wp-container-core-group-is-layout-6af8b07a {
  padding-top: 0.3rem !important;
}

/* Custom grid for included items */

/* =========================================
   MAILPOET NEWSLETTER FORM SPACING
   ========================================= */

#mailpoet_form_1 form.mailpoet_form {
  padding-top: 20px !important;
  padding-bottom: 20px !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
}

#mailpoet_form_1 .mailpoet-heading {
  margin-top: 0 !important;
  margin-bottom: 20px !important;
}

#mailpoet_form_1 .mailpoet_form_paragraph {
  margin-top: 0 !important;
  margin-bottom: 20px !important;
}

#mailpoet_form_1 .mailpoet_form_columns_container {
  margin-top: 0 !important;
  margin-bottom: 20px !important;
}

#mailpoet_form_1 p.mailpoet_form_paragraph.mailpoet-has-font-size {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

#mailpoet_form_1 .mailpoet_form_column .mailpoet_paragraph {
  margin-bottom: 0 !important;
}

#mailpoet_form_1 .mailpoet_form_columns.mailpoet_paragraph {
  margin-bottom: 0 !important;
}

/* =========================================
   MISSION BLOCK SPACING ADJUSTMENTS
   ========================================= */

/* Remove bottom padding on the mission text group container */
.m-mission-block,
div.wp-block-group:has(+ section.m-feed-strip),
.wp-container-core-group-is-layout-87e57397 {
  padding-bottom: 0 !important;
}

/* Remove bottom margin on the last paragraph in the mission text group */
.m-mission-block p:last-child,
div.wp-block-group:has(+ section.m-feed-strip) p:last-child,
.wp-container-core-group-is-layout-87e57397 p:last-child {
  margin-bottom: 0 !important;
}

/* Make the top padding of the following Instagram feed match the top gap (spacing--30) */
.m-mission-block + .m-feed-strip,
div.wp-block-group:has(+ section.m-feed-strip) + .m-feed-strip,
.wp-container-core-group-is-layout-87e57397 + .m-feed-strip {
  padding-top: var(--wp--preset--spacing--30) !important;
}

/* =========================================
   FLOATING MENTORING PURCHASE CARD ON IMAGE
   ========================================= */

.m-training-opening__media {
  position: relative !important;
}

/* Responsive adjustments */

.m-site-footer {
  background: #504a4a;
  color: #f4ded0;
  font-family: inherit;
  margin-top: clamp(3rem, 7vw, 5.5rem);
  padding: clamp(2.4rem, 4vw, 3.5rem) clamp(1.25rem, 4vw, 3rem) clamp(1.6rem, 3vw, 2.2rem);
}

.m-site-footer__inner {
  align-items: start;
  display: grid;
  column-gap: clamp(2rem, 6vw, 6rem);
  grid-template-columns: minmax(240px, 1.35fr) minmax(120px, 0.7fr) minmax(150px, 0.8fr) minmax(120px, 0.65fr);
  margin: 0 auto;
  max-width: 1180px;
  row-gap: 2.1rem;
}

/* Just above the one-column breakpoint the four columns' minimums plus 6vw gaps
   are wider than the screen (horizontal scroll at ~780-800px). */
@media (min-width: 781px) and (max-width: 900px) {
  .m-site-footer__inner {
    column-gap: 1.5rem;
  }
}

.m-site-footer__brand {
  display: grid;
  gap: 0.75rem;
  justify-items: start;
}

.m-site-footer__logo {
  display: inline-flex;
  line-height: 0;
  text-decoration: none !important;
}

.m-site-footer__logo img {
  display: block;
  height: auto;
  max-width: min(210px, 62vw);
  width: 210px;
}

.m-site-footer__brand p,
.m-site-footer__copy {
  color: rgba(251, 250, 243, 0.78);
  font-size: 0.9rem;
  line-height: 1.55;
  margin: 0;
}

.m-site-footer__nav,
.m-site-footer__links,
.m-site-footer__social {
  display: grid;
  gap: 0.48rem;
  justify-items: start;
}

.m-site-footer__heading {
  color: #ddb999;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.2;
  margin: 0 0 0.42rem;
  text-transform: uppercase;
}

.m-site-footer a {
  color: #fbfaf3 !important;
  font-size: 0.95rem;
  font-weight: 400;
  letter-spacing: 0 !important;
  line-height: 1.35;
  text-decoration: none !important;
  text-decoration-color: rgba(221, 185, 153, 0.55) !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  text-transform: none !important;
}

.m-site-footer a:hover,
.m-site-footer a:focus {
  color: #ddb999 !important;
  outline-color: #ddb999;
  text-decoration: underline !important;
}

.m-site-footer__copy {
  border-top: 1px solid rgba(251, 250, 243, 0.14);
  grid-column: 1 / -1;
  padding-top: 1.15rem;
}

.custom-modal {
  align-items: center;
  background: rgba(24, 22, 22, 0.58);
  display: none;
  inset: 0;
  justify-content: center;
  padding: 1.25rem;
  position: fixed;
  z-index: 10000;
}

.custom-modal.active {
  display: flex;
}

.custom-modal-content {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 22px 70px rgba(24, 22, 22, 0.24);
  color: #504a4a;
  display: flex;
  flex-direction: column;
  max-height: min(86vh, 760px);
  max-width: 760px;
  overflow: hidden;
  position: relative;
  width: min(100%, 760px);
}

.custom-modal-close {
  background: transparent;
  border: 0;
  color: #504a4a;
  cursor: pointer;
  font-size: 1.6rem;
  line-height: 1;
  padding: 0.75rem;
  position: absolute;
  right: 0.45rem;
  top: 0.35rem;
  z-index: 2;
}

.custom-modal-header {
  border-bottom: 1px solid rgba(80, 74, 74, 0.14);
  padding: 1.4rem 3.25rem 1.2rem 1.5rem;
}

.custom-modal-header h2 {
  color: #504a4a;
  margin: 0;
}

.custom-modal-body {
  font-size: 1rem;
  line-height: 1.6;
  overflow-y: auto;
  padding: 1.35rem 1.5rem;
}

.custom-modal-body p,
.custom-modal-body ul {
  margin-top: 0;
}

.custom-modal-footer {
  border-top: 1px solid rgba(80, 74, 74, 0.14);
  display: flex;
  justify-content: center;
  padding: 1rem 1.5rem;
}

body.custom-modal-open {
  overflow: hidden;
}

.m-mini-cart[hidden] {
  display: none;
}

.m-mini-cart {
  inset: 0;
  position: fixed;
  z-index: 9999;
}

.m-mini-cart-backdrop {
  background: rgba(40, 36, 36, 0.42);
  inset: 0;
  position: absolute;
}

.m-mini-cart-panel {
  background: #fff;
  box-shadow: -10px 0 35px rgba(0, 0, 0, 0.18);
  color: #504a4a;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  height: 100%;
  margin-left: auto;
  max-width: min(420px, 92vw);
  padding: 1.25rem;
  position: relative;
  width: 420px;
}

.m-mini-cart-panel header {
  align-items: center;
  border-bottom: 1px solid rgba(80, 74, 74, 0.14);
  display: flex;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
}

.m-mini-cart-panel h2 {
  margin: 0;
}

.m-mini-cart-items {
  overflow: auto;
}

.m-mini-cart-item {
  align-items: center;
  border-bottom: 1px solid rgba(80, 74, 74, 0.12);
  display: grid;
  gap: 0.85rem;
  grid-template-columns: 70px minmax(0, 1fr) auto;
  padding: 0.85rem 0;
}

.m-mini-cart-item span {
  color: #6f6868;
  display: block;
  margin-top: 0.25rem;
}

.m-mini-cart-total {
  align-items: center;
  border-top: 1px solid rgba(80, 74, 74, 0.14);
  display: flex;
  justify-content: space-between;
  margin-top: 1rem;
  padding-top: 1rem;
}

.m-mini-cart-empty {
  align-content: center;
  display: grid;
  gap: 1rem;
  min-height: 45vh;
  text-align: center;
}

.m-mini-cart-open {
  overflow: hidden;
}

.m-guide-lead {
  color: #504a4a;
  margin: 1.5rem auto 2.5rem;
  max-width: 840px;
  text-align: center;
}

.m-guide-lead > p {
  font-size: clamp(1rem, 1.35vw, 1.25rem);
  line-height: 1.55;
  margin: 0 auto 2rem;
  max-width: 760px;
}

.m-guide-lead h2 {
  color: #504a4a;
  font-size: clamp(1rem, 1.2vw, 1.15rem);
  font-weight: 300;
  line-height: 1.45;
  margin: 0 0 1rem;
}

.m-guide-lead-form {
  display: grid;
  gap: 0.75rem;
  margin: 0 auto;
  max-width: 400px;
}

.m-guide-lead-form input[type="email"] {
  background: #504a4a;
  border: 1px solid #504a4a;
  border-radius: 999px;
  box-sizing: border-box;
  color: #fff;
  font: inherit;
  font-size: 0.9rem;
  min-height: 2.8rem;
  padding: 0.6rem 1.5rem;
  width: 100%;
}

.m-guide-lead-form input[type="email"]::placeholder {
  color: rgba(255, 255, 255, 0.84);
}

.m-guide-lead-form input[type="email"]:focus {
  border-color: #ddb999;
  box-shadow: 0 0 0 3px rgba(221, 185, 153, 0.24);
  outline: 0;
}

.m-guide-lead-form button[type="submit"],
.m-guide-download-link {
  align-items: center;
  background: #504a4a;
  border: 1px solid #504a4a;
  border-radius: 999px;
  box-sizing: border-box;
  color: #ddb999;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: 0.9rem;
  justify-content: center;
  min-height: 2.8rem;
  padding: 0.6rem 1.5rem;
  text-decoration: none;
  text-transform: uppercase;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
  width: 100%;
}

.m-guide-lead-form button[type="submit"]:hover,
.m-guide-download-link:hover {
  background: #3f3939;
  color: #fff;
  transform: translateY(-1px);
}

.m-guide-lead-form button[type="submit"]:disabled {
  cursor: wait;
  opacity: 0.72;
  transform: none;
}

.m-guide-lead-privacy {
  color: #ddb999;
  font-size: 0.88rem;
  font-style: italic;
  line-height: 1.45;
  margin: 0.25rem 0 0;
}

.m-guide-lead-privacy a,
.m-guide-lead-privacy a.custom-modal-trigger {
  color: inherit !important;
}

.m-guide-lead-status {
  color: #504a4a;
  font-size: 0.95rem;
  margin: 0;
  min-height: 1.4em;
}

.m-guide-lead-status.is-error {
  color: #8f4137;
}

.m-guide-lead-status.is-success {
  color: #4f6653;
}

@media (max-width: 780px) {
  .m-cart-layout,
  .m-checkout-layout,
  .m-field-grid,
  .m-order-meta {
    grid-template-columns: 1fr;
  }

  .m-cart-summary {
    position: static;
  }

  main[data-page="cart"] > .wp-block-post-title {
    margin-top: 1.05rem !important;
    margin-bottom: 0.9rem !important;
  }

  .m-site-footer__inner {
    grid-template-columns: 1fr;
  }

  .m-cart-table,
  .m-cart-table tbody,
  .m-cart-table tr,
  .m-cart-table td {
    display: block;
    width: 100%;
  }

  .m-cart-table thead {
    display: none;
  }

  .m-cart-table tr {
    border-bottom: 1px solid rgba(80, 74, 74, 0.14);
    padding: 1rem 0;
  }

  .m-cart-table td {
    padding: 0.25rem 0;
  }

  .m-cart-table td:last-child {
    padding-top: 0.5rem;
  }
}

.m-product-listing {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2rem;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
}

.m-product-listing__title {
  overflow-wrap: anywhere;
}

.m-product-listing__title {
  font-size: 1.1rem;
  font-weight: 500;
  color: #504a4a;
  margin: 0;
  line-height: 1.3;
}

/* Desktop: match the strip title to the hero heading size. */
@media (min-width: 901px) {
  .m-product-listing__title {
    font-size: min(1.6rem, 2.27vw) !important;
  }
}

.m-product-listing__price {
  font-size: 1.1rem;
  font-weight: 600;
  color: #9d8775;
  margin: 0;
}

/* Hide the price on the /mentoring/ product strip (kept on the
   product page for checkout clarity). */
.m-mentoring-body .m-product-listing__price {
  display: none;
}

.m-product-image-buttons__info.wp-element-button {
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  padding: 0.85rem 1.6rem;
  text-transform: uppercase;
}

.m-product-image-buttons {
  display: flex;
  flex-direction: row;
  gap: 0.6rem;
  width: auto;
  white-space: nowrap;
}

.m-product-image-buttons__info {
  background: #504a4a;
  color: #ddb999;
  border: none;
  min-width: 12rem;
  padding: 0.75rem 2rem;
}

.m-product-image-buttons__info:hover {
  background: #3d3838;
  transform: translateY(-1px);
}

@media (max-width: 600px) {
  .m-product-image-buttons {
    gap: 0.5rem;
  }
  .m-product-image-buttons__info {
    font-size: 0.7rem;
    padding: 0.6rem 1.5rem;
    min-width: 10rem;
  }
}

/* Sticky footer - keep the footer pinned to the bottom with no blank space
   below it. The footer lives INSIDE .wp-site-blocks, so that element (not body)
   must be the flex column, and the main content grows to fill short pages. */
html {
  min-height: 100vh;
  min-height: 100svh;
}
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100svh;
}
.wp-site-blocks {
  display: flex;
  flex: 1 0 auto;
  flex-direction: column;
}
/* Direct children are full-width page sections. As flex items, blocks with
   aligncenter/auto margins (full-bleed cover sections) would otherwise collapse
   to content width, so keep them spanning the full width. */
.wp-site-blocks > * {
  box-sizing: border-box;
  width: 100%;
}
.wp-site-blocks > main,
body > main {
  flex: 1 0 auto;
}
.m-site-footer {
  flex-shrink: 0;
}

/* Newsletter band sits flush against the footer (no gap from the footer's
   top margin). */
.m-newsletter + .m-site-footer {
  margin-top: 0 !important;
}

/* Breathing room between the sticky header and a page title that sits directly
   at the top of the content (Cart, Checkout, etc.). */
main > .wp-block-post-title {
  margin-top: clamp(1.5rem, 4vw, 2.5rem);
}

/* =========================================
   HEADER — a little more height around the logo
   ========================================= */
.sticky-header {
  padding-top: clamp(1rem, 1.6vw, 1.45rem) !important;
  padding-bottom: clamp(1rem, 1.6vw, 1.45rem) !important;
}

/* =========================================
   SHOP ROULETTE CAROUSEL — responsive circle size
   (1.5x smaller than the original fixed 100px:
   was clamp(60px, 11vw, 104px))
   ========================================= */
.ia-roulette-container .ia-item.image img {
  width: clamp(40px, 7.3333vw, 69.3333px) !important;
  height: clamp(40px, 7.3333vw, 69.3333px) !important;
}

/* Captions and vertical padding scaled to match (1.5x smaller). */
.ia-roulette-container .ia-item.text {
  font-size: 16px !important;
}

.ia-roulette-container {
  padding-bottom: 26.67px !important;
  padding-top: 26.67px !important;
}

/* =========================================
   EMPTY CART — tidy "New in store" suggestions
   ========================================= */
.wp-block-woocommerce-empty-cart-block {
  margin-left: auto;
  margin-right: auto;
  max-width: 1040px;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
  display: grid;
  gap: 1.75rem 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(150px, 210px));
  justify-content: center;
  list-style: none;
  margin: 1.75rem auto 0;
  max-width: 920px;
  padding: 0;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
  display: flex;
  flex-direction: column;
  margin: 0 !important;
  text-align: center;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product img {
  height: auto;
  margin: 0 auto;
  max-width: 100%;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product .wp-block-button {
  margin-top: auto;
  padding-top: 0.6rem;
}

/* =========================================
   NEWSLETTER SIGNUP (bottom of homepage)
   ========================================= */
.m-newsletter {
  background: #f2eee7;
  box-sizing: border-box;
  padding: clamp(2.75rem, 6vw, 4.5rem) clamp(1.25rem, 4vw, 3rem);
  text-align: center;
}

.m-newsletter__inner {
  margin: 0 auto;
  max-width: 560px;
}

.m-newsletter__eyebrow {
  color: #9d8775;
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  margin: 0 0 0.6rem;
  text-transform: uppercase;
}

.m-newsletter h2 {
  color: #504a4a;
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 300;
  letter-spacing: 0;
  margin: 0 0 0.6rem;
}

.m-newsletter__lead {
  color: #5d5650;
  font-size: 1.02rem;
  line-height: 1.5;
  margin: 0 0 1.6rem;
}

.m-newsletter-form {
  display: flex;
  gap: 0.5rem;
  margin: 0 auto;
  max-width: 400px;
}

.m-newsletter-form input[type="email"] {
  background: #fff;
  border: 1px solid rgba(80, 74, 74, 0.28);
  border-radius: 999px;
  box-sizing: border-box;
  color: #504a4a;
  flex: 1 1 auto;
  font: inherit;
  font-size: 0.92rem;
  min-height: 42px;
  padding: 0.5rem 1.1rem;
}

.m-newsletter-form input[type="email"]:focus {
  border-color: #9d8775;
  box-shadow: 0 0 0 2px rgba(221, 185, 153, 0.25);
  outline: none;
}

.m-newsletter-form button {
  background: #504a4a;
  border: 1px solid #504a4a;
  border-radius: 999px;
  color: #fbfaf3;
  cursor: pointer;
  flex: 0 0 auto;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  min-height: 42px;
  padding: 0.5rem 1.35rem;
  text-transform: uppercase;
  transition: background-color 0.18s ease;
}

.m-newsletter-form button:hover {
  background: #9d8775;
}

.m-newsletter-form button:disabled {
  cursor: wait;
  opacity: 0.6;
}

.m-newsletter-status {
  color: #5d5650;
  font-size: 0.9rem;
  margin: 0.9rem 0 0;
  min-height: 1.2em;
}

.m-newsletter-status.is-error {
  color: #8f4137;
}

.m-newsletter-status.is-success {
  color: #4f6653;
}

.m-newsletter__privacy {
  color: #8a827b;
  font-size: 0.82rem;
  font-style: italic;
  margin: 0.8rem 0 0;
}

@media (max-width: 520px) {
  .m-newsletter-form {
    flex-direction: column;
  }

  .m-newsletter-form button {
    width: 100%;
  }
}

/* =========================================
   FILLED PRODUCT GRIDS (related products + PDF
   category) injected by static.js
   ========================================= */
.m-filled-grid {
  display: grid !important;
  gap: 1.75rem 1.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  margin: 1.25rem auto 0;
  max-width: 1100px;
  padding: 0;
}

@media (min-width: 760px) {
  .m-filled-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.m-filled-grid .wc-block-product {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  margin: 0 !important;
  min-width: 0;
  text-align: center;
  width: 100% !important;
}

.m-filled-grid .wc-block-components-product-image {
  margin-bottom: 0.85rem;
}

.m-filled-grid img {
  aspect-ratio: 1;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.m-filled-grid .wp-block-post-title {
  font-size: 1rem;
  margin: 0 0 0.85rem;
}

.m-filled-grid .wp-block-button {
  margin-top: auto;
}

/* =========================================
   PASSWORD RESET / ACCOUNT-HELP PAGE FORM
   Normalize the input + buttons (input was tiny default-styled while the
   submit button stretched full card width).
   ========================================= */
.m-account-help-card .m-auth-form {
  display: grid;
  gap: 1rem;
  margin: 1.5rem auto 0;
  max-width: 380px;
  text-align: left;
}

.m-account-help-card .m-auth-form-row {
  display: grid;
  gap: 0.4rem;
  margin: 0;
}

.m-account-help-card .m-auth-form-row label {
  color: #504a4a;
  font-size: 0.9rem;
}

.m-account-help-card .m-auth-form input {
  background: #fff;
  border: 1px solid rgba(80, 74, 74, 0.28);
  border-radius: 8px;
  box-sizing: border-box;
  color: #504a4a;
  font: inherit;
  font-size: 0.95rem;
  min-height: 48px;
  padding: 0.6rem 0.9rem;
  width: 100%;
}

.m-account-help-card .m-auth-form input:focus {
  border-color: #9d8775;
  box-shadow: 0 0 0 2px rgba(221, 185, 153, 0.22);
  outline: none;
}

.m-account-help-card .m-auth-form .m-primary-action {
  font-size: 0.9rem;
  margin-top: 0.25rem;
  min-height: 48px;
  width: 100%;
}

/* Keep the secondary "Back to account" button the same width/height as the form */
.m-account-help__actions {
  margin-left: auto;
  margin-right: auto;
  max-width: 380px;
}

.m-account-help__actions a {
  min-height: 48px;
  padding: 0.7rem 1.5rem;
  width: 100%;
}

/* PDF download modal styles */

/* =========================================
   BOOKING WIDGET
   ========================================= */

.m-booking-widget {
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  padding: 2rem;
  width: 100%;
  box-sizing: border-box;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.m-booking-steps {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 2px solid #e5e5e5;
}

.m-booking-step {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  color: #999 !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  padding: 0.5rem 0 !important;
  margin: 0 !important;
  vertical-align: middle !important;
}

.m-booking-step.active {
  color: #504a4a !important;
  font-weight: 600 !important;
}

.m-booking-step-number {
  background: #e5e5e5 !important;
  border-radius: 50% !important;
  color: #999 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  height: 30px !important;
  width: 30px !important;
  min-width: 30px !important;
  flex-shrink: 0 !important;
  line-height: 30px !important;
  text-align: center !important;
  vertical-align: middle !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.m-booking-step.active .m-booking-step-number {
  background: #504a4a !important;
  color: #ffffff !important;
}

.m-booking-content {
  min-height: 0;
}

.m-booking-panel {
  display: none;
}

.m-booking-panel.active {
  display: block;
}

.m-booking-panel h3 {
  color: #504a4a;
  font-size: 1.2rem;
  font-weight: 600;
  margin: 0 0 1.5rem 0;
}

.m-booking-instruction {
  color: #666;
  font-size: 1rem;
  margin: 0 0 1.5rem 0;
  font-weight: 500;
}

.m-booking-dates {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.m-booking-date-btn {
  background: #fff !important;
  border: 2px solid #ddd !important;
  border-radius: 8px !important;
  color: #504a4a !important;
  cursor: pointer !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  padding: 0.85rem 1.25rem !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
  font-family: inherit !important;
  line-height: 1 !important;
}

.m-booking-date-btn:hover {
  background: #f5f5f5 !important;
  border-color: #999 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
}

.m-booking-date-btn.selected {
  background: #504a4a !important;
  border-color: #504a4a !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(80, 74, 74, 0.3) !important;
}

.m-booking-times-label {
  color: #666;
  font-size: 1rem;
  margin: 0 0 1rem 0;
  font-weight: 500;
}

.m-booking-time-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important;
  gap: 0.75rem !important;
  margin-bottom: 1.5rem !important;
}

.m-booking-time-btn {
  background: #fff !important;
  border: 2px solid #ddd !important;
  border-radius: 8px !important;
  color: #504a4a !important;
  cursor: pointer !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  padding: 1rem 0.75rem !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
  min-height: 52px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  font-family: inherit !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

.m-booking-time-btn:hover {
  background: #f5f5f5 !important;
  border-color: #999 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
  color: #504a4a !important;
}

.m-booking-time-btn:focus {
  outline: none !important;
  color: #504a4a !important;
}

.m-booking-time-btn.selected {
  background: #504a4a !important;
  border-color: #504a4a !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(80, 74, 74, 0.3) !important;
}

.m-booking-time-btn.selected:hover {
  background: #3f3939 !important;
  border-color: #3f3939 !important;
  color: #ffffff !important;
}

.m-booking-time-btn.selected:focus {
  outline: 2px solid #3f3939 !important;
  outline-offset: 2px !important;
  color: #ffffff !important;
  background: #504a4a !important;
}

.m-booking-next-btn,
.m-booking-confirm-btn {
  background: #504a4a;
  border: none;
  border-radius: 40px;
  color: #ddb999;
  cursor: pointer;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 0.9rem 2.5rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.2s ease;
  margin-top: 0.5rem;
}

.m-booking-next-btn:hover:not(:disabled),
.m-booking-confirm-btn:hover:not(:disabled) {
  background: #3f3939;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(80, 74, 74, 0.3);
}

.m-booking-next-btn:disabled {
  cursor: not-allowed;
  opacity: 0.4;
  background: #999;
}

.m-booking-back-btn {
  background: transparent;
  border: 2px solid #504a4a;
  border-radius: 40px;
  color: #504a4a;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 0.75rem 2rem;
  text-transform: uppercase;
  transition: all 0.2s ease;
}

.m-booking-back-btn:hover {
  background: #504a4a;
  color: #fff;
}

.m-booking-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.m-booking-field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.m-booking-field label {
  color: #504a4a;
  font-size: 0.9rem;
  font-weight: 500;
}

.m-booking-field input,
.m-booking-field textarea {
  border: 1px solid #ddd;
  border-radius: 6px;
  font-family: inherit;
  font-size: 0.95rem;
  padding: 0.75rem;
  transition: border-color 0.2s ease;
}

.m-booking-field input:focus,
.m-booking-field textarea:focus {
  border-color: #504a4a;
  outline: none;
}

.m-booking-actions {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.m-booking-summary {
  background: #f9f9f9;
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.m-booking-summary-row {
  display: flex;
  justify-content: space-between;
  padding: 0.75rem 0;
  border-bottom: 1px solid #e5e5e5;
}

.m-booking-summary-row:last-child {
  border-bottom: none;
}

.m-booking-summary-row span:first-child {
  color: #666;
  font-size: 0.9rem;
}

.m-booking-summary-value {
  color: #504a4a;
  font-weight: 600;
  font-size: 0.95rem;
}

/* Action buttons should never break their label across lines. */
.m-booking-next-btn,
.m-booking-confirm-btn,
.m-booking-back-btn {
  white-space: nowrap;
}

/* Booking widget on phones: stack the step number above its label and
   give each step an equal share so labels wrap at words, not per-letter. */
@media (max-width: 560px) {
  .m-booking-widget {
    padding: 1.25rem;
  }

  .m-booking-steps {
    gap: 0.35rem;
  }

  .m-booking-step {
    flex: 1 1 0 !important;
    flex-direction: column !important;
    gap: 0.35rem !important;
    min-width: 0 !important;
    font-size: 0.72rem !important;
    line-height: 1.2 !important;
    text-align: center;
  }

  .m-booking-actions {
    flex-direction: column-reverse;
    gap: 0.75rem;
  }

  .m-booking-actions .m-booking-next-btn,
  .m-booking-actions .m-booking-confirm-btn,
  .m-booking-actions .m-booking-back-btn {
    width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
    /* "Add to cart & checkout" is wider than the phone column: wrap at words. */
    white-space: normal;
    line-height: 1.3;
  }
}

/* =========================================
   RESPONSIVE / OVERFLOW SAFETY
   Fixes horizontal scroll on phones caused by fixed-size
   WooCommerce product thumbnails (intrinsic 300px) forcing
   grid tracks wider than the viewport.
   ========================================= */

/* Content images never exceed their container. Decorative/opted-out
   images (Instagram tiles) already set max-width:none !important and
   are unaffected. */
img {
  max-width: 100%;
  height: auto;
}

/* WooCommerce shop/category product grid: let columns shrink to fit
   the phone instead of holding the image's intrinsic width. */
.wc-block-product-template .wc-block-components-product-image img,
.wc-block-product-template .wc-block-grid__product-image img {
  height: auto;
  width: 100%;
}

.wc-block-product-template .wc-block-product,
ul.wc-block-product-template li.product {
  min-width: 0;
}

@media (max-width: 600px) {
  /* Two roomy columns on phones rather than cramped tracks. */
  .wc-block-product-template.columns-3,
  .wc-block-product-template.columns-4,
  .wc-block-product-template.columns-5 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* ---- Guides catalog (expandable info entries) ---- */

/* ---- Sidebar layout (course-style left navigator) ---- */

/* --- Online course: product page summary + checkout success access code --- */
.m-course-product {
  color: #504a4a;
  max-width: 34rem;
}

.m-course-product__lead {
  font-size: 1rem;
  line-height: 1.6;
  margin: 0 0 1rem;
}

.m-course-product__facts {
  display: grid;
  gap: 0.45rem;
  list-style: none;
  margin: 0 0 1.4rem;
  padding: 0;
}

.m-course-product ul.m-course-product__facts > li {
  font-size: 0.95rem;
  margin: 0;
  padding-left: 1.6rem;
  position: relative;
}

.m-course-product__facts li::before {
  color: #9d8775;
  content: "\2713";
  left: 0.15rem;
  position: absolute;
}

.m-course-product form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.m-course-product form.cart > .single_add_to_cart_button,
.m-course-product form.cart > .m-buy-now-button {
  flex: 1 1 11rem;
  margin: 0 !important;
}

.m-course-product__note {
  color: #6f6868;
  font-size: 0.875rem;
  line-height: 1.55;
  margin: 1rem 0 0;
}

.m-course-product__note a,
.m-course-access a {
  color: #504a4a;
}

.m-course-access {
  background: #faf7f4;
  border: 1px solid rgba(80, 74, 74, 0.14);
  border-radius: 10px;
  margin: 1.5rem 0 0.5rem;
  padding: 1.5rem;
  text-align: center;
}

.m-course-access h3 {
  color: #504a4a;
  font-size: 1.3rem;
  margin: 0 0 1rem;
}

.m-course-access__item {
  margin: 0 0 1rem;
}

.m-course-access__course {
  font-weight: 700;
  margin: 0 0 0.35rem;
}

.m-course-access__label {
  color: #9d8775;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  margin: 0 0 0.35rem;
  text-transform: uppercase;
}

.m-course-access__code {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  justify-content: center;
  margin: 0;
}

.m-course-access__code code {
  background: #fff;
  border: 1px dashed #ddb999;
  border-radius: 8px;
  color: #504a4a;
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: clamp(1.05rem, 0.9rem + 1vw, 1.4rem);
  letter-spacing: 0.08em;
  padding: 0.6rem 1rem;
}

.m-course-access__copy {
  background: transparent;
  border: 1px solid #504a4a;
  border-radius: 999px;
  color: #504a4a;
  cursor: pointer;
  font: inherit;
  font-size: 0.8rem;
  padding: 0.45rem 0.95rem;
  text-transform: uppercase;
}

.m-course-access__copy:hover,
.m-course-access__copy:focus {
  background: #504a4a;
  color: #fbfaf3;
}

.m-course-access__help,
.m-course-access__waiting {
  color: #6f6868;
  font-size: 0.9rem;
  line-height: 1.6;
  margin: 1rem 0 0;
}

.m-course-access .m-primary-action {
  margin-top: 0.5rem;
  width: auto;
}

.m-course-access-slot[hidden] {
  display: none;
}

/* =========================================
   MY ACCOUNT: login / register cards, styled
   like the newsletter form (pill fields, dark
   pill buttons on the cream palette)
   ========================================= */
.woocommerce #customer_login {
  margin: 0 auto !important;
  padding: 0 !important;
}

.woocommerce #customer_login .u-column1.col-1,
.woocommerce #customer_login .u-column2.col-2 {
  background: #f2eee7 !important;
  border-radius: 18px !important;
  box-sizing: border-box;
  padding: clamp(1.5rem, 3vw, 2.4rem) !important;
}

.woocommerce #customer_login h2 {
  color: #504a4a;
  font-size: clamp(1.5rem, 2.6vw, 1.9rem);
  font-weight: 300;
  letter-spacing: 0;
  margin: 0 0 1.4rem;
}

.woocommerce #customer_login form {
  margin: 0;
}

.woocommerce #customer_login .form-row {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0 0 1rem;
  padding: 0;
}

.woocommerce #customer_login label {
  color: #5d5650;
  font-size: 0.86rem;
  letter-spacing: 0.02em;
}

.woocommerce #customer_login .required {
  color: #9d8775;
  text-decoration: none;
}

.woocommerce #customer_login input.input-text {
  background: #fff;
  border: 1px solid rgba(80, 74, 74, 0.28);
  border-radius: 999px;
  box-sizing: border-box;
  color: #504a4a;
  font: inherit;
  font-size: 0.92rem;
  min-height: 44px;
  padding: 0.5rem 1.1rem;
  width: 100%;
}

.woocommerce #customer_login input.input-text:focus {
  border-color: #9d8775;
  box-shadow: 0 0 0 2px rgba(221, 185, 153, 0.25);
  outline: none;
}

.woocommerce #customer_login .woocommerce-form-login__rememberme {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  gap: 0.5rem;
  margin: 0 0 0.4rem;
}

.woocommerce #customer_login input[type="checkbox"] {
  accent-color: #504a4a;
  height: 16px;
  margin: 0;
  width: 16px;
}

.woocommerce #customer_login .woocommerce-form-login__submit,
.woocommerce #customer_login .woocommerce-form-register__submit {
  background: #504a4a !important;
  border: 1px solid #504a4a;
  border-radius: 999px;
  color: #fbfaf3 !important;
  cursor: pointer;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin-top: 0.4rem;
  min-height: 44px;
  padding: 0.5rem 1.35rem;
  text-transform: uppercase;
  transition: background-color 0.18s ease;
  width: 100%;
}

.woocommerce #customer_login .woocommerce-form-login__submit:hover,
.woocommerce #customer_login .woocommerce-form-register__submit:hover {
  background: #9d8775 !important;
  border-color: #9d8775;
}

.woocommerce #customer_login p:not(.form-row) {
  color: #6f6868;
  font-size: 0.88rem;
  line-height: 1.5;
  margin: 0 0 1rem;
}

.woocommerce #customer_login .lost_password {
  margin: 0.4rem 0 0 !important;
  text-align: center;
}

.woocommerce #customer_login a {
  color: #9d8775;
}

@media (max-width: 800px) {
  .woocommerce #customer_login .u-column1.col-1,
  .woocommerce #customer_login .u-column2.col-2 {
    width: 100% !important;
  }
}
