/* ==========================================================================
   Nancy Niepess Fashion — complete front-end stylesheet
   --------------------------------------------------------------------------
   GENERATED FILE — do not edit by hand.
   Built from, in cascade order:
     PART A  redesign/nancy-homepage.css   (restyle: sections 1-19)
     PART B  redesign/legacy-site.css      (original site CSS + "Pretty fixes")
     PART C  redesign/backup-20261026/customizer.css (was Customizer Additional CSS)

   This file replaces ALL admin-entered CSS. Both the Simple Custom CSS box
   and Appearance > Customize > Additional CSS are now empty, on purpose.
   Backups of both, as they were on 2026-10-26, are in
   redesign/backup-20261026/ and on the server at ~/css-backup-20261026/.

   The three parts are concatenated in the same order they used to print in
   wp_head (enqueued <link>, then sccss inline, then customizer inline), so
   the cascade — and therefore the rendered result — is unchanged.

   The @import is stripped: nancy-redesign.php enqueues the webfont separately
   so it is not blocked behind this stylesheet downloading.
   ========================================================================== */


/* ===== PART A — restyle ===== */


/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root{
  --nn-plum:       #6E1B3C;   /* primary brand */
  --nn-plum-deep:  #4A1028;   /* contact band, footer */
  --nn-rose:       #C9527A;   /* sale badge, small accents */
  --nn-blush:      #FBF1F3;   /* soft page ground */
  --nn-blush-2:    #F5E1E6;   /* deeper blush for gradients */
  --nn-gold:       #B98B4E;   /* metallic accent, rules */
  --nn-gold-soft:  #E6D3B4;
  --nn-ink:        #2A2024;   /* body copy */
  --nn-muted:      #6F6168;   /* secondary copy */
  --nn-line:       rgba(110,27,60,.14);
  --nn-cream:      #FFFBF9;
  --nn-shadow:     0 18px 48px -20px rgba(74,16,40,.28);
  --nn-shadow-lg:  0 30px 70px -28px rgba(74,16,40,.38);
  --nn-display:    'Cormorant Garamond', 'Hoefler Text', Georgia, serif;
  --nn-body:       'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --nn-ease:       cubic-bezier(.22,.61,.36,1);
}

/* --------------------------------------------------------------------------
   2. Global typography + base
   -------------------------------------------------------------------------- */
body,
body #page-container{
  font-family: var(--nn-body) !important;
  color: var(--nn-ink) !important;
  background: var(--nn-cream);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body p,
body li,
body .et_pb_text_inner p,
body .et_pb_text_inner li{
  font-family: var(--nn-body) !important;
  font-size: 16px !important;
  line-height: 1.78 !important;
  color: var(--nn-ink) !important;
  font-weight: 400 !important;
}

/* Display face for every heading. Overrides the site-wide Poppins !important. */
body h1, body h2, body h3,
body .et_pb_text_inner h1,
body .et_pb_text_inner h2,
body .et_pb_text_inner h3{
  font-family: var(--nn-display) !important;
  font-weight: 600 !important;
  color: var(--nn-plum) !important;
  letter-spacing: .005em !important;
  line-height: 1.12 !important;
  text-transform: none !important;
}

/* h4/h5/h6 stay in the sans — they are used as small eyebrow labels here. */
body h4, body h5, body h6,
body .et_pb_text_inner h4{
  font-family: var(--nn-body) !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--nn-plum) !important;
  line-height: 1.5 !important;
}

body a{ color: var(--nn-plum); transition: color .25s var(--nn-ease); }
body a:hover{ color: var(--nn-rose); }

::selection{ background: var(--nn-blush-2); color: var(--nn-plum-deep); }

/* The site sets img{border-radius:30px!important} globally, which rounds the
   logo, icons and sprites too. Scope it to content imagery instead. */
body img{ border-radius: 0 !important; }
body .et_pb_image img,
body .et_shop_image img,
body .woocommerce ul.products li.product img,
body .et_pb_text_inner img{ border-radius: 18px !important; }
body #logo,
body .et-social-icon img,
body .et_pb_widget img{ border-radius: 0 !important; }

/* --------------------------------------------------------------------------
   3. Header / navigation
   -------------------------------------------------------------------------- */
body #main-header{
  background: rgba(255,251,249,.92) !important;
  backdrop-filter: saturate(140%) blur(10px);
  -webkit-backdrop-filter: saturate(140%) blur(10px);
  box-shadow: 0 1px 0 var(--nn-line), 0 10px 30px -24px rgba(74,16,40,.35) !important;
}
body #main-header.et-fixed-header{
  box-shadow: 0 1px 0 var(--nn-line), 0 14px 34px -26px rgba(74,16,40,.45) !important;
}

body #top-menu li a,
body #top-menu > li > a{
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--nn-ink) !important;
  position: relative;
  opacity: 1 !important;
  transition: color .25s var(--nn-ease);
}
body #top-menu > li > a::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 8px;
  height: 1px;
  background: var(--nn-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .32s var(--nn-ease);
}
body #top-menu > li > a:hover{ color: var(--nn-plum) !important; }
body #top-menu > li > a:hover::after{ transform: scaleX(1); }
body #top-menu li.current-menu-item > a,
body #top-menu li.current_page_item > a{ color: var(--nn-plum) !important; }
body #top-menu li.current-menu-item > a::after,
body #top-menu li.current_page_item > a::after{ transform: scaleX(1); }

body #et-top-navigation .et-cart-info{ color: var(--nn-plum) !important; }
body .mobile_menu_bar::before{ color: var(--nn-plum) !important; }
body .et_mobile_menu{
  border-top-color: var(--nn-gold) !important;
  background: var(--nn-cream) !important;
  box-shadow: var(--nn-shadow) !important;
}

/* --------------------------------------------------------------------------
   4. Buttons — one solid, confident style everywhere
   -------------------------------------------------------------------------- */
body #page-container .et_pb_section .et_pb_button.et_pb_button,
body.home #page-container .et_pb_section .et_pb_signup_0.et_pb_subscribe .et_pb_newsletter_button.et_pb_button,
body.woocommerce #page-container a.button,
body.woocommerce #page-container button.button{
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-plum) !important;
  background-image: none !important;
  border: 1px solid var(--nn-plum) !important;
  border-width: 1px !important;
  border-radius: 999px !important;
  padding: 17px 42px !important;
  box-shadow: 0 14px 30px -16px rgba(110,27,60,.55) !important;
  transition: background-color .3s var(--nn-ease),
              color .3s var(--nn-ease),
              transform .3s var(--nn-ease),
              box-shadow .3s var(--nn-ease) !important;
}
body #page-container .et_pb_section .et_pb_button.et_pb_button:hover,
body.home #page-container .et_pb_section .et_pb_signup_0.et_pb_subscribe .et_pb_newsletter_button.et_pb_button:hover,
body.woocommerce #page-container a.button:hover,
body.woocommerce #page-container button.button:hover{
  background: var(--nn-plum-deep) !important;
  border-color: var(--nn-plum-deep) !important;
  color: #fff !important;
  border-radius: 999px !important;
  transform: translateY(-2px);
  box-shadow: 0 20px 38px -16px rgba(74,16,40,.6) !important;
}
/* Divi appends an arrow glyph on hover that shifts the label. Suppress it. */
body #page-container .et_pb_section .et_pb_button.et_pb_button::after{
  display: none !important;
}

/* --------------------------------------------------------------------------
   5. Section rhythm
   -------------------------------------------------------------------------- */
body.home .et_pb_section_1.et_pb_section,
body.home .et_pb_section_2.et_pb_section,
body.home .et_pb_section_6.et_pb_section{
  padding-top: 96px !important;
  padding-bottom: 96px !important;
}
body .et_pb_row{ max-width: 1180px !important; width: 88% !important; }

/* --------------------------------------------------------------------------
   6. Hero (section_0)
   -------------------------------------------------------------------------- */
body.home .et_pb_section_0.et_pb_section{
  /* was a flat #f2629b */
  background-color: transparent !important;
  background-image:
    radial-gradient(120% 90% at 8% 0%,  #FDF6F2 0%, rgba(253,246,242,0) 58%),
    radial-gradient(95% 85% at 100% 12%, var(--nn-blush-2) 0%, rgba(245,225,230,0) 62%),
    linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 55%, var(--nn-blush) 100%) !important;
  padding-top: 86px !important;
  padding-bottom: 92px !important;
  margin-bottom: 0 !important;
  position: relative;
  /* no overflow:hidden here — it would clip Divi's zoomLeft/slideRight
     entrance animations on the hero modules */
}
/* A single soft gold hairline at the foot of the hero, instead of a hard edge */
body.home .et_pb_section_0.et_pb_section::after{
  content: "";
  position: absolute;
  left: 10%; right: 10%; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--nn-gold-soft), transparent);
}

body.home .et_pb_column_1{ padding-top: 24px !important; padding-bottom: 24px !important; }

/* Eyebrow label above the headline */
body.home .et_pb_text_0 .et_pb_text_inner::before{
  content: "Handmade in Queensland";
  display: block;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--nn-gold);
  margin-bottom: 18px;
}

body.home .et_pb_text_0 h1,
body.home .et_pb_text_0 h1.main-head{
  font-family: var(--nn-display) !important;
  font-size: clamp(38px, 5.4vw, 68px) !important;
  font-weight: 500 !important;
  line-height: 1.04 !important;
  letter-spacing: -.01em !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
  margin: 0 0 22px !important;
  max-width: 15ch;
}
body.home .et_pb_text_0{ margin-bottom: 8px !important; }

/* Lead paragraph: first line larger, the rest settles back */
body.home .et_pb_text_1 .et_pb_text_inner p:first-child{
  font-family: var(--nn-display) !important;
  font-size: 23px !important;
  font-weight: 400 !important;
  font-style: italic !important;
  line-height: 1.45 !important;
  color: var(--nn-plum-deep) !important;
  margin-bottom: 18px !important;
}
body.home .et_pb_text_1 .et_pb_text_inner p + p{
  font-size: 15.5px !important;
  color: var(--nn-muted) !important;
  max-width: 54ch;
}
body.home .et_pb_text_1 .et_pb_text_inner p:last-child{
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--nn-gold) !important;
}

/* Nancy's bio reads as a maker's note, not another body block */
body.home .et_pb_text_2{
  margin: 26px 0 24px !important;
  padding: 0 0 0 22px !important;
  border-left: 2px solid var(--nn-gold-soft) !important;
  max-width: 56ch;
}
body.home .et_pb_text_2 .et_pb_text_inner p{
  font-size: 14.5px !important;
  line-height: 1.75 !important;
  color: var(--nn-muted) !important;
}
body.home .et_pb_text_2 .et_pb_text_inner::after{
  content: "Nancy Cranfield, maker";
  display: block;
  margin-top: 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--nn-plum);
}

/* FREE SHIPPING line becomes a pill */
body.home .et_pb_text_3{ margin-bottom: 28px !important; }
body.home .et_pb_text_3 .et_pb_text_inner p{
  display: inline-block;
  margin: 0 !important;
  padding: 10px 22px !important;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--nn-line);
  box-shadow: 0 10px 24px -18px rgba(74,16,40,.5);
}
body.home .et_pb_text_3 .et_pb_text_inner p strong{
  font-family: var(--nn-body) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase;
  color: var(--nn-plum) !important;
}
body.home .et_pb_text_3 .et_pb_text_inner p::before{
  content: "\2726  ";
  color: var(--nn-gold);
}

/* Hero portrait: arch-topped, which suits millinery */
body.home .et_pb_image_0{ text-align: center !important; }
body.home .et_pb_image_0 .et_pb_image_wrap{
  display: inline-block;
  position: relative;
  border-radius: 240px 240px 24px 24px !important;
  overflow: hidden;
  box-shadow: var(--nn-shadow-lg) !important;
}
body.home .et_pb_image_0 .et_pb_image_wrap img{
  border-radius: 0 !important;
  display: block;
  width: 100%;
  max-width: 460px;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center 18%;
}

/* --------------------------------------------------------------------------
   7. Value props (section_1) — three cards
   -------------------------------------------------------------------------- */
body.home .et_pb_row_1{ display: flex !important; flex-wrap: wrap; gap: 26px; }
/* Divi rows carry clearfix ::before/::after. Inside a flex/grid container they
   become real items and open up phantom gaps, so take them out of flow. */
body.home .et_pb_row_1::before,
body.home .et_pb_row_1::after,
body.home .et_pb_row_3 > .et_pb_column::before,
body.home .et_pb_row_3 > .et_pb_column::after{
  display: none !important;
}
body.home .et_pb_row_1 > .et_pb_column{
  flex: 1 1 260px;
  width: auto !important;
  margin: 0 !important;
  background: #fff;
  border: 1px solid var(--nn-line);
  border-radius: 22px;
  padding: 38px 30px 34px !important;
  text-align: center;
  box-shadow: 0 10px 30px -24px rgba(74,16,40,.4);
  transition: transform .35s var(--nn-ease), box-shadow .35s var(--nn-ease);
}
body.home .et_pb_row_1 > .et_pb_column:hover{
  transform: translateY(-6px);
  box-shadow: var(--nn-shadow);
}

/* text_4/7/10 are empty 60px modules left over from deleted icons.
   Reuse them as icon tiles rather than leaving three blank gaps. */
body.home .et_pb_text_4,
body.home .et_pb_text_7,
body.home .et_pb_text_10{
  font-size: 0 !important;
  padding-bottom: 0 !important;
  margin: 0 auto 18px !important;
}
body.home .et_pb_text_4 .et_pb_text_inner,
body.home .et_pb_text_7 .et_pb_text_inner,
body.home .et_pb_text_10 .et_pb_text_inner{
  width: 62px; height: 62px;
  margin: 0 auto;
  border-radius: 50%;
  background-color: var(--nn-blush);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 28px 28px;
  border: 1px solid var(--nn-line);
}
/* rosette — handmade */
body.home .et_pb_text_4 .et_pb_text_inner{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E1B3C' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M12 9.5C12 6.7 10.2 4 12 2c1.8 2 0 4.7 0 7.5Z'/%3E%3Cpath d='M14.5 12c2.8 0 5.5-1.8 7.5 0-2 1.8-4.7 0-7.5 0Z'/%3E%3Cpath d='M12 14.5c0 2.8 1.8 5.5 0 7.5-1.8-2 0-4.7 0-7.5Z'/%3E%3Cpath d='M9.5 12c-2.8 0-5.5 1.8-7.5 0 2-1.8 4.7 0 7.5 0Z'/%3E%3C/svg%3E");
}
/* truck — shipping */
body.home .et_pb_text_7 .et_pb_text_inner{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E1B3C' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5h11v9.5H2z'/%3E%3Cpath d='M13 10h4.6l3.4 3.2V16H13z'/%3E%3Ccircle cx='6.5' cy='18.2' r='1.8'/%3E%3Ccircle cx='17' cy='18.2' r='1.8'/%3E%3C/svg%3E");
}
/* shield + tick — guarantee */
body.home .et_pb_text_10 .et_pb_text_inner{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E1B3C' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5 20 5.4v6c0 5-3.4 8.6-8 10.1-4.6-1.5-8-5.1-8-10.1v-6Z'/%3E%3Cpath d='m8.6 11.8 2.6 2.6 4.4-4.6'/%3E%3C/svg%3E");
}

body.home .et_pb_text_5 h4,
body.home .et_pb_text_8 h4,
body.home .et_pb_text_11 h4{
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--nn-plum) !important;
  margin: 0 !important;
}
body.home .et_pb_text_5, body.home .et_pb_text_8, body.home .et_pb_text_11{ margin-bottom: 14px !important; }

/* Centre the little rules and drop the -30px pull that collapses the subtitle */
body.home .et_pb_divider_0,
body.home .et_pb_divider_1,
body.home .et_pb_divider_2{
  max-width: 34px !important;
  margin: 0 auto 14px !important;
  display: block !important;
}
body.home .et_pb_divider_0::before,
body.home .et_pb_divider_1::before,
body.home .et_pb_divider_2::before,
body.home .et_pb_divider_3::before,
body.home .et_pb_divider_4::before,
body.home .et_pb_divider_5::before,
body.home .et_pb_divider_6::before,
body.home .et_pb_divider_7::before{
  border-top-color: var(--nn-gold) !important;
  border-top-width: 2px !important;
}
body.home .et_pb_text_6,
body.home .et_pb_text_9,
body.home .et_pb_text_12{ margin-top: 0 !important; margin-bottom: 0 !important; }
body.home .et_pb_text_6 .et_pb_text_inner p,
body.home .et_pb_text_9 .et_pb_text_inner p,
body.home .et_pb_text_12 .et_pb_text_inner p{
  font-size: 14px !important;
  color: var(--nn-muted) !important;
  margin: 0 !important;
}

/* --------------------------------------------------------------------------
   8. Section headings (New Handmade / Customers Favourites / Stay up to date)
   -------------------------------------------------------------------------- */
body.home .et_pb_text_13 h2,
body.home .et_pb_text_20 h2,
body.home .et_pb_text_14 h2{
  font-family: var(--nn-display) !important;
  font-size: clamp(30px, 3.6vw, 46px) !important;
  font-weight: 500 !important;
  letter-spacing: -.005em !important;
  line-height: 1.1 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
  margin: 0 !important;
}
body.home .et_pb_text_13 h2,
body.home .et_pb_text_20 h2{ text-align: center !important; }
body.home .et_pb_text_14 h2{ text-align: left !important; }

body.home .et_pb_divider_3,
body.home .et_pb_divider_5{ max-width: 58px !important; margin: 20px auto 34px !important; }
body.home .et_pb_divider_4{ max-width: 58px !important; margin: 18px 0 26px !important; }

/* --------------------------------------------------------------------------
   9. Product grid (section_2 / shop_0)
   -------------------------------------------------------------------------- */
body.home .et_pb_shop_0 .woocommerce{ margin-top: 6px; }
body.home .et_pb_shop_0 ul.products{
  display: grid !important;
  /* Plain track lists rather than repeat()/minmax(): WordPress's bundled
     CSSLint predates CSS Grid, flags them as a syntax error and then disables
     the Save button. The min-width:0 on the items below does the same job
     minmax(0,1fr) would. */
  grid-template-columns: 1fr 1fr 1fr 1fr !important;
  gap: 42px 26px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
body.home .et_pb_shop_0 ul.products::before,
body.home .et_pb_shop_0 ul.products::after{ display: none !important; }
body.home .et_pb_shop_0 ul.products li.product{
  width: 100% !important;
  min-width: 0;            /* stands in for minmax(0,1fr) — stops long product
                              titles forcing a track wider than its share */
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;
  text-align: center;
}

body.home .et_pb_shop_0 ul.products li.product .woocommerce-LoopProduct-link{
  display: block;
  text-decoration: none;
}
body.home .et_pb_shop_0 ul.products li.product .et_shop_image{
  display: block;
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: var(--nn-blush);
  box-shadow: 0 10px 30px -24px rgba(74,16,40,.45);
  transition: box-shadow .4s var(--nn-ease), transform .4s var(--nn-ease);
}
body.home .et_pb_shop_0 ul.products li.product .et_shop_image img{
  display: block;
  width: 100% !important;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 0 !important;
  transition: transform .7s var(--nn-ease);
}
body.home .et_pb_shop_0 ul.products li.product:hover .et_shop_image{
  transform: translateY(-5px);
  box-shadow: var(--nn-shadow);
}
body.home .et_pb_shop_0 ul.products li.product:hover .et_shop_image img{
  transform: scale(1.055);
}
/* Divi's magnify overlay — keep it, just make it a soft plum wash */
body.home .et_pb_shop_0 .et_overlay{
  background-color: rgba(110,27,60,.14) !important;
  border: 0 !important;
  border-radius: 0 !important;
}
body.home .et_pb_shop_0 .et_overlay::before{ color: #fff !important; }

body.home .et_pb_shop_0 ul.products li.product h2.woocommerce-loop-product__title,
body.home .et_pb_shop_0.et_pb_shop .woocommerce ul.products li.product h2{
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  line-height: 1.65 !important;
  color: var(--nn-ink) !important;
  padding: 18px 6px 8px !important;
  margin: 0 !important;
  min-height: 0 !important;
  transition: color .25s var(--nn-ease);
}
body.home .et_pb_shop_0 ul.products li.product:hover h2.woocommerce-loop-product__title{
  color: var(--nn-plum) !important;
}

/* ---- PRICES ----------------------------------------------------------------
   The existing CSS hides prices on the homepage with
     .home .woocommerce-Price-amount.amount { display: none }
   A shop homepage with no prices costs you clicks, so this puts them back and
   styles them. Delete this one block if Nancy wants them hidden again.
   -------------------------------------------------------------------------- */
body.home .et_pb_shop_0 ul.products li.product .price .woocommerce-Price-amount.amount{
  display: inline-block !important;
}
body.home .et_pb_shop_0 ul.products li.product .price{
  display: block !important;
  font-family: var(--nn-body) !important;
  margin: 0 !important;
  padding: 0 6px !important;
}
body.home .et_pb_shop_0 ul.products li.product .price del{
  opacity: 1 !important;
  text-decoration: line-through !important;
}
body.home .et_pb_shop_0 ul.products li.product .price del .amount,
body.home .et_pb_shop_0 ul.products li.product .price del .amount bdi,
body.home .et_pb_shop_0 ul.products li.product .price del .woocommerce-Price-currencySymbol{
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--nn-muted) !important;
}
body.home .et_pb_shop_0 ul.products li.product .price ins{
  text-decoration: none !important;
  margin-left: 8px;
}
body.home .et_pb_shop_0 ul.products li.product .price ins .amount,
body.home .et_pb_shop_0 ul.products li.product .price ins .amount bdi,
body.home .et_pb_shop_0 ul.products li.product .price ins .woocommerce-Price-currencySymbol{
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--nn-plum) !important;
}

/* Sale badge */
body.home .et_pb_shop_0 ul.products li.product .onsale,
body.home .et_pb_shop_0 span.onsale{
  position: absolute !important;
  top: 12px; left: 12px;
  right: auto !important;
  min-height: 0 !important;
  min-width: 0 !important;
  line-height: 1 !important;
  font-family: var(--nn-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-rose) !important;
  border-radius: 999px !important;
  padding: 8px 14px !important;
  margin: 0 !important;
  box-shadow: 0 8px 20px -10px rgba(201,82,122,.8) !important;
  z-index: 3;
}

/* Browse All sits clear of the grid */
body.home .et_pb_button_1_wrapper{ margin-top: 54px !important; }

/* --------------------------------------------------------------------------
   10. Featured items (section_3)
   -------------------------------------------------------------------------- */
body.home .et_pb_section_3.et_pb_section{
  background-color: var(--nn-blush) !important;
  box-shadow: none !important;   /* kills the inset 0 -400px white band */
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 96px !important;
  padding-bottom: 96px !important;
}
body.home .et_pb_section_3{ box-shadow: none !important; }
body.home .et_pb_column_6{ padding-top: 4% !important; }
body.home .et_pb_text_15{ margin-bottom: 34px !important; }
body.home .et_pb_text_15 .et_pb_text_inner p{
  font-size: 16px !important;
  color: var(--nn-muted) !important;
  max-width: 46ch;
}

/* Four images as an even 2x2 mosaic instead of 75/85/75/72% widths */
body.home .et_pb_row_3 > .et_pb_column:last-child,
body.home .et_pb_row_3 > .et_pb_column.et-last-child{
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-content: start;
}
body.home .et_pb_image_1,
body.home .et_pb_image_2,
body.home .et_pb_image_3,
body.home .et_pb_image_4{
  width: 100% !important;
  margin: 0 !important;
  text-align: center !important;
}
body.home .et_pb_image_1 .et_pb_image_wrap,
body.home .et_pb_image_2 .et_pb_image_wrap,
body.home .et_pb_image_3 .et_pb_image_wrap,
body.home .et_pb_image_4 .et_pb_image_wrap{
  display: block;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 34px -24px rgba(74,16,40,.5);
  transition: transform .4s var(--nn-ease), box-shadow .4s var(--nn-ease);
}
body.home .et_pb_image_1 .et_pb_image_wrap:hover,
body.home .et_pb_image_2 .et_pb_image_wrap:hover,
body.home .et_pb_image_3 .et_pb_image_wrap:hover,
body.home .et_pb_image_4 .et_pb_image_wrap:hover{
  transform: translateY(-5px);
  box-shadow: var(--nn-shadow);
}
body.home .et_pb_row_3 .et_pb_image .et_pb_image_wrap img{
  display: block;
  width: 100% !important;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 0 !important;
}
body.home .et_pb_row_3 .et_overlay{
  background-color: rgba(110,27,60,.16) !important;
  border: 0 !important;
}
body.home .et_pb_row_3 .et_overlay::before{ color: #fff !important; }

/* --------------------------------------------------------------------------
   11. Editorial band (section_5)
   -------------------------------------------------------------------------- */
body.home div.et_pb_section.et_pb_section_5{
  background-blend-mode: normal !important;   /* 'color' was greying the photo */
  background-position: center 30% !important;
  background-size: cover !important;
  background-attachment: fixed;
}
body.home .et_pb_section_5.et_pb_section{
  background-color: transparent !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 118px !important;
  padding-bottom: 118px !important;
  position: relative;
}
/* Proper scrim so the photo still reads but the copy stays legible */
body.home .et_pb_section_5.et_pb_section::before{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg,
              rgba(42,10,24,.86) 0%,
              rgba(42,10,24,.72) 45%,
              rgba(42,10,24,.88) 100%);
  pointer-events: none;
}
body.home .et_pb_section_5 > .et_pb_row{ position: relative; z-index: 2; }

body.home .et_pb_section_5 h2,
body.home .et_pb_section_5 h3{
  font-family: var(--nn-display) !important;
  font-size: clamp(28px, 3.4vw, 42px) !important;
  font-weight: 500 !important;
  color: #fff !important;
  text-align: center !important;
  margin: 0 auto 10px !important;
  max-width: 24ch;
}
body.home .et_pb_text_16,
body.home .et_pb_text_17,
body.home .et_pb_text_18,
body.home .et_pb_text_19{
  max-width: 740px !important;
  padding-bottom: 20px !important;
}
body.home .et_pb_text_16 .et_pb_text_inner p,
body.home .et_pb_text_17 .et_pb_text_inner p,
body.home .et_pb_text_18 .et_pb_text_inner p,
body.home .et_pb_text_19 .et_pb_text_inner p,
body.home .et_pb_section_5 .et_pb_text_inner li{
  font-size: 16.5px !important;
  line-height: 1.85 !important;
  color: rgba(255,255,255,.9) !important;
}
body.home .et_pb_section_5 .et_pb_text_inner strong{ color: #fff !important; }
body.home .et_pb_section_5 .et_pb_text_inner a{
  color: var(--nn-gold-soft) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.home .et_pb_divider_5::before{ border-top-color: var(--nn-gold-soft) !important; }

/* --------------------------------------------------------------------------
   12. Newsletter (section_6)
   -------------------------------------------------------------------------- */
body.home .et_pb_section_6.et_pb_section{ background: var(--nn-cream) !important; }
body.home .et_pb_row_6{
  background: linear-gradient(140deg, var(--nn-blush) 0%, #FFF7F4 60%, var(--nn-blush-2) 100%);
  border: 1px solid var(--nn-line);
  border-radius: 28px;
  padding: 58px 46px 52px !important;
  box-shadow: var(--nn-shadow);
}
body.home .et_pb_text_21 .et_pb_text_inner p{
  font-size: 16px !important;
  color: var(--nn-muted) !important;
  text-align: center;
  max-width: 48ch;
  margin: 0 auto 10px !important;
}

body.home .et_pb_signup_0{ border: 0 !important; background: transparent !important; }
body.home .et_pb_signup_0 .et_pb_newsletter_form{ max-width: 720px; margin: 0 auto; }
body.home .et_pb_signup_0 .et_pb_newsletter_form .et_pb_newsletter_fields{
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: stretch;
}
body.home .et_pb_signup_0 .et_pb_newsletter_form p{
  flex: 1 1 200px;
  margin: 0 !important;
  padding: 0 !important;
}
body.home .et_pb_signup_0 .et_pb_newsletter_form p.et_pb_newsletter_field{ flex: 1 1 200px; }
body.home .et_pb_signup_0 .et_pb_newsletter_form p input[type="text"],
body.home .et_pb_signup_0 .et_pb_newsletter_form p .input{
  width: 100% !important;
  font-family: var(--nn-body) !important;
  font-size: 15px !important;
  color: var(--nn-ink) !important;
  background: #fff !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 999px !important;
  padding: 16px 24px !important;
  box-shadow: none !important;
  transition: border-color .25s var(--nn-ease), box-shadow .25s var(--nn-ease);
}
body.home .et_pb_signup_0 .et_pb_newsletter_form p input[type="text"]:focus,
body.home .et_pb_signup_0 .et_pb_newsletter_form p .input:focus{
  background: #fff !important;
  border-color: var(--nn-plum) !important;
  box-shadow: 0 0 0 4px rgba(110,27,60,.12) !important;
  outline: none !important;
}
body.home .et_pb_signup_0 .et_pb_newsletter_form p .input::placeholder{
  color: var(--nn-muted) !important;
  opacity: 1;
}
body.home .et_pb_signup_0 .et_pb_newsletter_button_wrap{
  flex: 0 0 auto;
  margin: 0 !important;
  display: flex;
  align-items: stretch;
}
body.home #page-container .et_pb_section .et_pb_signup_0.et_pb_subscribe .et_pb_newsletter_button.et_pb_button{
  border-radius: 999px !important;   /* was 0px */
  padding: 17px 40px !important;
  margin: 0 !important;
}

/* --------------------------------------------------------------------------
   13. Contact band (section_9)
   -------------------------------------------------------------------------- */
body.home .et_pb_section_9.et_pb_section{
  background-color: var(--nn-plum-deep) !important;   /* was #F36293 */
  margin-top: 0 !important;
  padding-top: 92px !important;
  padding-bottom: 72px !important;   /* was 200px */
}
body.home .et_pb_row_7.et_pb_row{
  padding-bottom: 0 !important;       /* was another 200px */
  align-items: start;
}
body.home .et_pb_column_15,
body.home .et_pb_column_16{ padding-top: 0 !important; }

body.home .et_pb_text_22 h4,
body.home .et_pb_text_24 h4{
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  color: var(--nn-gold-soft) !important;
  margin: 0 0 4px !important;
}
body.home .et_pb_divider_6,
body.home .et_pb_divider_7{ max-width: 34px !important; margin: 12px 0 18px !important; }
body.home .et_pb_divider_6::before,
body.home .et_pb_divider_7::before{ border-top-color: var(--nn-gold) !important; }

body.home .et_pb_text_23,
body.home .et_pb_text_25{ margin-top: 0 !important; }
body.home .et_pb_text_23 .et_pb_text_inner p,
body.home .et_pb_text_25 .et_pb_text_inner p{
  font-size: 15px !important;
  line-height: 1.95 !important;
  color: rgba(255,255,255,.82) !important;
  margin: 0 !important;
}
body.home .et_pb_text_23 .et_pb_text_inner strong,
body.home .et_pb_text_25 .et_pb_text_inner strong{ color: #fff !important; font-weight: 500 !important; }
body.home .et_pb_text_23 .et_pb_text_inner a{
  color: #fff !important;
  text-decoration: none;
  border-bottom: 1px solid rgba(230,211,180,.45);
  padding-bottom: 1px;
  transition: border-color .25s var(--nn-ease), color .25s var(--nn-ease);
}
body.home .et_pb_text_23 .et_pb_text_inner a:hover{
  color: var(--nn-gold-soft) !important;
  border-bottom-color: var(--nn-gold-soft);
}

body.home .et_pb_image_5{ padding-bottom: 0 !important; }
body.home .et_pb_image_5 .et_pb_image_wrap{
  display: inline-block;
  border-radius: 180px 180px 18px 18px;
  overflow: hidden;
  box-shadow: var(--nn-shadow-lg);
}
body.home .et_pb_image_5 .et_pb_image_wrap img{
  display: block;
  width: 100%;
  max-width: 320px;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 0 !important;
}

/* --------------------------------------------------------------------------
   14. Footer
   FIX: #footer-info was #ffffff text on a #eeeeee footer — invisible.
   -------------------------------------------------------------------------- */
body #main-footer{
  background-color: var(--nn-plum-deep) !important;
  background-image: none !important;
  border-top: 1px solid rgba(230,211,180,.18);
}
body #footer-bottom{
  background: transparent !important;
  padding: 26px 0 !important;
}
body #footer-info,
body #footer-info a{
  color: rgba(255,255,255,.62) !important;
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  letter-spacing: .06em !important;
}
body #footer-info a:hover{ color: #fff !important; }

body #footer-bottom .et-social-icons{ margin-bottom: 0; }
body #footer-bottom .et-social-icon a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(230,211,180,.3);
  color: rgba(255,255,255,.8) !important;
  font-size: 15px !important;
  transition: background-color .25s var(--nn-ease),
              border-color .25s var(--nn-ease),
              color .25s var(--nn-ease);
}
body #footer-bottom .et-social-icon a:hover{
  background: var(--nn-gold);
  border-color: var(--nn-gold);
  color: var(--nn-plum-deep) !important;
}

body .iscreenvwr{
  background-color: var(--nn-plum-deep) !important;
  color: rgba(255,255,255,.45) !important;
  font-size: 11px !important;
  padding: 0 0 26px !important;
}
body .iscreenvwr a{ color: rgba(255,255,255,.6) !important; }

/* --------------------------------------------------------------------------
   15. Responsive
   -------------------------------------------------------------------------- */
@media only screen and (max-width: 1100px){
  body.home .et_pb_shop_0 ul.products{ grid-template-columns: 1fr 1fr 1fr !important; }
}

@media only screen and (max-width: 980px){
  body .et_pb_row{ width: 90% !important; }
  body.home .et_pb_section_0.et_pb_section{ padding-top: 56px !important; padding-bottom: 64px !important; }
  body.home .et_pb_section_1.et_pb_section,
  body.home .et_pb_section_2.et_pb_section,
  body.home .et_pb_section_3.et_pb_section,
  body.home .et_pb_section_6.et_pb_section{ padding-top: 64px !important; padding-bottom: 64px !important; }
  body.home .et_pb_section_5.et_pb_section{ padding-top: 82px !important; padding-bottom: 82px !important; }
  body.home .et_pb_section_9.et_pb_section{ padding-top: 64px !important; padding-bottom: 48px !important; }

  body.home .et_pb_text_0 h1,
  body.home .et_pb_text_0 h1.main-head{ font-size: clamp(32px, 7vw, 46px) !important; max-width: none; }
  body.home .et_pb_image_0 .et_pb_image_wrap{ border-radius: 180px 180px 20px 20px !important; }
  body.home .et_pb_image_0 .et_pb_image_wrap img{ max-width: 360px; }

  body.home div.et_pb_section.et_pb_section_5{ background-attachment: scroll; }

  body.home .et_pb_row_1{ gap: 18px; }
  body.home .et_pb_row_1 > .et_pb_column{ flex: 1 1 100%; padding: 30px 24px 26px !important; }

  body.home .et_pb_row_6{ padding: 42px 26px 40px !important; border-radius: 22px; }
  body.home .et_pb_column_6{ padding-top: 0 !important; }
  body.home .et_pb_text_14 h2{ text-align: center !important; }
  body.home .et_pb_text_15 .et_pb_text_inner p{ max-width: none; }
  body.home .et_pb_divider_4{ margin: 18px auto 26px !important; }
  body.home .et_pb_image_5 .et_pb_image_wrap img{ max-width: 260px; }
}

