/* =========================================================
   WHUPLOO GLOBAL SITE SHELL
   Header first.
   Footer will be added here later.
   ========================================================= */

:root{
  --whuploo-cream:#FFF1E0;
  --whuploo-red:#C21B1B;
  --whuploo-dark-red:#86100F;
  --whuploo-black:#171717;
  --whuploo-ink:#2C1F12;
  --whuploo-page:min(1240px,calc(100vw - 80px));
  --whuploo-font:Poppins,Arial,Helvetica,sans-serif;
  --whuploo-ease:cubic-bezier(.22,.61,.36,1);
  --whuploo-snap:cubic-bezier(.16,1,.3,1);
}


/* =========================================================
   WHUPLOO GLOBAL TYPOGRAPHY OWNERSHIP

   Poppins is the Whuploo brand typeface.

   Legal / policy pages remain under their quieter Astra /
   Gutenberg typography system and are deliberately excluded.

   Approved Whuploo font weights:
   - 400 Regular
   - 600 SemiBold
   - 900 Black
   ========================================================= */

body:not(.page-id-3639):not(.page-id-10):not(.page-id-3):not(.page-id-3637):not(.page-id-3646){
  font-family:var(--whuploo-font);
}

body:not(.page-id-3639):not(.page-id-10):not(.page-id-3):not(.page-id-3637):not(.page-id-3646)
:where(h1,h2,h3,h4,h5,h6,p,a,button,input,select,textarea){
  font-family:var(--whuploo-font);
}


/* =========================================================
   WHUPLOO DISPLAY TITLE
   Permanent rebuilt brand typography

   Opt-in only.
   Intended for major brand/editorial titles on:
   - Homepage
   - Shop
   - About
   - Contact
   - FAQ

   Size, colour, alignment and line stagger remain
   composition-specific.
   ========================================================= */

.whuploo-display-title{
  font-family:var(--whuploo-font)!important;
  font-style:normal!important;
  font-weight:900!important;
  line-height:.88!important;
  letter-spacing:-.065em!important;
  word-spacing:normal!important;
  text-transform:none!important;
}


/* ---------------------------------------------------------
   Accessibility
   --------------------------------------------------------- */

.whuploo-skip-link{
  position:fixed;
  left:16px;
  top:-80px;
  z-index:10000;
  padding:12px 16px;
  background:#FFFFFF;
  color:#000000;
  border:2px solid #000000;
}

.whuploo-skip-link:focus{
  top:16px;
}


/* ---------------------------------------------------------
   GLOBAL HEADER
   --------------------------------------------------------- */

.whuploo-global-header{
  width:100%;
  max-width:none;
  height:92px;

  margin:0;
  padding-left:max(40px,calc((100vw - 1240px) / 2));
  padding-right:max(40px,calc((100vw - 1240px) / 2));

  display:grid;
  grid-template-columns:80px 1fr;
  align-items:center;

  position:relative;
  z-index:1000;

  background:transparent;
  border:0;
  box-shadow:none;

  font-family:var(--whuploo-font);
  box-sizing:border-box;
}


/* Logo */

.whuploo-global-header .brand{
  width:54px;
  height:54px;
  margin:0 0 0 50px;
  padding:0;

  display:block;
  overflow:hidden;

  border:0;
  text-decoration:none;
}

.whuploo-global-header .brand img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  margin:0;
  padding:0;
}


/* Desktop navigation */

