.gg-filters{
    display:flex;flex-wrap:wrap;gap:10px;align-items:center;
    margin:28px 0 6px;padding-bottom:12px;border-bottom:1px solid var(--hv-color-line);
  }
  .gg-filters .gg-label{
    font-family:var(--hv-font-body);font-weight:800;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
    color:var(--hv-color-muted);margin-right:6px;
  }
.gg-filter{
  font-family:var(--hv-font-display);
  font-weight:600;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:7px 15px;
  cursor:pointer;
  background:transparent !important;
  border:1px solid var(--hv-color-line);
  color:var(--hv-color-text-dim);
  line-height:1.4;
  transition:border-color .15s, color .15s;
}

.gg-filter:hover{
  border-color:var(--hv-color-muted);
  color:var(--hv-color-text-strong);
}

.gg-filter[aria-pressed="true"]{
  border-color:var(--hv-color-accent);
  color:var(--hv-color-accent);
  background:transparent;
}

.gg-filter:focus-visible{
  outline:2px solid var(--hv-color-accent);
  outline-offset:2px;
}
  /* hidden cards */
  .gg-card[hidden]{display:none}
  /* fade-in on show */
  .gg-card{animation:ggIn .22s ease both}
  @keyframes ggIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  @media(prefers-reduced-motion:reduce){
    .gg-card{animation:none}
    *{transition:none!important}
  }

.havik-swatches { display: flex; gap: 6px; list-style: none; margin: 8px 0 0; padding: 0; }
.havik-swatch { width: 14px; height: 14px; border-radius: 50%;
  background: var(--swatch); box-shadow: inset 0 0 0 1px rgba(0,0,0,.2); }

button.pwgc-remove-gift-card {
background: transparent;
border: none;
padding: 8px;
font-size: 20px}

#pwgc-purchase-container input,
 #pwgc-message{
	background: var(--hv-color-bg);
	color: var(--hv-color-text-strong);
}

@media screen and (min-width: 768px) {.woocommerce-cart .harbor-group {
    margin-inline: -80px;
}
}
.woocommerce-checkout .harbor-group {
	padding-bottom: 50px;
}
.harbor-group {
	width: 100%;
	padding: 20px 0;
}
@media screen and (max-width: 767px){
	.harbor-group {
	margin-left: 0px;
 align-items: flex-start;
		gap: 10px
}
}
.harbor-group .wp-block-image {width: 60px;}
.harbor-group p,
.harbor-group h5{
	margin: 0;
	color: var(--hv-color-text-dim);
}
.wizard-preorder-notice {
    margin-top: 12px;
    padding: 10px 14px;
    background: var(--hv-color-surface-raised);
    border-left: 3px solid var(--hv-color-line-strong);
    color: var(--hv-color-text);
    font-weight: 800;
    font-size: 14px;
}

.wc-block-components-product-name{
	font-size: var(--hv-size-h5) !important;
	text-transform: uppercase;
}
li.wc-block-components-product-details__sheath {
	display: none
}

.frotm-steps a{
	text-decoration: none;
}
.havik-wizard a.elementor-button
{
    text-decoration: none !important;
} 
#wsf-1-label-105{
	font-size: 24px;
	text-transform: uppercase;
	margin-bottom: 20px;
}
.havik-consent-radios label{
	color: var(--hv-color-text-strong) !important;
	font-weight: bold !important;	text-align: center;
}
.havik-consent-radios div[role="radiogroup"]{
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.finalist-headline {
	text-transform: uppercase;
}

/* --- Voting UI (buttons / email gate etc.) --- */
body.havik-voting-closed .havik-voting-ui { display: none !important; }

/* --- VOTED STATE --- */
.havik-vote-btn.havik-voted {
  background: var(--hv-color-accent); 
	background-repeat: no-repeat;
	background-size: cover;
  color: var(--hv-color-text-strong);
  opacity: 1;
  cursor: not-allowed !important;
  pointer-events: auto; /* allow hover for tooltip */
	font-size: 26px;
	font-weight: 700;
}

.havik-vote-btn.havik-voted:hover {
	background-repeat: no-repeat;
	background-size: cover;
  color: var(--hv-color-text-strong);
  opacity: 1;
  cursor: not-allowed !important;
  pointer-events: auto; /* allow hover for tooltip */
	font-size: 26px;
	font-weight: 700;
	  transform: none !important;
  filter: none !important;
}

/* Keep layout identical to VOTE button */
.havik-vote-btn.havik-voted {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Optional: remove hover effects when voted */
.havik-vote-btn.havik-voted:hover {
  transform: none !important;
  filter: none !important;
}

.havik-finalist-id {display: none;}#havik-vote-input-wrap {
  display: flex;
  gap: 0px;
	outline: none;
}

#havik-email-continue {
  padding: 12px 16px;
  border-radius: 0;
  cursor: pointer;
	border: none;
}