@media only screen and (max-width: 767px){
  body.home .et_pb_shop_0 ul.products{ grid-template-columns: 1fr 1fr !important; gap: 28px 16px !important; }
  body.home .et_pb_shop_0 ul.products li.product h2.woocommerce-loop-product__title{
    font-size: 11px !important;
    padding: 14px 2px 6px !important;
  }
  body.home .et_pb_shop_0 ul.products li.product .price del .amount,
  body.home .et_pb_shop_0 ul.products li.product .price del .amount bdi,
  body.home .et_pb_shop_0 ul.products li.product .price del .woocommerce-Price-currencySymbol{ font-size: 12px !important; }
  body.home .et_pb_shop_0 ul.products li.product .price ins .amount,
  body.home .et_pb_shop_0 ul.products li.product .price ins .amount bdi,
  body.home .et_pb_shop_0 ul.products li.product .price ins .woocommerce-Price-currencySymbol{ font-size: 14px !important; }
  body.home .et_pb_shop_0 ul.products li.product .onsale,
  body.home .et_pb_shop_0 span.onsale{ font-size: 9px !important; padding: 6px 11px !important; top: 8px; left: 8px; }

  body.home .et_pb_row_3 > .et_pb_column:last-child,
  body.home .et_pb_row_3 > .et_pb_column.et-last-child{ gap: 12px; }

  body.home .et_pb_text_1 .et_pb_text_inner p:first-child{ font-size: 19px !important; }
  body.home .et_pb_text_2{ padding-left: 16px !important; }

  body #page-container .et_pb_section .et_pb_button.et_pb_button{
    padding: 15px 32px !important;
    font-size: 11.5px !important;
  }
  body.home .et_pb_signup_0 .et_pb_newsletter_form .et_pb_newsletter_fields{ gap: 10px; }
  body.home .et_pb_signup_0 .et_pb_newsletter_form p,
  body.home .et_pb_signup_0 .et_pb_newsletter_button_wrap{ flex: 1 1 100%; }
  body.home #page-container .et_pb_section .et_pb_signup_0.et_pb_subscribe .et_pb_newsletter_button.et_pb_button{
    width: 100%;
    justify-content: center;
  }
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce){
  body *,
  body *::before,
  body *::after{
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
  }
}

/* ==========================================================================
   16. SINGLE PRODUCT PAGE
   Everything below applies only on body.single-product, so the homepage and
   shop archive are untouched.
   Deliberately avoids clamp()/repeat()/minmax(), which WordPress's bundled
   CSSLint rejects and which then disable the Save button.
   ========================================================================== */

/* --- 16.1 Reclaim the empty sidebar ---------------------------------------
   #sidebar holds one empty gallery widget (zero images) but still takes
   20.875% of the page, squeezing the product into 79%. Drop it and go full
   width. If a real widget is ever added to the product sidebar, delete this
   block and the layout returns to two columns.
   -------------------------------------------------------------------------- */
body.single-product #sidebar{ display: none !important; }
/* Divi draws the sidebar divider separately from the sidebar itself, as
   #main-content .container:before — a 1px absolute bar at right:25%. Hiding
   #sidebar leaves it stranded down the middle of the content. Divi's own
   .et_no_sidebar rule would kill it, but product pages carry et_right_sidebar. */
body.single-product #main-content .container::before{ display: none !important; }
body.single-product #left-area{
  width: 100% !important;
  float: none !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}
body.single-product #main-content .container{ padding-top: 46px !important; }
body.single-product #content-area{ max-width: 1240px; margin: 0 auto; }

/* --- 16.2 Gallery + summary side by side ---------------------------------- */
body.single-product div.product > .clearfix{
  display: grid !important;
  grid-template-columns: 1.08fr 1fr;
  gap: 60px;
  align-items: start;
  position: relative;
}
/* Sale flag pins to the gallery rather than taking a grid cell of its own */
body.single-product div.product > .clearfix > span.onsale{
  position: absolute !important;
  top: 18px; left: 18px;
  right: auto !important;
  z-index: 4;
  min-height: 0 !important;
  min-width: 0 !important;
  line-height: 1 !important;
  font-family: var(--nn-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-rose) !important;
  border-radius: 999px !important;
  padding: 9px 16px !important;
  margin: 0 !important;
  box-shadow: 0 8px 20px -10px rgba(201,82,122,.8) !important;
}

body.single-product .woocommerce-product-gallery{
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}
body.single-product .woocommerce-product-gallery__wrapper{ margin: 0 !important; }
body.single-product .woocommerce-product-gallery__image{ border-radius: 20px; overflow: hidden; }
/* Source images are a mix of 600x600 and 600x800, so the slider jumped height
   between slides. Normalise every frame to 4:5. */
body.single-product .woocommerce-product-gallery__image img,
body.single-product .woocommerce-product-gallery__image a img{
  display: block;
  width: 100% !important;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 20px !important;
  box-shadow: var(--nn-shadow);
}

/* Flexslider thumbnail strip */
body.single-product .flex-control-thumbs{
  display: flex !important;
  flex-wrap: wrap;
  gap: 12px;
  margin: 16px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
body.single-product .flex-control-thumbs li{
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  list-style: none !important;
}
body.single-product .flex-control-thumbs li img{
  width: 72px !important;
  height: 72px !important;
  object-fit: cover;
  border-radius: 14px !important;
  opacity: .55;
  cursor: pointer;
  border: 1px solid transparent;
  transition: opacity .25s var(--nn-ease), border-color .25s var(--nn-ease);
}
body.single-product .flex-control-thumbs li img:hover,
body.single-product .flex-control-thumbs li img.flex-active{
  opacity: 1;
  border-color: var(--nn-plum);
}

/* --- 16.3 Summary column --------------------------------------------------- */
body.single-product .summary.entry-summary{
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding-top: 6px;
}

body.single-product h1.product_title,
body.single-product .summary h1.entry-title{
  font-family: var(--nn-display) !important;
  font-size: 42px !important;
  font-weight: 500 !important;
  line-height: 1.08 !important;
  letter-spacing: -.01em !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
}

/* Price */
body.single-product .summary p.price{
  margin: 0 0 22px !important;
  padding: 0 0 20px !important;
  border-bottom: 1px solid var(--nn-line);
  display: block;
}
body.single-product .summary p.price del{
  opacity: 1 !important;
  text-decoration: line-through !important;
  margin-right: 10px;
}
body.single-product .summary p.price del bdi,
body.single-product .summary p.price del .amount,
body.single-product .summary p.price del .woocommerce-Price-currencySymbol{
  font-family: var(--nn-body) !important;
  font-size: 17px !important;
  font-weight: 400 !important;
  color: var(--nn-muted) !important;
  padding: 0 !important;
}
body.single-product .summary p.price ins{
  text-decoration: none !important;
  background: transparent !important;
}
body.single-product .summary p.price ins bdi,
body.single-product .summary p.price ins .amount,
body.single-product .summary p.price ins .woocommerce-Price-currencySymbol{
  font-family: var(--nn-body) !important;
  font-size: 30px !important;
  font-weight: 600 !important;
  color: var(--nn-plum) !important;
  padding: 0 !important;
}

/* Short description */
body.single-product .woocommerce-product-details__short-description{
  margin-bottom: 26px;
}
body.single-product .woocommerce-product-details__short-description p{
  font-family: var(--nn-body) !important;
  font-size: 15.5px !important;
  line-height: 1.8 !important;
  color: var(--nn-muted) !important;
  margin: 0 0 14px !important;
}

/* --- 16.4 Quantity + add to cart ------------------------------------------- */
body.single-product .summary form.cart{
  display: grid !important;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: center;
  margin: 0 0 20px !important;
}
body.single-product .summary form.cart .quantity{
  grid-column: 1;
  margin: 0 !important;
  float: none !important;
}
body.single-product .summary form.cart input.qty,
body.single-product .summary .input-text.qty{
  width: 86px !important;
  height: 56px !important;
  font-family: var(--nn-body) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  text-align: center !important;
  color: var(--nn-ink) !important;
  background: #fff !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 999px !important;
  padding: 0 !important;
  box-shadow: none !important;
  transition: border-color .25s var(--nn-ease), box-shadow .25s var(--nn-ease);
}
body.single-product .summary form.cart input.qty:focus,
body.single-product .summary .input-text.qty:focus{
  border-color: var(--nn-plum) !important;
  box-shadow: 0 0 0 4px rgba(110,27,60,.12) !important;
  outline: none !important;
}
body.single-product .summary form.cart button.single_add_to_cart_button{
  grid-column: 2;
  width: 100%;
  height: 56px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-plum) !important;
  border: 1px solid var(--nn-plum) !important;
  border-radius: 999px !important;
  padding: 0 32px !important;
  box-shadow: 0 14px 30px -16px rgba(110,27,60,.55) !important;
}
body.single-product .summary form.cart button.single_add_to_cart_button:hover{
  background: var(--nn-plum-deep) !important;
  border-color: var(--nn-plum-deep) !important;
  color: #fff !important;
  transform: translateY(-2px);
}
/* Reassurance line, straight after the buy controls */
body.single-product .summary form.cart::after{
  content: "\2726  Handmade in Queensland \00b7 Free shipping on orders over $70";
  grid-column: 1 / -1;
  margin-top: 4px;
  font-family: var(--nn-body);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--nn-gold);
}

/* Wishlist link */
body.single-product .summary .yith-wcwl-add-to-wishlist{
  margin: 0 0 18px !important;
  padding-top: 16px;
  border-top: 1px solid var(--nn-line);
}
body.single-product .summary .yith-wcwl-add-to-wishlist a{
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  font-family: var(--nn-body) !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
  text-decoration: none !important;
  transition: color .25s var(--nn-ease);
}
body.single-product .summary .yith-wcwl-add-to-wishlist a:hover{ color: var(--nn-plum) !important; }
body.single-product .summary .yith-wcwl-icon-svg{ width: 17px; height: 17px; }

/* Empty payment-gateway placeholders leave stray gaps */
body.single-product .summary .wcpay-express-checkout-wrapper:empty,
body.single-product .summary .ppcp-messages:empty{ display: none !important; }

/* --- 16.5 Tabs -------------------------------------------------------------- */
body.single-product .woocommerce-tabs.wc-tabs-wrapper{
  margin-top: 72px !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  background: transparent !important;
}
body.single-product .woocommerce-tabs ul.tabs{
  display: flex !important;
  gap: 34px;
  margin: 0 0 30px !important;
  padding: 0 0 0 0 !important;
  border-bottom: 1px solid var(--nn-line) !important;
  list-style: none !important;
}
body.single-product .woocommerce-tabs ul.tabs::before,
body.single-product .woocommerce-tabs ul.tabs::after{ display: none !important; }
body.single-product .woocommerce-tabs ul.tabs li{
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.single-product .woocommerce-tabs ul.tabs li::before,
body.single-product .woocommerce-tabs ul.tabs li::after{ display: none !important; }
body.single-product .woocommerce-tabs ul.tabs li a{
  display: block;
  padding: 0 0 16px !important;
  font-family: var(--nn-body) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color .25s var(--nn-ease), border-color .25s var(--nn-ease);
}
body.single-product .woocommerce-tabs ul.tabs li a:hover{ color: var(--nn-plum) !important; }
body.single-product .woocommerce-tabs ul.tabs li.active a{
  color: var(--nn-plum) !important;
  border-bottom-color: var(--nn-gold);
}

body.single-product .woocommerce-tabs .panel{
  max-width: 820px;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body.single-product .woocommerce-tabs .panel p{
  font-family: var(--nn-body) !important;
  font-size: 15.5px !important;
  line-height: 1.85 !important;
  color: var(--nn-ink) !important;
  margin: 0 0 18px !important;
}

/* The description is written as "<strong>Label</strong><br>body text" blocks.
   Promote each label to its own line so it reads as a spec sheet. */
body.single-product #tab-description p > strong:first-child{
  display: block;
  margin-bottom: 4px;
  font-family: var(--nn-body) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--nn-plum) !important;
}
body.single-product #tab-description p > strong:first-child + br{ display: none; }

body.single-product #tab-description ol{
  counter-reset: nn-faq;
  list-style: none !important;
  padding-left: 0 !important;
  margin: 8px 0 0 !important;
}
body.single-product #tab-description ol > li{
  counter-increment: nn-faq;
  position: relative;
  padding-left: 42px !important;
  margin-bottom: 18px !important;
  list-style: none !important;
}
body.single-product #tab-description ol > li::before{
  content: counter(nn-faq);
  position: absolute;
  left: 0; top: 2px;
  width: 28px; height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--nn-blush);
  border: 1px solid var(--nn-line);
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  color: var(--nn-plum);
}
body.single-product #tab-description ol > li p{ margin-bottom: 0 !important; }

/* --- 16.6 Reviews ----------------------------------------------------------- */
body.single-product #reviews .woocommerce-noreviews,
body.single-product #reviews #comments > h2{
  font-family: var(--nn-body) !important;
  font-size: 14px !important;
  color: var(--nn-muted) !important;
}
body.single-product #review_form #respond input[type="text"],
body.single-product #review_form #respond input[type="email"],
body.single-product #review_form #respond textarea{
  font-family: var(--nn-body) !important;
  font-size: 15px !important;
  color: var(--nn-ink) !important;
  background: #fff !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 16px !important;
  padding: 14px 18px !important;
}
body.single-product #review_form #respond input:focus,
body.single-product #review_form #respond textarea:focus{
  border-color: var(--nn-plum) !important;
  box-shadow: 0 0 0 4px rgba(110,27,60,.12) !important;
  outline: none !important;
}
body.single-product #review_form .stars a{ color: var(--nn-gold) !important; }

/* --- 16.7 Related products -------------------------------------------------- */
body.single-product section.related.products{
  margin-top: 86px !important;
  padding-top: 64px;
  border-top: 1px solid var(--nn-line);
}
body.single-product .related.products > h2{
  font-family: var(--nn-display) !important;
  font-size: 36px !important;
  font-weight: 500 !important;
  letter-spacing: -.005em !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
  text-align: center !important;
  margin: 0 0 40px !important;
}

body.single-product .related.products ul.products{
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 42px 26px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
body.single-product .related.products ul.products::before,
body.single-product .related.products ul.products::after{ display: none !important; }
body.single-product .related.products ul.products li.product{
  width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;
  text-align: center;
}
body.single-product .related.products li.product .et_shop_image{
  display: block;
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: var(--nn-blush);
  box-shadow: 0 10px 30px -24px rgba(74,16,40,.45);
  transition: box-shadow .4s var(--nn-ease), transform .4s var(--nn-ease);
}
body.single-product .related.products li.product .et_shop_image img{
  display: block;
  width: 100% !important;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 0 !important;
  transition: transform .7s var(--nn-ease);
}
body.single-product .related.products li.product:hover .et_shop_image{
  transform: translateY(-5px);
  box-shadow: var(--nn-shadow);
}
body.single-product .related.products li.product:hover .et_shop_image img{ transform: scale(1.055); }
body.single-product .related.products .et_overlay{
  background-color: rgba(110,27,60,.14) !important;
  border: 0 !important;
}
body.single-product .related.products .et_overlay::before{ color: #fff !important; }

body.single-product .related.products ul.products li.product h2.woocommerce-loop-product__title{
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  line-height: 1.65 !important;
  color: var(--nn-ink) !important;
  padding: 18px 6px 8px !important;
  margin: 0 !important;
  min-height: 0 !important;
}
body.single-product .related.products li.product:hover h2.woocommerce-loop-product__title{
  color: var(--nn-plum) !important;
}
/* Related prices were hidden by
   .related.products .woocommerce-Price-amount.amount{display:none}
   — restored to match the homepage grid. */
body.single-product .related.products li.product .price .woocommerce-Price-amount.amount{
  display: inline-block !important;
}
body.single-product .related.products li.product .price{
  display: block !important;
  font-family: var(--nn-body) !important;
  margin: 0 !important;
  padding: 0 6px !important;
}
body.single-product .related.products li.product .price del{
  opacity: 1 !important;
  text-decoration: line-through !important;
}
body.single-product .related.products li.product .price del .amount,
body.single-product .related.products li.product .price del .amount bdi,
body.single-product .related.products li.product .price del .woocommerce-Price-currencySymbol{
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--nn-muted) !important;
}
body.single-product .related.products li.product .price ins{
  text-decoration: none !important;
  margin-left: 8px;
}
body.single-product .related.products li.product .price ins .amount,
body.single-product .related.products li.product .price ins .amount bdi,
body.single-product .related.products li.product .price ins .woocommerce-Price-currencySymbol{
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--nn-plum) !important;
}
body.single-product .related.products li.product .onsale{
  position: absolute !important;
  top: 12px; left: 12px;
  right: auto !important;
  min-height: 0 !important;
  min-width: 0 !important;
  line-height: 1 !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-rose) !important;
  border-radius: 999px !important;
  padding: 8px 14px !important;
  margin: 0 !important;
  z-index: 3;
}

/* --- 16.8 Optional: bring the breadcrumb back ------------------------------
   The site hides it with
     .product_meta, .compare.button, .woocommerce-breadcrumb { display: none }
   Uncomment to restore it on product pages only — it helps shoppers get back
   to the category and gives search engines the category path.

body.single-product .woocommerce-breadcrumb{
  display: block !important;
  margin: 0 0 28px !important;
  font-family: var(--nn-body) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
}
body.single-product .woocommerce-breadcrumb a{
  color: var(--nn-muted) !important;
  text-decoration: none !important;
}
body.single-product .woocommerce-breadcrumb a:hover{ color: var(--nn-plum) !important; }
   -------------------------------------------------------------------------- */

/* --- 16.9 Product page responsive ------------------------------------------- */
@media only screen and (max-width: 980px){
  body.single-product div.product > .clearfix{
    grid-template-columns: 1fr;
    gap: 34px;
  }
  body.single-product h1.product_title,
  body.single-product .summary h1.entry-title{ font-size: 32px !important; }
  body.single-product .summary p.price ins bdi,
  body.single-product .summary p.price ins .amount,
  body.single-product .summary p.price ins .woocommerce-Price-currencySymbol{ font-size: 26px !important; }
  body.single-product .related.products > h2{ font-size: 28px !important; }
  body.single-product #main-content .container{ padding-top: 28px !important; }
  body.single-product section.related.products{ margin-top: 60px !important; padding-top: 48px; }
  body.single-product .woocommerce-tabs.wc-tabs-wrapper{ margin-top: 52px !important; }
}

@media only screen and (max-width: 767px){
  body.single-product h1.product_title,
  body.single-product .summary h1.entry-title{ font-size: 27px !important; }
  body.single-product .summary form.cart{ grid-template-columns: 1fr; }
  body.single-product .summary form.cart .quantity,
  body.single-product .summary form.cart button.single_add_to_cart_button{ grid-column: 1; }
  body.single-product .summary form.cart input.qty,
  body.single-product .summary .input-text.qty{ width: 100% !important; }

  body.single-product .related.products ul.products{
    grid-template-columns: 1fr 1fr;
    gap: 28px 16px !important;
  }
  body.single-product .related.products ul.products li.product h2.woocommerce-loop-product__title{
    font-size: 11px !important;
    padding: 14px 2px 6px !important;
  }
  body.single-product .related.products > h2{ font-size: 24px !important; }

  body.single-product .woocommerce-tabs ul.tabs{ gap: 22px; }
  body.single-product .flex-control-thumbs li img{ width: 58px !important; height: 58px !important; }
  body.single-product #tab-description ol > li{ padding-left: 36px !important; }
}

/* ==========================================================================
   17. CHECKOUT PAGE
   Scoped to body.woocommerce-checkout throughout.
   Turns Woo's default stack (billing | shipping, then a full-width order
   review underneath) into the standard modern checkout: form on the left,
   order summary as a card alongside it.
   ========================================================================== */

/* --- 17.1 Page frame -------------------------------------------------------- */
body.woocommerce-checkout #page-container{ background: var(--nn-cream); }
body.woocommerce-checkout .et_pb_section_0.et_pb_section{
  background-color: var(--nn-cream) !important;
  background-image: none !important;
  padding-top: 58px !important;
  padding-bottom: 86px !important;
}
body.woocommerce-checkout .et_pb_row_0{ max-width: 1240px !important; width: 92% !important; }
body.woocommerce-checkout .et_pb_text_0 .et_pb_text_inner{ padding: 0 !important; }

/* Page title above the form */
body.woocommerce-checkout .woocommerce > form.checkout::before{
  content: "Checkout";
  grid-column: 1 / -1;
  grid-row: 1;
  font-family: var(--nn-display);
  font-size: 44px;
  font-weight: 500;
  line-height: 1.1;
  color: var(--nn-plum);
  margin-bottom: 30px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--nn-line);
}

/* --- 17.2 Two-column layout ------------------------------------------------- */
body.woocommerce-checkout form.checkout.woocommerce-checkout{
  display: grid;
  grid-template-columns: 1fr 390px;
  gap: 0 56px;
  align-items: start;
}
/* Anything not placed explicitly runs full width, below the known blocks */
body.woocommerce-checkout form.checkout > *{ grid-column: 1 / -1; }
body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup{ grid-row: 2; }
body.woocommerce-checkout form.checkout > .wcpay-express-checkout-wrapper{ grid-row: 3; }
body.woocommerce-checkout form.checkout > #customer_details,
body.woocommerce-checkout form.checkout > .col2-set{
  grid-column: 1;
  grid-row: 4 / span 2;
}
body.woocommerce-checkout form.checkout > #order_review_heading{ grid-column: 2; grid-row: 4; }
body.woocommerce-checkout form.checkout > #order_review{ grid-column: 2; grid-row: 5; align-self: start; }

/* Billing and shipping stack within the narrower left column */
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{
  width: 100% !important;
  float: none !important;
  margin: 0 0 34px !important;
}
body.woocommerce-checkout #customer_details::before,
body.woocommerce-checkout #customer_details::after{ display: none !important; }

/* --- 17.3 Headings ---------------------------------------------------------- */
body.woocommerce-checkout .woocommerce h3,
body.woocommerce-checkout #order_review_heading{
  font-family: var(--nn-display) !important;
  font-size: 25px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
  margin: 0 0 20px !important;
  padding: 0 0 14px !important;
  border-bottom: 1px solid var(--nn-line);
}
body.woocommerce-checkout #order_review_heading{
  border-bottom: 0;
  padding-bottom: 0 !important;
  margin-bottom: 16px !important;
}
/* "Ship to a different address?" is a checkbox inside an h3 */
body.woocommerce-checkout h3#ship-to-different-address label{
  font-family: var(--nn-display) !important;
  font-size: 25px !important;
  font-weight: 500 !important;
  color: var(--nn-plum) !important;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
body.woocommerce-checkout h3#ship-to-different-address input[type="checkbox"]{
  width: 17px; height: 17px;
  accent-color: var(--nn-plum);
  margin: 0;
}

/* --- 17.4 Form fields -------------------------------------------------------- */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 18px;
}
body.woocommerce-checkout p.form-row{
  grid-column: 1 / -1;
  margin: 0 0 18px !important;
  padding: 0 !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
}
body.woocommerce-checkout p.form-row-first{ grid-column: 1; }
body.woocommerce-checkout p.form-row-last{ grid-column: 2; }

body.woocommerce-checkout .woocommerce form .form-row label,
body.woocommerce-checkout p.form-row > label{
  display: block;
  margin: 0 0 7px !important;
  font-family: var(--nn-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
  line-height: 1.4 !important;
}
body.woocommerce-checkout .required,
body.woocommerce-checkout .required_field abbr.required{
  color: var(--nn-rose) !important;
  text-decoration: none !important;
  border: 0 !important;
}

body.woocommerce-checkout .woocommerce form .form-row input.input-text,
body.woocommerce-checkout .woocommerce form .form-row textarea,
body.woocommerce-checkout p.form-row input.input-text,
body.woocommerce-checkout p.form-row textarea,
body.woocommerce-checkout p.form-row select{
  width: 100% !important;
  box-sizing: border-box;
  font-family: var(--nn-body) !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  color: var(--nn-ink) !important;
  background: #fff !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 14px !important;
  padding: 14px 18px !important;
  box-shadow: none !important;
  transition: border-color .25s var(--nn-ease), box-shadow .25s var(--nn-ease);
}
body.woocommerce-checkout p.form-row textarea{
  min-height: 112px;
  resize: vertical;
}
body.woocommerce-checkout .woocommerce form .form-row input.input-text:focus,
body.woocommerce-checkout p.form-row input.input-text:focus,
body.woocommerce-checkout p.form-row textarea:focus,
body.woocommerce-checkout p.form-row select:focus{
  border-color: var(--nn-plum) !important;
  box-shadow: 0 0 0 4px rgba(110,27,60,.12) !important;
  outline: none !important;
}
body.woocommerce-checkout p.form-row input.input-text::placeholder,
body.woocommerce-checkout p.form-row textarea::placeholder{
  color: #A79AA0 !important;
  opacity: 1;
}
body.woocommerce-checkout .woocommerce form .form-row.woocommerce-invalid input.input-text{
  border-color: var(--nn-rose) !important;
}
body.woocommerce-checkout .woocommerce form .form-row.woocommerce-validated input.input-text{
  border-color: rgba(110,27,60,.35) !important;
}

/* Select2 country / state dropdowns (rendered by JS) */
body.woocommerce-checkout .select2-container .select2-selection--single{
  height: 50px !important;
  background: #fff !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 14px !important;
  display: flex;
  align-items: center;
  padding: 0 8px 0 18px !important;
}
body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered{
  font-family: var(--nn-body) !important;
  font-size: 15px !important;
  color: var(--nn-ink) !important;
  line-height: 1.4 !important;
  padding: 0 !important;
}
body.woocommerce-checkout .select2-container--open .select2-selection--single{
  border-color: var(--nn-plum) !important;
  box-shadow: 0 0 0 4px rgba(110,27,60,.12) !important;
}

/* Checkboxes (ship-to-different, marketing opt-in, terms) */
body.woocommerce-checkout .woocommerce-form__label-for-checkbox{
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--nn-muted) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 400 !important;
}
body.woocommerce-checkout .woocommerce-form__input-checkbox{
  width: 17px; height: 17px;
  margin: 2px 0 0 !important;
  accent-color: var(--nn-plum);
  flex: 0 0 auto;
}

/* --- 17.5 Order summary card -------------------------------------------------- */
body.woocommerce-checkout #order_review{
  background: #fff;
  border: 1px solid var(--nn-line);
  border-radius: 24px;
  padding: 26px 26px 28px;
  box-shadow: var(--nn-shadow);
  position: sticky;
  top: 104px;
}
body.woocommerce-checkout #order_review table.shop_table{
  width: 100%;
  margin: 0 0 4px !important;
  border: 0 !important;
  border-radius: 0 !important;
  border-collapse: collapse;
}
body.woocommerce-checkout #order_review table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table td{
  border: 0 !important;
  padding: 13px 0 !important;
  font-family: var(--nn-body) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  vertical-align: top;
}
body.woocommerce-checkout #order_review table.shop_table thead th{
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid var(--nn-line) !important;
}
body.woocommerce-checkout #order_review table.shop_table thead th.product-total,
body.woocommerce-checkout #order_review table.shop_table td.product-total,
body.woocommerce-checkout #order_review table.shop_table tfoot td{ text-align: right; }

body.woocommerce-checkout #order_review tr.cart_item td{
  border-bottom: 1px solid var(--nn-line) !important;
  color: var(--nn-ink) !important;
}
body.woocommerce-checkout #order_review tr.cart_item td.product-name{ padding-right: 14px !important; }
body.woocommerce-checkout #order_review .product-quantity{
  color: var(--nn-muted) !important;
  font-weight: 400 !important;
  white-space: nowrap;
}

body.woocommerce-checkout #order_review tfoot th{
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
}
body.woocommerce-checkout #order_review tfoot tr.order-total th,
body.woocommerce-checkout #order_review tfoot tr.order-total td{
  padding-top: 16px !important;
  border-top: 1px solid var(--nn-line) !important;
}
body.woocommerce-checkout #order_review tfoot tr.order-total th{
  font-size: 12.5px !important;
  color: var(--nn-plum) !important;
}
body.woocommerce-checkout #order_review tfoot tr.order-total td .amount,
body.woocommerce-checkout #order_review tfoot tr.order-total td bdi,
body.woocommerce-checkout #order_review tfoot tr.order-total td .woocommerce-Price-currencySymbol{
  font-size: 23px !important;
  font-weight: 600 !important;
  color: var(--nn-plum) !important;
}

/* Shipping choices */
body.woocommerce-checkout ul#shipping_method{
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  text-align: left;
}
body.woocommerce-checkout ul#shipping_method li{
  margin: 0 0 8px !important;
  padding: 0 !important;
  list-style: none !important;
  display: flex;
  align-items: flex-start;
  gap: 9px;
}
body.woocommerce-checkout ul#shipping_method li:last-child{ margin-bottom: 0 !important; }
body.woocommerce-checkout ul#shipping_method input.shipping_method{
  width: 16px; height: 16px;
  margin: 3px 0 0 !important;
  accent-color: var(--nn-plum);
  flex: 0 0 auto;
}
body.woocommerce-checkout ul#shipping_method label{
  font-family: var(--nn-body) !important;
  font-size: 13.5px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--nn-ink) !important;
  margin: 0 !important;
  cursor: pointer;
}

/* --- 17.6 Payment methods ------------------------------------------------------ */
body.woocommerce-checkout #payment{
  background: transparent !important;
  border-radius: 0 !important;
  margin-top: 22px;
  padding: 0 !important;
}
body.woocommerce-checkout #payment ul.payment_methods{
  margin: 0 0 18px !important;
  padding: 0 !important;
  border: 0 !important;
  list-style: none !important;
}
body.woocommerce-checkout #payment ul.wc_payment_methods.payment_methods.methods{
  padding-left: 0 !important;
}
body.woocommerce-checkout #payment li.wc_payment_method{
  margin: 0 0 10px !important;
  padding: 0 !important;
  list-style: none !important;
  background: var(--nn-cream);
  border: 1px solid var(--nn-line);
  border-radius: 16px;
  transition: border-color .25s var(--nn-ease), background-color .25s var(--nn-ease);
}
/* Selected state. :has() would be the natural fit but WordPress's CSSLint
   rejects it, so this highlights the label via the adjacent-sibling radio. */
body.woocommerce-checkout #payment li.wc_payment_method input[type="radio"]:checked + label{
  color: var(--nn-plum) !important;
  font-weight: 600 !important;
}
body.woocommerce-checkout #payment li.wc_payment_method > label{
  display: flex !important;
  align-items: center;
  gap: 10px;
  margin: 0 !important;
  padding: 15px 18px !important;
  font-family: var(--nn-body) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  letter-spacing: .02em !important;
  text-transform: none !important;
  color: var(--nn-ink) !important;
  cursor: pointer;
}
body.woocommerce-checkout #payment li.wc_payment_method > input[type="radio"]{
  width: 16px; height: 16px;
  margin: 0 0 0 18px !important;
  accent-color: var(--nn-plum);
  flex: 0 0 auto;
}
body.woocommerce-checkout #payment li.wc_payment_method img{
  max-height: 24px;
  width: auto;
  margin-left: auto;
  border-radius: 0 !important;
}
body.woocommerce-checkout #payment div.payment_box{
  background: transparent !important;
  margin: 0 !important;
  padding: 0 18px 18px !important;
  font-size: 13.5px !important;
  color: var(--nn-muted) !important;
  border-top: 1px solid var(--nn-line);
  padding-top: 15px !important;
}
body.woocommerce-checkout #payment div.payment_box::before{ display: none !important; }
body.woocommerce-checkout #payment div.payment_box p{
  font-size: 13.5px !important;
  line-height: 1.7 !important;
  color: var(--nn-muted) !important;
  margin: 0 !important;
}

/* Terms + place order */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{ margin-bottom: 16px; }
body.woocommerce-checkout .form-row.place-order{ margin: 0 !important; padding: 0 !important; }
body.woocommerce-checkout #place_order,
body.woocommerce-checkout button#place_order.button.alt{
  width: 100% !important;
  height: 58px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-plum) !important;
  border: 1px solid var(--nn-plum) !important;
  border-radius: 999px !important;
  padding: 0 28px !important;
  box-shadow: 0 14px 30px -16px rgba(110,27,60,.55) !important;
  float: none !important;
}
body.woocommerce-checkout #place_order:hover{
  background: var(--nn-plum-deep) !important;
  border-color: var(--nn-plum-deep) !important;
  transform: translateY(-2px);
}
/* Reassurance under the pay button */
body.woocommerce-checkout .form-row.place-order::after{
  content: "\2726  Handmade in Queensland \00b7 Australia wide shipping";
  display: block;
  margin-top: 14px;
  text-align: center;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--nn-gold);
}

/* --- 17.7 Notices --------------------------------------------------------------- */
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout div.woocommerce-message{
  font-family: var(--nn-body) !important;
  font-size: 14.5px !important;
  line-height: 1.65 !important;
  border-radius: 16px !important;
  border: 1px solid var(--nn-line) !important;
  background: var(--nn-blush) !important;
  color: var(--nn-ink) !important;
  padding: 16px 20px !important;
  margin: 0 0 22px !important;
  list-style: none !important;
}
body.woocommerce-checkout .woocommerce-error{
  background: #FCEEF2 !important;
  border-color: rgba(201,82,122,.35) !important;
}
body.woocommerce-checkout .woocommerce-error li{
  font-size: 14.5px !important;
  margin: 0 !important;
  list-style: none !important;
}

