/* Block and WooCommerce specific styles */

:root{
  text-wrap: pretty;
}

sup {
  font-size: .65em;
}

:root :where(.is-layout-constrained) > * {
  margin-block-start: 1rem !important;
}

:root :where(.is-layout-constrained) > *:first-child {
  margin-block-start: 0 !important;
}

.is-style-sticky {
  position: sticky;
  top: var(--sticky-menu-offset);
  transition: top .5s ease;
}

.wp-block-heading {
  text-wrap: balance;
}

.wp-block-heading strong {
  font-weight: 700;
}

.is-style-preheader.has-background {
  display: inline-block;
  width: max-content;
  margin-block: 0 !important;
  padding: .25rem .75rem;
  border-radius: .25rem;
}

.alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-inline: calc(var(--page-gutter) + var(--inline-spacer));
  padding-block: var(--section-spacer);
}

.alignfull.has-background {
  padding-inline: var(--page-gutter);
}

.wp-block-cover:not(.alignfull),
.wp-block-media-text.has-background:not(.alignfull),
.wp-block-group.has-background:not(.alignfull) {
  border-radius: var(--container-border-radius);
  overflow: hidden;
}
.wp-block-group.has-background:not(.alignfull) {
  padding: 1.5rem;
}

.wp-block-group.is-layout-grid:not(:first-child) {
  margin-block-start: 3rem !important;
}


.wp-block-media-text:not(.alignfull).has-gold-10-background-color {
  border: solid 1px var(--wp--preset--color--gold-30);
}

.wp-block-button__link {
  padding: calc(0.6rem + 1px) calc(1.2rem + 1px);
  transition: all .25s ease;
}

.wp-block-button__link:hover {
  transform: scale(108%);
}

.wp-block-button.is-style-outline .wp-block-button__link {
  padding: 0.6rem 1.2rem;
}

/* =============================================================================
   Triangle Button block style
   ============================================================================= */

.wp-block-button.is-style-triangle-button .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    gap: 0.625em;
    background: transparent;
    border-color: transparent !important;
}

.wp-block-button.is-style-triangle-button .wp-block-button__link:not(.has-background) {
  border-radius: 0 !important;
  padding-inline: 0 !important;
}

.wp-block-button.is-style-triangle-button .wp-block-button__link::before {
    content: '';
    flex-shrink: 0;
    width: .875em;
    height: .875em;
    background-color: var(--wp--preset--color--red) ;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58.99 60'%3E%3Cpath fill='%23000' d='M7.07,3.03C13.2-1.49,21.73-.15,28.58,1.89c5.59,1.69,11.14,3.85,16.37,6.86,9.44,5.45,17.61,13.38,12.43,24.74-2.76,5.78-7.63,10.21-12.42,14.36-6.85,5.65-15.49,11.27-24.11,12.1-9.16.72-14.74-6.55-17.28-14.56C.04,34.24-3.57,11.21,7.02,3.07l.05-.04Z'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 58.99 60'%3E%3Cpath fill='%23000' d='M7.07,3.03C13.2-1.49,21.73-.15,28.58,1.89c5.59,1.69,11.14,3.85,16.37,6.86,9.44,5.45,17.61,13.38,12.43,24.74-2.76,5.78-7.63,10.21-12.42,14.36-6.85,5.65-15.49,11.27-24.11,12.1-9.16.72-14.74-6.55-17.28-14.56C.04,34.24-3.57,11.21,7.02,3.07l.05-.04Z'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-size: contain;
            mask-size: contain;
}
.wp-block-button.is-style-triangle-button .wp-block-button__link.has-red-background-color::before {
  background-color: #fff;
}


.wp-block-group.alignfull,
.wp-block-cover.alignfull {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.wp-block-columns:not(.alignfull).has-background,
.wp-block-columns .wp-block-column.has-background {
  padding: var(--inline-spacer);
  border-radius: 1rem;
}

.wp-block-group:not(.alignfull).has-background.has-gold-10-background-color,
.wp-block-columns .wp-block-column.has-background.has-gold-10-background-color {
  border: solid 1px var(--wp--preset--color--gold-30) !important;
}

/* Extend stacking up to 950px for flagged columns */
@media (max-width: 950px) {
  .wp-block-columns.is-style-large:not(.is-not-stacked-on-mobile) {
    flex-wrap: wrap !important;
  }
  .wp-block-columns.is-style-large:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 100% !important;
  }
}

.wp-block-media-text {
  container-type: inline-size;
}

@media (max-width: 600px) {
  .wp-block-media-text.is-stacked-on-mobile {
    align-content: start;
  }
  .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media,
    .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media img {
      aspect-ratio: 5/3;
      object-fit: cover;
      object-position: center;
    }
}

.wp-block-media-text>.wp-block-media-text__content {
  padding: 1.5rem;
}

@container (min-width: 800px) {
  .wp-block-media-text>.wp-block-media-text__content {
    padding: 3rem;
  }
}