#havik-email-continue:hover{
	opacity: .8;
	background: var(--hv-color-accent);
}

#havik-vote-confirm button {
  margin-left: 8px;
  font-size: 14px;
  background: none;
  border: 0;
  cursor: pointer;
  text-decoration: underline;
}

/* Voting email gate */
#havik-vote-gate {  max-width: 520px;margin: 0 auto; text-align: center; padding-bottom: 30px}
#havik-voter-email { width: 100%; padding: 12px 14px; border-radius: 0; border: 1px solid rgba(0,0,0,0.7);}
.havik-vote-label { display: block; margin: 0 0 8px; font-weight: 600; }
.havik-vote-help { margin-top: 8px; font-size: 14px; opacity: 0.75; }

/* Disabled vote button */
.havik-vote-disabled {
  opacity: 0.45;
  cursor: not-allowed !important;
  pointer-events: auto; /* allows hover tooltip even though "disabled" behavior is JS */
  position: relative;
}

/* Shake animation for email field */
@keyframes havikShake {
  0% { transform: translateX(0); }
  15% { transform: translateX(-8px); }
  30% { transform: translateX(8px); }
  45% { transform: translateX(-6px); }
  60% { transform: translateX(6px); }
  75% { transform: translateX(-4px); }
  90% { transform: translateX(4px); }
  100% { transform: translateX(0); }
}

.havik-shake {
  animation: havikShake 420ms ease;
  border-color: rgba(200, 0, 0, 0.55) !important;
  box-shadow: 0 0 0 3px rgba(200, 0, 0, 0.12);
}

button.havik-open-story {
	background-color: transparent;
	border-color: transparent;
	color: var(--hv-color-accent);
	padding: 0;
	text-align: center;
}

.havik-vote-email-wrap label{
	display: none;
}

button.havik-open-story:hover {
	background-color: transparent;
	border-color: transparent;
	color: var(--hv-color-text-strong);
	padding: 0;
	text-align: center;
}

.vote-wrap {
	display: flex;
	justify-content: center;
}
.e-loop-item .havik-story {
  display: none;
}

button.havik-prev,   button.havik-next {
	background-color: transparent !important;
	border-color: var(--hv-color-accent) !important;
	color: var(--hv-color-accent) !important;
	padding: 10px !important;
	width: 100% !important;
	font-size: 14px !important;
}

#havik-modal-nav i {
  pointer-events: none;
}

.wsf-section{
	padding-bottom: 20px !important;
}

.havik-submit{
	width: 100% !important;
}

.wsf-bottom{
	text-align: center !important;
}

.havik-agree {
	display: flex !important;
	justify-content: center !important;
}

.wsf-form h3 {
	font-weight: 800 !important;
	letter-spacing: -.5px !important;
}

div#wfls-prompt-overlay {
    background: var(--hv-color-bg);
}

.woocommerce-variation-availability {
	display: none;
}
.woocommerce-variation-price {
	font-size: 20px;
	margin-bottom: 10px;
}

.woocommerce-ResetPassword.lost_reset_password {
	width: 100% !important;
}

.wp-block-embed-youtube{
	margin-bottom: 60px;
}