/* --- 17.8 Checkout responsive ---------------------------------------------------- */
@media only screen and (max-width: 980px){
  body.woocommerce-checkout form.checkout.woocommerce-checkout{
    grid-template-columns: 1fr;
    gap: 0;
  }
  body.woocommerce-checkout form.checkout > #customer_details,
  body.woocommerce-checkout form.checkout > .col2-set,
  body.woocommerce-checkout form.checkout > #order_review_heading,
  body.woocommerce-checkout form.checkout > #order_review{
    grid-column: 1;
    grid-row: auto;
  }
  body.woocommerce-checkout #order_review{ position: static; margin-top: 4px; }
  body.woocommerce-checkout #order_review_heading{ margin-top: 20px !important; }
  body.woocommerce-checkout .woocommerce > form.checkout::before{
    font-size: 33px;
    margin-bottom: 24px;
  }
  body.woocommerce-checkout .et_pb_section_0.et_pb_section{
    padding-top: 36px !important;
    padding-bottom: 60px !important;
  }
}

@media only screen and (max-width: 767px){
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper{
    grid-template-columns: 1fr;
  }
  body.woocommerce-checkout p.form-row-first,
  body.woocommerce-checkout p.form-row-last{ grid-column: 1; }
  body.woocommerce-checkout .woocommerce > form.checkout::before{ font-size: 28px; }
  body.woocommerce-checkout .woocommerce h3,
  body.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout h3#ship-to-different-address label{ font-size: 21px !important; }
  body.woocommerce-checkout #order_review{ padding: 20px 18px 22px; border-radius: 20px; }
  body.woocommerce-checkout .et_pb_row_0{ width: 90% !important; }
}



/* Old preview code do not */
body{
		color: #000;
}
h1, h2, h3, h4, h5, h6, p, a, span, strong, li, small, div{
		font-family: 'Poppins', sans-serif !important;
		
}
div.woocommerce-message{
	border-radius: 15px;
    background-color: #eeeeee !important;
    color: #000 !important;
    font-size: 16px !important;	
}
.wc-tab>h2:first-of-type{
		display: none;
}
.single-product #main-content ul li,.single-product #main-content ol li{margin-bottom:1.5rem;}
.single-product ul, .single-product ol{
		  list-style-position:outside!important;
  padding-left: 1em!important;
}
.single-product .woocommerce-tabs h2{
	font-size: 20px!important;	
}
p.woocommerce-notice.woocommerce-notice--success.woocommerce-thankyou-order-received {
		font-size: 22px !important;
    padding-bottom: 3rem;
    text-transform: uppercase;
    font-weight: 600;
    color: #008f00;
}
.woocommerce ul.order_details li {
   font-size: 15px!important;
}
.woocommerce-checkout strong{
		font-weight:400!important;
}
.woocommerce-checkout ul{
		padding-left:0!important;
}
.wc_payment_methods.payment_methods.methods{
		padding-left:1rem!important;
}
#payid_payment-admin-note{
		display:none!important;
}
.woocommerce-checkout p{
		font-size:16px!important;
}
.woocommerce-checkout h2 {
    font-size: 22px!important;
    font-weight: 600;
    text-transform: uppercase;
    padding-bottom: 1.5rem;
}
.single-product .woocommerce-tabs h2, .single-product h3{
	font-size: 17px!important;
		font-weight: 600;
}
.related.products h2{
	font-size: 17px!important;
		font-weight: 600;	
}
.yith-wcwl-add-to-wishlist .yith-wcwl-add-button{
		align-items:start!important;
}
p, li{
		font-size: 14px;
}
.price{
		margin-bottom: 1rem;
}
.single-product h1{
		font-size:20px;
}
.single-product h3{
		padding-top: 1.5rem;
}
img{
		border-radius: 30px!important;
}
input, textarea, button, a.et_pb_button, .woocommerce-tabs.wc-tabs-wrapper{
		border-radius: 15px!important;
}
a.et_pb_button:hover{
		border-radius: 15px!important;
}
.woocommerce span.onsale, .woocommerce-page span.onsale{
				border-radius: 15px!important;
		font-size: 14px!important;
		background-color:#c5295c!important;
}
.wp-caption{
		background-color:unset;
		border: unset;
		padding: 0;
}
.woocommerce-tabs.wc-tabs-wrapper{
		overflow: hidden;
}
.woocommerce-loop-product__title{
		line-height: 22px!important;
}
.reviews_tab a{font-weight: 400;
  text-transform: uppercase;
  font-size: 10px;}
.woocommerce-result-count {
    font-size: 10px!important;
}
.woocommerce-products-header__title{font-size: 20px;
  text-transform: uppercase;
  font-weight: 700;}
.input-text.qty{background-color:unset!important;border:1px solid #000!important;padding: 15px 0px!important;} 
.summary .price bdi,.summary .price .woocommerce-Price-currencySymbol{font-weight:400;padding: 0 0 1rem!important;font-size:16px!important;}
.woocommerce-product-details__short-description p{font-size:14px!important;color:#000!important;}
.add_to_wishlist {color: #000!important;}
button:after{display:none!important;padding:0!important;}
button{border: 1px solid #000;}
.single_add_to_cart_button{border: 1px solid #000!important; border-radius: 15!important; color: #000!important; text-transform: uppercase; font-size: 16px!important; padding: 13px 25px!important;}
.single_add_to_cart_button:after{font-size: 25px!important; position: relative!important; top: 4px!important;}
.single_add_to_cart_button:hover{background-color:#000!important;color: #fff!important;}
a.button.yith-wcqv-button {
		border: 1px solid #000;
    border-radius: 0px;
    color: #000 !important;
    text-transform: uppercase;
font-size: 10px;
  padding: 5px 20px !important;
}
a.button.yith-wcqv-button:hover{
		border:unset!important;
}
a.button.yith-wcqv-button:after{    display:none!important;}

a.button.yith-wcqv-button:hover {
    color: #000 !important;
}

.yith-wcqv-button{color: #000 !important;}

.button.single_add_to_cart_button.button.alt,a.compare.button{color:#a925c6;}

span.onsale{color: #fff !important; background-color: #a925c6 !important;}

span.woocommerce-Price-currencySymbol,span.woocommerce-Price-amount.amount bdi{color:#333 !important;}
.posted_in a{color:#333 !important;}

section.related.products h2.woocommerce-loop-product__title {
    min-height: 80px;
    position: relative;
		    font-weight: 400;
font-size: 14px !important;
  line-height: 20px;
}
.woocommerce-shop  h2.woocommerce-loop-product__title {
    min-height: 50px;
}
.woocommerce-shop  h2.woocommerce-loop-product__title {
    font-weight: 400;
font-size: 14px !important;
  line-height: 20px;
}
.woocommerce-LoopProduct-link .woocommerce-loop-product__title{text-transform:uppercase!important;}
.product_meta,.compare.button,.woocommerce-breadcrumb{display: none !important;}
.iscreenvwr{text-align:center;padding:40px 0;background-color: #eeeeee;}
#main-footer{background-color:#eee !important}
#top-menu a{text-transform:uppercase;font-weight: 400;font-size: 12px;color:#000;}
.home .woocommerce-Price-amount.amount, .related.products .woocommerce-Price-amount.amount{display: none;}
@media only screen and (min-width:769px){.main-head{font-size: 40px; font-weight: 800; text-transform: uppercase;}
.entry-summary .entry-title {
  padding-bottom: 14px !important;
  font-size: 18px;
  text-transform: uppercase;
}
		.single-post img{
				max-width: 70%;
		}
}
@media only screen and (max-width:768px){.main-head{font-size: 25px; font-weight: 800; text-transform: uppercase;}}
.single-post h2, .single-post h3{
		margin-top: 1rem;
		color: #8F1340;
}
.single-post h1, .single-post h2, .single-post h3{
		color: #8F1340;
}
.single-post h3{
		font-size: 17px;
}
.single-post img{
		margin-top: 1rem;
}
.post img{
		height: 100%!important;
		width: 100%!important;
		object-fit: cover;
}
.single-post #content-area *{
		font-weight: 400;
}
.single-post a{
		text-decoration: underline;
}
#comment-wrap{
		display:none!important;
}

/* Featured items: left column images side by side to match the right column mosaic */
body.home .et_pb_section_3 .et_pb_image_1,
body.home .et_pb_section_3 .et_pb_image_2{
  display: inline-block !important;
  vertical-align: top;
  width: calc(50% - 9px) !important;
}
body.home .et_pb_section_3 .et_pb_image_1{ margin-right: 18px !important; }

/* ==========================================================================
   18. CART COUNT BADGE
   Divi renders the cart as:
       <a class="et-cart-info"><span></span></a>
   with the trolley glyph on `.et-cart-info span:before` and the count as the
   span's text. The span ships EMPTY from the server — WooCommerce cart
   fragments fill it in via JS after load — so the badge hides on :empty.
   To overlap the count on the icon, the glyph moves to the <a> and the inner
   span becomes the badge.
   ========================================================================== */
body #et-top-navigation a.et-cart-info{
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin: -10px 0 0 20px !important;
  border: 1px solid var(--nn-line);
  border-radius: 50%;
  color: var(--nn-plum) !important;
  overflow: visible;
  transition: background-color .25s var(--nn-ease),
              border-color .25s var(--nn-ease),
              color .25s var(--nn-ease);
}
body #et-top-navigation a.et-cart-info:hover{
  background: var(--nn-plum);
  border-color: var(--nn-plum);
  color: #fff !important;
}

/* Trolley glyph, moved off the inner span onto the link itself */
body #et-top-navigation a.et-cart-info::before{
  content: "\e07a";
  font-family: ETmodules !important;
  font-size: 19px;
  font-weight: 400;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  speak: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* Divi's original glyph on the inner span — now redundant */
body #et-top-navigation a.et-cart-info > span::before{
  content: none !important;
  display: none !important;
  margin: 0 !important;
}

/* The count itself, overlapping the top-right of the icon */
body #et-top-navigation a.et-cart-info > span{
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--nn-rose);
  color: #fff !important;
  font-family: var(--nn-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-align: center;
  border: 2px solid var(--nn-cream);
  pointer-events: none;
}
/* No items — Divi leaves the span empty, so no badge */
body #et-top-navigation a.et-cart-info > span:empty{ display: none !important; }

@media only screen and (max-width: 980px){
  body #et-top-navigation a.et-cart-info{
    width: 38px;
    height: 38px;
    margin: -8px 0 0 12px !important;
  }
  body #et-top-navigation a.et-cart-info::before{ font-size: 17px; }
}

/* ==========================================================================
   19. STICKY BUY BAR (product pages)
   Markup is built by the companion script pasted into
   Divi > Theme Options > Integration > "Add code to the < body >".
   Without that script none of this renders, and nothing else is affected.
   ========================================================================== */
.nn-buybar{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99999;
  background: rgba(255,251,249,.97);
  backdrop-filter: saturate(140%) blur(10px);
  -webkit-backdrop-filter: saturate(140%) blur(10px);
  border-top: 1px solid var(--nn-line);
  box-shadow: 0 -10px 40px -24px rgba(74,16,40,.5);
  transform: translateY(105%);
  transition: transform .38s var(--nn-ease);
  will-change: transform;
}
.nn-buybar.is-visible{ transform: translateY(0); }

.nn-buybar__inner{
  max-width: 1240px;
  width: 92%;
  margin: 0 auto;
  padding: 12px 0;
  display: flex;
  align-items: center;
  gap: 18px;
}

.nn-buybar__img{
  width: 54px;
  height: 54px;
  object-fit: cover;
  border-radius: 12px !important;
  flex: 0 0 auto;
  background: var(--nn-blush);
}

.nn-buybar__meta{
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  flex: 1 1 auto;
}
.nn-buybar__title{
  font-family: var(--nn-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--nn-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nn-buybar__price{
  font-family: var(--nn-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--nn-plum);
  line-height: 1.2;
}
.nn-buybar__price del{
  font-size: 12px;
  font-weight: 400;
  color: var(--nn-muted);
  margin-right: 7px;
  text-decoration: line-through;
}
.nn-buybar__price ins{
  text-decoration: none;
  background: transparent;
}

.nn-buybar__desc{
  flex: 0 0 auto;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--nn-muted) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--nn-line);
  padding-bottom: 3px;
  transition: color .25s var(--nn-ease), border-color .25s var(--nn-ease);
}
.nn-buybar__desc:hover{
  color: var(--nn-plum) !important;
  border-bottom-color: var(--nn-gold);
}

.nn-buybar__cta{
  flex: 0 0 auto;
  height: 48px;
  padding: 0 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--nn-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #fff;
  background: var(--nn-plum);
  border: 1px solid var(--nn-plum) !important;
  border-radius: 999px !important;
  cursor: pointer;
  box-shadow: 0 14px 30px -16px rgba(110,27,60,.55);
  transition: background-color .25s var(--nn-ease), transform .25s var(--nn-ease);
}
.nn-buybar__cta:hover{
  background: var(--nn-plum-deep);
  border-color: var(--nn-plum-deep) !important;
  transform: translateY(-1px);
}
.nn-buybar__cta::after{ display: none !important; }

@media only screen and (max-width: 767px){
  .nn-buybar__inner{
    width: 94%;
    gap: 12px;
    padding: 10px 0;
  }
  .nn-buybar__img{ width: 44px; height: 44px; border-radius: 10px !important; }
  .nn-buybar__title{ display: none; }
  .nn-buybar__price{ font-size: 14px; }
  .nn-buybar__desc{
    font-size: 10px;
    letter-spacing: .1em;
  }
  .nn-buybar__cta{
    height: 44px;
    padding: 0 20px;
    font-size: 10.5px;
    letter-spacing: .12em;
  }
}

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

/* ==========================================================================
   20. CART COUNT + BUY-BAR CLEARANCE
   ========================================================================== */

/* --- 20.1 Cart count -------------------------------------------------------
   Divi's header calls et_show_cart_total( array( 'no_text' => true ) ), and
   that function prints <span></span> with an empty string — the count is
   never rendered at all. nancy-cart-count.js tags that span .nn-cart-count
   and a woocommerce_add_to_cart_fragments filter fills it, so it stays
   correct behind WP Super Cache and Cloudflare (a server-printed number
   would be baked into the cached page and shown to everyone).
   -------------------------------------------------------------------------- */
body #et-top-navigation a.et-cart-info > span.nn-cart-count{
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--nn-rose);
  color: #fff !important;
  font-family: var(--nn-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  border: 2px solid var(--nn-cream);
  pointer-events: none;
}
/* Empty cart: the fragment sends the span with a hidden attribute. */
body #et-top-navigation a.et-cart-info > span.nn-cart-count[hidden],
body #et-top-navigation a.et-cart-info > span:empty{
  display: none !important;
}

/* --- 20.2 Buy-bar clearance ------------------------------------------------
   The sticky buy bar is position:fixed, so it sits over whatever is at the
   bottom of the document — which at the end of a product page is the footer
   nav. Reserve its height on the footer itself rather than on #page-container,
   so the plum keeps running to the bottom of the viewport.
   -------------------------------------------------------------------------- */
body.single-product #main-footer{ padding-bottom: 92px !important; }

@media only screen and (max-width: 767px){
  body.single-product #main-footer{ padding-bottom: 76px !important; }
}

/* ==========================================================================
   21. SCROLL-TO-TOP BUTTON (all pages)
   --------------------------------------------------------------------------
   Divi renders <span class="et_pb_scroll_top et-pb-icon"> and draws the arrow
   with content:'2' in the ETmodules icon font. The site-wide rule
     h1,...,span,strong,li,small,div{ font-family:'Poppins' !important }
   forces Poppins onto that span, so the glyph fell back to a literal "2".
   Restoring the icon font here fixes it; the rest is styling.

   Sizing uses line-height rather than flexbox on purpose: Divi's JS shows and
   hides this with jQuery .show()/.hide(), which writes inline display:block
   and would override a display:flex, breaking the centring.
   ========================================================================== */
body .et_pb_scroll_top.et-pb-icon{
  font-family: ETmodules !important;
  font-weight: 400 !important;
  font-style: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  speak: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  right: 26px !important;
  bottom: 30px !important;
  width: 46px;
  height: 46px;
  line-height: 46px !important;   /* centres the glyph without flexbox */
  padding: 0 !important;
  text-align: center;

  font-size: 19px !important;
  color: #fff !important;
  background: var(--nn-plum) !important;
  border-radius: 50% !important;
  box-shadow: 0 0 0 1px var(--nn-gold-soft),
              0 14px 30px -12px rgba(74,16,40,.65) !important;
  transition: background-color .25s var(--nn-ease),
              transform .25s var(--nn-ease),
              box-shadow .25s var(--nn-ease);
}
body .et_pb_scroll_top.et-pb-icon::before{
  font-family: ETmodules !important;
  font-weight: 400 !important;
}
body .et_pb_scroll_top.et-pb-icon:hover{
  background: var(--nn-plum-deep) !important;
  transform: translateY(-3px);
  box-shadow: 0 0 0 1px var(--nn-gold),
              0 20px 38px -12px rgba(74,16,40,.75) !important;
}
body .et_pb_scroll_top.et-pb-icon:focus-visible{
  outline: 2px solid var(--nn-gold);
  outline-offset: 3px;
}

/* On product pages the sticky buy bar owns the bottom of the screen, so lift
   the button clear of it. */
body.single-product .et_pb_scroll_top.et-pb-icon{ bottom: 104px !important; }

@media only screen and (max-width: 767px){
  body .et_pb_scroll_top.et-pb-icon{
    right: 16px !important;
    bottom: 20px !important;
    width: 42px;
    height: 42px;
    line-height: 42px !important;
    font-size: 17px !important;
  }
  body.single-product .et_pb_scroll_top.et-pb-icon{ bottom: 86px !important; }
}

@media (prefers-reduced-motion: reduce){
  body .et_pb_scroll_top.et-pb-icon{ transition: none; }
  body .et_pb_scroll_top.et-pb-icon:hover{ transform: none; }
}

/* ==========================================================================
   22. SHOP ARCHIVE  (/shop/)
   --------------------------------------------------------------------------
   The page is a Divi Builder page running a single et_pb_shop module. It had
   no <h1> anywhere in the document; nancy-redesign.php injects one through
   the_content and this styles it.
   ========================================================================== */

/* Divi still sets et_right_sidebar on the body even though this page renders
   no sidebar, so its 1px divider pseudo-element hangs in the middle of
   nothing — same stranded line as on product pages. */
body.woocommerce-shop #main-content .container::before{ display: none !important; }
body.woocommerce-shop #left-area{ width: 100% !important; padding-right: 0 !important; }

/* The Shop page carries two greys set in the Divi Builder itself, not in any
   stylesheet:
     .et_pb_section_0.et_pb_section{ background-color:#eeeeee!important }
     .et_pb_row_0{ background-color:#eeeeee }
   The row is the grey slab that was sitting behind the toolbar and grid.
   Both are cleared here; to make it permanent, clear the background on that
   section and row in the Divi Builder instead. */
body.woocommerce-shop .et_pb_section_0.et_pb_section{
  background-color: var(--nn-cream) !important;
  padding-top: 0 !important;
  padding-bottom: 96px !important;
}
body.woocommerce-shop .et_pb_row_0,
body.woocommerce-shop .et_pb_row_0.et_pb_row{
  background-color: transparent !important;
  background-image: none !important;
}

/* --- 22.1 Heading band ------------------------------------------------------ */
.nn-shop-hero{
  margin: 0 0 54px;
  padding: 76px 24px 54px;
  text-align: center;
  background-image:
    radial-gradient(120% 90% at 10% 0%,  #FDF6F2 0%, rgba(253,246,242,0) 58%),
    radial-gradient(95% 85% at 100% 10%, var(--nn-blush-2) 0%, rgba(245,225,230,0) 62%),
    linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 55%, var(--nn-blush) 100%);
  border-bottom: 1px solid var(--nn-gold-soft);
}
.nn-shop-hero__eyebrow{
  margin: 0 0 16px !important;
  font-family: var(--nn-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .3em !important;
  text-transform: uppercase;
  color: var(--nn-gold) !important;
  line-height: 1.4 !important;
}
body .nn-shop-hero h1.nn-shop-hero__title{
  margin: 0 auto 18px !important;
  padding: 0 !important;
  max-width: 16ch;
  font-family: var(--nn-display) !important;
  font-size: 58px !important;
  font-weight: 500 !important;
  line-height: 1.04 !important;
  letter-spacing: -.01em !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
}
/* Gold rule under the headline, echoing the homepage dividers */
body .nn-shop-hero h1.nn-shop-hero__title::after{
  content: "";
  display: block;
  width: 72px;
  height: 2px;
  margin: 22px auto 0;
  background: linear-gradient(90deg, transparent, var(--nn-gold), transparent);
}
.nn-shop-hero__sub{
  margin: 0 auto !important;
  max-width: 56ch;
  font-family: var(--nn-body) !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
  color: var(--nn-muted) !important;
}

/* --- 22.2 Result count + sort, as one toolbar ------------------------------- */
body.woocommerce-shop .et_pb_shop .woocommerce{
  display: block;
  max-width: 1240px;
  margin: 0 auto;
}
body.woocommerce-shop p.woocommerce-result-count{
  float: left;
  margin: 0 0 26px !important;
  padding: 0 !important;
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
  line-height: 44px !important;
}
body.woocommerce-shop form.woocommerce-ordering{
  float: right;
  margin: 0 0 26px !important;
}
body.woocommerce-shop form.woocommerce-ordering select.orderby{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  height: 44px;
  padding: 0 44px 0 20px !important;
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  color: var(--nn-ink) !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E1B3C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 15px 15px;
  border: 1px solid var(--nn-line) !important;
  border-radius: 999px !important;
  cursor: pointer;
  transition: border-color .25s var(--nn-ease), box-shadow .25s var(--nn-ease);
}
body.woocommerce-shop form.woocommerce-ordering select.orderby:focus{
  border-color: var(--nn-plum) !important;
  box-shadow: 0 0 0 4px rgba(110,27,60,.12) !important;
  outline: none !important;
}
/* Clear the floats before the grid starts */
body.woocommerce-shop .et_pb_shop ul.products{ clear: both; }

/* --- 22.3 Product grid ------------------------------------------------------ */
body.woocommerce-shop .et_pb_shop ul.products{
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr 1fr !important;
  gap: 46px 26px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
body.woocommerce-shop .et_pb_shop ul.products::before,
body.woocommerce-shop .et_pb_shop ul.products::after{ display: none !important; }
body.woocommerce-shop .et_pb_shop ul.products li.product{
  width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;
  text-align: center;
}
body.woocommerce-shop .et_pb_shop li.product .et_shop_image{
  display: block;
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: var(--nn-blush);
  box-shadow: 0 10px 30px -24px rgba(74,16,40,.45);
  transition: box-shadow .4s var(--nn-ease), transform .4s var(--nn-ease);
}
body.woocommerce-shop .et_pb_shop li.product .et_shop_image img{
  display: block;
  width: 100% !important;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 0 !important;
  transition: transform .7s var(--nn-ease);
}
body.woocommerce-shop .et_pb_shop li.product:hover .et_shop_image{
  transform: translateY(-5px);
  box-shadow: var(--nn-shadow);
}
body.woocommerce-shop .et_pb_shop li.product:hover .et_shop_image img{ transform: scale(1.055); }
body.woocommerce-shop .et_pb_shop .et_overlay{
  background-color: rgba(110,27,60,.14) !important;
  border: 0 !important;
  border-radius: 0 !important;
}
body.woocommerce-shop .et_pb_shop .et_overlay::before{ color: #fff !important; }

body.woocommerce-shop .et_pb_shop li.product h2.woocommerce-loop-product__title{
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  line-height: 1.65 !important;
  color: var(--nn-ink) !important;
  padding: 18px 6px 8px !important;
  margin: 0 !important;
  min-height: 0 !important;
  transition: color .25s var(--nn-ease);
}
body.woocommerce-shop .et_pb_shop li.product:hover h2.woocommerce-loop-product__title{
  color: var(--nn-plum) !important;
}

/* ---- PRICES + SALE BADGE ---------------------------------------------------
   The Divi module is set to "no price" / "no sale badge". That only adds the
   classes .et_pb_shop_no_price / .et_pb_shop_no_sale_badge and hides them in
   CSS — all 56 prices and badges are still in the markup. Shown again so the
   shop matches the homepage grid. Delete this block for a price-less shop.
   -------------------------------------------------------------------------- */
body.woocommerce-shop .et_pb_shop.et_pb_shop_no_price li.product .price,
body.woocommerce-shop .et_pb_shop li.product .price{
  display: block !important;
  font-family: var(--nn-body) !important;
  margin: 0 !important;
  padding: 0 6px !important;
}
body.woocommerce-shop .et_pb_shop li.product .price .woocommerce-Price-amount.amount{
  display: inline-block !important;
}
body.woocommerce-shop .et_pb_shop li.product .price del{
  opacity: 1 !important;
  text-decoration: line-through !important;
}
body.woocommerce-shop .et_pb_shop li.product .price del .amount,
body.woocommerce-shop .et_pb_shop li.product .price del .amount bdi,
body.woocommerce-shop .et_pb_shop li.product .price del .woocommerce-Price-currencySymbol{
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--nn-muted) !important;
}
body.woocommerce-shop .et_pb_shop li.product .price ins{
  text-decoration: none !important;
  margin-left: 8px;
}
body.woocommerce-shop .et_pb_shop li.product .price ins .amount,
body.woocommerce-shop .et_pb_shop li.product .price ins .amount bdi,
body.woocommerce-shop .et_pb_shop li.product .price ins .woocommerce-Price-currencySymbol{
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--nn-plum) !important;
}
body.woocommerce-shop .et_pb_shop.et_pb_shop_no_sale_badge li.product .onsale,
body.woocommerce-shop .et_pb_shop li.product .onsale,
body.woocommerce-shop .et_pb_shop span.onsale{
  display: block !important;
  position: absolute !important;
  top: 12px; left: 12px;
  right: auto !important;
  min-height: 0 !important;
  min-width: 0 !important;
  line-height: 1 !important;
  font-family: var(--nn-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-rose) !important;
  border-radius: 999px !important;
  padding: 8px 14px !important;
  margin: 0 !important;
  box-shadow: 0 8px 20px -10px rgba(201,82,122,.8) !important;
  z-index: 3;
}

/* --- 22.4 Pagination -------------------------------------------------------- */
body.woocommerce-shop nav.woocommerce-pagination{ margin-top: 56px !important; text-align: center; }
body.woocommerce-shop nav.woocommerce-pagination ul{
  display: inline-flex;
  gap: 8px;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.woocommerce-shop nav.woocommerce-pagination ul li{
  border: 0 !important;
  margin: 0 !important;
  overflow: visible;
}
body.woocommerce-shop nav.woocommerce-pagination ul li a,
body.woocommerce-shop nav.woocommerce-pagination ul li span{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 14px !important;
  font-family: var(--nn-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--nn-ink) !important;
  background: #fff !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 999px !important;
  transition: background-color .25s var(--nn-ease), color .25s var(--nn-ease);
}
body.woocommerce-shop nav.woocommerce-pagination ul li span.current,
body.woocommerce-shop nav.woocommerce-pagination ul li a:hover{
  background: var(--nn-plum) !important;
  border-color: var(--nn-plum) !important;
  color: #fff !important;
}

/* --- 22.5 Responsive -------------------------------------------------------- */
@media only screen and (max-width: 1100px){
  body.woocommerce-shop .et_pb_shop ul.products{ grid-template-columns: 1fr 1fr 1fr !important; }
}

@media only screen and (max-width: 980px){
  .nn-shop-hero{ padding: 52px 20px 40px; margin-bottom: 40px; }
  body .nn-shop-hero h1.nn-shop-hero__title{ font-size: 40px !important; max-width: none; }
  body.woocommerce-shop .et_pb_section_0.et_pb_section{ padding-bottom: 64px !important; }
}

@media only screen and (max-width: 767px){
  body .nn-shop-hero h1.nn-shop-hero__title{ font-size: 31px !important; }
  .nn-shop-hero__sub{ font-size: 15px !important; }
  body.woocommerce-shop .et_pb_shop ul.products{
    grid-template-columns: 1fr 1fr !important;
    gap: 30px 16px !important;
  }
  body.woocommerce-shop .et_pb_shop li.product h2.woocommerce-loop-product__title{
    font-size: 11px !important;
    padding: 14px 2px 6px !important;
  }
  body.woocommerce-shop p.woocommerce-result-count,
  body.woocommerce-shop form.woocommerce-ordering{
    float: none;
    display: block;
    text-align: center;
    margin-bottom: 12px !important;
  }
  body.woocommerce-shop form.woocommerce-ordering select.orderby{ width: 100%; }
  body.woocommerce-shop .et_pb_shop li.product .onsale{
    font-size: 9px !important;
    padding: 6px 11px !important;
    top: 8px; left: 8px;
  }
}

/* ==========================================================================
   23. STRANDED SIDEBAR DIVIDER (site-wide)
   --------------------------------------------------------------------------
   Divi draws the sidebar divider as #main-content .container:before — a 1px
   absolute bar at right:25% — independently of whether a #sidebar element is
   actually rendered. Shop, product, about, blog and contact all carry the
   et_right_sidebar body class but output no sidebar, so the line hangs down
   the middle of the content. Divi's own .et_no_sidebar rule never fires on
   those pages. It is purely decorative, so it is cleared everywhere; if a
   real sidebar is ever added back, delete this rule.
   ========================================================================== */
body #main-content .container::before{ display: none !important; }

/* ==========================================================================
   24. ABOUT  (page-id-22)
   Classic (non-builder) page: #left-area > article > .entry-content with
   Gutenberg columns and images.
   ========================================================================== */
body.page-id-22 #left-area{ width: 100% !important; padding-right: 0 !important; padding-bottom: 0 !important; }
body.page-id-22 #main-content .container{ width: 100% !important; max-width: none !important; padding-top: 0 !important; }
body.page-id-22 #content-area{ max-width: none; }

/* Title band */
body.page-id-22 h1.entry-title.main_title{
  margin: 0 0 56px !important;
  padding: 76px 24px 54px !important;
  text-align: center;
  font-family: var(--nn-display) !important;
  font-size: 58px !important;
  font-weight: 500 !important;
  line-height: 1.04 !important;
  letter-spacing: -.01em !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
  background-image:
    radial-gradient(120% 90% at 10% 0%,  #FDF6F2 0%, rgba(253,246,242,0) 58%),
    radial-gradient(95% 85% at 100% 10%, var(--nn-blush-2) 0%, rgba(245,225,230,0) 62%),
    linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 55%, var(--nn-blush) 100%);
  border-bottom: 1px solid var(--nn-gold-soft);
}
body.page-id-22 h1.entry-title.main_title::before{
  content: "Our Story";
  display: block;
  margin-bottom: 16px;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--nn-gold);
}
body.page-id-22 h1.entry-title.main_title::after{
  content: "";
  display: block;
  width: 72px;
  height: 2px;
  margin: 22px auto 0;
  background: linear-gradient(90deg, transparent, var(--nn-gold), transparent);
}

/* Prose column */
body.page-id-22 .entry-content{
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px 90px;
}
body.page-id-22 .entry-content p.wp-block-paragraph{
  max-width: 70ch;
  margin: 0 auto 22px !important;
  font-size: 17px !important;
  line-height: 1.9 !important;
  color: var(--nn-ink) !important;
}
body.page-id-22 .entry-content p.wp-block-paragraph:empty{ display: none; }
/* Lead paragraph */
body.page-id-22 .entry-content p.wp-block-paragraph:nth-of-type(2){
  font-family: var(--nn-display) !important;
  font-size: 23px !important;
  font-style: italic !important;
  line-height: 1.55 !important;
  color: var(--nn-plum-deep) !important;
  text-align: center;
  max-width: 60ch;
  margin-bottom: 34px !important;
}
body.page-id-22 .entry-content strong{ color: var(--nn-plum) !important; font-weight: 600 !important; }

/* Image pairs */
body.page-id-22 .wp-block-columns{
  gap: 26px !important;
  margin: 0 auto 46px !important;
  max-width: 1000px;
}
body.page-id-22 .wp-block-image{ margin: 0 !important; }
body.page-id-22 .wp-block-image img{
  display: block;
  width: 100% !important;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 20px !important;
  box-shadow: var(--nn-shadow);
  transition: transform .4s var(--nn-ease), box-shadow .4s var(--nn-ease);
}
body.page-id-22 .wp-block-image:hover img{
  transform: translateY(-5px);
  box-shadow: var(--nn-shadow-lg);
}
body.page-id-22 figcaption.wp-element-caption{
  margin-top: 12px !important;
  text-align: center;
  font-family: var(--nn-body) !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase;
  color: var(--nn-muted) !important;
  background: none !important;
  padding: 0 !important;
}

/* ==========================================================================
   25. BLOG  (page-id-1012) — post cards
   ========================================================================== */
/* The layout sits in a 3/5 column flanked by two empty 1/5 columns, which is
   far too narrow for a card grid. Drop the spacers and go full width. */
body.page-id-1012 .et_pb_column_empty{ display: none !important; }
body.page-id-1012 .et_pb_row_0 > .et_pb_column{ width: 100% !important; margin: 0 !important; }
body.page-id-1012 .et_pb_section_0.et_pb_section{
  background: var(--nn-cream) !important;
  padding-top: 0 !important;
  padding-bottom: 90px !important;
}
body.page-id-1012 .et_pb_row_0{ width: 92% !important; max-width: 1240px !important; }

/* Title band.
   It lives in a Divi text module inside .et_pb_row_0, which is capped at 92%
   / 1240px, so the band stopped short of the window edges. These negative
   margins break it out of that container to full-bleed width. overflow-x is
   clipped (not hidden) on the wrapper so the negative margins cannot produce
   a horizontal scrollbar — `clip` does this without disabling position:sticky
   the way `hidden` would. */
body.page-id-1012 #page-container{ overflow-x: clip; }
body.page-id-1012 .et_pb_text_0{
  margin: 0 calc(50% - 50vw) 48px !important;
  width: auto !important;
  max-width: none !important;
}
body.page-id-1012 .et_pb_text_0 .et_pb_text_inner{
  padding: 70px 24px 50px;
  text-align: center;
  background-image:
    radial-gradient(120% 90% at 10% 0%,  #FDF6F2 0%, rgba(253,246,242,0) 58%),
    radial-gradient(95% 85% at 100% 10%, var(--nn-blush-2) 0%, rgba(245,225,230,0) 62%),
    linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 55%, var(--nn-blush) 100%);
  border-bottom: 1px solid var(--nn-gold-soft);
}
body.page-id-1012 .et_pb_text_0 .et_pb_text_inner::before{
  content: "Journal";
  display: block;
  margin-bottom: 16px;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--nn-gold);
}
body.page-id-1012 .et_pb_text_0 h1{
  margin: 0 !important;
  font-family: var(--nn-display) !important;
  font-size: 58px !important;
  font-weight: 500 !important;
  line-height: 1.04 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
}
body.page-id-1012 .et_pb_text_0 h1::after{
  content: "";
  display: block;
  width: 72px;
  height: 2px;
  margin: 22px auto 0;
  background: linear-gradient(90deg, transparent, var(--nn-gold), transparent);
}

/* Card grid */
body.page-id-1012 .et_pb_blog_0 .et_pb_ajax_pagination_container{
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 32px 26px;
  align-items: stretch;
}
body.page-id-1012 .et_pb_blog_0 .et_pb_ajax_pagination_container::before,
body.page-id-1012 .et_pb_blog_0 .et_pb_ajax_pagination_container::after{ display: none !important; }

body.page-id-1012 article.et_pb_post{
  display: flex;
  flex-direction: column;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--nn-line);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 10px 30px -24px rgba(74,16,40,.4);
  transition: transform .35s var(--nn-ease), box-shadow .35s var(--nn-ease);
}
body.page-id-1012 article.et_pb_post:hover{
  transform: translateY(-6px);
  box-shadow: var(--nn-shadow);
}

body.page-id-1012 article.et_pb_post .entry-featured-image-url{
  display: block;
  margin: 0 !important;
  overflow: hidden;
}
body.page-id-1012 article.et_pb_post .entry-featured-image-url img{
  display: block;
  width: 100% !important;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 0 !important;
  transition: transform .7s var(--nn-ease);
}
body.page-id-1012 article.et_pb_post:hover .entry-featured-image-url img{ transform: scale(1.055); }

body.page-id-1012 article.et_pb_post h2.entry-title{
  margin: 0 !important;
  padding: 22px 24px 8px !important;
  font-family: var(--nn-display) !important;
  font-size: 23px !important;
  font-weight: 600 !important;
  line-height: 1.22 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
}
body.page-id-1012 article.et_pb_post h2.entry-title a{
  color: inherit !important;
  text-decoration: none !important;
}
body.page-id-1012 article.et_pb_post:hover h2.entry-title a{ color: var(--nn-plum-deep) !important; }

body.page-id-1012 article.et_pb_post p.post-meta{
  margin: 0 !important;
  padding: 0 24px 14px !important;
  font-family: var(--nn-body) !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
  line-height: 1.6 !important;
}
body.page-id-1012 article.et_pb_post p.post-meta a{
  color: var(--nn-muted) !important;
  text-decoration: none !important;
}
body.page-id-1012 article.et_pb_post p.post-meta a:hover{ color: var(--nn-plum) !important; }

body.page-id-1012 article.et_pb_post .post-content{
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding: 0 24px 24px !important;
  margin: 0 !important;
}
body.page-id-1012 article.et_pb_post .post-content p{
  margin: 0 0 20px !important;
  font-size: 14.5px !important;
  line-height: 1.75 !important;
  color: var(--nn-muted) !important;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Divi's own more-link only exists on the one post with a <!--more--> tag, so
   it is hidden and nancy-blog.js adds a consistent button to every card. */
body.page-id-1012 article.et_pb_post .post-content a.more-link{ display: none !important; }

body.page-id-1012 a.nn-readmore{
  align-self: flex-start;
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 26px;
  font-family: var(--nn-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-plum);
  border: 1px solid var(--nn-plum);
  border-radius: 999px;
  text-decoration: none !important;
  transition: background-color .25s var(--nn-ease), transform .25s var(--nn-ease);
}
body.page-id-1012 a.nn-readmore::after{ content: "\2192"; font-size: 13px; line-height: 1; }
body.page-id-1012 a.nn-readmore:hover{
  background: var(--nn-plum-deep);
  border-color: var(--nn-plum-deep);
  color: #fff !important;
  transform: translateX(2px);
}

/* Pagination */
body.page-id-1012 .pagination{
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid var(--nn-line);
}
body.page-id-1012 .pagination a{
  font-family: var(--nn-body) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--nn-plum) !important;
  text-decoration: none !important;
}
body.page-id-1012 .pagination a:hover{ color: var(--nn-gold) !important; }

/* ==========================================================================
   26. CONTACT  (page-id-24)
   The injected <h1> comes from nancy-redesign.php; the page had none.
   ========================================================================== */
body.page-id-24 .et_pb_section_0.et_pb_section{
  background: var(--nn-cream) !important;
  padding-top: 0 !important;
  padding-bottom: 90px !important;
}
body.page-id-24 .et_pb_row_0{ width: 92% !important; max-width: 1180px !important; align-items: start; }

body.page-id-24 .et_pb_text_0 h2{
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  color: var(--nn-gold) !important;
  margin: 0 0 14px !important;
}
body.page-id-24 .et_pb_text_0 p{
  font-size: 16px !important;
  line-height: 1.9 !important;
  color: var(--nn-muted) !important;
}
body.page-id-24 .et_pb_text_0 p:empty{ display: none; }
body.page-id-24 .et_pb_text_0 strong{ color: var(--nn-ink) !important; font-weight: 500 !important; }
body.page-id-24 .et_pb_text_0 a{
  color: var(--nn-plum) !important;
  text-decoration: none;
  border-bottom: 1px solid var(--nn-gold-soft);
}
body.page-id-24 .et_pb_text_0 a:hover{ border-bottom-color: var(--nn-gold); }

/* Form card */
body.page-id-24 .et_pb_contact_form_container{
  background: #fff;
  border: 1px solid var(--nn-line);
  border-radius: 24px;
  padding: 34px 30px 30px !important;
  box-shadow: var(--nn-shadow);
}
body.page-id-24 .et_pb_contact_form_container h1,
body.page-id-24 .et_pb_contact_main_title{
  font-family: var(--nn-display) !important;
  font-size: 26px !important;
  font-weight: 500 !important;
  color: var(--nn-plum) !important;
  margin: 0 0 20px !important;
}
body.page-id-24 .et_pb_contact_field{ padding: 0 0 16px !important; }
body.page-id-24 .et_pb_contact_form input.input,
body.page-id-24 .et_pb_contact_form textarea.et_pb_contact_message,
body.page-id-24 .et_pb_contact p input.input,
body.page-id-24 .et_pb_contact p textarea{
  width: 100% !important;
  box-sizing: border-box;
  font-family: var(--nn-body) !important;
  font-size: 15px !important;
  color: var(--nn-ink) !important;
  background: var(--nn-cream) !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 14px !important;
  padding: 15px 18px !important;
  box-shadow: none !important;
  transition: border-color .25s var(--nn-ease), box-shadow .25s var(--nn-ease);
}
body.page-id-24 .et_pb_contact_form textarea.et_pb_contact_message{ min-height: 150px; resize: vertical; }
body.page-id-24 .et_pb_contact_form input.input:focus,
body.page-id-24 .et_pb_contact_form textarea:focus{
  background: #fff !important;
  border-color: var(--nn-plum) !important;
  box-shadow: 0 0 0 4px rgba(110,27,60,.12) !important;
  outline: none !important;
}
body.page-id-24 .et_pb_contact_form input.input::placeholder,
body.page-id-24 .et_pb_contact_form textarea::placeholder{ color: #A79AA0 !important; opacity: 1; }

/* Captcha row */
body.page-id-24 .et_pb_contact_right{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 0 18px !important;
}
body.page-id-24 .et_pb_contact_right p{ margin: 0 !important; }
body.page-id-24 input.et_pb_contact_captcha{
  width: 68px !important;
  text-align: center !important;
  background: var(--nn-cream) !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 999px !important;
  padding: 12px 8px !important;
}
body.page-id-24 .et_pb_contact_captcha_question{
  font-family: var(--nn-body) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--nn-muted) !important;
}

body.page-id-24 button.et_pb_contact_submit.et_pb_button{
  width: 100%;
  justify-content: center;
  margin-top: 4px !important;
}

/* ==========================================================================
   27. PAGE RESPONSIVE (about / blog / contact)
   ========================================================================== */
@media only screen and (max-width: 1100px){
  body.page-id-1012 .et_pb_blog_0 .et_pb_ajax_pagination_container{ grid-template-columns: 1fr 1fr; }
}

@media only screen and (max-width: 980px){
  body.page-id-22 h1.entry-title.main_title,
  body.page-id-1012 .et_pb_text_0 h1{ font-size: 40px !important; }
  body.page-id-22 h1.entry-title.main_title{ padding: 52px 20px 40px !important; margin-bottom: 40px !important; }
  body.page-id-1012 .et_pb_text_0 .et_pb_text_inner{ padding: 50px 20px 38px; }
  body.page-id-22 .entry-content p.wp-block-paragraph:nth-of-type(2){ font-size: 20px !important; }
  body.page-id-24 .et_pb_section_0.et_pb_section,
  body.page-id-1012 .et_pb_section_0.et_pb_section{ padding-bottom: 60px !important; }
  body.page-id-24 .et_pb_contact_form_container{ margin-top: 26px; }
}

@media only screen and (max-width: 767px){
  body.page-id-22 h1.entry-title.main_title,
  body.page-id-1012 .et_pb_text_0 h1{ font-size: 31px !important; }
  body.page-id-22 .entry-content{ padding: 0 18px 60px; }
  body.page-id-22 .entry-content p.wp-block-paragraph{ font-size: 16px !important; }
  body.page-id-22 .wp-block-columns{ gap: 14px !important; }
  body.page-id-1012 .et_pb_blog_0 .et_pb_ajax_pagination_container{ grid-template-columns: 1fr; gap: 24px; }
  body.page-id-1012 article.et_pb_post h2.entry-title{ font-size: 21px !important; }
  body.page-id-24 .et_pb_contact_form_container{ padding: 24px 18px 22px !important; border-radius: 20px; }
}

/* Injected hero for pages that had no h1 (currently Contact). */
.nn-page-hero{
  margin: 0 0 50px;
  padding: 70px 24px 48px;
  text-align: center;
  background-image:
    radial-gradient(120% 90% at 10% 0%,  #FDF6F2 0%, rgba(253,246,242,0) 58%),
    radial-gradient(95% 85% at 100% 10%, var(--nn-blush-2) 0%, rgba(245,225,230,0) 62%),
    linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 55%, var(--nn-blush) 100%);
  border-bottom: 1px solid var(--nn-gold-soft);
}
.nn-page-hero__eyebrow{
  margin: 0 0 16px !important;
  font-family: var(--nn-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .3em !important;
  text-transform: uppercase;
  color: var(--nn-gold) !important;
  line-height: 1.4 !important;
}
body .nn-page-hero h1.nn-page-hero__title{
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--nn-display) !important;
  font-size: 58px !important;
  font-weight: 500 !important;
  line-height: 1.04 !important;
  letter-spacing: -.01em !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
}
body .nn-page-hero h1.nn-page-hero__title::after{
  content: "";
  display: block;
  width: 72px;
  height: 2px;
  margin: 22px auto 0;
  background: linear-gradient(90deg, transparent, var(--nn-gold), transparent);
}
@media only screen and (max-width: 980px){
  .nn-page-hero{ padding: 50px 20px 36px; margin-bottom: 36px; }
  body .nn-page-hero h1.nn-page-hero__title{ font-size: 40px !important; }
}
@media only screen and (max-width: 767px){
  body .nn-page-hero h1.nn-page-hero__title{ font-size: 31px !important; }
}

/* ==========================================================================
   28. SINGLE BLOG POST  (body.single-post)
   --------------------------------------------------------------------------
   Two columns: a sticky contents rail on the left, the article on the right.
   The rail is built by nancy-post.js from the article's own h2/h3 headings
   (which ship with no ids, so the script generates them).
   The "Shop now" call to action at the foot is server-rendered by
   nancy-redesign.php, so it is a real crawlable internal link.
   ========================================================================== */

/* #sidebar here holds the same empty gallery widget as the product pages —
   zero images — so the space goes to the contents rail instead. */
body.single-post #sidebar{ display: none !important; }
body.single-post #left-area{
  width: 100% !important;
  float: none !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}
body.single-post #main-content .container{ padding-top: 0 !important; }
body.single-post #content-area{ max-width: 1240px; margin: 0 auto; }

/* --- 28.1 Title band -------------------------------------------------------- */
body.single-post .et_post_meta_wrapper{
  margin: 0 0 46px !important;
  padding: 66px 24px 46px !important;
  text-align: center;
  background-image:
    radial-gradient(120% 90% at 10% 0%,  #FDF6F2 0%, rgba(253,246,242,0) 58%),
    radial-gradient(95% 85% at 100% 10%, var(--nn-blush-2) 0%, rgba(245,225,230,0) 62%),
    linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 55%, var(--nn-blush) 100%);
  border-bottom: 1px solid var(--nn-gold-soft);
}
body.single-post h1.entry-title{
  margin: 0 auto 16px !important;
  padding: 0 !important;
  max-width: 20ch;
  font-family: var(--nn-display) !important;
  font-size: 50px !important;
  font-weight: 500 !important;
  line-height: 1.08 !important;
  letter-spacing: -.01em !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
}
body.single-post .et_post_meta_wrapper p.post-meta{
  margin: 0 auto !important;
  font-family: var(--nn-body) !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
}
body.single-post .et_post_meta_wrapper p.post-meta a{
  color: var(--nn-muted) !important;
  text-decoration: none !important;
}
body.single-post .et_post_meta_wrapper p.post-meta a:hover{ color: var(--nn-plum) !important; }
/* Featured image sits below the meta, inside the band */
body.single-post .et_post_meta_wrapper > img{
  display: block;
  width: 100% !important;
  height: auto !important;
  max-width: 880px;
  margin: 32px auto 0 !important;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 20px !important;
  box-shadow: var(--nn-shadow-lg);
}

/* --- 28.2 Two-column shell --------------------------------------------------- */
body.single-post article.et_pb_post{
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 56px;
  align-items: start;
  padding: 0 24px 80px;
}
/* Explicit placement rather than auto-flow: the rail is injected at runtime,
   so on a post without enough headings to warrant one the remaining items
   must still land in the right cells. */
body.single-post article.et_pb_post > .et_post_meta_wrapper{
  grid-column: 1 / -1;
  grid-row: 1;
  margin-left: -24px !important;
  margin-right: -24px !important;
}
body.single-post article.et_pb_post > .nn-toc{ grid-column: 1; grid-row: 2; }
body.single-post article.et_pb_post > .entry-content{ grid-column: 2; grid-row: 2; min-width: 0; }
/* No rail (fewer than three headings): let the article use the full width. */
body.single-post article.et_pb_post:not(:has(.nn-toc)){ grid-template-columns: minmax(0, 1fr); }
body.single-post article.et_pb_post:not(:has(.nn-toc)) > .entry-content{
  grid-column: 1;
  margin: 0 auto;
}

/* --- 28.3 Contents rail ------------------------------------------------------ */
.nn-toc{
  position: sticky;
  top: 104px;
  align-self: start;
  padding: 24px 20px 22px;
  background: #fff;
  border: 1px solid var(--nn-line);
  border-radius: 20px;
  box-shadow: 0 10px 30px -24px rgba(74,16,40,.4);
  max-height: calc(100vh - 140px);
  overflow-y: auto;
}
.nn-toc__title{
  margin: 0 0 14px !important;
  padding: 0 0 12px !important;
  border-bottom: 1px solid var(--nn-line);
  font-family: var(--nn-body) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  color: var(--nn-gold) !important;
}
.nn-toc ol{
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  counter-reset: nn-toc;
}
.nn-toc li{
  list-style: none !important;
  margin: 0 0 2px !important;
  padding: 0 !important;
}
.nn-toc a{
  display: block;
  padding: 8px 10px 8px 12px;
  border-left: 2px solid transparent;
  border-radius: 0 8px 8px 0;
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: var(--nn-muted) !important;
  text-decoration: none !important;
  transition: color .2s var(--nn-ease),
              background-color .2s var(--nn-ease),
              border-color .2s var(--nn-ease);
}
.nn-toc a:hover{
  color: var(--nn-plum) !important;
  background: var(--nn-blush);
  border-left-color: var(--nn-gold-soft);
}
.nn-toc a.is-active{
  color: var(--nn-plum) !important;
  font-weight: 600 !important;
  background: var(--nn-blush);
  border-left-color: var(--nn-plum);
}
.nn-toc li.nn-toc--h2 > a{
  font-weight: 600 !important;
  color: var(--nn-ink) !important;
}

/* Anchor targets clear the fixed header when jumped to */
body.single-post .entry-content h2[id],
body.single-post .entry-content h3[id]{ scroll-margin-top: 104px; }

/* --- 28.4 Article typography -------------------------------------------------- */
body.single-post .entry-content{ max-width: 760px; }
body.single-post .entry-content h2.wp-block-heading{
  margin: 0 0 22px !important;
  padding: 0 !important;
  font-family: var(--nn-display) !important;
  font-size: 34px !important;
  font-weight: 600 !important;
  line-height: 1.18 !important;
  color: var(--nn-plum) !important;
}
body.single-post .entry-content h3.wp-block-heading{
  margin: 42px 0 14px !important;
  padding: 0 0 12px !important;
  border-bottom: 1px solid var(--nn-line);
  font-family: var(--nn-display) !important;
  font-size: 26px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  color: var(--nn-plum) !important;
}
body.single-post .entry-content h2 strong,
body.single-post .entry-content h3 strong{
  font-family: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
}
body.single-post .entry-content p{
  margin: 0 0 20px !important;
  font-family: var(--nn-body) !important;
  font-size: 17px !important;
  line-height: 1.9 !important;
  color: var(--nn-ink) !important;
}
body.single-post .entry-content strong{ font-weight: 600 !important; color: var(--nn-plum-deep) !important; }
body.single-post .entry-content a{
  color: var(--nn-plum) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--nn-gold-soft);
}
body.single-post .entry-content a:hover{ text-decoration-color: var(--nn-plum); }
body.single-post .entry-content ul,
body.single-post .entry-content ol{
  margin: 0 0 22px !important;
  padding-left: 1.25em !important;
}
body.single-post .entry-content li{
  margin-bottom: 10px !important;
  font-size: 17px !important;
  line-height: 1.85 !important;
  color: var(--nn-ink) !important;
}
body.single-post .entry-content img{
  display: block;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  margin: 28px 0 !important;
  border-radius: 18px !important;
  object-fit: cover;
  box-shadow: var(--nn-shadow);
}