.whuploo-global-header .desktop-nav{
  justify-self:end;

  display:flex;
  align-items:center;
  gap:38px;

  font-family:var(--whuploo-font);
  font-size:14px;
  font-weight:600;
  line-height:1;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.whuploo-global-header .desktop-nav a{
  font-weight:600;
  position:relative;
  display:block;

  padding:10px 0;

  color:var(--whuploo-ink);
  text-decoration:none;
}

.whuploo-global-header .desktop-nav a::after{
  content:"";

  position:absolute;
  left:0;
  right:100%;
  bottom:4px;

  height:2px;

  background:var(--whuploo-red);

  transition:right .3s var(--whuploo-ease);
}

.whuploo-global-header .desktop-nav a:hover::after,
.whuploo-global-header .desktop-nav a.active::after{
  right:0;
}


/* Header CTA
   Temporarily hidden because Shop already exists
   in the primary navigation. */

.whuploo-global-header .header-cta{
  justify-self:end;

  width:150px;
  display:none;
  align-items:center;
  justify-content:center;

  min-height:46px;
  padding:0 26px;

  background:var(--whuploo-red);
  color:#FFFFFF;

  border:1px solid transparent;
  border-radius:5px;

  font-family:var(--whuploo-font);
  font-size:11px;
  font-weight:600;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-decoration:none;

  box-sizing:border-box;

  transition:
    transform .24s var(--whuploo-snap),
    box-shadow .24s var(--whuploo-ease);
}

.whuploo-global-header .header-cta:hover{
  color:#FFFFFF;
  transform:translateY(-3px);
  box-shadow:0 10px 22px rgba(0,0,0,.13);
}


/* Mobile controls hidden on desktop */

.whuploo-global-header .menu-button,
.whuploo-global-header .mobile-nav{
  display:none;
}


/* ---------------------------------------------------------
   TABLET / MOBILE HEADER
   --------------------------------------------------------- */

@media (max-width:900px){

  :root{
    --whuploo-page:min(calc(100% - 36px),680px);
  }

  .whuploo-global-header{
    width:100%;
    max-width:none;
    height:76px;

    padding-left:max(18px,calc((100vw - 680px) / 2));
    padding-right:max(18px,calc((100vw - 680px) / 2));

    grid-template-columns:1fr auto;
  }

  .whuploo-global-header .brand{
    width:46px;
    height:46px;
    margin-left:0;
  }

  .whuploo-global-header .desktop-nav,
  .whuploo-global-header .header-cta{
    display:none;
  }


  /* Hamburger */

  .whuploo-global-header .menu-button{
    width:46px;
    height:46px;
    padding:0;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;

    background:var(--whuploo-red);

    border:0;
    border-radius:0;
    box-shadow:none;

    cursor:pointer;

    -webkit-appearance:none;
    appearance:none;
  }

  .whuploo-global-header .menu-button span{
    display:block;

    width:18px;
    height:2px;

    background:#FFFFFF;

    transition:transform .25s;
  }

  .whuploo-global-header
  .menu-button[aria-expanded="true"]
  span:first-child{
    transform:translateY(4.5px) rotate(45deg);
  }

  .whuploo-global-header
  .menu-button[aria-expanded="true"]
  span:last-child{
    transform:translateY(-4.5px) rotate(-45deg);
  }


  /* Mobile navigation */

  .whuploo-global-header .mobile-nav{
    position:absolute;
    top:70px;
    right:0;

    width:min(300px,88vw);

    padding:22px;

    display:flex;
    flex-direction:column;
    gap:4px;

    background:var(--whuploo-black);
    color:#FFFFFF;

    opacity:0;
    pointer-events:none;

    transform:translateY(-10px);

    box-shadow:0 26px 70px rgba(58,31,13,.17);

    transition:
      opacity .25s,
      transform .25s;
  }

  .whuploo-global-header .mobile-nav.open{
    opacity:1;
    pointer-events:auto;
    transform:none;
  }

  .whuploo-global-header .mobile-nav a{
    display:block;

    padding:12px 8px;

    color:var(--whuploo-black);

    border-bottom:1px solid rgba(255,255,255,.09);

    font-family:var(--whuploo-font);
    font-size:14px;
    font-weight:400;
    line-height:1.3;
    letter-spacing:.1em;
    text-transform:uppercase;
    text-decoration:none;
  }

  .whuploo-global-header .mobile-nav a.active{
    color:var(--whuploo-black);
  }

}


/* =========================================================
   WHUPLOO ACCOUNT DROPDOWN — DESKTOP
   ========================================================= */

@media (min-width:901px){

  .whuploo-global-header .account-menu{
    position:relative;
    display:flex;
    align-items:center;
  }

  .whuploo-global-header .account-menu-trigger{
    display:flex;
    align-items:center;
    gap:8px;
  }

  .whuploo-global-header .account-menu-arrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    transition:transform .25s var(--whuploo-ease);
  }

  .whuploo-global-header .account-submenu{
    position:absolute;
    z-index:1000;

    top:calc(100% + 12px);
    left:50%;

    width:200px;

    padding:8px 0;

    background:#FFFFFF;
    border:1px solid rgba(23,23,23,.08);
    box-shadow:0 14px 32px rgba(23,23,23,.12);

    opacity:0;
    visibility:hidden;
    pointer-events:none;

    transform:translate(-50%,8px);

    transition:
      opacity .18s var(--whuploo-ease),
      transform .22s var(--whuploo-ease),
      visibility .18s;
  }

  .whuploo-global-header .account-submenu::before{
    content:"";

    position:absolute;
    left:0;
    right:0;
    top:-12px;

    height:12px;
  }

  .whuploo-global-header .account-menu:hover .account-submenu,
  .whuploo-global-header .account-menu:focus-within .account-submenu{
    opacity:1;
    visibility:visible;
    pointer-events:auto;

    transform:translate(-50%,0);
  }

  .whuploo-global-header .account-menu:hover .account-menu-arrow,
  .whuploo-global-header .account-menu:focus-within .account-menu-arrow{
    transform:rotate(180deg);
  }

  .whuploo-global-header .desktop-nav .account-submenu a{
    display:block;

    padding:13px 20px;

    font-family:var(--whuploo-font);
    font-size:13px;
    font-weight:600;
    line-height:1.3;
    letter-spacing:.04em;
    text-transform:uppercase;

    color:var(--whuploo-black);
    background:transparent;
    text-decoration:none;
    white-space:nowrap;
  }

  .whuploo-global-header .desktop-nav .account-submenu a:hover,
  .whuploo-global-header .desktop-nav .account-submenu a:focus-visible{
    color:var(--whuploo-red);
    background:rgba(194,27,27,.06);
  }

  .whuploo-global-header .desktop-nav .account-submenu a::after{
    content:none!important;
    display:none!important;
  }

}