.single-post h3{
	margin-top: 40px;
}
.limited {
  display: none !important;
}
.has-limited .limited {
  display: block !important;
}
.havik-soon {display: none;}
.has-soon .havik-variable-btn,
.has-soon.product-type-simple .havik-simple-btns { display: none !important; }

.has-soon .havik-soon { display: block; }

p a {
	border-bottom: 1px dotted;
}/* Default: show featured image */
.single .post-thumbnail,
.single .elementor-widget-theme-post-featured-image  {
	display: block;
}

/* Hide featured image if post has video category */
.single.has-video .post-thumbnail,
.single.has-video .elementor-widget-theme-post-featured-image  {
	display: none;
}

/* Defaults */
.btn-read { display: block; }
.btn-watch { display: none; }

/* If any ancestor has 'has-video', show Watch / hide Read */
.has-video .btn-read { display: none; }
.has-video .btn-watch { display: block; }

.woocommerce-thankyou-order-received{
	font-size: var(--hv-size-h5);
	font-weight: 800;
	color: var(--hv-color-text-strong);
}
.woocommerce ul.order_details li,
.woocommerce table.shop_table{
	border: none !important;
}
.wp-block-button a {
	background: var(--hv-color-accent);
	padding: 17px 20px !important;
	font-size: 26px !important;
	background-repeat: no-repeat;
	background-size: cover;
	transition: transform 0.3s ease-in-out;
	border: none !important;
	border-radius: 0;
}

.wc-block-components-totals-coupon__button {background: var(--hv-color-accent);
	font-size: 20px !important;
	background-repeat: no-repeat;
	background-size: cover;
	transition: transform 0.3s ease-in-out;
	border: none !important;
	border-radius: 0;
	color: var(--hv-color-text-strong);
	min-height: 2.5em !important;
	max-height: 2.5em !important;
}

.wp-block-woocommerce-checkout,
.woocommerce-thankyou-order-received{
	padding-top: 80px !important;
}

.wc-block-components-checkout-step__title {
	font-family: var(--hv-font-display) !important;
	font-weight: 400 !important;
	font-size: var(--hv-size-h3) !important;
	color: var(--hv-color-text-strong);
}
.wc-block-components-express-payment__title {
	font-family: var(--hv-font-body) !important;
	font-weight: 800 !important;
	font-size: var(--hv-size-h5) !important;
	text-transform: uppercase;
	color: var(--hv-color-text-strong);
}

.inline-button .elementor-field-type-email {
	display: flex !important;
}

.inline-button .elementor-field-group {
	width: 50% !important;
}

.inline-button .elementor-size-lg {
	min-height: 71px;
}

.hidden {
	display: none;
}

a.reset_variations {
	color: var(--hv-color-text);
}
.woocommerce-variation-price .woocommerce-Price-amount{
	color: var(--hv-color-text-strong);
	font-weight: 900;
}
.flex-control-thumbs {
		overflow-x: scroll !important;
  overflow-y: hidden !important;
  white-space: nowrap !important;
		padding-bottom: 20px;
	height: 120px;
	display: flex;
}

.flex-control-thumbs li {
	display: inline-block;
	min-width: 120px !important;
	height: 120px !important;
}

/* Variable products → show only Customize button */
.product-type-variable .havik-variable-btn {
    display: inline-flex !important;
}
.product-type-variable .havik-simple-btns {
    display: none !important;
}


/* Simple products → show View + Add to Cart container (unless it's preorder) */
.product-type-simple:not(.has-preorder) .havik-simple-btns {
    display: flex !important;
}
.product-type-simple .havik-variable-btn{
    display: none !important;
}

.has-wizard .has-wizard-content {
	display: block;
}

/* Hide preorder button by default */
.havik-preorder{
    display: none !important;
}

/* Preorder products → show only preorder button */
.has-preorder .havik-preorder {
    display: flex !important;
}
.has-preorder .havik-simple-btns {
    display: none !important;
}
.has-preorder:not(.has-wizard) .havik-variable-btn {
    display: none !important;
}