/* --- 28.5 Shop now call to action --------------------------------------------- */
.nn-post-cta{
  margin: 54px 0 0;
  padding: 44px 36px;
  text-align: center;
  border-radius: 24px;
  background: linear-gradient(140deg, var(--nn-blush) 0%, #FFF7F4 60%, var(--nn-blush-2) 100%);
  border: 1px solid var(--nn-line);
  box-shadow: var(--nn-shadow);
}
.nn-post-cta__eyebrow{
  margin: 0 0 10px !important;
  font-family: var(--nn-body) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .24em !important;
  text-transform: uppercase;
  color: var(--nn-gold) !important;
}
.nn-post-cta__title{
  margin: 0 0 12px !important;
  font-family: var(--nn-display) !important;
  font-size: 30px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: var(--nn-plum) !important;
}
.nn-post-cta__sub{
  margin: 0 auto 24px !important;
  max-width: 46ch;
  font-family: var(--nn-body) !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
  color: var(--nn-muted) !important;
}
body .nn-post-cta a.nn-post-cta__btn{
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 16px 40px;
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-plum);
  border: 1px solid var(--nn-plum);
  border-radius: 999px;
  text-decoration: none !important;
  box-shadow: 0 14px 30px -16px rgba(110,27,60,.55);
  transition: background-color .25s var(--nn-ease), transform .25s var(--nn-ease);
}
body .nn-post-cta a.nn-post-cta__btn::after{ content: "\2192"; font-size: 14px; line-height: 1; }
body .nn-post-cta a.nn-post-cta__btn:hover{
  background: var(--nn-plum-deep);
  border-color: var(--nn-plum-deep);
  color: #fff !important;
  transform: translateY(-2px);
}

/* --- 28.6 Responsive ----------------------------------------------------------- */
@media only screen and (max-width: 1100px){
  body.single-post article.et_pb_post{ grid-template-columns: 210px minmax(0, 1fr); gap: 36px; }
}

@media only screen and (max-width: 980px){
  body.single-post article.et_pb_post{ grid-template-columns: 1fr; gap: 0; padding-bottom: 56px; }
  /* grid-row MUST be reset here, not just grid-column. The desktop rules put
     the rail and the article in row 2 of separate columns; collapsing to one
     column without re-rowing leaves both in the same cell, where they render
     stacked on top of each other. */
  body.single-post article.et_pb_post > .nn-toc{
    grid-column: 1;
    grid-row: 2;
    position: static;
    max-height: none;
    margin-bottom: 32px;
  }
  body.single-post article.et_pb_post > .entry-content{
    grid-column: 1;
    grid-row: 3;
    max-width: none;
  }
  body.single-post h1.entry-title{ font-size: 34px !important; max-width: none; }
  body.single-post .et_post_meta_wrapper{ padding: 46px 20px 36px !important; margin-bottom: 32px !important; }
  body.single-post .entry-content h2.wp-block-heading{ font-size: 27px !important; }
  body.single-post .entry-content h3.wp-block-heading{ font-size: 22px !important; margin-top: 34px !important; }
}

@media only screen and (max-width: 767px){
  body.single-post h1.entry-title{ font-size: 27px !important; }
  body.single-post article.et_pb_post{ padding-left: 18px; padding-right: 18px; }
  body.single-post article.et_pb_post > .et_post_meta_wrapper{ margin-left: -18px !important; margin-right: -18px !important; }
  body.single-post .entry-content p,
  body.single-post .entry-content li{ font-size: 16px !important; }
  .nn-post-cta{ padding: 32px 20px; border-radius: 20px; }
  .nn-post-cta__title{ font-size: 24px !important; }
  body .nn-post-cta a.nn-post-cta__btn{ padding: 14px 28px; font-size: 11px !important; }
}

/* ==========================================================================
   29. PRODUCTS BUILT WITH THE DIVI BUILDER
   --------------------------------------------------------------------------
   6 of 56 products have _et_pb_use_builder = on (789/790/618/535/110/89).
   Those render <div class="et_pb_post product"> whose .clearfix holds only
   .summary and a payment notice — there is no woocommerce-product-gallery —
   and the real content sits below in #et-boc Divi sections.

   Section 16's two-column grid assumes a gallery, so on these six the summary
   was being squeezed into one half of an empty two-column layout. Detect the
   missing gallery with :has() and fall back to a single column.

   (:has() is safe here: this file is enqueued, so WordPress's CSSLint — which
   rejects it and blocks saving — is no longer in the path.)
   ========================================================================== */
body.single-product div.product > .clearfix:not(:has(.woocommerce-product-gallery)){
  display: block !important;
}
body.single-product div.product > .clearfix:not(:has(.woocommerce-product-gallery)) .summary.entry-summary{
  max-width: 760px;
  margin: 0 auto !important;
  text-align: center;
}
body.single-product div.product > .clearfix:not(:has(.woocommerce-product-gallery)) .summary form.cart{
  justify-content: center;
  max-width: 520px;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.single-product div.product > .clearfix:not(:has(.woocommerce-product-gallery)) .summary .yith-wcwl-add-to-wishlist{
  text-align: center;
}

/* Empty payment placeholder leaves a gap on these layouts */
body.single-product #payment-method-message:empty{ display: none !important; }

/* Give the builder content below the summary the same measure and rhythm as
   the rest of the site. */
body.single-product .et_builder_inner_content.product .et_pb_section{
  background-color: transparent !important;
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}
body.single-product .et_builder_inner_content.product .et_pb_row{
  width: 100% !important;
  max-width: 900px !important;
}
body.single-product .et_builder_inner_content.product .et_pb_text_inner p{
  font-size: 16.5px !important;
  line-height: 1.85 !important;
  color: var(--nn-ink) !important;
}
body.single-product .et_builder_inner_content.product .et_pb_text_inner h2,
body.single-product .et_builder_inner_content.product .et_pb_text_inner h3{
  font-family: var(--nn-display) !important;
  color: var(--nn-plum) !important;
}

/* ==========================================================================
   30. ROUND-UP FIXES
   ========================================================================== */

/* --- 30.1 Post title band: gap under the header, rounded corners -----------
   It was bleeding to the article edges via negative margins, so it ran hard
   against the fixed header with square corners. Inset it instead.
   (#page-container already carries padding-top:80px from
   .et_fixed_nav.et_show_nav, so only a small extra gap is needed here.)
   -------------------------------------------------------------------------- */
body.single-post article.et_pb_post > .et_post_meta_wrapper{
  margin: 22px 0 46px !important;
  padding: 58px 36px 46px !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 28px !important;
  overflow: hidden;
}

/* --- 30.2 Centre every line in the Shop now panel --------------------------
   .nn-post-cta sits inside .entry-content, and
     body.single-post .entry-content p{ margin: 0 0 20px !important }
   outweighs the panel's own `margin: 0 auto`, so the narrower sub-paragraph
   was pinned left instead of centred. Restore the auto margins.
   -------------------------------------------------------------------------- */
body.single-post .entry-content .nn-post-cta p,
body.single-post .entry-content .nn-post-cta .nn-post-cta__sub{
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}
body.single-post .entry-content .nn-post-cta{ text-align: center !important; }

/* --- 30.3 Drop the Gutenberg separator rules -------------------------------
   9 <hr class="wp-block-separator"> across the posts. The h3 rules already
   give each section its own rule, so these read as clutter. Their spacing is
   handed back to the following heading.
   -------------------------------------------------------------------------- */
body.single-post .entry-content hr.wp-block-separator,
body.single-post .entry-content hr{ display: none !important; }

/* --- 30.4 Shop sort dropdown ------------------------------------------------
   The closed control is fully styled in section 22.2. The open list is drawn
   by the operating system, not the page, so CSS reach is limited: background
   and text colour land in Chrome and Firefox on Windows, and the highlight
   can be nudged in Firefox via :checked. A fully styled list would need a
   custom dropdown component rather than a native <select>.
   -------------------------------------------------------------------------- */
body.woocommerce-shop form.woocommerce-ordering select.orderby{
  color: var(--nn-plum) !important;
  font-weight: 600 !important;
}
body.woocommerce-shop form.woocommerce-ordering select.orderby option{
  background-color: #fff;
  color: var(--nn-ink);
  font-family: var(--nn-body);
  font-size: 14px;
  font-weight: 400;
  padding: 10px 14px;
}
body.woocommerce-shop form.woocommerce-ordering select.orderby option:checked,
body.woocommerce-shop form.woocommerce-ordering select.orderby option:hover{
  box-shadow: inset 0 0 0 2em var(--nn-blush);
  background-color: var(--nn-blush);
  color: var(--nn-plum);
  font-weight: 600;
}

@media only screen and (max-width: 767px){
  body.single-post article.et_pb_post > .et_post_meta_wrapper{
    padding: 40px 20px 34px !important;
    border-radius: 20px !important;
    margin: 14px 0 32px !important;
  }
}

/* ==========================================================================
   31. CHECKOUT, SECOND PASS
   Line thumbnails, a mobile-first ordering, and tap-target sizing.
   ========================================================================== */

/* --- 31.1 Order line with thumbnail ----------------------------------------
   nancy_redesign_checkout_item_thumb() puts an <img.nn-co-thumb> before the
   name. The quantity <strong> is printed by WooCommerce after both, so the
   cell is laid out as a flex row to keep all three on one line.
   -------------------------------------------------------------------------- */
body.woocommerce-checkout #order_review table.shop_table td.product-name{
  display: flex !important;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 14px 14px 14px 0 !important;
}
body.woocommerce-checkout #order_review img.nn-co-thumb{
  width: 52px !important;
  height: 52px !important;
  flex: 0 0 auto;
  object-fit: cover;
  border-radius: 12px !important;
  border: 1px solid var(--nn-line);
  background: var(--nn-blush);
}
body.woocommerce-checkout #order_review .nn-co-name{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 13.5px !important;
  line-height: 1.5 !important;
  color: var(--nn-ink) !important;
}
body.woocommerce-checkout #order_review .nn-co-name a{
  color: var(--nn-ink) !important;
  text-decoration: none !important;
}
body.woocommerce-checkout #order_review td.product-name .product-quantity{
  flex: 0 0 auto;
  font-size: 12px !important;
  color: var(--nn-muted) !important;
}

/* --- 31.2 Mobile summary toggle --------------------------------------------- */
.nn-co-toggle{
  display: none;           /* desktop: summary is always open */
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 14px;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid var(--nn-line);
  border-radius: 16px;
  cursor: pointer;
  box-shadow: 0 10px 30px -24px rgba(74,16,40,.4);
}
.nn-co-toggle__label{
  font-family: var(--nn-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--nn-plum);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.nn-co-toggle__label::after{
  content: "\25BE";
  font-size: 11px;
  transition: transform .25s var(--nn-ease);
}
.nn-co-toggle.is-open .nn-co-toggle__label::after{ transform: rotate(180deg); }
.nn-co-toggle__total{
  font-family: var(--nn-body);
  font-size: 16px;
  font-weight: 600;
  color: var(--nn-plum);
}

/* --- 31.3 Comfortable tap targets -------------------------------------------- */
body.woocommerce-checkout ul#shipping_method li,
body.woocommerce-checkout #payment li.wc_payment_method > label{
  min-height: 46px;
}
body.woocommerce-checkout ul#shipping_method label,
body.woocommerce-checkout .woocommerce-form__label-for-checkbox{
  padding: 4px 0;
}
body.woocommerce-checkout ul#shipping_method input.shipping_method,
body.woocommerce-checkout #payment li.wc_payment_method > input[type="radio"],
body.woocommerce-checkout .woocommerce-form__input-checkbox{
  width: 18px;
  height: 18px;
}
/* Payment gateway logos were rendering at wildly different heights */
body.woocommerce-checkout #payment li.wc_payment_method img{
  max-height: 22px !important;
  width: auto !important;
  margin-left: auto;
}

/* --- 31.4 Mobile: summary first, then the form ------------------------------- */
@media only screen and (max-width: 980px){
  body.woocommerce-checkout form.checkout.woocommerce-checkout{
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }
  body.woocommerce-checkout form.checkout > *{ grid-column: 1; }
  body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup{ grid-row: 1; }
  body.woocommerce-checkout form.checkout > #order_review_heading{ grid-row: 2; }
  body.woocommerce-checkout form.checkout > #order_review{ grid-row: 3; }
  body.woocommerce-checkout form.checkout > .wcpay-express-checkout-wrapper{ grid-row: 4; }
  body.woocommerce-checkout form.checkout > #customer_details,
  body.woocommerce-checkout form.checkout > .col2-set{ grid-row: 5; }

  /* The heading is replaced by the toggle button on mobile */
  body.woocommerce-checkout #order_review_heading{
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .nn-co-toggle{ display: flex; }

  /* Collapsed until opened. max-height rather than display so it animates. */
  body.woocommerce-checkout #order_review{
    position: static !important;
    max-height: 0;
    overflow: hidden;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-width: 0 !important;
    opacity: 0;
    margin-bottom: 0;
    transition: max-height .3s var(--nn-ease), opacity .25s var(--nn-ease);
  }
  body.woocommerce-checkout #order_review.is-open{
    max-height: 2200px;
    opacity: 1;
    padding: 22px 20px 24px !important;
    border-width: 1px !important;
    margin-bottom: 26px;
  }
  /* No JS: never leave the summary unreachable. */
  body.woocommerce-checkout.no-js #order_review{
    max-height: none;
    opacity: 1;
    padding: 22px 20px 24px !important;
    border-width: 1px !important;
  }
}

@media only screen and (max-width: 767px){
  body.woocommerce-checkout .et_pb_row_0{ width: 94% !important; }
  body.woocommerce-checkout #order_review img.nn-co-thumb{ width: 46px !important; height: 46px !important; }
  body.woocommerce-checkout .woocommerce > form.checkout::before{ font-size: 26px; margin-bottom: 20px; }

  /* 16px keeps iOS from zooming the viewport when a field is focused */
  body.woocommerce-checkout .woocommerce form .form-row input.input-text,
  body.woocommerce-checkout p.form-row input.input-text,
  body.woocommerce-checkout p.form-row textarea,
  body.woocommerce-checkout p.form-row select,
  body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered{
    font-size: 16px !important;
  }
  body.woocommerce-checkout #place_order,
  body.woocommerce-checkout button#place_order.button.alt{ height: 54px; }
}

/* ==========================================================================
   32. PRODUCT DESCRIPTION TYPOGRAPHY (all product pages)
   --------------------------------------------------------------------------
   Descriptions are written in two shapes across the catalogue:
     47 of 56 use  <h3>Features</h3><p>…</p>
     the rest use  <p><strong>Features</strong><br>…</p>
   Both are styled to the same spec-sheet look so every product reads alike,
   whichever way its copy was entered.
   ========================================================================== */

body.single-product #tab-description,
body.single-product .woocommerce-Tabs-panel--description{
  max-width: 820px;
}

/* Opening paragraph carries the pitch, so give it a touch more weight. */
body.single-product #tab-description > p:first-of-type{
  font-size: 17.5px !important;
  line-height: 1.85 !important;
  color: var(--nn-ink) !important;
  margin-bottom: 22px !important;
}

body.single-product #tab-description p{
  font-family: var(--nn-body) !important;
  font-size: 16px !important;
  line-height: 1.88 !important;
  color: var(--nn-ink) !important;
  margin: 0 0 18px !important;
}
body.single-product #tab-description p:empty{ display: none; }

/* Shape A: real <h3> section headings (the common case). */
body.single-product #tab-description h3,
body.single-product .woocommerce-Tabs-panel--description h3{
  margin: 40px 0 12px !important;
  padding: 22px 0 0 !important;
  border-top: 1px solid var(--nn-line);
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .2em !important;
  line-height: 1.5 !important;
  text-transform: uppercase !important;
  color: var(--nn-plum) !important;
}
body.single-product #tab-description h3:first-child{
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 0;
}
/* A small gold tick above each section label */
body.single-product #tab-description h3::before{
  content: "";
  display: block;
  width: 26px;
  height: 2px;
  margin-bottom: 12px;
  background: var(--nn-gold);
}
body.single-product #tab-description h3:first-child::before{ margin-top: 0; }

/* Shape B: the label is a leading <strong> inside the paragraph. Matched to
   the h3 treatment above so the two shapes are indistinguishable. */
body.single-product #tab-description p > strong:first-child{
  display: block;
  margin: 28px 0 10px;
  padding-top: 20px;
  border-top: 1px solid var(--nn-line);
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  color: var(--nn-plum) !important;
}
body.single-product #tab-description p > strong:first-child + br{ display: none; }

/* Inline emphasis inside body copy should not inherit the label styling. */
body.single-product #tab-description p strong:not(:first-child){
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  font-size: inherit !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  font-weight: 600 !important;
  color: var(--nn-plum-deep) !important;
}
body.single-product #tab-description em,
body.single-product #tab-description i{ font-style: italic; color: inherit; }