/* =========================================================
   WHUPLOO MOBILE NAV — CLEAN GLOBAL VERSION
   ========================================================= */

@media (max-width:900px){

  .whuploo-global-header .mobile-nav{
    background:var(--whuploo-cream);
    color:var(--whuploo-black);
  }

  .whuploo-global-header .mobile-nav > a{
    display:flex;
    align-items:center;

    min-height:54px;
    padding:0 20px;

    border-bottom:1px solid rgba(23,23,23,.08);

    background:transparent;
    color:var(--whuploo-black);

    font-family:var(--whuploo-font);
    font-size:13px;
    font-weight:400;
    line-height:1;
    letter-spacing:.03em;
    text-transform:uppercase;
    text-decoration:none;
  }

  .whuploo-global-header .mobile-nav > a:hover,
  .whuploo-global-header .mobile-nav > a:focus-visible,
  .whuploo-global-header .mobile-nav > a.active{
    color:var(--whuploo-red);
    background:transparent;
  }

  .whuploo-global-header .mobile-account-menu{
    width:100%;
    border-bottom:1px solid rgba(23,23,23,.08);
  }

  .whuploo-global-header .mobile-account-trigger{
    appearance:none;
    -webkit-appearance:none;

    width:100%;
    min-height:54px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    margin:0;
    padding:0 20px;

    border:0;
    border-radius:0;
    box-shadow:none;

    background:transparent!important;
    color:var(--whuploo-black)!important;

    font-family:var(--whuploo-font);
    font-size:13px;
    font-weight:400;
    line-height:1;
    letter-spacing:.03em;
    text-transform:uppercase;

    cursor:pointer;
  }

  .whuploo-global-header .mobile-account-trigger:hover,
  .whuploo-global-header .mobile-account-trigger:focus-visible{
    background:transparent!important;
    color:var(--whuploo-red)!important;
  }

  .whuploo-global-header .mobile-account-arrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    margin-left:12px;

    transition:transform .22s var(--whuploo-ease);
  }

  .whuploo-global-header .mobile-account-trigger[aria-expanded="true"]
  .mobile-account-arrow{
    transform:rotate(180deg);
  }

  .whuploo-global-header .mobile-account-submenu{
    background:#FFFFFF;

    border-top:1px solid rgba(23,23,23,.08);

    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.5);
  }

  .whuploo-global-header .mobile-account-submenu[hidden]{
    display:none!important;
  }

  .whuploo-global-header .mobile-account-submenu a{
    display:flex;
    align-items:center;

    min-height:50px;
    padding:0 30px;

    border-bottom:1px solid rgba(23,23,23,.07);

    background:#FFFFFF;
    color:var(--whuploo-black);

    font-family:var(--whuploo-font);
    font-size:13px;
    font-weight:400;
    line-height:1;
    letter-spacing:.03em;
    text-transform:uppercase;
    text-decoration:none;
  }

  .whuploo-global-header .mobile-account-submenu a:last-child{
    border-bottom:0;
  }

  .whuploo-global-header .mobile-account-submenu a:hover,
  .whuploo-global-header .mobile-account-submenu a:focus-visible,
  .whuploo-global-header .mobile-account-submenu a.active{
    color:var(--whuploo-red);
  }

}


/* =========================================================
   WHUPLOO GLOBAL FOOTER
   Approved staging footer design
   ========================================================= */

.whuploo-global-footer{
  margin:0;

  background:#0d0d0d;
  color:#FFFFFF;

  padding:
    0
    max(40px,calc((100vw - 1240px)/2))
    30px;

  font-family:var(--whuploo-font);
}


.whuploo-global-footer .payments{
  min-height:88px;

  display:flex;
  align-items:center;

  border-bottom:1px solid #ffffff22;
}

.whuploo-global-footer .payment-logos{
  width:330px;
  max-width:100%;

  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:14px;
}

.whuploo-global-footer .payment-logos img{
  display:block;

  width:auto;
  height:25px;

  max-width:54px;
  max-height:25px;

  object-fit:contain;
  object-position:center;
}

.whuploo-global-footer
.payment-logos img.payment-afterpay{
  max-width:72px;
}


.whuploo-global-footer .footer-grid{
  display:grid;

  grid-template-columns:
    1.6fr
    1fr
    1fr
    1.25fr;

  gap:66px;

  padding:66px 0 56px;
}

.whuploo-global-footer .footer-grid h2{
  margin:0 0 22px;

  color:#FFFFFF;

  font-family:var(--whuploo-font);
  font-size:17px;
  font-weight:600;
  line-height:normal;
}

.whuploo-global-footer .footer-grid p,
.whuploo-global-footer .footer-grid a:not(.footer-cta){
  display:block;

  margin:0 0 8px;

  color:#ffffff9d;

  font-family:var(--whuploo-font);
  font-size:10px;
  font-weight:400;
  line-height:1.65;

  text-decoration:none;
}