@container (min-width: 1000px) {
  .wp-block-media-text>.wp-block-media-text__content  {
    padding: 5rem;
  }
}


 .wp-block-cover.is-style-swoosh {
    min-height: 75svh !important;
    align-items: end;
    padding-block-end: 10svh;
}

@media (min-height:900px) {
    .wp-block-cover.is-style-swoosh {
        min-height: 45rem !important;
    }
}

@media (max-width: 900px) {
    .wp-block-cover.is-style-swoosh {
      padding-block-end: 5svh;
    }
    
    .wp-block-cover.is-style-swoosh .wp-block-cover__inner-container {
      align-content: end;
    }
}

 .wp-block-cover.is-style-swoosh.small {
   margin-top: calc( var(--announcement-bar-height) + 4.5rem + var(--section-spacer) * -1);
   padding-top: calc( var(--announcement-bar-height) + 4.5rem + var(--section-spacer));
   min-height: 20rem !important;
   margin-bottom: var(--section-spacer);
 }

/* ── Masked background + overlay ───────────────────────── */
.wp-block-cover.is-style-swoosh .wp-block-cover__image-background,
.wp-block-cover.is-style-swoosh .wp-block-cover__video-background,
.wp-block-cover.is-style-swoosh .wp-block-cover__background {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg id='b' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 5089.1'%3E%3Cg id='c'%3E%3Cpath d='M1600,0H0v5070.85c338.18,35.33,692.55,15.26,1016.29-25.15,194.37-28.97,391.87-60.79,583.71-109.78V0Z'/%3E%3C/g%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg id='b' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 5089.1'%3E%3Cg id='c'%3E%3Cpath d='M1600,0H0v5070.85c338.18,35.33,692.55,15.26,1016.29-25.15,194.37-28.97,391.87-60.79,583.71-109.78V0Z'/%3E%3C/g%3E%3C/svg%3E");
    -webkit-mask-position: bottom center;
    mask-position: bottom center;
    -webkit-mask-size: 100% auto;
    mask-size: 100% auto;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

/* ── Gradient border along the swoosh edge ──────────────── */
.wp-block-cover.is-style-swoosh::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 5089.1'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0%25' stop-color='%2354411d'/%3E%3Cstop offset='50%25' stop-color='%23b4975f'/%3E%3Cstop offset='100%25' stop-color='%2354411d'/%3E%3C/linearGradient%3E%3CclipPath id='clip'%3E%3Cpath d='M1600,0H0v5070.85c338.18,35.33,692.55,15.26,1016.29-25.15,194.37-28.97,391.87-60.79,583.71-109.78V0Z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cpath d='M0,5070.85c338.18,35.33,692.55,15.26,1016.29-25.15,194.37-28.97,391.87-60.79,583.71-109.78' fill='none' stroke='url(%23g)' stroke-width='34' stroke-linecap='round' vector-effect='non-scaling-stroke' clip-path='url(%23clip)'/%3E%3C/svg%3E");
    background-position: bottom center;
    background-size: 100% auto;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 2;
}

.wp-block-cover.is-style-swoosh .wp-block-cover__inner-container {
  z-index: 3;
}

.wp-block-list {
  padding-inline-start: 1.5rem;
}

ul.wp-block-list {
  list-style: none;
}

.wp-block-list li {
  position: relative;
}