body.single-product #tab-description ul{
  margin: 0 0 20px !important;
  padding-left: 0 !important;
  list-style: none !important;
}
body.single-product #tab-description ul > li{
  position: relative;
  margin: 0 0 10px !important;
  padding-left: 24px !important;
  list-style: none !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
  color: var(--nn-ink) !important;
}
body.single-product #tab-description ul > li::before{
  content: "";
  position: absolute;
  left: 2px;
  top: .72em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nn-gold);
}

/* Short description in the summary column */
body.single-product .woocommerce-product-details__short-description p{
  font-size: 15.5px !important;
  line-height: 1.82 !important;
  color: var(--nn-muted) !important;
}
body.single-product .woocommerce-product-details__short-description em{ font-style: italic; }

/* ==========================================================================
   33. RECENTLY VIEWED CAROUSEL
   Markup built by nancy-recently-viewed.js from localStorage.
   ========================================================================== */
.nn-rv{
  margin: 70px 0 0;
  padding-top: 56px;
  /* The carousel is the last thing before the footer, so it needs its own
     bottom room — the product page's padding sits on div.product, which this
     section is inserted after. */
  padding-bottom: 92px;
  border-top: 1px solid var(--nn-line);
}
.nn-rv__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 26px;
}
body .nn-rv h2.nn-rv__heading{
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--nn-display) !important;
  font-size: 32px !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
}
.nn-rv__nav{ display: flex; gap: 8px; flex: 0 0 auto; }
.nn-rv__btn{
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  line-height: 1;
  color: var(--nn-plum) !important;
  background: #fff;
  border: 1px solid var(--nn-line) !important;
  border-radius: 50% !important;
  cursor: pointer;
  padding: 0 !important;
  transition: background-color .25s var(--nn-ease),
              color .25s var(--nn-ease),
              opacity .25s var(--nn-ease);
}
.nn-rv__btn:hover:not(:disabled){
  background: var(--nn-plum);
  border-color: var(--nn-plum) !important;
  color: #fff !important;
}
.nn-rv__btn:disabled{ opacity: .3; cursor: default; }
.nn-rv__btn::after{ display: none !important; }

.nn-rv__track{
  display: flex;
  gap: 20px;
  margin: 0 !important;
  padding: 4px 0 18px !important;
  list-style: none !important;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: var(--nn-gold-soft) transparent;
  -webkit-overflow-scrolling: touch;
}
.nn-rv__track::-webkit-scrollbar{ height: 6px; }
.nn-rv__track::-webkit-scrollbar-thumb{
  background: var(--nn-gold-soft);
  border-radius: 999px;
}
.nn-rv__item{
  flex: 0 0 auto;
  width: 200px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  scroll-snap-align: start;
}
.nn-rv__link{
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  color: inherit !important;
}
.nn-rv__media{
  display: block;
  border-radius: 16px;
  overflow: hidden;
  background: var(--nn-blush);
  box-shadow: 0 10px 30px -24px rgba(74,16,40,.45);
  transition: transform .35s var(--nn-ease), box-shadow .35s var(--nn-ease);
}
.nn-rv__media img{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 0 !important;
}
.nn-rv__link:hover .nn-rv__media{
  transform: translateY(-4px);
  box-shadow: var(--nn-shadow);
}
.nn-rv__title{
  display: block;
  margin-top: 14px;
  font-family: var(--nn-body);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  line-height: 1.6;
  color: var(--nn-ink);
}
.nn-rv__link:hover .nn-rv__title{ color: var(--nn-plum); }
.nn-rv__price{
  display: block;
  margin-top: 6px;
  font-family: var(--nn-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--nn-plum);
}
.nn-rv__price del{
  font-size: 12px;
  font-weight: 400;
  color: var(--nn-muted);
  margin-right: 6px;
  text-decoration: line-through;
}
.nn-rv__price ins{ text-decoration: none; background: transparent; }
.nn-rv__price .woocommerce-Price-amount{ display: inline-block !important; }

@media only screen and (max-width: 767px){
  .nn-rv{ margin-top: 48px; padding-top: 40px; padding-bottom: 60px; }
  body .nn-rv h2.nn-rv__heading{ font-size: 24px !important; }
  .nn-rv__item{ width: 150px; }
  .nn-rv__track{ gap: 14px; }
  /* Arrows are redundant next to a swipe */
  .nn-rv__nav{ display: none; }
}

@media (prefers-reduced-motion: reduce){
  .nn-rv__track{ scroll-behavior: auto; }
  .nn-rv__link:hover .nn-rv__media{ transform: none; }
}

/* ==========================================================================
   34. SHORT PAGES: KEEP THE FOOTER AT THE BOTTOM (site-wide)
   --------------------------------------------------------------------------
   On a page with little content the document ends above the fold and the
   body background shows as a band of cream below the footer. #main-footer
   sits inside #et-main-area, so making that a column flexbox with a viewport
   minimum pushes the footer down without restructuring #page-container
   (which is the parent of the fixed header and riskier to turn into a flex
   container). 80px is the padding-top Divi puts on #page-container for the
   fixed nav.
   ========================================================================== */
body #et-main-area{
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px);
}
body #et-main-area > #main-content{ flex: 1 0 auto; }
body #et-main-area > #main-footer{ flex-shrink: 0; margin-top: auto; }

/* ==========================================================================
   35. WISHLIST  (page-id-64, body.woocommerce-wishlist)
   ========================================================================== */
body.woocommerce-wishlist #sidebar{ display: none !important; }
body.woocommerce-wishlist #left-area{
  width: 100% !important;
  float: none !important;
  padding-right: 0 !important;
}
body.woocommerce-wishlist #main-content .container{ width: 100% !important; max-width: none !important; padding-top: 0 !important; }

/* Title band, matching About and the single post */
body.woocommerce-wishlist h1.entry-title.main_title{
  margin: 0 0 46px !important;
  padding: 66px 24px 46px !important;
  text-align: center;
  font-family: var(--nn-display) !important;
  font-size: 52px !important;
  font-weight: 500 !important;
  line-height: 1.06 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
  background-image:
    radial-gradient(120% 90% at 10% 0%,  #FDF6F2 0%, rgba(253,246,242,0) 58%),
    radial-gradient(95% 85% at 100% 10%, var(--nn-blush-2) 0%, rgba(245,225,230,0) 62%),
    linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 55%, var(--nn-blush) 100%);
  border-bottom: 1px solid var(--nn-gold-soft);
}
body.woocommerce-wishlist h1.entry-title.main_title::before{
  content: "Saved for later";
  display: block;
  margin-bottom: 14px;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--nn-gold);
}

body.woocommerce-wishlist .entry-content{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px 90px;
}
/* The plugin's own "My wishlist" heading duplicates the page title. */
body.woocommerce-wishlist .wishlist-title h2{ display: none !important; }
body.woocommerce-wishlist .wishlist-title-container{ margin-bottom: 0 !important; }

/* --- 35.1 The table as a card ------------------------------------------------ */
body.woocommerce-wishlist table.wishlist_table{
  width: 100%;
  margin: 0 0 40px !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 20px !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 30px -24px rgba(74,16,40,.4);
  font-size: 100% !important;
}
body.woocommerce-wishlist table.wishlist_table thead th{
  padding: 16px 14px !important;
  background: var(--nn-blush);
  border: 0 !important;
  border-bottom: 1px solid var(--nn-line) !important;
  font-family: var(--nn-body) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
  text-align: left;
}
body.woocommerce-wishlist table.wishlist_table tbody td{
  padding: 18px 14px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--nn-line) !important;
  vertical-align: middle !important;
  background: transparent !important;
}
body.woocommerce-wishlist table.wishlist_table tbody tr:last-child td{ border-bottom: 0 !important; }
body.woocommerce-wishlist table.wishlist_table tbody tr:hover td{ background: rgba(251,241,243,.55) !important; }

body.woocommerce-wishlist table.wishlist_table td.product-thumbnail{ width: 92px; }
body.woocommerce-wishlist table.wishlist_table td.product-thumbnail img{
  display: block;
  width: 72px !important;
  height: 72px !important;
  object-fit: cover;
  border-radius: 14px !important;
  border: 1px solid var(--nn-line);
  background: var(--nn-blush);
}

body.woocommerce-wishlist table.wishlist_table td.product-name a{
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  line-height: 1.6 !important;
  color: var(--nn-ink) !important;
  text-decoration: none !important;
  transition: color .25s var(--nn-ease);
}
body.woocommerce-wishlist table.wishlist_table td.product-name a:hover{ color: var(--nn-plum) !important; }

body.woocommerce-wishlist table.wishlist_table td.product-price{ white-space: nowrap; }
body.woocommerce-wishlist table.wishlist_table td.product-price del .amount,
body.woocommerce-wishlist table.wishlist_table td.product-price del bdi{
  font-size: 12.5px !important;
  font-weight: 400 !important;
  color: var(--nn-muted) !important;
}
body.woocommerce-wishlist table.wishlist_table td.product-price ins{
  text-decoration: none !important;
  background: transparent !important;
  margin-left: 6px;
}
body.woocommerce-wishlist table.wishlist_table td.product-price ins .amount,
body.woocommerce-wishlist table.wishlist_table td.product-price ins bdi{
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--nn-plum) !important;
}

/* Stock status as a pill */
body.woocommerce-wishlist td.product-stock-status span.wishlist-in-stock,
body.woocommerce-wishlist td.product-stock-status span.wishlist-out-of-stock{
  display: inline-block;
  padding: 6px 14px;
  border-radius: 999px;
  font-family: var(--nn-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}
body.woocommerce-wishlist td.product-stock-status span.wishlist-in-stock{
  background: rgba(46,125,50,.1);
  color: #2E7D32 !important;
}
body.woocommerce-wishlist td.product-stock-status span.wishlist-out-of-stock{
  background: rgba(201,82,122,.12);
  color: var(--nn-rose) !important;
}

/* Add to cart */
body.woocommerce-wishlist td.product-add-to-cart{ text-align: right; }
body.woocommerce-wishlist td.product-add-to-cart a.button,
body.woocommerce-wishlist td.product-add-to-cart a.add_to_cart_button{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 12px 24px !important;
  font-family: var(--nn-body) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-plum) !important;
  border: 1px solid var(--nn-plum) !important;
  border-radius: 999px !important;
  white-space: nowrap;
}
body.woocommerce-wishlist td.product-add-to-cart a.button:hover{
  background: var(--nn-plum-deep) !important;
  border-color: var(--nn-plum-deep) !important;
}

/* Remove button */
body.woocommerce-wishlist td.product-remove{ width: 56px; text-align: center; }
body.woocommerce-wishlist a.remove_from_wishlist{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 30px; height: 30px;
  border-radius: 50% !important;
  background: var(--nn-blush) !important;
  color: var(--nn-muted) !important;
  font-size: 14px !important;
  line-height: 1 !important;
  text-decoration: none !important;
  transition: background-color .25s var(--nn-ease), color .25s var(--nn-ease);
}
body.woocommerce-wishlist a.remove_from_wishlist:hover{
  background: var(--nn-rose) !important;
  color: #fff !important;
}

/* --- 35.2 Share row ----------------------------------------------------------- */
body.woocommerce-wishlist .yith-wcwl-share{
  margin: 0 !important;
  padding: 26px 0 0 !important;
  border-top: 1px solid var(--nn-line);
}
body.woocommerce-wishlist .yith-wcwl-share-title{
  font-family: var(--nn-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
  margin: 0 0 14px !important;
}
body.woocommerce-wishlist .yith-wcwl-share ul{
  display: flex;
  gap: 10px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
body.woocommerce-wishlist .yith-wcwl-share li{ margin: 0 !important; list-style: none !important; }
body.woocommerce-wishlist .yith-wcwl-share li a{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: 50% !important;
  transition: transform .25s var(--nn-ease), opacity .25s var(--nn-ease);
}
body.woocommerce-wishlist .yith-wcwl-share li a:hover{ transform: translateY(-2px); opacity: .9; }

/* --- 35.3 Mobile: rows become cards -------------------------------------------- */
@media only screen and (max-width: 767px){
  body.woocommerce-wishlist h1.entry-title.main_title{
    font-size: 30px !important;
    padding: 44px 20px 34px !important;
    margin-bottom: 30px !important;
  }
  body.woocommerce-wishlist .entry-content{ padding: 0 16px 60px; }

  body.woocommerce-wishlist table.wishlist_table,
  body.woocommerce-wishlist table.wishlist_table tbody,
  body.woocommerce-wishlist table.wishlist_table tr,
  body.woocommerce-wishlist table.wishlist_table td{
    display: block !important;
    width: 100% !important;
  }
  body.woocommerce-wishlist table.wishlist_table thead{ display: none !important; }
  body.woocommerce-wishlist table.wishlist_table{
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible;
  }
  body.woocommerce-wishlist table.wishlist_table tbody tr{
    position: relative;
    margin: 0 0 16px !important;
    padding: 18px 16px 16px !important;
    background: #fff !important;
    border: 1px solid var(--nn-line) !important;
    border-radius: 18px !important;
    box-shadow: 0 10px 30px -24px rgba(74,16,40,.4);
  }
  body.woocommerce-wishlist table.wishlist_table tbody td{
    border: 0 !important;
    padding: 4px 0 !important;
    text-align: left !important;
  }
  body.woocommerce-wishlist table.wishlist_table td.product-thumbnail{ width: auto; }
  body.woocommerce-wishlist table.wishlist_table td.product-thumbnail img{
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 10;
    border-radius: 14px !important;
  }
  body.woocommerce-wishlist table.wishlist_table td.product-name{ padding-top: 14px !important; }
  /* Remove button floats over the card corner */
  body.woocommerce-wishlist table.wishlist_table td.product-remove{
    position: absolute;
    top: 26px; right: 24px;
    width: auto !important;
    z-index: 2;
  }
  body.woocommerce-wishlist a.remove_from_wishlist{
    background: rgba(255,255,255,.92) !important;
    box-shadow: 0 6px 16px -8px rgba(74,16,40,.5);
  }
  body.woocommerce-wishlist td.product-add-to-cart{ text-align: left !important; padding-top: 12px !important; }
  body.woocommerce-wishlist td.product-add-to-cart a.button{ width: 100%; }
}

/* ==========================================================================
   36. POLICY DOCUMENTS
   Terms and Conditions (1083) and Refund and Returns Policy (10).
   Both are classic pages whose body is a run of <h2 class="wp-block-heading">
   sections, so one rule set covers them. Add further policy page ids to this
   selector list as they are written.
   ========================================================================== */
body.page-id-1083 #sidebar,
body.page-id-10 #sidebar{ display: none !important; }
body.page-id-1083 #left-area,
body.page-id-10 #left-area{
  width: 100% !important;
  float: none !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}
body.page-id-1083 #main-content .container,
body.page-id-10 #main-content .container{
  width: 100% !important;
  max-width: none !important;
  padding-top: 0 !important;
}

/* --- 36.1 Title band -------------------------------------------------------- */
body.page-id-1083 h1.entry-title.main_title,
body.page-id-10 h1.entry-title.main_title{
  margin: 0 0 54px !important;
  padding: 66px 24px 48px !important;
  text-align: center;
  font-family: var(--nn-display) !important;
  font-size: 48px !important;
  font-weight: 500 !important;
  line-height: 1.08 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
  background-image:
    radial-gradient(120% 90% at 10% 0%,  #FDF6F2 0%, rgba(253,246,242,0) 58%),
    radial-gradient(95% 85% at 100% 10%, var(--nn-blush-2) 0%, rgba(245,225,230,0) 62%),
    linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 55%, var(--nn-blush) 100%);
  border-bottom: 1px solid var(--nn-gold-soft);
}
body.page-id-1083 h1.entry-title.main_title::before,
body.page-id-10 h1.entry-title.main_title::before{
  content: "The fine print";
  display: block;
  margin-bottom: 14px;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--nn-gold);
}

/* --- 36.2 Document body ------------------------------------------------------ */
body.page-id-1083 .entry-content,
body.page-id-10 .entry-content{
  max-width: 820px;
  margin: 0 auto;
  padding: 0 24px 96px;
  counter-reset: nn-doc;
}

/* Numbered sections: legal copy is far easier to reference and to scan when
   each clause carries a number. */
body.page-id-1083 .entry-content h2,
body.page-id-10 .entry-content h2{
  counter-increment: nn-doc;
  position: relative;
  margin: 48px 0 16px !important;
  padding: 26px 0 0 !important;
  border-top: 1px solid var(--nn-line);
  font-family: var(--nn-display) !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  line-height: 1.22 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
}
body.page-id-1083 .entry-content h2::before,
body.page-id-10 .entry-content h2::before{
  content: counter(nn-doc, decimal-leading-zero);
  display: block;
  margin-bottom: 8px;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .24em;
  color: var(--nn-gold);
}
body.page-id-1083 .entry-content h2:first-of-type,
body.page-id-10 .entry-content h2:first-of-type{
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 0;
}

body.page-id-1083 .entry-content p,
body.page-id-10 .entry-content p{
  margin: 0 0 18px !important;
  font-family: var(--nn-body) !important;
  font-size: 16.5px !important;
  line-height: 1.9 !important;
  color: var(--nn-ink) !important;
}
body.page-id-1083 .entry-content p:empty,
body.page-id-10 .entry-content p:empty{ display: none; }

body.page-id-1083 .entry-content strong,
body.page-id-10 .entry-content strong{
  font-weight: 600 !important;
  color: var(--nn-plum-deep) !important;
}

body.page-id-1083 .entry-content ul,
body.page-id-10 .entry-content ul{
  margin: 0 0 22px !important;
  padding-left: 0 !important;
  list-style: none !important;
}
body.page-id-1083 .entry-content ul > li,
body.page-id-10 .entry-content ul > li{
  position: relative;
  margin: 0 0 10px !important;
  padding-left: 26px !important;
  list-style: none !important;
  font-size: 16.5px !important;
  line-height: 1.85 !important;
  color: var(--nn-ink) !important;
}
body.page-id-1083 .entry-content ul > li::before,
body.page-id-10 .entry-content ul > li::before{
  content: "";
  position: absolute;
  left: 3px;
  top: .72em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nn-gold);
}

body.page-id-1083 .entry-content ol,
body.page-id-10 .entry-content ol{
  margin: 0 0 22px !important;
  padding-left: 1.3em !important;
}
body.page-id-1083 .entry-content ol > li,
body.page-id-10 .entry-content ol > li{
  margin-bottom: 10px !important;
  font-size: 16.5px !important;
  line-height: 1.85 !important;
}

body.page-id-1083 .entry-content a,
body.page-id-10 .entry-content a{
  color: var(--nn-plum) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--nn-gold-soft);
}
body.page-id-1083 .entry-content a:hover,
body.page-id-10 .entry-content a:hover{ text-decoration-color: var(--nn-plum); }

/* The closing "Contact us" clause reads as the call to action, so lift it
   onto a card. */
body.page-id-1083 .entry-content h2:last-of-type,
body.page-id-10 .entry-content h2:last-of-type{
  border-top: 1px solid var(--nn-line);
}

@media only screen and (max-width: 980px){
  body.page-id-1083 h1.entry-title.main_title,
  body.page-id-10 h1.entry-title.main_title{
    font-size: 36px !important;
    padding: 48px 20px 36px !important;
    margin-bottom: 36px !important;
  }
  body.page-id-1083 .entry-content h2,
  body.page-id-10 .entry-content h2{ font-size: 24px !important; margin-top: 38px !important; }
}

@media only screen and (max-width: 767px){
  body.page-id-1083 h1.entry-title.main_title,
  body.page-id-10 h1.entry-title.main_title{ font-size: 28px !important; }
  body.page-id-1083 .entry-content,
  body.page-id-10 .entry-content{ padding: 0 18px 64px; }
  body.page-id-1083 .entry-content h2,
  body.page-id-10 .entry-content h2{ font-size: 21px !important; }
  body.page-id-1083 .entry-content p,
  body.page-id-10 .entry-content p,
  body.page-id-1083 .entry-content ul > li,
  body.page-id-10 .entry-content ul > li{ font-size: 16px !important; }
}

/* ==========================================================================
   37. CONSISTENT 15px MOBILE GUTTER
   --------------------------------------------------------------------------
   Posts, products and pages had drifted to 16/18/20/24px side padding, and
   the Divi builder pages used percentage row widths which give a different
   gutter at every screen size. This pins them all to 15px each side below
   768px. Kept last in the file so it settles the question wherever an
   earlier section set something different.
   ========================================================================== */
@media only screen and (max-width: 767px){

  /* --- Classic templates: posts, products, about, wishlist, policies ------- */
  body.single-post #main-content .container,
  body.single-product #main-content .container,
  body.page-id-22 #main-content .container,
  body.woocommerce-wishlist #main-content .container,
  body.page-id-1083 #main-content .container,
  body.page-id-10 #main-content .container{
    width: 100% !important;
    max-width: none !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  /* The inner wrappers already sit inside the container, so they go to zero
     rather than stacking a second gutter on top of it. */
  body.single-post article.et_pb_post,
  body.single-product div.product > .clearfix,
  body.page-id-22 .entry-content,
  body.woocommerce-wishlist .entry-content,
  body.page-id-1083 .entry-content,
  body.page-id-10 .entry-content{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Full-bleed title bands keep their own 15px so the text never touches the
     screen edge. */
  body.single-post article.et_pb_post > .et_post_meta_wrapper{
    margin-left: -15px !important;
    margin-right: -15px !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
  body.page-id-22 h1.entry-title.main_title,
  body.woocommerce-wishlist h1.entry-title.main_title,
  body.page-id-1083 h1.entry-title.main_title,
  body.page-id-10 h1.entry-title.main_title{
    margin-left: -15px !important;
    margin-right: -15px !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  /* --- Divi builder pages: shop, blog, contact, checkout ------------------- */
  /* calc rather than a percentage so the gutter is exactly 15px at any width. */
  body .et_pb_row,
  body.woocommerce-shop .et_pb_row,
  body.page-id-1012 .et_pb_row_0,
  body.page-id-24 .et_pb_row_0,
  body.woocommerce-checkout .et_pb_row_0{
    width: calc(100% - 30px) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* The blog heading band is deliberately full-bleed (section 25), so it keeps
     its viewport-width escape and takes the 15px as inner padding instead. */
  body.page-id-1012 .et_pb_text_0{
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    width: auto !important;
  }
  body.page-id-1012 .et_pb_text_0 .et_pb_text_inner{
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
  .nn-shop-hero,
  .nn-page-hero{
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  /* Injected blocks sit inside the gutter, not beside it. */
  .nn-post-cta{ margin-left: 0 !important; margin-right: 0 !important; }
  body.single-post .nn-toc{ margin-left: 0 !important; margin-right: 0 !important; }
}

/* ==========================================================================
   38. MOBILE HEADER AND SLIDE-IN MENU
   --------------------------------------------------------------------------
   Divi's defaults that are being corrected here:
     .et_fixed_nav #main-header{ position:absolute }      <= 980px  (not sticky)
     .et_header_style_left #et-top-navigation
         .mobile_menu_bar{ padding-bottom:24px }          (pushes the burger
                                                           below the cart)
     .et_mobile_menu{ position:absolute; width:100% }     (drop-down, no close)
   ========================================================================== */
@media only screen and (max-width: 980px){

  /* --- 38.1 Sticky header -------------------------------------------------- */
  /* Divi switches the header to absolute below 980px, so it scrolls away on
     phones. #page-container already reserves 80px at this breakpoint, so
     making it fixed again needs no extra offset. */
  body.et_fixed_nav #main-header{ position: fixed !important; top: 0; }

  /* --- 38.2 15px gutters + icon alignment ---------------------------------- */
  body #main-header .container{
    width: 100% !important;
    max-width: none !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  /* Lay the right-hand group out as a flex row so the burger and the cart
     share a baseline instead of each carrying its own ad-hoc padding. */
  body #et-top-navigation{
    display: flex !important;
    align-items: center;
    gap: 14px;
    padding-top: 0 !important;
    height: 80px;
    float: right;
  }
  body #et_mobile_nav_menu{
    float: none !important;
    display: flex !important;
    align-items: center;
    margin: 0 !important;
    order: 2;
  }
  body #et-top-navigation .et-cart-info{
    float: none !important;
    margin: 0 !important;
    order: 1;
  }
  /* The culprit: 24px of bottom padding under the burger glyph. */
  body .et_header_style_left #et-top-navigation .mobile_menu_bar,
  body #et-top-navigation .mobile_menu_bar{
    padding-bottom: 0 !important;
    display: flex !important;
    align-items: center;
    line-height: 1 !important;
  }
  body .mobile_menu_bar::before{
    position: static !important;
    top: 0 !important;
    font-size: 30px !important;
    line-height: 1 !important;
    color: var(--nn-plum) !important;
  }
  body #et_mobile_nav_menu .mobile_nav{
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
  }

  /* --- 38.3 The panel ------------------------------------------------------- */
  body #et_mobile_nav_menu .et_mobile_menu{
    display: block !important;      /* overrides Divi's inline display:none */
    position: fixed !important;
    top: 0;
    right: 0;
    left: auto !important;
    bottom: 0;
    width: min(330px, 86vw);
    max-width: 86vw;
    height: 100% !important;
    margin: 0 !important;
    padding: 84px 0 32px !important;
    background: var(--nn-cream) !important;
    border: 0 !important;
    border-left: 1px solid var(--nn-line) !important;
    box-shadow: -24px 0 60px -30px rgba(74,16,40,.6) !important;
    overflow-y: auto;
    overscroll-behavior: contain;
    z-index: 100000 !important;
    transform: translateX(100%);
    visibility: hidden;
    transition: transform .34s var(--nn-ease), visibility 0s linear .34s;
  }
  body.nn-nav-open #et_mobile_nav_menu .et_mobile_menu{
    transform: translateX(0);
    visibility: visible;
    transition: transform .34s var(--nn-ease), visibility 0s;
  }

  .nn-nav-backdrop{
    position: fixed;
    inset: 0;
    background: rgba(42,10,24,.45);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    z-index: 99999;
    transition: opacity .3s var(--nn-ease), visibility 0s linear .3s;
  }
  body.nn-nav-open .nn-nav-backdrop{
    opacity: 1;
    visibility: visible;
    transition: opacity .3s var(--nn-ease), visibility 0s;
  }
  body.nn-nav-open{ overflow: hidden; }

  .nn-nav-close{
    position: absolute;
    top: 20px;
    right: 18px;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    line-height: 1;
    color: var(--nn-plum) !important;
    background: #fff;
    border: 1px solid var(--nn-line) !important;
    border-radius: 50% !important;
    cursor: pointer;
    padding: 0 !important;
    transition: background-color .25s var(--nn-ease), color .25s var(--nn-ease);
  }
  .nn-nav-close:hover{
    background: var(--nn-plum);
    color: #fff !important;
  }
  .nn-nav-close::after{ display: none !important; }

  body #et_mobile_nav_menu .et_mobile_menu li{ padding: 0 !important; }
  body #et_mobile_nav_menu .et_mobile_menu li a{
    display: block;
    padding: 16px 26px !important;
    border-bottom: 1px solid var(--nn-line) !important;
    font-family: var(--nn-body) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: var(--nn-ink) !important;
    background: transparent !important;
    transition: background-color .2s var(--nn-ease), color .2s var(--nn-ease);
  }
  body #et_mobile_nav_menu .et_mobile_menu li a:hover,
  body #et_mobile_nav_menu .et_mobile_menu li.current-menu-item > a{
    background: var(--nn-blush) !important;
    color: var(--nn-plum) !important;
    opacity: 1 !important;
  }
  body #et_mobile_nav_menu .et_mobile_menu li li a{ padding-left: 40px !important; }
  body #et_mobile_nav_menu .et_mobile_menu li:last-child a{ border-bottom: 0 !important; }
}

@media (prefers-reduced-motion: reduce){
  body #et_mobile_nav_menu .et_mobile_menu,
  .nn-nav-backdrop{ transition: none !important; }
}

/* ==========================================================================
   39. POST TITLE BAND, MOBILE BREATHING ROOM
   The band sits directly under the fixed header, so it needs more room above
   the headline than the 40px it had.
   ========================================================================== */
@media only screen and (max-width: 767px){
  body.single-post article.et_pb_post > .et_post_meta_wrapper{
    padding-top: 62px !important;
    padding-bottom: 40px !important;
  }
  body.page-id-22 h1.entry-title.main_title,
  body.woocommerce-wishlist h1.entry-title.main_title,
  body.page-id-1083 h1.entry-title.main_title,
  body.page-id-10 h1.entry-title.main_title{
    padding-top: 58px !important;
  }
}

/* ==========================================================================
   40. OPAQUE MOBILE HEADER + HEADING CLEARANCE
   --------------------------------------------------------------------------
   The header is translucent with a blur (section 3). On a phone that means
   whatever scrolls beneath it stays faintly visible through it, which reads
   as the title overlapping the header rather than passing behind it. On a
   small screen the effect buys nothing, so the header goes solid below 980px
   and the title bands get more room above the headline.
   ========================================================================== */
@media only screen and (max-width: 980px){
  body #main-header,
  body #main-header.et-fixed-header{
    background: var(--nn-cream) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: 0 1px 0 var(--nn-line), 0 8px 24px -20px rgba(74,16,40,.45) !important;
  }

  body.single-post article.et_pb_post > .et_post_meta_wrapper{
    padding-top: 78px !important;
  }
  body.page-id-22 h1.entry-title.main_title,
  body.woocommerce-wishlist h1.entry-title.main_title,
  body.page-id-1083 h1.entry-title.main_title,
  body.page-id-10 h1.entry-title.main_title{
    padding-top: 72px !important;
  }
  .nn-shop-hero,
  .nn-page-hero,
  body.page-id-1012 .et_pb_text_0 .et_pb_text_inner{
    padding-top: 66px !important;
  }
}

@media only screen and (max-width: 767px){
  body.single-post article.et_pb_post > .et_post_meta_wrapper{
    padding-top: 72px !important;
  }
}

/* ==========================================================================
   41. BLOG: PROGRESSIVE REVEAL
   ========================================================================== */
body.page-id-1012 article.et_pb_post.nn-hidden{ display: none !important; }

.nn-showmore{
  grid-column: 1 / -1;
  margin-top: 44px;
  padding-top: 34px;
  border-top: 1px solid var(--nn-line);
  text-align: center;
}
.nn-showmore__count{
  margin: 0 0 18px !important;
  font-family: var(--nn-body) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
}
.nn-showmore__btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 44px;
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-plum);
  border: 1px solid var(--nn-plum) !important;
  border-radius: 999px !important;
  cursor: pointer;
  box-shadow: 0 14px 30px -16px rgba(110,27,60,.55);
  transition: background-color .25s var(--nn-ease), transform .25s var(--nn-ease);
}
.nn-showmore__btn::after{ content: "\2193"; font-size: 14px; line-height: 1; display: inline-block !important; }
.nn-showmore__btn:hover{
  background: var(--nn-plum-deep);
  border-color: var(--nn-plum-deep) !important;
  transform: translateY(-2px);
}

/* ==========================================================================
   42. FOOTER
   Two bands: a nav row, then the copyright and social row.
   ========================================================================== */
body #et-footer-nav{
  background: transparent !important;
  border-bottom: 1px solid rgba(230,211,180,.16);
}
body #et-footer-nav .container{ padding: 30px 0 !important; }
body #et-footer-nav ul.bottom-nav{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px 34px;
  padding: 0 !important;
  margin: 0 auto !important;
  float: none !important;
  text-align: center;
}
body #et-footer-nav ul.bottom-nav li{
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
  display: inline-block;
}
body #et-footer-nav ul.bottom-nav li a{
  position: relative;
  padding: 4px 0 !important;
  font-family: var(--nn-body) !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,.78) !important;
  text-decoration: none !important;   /* they were underlined */
  transition: color .25s var(--nn-ease);
}
body #et-footer-nav ul.bottom-nav li a::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: var(--nn-gold);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .3s var(--nn-ease);
}
body #et-footer-nav ul.bottom-nav li a:hover{ color: #fff !important; }
body #et-footer-nav ul.bottom-nav li a:hover::after{ transform: scaleX(1); }
body #et-footer-nav ul.bottom-nav li.current-menu-item a{ color: var(--nn-gold-soft) !important; }

/* A thin gold rule across the top of the whole footer */
body #main-footer{ position: relative; }
body #main-footer::before{
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--nn-gold), transparent);
}

body #footer-bottom .container{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  padding-top: 26px !important;
  padding-bottom: 26px !important;
}
body #footer-bottom #footer-info{
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  order: 1;
}
body #footer-bottom ul.et-social-icons{
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  gap: 10px;
  order: 2;
}
body #footer-bottom ul.et-social-icons li{ margin: 0 !important; float: none !important; }

@media only screen and (max-width: 767px){
  body #et-footer-nav .container{ padding: 24px 15px !important; }
  body #et-footer-nav ul.bottom-nav{ gap: 12px 22px; }
  body #et-footer-nav ul.bottom-nav li a{ font-size: 11px !important; letter-spacing: .14em !important; }
  body #footer-bottom .container{
    flex-direction: column;
    text-align: center;
    gap: 16px;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
  body #footer-bottom #footer-info{ order: 2; }
  body #footer-bottom ul.et-social-icons{ order: 1; justify-content: center; }
  .nn-showmore__btn{ padding: 14px 32px; font-size: 11px !important; }
}

/* ==========================================================================
   43. STICKY "SHOP NOW" BAR ON BLOG POSTS
   Markup printed server-side by nancy_redesign_post_shop_bar(); revealed on
   scroll by nancy-post.js once the reader is past the intro, and hidden again
   while the in-article Shop now panel is on screen.
   ========================================================================== */
.nn-sb{
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 99998;
  background: rgba(255,251,249,.98);
  border-top: 1px solid var(--nn-line);
  box-shadow: 0 -10px 40px -24px rgba(74,16,40,.55);
  transform: translateY(105%);
  transition: transform .38s var(--nn-ease);
  will-change: transform;
}
.nn-sb.is-visible{ transform: translateY(0); }

.nn-sb__inner{
  max-width: 1180px;
  width: 92%;
  margin: 0 auto;
  padding: 12px 0;
  display: flex;
  align-items: center;
  gap: 18px;
}
.nn-sb__img{
  width: 54px !important;
  height: 54px !important;
  flex: 0 0 auto;
  object-fit: cover;
  border-radius: 12px !important;
  border: 1px solid var(--nn-line);
  background: var(--nn-blush);
}
.nn-sb__meta{
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}
.nn-sb__eyebrow{
  font-family: var(--nn-body);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--nn-gold);
}
.nn-sb__title{
  font-family: var(--nn-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--nn-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nn-sb__price{
  font-family: var(--nn-body);
  font-size: 14px;
  font-weight: 600;
  color: var(--nn-plum);
  line-height: 1.3;
}
.nn-sb__price del{
  font-size: 11.5px;
  font-weight: 400;
  color: var(--nn-muted);
  margin-right: 6px;
  text-decoration: line-through;
}
.nn-sb__price ins{ text-decoration: none; background: transparent; }
.nn-sb__price .woocommerce-Price-amount{ display: inline-block !important; }

body .nn-sb a.nn-sb__btn{
  flex: 0 0 auto;
  height: 46px;
  padding: 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--nn-body) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-plum);
  border: 1px solid var(--nn-plum) !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  box-shadow: 0 14px 30px -16px rgba(110,27,60,.55);
  transition: background-color .25s var(--nn-ease), transform .25s var(--nn-ease);
}
body .nn-sb a.nn-sb__btn::after{ content: "\2192"; font-size: 13px; line-height: 1; }
body .nn-sb a.nn-sb__btn:hover{
  background: var(--nn-plum-deep);
  border-color: var(--nn-plum-deep) !important;
  color: #fff !important;
  transform: translateY(-2px);
}