.whuploo-global-footer .footer-cta{
  display:flex;
  width:100%;
  align-items:center;
  justify-content:center;

  min-height:46px;

  margin-top:18px;
  padding:0 26px;

  border:1px solid #FFFAF4;
  border-radius:5px;

  background:#FFFAF4;
  color:#0D0D0D;

  font-family:var(--whuploo-font);
  font-size:11px;
  font-weight:600;
  line-height:1;

  letter-spacing:.08em;
  text-transform:uppercase;
  text-decoration:none;

  box-sizing:border-box;

  transition:
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease,
    transform .2s ease;
}

.whuploo-global-footer .footer-cta:hover,
.whuploo-global-footer .footer-cta:focus-visible{
  background:#FFFFFF;
  border-color:#FFFFFF;
  color:#0D0D0D;

  transform:translateY(-2px);
}

.whuploo-global-footer .footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:30px;

  padding-top:22px;

  border-top:1px solid #ffffff22;
}

.whuploo-global-footer .copyright{
  width:auto;

  margin:0;
  padding:0;

  border:0;

  color:#ffffff60;

  font-family:var(--whuploo-font);
  font-size:9px;
  font-weight:400;
  line-height:1.5;
}

.whuploo-global-footer .footer-socials{
  display:flex;
  align-items:center;

  gap:16px;

  margin:0 24px 0 0;
  padding:0;

  flex:0 0 auto;
  overflow:visible;
}

.whuploo-global-footer .footer-socials a{
  width:20px;
  height:20px;

  display:flex;
  align-items:center;
  justify-content:center;

  flex:0 0 20px;

  color:#FFFFFF;

  text-decoration:none;
  overflow:visible;
}

.whuploo-global-footer .footer-socials svg{
  display:block;

  width:100%;
  height:100%;

  fill:currentColor;
  overflow:visible;
}

.whuploo-global-footer .footer-socials a:hover,
.whuploo-global-footer .footer-socials a:focus-visible{
  opacity:.75;
}


/* =========================================================
   TABLET / MOBILE FOOTER
   ========================================================= */

@media (max-width:900px){

  .whuploo-global-footer{
    padding:0 18px 28px;
  }

  .whuploo-global-footer .payments,
  .whuploo-global-footer .footer-grid,
  .whuploo-global-footer .footer-bottom{
    width:var(--whuploo-page);

    margin-left:auto;
    margin-right:auto;
  }

  .whuploo-global-footer .payment-logos{
    width:280px;

    gap:10px;
  }

  .whuploo-global-footer .payment-logos img{
    height:22px;

    max-width:46px;
    max-height:22px;
  }

  .whuploo-global-footer
  .payment-logos img.payment-afterpay{
    max-width:62px;
  }

  .whuploo-global-footer .footer-grid{
    grid-template-columns:1fr 1fr;

    gap:44px 24px;

    padding:56px 0 48px;
  }

  .whuploo-global-footer
  .footer-grid > div:first-child,
  .whuploo-global-footer
  .footer-grid > div:last-child{
    grid-column:1 / 3;
  }

}


/* =========================================================
   PHONE FOOTER
   ========================================================= */

@media (max-width:480px){

  .whuploo-global-footer .payment-logos{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));

    gap:6px;
  }

  .whuploo-global-footer .payment-logos img,
  .whuploo-global-footer
  .payment-logos img.payment-afterpay{
    width:auto;
    height:18px;

    max-width:100%;
    max-height:18px;

    justify-self:center;
  }

  .whuploo-global-footer .footer-grid{
    grid-template-columns:1fr;

    gap:38px;
  }

  .whuploo-global-footer
  .footer-grid > div:first-child,
  .whuploo-global-footer
  .footer-grid > div:last-child{
    grid-column:auto;
  }

  .whuploo-global-footer .footer-bottom{
    flex-direction:column;
    align-items:flex-start;

    gap:16px;
  }

  .whuploo-global-footer .footer-socials{
    order:-1;
  }

}


/* =========================================================
   GLOBAL SITE CANVAS
   All front-end pages except Homepage
   ========================================================= */

body:not(.home):not(.whuploo-v3-home) {
	background: #FFFAF4;
}


/* =========================================================
   SINGLE PRODUCT — CANVAS
   ========================================================= */

body.single-product {
  background:#FFFAF4;
}

body.single-product.ast-separate-container .ast-woocommerce-container {
  background:#FFFAF4 !important;
}

body.single-product .ast-woocommerce-container > .ast-article-single {
  background:transparent !important;
}


/* =========================================================
   SINGLE PRODUCT — RELATED PRODUCTS
   Approved Shop card system, scoped to Related Products only
   ========================================================= */

body.single-product .related.products {
	width: 100%;
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}


/* =========================================================
   RELATED PRODUCTS GRID
   ========================================================= */

body.single-product
.related.products
ul.products:not(.elementor-grid) {
	display: grid;

	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 34px 30px;

	width: 100%;
	max-width: 1100px;

	clear: both;

	margin-left: auto;
	margin-right: auto;
	padding: 0;
}

body.single-product
.related.products
ul.products:not(.elementor-grid)::before,

body.single-product
.related.products
ul.products:not(.elementor-grid)::after {
	display: none;
}


/* =========================================================
   RELATED PRODUCT CARD
   ========================================================= */