ul.wp-block-list li::before {
  content: '';
  position: absolute;
  left: -.85em;
  top: 0.5em;
  width: 0.4em;
  height: 0.4em;
  background-color: currentColor;
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160.61 163.36'><path d='M19.26,8.25C35.94-4.06,59.16-.41,77.82,5.16c15.23,4.6,30.33,10.49,44.56,18.69,25.7,14.83,47.95,36.42,33.83,67.36-7.51,15.74-20.77,27.79-33.82,39.09-18.65,15.39-42.17,30.68-65.65,32.93-24.93,1.95-40.14-17.82-47.04-39.64C.11,93.21-9.71,30.51,19.12,8.36l.14-.11Z'/></svg>");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160.61 163.36'><path d='M19.26,8.25C35.94-4.06,59.16-.41,77.82,5.16c15.23,4.6,30.33,10.49,44.56,18.69,25.7,14.83,47.95,36.42,33.83,67.36-7.51,15.74-20.77,27.79-33.82,39.09-18.65,15.39-42.17,30.68-65.65,32.93-24.93,1.95-40.14-17.82-47.04-39.64C.11,93.21-9.71,30.51,19.12,8.36l.14-.11Z'/></svg>");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}

.shop-archive-content {
  max-width: var(--wp--style--layout--content-size);
  margin: 0 auto 2rem;
}

.shop-archive-content > * + * {
  margin-top: 1.5rem;
}

.woocommerce-single-wrapper .entry-content > * + * {
  margin-top: 1.5rem;
}

.woocommerce ul.products,
.woocommerce-page ul.products {
  gap: 1.5rem;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  border: 1px solid #e5e7eb;
  padding: 1rem;
  border-radius: 0.75rem;
}

.woocommerce div.product .product_title {
  margin-bottom: 0.5rem;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-weight: 600;
}


.woocommerce button.button,
.woocommerce input.button,
.sc-account-actions a.button,
.woocommerce a.sc-addresses-add {
  border-radius: 999px;
  padding: calc(0.6rem + 1px) calc(1.2rem + 1px);
  font-size: var(--wp--preset--font-size--small);
  color: #fff;
  background: var(--wp--preset--color--red);
  font-weight: 400;
  transition: all .25s ease;
}


.woocommerce button.button:hover,
.woocommerce input.button:hover,
.sc-account-actions a.button:hover,
.woocommerce a.sc-addresses-add:hover {
  transform: scale(108%);
  color: #fff;
  background: var(--wp--preset--color--red);
}


/* ── Product Hero ───────────────────────── */

.wp-block-group.product-hero {
  padding: 0 0 150px 0 !important;
}

.wp-block-group.product-hero > .wp-block-cover.is-style-swoosh {
  padding-block-end: 150px !important;
  margin-block-start: 0 !important;
}

.wp-block-group.product-hero > .wp-block-image.product-image {
  position: absolute;
  bottom: 0;
  right: calc(var(--page-gutter) + var(--inline-spacer));
  height: 300px;
  width:400px;
  max-width: 100%;
  z-index: 100;
  margin: 0 !important;
}

.wp-block-group.product-hero > .wp-block-image.product-image img {
  position: absolute;
  inset: 0;
  height: 100%;
  width:100%;
  object-fit: contain;
}


/* ── CTA Bar ───────────────────────── */

.wp-block-group.cta-bar > .wp-block-columns {
  display: grid;
  gap: 1.5rem;
}

.wp-block-group.cta-bar p {
  margin: 0 !important;
}

.wp-block-group.cta-bar {
  padding: 1.5rem;
}

@media (min-width:650px) {
  .wp-block-group.cta-bar {
    padding: var(--inline-spacer);
  }
  .wp-block-group.cta-bar > .wp-block-columns {
    grid-template-columns: 1fr auto;
  }
}


/* ---- WordPress core Details block override ---- */

.wp-block-details {
  border: 1px solid currentColor;
  border-radius: .5rem;
  padding: 1rem;
  overflow: hidden; /* keeps content corners clipped during animation */
}

.wp-block-details > summary {
  list-style: none; /* Firefox + standards */
  cursor: pointer;
  display: block;
  font-weight: 600;
  padding: 1rem  2.5rem 1rem 1rem;
  margin: -1rem !important;
  user-select: none;
  position: relative;
}

/* Safari */
.wp-block-details > summary::-webkit-details-marker {
  display: none;
}

/* Plus icon — rotates 45° to become an X when open */
.wp-block-details > summary::after {
  content: "";
  position: absolute;
  right: 1rem;
  top: 1.0625rem;
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='11' y='4' width='2' height='16' rx='1' fill='black'/><rect x='4' y='11' width='16' height='2' rx='1' fill='black'/></svg>");
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='11' y='4' width='2' height='16' rx='1' fill='black'/><rect x='4' y='11' width='16' height='2' rx='1' fill='black'/></svg>");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  transition: transform 0.5s ease-in-out;
}

.wp-block-details[open] > summary::after {
  transform: rotate(315deg);
}

/* Optional: a little breathing room around the inner content */
.wp-block-details > :not(summary) {
  margin-top: 1.5rem;
}

/* ---- Height animation (modern browsers) ---- */
@supports (interpolate-size: allow-keywords) {
  :root {
    interpolate-size: allow-keywords;
  }

  .wp-block-details::details-content {
    block-size: 0;
    overflow: hidden;
    opacity: 0;
    transition:
      block-size 0.3s ease,
      content-visibility 0.3s ease allow-discrete,
      opacity 0.25s ease;
  }

  .wp-block-details[open]::details-content {
    block-size: auto;
    opacity: 1;
  }
}

.wpforms-container .wpforms-field, .wp-core-ui div.wpforms-container .wpforms-field {
  padding: 0 0 1rem 0;
}

.wpforms-container .wpforms-field.wpforms-field-layout {
  padding-bottom: 0 !important;
}

div.wpforms-container-full .wpforms-field-label, .wp-core-ui div.wpforms-container-full .wpforms-field-label {
  margin-bottom: .25rem;
}

div.wpforms-container-full:not(:empty) {
  margin-block: 0 !important;
}

div.wpforms-container-full .wpforms-confirmation-container-full, div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
  background: var(--wp--preset--color--red) !important;
  border: solid 1px var(--wp--preset--color--gold-30) !important;
  color: #fff !important;
  border-radius: .5rem;
}

div.wpforms-container-full .wpforms-confirmation-container-full p, div[submit-success]>.wpforms-confirmation-container-full:not(.wpforms-redirection-message) p {
  color: #fff !important;
}