/* Keep the scroll-to-top button clear of the bar while it is showing. */
body.single-post.nn-sb-on .et_pb_scroll_top.et-pb-icon{ bottom: 104px !important; }
/* And leave room at the foot of the page so the bar never covers the footer. */
body.single-post #main-footer{ padding-bottom: 88px !important; }

@media only screen and (max-width: 767px){
  .nn-sb__inner{ width: calc(100% - 30px); gap: 12px; padding: 10px 0; }
  .nn-sb__img{ width: 44px !important; height: 44px !important; border-radius: 10px !important; }
  .nn-sb__title{ display: none; }
  .nn-sb__eyebrow{ font-size: 9px; }
  .nn-sb__price{ font-size: 13px; }
  body .nn-sb a.nn-sb__btn{ height: 42px; padding: 0 20px; font-size: 10.5px !important; letter-spacing: .12em !important; }
  body.single-post.nn-sb-on .et_pb_scroll_top.et-pb-icon{ bottom: 86px !important; }
  body.single-post #main-footer{ padding-bottom: 74px !important; }
}

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

/* ==========================================================================
   44. POLICY PAGES, EXTENDED
   --------------------------------------------------------------------------
   Adds Shipping Information (1234) to the policy treatment from section 36,
   and covers two things those pages use that Terms did not: h3 subheadings
   and data tables (shipping rates, the return eligibility table).
   ========================================================================== */

/* --- 44.1 Shipping Information inherits the policy layout ------------------- */
body.page-id-1234 #sidebar{ display: none !important; }
body.page-id-1234 #left-area{
  width: 100% !important;
  float: none !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
}
body.page-id-1234 #main-content .container{
  width: 100% !important;
  max-width: none !important;
  padding-top: 0 !important;
}
body.page-id-1234 h1.entry-title.main_title{
  margin: 0 0 54px !important;
  padding: 66px 24px 48px !important;
  text-align: center;
  font-family: var(--nn-display) !important;
  font-size: 48px !important;
  font-weight: 500 !important;
  line-height: 1.08 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
  background-image:
    radial-gradient(120% 90% at 10% 0%,  #FDF6F2 0%, rgba(253,246,242,0) 58%),
    radial-gradient(95% 85% at 100% 10%, var(--nn-blush-2) 0%, rgba(245,225,230,0) 62%),
    linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 55%, var(--nn-blush) 100%);
  border-bottom: 1px solid var(--nn-gold-soft);
}
body.page-id-1234 h1.entry-title.main_title::before{
  content: "The fine print";
  display: block;
  margin-bottom: 14px;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--nn-gold);
}
body.page-id-1234 .entry-content{
  max-width: 820px;
  margin: 0 auto;
  padding: 0 24px 96px;
  counter-reset: nn-doc;
}
body.page-id-1234 .entry-content h2{
  counter-increment: nn-doc;
  margin: 48px 0 16px !important;
  padding: 26px 0 0 !important;
  border-top: 1px solid var(--nn-line);
  font-family: var(--nn-display) !important;
  font-size: 28px !important;
  font-weight: 600 !important;
  line-height: 1.22 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
}
body.page-id-1234 .entry-content h2::before{
  content: counter(nn-doc, decimal-leading-zero);
  display: block;
  margin-bottom: 8px;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .24em;
  color: var(--nn-gold);
}
body.page-id-1234 .entry-content h2:first-of-type{
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 0;
}
body.page-id-1234 .entry-content p{
  margin: 0 0 18px !important;
  font-family: var(--nn-body) !important;
  font-size: 16.5px !important;
  line-height: 1.9 !important;
  color: var(--nn-ink) !important;
}
body.page-id-1234 .entry-content strong{ font-weight: 600 !important; color: var(--nn-plum-deep) !important; }
body.page-id-1234 .entry-content ul{
  margin: 0 0 22px !important;
  padding-left: 0 !important;
  list-style: none !important;
}
body.page-id-1234 .entry-content ul > li{
  position: relative;
  margin: 0 0 10px !important;
  padding-left: 26px !important;
  list-style: none !important;
  font-size: 16.5px !important;
  line-height: 1.85 !important;
  color: var(--nn-ink) !important;
}
body.page-id-1234 .entry-content ul > li::before{
  content: "";
  position: absolute;
  left: 3px; top: .72em;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--nn-gold);
}
body.page-id-1234 .entry-content ol{ margin: 0 0 22px !important; padding-left: 1.3em !important; }
body.page-id-1234 .entry-content ol > li{ margin-bottom: 10px !important; font-size: 16.5px !important; line-height: 1.85 !important; }
body.page-id-1234 .entry-content a{
  color: var(--nn-plum) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--nn-gold-soft);
}
body.page-id-1234 .entry-content a:hover{ text-decoration-color: var(--nn-plum); }

/* --- 44.2 Subheadings (all three policy pages) ------------------------------ */
body.page-id-1083 .entry-content h3,
body.page-id-10 .entry-content h3,
body.page-id-1234 .entry-content h3{
  margin: 30px 0 10px !important;
  padding: 0 !important;
  border: 0 !important;
  font-family: var(--nn-body) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  line-height: 1.55 !important;
  text-transform: uppercase !important;
  color: var(--nn-plum) !important;
}
body.page-id-1083 .entry-content h3::before,
body.page-id-10 .entry-content h3::before,
body.page-id-1234 .entry-content h3::before{
  content: "";
  display: block;
  width: 22px;
  height: 2px;
  margin-bottom: 10px;
  background: var(--nn-gold-soft);
}

/* --- 44.3 Data tables -------------------------------------------------------
   The shipping rates and the return eligibility table carry the practical
   answers on these pages, so they get the same card treatment as the wishlist
   rather than the bare default borders.
   -------------------------------------------------------------------------- */
body.page-id-1083 .entry-content table,
body.page-id-10 .entry-content table,
body.page-id-1234 .entry-content table{
  width: 100% !important;
  margin: 0 0 28px !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 16px !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 30px -26px rgba(74,16,40,.4);
  font-size: 100% !important;
}
body.page-id-1083 .entry-content table th,
body.page-id-10 .entry-content table th,
body.page-id-1234 .entry-content table th{
  padding: 14px 16px !important;
  background: var(--nn-blush);
  border: 0 !important;
  border-bottom: 1px solid var(--nn-line) !important;
  font-family: var(--nn-body) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
  text-align: left !important;
  vertical-align: middle;
}
body.page-id-1083 .entry-content table td,
body.page-id-10 .entry-content table td,
body.page-id-1234 .entry-content table td{
  padding: 15px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--nn-line) !important;
  font-family: var(--nn-body) !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: var(--nn-ink) !important;
  vertical-align: top;
  background: transparent !important;
}
body.page-id-1083 .entry-content table tr:last-child td,
body.page-id-10 .entry-content table tr:last-child td,
body.page-id-1234 .entry-content table tr:last-child td{ border-bottom: 0 !important; }
body.page-id-1083 .entry-content table tbody tr:hover td,
body.page-id-10 .entry-content table tbody tr:hover td,
body.page-id-1234 .entry-content table tbody tr:hover td{ background: rgba(251,241,243,.5) !important; }
body.page-id-1083 .entry-content table td:first-child,
body.page-id-10 .entry-content table td:first-child,
body.page-id-1234 .entry-content table td:first-child{
  font-weight: 500 !important;
  color: var(--nn-plum-deep) !important;
}

/* A rates table is the one thing that genuinely needs to scroll sideways on a
   phone; squashing the columns makes the numbers unreadable. */
@media only screen and (max-width: 767px){
  body.page-id-1083 .entry-content table,
  body.page-id-10 .entry-content table,
  body.page-id-1234 .entry-content table{
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
  }
  body.page-id-1083 .entry-content table td,
  body.page-id-10 .entry-content table td,
  body.page-id-1234 .entry-content table td{ font-size: 14px !important; }
}

@media only screen and (max-width: 980px){
  body.page-id-1234 h1.entry-title.main_title{
    font-size: 36px !important;
    padding: 72px 20px 36px !important;
    margin-bottom: 36px !important;
  }
  body.page-id-1234 .entry-content h2{ font-size: 24px !important; margin-top: 38px !important; }
}

@media only screen and (max-width: 767px){
  body.page-id-1234 h1.entry-title.main_title{
    font-size: 28px !important;
    margin-left: -15px !important;
    margin-right: -15px !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
  body.page-id-1234 #main-content .container{
    width: 100% !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
  body.page-id-1234 .entry-content{ padding: 0 0 64px; }
  body.page-id-1234 .entry-content h2{ font-size: 21px !important; }
  body.page-id-1234 .entry-content p,
  body.page-id-1234 .entry-content ul > li{ font-size: 16px !important; }
}

/* ==========================================================================
   45. HEADER SAFETY GUARD
   --------------------------------------------------------------------------
   Divi sizes the logo as a percentage of header height (max-height:54-60%).
   That couples the two: if the nav ever wraps to a second line the header
   grows, the logo scales up with it, and the two collide. Renaming the About
   and Blog pages for SEO did exactly that, because those menu items had no
   separate navigation label.

   The labels are fixed, but these cap the damage if it happens again: an
   absolute ceiling on the logo, and a nav that stays on one line.
   ========================================================================== */
@media only screen and (min-width: 981px){
  body #logo{ max-height: 54px !important; }
  body.et_pb_svg_logo #logo{ height: auto !important; max-height: 54px !important; }
  body #top-menu{ display: flex; align-items: center; flex-wrap: nowrap; }
  body #top-menu > li > a{ white-space: nowrap; }
}

/* ==========================================================================
   46. DESKTOP HEADER ALIGNMENT
   --------------------------------------------------------------------------
   Divi lays the top bar out with floats and padding rather than alignment:
     .et_header_style_left #et-top-navigation { padding: 20px 0 0 0 }
     .et_header_style_left #et-top-navigation nav > ul > li > a
                                              { padding-bottom: 20px }
     #et-top-navigation .et-cart-info         { float: left; margin: -2px 0 0 22px }
   The menu text therefore sits at the TOP of a 20px-padded box while the cart
   floats at its own natural position, so the two never line up — the cart
   hangs below the menu row and collides with the header's bottom edge.
   (Section 38 fixed this below 980px; this does the same for desktop.)

   Replacing the floats with a flex row centres everything against one shared
   height, so the alignment no longer depends on hand-tuned padding.
   ========================================================================== */
@media only screen and (min-width: 981px){

  body #et-top-navigation{
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    height: 80px;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body #top-menu-nav,
  body nav#top-menu-nav{
    float: none !important;
    display: flex !important;
    align-items: center;
    line-height: normal !important;
  }
  body #top-menu,
  body ul#top-menu.nav{
    float: none !important;
    display: flex !important;
    align-items: center;
    line-height: normal !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body #top-menu > li{
    display: flex !important;
    align-items: center;
    padding-right: 26px !important;
    line-height: normal !important;
  }
  body #top-menu > li:last-child{ padding-right: 0 !important; }

  /* Divi's 20px bottom padding was positioning the hover underline. With the
     row centred that padding is gone, so the underline is re-anchored to the
     link itself. */
  body #top-menu > li > a{
    padding-bottom: 0 !important;
    padding-top: 0 !important;
    line-height: 1.4 !important;
  }
  body #top-menu > li > a::after{
    bottom: -7px !important;
  }

  /* The fixed-header state shrinks the padding by default; with a flex row the
     height is already constant, so nothing needs to change on scroll. */
  body .et-fixed-header #et-top-navigation{
    padding-top: 0 !important;
    height: 80px;
  }
  body .et-fixed-header #top-menu > li > a{ padding-bottom: 0 !important; }

  body #et-top-navigation a.et-cart-info{
    float: none !important;
    margin: 0 !important;
    flex: 0 0 auto;
  }

  /* The logo column is absolutely positioned at full height by Divi, so it
     centres independently of the nav row. */
  body #main-header .logo_container{ display: flex; align-items: center; }
}

/* ==========================================================================
   47. BUY BAR: OVERVIEW + DESCRIPTION LINKS
   --------------------------------------------------------------------------
   The bar now carries two jump links. Overview goes to the short description
   in the summary column (the product's main pitch); Description opens the
   Description tab further down. Both share one style so neither reads as the
   more important of the two.
   ========================================================================== */
.nn-buybar__link{
  flex: 0 0 auto;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--nn-muted) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--nn-line);
  padding-bottom: 3px;
  white-space: nowrap;
  transition: color .25s var(--nn-ease), border-color .25s var(--nn-ease);
}
.nn-buybar__link:hover,
.nn-buybar__link:focus-visible{
  color: var(--nn-plum) !important;
  border-bottom-color: var(--nn-gold);
}
.nn-buybar__link:focus-visible{
  outline: 2px solid var(--nn-gold);
  outline-offset: 4px;
}
/* Tighten the gap between the two links relative to the bar's main spacing */
.nn-buybar__overview + .nn-buybar__desc{ margin-left: -4px; }

/* The anchor target sits under the fixed header when jumped to. */
body.single-product .woocommerce-product-details__short-description[id],
body.single-product .summary p.price[id],
body.single-product h1.product_title[id]{ scroll-margin-top: 110px; }

@media only screen and (max-width: 980px){
  .nn-buybar__link{ font-size: 10.5px; letter-spacing: .12em; }
}

@media only screen and (max-width: 767px){
  /* Two text links plus a button will not fit beside the thumbnail on a
     phone, and Add to cart is the one that matters there. */
  .nn-buybar__desc{ display: none !important; }
  .nn-buybar__overview{
    font-size: 10px;
    letter-spacing: .08em;
    border-bottom: 0;
    padding-bottom: 0;
  }
}

@media only screen and (max-width: 420px){
  .nn-buybar__link{ display: none !important; }
}

/* ==========================================================================
   48. HEADER: UNDERLINE POSITION + VERTICAL ALIGNMENT
   --------------------------------------------------------------------------
   Part C (the old Customizer CSS, which loads after this file) still holds
   rules written for Divi's original padded header:
     #main-header #top-menu > li > a::after   { bottom: 12px !important }
     #main-header #top-menu > li.menu-item-34 > a { margin-top: -9px }
     #main-header .et-cart-info               { margin: -10px 0 0 4px !important }
   Those offsets existed to cancel out Divi's 20px link padding. Section 46
   removed that padding in favour of a centred flex row, so they now push
   things out of line: the underline lands through the middle of the word, and
   the Checkout pill and cart sit high.

   These need an id more than Part C's selectors carry, hence the #main-header
   prefix on top of body.
   ========================================================================== */
@media only screen and (min-width: 981px){

  /* Underline sits below the word, not through it. */
  body #main-header #top-menu > li > a::after,
  body #main-header #top-menu > li.current-menu-item > a::after,
  body #main-header #top-menu > li.current_page_parent > a::after{
    bottom: -6px !important;
    top: auto !important;
    height: 1px !important;
  }

  /* Drop the compensating offsets: the flex row centres these already. */
  body #main-header #top-menu > li.menu-item-34 > a{
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  body #main-header #et-top-navigation a.et-cart-info,
  body #main-header .et-cart-info{
    margin: 0 !important;
    align-self: center;
  }

  /* Everything in the bar centres on one line. */
  body #main-header #et-top-navigation > *{ align-self: center; }

  /* The Checkout pill is taller than the plain links, so let it keep its own
     height without stretching the row. */
  body #main-header #top-menu > li.menu-item-34{ align-items: center; }
}

/* ==========================================================================
   49. FOUNDER PORTRAIT (About page)
   --------------------------------------------------------------------------
   Targets the Nancy-Cranfield-Designer image specifically, by src, rather
   than "the third figure" or ".size-full" — so reordering the page or adding
   another full-size image cannot move the treatment onto the wrong picture.
   The figure carries no caption, which leaves ::after free for the nameplate.
   ========================================================================== */
body.page-id-22 .wp-block-image:has(img[src*="Nancy-Cranfield-Designer"]){
  position: relative;
  display: block;
  max-width: 420px;
  margin: 10px auto 46px !important;
  isolation: isolate;
}

/* Offset gold outline sitting behind the photo. */
body.page-id-22 .wp-block-image:has(img[src*="Nancy-Cranfield-Designer"])::before{
  content: "";
  position: absolute;
  z-index: -1;
  top: 18px;
  left: 18px;
  right: -18px;
  bottom: 46px;
  border: 1px solid var(--nn-gold);
  border-radius: 200px 200px 20px 20px;
  pointer-events: none;
}

/* Arch crop, echoing the hero and contact portraits. */
body.page-id-22 .wp-block-image:has(img[src*="Nancy-Cranfield-Designer"]) img{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center 22%;
  border-radius: 200px 200px 20px 20px !important;
  box-shadow: var(--nn-shadow-lg);
}
body.page-id-22 .wp-block-image:has(img[src*="Nancy-Cranfield-Designer"]):hover img{
  transform: none;           /* the generic About hover lift would fight the frame */
}

/* Nameplate, overlapping the foot of the photo. */
body.page-id-22 .wp-block-image:has(img[src*="Nancy-Cranfield-Designer"])::after{
  content: "Nancy Cranfield \00b7 Designer & Maker";
  position: absolute;
  left: 50%;
  bottom: -18px;
  transform: translateX(-50%);
  white-space: nowrap;
  padding: 12px 26px;
  background: var(--nn-cream);
  border: 1px solid var(--nn-line);
  border-radius: 999px;
  box-shadow: 0 14px 30px -18px rgba(74,16,40,.5);
  font-family: var(--nn-body);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--nn-plum);
}

@media only screen and (max-width: 767px){
  body.page-id-22 .wp-block-image:has(img[src*="Nancy-Cranfield-Designer"]){
    max-width: 300px;
    margin-bottom: 42px !important;
  }
  body.page-id-22 .wp-block-image:has(img[src*="Nancy-Cranfield-Designer"])::before{
    top: 12px; left: 12px; right: -12px; bottom: 40px;
    border-radius: 150px 150px 16px 16px;
  }
  body.page-id-22 .wp-block-image:has(img[src*="Nancy-Cranfield-Designer"]) img{
    border-radius: 150px 150px 16px 16px !important;
  }
  body.page-id-22 .wp-block-image:has(img[src*="Nancy-Cranfield-Designer"])::after{
    font-size: 9px;
    letter-spacing: .12em;
    padding: 10px 16px;
  }
}

/* Older browsers without :has() simply keep the plain rounded image. */
@supports not selector(:has(*)){
  body.page-id-22 .wp-block-image.size-full img{ border-radius: 20px !important; }
}

/* ==========================================================================
   50. PRODUCT CARDS, ATELIER TREATMENT
   --------------------------------------------------------------------------
   Applied to every grid a product appears in (homepage, shop, related,
   recently viewed) so a piece looks the same wherever it is shown.

   The idea is a millinery atelier rather than a plain catalogue: each piece
   sits in an arched niche, the way hats are displayed in a window. The arch
   is the same silhouette already used by the hero portrait, the founder
   portrait and the contact image, so the whole site shares one shape.

   Layers, all hung off .et_shop_image (position:relative, overflow:hidden):
     ::before   gold rosette mark, top right, for handmade
     ::after    inset gold hairline that draws in on hover
     li::before offset gold arch outline behind the niche
   ========================================================================== */

/* --- 50.1 The arched niche ------------------------------------------------ */
body.home .et_pb_shop_0 li.product,
body.woocommerce-shop .et_pb_shop li.product,
body.single-product .related.products li.product{
  position: relative;
  padding-top: 10px !important;
}

body.home .et_pb_shop_0 li.product .et_shop_image,
body.woocommerce-shop .et_pb_shop li.product .et_shop_image,
body.single-product .related.products li.product .et_shop_image{
  border-radius: 150px 150px 16px 16px !important;
  background: linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 60%, var(--nn-blush-2) 100%) !important;
}
body.home .et_pb_shop_0 li.product .et_shop_image img,
body.woocommerce-shop .et_pb_shop li.product .et_shop_image img,
body.single-product .related.products li.product .et_shop_image img{
  border-radius: 150px 150px 16px 16px !important;
}

/* Offset gold arch sitting behind the niche, drawn on hover. Placed on the
   li rather than the image because .et_shop_image clips its own overflow. */
body.home .et_pb_shop_0 li.product::before,
body.woocommerce-shop .et_pb_shop li.product::before,
body.single-product .related.products li.product::before{
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  left: 10px;
  right: -10px;
  height: 78%;
  border: 1px solid var(--nn-gold);
  border-radius: 150px 150px 16px 16px;
  opacity: 0;
  transform: translate(-6px, 6px);
  transition: opacity .4s var(--nn-ease), transform .4s var(--nn-ease);
  pointer-events: none;
}
body.home .et_pb_shop_0 li.product:hover::before,
body.woocommerce-shop .et_pb_shop li.product:hover::before,
body.single-product .related.products li.product:hover::before{
  opacity: .9;
  transform: translate(0, 0);
}

/* --- 50.2 Handmade rosette ------------------------------------------------ */
body.home .et_pb_shop_0 li.product .et_shop_image::before,
body.woocommerce-shop .et_pb_shop li.product .et_shop_image::before,
body.single-product .related.products li.product .et_shop_image::before{
  content: "";
  position: absolute;
  top: 16px;
  right: 14px;
  z-index: 3;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background-color: rgba(255,251,249,.94);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B98B4E' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M12 9.5C12 6.7 10.2 4 12 2c1.8 2 0 4.7 0 7.5Z'/%3E%3Cpath d='M14.5 12c2.8 0 5.5-1.8 7.5 0-2 1.8-4.7 0-7.5 0Z'/%3E%3Cpath d='M12 14.5c0 2.8 1.8 5.5 0 7.5-1.8-2 0-4.7 0-7.5Z'/%3E%3Cpath d='M9.5 12c-2.8 0-5.5 1.8-7.5 0 2-1.8 4.7 0 7.5 0Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 15px 15px;
  box-shadow: 0 4px 12px -6px rgba(74,16,40,.5);
  opacity: .82;
  transition: opacity .35s var(--nn-ease), transform .5s var(--nn-ease);
  pointer-events: none;
}
body.home .et_pb_shop_0 li.product:hover .et_shop_image::before,
body.woocommerce-shop .et_pb_shop li.product:hover .et_shop_image::before,
body.single-product .related.products li.product:hover .et_shop_image::before{
  opacity: 1;
  transform: rotate(72deg);
}

/* --- 50.3 Inset hairline, following the arch ------------------------------ */
body.home .et_pb_shop_0 li.product .et_shop_image::after,
body.woocommerce-shop .et_pb_shop li.product .et_shop_image::after,
body.single-product .related.products li.product .et_shop_image::after{
  content: "";
  position: absolute;
  inset: 9px;
  z-index: 2;
  border: 1px solid rgba(255,255,255,.75);
  border-radius: 142px 142px 10px 10px;
  opacity: 0;
  transform: scale(1.03);
  transition: opacity .4s var(--nn-ease), transform .4s var(--nn-ease);
  pointer-events: none;
}
body.home .et_pb_shop_0 li.product:hover .et_shop_image::after,
body.woocommerce-shop .et_pb_shop li.product:hover .et_shop_image::after,
body.single-product .related.products li.product:hover .et_shop_image::after{
  opacity: 1;
  transform: scale(1);
}

/* --- 50.4 Gold diamond between title and price ----------------------------
   Echoes the divider motif used under the section headings. */
body.home .et_pb_shop_0 li.product h2.woocommerce-loop-product__title,
body.woocommerce-shop .et_pb_shop li.product h2.woocommerce-loop-product__title,
body.single-product .related.products li.product h2.woocommerce-loop-product__title{
  position: relative;
  padding-bottom: 18px !important;
}
body.home .et_pb_shop_0 li.product h2.woocommerce-loop-product__title::after,
body.woocommerce-shop .et_pb_shop li.product h2.woocommerce-loop-product__title::after,
body.single-product .related.products li.product h2.woocommerce-loop-product__title::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: 6px;
  width: 6px;
  height: 6px;
  margin-left: -3px;
  background: var(--nn-gold);
  transform: rotate(45deg) scale(.6);
  opacity: .45;
  transition: transform .4s var(--nn-ease), opacity .4s var(--nn-ease);
}
body.home .et_pb_shop_0 li.product:hover h2.woocommerce-loop-product__title::after,
body.woocommerce-shop .et_pb_shop li.product:hover h2.woocommerce-loop-product__title::after,
body.single-product .related.products li.product:hover h2.woocommerce-loop-product__title::after{
  transform: rotate(45deg) scale(1);
  opacity: 1;
}

/* --- 50.5 Sale price in the display face ---------------------------------- */
body.home .et_pb_shop_0 li.product .price ins .amount,
body.home .et_pb_shop_0 li.product .price ins bdi,
body.woocommerce-shop .et_pb_shop li.product .price ins .amount,
body.woocommerce-shop .et_pb_shop li.product .price ins bdi,
body.single-product .related.products li.product .price ins .amount,
body.single-product .related.products li.product .price ins bdi{
  font-family: var(--nn-display) !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}
body.home .et_pb_shop_0 li.product .price del .amount,
body.home .et_pb_shop_0 li.product .price del bdi,
body.woocommerce-shop .et_pb_shop li.product .price del .amount,
body.woocommerce-shop .et_pb_shop li.product .price del bdi,
body.single-product .related.products li.product .price del .amount,
body.single-product .related.products li.product .price del bdi{
  font-family: var(--nn-display) !important;
  font-size: 16px !important;
  font-style: italic !important;
}

/* Sale flag above the new layers. */
body.home .et_pb_shop_0 li.product .onsale,
body.woocommerce-shop .et_pb_shop li.product .onsale,
body.single-product .related.products li.product .onsale{ z-index: 5 !important; }

@media only screen and (max-width: 767px){
  body.home .et_pb_shop_0 li.product .et_shop_image,
  body.woocommerce-shop .et_pb_shop li.product .et_shop_image,
  body.single-product .related.products li.product .et_shop_image,
  body.home .et_pb_shop_0 li.product .et_shop_image img,
  body.woocommerce-shop .et_pb_shop li.product .et_shop_image img,
  body.single-product .related.products li.product .et_shop_image img{
    border-radius: 96px 96px 14px 14px !important;
  }
  /* Hover-only ornament is just clutter on a touch screen. */
  body.home .et_pb_shop_0 li.product::before,
  body.woocommerce-shop .et_pb_shop li.product::before,
  body.single-product .related.products li.product::before,
  body.home .et_pb_shop_0 li.product .et_shop_image::after,
  body.woocommerce-shop .et_pb_shop li.product .et_shop_image::after,
  body.single-product .related.products li.product .et_shop_image::after{
    display: none;
  }
  body.home .et_pb_shop_0 li.product .et_shop_image::before,
  body.woocommerce-shop .et_pb_shop li.product .et_shop_image::before,
  body.single-product .related.products li.product .et_shop_image::before{
    width: 22px; height: 22px; background-size: 13px 13px; top: 10px; right: 8px;
  }
  body.home .et_pb_shop_0 li.product .price ins .amount,
  body.home .et_pb_shop_0 li.product .price ins bdi,
  body.woocommerce-shop .et_pb_shop li.product .price ins .amount,
  body.woocommerce-shop .et_pb_shop li.product .price ins bdi{
    font-size: 19px !important;
  }
}

@media (prefers-reduced-motion: reduce){
  body.home .et_pb_shop_0 li.product:hover .et_shop_image::before,
  body.woocommerce-shop .et_pb_shop li.product:hover .et_shop_image::before,
  body.single-product .related.products li.product:hover .et_shop_image::before{ transform: none; }
}

/* ==========================================================================
   51. REASONS TO BUY (cart)
   --------------------------------------------------------------------------
   Four arched niches, the same silhouette as the product cards and portraits,
   so the panel reads as part of the shop rather than a bolted-on trust strip.
   ========================================================================== */
.nn-reasons{
  margin: 64px 0 0;
  padding: 54px 36px 48px;
  text-align: center;
  border-radius: 28px;
  background:
    radial-gradient(120% 90% at 10% 0%,  #FDF6F2 0%, rgba(253,246,242,0) 58%),
    radial-gradient(95% 85% at 100% 10%, var(--nn-blush-2) 0%, rgba(245,225,230,0) 62%),
    linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 55%, var(--nn-blush) 100%);
  border: 1px solid var(--nn-line);
  box-shadow: var(--nn-shadow);
}
.nn-reasons__eyebrow{
  margin: 0 0 12px !important;
  font-family: var(--nn-body) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .3em !important;
  text-transform: uppercase;
  color: var(--nn-gold) !important;
}
body .nn-reasons h2.nn-reasons__title{
  margin: 0 0 8px !important;
  padding: 0 !important;
  font-family: var(--nn-display) !important;
  font-size: 34px !important;
  font-weight: 500 !important;
  line-height: 1.15 !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
}
body .nn-reasons h2.nn-reasons__title::after{
  content: "";
  display: block;
  width: 62px;
  height: 2px;
  margin: 18px auto 0;
  background: linear-gradient(90deg, transparent, var(--nn-gold), transparent);
}

.nn-reasons__grid{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 26px;
  margin: 36px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.nn-reasons__item{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 !important;
  padding: 30px 18px 26px !important;
  list-style: none !important;
  background: rgba(255,255,255,.72);
  border: 1px solid var(--nn-line);
  /* The arch again, shallower so four of them sit calmly in a row. */
  border-radius: 80px 80px 18px 18px;
  transition: transform .35s var(--nn-ease), box-shadow .35s var(--nn-ease), background-color .35s var(--nn-ease);
}
.nn-reasons__item:hover{
  transform: translateY(-5px);
  background: #fff;
  box-shadow: 0 18px 44px -26px rgba(74,16,40,.5);
}

.nn-reasons__icon{
  width: 52px;
  height: 52px;
  margin-bottom: 16px;
  border-radius: 50%;
  background-color: var(--nn-blush);
  border: 1px solid var(--nn-line);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 24px 24px;
  transition: transform .45s var(--nn-ease);
}
.nn-reasons__item:hover .nn-reasons__icon{ transform: rotate(8deg) scale(1.06); }

.nn-reasons__item--rosette .nn-reasons__icon{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E1B3C' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M12 9.5C12 6.7 10.2 4 12 2c1.8 2 0 4.7 0 7.5Z'/%3E%3Cpath d='M14.5 12c2.8 0 5.5-1.8 7.5 0-2 1.8-4.7 0-7.5 0Z'/%3E%3Cpath d='M12 14.5c0 2.8 1.8 5.5 0 7.5-1.8-2 0-4.7 0-7.5Z'/%3E%3Cpath d='M9.5 12c-2.8 0-5.5 1.8-7.5 0 2-1.8 4.7 0 7.5 0Z'/%3E%3C/svg%3E");
}
.nn-reasons__item--truck .nn-reasons__icon{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E1B3C' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6.5h11v9.5H2z'/%3E%3Cpath d='M13 10h4.6l3.4 3.2V16H13z'/%3E%3Ccircle cx='6.5' cy='18.2' r='1.8'/%3E%3Ccircle cx='17' cy='18.2' r='1.8'/%3E%3C/svg%3E");
}
.nn-reasons__item--shield .nn-reasons__icon{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E1B3C' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5 20 5.4v6c0 5-3.4 8.6-8 10.1-4.6-1.5-8-5.1-8-10.1v-6Z'/%3E%3Cpath d='m8.6 11.8 2.6 2.6 4.4-4.6'/%3E%3C/svg%3E");
}
.nn-reasons__item--lock .nn-reasons__icon{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E1B3C' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='10.5' width='16' height='10' rx='2.5'/%3E%3Cpath d='M8 10.5V7.8a4 4 0 0 1 8 0v2.7'/%3E%3Ccircle cx='12' cy='15.5' r='1.3'/%3E%3C/svg%3E");
}

.nn-reasons__heading{
  font-family: var(--nn-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--nn-plum);
  margin-bottom: 8px;
}
.nn-reasons__copy{
  font-family: var(--nn-body);
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--nn-muted);
}
body .nn-reasons a.nn-reasons__link{
  margin-top: 12px;
  font-family: var(--nn-body);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--nn-plum) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--nn-gold-soft);
  padding-bottom: 2px;
  transition: border-color .25s var(--nn-ease);
}
body .nn-reasons a.nn-reasons__link:hover{ border-bottom-color: var(--nn-plum); }

@media only screen and (max-width: 980px){
  .nn-reasons__grid{ grid-template-columns: 1fr 1fr; gap: 18px; }
  .nn-reasons{ padding: 44px 24px 38px; }
  body .nn-reasons h2.nn-reasons__title{ font-size: 28px !important; }
}

@media only screen and (max-width: 767px){
  .nn-reasons{ margin-top: 44px; padding: 34px 16px 30px; border-radius: 22px; }
  body .nn-reasons h2.nn-reasons__title{ font-size: 23px !important; }
  .nn-reasons__item{ padding: 22px 12px 20px !important; border-radius: 60px 60px 16px 16px; }
  .nn-reasons__icon{ width: 44px; height: 44px; background-size: 21px 21px; margin-bottom: 12px; }
  .nn-reasons__heading{ font-size: 11px; letter-spacing: .12em; }
  .nn-reasons__copy{ font-size: 12.5px; }
}

@media (prefers-reduced-motion: reduce){
  .nn-reasons__item:hover{ transform: none; }
  .nn-reasons__item:hover .nn-reasons__icon{ transform: none; }
}

/* ==========================================================================
   52. CONTACT FORM (Contact Form 7)
   --------------------------------------------------------------------------
   Section 26 styled .et_pb_contact_form_container, which is Divi's own
   contact module. This page does not use it: the form is Contact Form 7
   (.wpcf7-form), so none of those rules ever applied and the fields were
   rendering with browser defaults.
   ========================================================================== */
body.page-id-24 .wpcf7{
  max-width: 560px;
  margin: 0;
  padding: 34px 30px 30px;
  background: #fff;
  border: 1px solid var(--nn-line);
  border-radius: 24px;
  box-shadow: var(--nn-shadow);
}