body.single-product
.related.products
ul.products
li.product {
	float: none;

	display: flex;
	flex-direction: column;

	width: auto;
	min-width: 0;

	margin: 0;
	padding: 0;

	position: relative;

	background: #FFFFFF;
	border: 1px solid rgba(30, 30, 30, 0.08);
	border-radius: 18px;
	box-shadow: none;

	overflow: hidden;
	text-align: left;

	transition:
		transform 220ms cubic-bezier(0.16, 1, 0.3, 1),
		border-color 220ms ease,
		box-shadow 220ms ease;
}

@media (hover: hover) {

	body.single-product
	.related.products
	ul.products
	li.product:hover {
		transform: none;

		border-color: #C21B1B;

		box-shadow:
			0 0 0 1px #111111;
	}
}


/* =========================================================
   PRODUCT IMAGE
   ========================================================= */

body.single-product
.related.products
ul.products
li.product
.astra-shop-thumbnail-wrap {
	position: relative;

	width: 100%;

	margin: 0;
	padding: 0;

	background: transparent;
	border: 0;
	border-radius: 17px 17px 0 0;

	overflow: hidden;
}

body.single-product
.related.products
ul.products
li.product
.astra-shop-thumbnail-wrap > a {
	display: block;

	width: 100%;

	border-radius: inherit;
	overflow: hidden;
}

body.single-product
.related.products
ul.products
li.product
.astra-shop-thumbnail-wrap img {
	display: block;

	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;

	margin: 0;
	padding: 0;

	object-fit: cover;

	border-radius: inherit;

	transition:
		transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

body.single-product
.related.products
ul.products
li.product
.astra-shop-thumbnail-wrap::after {
	content: "";

	position: absolute;
	left: 0;
	bottom: 0;

	width: 0;
	height: 3px;

	background: #C21B1B;

	pointer-events: none;

	transition:
		width 300ms cubic-bezier(0.16, 1, 0.3, 1);
}

@media (hover: hover) {

	body.single-product
	.related.products
	ul.products
	li.product:hover
	.astra-shop-thumbnail-wrap img {
		transform: scale(1.025);
	}

	body.single-product
	.related.products
	ul.products
	li.product:hover
	.astra-shop-thumbnail-wrap::after {
		width: 100%;
	}
}


/* =========================================================
   PRODUCT INFORMATION
   ========================================================= */

body.single-product
.related.products
ul.products
li.product
.astra-shop-summary-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;

	width: 100%;

	margin: 0;
	padding: 10px 12px 12px;

	background: transparent;

	text-align: left;
}


/* Category */

body.single-product
.related.products
ul.products
li.product
.ast-woo-product-category {
	display: block;

	margin: 0 0 6px;
	padding: 0;

	color: #75695E;

	font-family: var(--whuploo-font);
	font-size: 8px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}


/* Product title */

body.single-product
.related.products
ul.products
li.product
.woocommerce-loop-product__title {
	margin: 0;
	padding: 0;

	color: #1E1E1E;

	font-family: var(--whuploo-font);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.38;
	letter-spacing: -0.015em;

	text-align: left;

	transition: color 180ms ease;
}

body.single-product
.related.products
ul.products
li.product
.ast-loop-product__link:hover
.woocommerce-loop-product__title {
	color: #C21B1B;
}


/* Price */

body.single-product
.related.products
ul.products
li.product
.price {
	display: block;

	margin: 7px 0 0;
	padding: 0;

	color: #1E1E1E;

	font-family: var(--whuploo-font);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;

	text-align: left;
}


/* =========================================================
   NATIVE WOO ACTION — APPROVED SHOP IMAGE OVERLAY
   ========================================================= */

body.single-product
.related.products
ul.products
li.product
.astra-shop-thumbnail-wrap > a.whuploo-card-action {
	position: absolute;

	left: 0;
	right: 0;
	bottom: 0;

	z-index: 6;

	display: flex;
	align-items: center;
	justify-content: space-between;

	width: 100%;
	min-height: 32px;

	margin: 0;
	padding: 0 14px;

	border: 0;
	border-radius: 0;
	box-shadow: none;

	background: #111111;
	color: #FFFFFF;

	font-family: var(--whuploo-font);
	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.045em;
	text-transform: uppercase;

	opacity: 0;
	transform: translateY(100%);
	pointer-events: none;

	transition:
		opacity 180ms ease,
		transform 260ms cubic-bezier(0.16, 1, 0.3, 1),
		background-color 180ms ease;
}

body.single-product
.related.products
ul.products
li.product
.astra-shop-thumbnail-wrap > a.whuploo-card-action::after {
	content: "↗";

	margin-left: auto;

	color: #FFFFFF;

	font-size: 16px;
	font-weight: 600;
	line-height: 1;

	transition:
		transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
}

@media (hover: hover) and (pointer: fine) {

	body.single-product
	.related.products
	ul.products
	li.product:hover
	.astra-shop-thumbnail-wrap > a.whuploo-card-action,

	body.single-product
	.related.products
	ul.products
	li.product:focus-within
	.astra-shop-thumbnail-wrap > a.whuploo-card-action {
		opacity: 1;
		transform: translateY(0);
		pointer-events: auto;
	}

	body.single-product
	.related.products
	ul.products
	li.product
	.astra-shop-thumbnail-wrap > a.whuploo-card-action:hover {
		background: #0D0D0D;
		color: #FFFFFF;
	}

	body.single-product
	.related.products
	ul.products
	li.product
	.astra-shop-thumbnail-wrap > a.whuploo-card-action:hover::after {
		transform: translate(2px, -2px);
	}
}