.is-out-of-stock .havik-variable-btn{
    display: none !important;
}
.is-out-of-stock:not(.purchasable) {
    opacity: 50%;
}
.is-out-of-stock:not(.purchasable) .stock-message {
    display: block;
}
.havik-soon {
    opacity: 100% !important
}
.havik-hhf-content {
    display: none;
}
.has-hhf .havik-hhf-content {
    display: block;
}

.havik-related-loop .elementor-loop-container{
	display: flex;
	justify-content: center !important;
}
.woocommerce form.cart table.variations td.value select, .woocommerce .elementor-647 .elementor-element.elementor-element-c728002 form.cart table.variations td.value::before {
	border: 1px solid var(--hv-color-muted) !important;
}
.woocommerce-variation-availability p{
	color: var(--hv-color-muted) !important;
}

table tbody tr:hover > th,
table tbody tr:hover > td, 
table tbody tr >th, table tbody tr >td{
	background-color: var(--hv-color-bg) !important;
}

.lower {
	text-transform: lowercase;
	font-size: .97em;
}

.havik-tile {
	overflow: hidden;
	white-space: wrap;
	min-width: 200px !important;
}

.havik-text-btn .elementor-button-icon svg {
	height: .75em;
	position: relative;
	top: -2px
}

strong{
	color: var(--hv-color-text-strong);
}

.elementor-nav-menu--dropdown .sub-menu {
    overflow: visible !important;
	z-index: 99999;
	position: relative !important;
}

.havik-nav {
	max-height: 80px;
}

.elementor-button:not(.havik-txt-btn), .wsf-button{
	background-repeat: no-repeat;
	background-size: cover;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button, .woocommerce-form-login__submit{
	background: var(--hv-color-accent);
	padding: 17px 20px !important;
	font-size: 26px !important;
	background-repeat: no-repeat;
	background-size: cover;
	transition: transform 0.3s ease-in-out;
	border: none !important;
}

.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wp-block-button a:hover,
.woocommerce-form-login__submit:hover{
transform: scale(.97);
	background: var(--hv-color-accent);
	background-repeat: no-repeat;
	background-size: cover;
}

.red{
	color: var(--hv-color-accent);
}

@media screen and (max-width: 767px) {
.havik-scroll {
		overflow-x: scroll !important;
  overflow-y: hidden !important;
  white-space: nowrap;
		padding-bottom: 20px;
	}
	.wp-block-woocommerce-cart.alignwide {
	margin: 0 auto !important
}
	.havik-scroll .elementor-flip-box--effect-fade {
		min-width: 240px !important;
		white-space: wrap;
		height: 240px;
	}
	.flex-control-thumbs {
		overflow-x: scroll !important;
  overflow-y: hidden !important;
  white-space: nowrap !important;
		padding-bottom: 20px;
	height: 70px;
	display: flex;
}

.flex-control-thumbs li {
	display: inline-block;
	min-width: 70px !important;
	height: 70px !important;
}
	
	.inline-button .elementor-field-group {
	width: 100% !important;
}

.inline-button .elementor-size-lg {
	min-height: 50px;
}
}
	
/*------------------------------------------------------*/
.wc-block-components-text-input button.wcpay-stripelink-modal-trigger {
  top: 40% !important;
  transform: translateY(-60%) !important;
,
}

.wc-block-components-text-input  input,
.wc-blocks-components-select__select,
.p-Input{
		background: var(--hv-color-bg) !important;
	color: var(--hv-color-text-strong) !important;
	border-color: var(--hv-color-border) !important;
	}
.wc-block-components-text-input  label,
.wc-blocks-components-select__label{
	color: var(--hv-color-text-dim) !important;
}

.has-error.wc-block-components-text-input  label  {
	color: var(--hv-color-danger-text) !important;
}

.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	background: var(--hv-color-surface);
	border: 1px solid var(--hv-color-line-strong) !important;
	box-shadow: none; !important;
}

/* Cart and checkout (Blocks): design-system type and colors for the parts
   with no rule above. Tokens only; no layout or spacing changes. */