body.page-id-24 .wpcf7-form p{
  margin: 0 0 18px !important;
  padding: 0 !important;
  font-size: 15px !important;
  line-height: 1.5 !important;
}
body.page-id-24 .wpcf7-form p:last-of-type{ margin-bottom: 0 !important; }

body.page-id-24 .wpcf7-form label{
  display: block;
  margin-bottom: 7px;
  font-family: var(--nn-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
  line-height: 1.4 !important;
}

body.page-id-24 .wpcf7-form-control-wrap{ display: block; }

body.page-id-24 .wpcf7-form input.wpcf7-text,
body.page-id-24 .wpcf7-form input.wpcf7-email,
body.page-id-24 .wpcf7-form input.wpcf7-tel,
body.page-id-24 .wpcf7-form textarea.wpcf7-textarea,
body.page-id-24 .wpcf7-form select.wpcf7-select{
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
  font-family: var(--nn-body) !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  color: var(--nn-ink) !important;
  background: var(--nn-cream) !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 14px !important;
  padding: 14px 18px !important;
  box-shadow: none !important;
  transition: border-color .25s var(--nn-ease), box-shadow .25s var(--nn-ease), background-color .25s var(--nn-ease);
}
body.page-id-24 .wpcf7-form textarea.wpcf7-textarea{
  min-height: 150px;
  resize: vertical;
}
body.page-id-24 .wpcf7-form input:focus,
body.page-id-24 .wpcf7-form textarea:focus,
body.page-id-24 .wpcf7-form select:focus{
  background: #fff !important;
  border-color: var(--nn-plum) !important;
  box-shadow: 0 0 0 4px rgba(110,27,60,.12) !important;
  outline: none !important;
}
body.page-id-24 .wpcf7-form input::placeholder,
body.page-id-24 .wpcf7-form textarea::placeholder{
  color: #A79AA0 !important;
  opacity: 1;
}

/* Submit */
body.page-id-24 .wpcf7-form input.wpcf7-submit{
  width: 100%;
  height: 54px;
  margin-top: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: var(--nn-plum) !important;
  border: 1px solid var(--nn-plum) !important;
  border-radius: 999px !important;
  padding: 0 32px !important;
  cursor: pointer;
  box-shadow: 0 14px 30px -16px rgba(110,27,60,.55);
  transition: background-color .25s var(--nn-ease), transform .25s var(--nn-ease);
}
body.page-id-24 .wpcf7-form input.wpcf7-submit:hover{
  background: var(--nn-plum-deep) !important;
  border-color: var(--nn-plum-deep) !important;
  transform: translateY(-2px);
}
body.page-id-24 .wpcf7-spinner{ margin: 12px auto 0; display: block; }

/* Validation and response messages */
body.page-id-24 .wpcf7-not-valid-tip{
  margin-top: 7px;
  font-family: var(--nn-body) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  color: var(--nn-rose) !important;
}
body.page-id-24 .wpcf7-form input.wpcf7-not-valid,
body.page-id-24 .wpcf7-form textarea.wpcf7-not-valid{
  border-color: var(--nn-rose) !important;
}
body.page-id-24 .wpcf7-response-output{
  margin: 20px 0 0 !important;
  padding: 14px 18px !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 14px !important;
  background: var(--nn-blush);
  font-family: var(--nn-body) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--nn-ink) !important;
}
body.page-id-24 .wpcf7 form.invalid .wpcf7-response-output,
body.page-id-24 .wpcf7 form.failed .wpcf7-response-output{
  background: #FCEEF2;
  border-color: rgba(201,82,122,.4) !important;
}
body.page-id-24 .wpcf7 form.sent .wpcf7-response-output{
  background: rgba(46,125,50,.08);
  border-color: rgba(46,125,50,.35) !important;
  color: #2E7D32 !important;
}

/* ==========================================================================
   53. CONTACT PAGE IMAGE
   The arched niche again, with the offset gold frame used on the founder
   portrait, so the three photographs on the site share one treatment.
   ========================================================================== */
body.page-id-24 .et_pb_image_0{
  position: relative;
  margin: 0 auto !important;
  max-width: 460px;
}
body.page-id-24 .et_pb_image_0::before{
  content: "";
  position: absolute;
  z-index: 0;
  top: 16px;
  left: 16px;
  right: -16px;
  bottom: -16px;
  border: 1px solid var(--nn-gold);
  border-radius: 220px 220px 20px 20px;
  pointer-events: none;
  transition: transform .45s var(--nn-ease);
}
body.page-id-24 .et_pb_image_0:hover::before{ transform: translate(-6px, -6px); }

body.page-id-24 .et_pb_image_0 .et_pb_image_wrap{
  position: relative;
  z-index: 1;
  display: block;
  border-radius: 220px 220px 20px 20px !important;
  overflow: hidden;
  box-shadow: var(--nn-shadow-lg);
}
body.page-id-24 .et_pb_image_0 .et_pb_image_wrap img{
  display: block;
  width: 100% !important;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 0 !important;
}

/* Handmade rosette, matching the product cards */
body.page-id-24 .et_pb_image_0 .et_pb_image_wrap::after{
  content: "";
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 2;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background-color: rgba(255,251,249,.94);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B98B4E' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M12 9.5C12 6.7 10.2 4 12 2c1.8 2 0 4.7 0 7.5Z'/%3E%3Cpath d='M14.5 12c2.8 0 5.5-1.8 7.5 0-2 1.8-4.7 0-7.5 0Z'/%3E%3Cpath d='M12 14.5c0 2.8 1.8 5.5 0 7.5-1.8-2 0-4.7 0-7.5Z'/%3E%3Cpath d='M9.5 12c-2.8 0-5.5 1.8-7.5 0 2-1.8 4.7 0 7.5 0Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 19px 19px;
  box-shadow: 0 6px 16px -8px rgba(74,16,40,.5);
  pointer-events: none;
}

@media only screen and (max-width: 980px){
  body.page-id-24 .wpcf7{ max-width: none; margin-top: 26px; }
  body.page-id-24 .et_pb_image_0{ max-width: 340px; }
}

@media only screen and (max-width: 767px){
  body.page-id-24 .wpcf7{ padding: 24px 18px 22px; border-radius: 20px; }
  /* 16px stops iOS zooming the viewport on focus */
  body.page-id-24 .wpcf7-form input.wpcf7-text,
  body.page-id-24 .wpcf7-form input.wpcf7-email,
  body.page-id-24 .wpcf7-form input.wpcf7-tel,
  body.page-id-24 .wpcf7-form textarea.wpcf7-textarea{ font-size: 16px !important; }
  body.page-id-24 .et_pb_image_0{ max-width: 280px; }
  body.page-id-24 .et_pb_image_0::before{
    top: 10px; left: 10px; right: -10px; bottom: -10px;
    border-radius: 160px 160px 16px 16px;
  }
  body.page-id-24 .et_pb_image_0 .et_pb_image_wrap{ border-radius: 160px 160px 16px 16px !important; }
}

@media (prefers-reduced-motion: reduce){
  body.page-id-24 .et_pb_image_0:hover::before{ transform: none; }
}

/* --- 51.1 Clear the cart float -------------------------------------------
   .nn-reasons is printed by woocommerce_after_cart, which makes it a sibling
   of .cart-collaterals. WooCommerce floats that right at ~48%, so without a
   clear the panel flowed into the remaining half-width gutter beside it
   instead of sitting below at full width.
   ------------------------------------------------------------------------ */
body.woocommerce-cart .nn-reasons,
body.woocommerce-page .nn-reasons{
  clear: both !important;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}
/* The cart form and collaterals leave floats open above it. */
body.woocommerce-cart .woocommerce::after{ content: ""; display: table; clear: both; }

/* --- 51.2 Full-bleed band -------------------------------------------------
   Break the panel out of the 1080px container so it spans the window, the
   same technique as the blog heading band. overflow-x is clipped (not
   hidden) on the wrapper so the negative margins cannot create a horizontal
   scrollbar; `clip` does that without disabling position:sticky elsewhere.
   The inner grid stays capped and centred so the cards do not stretch to
   absurd widths on a wide monitor.
   ------------------------------------------------------------------------ */
body.woocommerce-cart #page-container{ overflow-x: clip; }
body.woocommerce-cart .nn-reasons{
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: auto !important;
  max-width: none !important;
  border-radius: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
}
body.woocommerce-cart .nn-reasons__grid,
body.woocommerce-cart .nn-reasons__eyebrow,
body.woocommerce-cart .nn-reasons h2.nn-reasons__title{
  max-width: 1240px;
  margin-left: auto !important;
  margin-right: auto !important;
}
@media only screen and (max-width: 767px){
  body.woocommerce-cart .nn-reasons{
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}

/* ==========================================================================
   54. ONE CONTAINER WIDTH
   --------------------------------------------------------------------------
   Three widths were in play and none of them lined up:
     #main-header .container   1080px  (Divi default)
     .et_pb_row                1180px  (section 5)
     checkout / shop rows       1240px
   So the logo sat ~100px inboard of the page content. Everything is pinned
   to the 1180px / 88% pair here, which is what the body content already
   used, so header, content and footer share one left and right edge.
   ========================================================================== */
body #main-header .container{
  width: 88% !important;
  max-width: 1180px !important;
}
body #et-footer-nav .container,
body #footer-bottom .container{
  width: 88% !important;
  max-width: 1180px !important;
}
body.woocommerce-checkout .et_pb_row_0,
body.woocommerce-shop .et_pb_shop .woocommerce,
body.page-id-24 .et_pb_row_0,
body.page-id-1012 .et_pb_row_0{
  width: 88% !important;
  max-width: 1180px !important;
}
body.single-product #content-area,
body.single-post #content-area,
body.woocommerce-cart .nn-reasons__grid,
body.woocommerce-cart .nn-reasons__eyebrow,
body.woocommerce-cart .nn-reasons h2.nn-reasons__title{
  max-width: 1180px !important;
}
@media only screen and (max-width: 980px){
  body #main-header .container,
  body #et-footer-nav .container,
  body #footer-bottom .container{ width: 100% !important; }
}

/* --- 51.3 Full-bleed, corrected ------------------------------------------
   The first attempt used margin:calc(50% - 50vw) with width:auto. The 50%
   resolves against the parent while 50vw INCLUDES the scrollbar, so the band
   came out a scrollbar-width too wide and pushed the page into horizontal
   scroll. This uses the standard left/right + negative-vw pair with an
   explicit 100vw width, and clips the overflow at the root as well as on
   #page-container, since that is where the scroll was actually escaping.
   ------------------------------------------------------------------------ */
html:has(body.woocommerce-cart){ overflow-x: clip; }
body.woocommerce-cart{ overflow-x: clip; }
body.woocommerce-cart .nn-reasons{
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  box-sizing: border-box;
}

/* --- 51.4 Centre the band contents ---------------------------------------
   auto margins on each child were competing with earlier max-width rules and
   leaving the inner column off-centre. A flex column with align-items:center
   centres the children regardless of what any margin rule says, so this
   stops depending on cascade order.
   ------------------------------------------------------------------------ */
body.woocommerce-cart .nn-reasons{
  display: flex !important;
  flex-direction: column;
  align-items: center;
}
body.woocommerce-cart .nn-reasons > *{
  width: 100%;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.woocommerce-cart .nn-reasons__grid{ justify-items: stretch; }

/* --- 51.5 Full width without viewport maths -------------------------------
   The panel now renders between #main-content and #main-footer (see
   nancy_redesign_cart_reasons_before_footer), i.e. as a direct child of the
   full-width #et-main-area. So it simply fills its parent: all the 100vw,
   negative-margin and overflow-clip workarounds below are no longer needed
   and are reset here, which is what was leaving a gap on the right.
   ------------------------------------------------------------------------ */
body.woocommerce-cart .nn-reasons{
  position: static !important;
  left: auto !important;
  right: auto !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  clear: none !important;
  border-radius: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  box-sizing: border-box;
}
html:has(body.woocommerce-cart),
body.woocommerce-cart{ overflow-x: visible; }

/* ==========================================================================
   55. MOBILE MENU STACKING
   --------------------------------------------------------------------------
   The panel is a descendant of #main-header, which Divi gives z-index:99999.
   That makes it a stacking context, so the panel can never rise above it no
   matter what z-index it is given. The backdrop is appended to <body> at the
   same 99999 and comes later in the DOM, so it painted OVER the header and
   therefore over the panel: the menu looked blurred and tinted and the close
   button was invisible behind it.

   Fix: lift the whole header above the backdrop while the menu is open. The
   bar itself stays crisp too, which is what you want, since the close button
   and burger live there.
   ========================================================================== */
@media only screen and (max-width: 980px){
  body.nn-nav-open #main-header{ z-index: 100002 !important; }
  .nn-nav-backdrop{ z-index: 100000 !important; }
  body #et_mobile_nav_menu .et_mobile_menu{
    z-index: 100003 !important;
    background: #FFFBF9 !important;
    opacity: 1 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  /* The close button sits above the list it overlaps. */
  .nn-nav-close{ z-index: 2; }
  /* Divi fades these when it thinks the menu is hidden; the panel is now
     driven entirely by the transform, so the opacity animation must not
     interfere. */
  body #et_mobile_nav_menu .et_mobile_menu,
  body #et_mobile_nav_menu .et_mobile_menu li,
  body #et_mobile_nav_menu .et_mobile_menu li a{
    animation: none !important;
  }
}

/* --- 55.1 Close button, fixed above everything ----------------------------
   It now lives on <body> rather than inside the menu list (Divi rebuilds
   that list and was destroying it). Fixed positioning and a z-index above
   the panel keep it in the corner and always clickable. The burger is
   hidden while the menu is open so there are not two controls stacked in
   the same corner.
   ------------------------------------------------------------------------ */
.nn-nav-close{
  position: fixed !important;
  top: 16px;
  right: 16px;
  z-index: 100004 !important;
  opacity: 0;
  visibility: hidden;
  transform: scale(.85);
  transition: opacity .25s var(--nn-ease), transform .25s var(--nn-ease), visibility 0s linear .25s;
}
body.nn-nav-open .nn-nav-close{
  opacity: 1;
  visibility: visible;
  transform: scale(1);
  transition: opacity .25s var(--nn-ease), transform .25s var(--nn-ease), visibility 0s;
}
@media only screen and (max-width: 980px){
  body.nn-nav-open #et_mobile_nav_menu .mobile_nav{ opacity: 0; pointer-events: none; }
}
@media only screen and (min-width: 981px){
  .nn-nav-close{ display: none !important; }
}

/* --- 55.2 Panel now lives on <body> --------------------------------------
   nancy-mobile-nav.js moves the menu out of #main-header (whose transform
   was containing and clipping the fixed panel) and tags it .nn-nav-panel.
   These rules target that class, so they no longer depend on the panel
   sitting inside #et_mobile_nav_menu.
   ------------------------------------------------------------------------ */
body > ul.et_mobile_menu.nn-nav-panel{
  display: block !important;
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: auto !important;
  bottom: 0 !important;
  width: min(330px, 86vw) !important;
  max-width: 86vw !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 84px 0 32px !important;
  background: #FFFBF9 !important;
  border: 0 !important;
  border-left: 1px solid var(--nn-line) !important;
  box-shadow: -24px 0 60px -30px rgba(74,16,40,.6) !important;
  overflow-y: auto;
  overscroll-behavior: contain;
  z-index: 100003 !important;
  opacity: 1 !important;
  transform: translateX(100%);
  visibility: hidden;
  animation: none !important;
  transition: transform .34s var(--nn-ease), visibility 0s linear .34s;
}
body.nn-nav-open > ul.et_mobile_menu.nn-nav-panel{
  transform: translateX(0);
  visibility: visible;
  transition: transform .34s var(--nn-ease), visibility 0s;
}
body > ul.et_mobile_menu.nn-nav-panel li{ padding: 0 !important; list-style: none !important; }
body > ul.et_mobile_menu.nn-nav-panel li a{
  display: block;
  padding: 16px 26px !important;
  border-bottom: 1px solid var(--nn-line) !important;
  font-family: var(--nn-body) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--nn-ink) !important;
  background: transparent !important;
  animation: none !important;
}
body > ul.et_mobile_menu.nn-nav-panel li a:hover,
body > ul.et_mobile_menu.nn-nav-panel li.current-menu-item > a{
  background: var(--nn-blush) !important;
  color: var(--nn-plum) !important;
  opacity: 1 !important;
}
body > ul.et_mobile_menu.nn-nav-panel li li a{ padding-left: 40px !important; }
@media only screen and (min-width: 981px){
  body > ul.et_mobile_menu.nn-nav-panel{ display: none !important; }
}

/* --- 55.3 Policy links and phone in the mobile panel ----------------------
   Secondary group, set smaller than the main nav so the primary items stay
   dominant. The phone is last and styled as an action rather than a page.
   ------------------------------------------------------------------------ */
body > ul.et_mobile_menu.nn-nav-panel li.nn-nav-extra--first{
  margin-top: 18px !important;
  padding-top: 18px !important;
  border-top: 1px solid var(--nn-line);
}
body > ul.et_mobile_menu.nn-nav-panel li.nn-nav-extra a{
  padding: 12px 26px !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .12em !important;
  color: var(--nn-muted) !important;
  border-bottom: 0 !important;
}
body > ul.et_mobile_menu.nn-nav-panel li.nn-nav-extra a:hover{
  color: var(--nn-plum) !important;
  background: var(--nn-blush) !important;
}
body > ul.et_mobile_menu.nn-nav-panel li.nn-nav-phone{
  margin-top: 18px !important;
  padding: 0 26px !important;
}
body > ul.et_mobile_menu.nn-nav-panel li.nn-nav-phone a{
  display: inline-flex !important;
  align-items: center;
  gap: 9px;
  padding: 13px 22px !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 999px !important;
  background: var(--nn-blush) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
  color: var(--nn-plum) !important;
}
body > ul.et_mobile_menu.nn-nav-panel li.nn-nav-phone a::before{
  content: "";
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%236E1B3C%27 stroke-width=%271.6%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .3 1.9.6 2.8a2 2 0 0 1-.5 2.1L8.1 9.7a16 16 0 0 0 6 6l1.1-1.1a2 2 0 0 1 2.1-.5c.9.3 1.8.5 2.8.6a2 2 0 0 1 1.7 2Z%27/%3E%3C/svg%3E");
}
body > ul.et_mobile_menu.nn-nav-panel li.nn-nav-phone a:hover{
  background: var(--nn-plum) !important;
  border-color: var(--nn-plum) !important;
  color: #fff !important;
}

/* ==========================================================================
   56. SHOP: PROGRESSIVE REVEAL
   ========================================================================== */
body.woocommerce-shop .et_pb_shop ul.products li.product.nn-hidden{ display: none !important; }
body.woocommerce-shop .nn-showmore{ margin-top: 50px; }

/* ==========================================================================
   57. RECENTLY VIEWED, ATELIER TREATMENT
   --------------------------------------------------------------------------
   Section 50 covered the homepage, shop and related grids but not this
   carousel, which is built by nancy-recently-viewed.js and uses its own
   class names. Same arch, rosette and gold diamond, so a piece looks the
   same here as everywhere else it is shown.
   ========================================================================== */
.nn-rv__item{ position: relative; padding-top: 8px; }

.nn-rv__media{
  position: relative;
  border-radius: 130px 130px 14px 14px !important;
  background: linear-gradient(170deg, var(--nn-blush) 0%, #FFF7F4 60%, var(--nn-blush-2) 100%) !important;
}
.nn-rv__media img{
  border-radius: 130px 130px 14px 14px !important;
}

/* Offset gold arch behind the niche. On the item, not the media, because the
   media clips its own overflow to make the arch. */
.nn-rv__item::before{
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  left: 8px;
  right: -8px;
  height: 72%;
  border: 1px solid var(--nn-gold);
  border-radius: 130px 130px 14px 14px;
  opacity: 0;
  transform: translate(-5px, 5px);
  transition: opacity .4s var(--nn-ease), transform .4s var(--nn-ease);
  pointer-events: none;
}
.nn-rv__item:hover::before{ opacity: .9; transform: translate(0, 0); }

/* Handmade rosette */
.nn-rv__media::after{
  content: "";
  position: absolute;
  top: 12px;
  right: 11px;
  z-index: 3;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  background-color: rgba(255,251,249,.94);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B98B4E' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M12 9.5C12 6.7 10.2 4 12 2c1.8 2 0 4.7 0 7.5Z'/%3E%3Cpath d='M14.5 12c2.8 0 5.5-1.8 7.5 0-2 1.8-4.7 0-7.5 0Z'/%3E%3Cpath d='M12 14.5c0 2.8 1.8 5.5 0 7.5-1.8-2 0-4.7 0-7.5Z'/%3E%3Cpath d='M9.5 12c-2.8 0-5.5 1.8-7.5 0 2-1.8 4.7 0 7.5 0Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 13px 13px;
  box-shadow: 0 4px 12px -6px rgba(74,16,40,.5);
  opacity: .82;
  transition: opacity .35s var(--nn-ease), transform .5s var(--nn-ease);
  pointer-events: none;
}
.nn-rv__link:hover .nn-rv__media::after{ opacity: 1; transform: rotate(72deg); }

/* Gold diamond between title and price */
.nn-rv__title{ position: relative; padding-bottom: 16px; }
.nn-rv__title::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: 5px;
  width: 5px;
  height: 5px;
  margin-left: -2.5px;
  background: var(--nn-gold);
  transform: rotate(45deg) scale(.6);
  opacity: .45;
  transition: transform .4s var(--nn-ease), opacity .4s var(--nn-ease);
}
.nn-rv__link:hover .nn-rv__title::after{ transform: rotate(45deg) scale(1); opacity: 1; }

/* Prices in the display face, matching the product grids */
.nn-rv__price ins,
.nn-rv__price ins .amount,
.nn-rv__price ins bdi,
.nn-rv__price > .amount,
.nn-rv__price > bdi{
  font-family: var(--nn-display) !important;
  font-size: 19px !important;
  font-weight: 600 !important;
}
.nn-rv__price del,
.nn-rv__price del .amount,
.nn-rv__price del bdi{
  font-family: var(--nn-display) !important;
  font-size: 14px !important;
  font-style: italic !important;
}

@media only screen and (max-width: 767px){
  .nn-rv__media,
  .nn-rv__media img{ border-radius: 86px 86px 12px 12px !important; }
  .nn-rv__item::before{ display: none; }
}

@media (prefers-reduced-motion: reduce){
  .nn-rv__link:hover .nn-rv__media::after{ transform: none; }
}

/* ==========================================================================
   58. SHOP FILTERS
   --------------------------------------------------------------------------
   A sticky panel on the left of the grid, with the search field sitting on
   the toolbar row beside the sort dropdown. Markup is built by nancy-shop.js.
   ========================================================================== */

/* Two columns: panel, then the existing grid. */
body.woocommerce-shop .woocommerce.nn-shop-has-filters{
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  grid-template-areas:
    "filters toolbar"
    "filters grid";
  column-gap: 34px;
  align-items: start;
}
body.woocommerce-shop .nn-shop-has-filters .nn-f{ grid-area: filters; }
body.woocommerce-shop .nn-shop-has-filters ul.products{ grid-area: grid; }
body.woocommerce-shop .nn-shop-has-filters .woocommerce-result-count,
body.woocommerce-shop .nn-shop-has-filters .woocommerce-ordering,
body.woocommerce-shop .nn-shop-has-filters .nn-search{ grid-area: toolbar; }

/* The toolbar row: search on the left, sort on the right. */
body.woocommerce-shop .nn-shop-has-filters .woocommerce-result-count{ display: none !important; }
body.woocommerce-shop .nn-shop-has-filters .nn-search{
  justify-self: start;
  align-self: center;
  width: min(340px, 100%);
  margin: 0 0 26px !important;
}
body.woocommerce-shop .nn-shop-has-filters .woocommerce-ordering{
  justify-self: end;
  align-self: center;
  margin: 0 0 26px !important;
  float: none !important;
}

.nn-search__input{
  width: 100%;
  height: 44px;
  box-sizing: border-box;
  padding: 0 18px 0 42px !important;
  font-family: var(--nn-body) !important;
  font-size: 14px !important;
  color: var(--nn-ink) !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236F6168' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: left 15px center;
  background-size: 16px 16px;
  border: 1px solid var(--nn-line) !important;
  border-radius: 999px !important;
  transition: border-color .25s var(--nn-ease), box-shadow .25s var(--nn-ease);
}
.nn-search__input:focus{
  border-color: var(--nn-plum) !important;
  box-shadow: 0 0 0 4px rgba(110,27,60,.12) !important;
  outline: none !important;
}
.nn-search__input::placeholder{ color: #A79AA0 !important; opacity: 1; }

/* --- 58.1 The panel -------------------------------------------------------- */
.nn-f{
  position: sticky;
  top: 104px;
  align-self: start;
  max-height: calc(100vh - 140px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 22px 20px 24px;
  background: #fff;
  border: 1px solid var(--nn-line);
  border-radius: 20px;
  box-shadow: 0 10px 30px -24px rgba(74,16,40,.4);
}
.nn-f__head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--nn-line);
}
.nn-f__title{
  margin: 0 !important;
  font-family: var(--nn-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  color: var(--nn-gold) !important;
}
.nn-f__clear{
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  font-family: var(--nn-body) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--nn-rose) !important;
  cursor: pointer;
}
.nn-f__clear::after{ display: none !important; }
.nn-f__clear:hover{ color: var(--nn-plum) !important; }

.nn-f__section{ margin-bottom: 20px; }
.nn-f__section:last-child{ margin-bottom: 0; }
.nn-f__heading{
  margin: 0 0 10px !important;
  font-family: var(--nn-body) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--nn-muted) !important;
}