@media (hover: none), (pointer: coarse), (max-width: 768px) {

	body.single-product
	.related.products
	ul.products
	li.product
	.astra-shop-thumbnail-wrap > a.whuploo-card-action {
		display: none;
	}
}


/* =========================================================
   RELATED PRODUCTS — RESPONSIVE
   Exact approved Shop responsive card behaviour
   ========================================================= */

@media (max-width: 980px) {

	body.single-product
	.related.products
	ul.products:not(.elementor-grid) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 32px 18px;
	}
}

@media (max-width: 767px) {

	body.single-product
	.related.products
	ul.products:not(.elementor-grid) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 30px 12px;
	}

	body.single-product
	.related.products
	ul.products
	li.product
	.astra-shop-thumbnail-wrap {
		border-radius: 13px 13px 0 0;
	}

	body.single-product
	.related.products
	ul.products
	li.product
	.astra-shop-summary-wrap {
		padding: 9px 10px 10px;
	}

	body.single-product
	.related.products
	ul.products
	li.product
	.woocommerce-loop-product__title {
		font-size: 12px;
	}

	body.single-product
	.related.products
	ul.products
	li.product
	.price {
		font-size: 12px;
	}
}


/* =========================================================
   COMMERCE — CANVAS
   Cart / Checkout / Payment / Account
   ========================================================= */

body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-order-pay,
body.woocommerce-account {
	background: #FFFAF4;
}


/* =========================================================
   SINGLE PRODUCT — DESCRIPTION DISCLOSURE
   ========================================================= */

body.single-product
#tab-description
.whuploo-description-toggle {
	display: inline-flex;
	align-items: center;

	width: auto;

	margin: 2px 0 28px;
	padding: 0;

	border: 0;
	border-radius: 0;
	box-shadow: none;

	background: transparent;
	color: #1E1E1E;

	font-family: var(--whuploo-font);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;

	text-decoration: underline;
	text-underline-offset: 4px;

	cursor: pointer;
}

body.single-product
#tab-description
.whuploo-description-toggle:hover,
body.single-product
#tab-description
.whuploo-description-toggle:focus-visible {
	background: transparent;
	color: #C21B1B;
}

body.single-product
#tab-description
.whuploo-description-more {
	margin: 0 0 26px;
}


/* =========================================================
   PRODUCT INFORMATION ACCORDIONS
   ========================================================= */

body.single-product
#tab-description
.whuploo-product-accordion {
	width: 100%;

	margin: 0;
	padding: 0;

	border-top: 1px solid rgba(30, 30, 30, 0.18);
}

body.single-product
#tab-description
.whuploo-product-accordion:last-child {
	border-bottom: 1px solid rgba(30, 30, 30, 0.18);
}

body.single-product
#tab-description
.whuploo-product-accordion-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;

	width: 100%;
	min-height: 58px;

	margin: 0;
	padding: 0;

	border: 0;
	border-radius: 0;
	box-shadow: none;

	background: transparent;
	color: #1E1E1E;

	font-family: var(--whuploo-font);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;

	text-align: left;

	cursor: pointer;
}

body.single-product
#tab-description
.whuploo-product-accordion-toggle:hover,
body.single-product
#tab-description
.whuploo-product-accordion-toggle:focus-visible {
	background: transparent;
	color: #C21B1B;
}

body.single-product
#tab-description
.whuploo-product-accordion-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	margin-left: 20px;

	font-size: 22px;
	font-weight: 400;
	line-height: 1;
}

body.single-product
#tab-description
.whuploo-product-accordion-content {
	padding: 2px 0 28px;
}

body.single-product
#tab-description
.whuploo-description-more[hidden],

body.single-product
#tab-description
.whuploo-product-accordion-content[hidden] {
	display: none !important;
}

@media (max-width: 767px) {

	body.single-product
	#tab-description
	.whuploo-product-accordion-toggle {
		min-height: 54px;

		font-size: 13px;
	}

	body.single-product
	#tab-description
	.whuploo-product-accordion-icon {
		font-size: 20px;
	}

	body.single-product
	#tab-description
	.whuploo-description-toggle {
		margin-bottom: 24px;
	}
}


/* =========================================================
   CART — SECONDARY / UTILITY ACTIONS
   Keep Proceed to Checkout as the only primary red CTA.
   ========================================================= */

body.woocommerce-cart
button[name="apply_coupon"] {
	background: transparent !important;
	color: #1E1E1E !important;

	border: 1px solid rgba(30, 30, 30, 0.35) !important;
	box-shadow: none !important;

	transition:
		border-color 180ms ease,
		color 180ms ease,
		background-color 180ms ease;
}

body.woocommerce-cart
button[name="apply_coupon"]:hover,
body.woocommerce-cart
button[name="apply_coupon"]:focus-visible {
	background: transparent !important;
	border-color: #C21B1B !important;
	color: #C21B1B !important;
}