.has-error.wc-block-components-text-input input,
.has-error .wc-blocks-components-select__select {
	border-color: var(--hv-color-danger-text) !important;
}
.wc-block-components-validation-error,
.wc-block-components-validation-error p {
	color: var(--hv-color-danger-text) !important;
}
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value {
	color: var(--hv-color-text);
	font-size: var(--hv-size-body);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--hv-color-text-strong);
	font-weight: 800 !important;
	font-size: var(--hv-size-h5) !important;
}
.wc-block-components-totals-coupon .wc-block-components-panel__button {
	color: var(--hv-color-text);
	font-size: var(--hv-size-body-sm);
}
.wc-block-cart-items__header {
	color: var(--hv-color-text-dim);
	font-size: var(--hv-size-label) !important;
}
.woocommerce-order-details__title,
.woocommerce-column__title {
	font-family: var(--hv-font-display);
	font-weight: 400;
	font-size: var(--hv-size-h3) !important;
	color: var(--hv-color-text-strong);
}
.woocommerce-order-overview li {
	color: var(--hv-color-text-dim);
	font-size: var(--hv-size-body-sm) !important;
}
/* Checkout order summary: the quantity bubble on each item. WooCommerce
   fills it with currentColor (the text gray); the brand green instead. */
.wc-block-components-order-summary .wc-block-components-order-summary-item .wc-block-components-order-summary-item__quantity {
	background: var(--hv-color-green);
}

/* HAViK Modal */
#havik-modal { position: fixed; top:0; left:0; right:0; bottom:0; z-index: 999999; }
#havik-modal.is-open { display:block; }

#havik-modal-backdrop { position:absolute; top:0; left:0; right:0; bottom:0; background: rgba(0,0,0,0.75); }

#havik-modal-box {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 92%;
  max-width: 720px;
  max-height: 86vh;
  transform: translate(-50%, -50%);
  background: var(--hv-color-surface);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

#havik-modal-header {
  display:flex;
  gap: 14px;
  padding: 18px 18px 12px;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,0.2);
}

#havik-modal-photo {
  width: 84px;
  height: 84px;
  object-fit: cover;
  flex: 0 0 auto;
  background: rgba(0,0,0,0.06);
}

#havik-modal-title { margin: 0; font-size: 20px; line-height: 1.2; }

#hero-modal-identity {
	display: flex;
	width: 100%;
	gap: 20px;
	align-items: center;
}
#havik-modal-meta { margin: 6px 0 0; opacity: 0.75; font-size: 14px; line-height: 1.3; }

#havik-modal-nav { display:flex; gap: 8px; margin-left: auto; }
#havik-modal-prev, #havik-modal-next {
  border: 1px solid rgba(0,0,0,0.18);
  background: 000;
  padding: 0;
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
}
#havik-modal-prev:hover, #havik-modal-next:hover { opacity: 0.65; }

#havik-modal-close {
  border: 0;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  padding: 6px 10px;
}

#havik-modal-body {
  padding: 16px 18px 18px;
  overflow: auto;
}

body.havik-modal-open { overflow: hidden !important; }

#havik-modal-vote-wrap{
	padding-top: 20px;
}
.havik-vote-btn--modal {
	background: var(--hv-color-accent);
	padding: 17px 20px !important;
	font-size: 26px !important;
	background-repeat: no-repeat;
	background-size: cover;
	transition: transform 0.3s ease-in-out;
	border: none !important;
	width: 100%;
}

.havik-vote-btn--modal:hover{
	transform: scale(.95);
	background: var(--hv-color-accent);
	background-repeat: no-repeat;
	background-size: cover;
}
@media (max-width: 767px) {
	#havik-modal-header{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }

  #havik-modal-nav{
    order:1;
    display:flex;
    justify-content:flex-end;
    gap:10px;
  }

  #hero-modal-identity{
    order:2;
    display:flex;
    align-items:center;
    gap:12px;
  }
}