/* --- 58.2 Pills ------------------------------------------------------------ */
.nn-f__pills{ display: flex; flex-wrap: wrap; gap: 7px; }
.nn-f__pill{
  padding: 7px 13px !important;
  font-family: var(--nn-body) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .04em !important;
  line-height: 1.3 !important;
  color: var(--nn-ink) !important;
  background: var(--nn-cream) !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 999px !important;
  cursor: pointer;
  transition: background-color .2s var(--nn-ease), color .2s var(--nn-ease), border-color .2s var(--nn-ease);
}
.nn-f__pill::after{ display: none !important; }
.nn-f__pill:hover{ border-color: var(--nn-gold) !important; }
.nn-f__pill.is-on{
  background: var(--nn-plum) !important;
  border-color: var(--nn-plum) !important;
  color: #fff !important;
}
/* A swatch dot on the colour pills, so the list scans visually. */
.nn-f__pill--colour{ display: inline-flex; align-items: center; gap: 7px; }
.nn-f__pill--colour::before{
  content: "";
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,.14);
  flex: 0 0 auto;
  background: currentColor;
}
.nn-f__pill--white::before{ background: #fff; }
.nn-f__pill--black::before{ background: #222; }
.nn-f__pill--red::before{ background: #C0392B; }
.nn-f__pill--blue::before{ background: #2F6FAF; }
.nn-f__pill--navy::before{ background: #27406B; }
.nn-f__pill--green::before{ background: #4B8B5A; }
.nn-f__pill--yellow::before{ background: #E6C34A; }
.nn-f__pill--pink::before{ background: #E59BB5; }
.nn-f__pill--purple::before{ background: #7B5AA6; }
.nn-f__pill--gold::before{ background: #B98B4E; }
.nn-f__pill--silver::before{ background: #C8CBD0; }
.nn-f__pill--brown::before{ background: #8A5A3B; }
.nn-f__pill--cream::before{ background: #F3E8DC; }
.nn-f__pill--ivory::before{ background: #F6F1E7; }
.nn-f__pill--orange::before{ background: #DD8A3E; }
.nn-f__pill--beige::before{ background: #DCCBB4; }
.nn-f__pill--grey::before{ background: #9AA0A6; }
.nn-f__pill--teal::before{ background: #3E8E8E; }
.nn-f__pill--burgundy::before{ background: #6E1B3C; }
.nn-f__pill--champagne::before{ background: #E6D3B4; }
.nn-f__pill--rose::before{ background: #D48BA0; }
.nn-f__pill--leopard::before{ background: linear-gradient(135deg,#C89A5B 40%,#5B4126 40% 60%,#C89A5B 60%); }
.nn-f__pill--floral::before{ background: linear-gradient(135deg,#E59BB5 50%,#4B8B5A 50%); }
.nn-f__pill--rainbow::before,
.nn-f__pill--multicolour::before{
  background: conic-gradient(#C0392B,#E6C34A,#4B8B5A,#2F6FAF,#7B5AA6,#C0392B);
}
.nn-f__pill.is-on::before{ border-color: rgba(255,255,255,.6); }

/* --- 58.3 Price + sale ----------------------------------------------------- */
.nn-f__price{ display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.nn-f__price label{ display: block; }
.nn-f__price span{
  display: block;
  margin-bottom: 5px;
  font-family: var(--nn-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--nn-muted);
}
.nn-f__price input{
  width: 100%;
  box-sizing: border-box;
  height: 38px;
  padding: 0 10px !important;
  font-family: var(--nn-body) !important;
  font-size: 13px !important;
  color: var(--nn-ink) !important;
  background: var(--nn-cream) !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 10px !important;
}
.nn-f__price input:focus{
  border-color: var(--nn-plum) !important;
  box-shadow: 0 0 0 3px rgba(110,27,60,.12) !important;
  outline: none !important;
}

.nn-f__sale{
  display: flex;
  align-items: center;
  gap: 9px;
  font-family: var(--nn-body);
  font-size: 12.5px;
  color: var(--nn-ink);
  cursor: pointer;
}
.nn-f__sale input{ width: 16px; height: 16px; accent-color: var(--nn-plum); margin: 0; }

/* --- 58.4 Results ---------------------------------------------------------- */
body.woocommerce-shop li.product.nn-hidden{ display: none !important; }
.nn-shop-empty{
  grid-area: grid;
  margin: 30px 0 0 !important;
  padding: 36px 24px;
  text-align: center;
  font-family: var(--nn-body) !important;
  font-size: 15px !important;
  color: var(--nn-muted) !important;
  background: var(--nn-blush);
  border-radius: 18px;
}
body.woocommerce-shop .nn-shop-has-filters .nn-showmore{ grid-area: grid; }

/* --- 58.5 Responsive ------------------------------------------------------- */
@media only screen and (max-width: 1100px){
  body.woocommerce-shop .woocommerce.nn-shop-has-filters{
    grid-template-columns: 210px minmax(0, 1fr);
    column-gap: 22px;
  }
}

@media only screen and (max-width: 980px){
  /* Stack: the panel becomes a block above the grid rather than a rail. */
  body.woocommerce-shop .woocommerce.nn-shop-has-filters{
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "filters"
      "toolbar"
      "grid";
  }
  .nn-f{
    position: static;
    max-height: none;
    margin-bottom: 22px;
  }
  .nn-f__pills{ gap: 8px; }
  body.woocommerce-shop .nn-shop-has-filters .nn-search,
  body.woocommerce-shop .nn-shop-has-filters .woocommerce-ordering{
    justify-self: stretch;
    width: 100%;
    margin-bottom: 14px !important;
  }
  body.woocommerce-shop .nn-shop-has-filters .woocommerce-ordering select.orderby{ width: 100%; }
}

@media only screen and (max-width: 767px){
  .nn-f{ padding: 18px 16px 20px; border-radius: 18px; }
  /* 16px stops iOS zooming on focus */
  .nn-search__input,
  .nn-f__price input{ font-size: 16px !important; }
}


/* ===== PART B — original site CSS ===== */
/* Old preview code do not */
body{
		color: #000;
}
h1, h2, h3, h4, h5, h6, p, a, span, strong, li, small, div{
		font-family: 'Poppins', sans-serif !important;
		
}
div.woocommerce-message{
	border-radius: 15px;
    background-color: #eeeeee !important;
    color: #000 !important;
    font-size: 16px !important;	
}
.wc-tab>h2:first-of-type{
		display: none;
}
.single-product #main-content ul li,.single-product #main-content ol li{margin-bottom:1.5rem;}
.single-product ul, .single-product ol{
		  list-style-position:outside!important;
  padding-left: 1em!important;
}
.single-product .woocommerce-tabs h2{
	font-size: 20px!important;	
}
p.woocommerce-notice.woocommerce-notice--success.woocommerce-thankyou-order-received {
		font-size: 22px !important;
    padding-bottom: 3rem;
    text-transform: uppercase;
    font-weight: 600;
    color: #008f00;
}
.woocommerce ul.order_details li {
   font-size: 15px!important;
}
.woocommerce-checkout strong{
		font-weight:400!important;
}
.woocommerce-checkout ul{
		padding-left:0!important;
}
.wc_payment_methods.payment_methods.methods{
		padding-left:1rem!important;
}
#payid_payment-admin-note{
		display:none!important;
}
.woocommerce-checkout p{
		font-size:16px!important;
}
.woocommerce-checkout h2 {
    font-size: 22px!important;
    font-weight: 600;
    text-transform: uppercase;
    padding-bottom: 1.5rem;
}
.single-product .woocommerce-tabs h2, .single-product h3{
	font-size: 17px!important;
		font-weight: 600;
}
.related.products h2{
	font-size: 17px!important;
		font-weight: 600;	
}
.yith-wcwl-add-to-wishlist .yith-wcwl-add-button{
		align-items:start!important;
}
p, li{
		font-size: 14px;
}
.price{
		margin-bottom: 1rem;
}
.single-product h1{
		font-size:20px;
}
.single-product h3{
		padding-top: 1.5rem;
}
img{
		border-radius: 30px!important;
}
input, textarea, button, a.et_pb_button, .woocommerce-tabs.wc-tabs-wrapper{
		border-radius: 15px!important;
}
a.et_pb_button:hover{
		border-radius: 15px!important;
}
.woocommerce span.onsale, .woocommerce-page span.onsale{
				border-radius: 15px!important;
		font-size: 14px!important;
		background-color:#c5295c!important;
}
.wp-caption{
		background-color:unset;
		border: unset;
		padding: 0;
}
.woocommerce-tabs.wc-tabs-wrapper{
		overflow: hidden;
}
.woocommerce-loop-product__title{
		line-height: 22px!important;
}
.reviews_tab a{font-weight: 400;
  text-transform: uppercase;
  font-size: 10px;}
.woocommerce-result-count {
    font-size: 10px!important;
}
.woocommerce-products-header__title{font-size: 20px;
  text-transform: uppercase;
  font-weight: 700;}
.input-text.qty{background-color:unset!important;border:1px solid #000!important;padding: 15px 0px!important;} 
.summary .price bdi,.summary .price .woocommerce-Price-currencySymbol{font-weight:400;padding: 0 0 1rem!important;font-size:16px!important;}
.woocommerce-product-details__short-description p{font-size:14px!important;color:#000!important;}
.add_to_wishlist {color: #000!important;}
button:after{display:none!important;padding:0!important;}
button{border: 1px solid #000;}
.single_add_to_cart_button{border: 1px solid #000!important; border-radius: 15!important; color: #000!important; text-transform: uppercase; font-size: 16px!important; padding: 13px 25px!important;}
.single_add_to_cart_button:after{font-size: 25px!important; position: relative!important; top: 4px!important;}
.single_add_to_cart_button:hover{background-color:#000!important;color: #fff!important;}
a.button.yith-wcqv-button {
		border: 1px solid #000;
    border-radius: 0px;
    color: #000 !important;
    text-transform: uppercase;
font-size: 10px;
  padding: 5px 20px !important;
}
a.button.yith-wcqv-button:hover{
		border:unset!important;
}
a.button.yith-wcqv-button:after{    display:none!important;}

a.button.yith-wcqv-button:hover {
    color: #000 !important;
}

.yith-wcqv-button{color: #000 !important;}

.button.single_add_to_cart_button.button.alt,a.compare.button{color:#a925c6;}

span.onsale{color: #fff !important; background-color: #a925c6 !important;}

span.woocommerce-Price-currencySymbol,span.woocommerce-Price-amount.amount bdi{color:#333 !important;}
.posted_in a{color:#333 !important;}

section.related.products h2.woocommerce-loop-product__title {
    min-height: 80px;
    position: relative;
		    font-weight: 400;
font-size: 14px !important;
  line-height: 20px;
}
.woocommerce-shop  h2.woocommerce-loop-product__title {
    min-height: 50px;
}
.woocommerce-shop  h2.woocommerce-loop-product__title {
    font-weight: 400;
font-size: 14px !important;
  line-height: 20px;
}
.woocommerce-LoopProduct-link .woocommerce-loop-product__title{text-transform:uppercase!important;}
.product_meta,.compare.button,.woocommerce-breadcrumb{display: none !important;}
.iscreenvwr{text-align:center;padding:40px 0;background-color: #eeeeee;}
#main-footer{background-color:#eee !important}
#top-menu a{text-transform:uppercase;font-weight: 400;font-size: 12px;color:#000;}
.home .woocommerce-Price-amount.amount, .related.products .woocommerce-Price-amount.amount{display: none;}
@media only screen and (min-width:769px){.main-head{font-size: 40px; font-weight: 800; text-transform: uppercase;}
.entry-summary .entry-title {
  padding-bottom: 14px !important;
  font-size: 18px;
  text-transform: uppercase;
}
		.single-post img{
				max-width: 70%;
		}
}
@media only screen and (max-width:768px){.main-head{font-size: 25px; font-weight: 800; text-transform: uppercase;}}
.single-post h2, .single-post h3{
		margin-top: 1rem;
		color: #8F1340;
}
.single-post h1, .single-post h2, .single-post h3{
		color: #8F1340;
}
.single-post h3{
		font-size: 17px;
}
.single-post img{
		margin-top: 1rem;
}
.post img{
		height: 100%!important;
		width: 100%!important;
		object-fit: cover;
}
.single-post #content-area *{
		font-weight: 400;
}
.single-post a{
		text-decoration: underline;
}
#comment-wrap{
		display:none!important;
}

/* Featured items: left column images side by side to match the right column mosaic */
body.home .et_pb_section_3 .et_pb_image_1,
body.home .et_pb_section_3 .et_pb_image_2{
  display: inline-block !important;
  vertical-align: top;
  width: calc(50% - 9px) !important;
}
body.home .et_pb_section_3 .et_pb_image_1{ margin-right: 18px !important; }

/* ===== Pretty fixes added 22 Oct 2026 (trust row, hero, buttons, featured, cart) ===== */

/* Trust row (01 / 02 / 03): remove round icon styling from the text modules */
body.home .et_pb_text_7,
body.home .et_pb_text_10 {
  font-size: 14px !important;
  margin: 0 !important;
}
body.home .et_pb_text_7 .et_pb_text_inner,
body.home .et_pb_text_10 .et_pb_text_inner {
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: none !important;
}

/* Hero bio: soft blush card */
body.home .et_pb_text_3 {
  margin-bottom: 22px !important;
}
body.home .et_pb_text_3 .et_pb_text_inner p {
  display: block;
  background: var(--nn-blush) !important;
  border: 0;
  border-left: 3px solid var(--nn-gold);
  border-radius: 14px;
  box-shadow: none;
  padding: 18px 22px !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}
body.home .et_pb_text_3 .et_pb_text_inner p::before {
  content: none;
}

/* Free shipping pill */
body.home .et_pb_text_4 {
  font-size: inherit !important;
  margin: 0 0 18px !important;
}
body.home .et_pb_text_4 .et_pb_text_inner {
  display: inline-flex;
  align-items: center;
  width: auto;
  height: auto;
  margin: 0;
  padding: 8px 18px 8px 44px;
  background-color: #fff;
  background-position: 16px center;
  background-size: 18px 18px;
  border: 1px solid var(--nn-line);
  border-radius: 999px;
}
body.home .et_pb_text_4 .et_pb_text_inner p {
  margin: 0 !important;
  padding: 0 !important;
}
body.home .et_pb_text_4 .et_pb_text_inner p strong {
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  color: var(--nn-plum) !important;
}
body.home .et_pb_button_module_wrapper.et_pb_button_1_wrapper {
  text-align: left !important;
}

/* Button hover: keep size and shape */
body.home #page-container .et_pb_section .et_pb_button.et_pb_button_0:hover,
body.home #page-container .et_pb_section .et_pb_button.et_pb_button_1:hover {
  padding: 17px 42px !important;
  border-radius: 999px !important;
  letter-spacing: 2.25px !important;
  background-color: var(--nn-plum-deep) !important;
  border-color: var(--nn-plum-deep) !important;
}

/* Featured Items: centred heading, four even cards */
body.home .et_pb_row.et_pb_row_3 {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 22px;
  row-gap: 0;
  align-items: start;
}
body.home .et_pb_row.et_pb_row_3::after {
  content: none !important;
}
body.home .et_pb_row.et_pb_row_3 > .et_pb_column.et_pb_column_6,
body.home .et_pb_row.et_pb_row_3 > .et_pb_column.et_pb_column_7 {
  display: contents !important;
}
body.home .et_pb_row_3 .et_pb_module.et_pb_text_14,
body.home .et_pb_row_3 .et_pb_module.et_pb_text_15 {
  grid-column: 1 / -1;
}
body.home .et_pb_row_3 .et_pb_text_14 .et_pb_text_inner,
body.home .et_pb_row_3 .et_pb_text_14 h2,
body.home .et_pb_row_3 .et_pb_text_15 .et_pb_text_inner,
body.home .et_pb_row_3 .et_pb_text_15 p {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.home .et_pb_row_3 .et_pb_module.et_pb_divider_4 {
  grid-column: 1 / -1;
  justify-self: center;
  width: 58px;
  margin: 18px auto 22px !important;
}
body.home .et_pb_row_3 .et_pb_module.et_pb_text_15 {
  margin-bottom: 40px !important;
}
body.home .et_pb_row_3 .et_pb_module.et_pb_image {
  width: 100% !important;
  margin: 0 !important;
}
body.home .et_pb_row_3 .et_pb_image img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  transition: transform 0.5s ease;
}
body.home .et_pb_row_3 .et_pb_image .et_pb_image_wrap:hover img {
  transform: scale(1.04);
}
body.home .et_pb_row_3 .et_pb_image .et_overlay {
  display: none !important;
}
@media (max-width: 980px) {
  body.home .et_pb_row.et_pb_row_3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 22px;
  }
}

/* Cart page: full container width, two cards */
body.woocommerce-cart #sidebar {
  display: none;
}
body.woocommerce-cart #main-content .container::before {
  display: none;
}
body.woocommerce-cart #left-area {
  float: none;
  width: 100%;
  padding-right: 0 !important;
}
body.woocommerce-cart #left-area h1 {
  font-family: var(--nn-display);
  font-size: clamp(34px, 4vw, 48px);
  color: var(--nn-plum);
  margin-bottom: 28px;
}
body.woocommerce-cart .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 32px;
  align-items: start;
}
body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
body.woocommerce-cart .woocommerce > wc-order-attribution-inputs {
  grid-column: 1 / -1;
}
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals {
  width: 100%;
  margin: 0;
}
body.woocommerce-cart .cart-collaterals .cart_totals {
  float: none;
  width: 100%;
  position: sticky;
  top: 110px;
}
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart_totals {
  background: #fff;
  border: 1px solid var(--nn-line);
  border-radius: 18px;
  box-shadow: 0 18px 40px -30px rgba(74, 16, 40, 0.45);
  padding: 26px 28px;
}
body.woocommerce-cart table.shop_table {
  border: 0;
  border-radius: 0;
  margin: 0;
  border-collapse: collapse;
}
body.woocommerce-cart table.shop_table th,
body.woocommerce-cart table.shop_table td {
  border: 0;
  border-bottom: 1px solid var(--nn-line);
  padding: 16px 10px;
  vertical-align: middle;
}
body.woocommerce-cart table.cart thead th {
  padding-top: 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--nn-muted);
}
body.woocommerce-cart table.cart td.product-thumbnail img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 12px;
}
body.woocommerce-cart table.cart td.product-price,
body.woocommerce-cart table.cart td.product-subtotal {
  font-size: 15px;
}
body.woocommerce-cart table.cart td.product-subtotal {
  font-weight: 600;
}
body.woocommerce-cart table.cart a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--nn-blush);
  color: var(--nn-plum) !important;
  font-size: 18px;
  line-height: 1;
}
body.woocommerce-cart table.cart a.remove:hover {
  background: var(--nn-plum);
  color: #fff !important;
}
body.woocommerce-cart table.cart .quantity input.qty {
  width: 68px !important;
  height: 42px !important;
  padding: 0 8px !important;
  border: 1px solid var(--nn-line) !important;
  border-radius: 999px !important;
  background: var(--nn-blush) !important;
  box-shadow: none !important;
  text-align: center;
  font-size: 15px !important;
  color: var(--nn-plum) !important;
}
body.woocommerce-cart table.cart td.actions {
  border-bottom: 0;
  padding: 20px 0 0;
  text-align: right;
}
body.woocommerce-cart table.cart td.actions button[name="update_cart"] {
  border-radius: 999px !important;
  padding: 10px 26px !important;
  font-size: 12px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
}
body.woocommerce-cart .cart_totals h2 {
  font-family: var(--nn-display);
  font-size: 28px;
  color: var(--nn-plum);
  margin: 0 0 10px;
}
body.woocommerce-cart .cart_totals table.shop_table th {
  width: 34%;
  vertical-align: top;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--nn-muted);
}
body.woocommerce-cart .cart_totals table.shop_table td {
  line-height: 1.6;
}
body.woocommerce-cart .cart_totals ul#shipping_method li {
  margin: 0 0 8px;
  padding: 0;
}
body.woocommerce-cart .cart_totals tr.order-total th,
body.woocommerce-cart .cart_totals tr.order-total td {
  border-bottom: 0;
  font-size: 18px;
  color: var(--nn-plum);
}
body.woocommerce-cart .cart_totals tr.order-total td strong {
  font-size: 22px;
}
body.woocommerce-cart .wc-proceed-to-checkout {
  padding: 18px 0 0;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display: block;
  width: 100%;
  text-align: center;
  border-radius: 999px !important;
  padding: 16px 24px !important;
  font-size: 13px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
  background: var(--nn-plum) !important;
  border-color: var(--nn-plum) !important;
  color: #fff !important;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
  background: var(--nn-plum-deep) !important;
  border-color: var(--nn-plum-deep) !important;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button::after {
  display: none;
}
@media (max-width: 980px) {
  body.woocommerce-cart .woocommerce {
    grid-template-columns: 1fr;
  }
  body.woocommerce-cart .cart-collaterals .cart_totals {
    position: static;
  }
  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart_totals {
    padding: 18px;
  }
}

/* Checkout payment methods: radio inline with the label */
body.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method {
  position: relative;
}
body.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > input.input-radio {
  position: absolute;
  left: 18px;
  top: 27px;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  margin: 0 !important;
  z-index: 2;
  cursor: pointer;
  accent-color: var(--nn-plum);
}
body.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method > label {
  min-height: 54px;
  align-items: center;
  padding-left: 46px !important;
  cursor: pointer;
}

/* --------------------------------------------------------------------------
   Homepage "New Handmade" heading (section_0)
   Overrides the old hero-style eyebrow rule. Scoped to body.home .et_pb_section_0 only.
   -------------------------------------------------------------------------- */

/* Centre the whole heading block */
body.home #page-container .et_pb_section_0 .et_pb_text_0,
body.home #page-container .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner{
  text-align: center !important;
}
body.home #page-container .et_pb_section_0 .et_pb_text_0{
  margin-bottom: 0 !important;
}

/* Eyebrow: centred, with fine gold rules either side */
body.home #page-container .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner::before{
  content: "Handmade in Queensland" !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--nn-gold);
  margin: 0 auto 16px !important;
  background:
    linear-gradient(90deg, transparent, var(--nn-gold-soft)) left center / 48px 1px no-repeat,
    linear-gradient(90deg, var(--nn-gold-soft), transparent) right center / 48px 1px no-repeat;
  width: max-content;
  max-width: 100%;
  padding-inline: 64px;
  box-sizing: border-box;
}

/* Headline */
body.home #page-container .et_pb_section_0 .et_pb_text_0 h2{
  font-family: var(--nn-display) !important;
  font-size: clamp(36px, 4.6vw, 56px) !important;
  font-weight: 500 !important;
  line-height: 1.05 !important;
  letter-spacing: -.005em !important;
  text-transform: none !important;
  color: var(--nn-plum) !important;
  text-align: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Subline under the headline */
body.home #page-container .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner::after{
  content: "Fresh pieces from the studio, each one made by hand";
  display: block;
  font-family: var(--nn-display);
  font-style: italic;
  font-size: 19px;
  line-height: 1.4;
  color: #8A5A6C;
  margin-top: 12px;
}

/* Divider: gold line with a small diamond in the middle */
body.home #page-container .et_pb_section_0 .et_pb_divider_0{
  position: relative;
  width: 120px !important;
  max-width: 120px !important;
  height: 12px !important;
  margin: 22px auto 48px !important;
}
body.home #page-container .et_pb_section_0 .et_pb_divider_0::before{
  border-top: 0 !important;
  width: 100% !important;
  height: 1px !important;
  top: 50% !important;
  background: linear-gradient(90deg, transparent, var(--nn-gold) 30%, var(--nn-gold) 70%, transparent) !important;
}
body.home #page-container .et_pb_section_0 .et_pb_divider_0::after{
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  background: var(--nn-gold);
  transform: translate(-50%, -50%) rotate(45deg);
  box-shadow: 0 0 0 5px var(--nn-blush);
}

/* Tighten the top of the section */
body.home #page-container .et_pb_section_0.et_pb_section{
  padding-top: 72px !important;
}

@media (max-width: 767px){
  body.home #page-container .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner::before{
    padding-inline: 0;
    background: none;
    letter-spacing: .26em;
  }
  body.home #page-container .et_pb_section_0 .et_pb_text_0 .et_pb_text_inner::after{
    font-size: 17px;
  }
  body.home #page-container .et_pb_section_0 .et_pb_divider_0{
    margin-bottom: 32px !important;
  }
  body.home #page-container .et_pb_section_0.et_pb_section{
    padding-top: 52px !important;
  }
}

/* --------------------------------------------------------------------------
   Single product: Description / Reviews tabs restyle + read more
   Scoped to body.single-product .woocommerce-tabs only.
   -------------------------------------------------------------------------- */

/* Tab bar */
body.single-product #page-container .woocommerce-tabs ul.tabs{
  display: flex !important;
  justify-content: center;
  gap: 8px;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--nn-gold-soft) !important;
  padding: 0 !important;
  margin: 0 0 40px !important;
}
body.single-product #page-container .woocommerce-tabs ul.tabs::before,
body.single-product #page-container .woocommerce-tabs ul.tabs li::before,
body.single-product #page-container .woocommerce-tabs ul.tabs li::after{
  display: none !important;
}
body.single-product #page-container .woocommerce-tabs ul.tabs li{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative;
}
body.single-product #page-container .woocommerce-tabs ul.tabs li a{
  display: inline-block !important;
  font-family: var(--nn-body) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: .24em !important;
  text-transform: uppercase !important;
  color: #9A7C86 !important;
  padding: 14px 26px 16px !important;
  margin: 0 0 -1px !important;
  border-bottom: 2px solid transparent !important;
  transition: color .25s ease, border-color .25s ease;
}
body.single-product #page-container .woocommerce-tabs ul.tabs li a:hover{
  color: var(--nn-plum) !important;
}
body.single-product #page-container .woocommerce-tabs ul.tabs li.active a{
  color: var(--nn-plum) !important;
  border-bottom-color: var(--nn-gold) !important;
}

/* Panel card */
body.single-product #page-container .woocommerce-tabs .woocommerce-Tabs-panel{
  max-width: 860px;
  margin: 0 auto !important;
  padding: 48px 56px 40px !important;
  background: linear-gradient(180deg, #FFFBFA 0%, var(--nn-blush) 100%) !important;
  border: 1px solid #F1E2E4 !important;
  border-radius: 20px !important;
  box-shadow: 0 30px 60px -40px rgba(74,16,40,.35);
  position: relative;
  box-sizing: border-box;
}
body.single-product #page-container .woocommerce-tabs .woocommerce-Tabs-panel p{
  font-size: 15px !important;
  line-height: 1.85 !important;
  color: #4A3A40 !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
}
body.single-product #page-container .woocommerce-tabs .woocommerce-Tabs-panel h3{
  font-family: var(--nn-display) !important;
  font-size: 26px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: var(--nn-plum) !important;
  margin: 38px 0 12px !important;
  padding: 0 !important;
}
body.single-product #page-container .woocommerce-tabs .woocommerce-Tabs-panel h3::before{
  content: "";
  display: block;
  width: 28px;
  height: 1px;
  background: var(--nn-gold);
  margin-bottom: 14px;
}

/* Hide the duplicate "Description" heading inside the panel */
body.single-product #page-container .woocommerce-tabs #tab-description .nn-rm-body > h2:first-child,
body.single-product #page-container .woocommerce-tabs #tab-description > h2:first-child{
  display: none !important;
}

/* Read more: collapsed state (class added by the read more script) */
body.single-product #page-container .woocommerce-tabs .woocommerce-Tabs-panel.nn-rm .nn-rm-body{
  overflow: hidden;
  transition: max-height .6s ease;
}
body.single-product #page-container .woocommerce-tabs .woocommerce-Tabs-panel.nn-rm.nn-rm-collapsed .nn-rm-body{
  max-height: 520px;
  -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent 100%);
          mask-image: linear-gradient(180deg, #000 60%, transparent 100%);
}
body.single-product #page-container .woocommerce-tabs .nn-rm-wrap{
  text-align: center;
  margin-top: 22px;
}
body.single-product #page-container .woocommerce-tabs .nn-rm-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--nn-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--nn-plum);
  background: #fff;
  border: 1px solid var(--nn-plum);
  border-radius: 999px;
  padding: 13px 28px;
  cursor: pointer;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
body.single-product #page-container .woocommerce-tabs .nn-rm-btn:hover{
  background: var(--nn-plum);
  color: #fff;
  transform: translateY(-1px);
}
body.single-product #page-container .woocommerce-tabs .nn-rm-btn::after{
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .25s ease;
}
body.single-product #page-container .woocommerce-tabs .nn-rm-btn[aria-expanded="true"]::after{
  transform: translateY(2px) rotate(-135deg);
}

@media (max-width: 767px){
  body.single-product #page-container .woocommerce-tabs ul.tabs li a{
    padding: 12px 14px 14px !important;
    letter-spacing: .18em !important;
  }
  body.single-product #page-container .woocommerce-tabs .woocommerce-Tabs-panel{
    padding: 32px 22px 28px !important;
    border-radius: 16px !important;
  }
  body.single-product #page-container .woocommerce-tabs .woocommerce-Tabs-panel h3{
    font-size: 23px !important;
  }
  body.single-product #page-container .woocommerce-tabs .woocommerce-Tabs-panel.nn-rm.nn-rm-collapsed .nn-rm-body{
    max-height: 440px;
  }
}

/* --------------------------------------------------------------------------
   Footer bottom: menu and copyright on the same alignment
   Scoped to #et-footer-nav and #footer-bottom only.
   -------------------------------------------------------------------------- */
#main-footer #et-footer-nav .bottom-nav{
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 26px;
  row-gap: 8px;
  padding: 16px 0 !important;
  margin: 0 !important;
}
#main-footer #et-footer-nav .bottom-nav li{
  padding: 0 !important;
  margin: 0 !important;
}
#main-footer #footer-bottom #footer-info{
  padding: 0 !important;
}

@media (max-width: 980px){
  #main-footer #et-footer-nav .bottom-nav{
    justify-content: center;
    text-align: center !important;
  }
  #main-footer #footer-bottom #footer-info,
  #main-footer #footer-bottom .et-social-icons{
    float: none !important;
    text-align: center !important;
    padding: 0 !important;
    margin: 0 auto !important;
  }
}


/* ===== PART C — Customizer Additional CSS ===== */
/* === Cart: tidy Shipping block in Cart totals === */
.woocommerce-cart .cart_totals ul.woocommerce-shipping-methods{margin:0 0 12px;padding:0;list-style:none}
.woocommerce-cart .cart_totals ul.woocommerce-shipping-methods li{display:grid;grid-template-columns:18px 1fr;column-gap:8px;align-items:start;margin:0 0 10px;padding:0;font-size:14px !important;line-height:1.45 !important;text-align:left}
.woocommerce-cart .cart_totals ul.woocommerce-shipping-methods li input.shipping_method{margin:3px 0 0;width:14px;height:14px}
.woocommerce-cart .cart_totals ul.woocommerce-shipping-methods li label{display:block;margin:0;font-size:14px;line-height:1.45}
.woocommerce-cart .cart_totals ul.woocommerce-shipping-methods li label .amount{font-weight:600;white-space:nowrap}
.woocommerce-cart .cart_totals p.woocommerce-shipping-destination{margin:4px 0 6px;padding:10px 0 0;border-top:1px solid #eee;font-size:13px !important;line-height:1.5 !important;color:#666 !important}
.woocommerce-cart .cart_totals p.woocommerce-shipping-destination strong{font-weight:500;color:#333}
.woocommerce-cart .cart_totals .woocommerce-shipping-calculator,.woocommerce-cart .cart_totals .woocommerce-shipping-calculator p{font-size:13px !important;line-height:1.5 !important}

/* === Homepage: headband / fascinator info section as cards (section 5, text modules 16-19) === */
@media (min-width:981px){
body.home .et_pb_section_5 .et_pb_row_4,body.home .et_pb_section_5 .et_pb_row_5{display:flex;align-items:stretch}
body.home .et_pb_section_5 .et_pb_row_4>.et_pb_column,body.home .et_pb_section_5 .et_pb_row_5>.et_pb_column{display:flex;flex-direction:column}
body.home .et_pb_section_5 .et_pb_row_4>.et_pb_column>.et_pb_text,body.home .et_pb_section_5 .et_pb_row_5>.et_pb_column>.et_pb_text{flex:1 1 auto}
}
body.home .et_pb_section_5 .et_pb_text_16,body.home .et_pb_section_5 .et_pb_text_17,body.home .et_pb_section_5 .et_pb_text_18,body.home .et_pb_section_5 .et_pb_text_19{position:relative;margin-bottom:30px !important;padding:36px 38px 32px !important;background:rgba(255,251,249,.95);border:1px solid rgba(230,211,180,.7);border-radius:18px;box-shadow:0 30px 70px -28px rgba(74,16,40,.55);text-align:left !important;overflow:hidden}
body.home .et_pb_section_5 .et_pb_text_16::before,body.home .et_pb_section_5 .et_pb_text_17::before,body.home .et_pb_section_5 .et_pb_text_18::before,body.home .et_pb_section_5 .et_pb_text_19::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#6E1B3C,#C9527A 55%,#B98B4E)}
body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner p,body.home .et_pb_section_5 .et_pb_text_17 .et_pb_text_inner p,body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner p,body.home .et_pb_section_5 .et_pb_text_19 .et_pb_text_inner p,body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner li{color:#4A3D43 !important;font-size:15px !important;line-height:1.7 !important;text-align:left !important;text-shadow:none !important}
body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner p,body.home .et_pb_section_5 .et_pb_text_17 .et_pb_text_inner p,body.home .et_pb_section_5 .et_pb_text_19 .et_pb_text_inner p{padding-bottom:14px}
body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner p:last-child,body.home .et_pb_section_5 .et_pb_text_17 .et_pb_text_inner p:last-child,body.home .et_pb_section_5 .et_pb_text_19 .et_pb_text_inner p:last-child{padding-bottom:0}
body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner p:first-child,body.home .et_pb_section_5 .et_pb_text_17 .et_pb_text_inner p:first-child{font-family:'Cormorant Garamond',Georgia,serif !important;font-size:26px !important;line-height:1.25 !important;font-weight:600 !important;color:#6E1B3C !important;padding-bottom:12px}
body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner p:first-child strong,body.home .et_pb_section_5 .et_pb_text_17 .et_pb_text_inner p:first-child strong{font-family:inherit !important;font-weight:700;color:inherit !important}
body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner h3,body.home .et_pb_section_5 .et_pb_text_19 .et_pb_text_inner h3{font-family:'Cormorant Garamond',Georgia,serif !important;font-size:30px !important;line-height:1.2 !important;font-weight:600 !important;color:#6E1B3C !important;text-align:left !important;text-shadow:none !important;margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid rgba(110,27,60,.14)}
body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner h3 *,body.home .et_pb_section_5 .et_pb_text_19 .et_pb_text_inner h3 *{font-family:inherit !important;font-weight:inherit !important;color:inherit !important}
body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner h3:not(:first-child){margin-top:30px}
body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner ul{list-style:none !important;margin:0;padding:0 !important}
body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner ul li{position:relative;list-style:none !important;margin:0 0 10px;padding:0 0 0 26px !important}
body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner ul li::before{content:"";position:absolute;left:2px;top:.62em;width:9px;height:9px;border-radius:50%;background:#B98B4E;box-shadow:0 0 0 4px #F5E1E6}
body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner strong,body.home .et_pb_section_5 .et_pb_text_17 .et_pb_text_inner strong,body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner strong,body.home .et_pb_section_5 .et_pb_text_19 .et_pb_text_inner strong{color:#2A2024 !important;text-shadow:none !important}
body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner p:first-child strong,body.home .et_pb_section_5 .et_pb_text_17 .et_pb_text_inner p:first-child strong{color:#6E1B3C !important}
body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner span,body.home .et_pb_section_5 .et_pb_text_17 .et_pb_text_inner span,body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner span,body.home .et_pb_section_5 .et_pb_text_19 .et_pb_text_inner span,body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner em,body.home .et_pb_section_5 .et_pb_text_19 .et_pb_text_inner em{color:inherit !important;text-shadow:none !important}
body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner a,body.home .et_pb_section_5 .et_pb_text_17 .et_pb_text_inner a,body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner a,body.home .et_pb_section_5 .et_pb_text_19 .et_pb_text_inner a{color:#6E1B3C !important;text-decoration:underline}
@media (max-width:980px){
body.home .et_pb_section_5 .et_pb_text_16,body.home .et_pb_section_5 .et_pb_text_17,body.home .et_pb_section_5 .et_pb_text_18,body.home .et_pb_section_5 .et_pb_text_19{padding:28px 24px 24px !important;margin-bottom:20px !important}
body.home .et_pb_section_5 .et_pb_text_18 .et_pb_text_inner h3,body.home .et_pb_section_5 .et_pb_text_19 .et_pb_text_inner h3{font-size:26px !important}
body.home .et_pb_section_5 .et_pb_text_16 .et_pb_text_inner p:first-child,body.home .et_pb_section_5 .et_pb_text_17 .et_pb_text_inner p:first-child{font-size:23px !important}
}

/* ==========================================================================
   Nancy Niepess: header + product buy box refresh
   Header rules scoped to #main-header; buy box rules scoped to
   body.single-product .summary only.
   ========================================================================== */

/* ---------- Header ---------- */
#main-header{
  background: linear-gradient(180deg, #FFFBF9 0%, #FCF1F2 100%) !important;
  box-shadow: 0 10px 30px -22px rgba(110,27,60,.45) !important;
}
#main-header::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--nn-gold-soft) 20%, var(--nn-gold) 50%, var(--nn-gold-soft) 80%, transparent 100%);
  pointer-events: none;
}
/* Logo tinted to the brand plum */
#main-header #logo{
  filter: brightness(0) saturate(100%) invert(14%) sepia(41%) saturate(3600%) hue-rotate(312deg) brightness(92%) contrast(95%);
  transition: opacity .3s ease, transform .3s ease;
}
#main-header .logo_container a:hover #logo{
  opacity: .85;
}

/* Nav links */
#main-header #top-menu > li{
  padding-right: 26px;
}
#main-header #top-menu > li > a{
  position: relative;
  color: var(--nn-plum) !important;
  font-weight: 500 !important;
  letter-spacing: .2em !important;
  opacity: 1 !important;
  transition: color .25s ease;
}
#main-header #top-menu > li > a::after{
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  right: auto !important;
  bottom: 12px !important;
  width: 0 !important;
  height: 1px !important;
  background: var(--nn-gold) !important;
  transform: translateX(-50%) !important;
  transition: width .3s ease !important;
  opacity: 1 !important;
}
#main-header #top-menu > li > a:hover::after,
#main-header #top-menu > li.current-menu-item > a::after,
#main-header #top-menu > li.current_page_parent > a::after{
  width: calc(100% - .2em) !important;
}
#main-header #top-menu > li > a:hover{
  color: var(--nn-gold) !important;
}

/* Checkout as a pill CTA */
#main-header #top-menu > li.menu-item-34 > a{
  border: 1px solid var(--nn-plum);
  border-radius: 999px;
  padding: 9px 20px !important;
  margin-top: -9px;
  transition: background .25s ease, color .25s ease;
}
#main-header #top-menu > li.menu-item-34 > a::after{
  display: none !important;
}
#main-header #top-menu > li.menu-item-34 > a:hover{
  background: var(--nn-plum);
  color: #fff !important;
}

/* Cart icon in a soft circle */
#main-header .et-cart-info{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin: -10px 0 0 4px !important;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 1px var(--nn-gold-soft), 0 8px 18px -12px rgba(110,27,60,.6);
  transition: transform .25s ease, box-shadow .25s ease;
}
#main-header .et-cart-info span::before{
  color: var(--nn-plum) !important;
  margin: 0 !important;
}
#main-header .et-cart-info:hover{
  transform: translateY(-1px);
  box-shadow: 0 0 0 1px var(--nn-gold), 0 12px 22px -12px rgba(110,27,60,.7);
}

/* ---------- Product buy box ---------- */
body.single-product .summary form.cart{
  padding: 22px !important;
  margin-bottom: 14px !important;
  background: linear-gradient(160deg, #FFFBFA 0%, var(--nn-blush) 100%);
  border: 1px solid #F1E2E4;
  border-radius: 22px;
  box-shadow: 0 24px 50px -36px rgba(74,16,40,.4);
  column-gap: 12px !important;
  row-gap: 16px !important;
}

/* Quantity as a pill to match the button */
body.single-product .summary form.cart .quantity input.qty{
  width: 92px !important;
  height: 56px !important;
  border-radius: 999px !important;
  background: #fff !important;
  border: 1px solid var(--nn-gold-soft) !important;
  color: var(--nn-plum) !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  text-align: center !important;
  padding: 0 !important;
}

/* Add to cart: richer gradient + shine on hover */
body.single-product .summary form.cart button.single_add_to_cart_button{
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #8A2550 0%, var(--nn-plum) 45%, var(--nn-plum-deep) 100%) !important;
  border: 0 !important;
  box-shadow: 0 18px 34px -18px rgba(110,27,60,.75) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}
body.single-product .summary form.cart button.single_add_to_cart_button::before{
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: -60%;
  width: 40%;
  background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.28) 50%, rgba(255,255,255,0) 100%);
  transform: skewX(-20deg);
  transition: left .7s ease;
}
body.single-product .summary form.cart button.single_add_to_cart_button:hover::before{
  left: 120%;
}
body.single-product .summary form.cart button.single_add_to_cart_button:hover{
  transform: translateY(-2px);
  box-shadow: 0 22px 38px -18px rgba(110,27,60,.85) !important;
}

/* Reassurance line as two gold badges */
body.single-product .summary form.cart::after{
  content: "\2726  Handmade in Queensland    \2022    Free shipping over $70" !important;
  white-space: pre;
  display: block;
  text-align: center;
  margin: 2px 0 0 !important;
  padding: 11px 14px;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  color: var(--nn-gold) !important;
  background: #fff;
  border: 1px dashed var(--nn-gold-soft);
  border-radius: 999px;
}

/* Express checkout + PayPal message */
body.single-product .summary .wcpay-express-checkout-wrapper{
  margin: 0 0 10px !important;
  border-radius: 12px;
  overflow: hidden;
}
body.single-product .summary .ppcp-messages{
  display: flex;
  justify-content: center;
  margin: 0 0 6px !important;
}

/* Wishlist as a soft centred link */
body.single-product .summary .yith-wcwl-add-to-wishlist{
  margin: 6px 0 20px !important;
  padding-top: 16px !important;
  border-top: 1px solid #F1E2E4 !important;
  text-align: center;
}
body.single-product .summary .yith-wcwl-add-to-wishlist a{
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  color: var(--nn-plum) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .2em !important;
  text-transform: uppercase;
  padding: 10px 22px !important;
  border-radius: 999px;
  transition: background .25s ease, color .25s ease;
}
body.single-product .summary .yith-wcwl-add-to-wishlist a:hover{
  background: var(--nn-blush);
  color: var(--nn-plum-deep) !important;
}
body.single-product .summary .yith-wcwl-add-to-wishlist svg,
body.single-product .summary .yith-wcwl-add-to-wishlist .yith-wcwl-icon{
  color: var(--nn-plum) !important;
  stroke: var(--nn-plum);
}

@media (max-width: 980px){
  #main-header .et-cart-info{ margin-top: 0 !important; }
}
@media (max-width: 767px){
  body.single-product .summary form.cart{
    padding: 16px !important;
    border-radius: 18px;
  }
  body.single-product .summary form.cart::after{
    white-space: normal;
    border-radius: 14px;
    letter-spacing: .12em !important;
  }
}

/* Space between related products and footer (single product) */
body.single-product .related.products{
  padding-bottom: 70px !important;
}
@media (max-width: 767px){
  body.single-product .related.products{
    padding-bottom: 45px !important;
  }
}