body.woocommerce-cart
button[name="update_cart"] {
	background: transparent !important;
	color: #1E1E1E !important;

	border: 1px solid rgba(30, 30, 30, 0.35) !important;
	box-shadow: none !important;

	transition:
		border-color 180ms ease,
		color 180ms ease,
		background-color 180ms ease;
}

body.woocommerce-cart
button[name="update_cart"]:not(:disabled):hover,
body.woocommerce-cart
button[name="update_cart"]:not(:disabled):focus-visible {
	background: #1E1E1E !important;
	border-color: #1E1E1E !important;
	color: #FFFFFF !important;
}

body.woocommerce-cart
button[name="update_cart"]:disabled {
	background: #EFEDE8 !important;
	border-color: #D8D3CC !important;
	color: #9A948C !important;

	opacity: 1 !important;
	cursor: not-allowed;
}

@media (max-width: 767px) {

	body.woocommerce-cart
	button[name="update_cart"] {
		display: block;
		width: 100% !important;

		margin-left: 0 !important;
		margin-right: 0 !important;

		box-sizing: border-box;
	}
}

@media (max-width: 767px) {

	body.woocommerce-cart
	.wc-proceed-to-checkout {
		margin-left: -4px;
		margin-right: -4px;
	}

	body.woocommerce-cart
	.wc-proceed-to-checkout
	a.checkout-button {
		display: block;
		width: 100% !important;

		margin-left: 0 !important;
		margin-right: 0 !important;

		box-sizing: border-box;
	}
}


/* =========================================================
   SHIPPING POLICY
   Page ID: 3639
   ========================================================= */

body.page-id-3639 .entry-content {
  max-width:1050px;
  margin-left:auto;
  margin-right:auto;
  padding-left:28px;
  padding-right:28px;
  padding-bottom:80px;
}

body.page-id-3639 .entry-content h1 {
  margin-bottom:0;
}

body.page-id-3639 .entry-content > .wp-block-spacer {
  height:30px !important;
}

body.page-id-3639 .entry-content > p {
  max-width:920px;
  line-height:1.75;
}

body.page-id-3639 .entry-content .wp-block-uagb-advanced-heading:not(:first-child) {
  margin-top:38px;
}

body.page-id-3639 .entry-content h2 {
  margin-top:0;
  margin-bottom:18px;
  line-height:1.15;
}