/* =========================================================
   HAViK voting state visibility (Elementor containers)
   ========================================================= */


/* -------------------------
   VOTING CLOSED (22–end)
   ------------------------- */

/* Keep the main voting wrapper visible (your layout uses this as the parent) */
body.havik-voting-closed #vote .havik-voting-open-container {
  --display: flex !important;
  display: flex !important;
}

/* In CLOSED: hide "open" stuff + nominations */
body.havik-voting-closed #vote .havik-voting-open-container .elementor-element-b3cf181,
body.havik-voting-closed #vote .havik-voting-open-container .elementor-element-02f1f47,
body.havik-voting-closed #vote .havik-voting-open-container #havik-vote-gate,
body.havik-voting-closed #vote .havik-voting-open-container .havik-nominations-open-container,
body.havik-voting-closed #havik-modal-vote-wrap{
  display: none !important;
}

/* In CLOSED: show closed container + loop grid */
body.havik-voting-closed #vote .havik-voting-open-container .havik-voting-closed-container,
body.havik-voting-closed #vote .havik-voting-open-container .havik-finalists,
body.havik-voting-closed #vote .havik-voting-open-container .elementor-element-87532c4 {
  --display: block !important;  /* helps if Elementor uses --display */
  display: block !important;
}


/* -------------------------
   NOMINATIONS OPEN (1–14)
   ------------------------- */

/* Keep the same main wrapper visible */
body.havik-nominations-open #vote .havik-voting-open-container {
  --display: flex !important;
  display: flex !important;
}

/* In NOMINATIONS: show nominations container */
body.havik-nominations-open #vote .havik-voting-open-container .havik-nominations-open-container {
  --display: flex !important;
  display: flex !important;
}

/* In NOMINATIONS: hide voting open stuff, voting closed stuff, and the loop grid */
body.havik-nominations-open #vote .havik-voting-open-container .elementor-element-b3cf181,
body.havik-nominations-open #vote .havik-voting-open-container .elementor-element-02f1f47,
body.havik-nominations-open #vote .havik-voting-open-container #havik-vote-gate,
body.havik-nominations-open #vote .havik-voting-open-container .havik-voting-closed-container,
body.havik-nominations-open #vote .havik-voting-open-container .havik-finalists,
body.havik-nominations-open #vote .havik-voting-open-container .elementor-element-87532c4 {
  display: none !important;
}


/* -------------------------
   VOTING OPEN (15–21)
   ------------------------- */

/* Keep the main wrapper visible */
body.havik-voting-open #vote .havik-voting-open-container {
  --display: flex !important;
  display: flex !important;
}

/* In OPEN: show gate + open messaging, hide closed messaging + nominations */
body.havik-voting-open #vote .havik-voting-open-container .elementor-element-b3cf181,
body.havik-voting-open #vote .havik-voting-open-container .elementor-element-02f1f47,
body.havik-voting-open #vote .havik-voting-open-container #havik-vote-gate {
  --display: block !important;
  display: block !important;
}

body.havik-voting-open #vote .havik-voting-open-container .havik-voting-closed-container,
body.havik-voting-open #vote .havik-voting-open-container .havik-nominations-open-container {
  display: none !important;
}

/* In OPEN: show loop grid */
body.havik-voting-open #vote .havik-voting-open-container .havik-finalists,
body.havik-voting-open #vote .havik-voting-open-container .elementor-element-87532c4 {
  --display: block !important;
  display: block !important;
}

.red-grunge .elementor-button{
  background: var(--hv-color-text-strong); 
	background-repeat: no-repeat;
	background-size: cover;
}

/* CART --------------------------------------------------------*/
body.woocommerce-cart .entry-title {
    display: none;
	gap: 40px;
}
.woocommerce a.remove:hover {
  color: inherit !important;
  background: transparent;
}
table tbody > tr:nth-child(2n+1) > td, table tbody > tr:nth-child(2n+1) > th{
	background: transparent;
	border: none;
}
.shop_table th,.shop_table td {
	border: none !important
}
.order-total {
	font-size: 24px;
}