body.page-id-3639 .wp-block-table {
  margin-top:24px;
  margin-bottom:26px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

body.page-id-3639 .wp-block-table table {
  width:100%;
  min-width:680px;
  border-collapse:collapse;
}

body.page-id-3639 .wp-block-table td {
  padding:13px 14px;
  line-height:1.5;
  vertical-align:top;
}

body.page-id-3639 .wp-block-table tr:first-child td {
  background:#FFF1E0;
  color:#171717;
  font-weight:700;
}

@media (max-width:700px) {

  body.page-id-3639 .entry-content {
    padding-left:18px;
    padding-right:18px;
    padding-bottom:60px;
  }

  body.page-id-3639 .entry-content .wp-block-uagb-advanced-heading:not(:first-child) {
    margin-top:32px;
  }

  body.page-id-3639 .wp-block-table {
    margin-left:0;
    margin-right:0;
  }

  body.page-id-3639 .wp-block-table td {
    padding:11px 12px;
  }

}


/* =========================================================
   RETURNS & REFUNDS POLICY
   Page ID: 10
   ========================================================= */

body.page-id-10 .entry-content {
  max-width:1050px;
  margin-left:auto;
  margin-right:auto;
  padding-left:28px;
  padding-right:28px;
  padding-bottom:80px;
}

body.page-id-10 .entry-content h1 {
  margin-bottom:0;
}

body.page-id-10 .entry-content > .wp-block-spacer {
  height:30px !important;
}

body.page-id-10 .entry-content > p {
  max-width:920px;
  line-height:1.75;
}

body.page-id-10 .entry-content h2.wp-block-heading,
body.page-id-10 .entry-content .wp-block-uagb-advanced-heading {
  margin-top:38px;
}

body.page-id-10 .entry-content h2 {
  margin-bottom:18px;
  line-height:1.15;
}

body.page-id-10 .entry-content ul.wp-block-list,
body.page-id-10 .entry-content ol.wp-block-list {
  max-width:920px;
  margin-top:18px;
  margin-bottom:24px;
  padding-left:26px;
}

body.page-id-10 .entry-content ul.wp-block-list li,
body.page-id-10 .entry-content ol.wp-block-list li {
  margin-bottom:10px;
  line-height:1.7;
}

body.page-id-10 .entry-content ul.wp-block-list li:last-child,
body.page-id-10 .entry-content ol.wp-block-list li:last-child {
  margin-bottom:0;
}

@media (max-width:700px) {

  body.page-id-10 .entry-content {
    padding-left:18px;
    padding-right:18px;
    padding-bottom:60px;
  }

  body.page-id-10 .entry-content h2.wp-block-heading,
  body.page-id-10 .entry-content .wp-block-uagb-advanced-heading {
    margin-top:32px;
  }

  body.page-id-10 .entry-content ul.wp-block-list,
  body.page-id-10 .entry-content ol.wp-block-list {
    padding-left:22px;
  }

}


/* =========================================================
   PRIVACY POLICY
   Page ID: 3
   ========================================================= */

body.page-id-3 .entry-content {
  max-width:1050px;
  margin-left:auto;
  margin-right:auto;
  padding-left:28px;
  padding-right:28px;
  padding-bottom:80px;
}

body.page-id-3 .entry-content h1 {
  margin-bottom:0;
}

body.page-id-3 .entry-content > .wp-block-spacer {
  height:30px !important;
}

body.page-id-3 .entry-content > p {
  max-width:920px;
  line-height:1.75;
}

body.page-id-3 .entry-content h2.wp-block-heading,
body.page-id-3 .entry-content .wp-block-uagb-advanced-heading {
  margin-top:38px;
}

body.page-id-3 .entry-content h2 {
  margin-bottom:18px;
  line-height:1.15;
}

@media (max-width:700px) {

  body.page-id-3 .entry-content {
    padding-left:18px;
    padding-right:18px;
    padding-bottom:60px;
  }

  body.page-id-3 .entry-content h2.wp-block-heading,
  body.page-id-3 .entry-content .wp-block-uagb-advanced-heading {
    margin-top:32px;
  }

}


/* =========================================================
   TERMS & CONDITIONS
   Page ID: 3637
   ========================================================= */

body.page-id-3637 .entry-content {
  max-width:1050px;
  margin-left:auto;
  margin-right:auto;
  padding-left:28px;
  padding-right:28px;
  padding-bottom:80px;
}

body.page-id-3637 .entry-content h1 {
  margin-bottom:0;
}

body.page-id-3637 .entry-content > .wp-block-spacer {
  height:30px !important;
}

body.page-id-3637 .entry-content > p {
  max-width:920px;
  line-height:1.75;
}

body.page-id-3637 .entry-content .wp-block-uagb-advanced-heading:not(:first-child) {
  margin-top:38px;
}

body.page-id-3637 .entry-content h2 {
  margin-bottom:18px;
  line-height:1.15;
}

@media (max-width:700px) {

  body.page-id-3637 .entry-content {
    padding-left:18px;
    padding-right:18px;
    padding-bottom:60px;
  }

  body.page-id-3637 .entry-content .wp-block-uagb-advanced-heading:not(:first-child) {
    margin-top:32px;
  }

}


/* =========================================================
   ACCESSIBILITY STATEMENT
   Page ID: 3646
   ========================================================= */

body.page-id-3646 .entry-content {
  max-width:1050px;
  margin-left:auto;
  margin-right:auto;
  padding-left:28px;
  padding-right:28px;
  padding-bottom:80px;
}

body.page-id-3646 .entry-content h1 {
  margin-bottom:0;
  line-height:1.05;
}

body.page-id-3646 .entry-content > .wp-block-spacer {
  height:30px !important;
}

body.page-id-3646 .entry-content > p {
  max-width:920px;
  line-height:1.75;
}

body.page-id-3646 .entry-content .wp-block-uagb-advanced-heading:not(:first-child) {
  margin-top:38px;
}

body.page-id-3646 .entry-content h2 {
  margin-bottom:18px;
  line-height:1.15;
}

body.page-id-3646 .entry-content ul.wp-block-list {
  max-width:920px;
  margin-top:18px !important;
  margin-bottom:24px !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:26px;
}

body.page-id-3646 .entry-content ul.wp-block-list li {
  margin-bottom:10px;
  line-height:1.7;
}

body.page-id-3646 .entry-content ul.wp-block-list li:last-child {
  margin-bottom:0;
}

@media (max-width:700px) {

  body.page-id-3646 .entry-content {
    padding-left:18px;
    padding-right:18px;
    padding-bottom:60px;
  }

  body.page-id-3646 .entry-content .wp-block-uagb-advanced-heading:not(:first-child) {
    margin-top:32px;
  }

  body.page-id-3646 .entry-content ul.wp-block-list {
    padding-left:22px;
  }

}


/* =========================================================
   LEGAL PAGE CANVAS

   Shipping Policy: 3639
   Returns & Refunds Policy: 10
   Privacy Policy: 3
   Terms & Conditions: 3637
   Accessibility Statement: 3646
   ========================================================= */

body.page-id-3639,
body.page-id-10,
body.page-id-3,
body.page-id-3637,
body.page-id-3646,

body.page-id-3639 .site-content,
body.page-id-10 .site-content,
body.page-id-3 .site-content,
body.page-id-3637 .site-content,
body.page-id-3646 .site-content,

body.page-id-3639 .ast-article-single,
body.page-id-10 .ast-article-single,
body.page-id-3 .ast-article-single,
body.page-id-3637 .ast-article-single,
body.page-id-3646 .ast-article-single,

body.page-id-3639 .entry-content,
body.page-id-10 .entry-content,
body.page-id-3 .entry-content,
body.page-id-3637 .entry-content,
body.page-id-3646 .entry-content {
  background:#FFFAF4;
}
