/* ============================================================================
   Coffee single product page — scoped + forced so the active theme's
   styles cannot leak in or override it.
   ========================================================================= */
.cp-page{
	--cp-ink:#12263a;
	--cp-blue:#0b5f88;
	--cp-blue-dark:#08496a;
	--cp-line:#12263a;
	--cp-muted:#54636f;
	--cp-badge:#7fb0cb;
	--cp-faq-head:#5f9db8;
	--cp-faq-body:#c3d9e2;
	--cp-card:#ffffff;
	--cp-max:1300px;
	display:block !important;
	width:100% !important;
	font-family:inherit;
	color:var(--cp-ink);
}
.cp-page *,
.cp-page *::before,
.cp-page *::after{box-sizing:border-box !important}

.cp-container{
	max-width:var(--cp-max) !important;
	margin:0 auto !important;
	padding:75px 5px 80px !important;
	height: 100%!important;
	width: 100%!important;
	background: unset!important;
}

/* ==========================================================================
   TOP SECTION — photo | buy box
   ========================================================================= */
.cp-top{
	display:grid !important;
	grid-template-columns:1fr 1fr !important;
	gap:64px !important;
	align-items:start !important;
	margin:0 0 60px !important;
}
.cp-gallery{
	position:relative !important;
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	position:sticky !important;
	top:24px !important;
}

.cp-gallery-frame{
	position:relative !important;
	display:flex !important;
	flex-direction:column !important;
	align-items:center !important;
	justify-content:center !important;
	width:100% !important;
	background:#fff !important;
	border-radius:50px 50px 0px 50px !important;
	padding:44px 32px 32px !important;
}

.cp-native-form.cp-native-form--simple {
	margin: 20px 0 20px !important;
	background: #fff !important;
	border-radius: 20px !important;
	padding: 23px !important;
}

.cp-native-form--simple div.totals {
	margin-top: 0 !important;
}

.cp-native-form--simple .add-to-cart-button-controls-wrap {
	height: auto !important;
}

.cp-native-form--simple button[name="add-to-cart"] {
	position: relative !important;
}

.cp-gallery-frame-icon{
	position:absolute !important;
	top:-19px !important;
	left:50% !important;
	transform:translateX(-50%) !important;
	width:37px !important;
	height:38px !important;
	display:flex !important;
	z-index:2 !important;
}
.cp-gallery-frame-icon svg{
	width:100% !important;
	height:100% !important;
	display:block !important;
}

.cp-gallery-tag{
	margin:0 0 16px !important;
	text-align:center !important;
	    font-size: 14px;
    line-height: 17px;
    text-align: center;
    letter-spacing: .1em;
    white-space: nowrap;
	color: black;
	font-weight: 600;
	text-transform:uppercase !important;
}
.cp-gallery-img{
	width:100% !important;
	max-width:520px !important;
	height:auto !important;
	object-fit:contain !important;
	border-radius: 20px;
}

/* Badge on the single-product image — same blob shape as the slider badge.
   Uses .cp-gallery (already position:sticky, which also establishes a
   positioning context) so it sits on top of the product photo. */
.cp-badge{
	position:absolute !important;
	top:16px !important;
	right:16px !important;
	z-index:3 !important;
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	width:168px !important;
	height:112px !important;
	margin:0 !important;
	padding:22px 10px 20px !important;
	background:var(--cp-badge) !important;
	color:#fff !important;
	font-size:16px !important;
	font-weight:600 !important;
	line-height:1.25 !important;
	text-align:center !important;
	text-transform:none !important;
	letter-spacing:0 !important;
	border:0 !important;
	border-radius:0 !important;
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 86'%3E%3Cpath d='M2.42726 49.6204C6.45063 42.0248 0.427477 34.897 1.02257 26.2185C1.6717 16.9161 7.56344 8.53112 15.7777 4.06868C23.9918 -0.39404 34.2641 -1.08004 43.6517 1.49361C55.9307 4.86149 66.2903 13.2634 78.054 18.2561C83.5294 20.5765 89.2745 22.1464 95.1181 22.9191C104.691 24.1732 115.973 22.085 122.768 29.0355C129.199 35.6054 128.18 44.5389 125.099 52.6949C120.36 65.3478 112.942 74.4548 99.2167 80.9389C90.4023 85.1057 81.169 86.4826 70.0627 83.6973C57.971 80.6418 47.7687 75.4165 38.3208 71.705C17.8477 63.6746 13.9756 73.5639 4.56362 66.4697C-0.604392 62.5175 -1.47779 56.9952 2.42726 49.6204Z' fill='%23000'%3E%3C/path%3E%3C/svg%3E") !important;
	mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 86'%3E%3Cpath d='M2.42726 49.6204C6.45063 42.0248 0.427477 34.897 1.02257 26.2185C1.6717 16.9161 7.56344 8.53112 15.7777 4.06868C23.9918 -0.39404 34.2641 -1.08004 43.6517 1.49361C55.9307 4.86149 66.2903 13.2634 78.054 18.2561C83.5294 20.5765 89.2745 22.1464 95.1181 22.9191C104.691 24.1732 115.973 22.085 122.768 29.0355C129.199 35.6054 128.18 44.5389 125.099 52.6949C120.36 65.3478 112.942 74.4548 99.2167 80.9389C90.4023 85.1057 81.169 86.4826 70.0627 83.6973C57.971 80.6418 47.7687 75.4165 38.3208 71.705C17.8477 63.6746 13.9756 73.5639 4.56362 66.4697C-0.604392 62.5175 -1.47779 56.9952 2.42726 49.6204Z' fill='%23000'%3E%3C/path%3E%3C/svg%3E") !important;
	-webkit-mask-repeat:no-repeat !important;
	mask-repeat:no-repeat !important;
	-webkit-mask-size:100% 100% !important;
	mask-size:100% 100% !important;
	-webkit-mask-position:center !important;
	mask-position:center !important;
}
.cp-badge-text{display:block !important;color:inherit !important;font:inherit !important}

.cp-buybox{display:flex !important;flex-direction:column !important}

.cp-kicker{
	margin:0 0 6px !important;
	font-size:40px !important;
	line-height:1.1 !important;
	font-weight:800 !important;
	color: #000!important;
	text-transform: uppercase;
}
.cp-title{
	margin:10px 0 24px !important;
	font-size:40px !important;
	line-height:1.1 !important;
	font-weight:400 !important;
	color: #000!important;
	text-transform: none!important;
}

@media (max-width: 768px){
	.cp-gallery-frame{
		margin: 20px;
	}
	div.amount-radio-select{
		width: 100%!important;
		height: 56px!important;
	}
	.cp-title{
		text-align: center;
	}
	.cp-kicker{
		text-align: center;
	}
}

/* ==========================================================================
   NATIVE WOOCOMMERCE FORM — the only source of variation selection now.
   Restyled to look like the old custom swatch/select UI.
   ========================================================================= */
.cp-native-form{ margin:0 0 20px !important; }

/* Attribute table (one row per attribute: label + native <select>) */
.cp-native-form table.variations{
	width:100% !important;
	border:0 !important;
	border-collapse:collapse !important;
	margin:0 0 20px !important;
}
.cp-native-form table.variations tbody{ display:flex !important; flex-direction:column !important; gap:0spx !important; }
.cp-native-form table.variations tr{ display:block !important; border:0 !important; }
.cp-native-form table.variations th.label{
	display:block !important;
	text-align:left !important;
	padding:0 0 8px !important;
	font-size:14px !important;
	font-weight:600 !important;
	color:var(--cp-ink) !important;
}
.cp-native-form table.variations td.value{
	display:block !important;
	padding:0 !important;
	border:0 !important;
}
.cp-native-form table.variations select{
	appearance:none !important;
	-webkit-appearance:none !important;
	width:100% !important;
	max-width:320px !important;
	padding:12px 40px 12px 14px !important;
	background:#fff
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 9l6 6 6-6' fill='none' stroke='%2354636f' stroke-width='2'/></svg>")
		no-repeat right 12px center / 16px 16px !important;
	border:1.5px solid #c9d3da !important;
	border-radius:6px !important;
	font-size:15px !important;
	font-weight:500 !important;
	color:var(--cp-ink) !important;
	cursor:pointer !important;
}
.cp-native-form table.variations .reset_variations{
	display:inline-block !important;
	margin-top:8px !important;
	font-size:12px !important;
	font-weight:500 !important;
	color:var(--cp-muted) !important;
	text-decoration:underline !important;
}

/* Any attribute label/name text regardless of the exact wrapper markup the
   swatches plugin outputs (div/li/th) — this is a catch-all so "Weight" and
   "Grind type" are never left with unstyled default <label> styling. */
.cp-native-form label,
.cp-native-form .wc-pao-addon-name,
.wc-pao-addon label.wc-pao-addon-name{
	display:block !important;
	font-size: 16px!important;
	color: #000000!important;
	font-weight: 600!important;
	line-height: 24px;
	text-transform:none !important;
	margin:0 0 0px !important;
}

.wc-pao-addon{
	margin-bottom: 0px!important;
}
/* Let Product Add-Ons show, styled to match the buy box */
.wc-pao-addons-container{ display:flex !important; flex-direction:column !important; gap:10px !important; margin-top:18px !important; }
.wc-pao-addon-name{
	font-size:14px !important; font-weight:600 !important; color:var(--cp-ink) !important;
	display:block !important; margin:0 0 8px !important;
}
.wc-pao-addon-field.dropdown-toggle{
	display:flex !important;
	align-items:center !important;
	width:100% !important;
	max-width:320px !important;
	height:44px !important;
	padding:0 40px 0 14px !important;
	background:#fff
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 9l6 6 6-6' fill='none' stroke='%2354636f' stroke-width='2'/></svg>")
		no-repeat right 12px center / 16px 16px !important;
	border:1.5px solid #c9d3da !important;
	border-radius:6px !important;
	font-size:15px !important;
	font-weight:500 !important;
	color:var(--cp-ink) !important;
	cursor:pointer !important;
}
.hcslider .hcslider__price{
  margin-top: 0px!important;
}
/* Weight swatch buttons — the unselected state previously had no text
   color set against a transparent background, so it rendered blank. */
div.amount-radio-select{
	display:inline-flex !important;
	height:44px !important;
	width:auto !important;
	min-width:96px !important;
	border-radius:8px !important;
	border:1.5px solid #000 !important;
	background-color:transparent !important;
	overflow:hidden !important;
}
.amount-radio-select label.checkbox-label{
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	width:100% !important;
	height:100% !important;
	margin:0 !important;
	padding:0 36px !important;
	border-radius:6px !important;
	font-size: 16px!important;
	color: #000000!important;
	font-weight: 400!important;
	line-height: 40px!important;
	letter-spacing: 0%!important;
	text-align: center;
	background-color:transparent !important;
	cursor:pointer !important;
	white-space:nowrap !important;
}
.cart-control-buttons{
	border: 1px solid #000!important;
	border-radius: 8px!important;
	background: #fff!important;
}
button.single_add_to_cart_button {
	font-size: 24px!important;
color: #ffffff;
font-weight: 400!important;
line-height: 40px!important;
letter-spacing: 0%;
text-align: center;
text-transform: none!important;
}
.woocommerce-variation-add-to-cart{
	gap: 30px;
}
.nm-quantity-wrap {
	flex: 0 0 25%;
}
.single_add_to_cart_button {
	flex: 1;
}
.woocommerce .quantity .qty{
	font-size: 24px;
color: #000000;
font-weight: 600;
line-height: 40px;
letter-spacing: 0%;
text-align: center;
}
.amount-radio-select:hover label.checkbox-label,
.amount-radio-select input:checked ~ label.checkbox-label{
	background-color:#000 !important;
	color:#fff !important;
}

/* order box --------------------------------------------------------------- */
.cp-order-box{
	background:#fff !important;
	border:1px solid #e6ebee !important;
	border-radius:10px !important;
	padding:18px 20px !important;
	box-shadow:0 2px 14px rgba(18,38,58,.06) !important;
	margin:6px 0 24px !important;
}
.cp-order-row{display:flex !important;align-items:center !important;justify-content:space-between !important}
.cp-order-row + .cp-order-row{margin-top:14px !important;padding-top:14px !important;border-top:1px solid #eef2f4 !important}
.cp-order-label{font-size:14px !important;color:var(--cp-muted) !important}
.cp-order-total,
.cp-order-total .amount,
.cp-order-total bdi{font-size:20px !important;font-weight:800 !important;color:var(--cp-ink) !important}

.cp-order-actions{gap:14px !important}
.cp-qty{
	display:flex !important;align-items:center !important;
	border:1.5px solid #c9d3da !important;border-radius:6px !important;overflow:hidden !important;
}
.cp-qty-btn{
	width:36px !important;height:40px !important;border:0 !important;background:#f4f6f7 !important;
	font-size:18px !important;line-height:1 !important;color:var(--cp-ink) !important;cursor:pointer !important;
}
.cp-qty-btn:hover{background:#e9edf0 !important}
.cp-qty-input{
	width:44px !important;height:40px !important;border:0 !important;text-align:center !important;
	font-size:15px !important;font-weight:600 !important;color:var(--cp-ink) !important;
	-moz-appearance:textfield !important;
}
.cp-qty-input::-webkit-outer-spin-button,
.cp-qty-input::-webkit-inner-spin-button{-webkit-appearance:none !important;margin:0 !important}

.single_variation_wrap{
	background: #fff;
	border-radius: 20px;
	padding: 23px;
	margin-top: 20px !important;
}

.single_variation_wrap .totals{
	margin-top: 0px!important;
}

.woocommerce-variation-add-to-cart{
	display: flex;
	justify-content: space-between;
}

.nm-variable-add-to-cart-button{
	background-color: #005d83!important;
	font-size: 24px;
	color: #ffffff;
	font-weight: 400;
	line-height: 40px;
	letter-spacing: 0%;
	text-align: center;
	border-radius: 8px;
}

.select-coffee-type .dropdown-toggle{
	background-color: #FFF!important;
}

.amount-radio-select:hover label, .amount-radio-select input:checked~label.checkbox-label{
	background-color: #000!important;
}

.woocommerce-variation-price span{
	font-size: 28px;
	color: #000000;
	font-weight: 600;
	line-height: 40px;
	letter-spacing: 0%;
}

.cp-add-to-cart{
	position:relative !important;
	flex:1 1 auto !important;
	display:inline-flex !important;align-items:center !important;justify-content:center !important;
	height:40px !important;padding:0 24px !important;
	background:var(--cp-blue) !important;color:#fff !important;border:0 !important;border-radius:6px !important;
	font-size:15px !important;font-weight:600 !important;cursor:pointer !important;
	transition:background .18s ease !important;
}
.cp-add-to-cart:hover:not(:disabled){background:var(--cp-blue-dark) !important}
.cp-add-to-cart:disabled{opacity:.5 !important;cursor:not-allowed !important}
.cp-add-to-cart.is-loading .cp-add-text{opacity:.35 !important}
.cp-spinner{
	display:none !important;position:absolute !important;inset:0 !important;margin:auto !important;
	width:16px !important;height:16px !important;border:2px solid rgba(255,255,255,.4) !important;
	border-top-color:#fff !important;border-radius:50% !important;animation:cp-spin .7s linear infinite;
}
.cp-add-to-cart.is-loading .cp-spinner{display:block !important}
@keyframes cp-spin{to{transform:rotate(360deg)}}

.cp-order-error{margin:10px 0 0 !important;font-size:13px !important;color:#b3261e !important}
.cp-order-error:empty{display:none !important}

/* accordions --------------------------------------------------------------- */
.cp-accordion{border-bottom:1.5px solid #005D83 !important;padding:14px 0 !important}
.cp-accordion-head{
	width:100% !important;display:flex !important;align-items:center !important;justify-content:space-between !important;
	gap:12px !important;background:none !important;border:0 !important;padding:0 !important;margin:0 !important;
	font-size: 24px;
color: #000000;
font-weight: 600;
line-height: 40px;cursor:pointer !important;
	text-align:left !important;
}
.cp-accordion-head span{
font-size: 16px;
color: #000000;
font-weight: 600;
line-height: 24px;
letter-spacing: 0%;
}
.cp-accordion-title{flex:0 0 auto !important}
.cp-chevron{
	width:17px !important;height:15px !important;flex:0 0 auto !important;
	fill:none !important;stroke:var(--cp-ink) !important;stroke-width:2.2 !important;
	stroke-linecap:round !important;stroke-linejoin:round !important;
	transition:transform .18s ease !important;
}
.cp-accordion.is-open .cp-chevron,
.cp-accordion-head[aria-expanded="true"] .cp-chevron{transform:rotate(180deg) !important}
.cp-accordion-body{margin-top:12px !important;
font-size: 16px;
color: #000000;
font-weight: 400;
line-height: 24px;
letter-spacing: 0%;
}
.cp-notes-line{margin:0 !important}
.cp-empty{color:var(--cp-muted) !important;font-style:italic !important}

.cp-chars-summary{display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:8px !important;
font-size: 16px;
color: #000000;
font-weight: 400;
line-height: 24px;}
.cp-chars-pill{display:inline-flex !important;align-items:center !important;gap:6px !important;color:var(--cp-ink) !important}
.cp-chars-dot{color:var(--cp-muted) !important}
.cp-char-icon{width:16px !important;height:16px !important;fill:none !important;stroke:var(--cp-blue) !important;stroke-width:1.8 !important}
.cp-chars-list{list-style:none !important;margin:14px 0 0 !important;padding:0 !important;display:flex !important;flex-direction:column !important;gap:8px !important}
.cp-chars-list li{display:flex !important;gap:6px !important;font-size:14px !important}
.cp-chars-label{display:inline-flex !important;align-items:center !important;gap:6px !important;font-weight:600 !important}

/* trust row ----------------------------------------------------------------- */
.cp-trust-row{
	display:flex !important;flex-wrap:wrap !important;align-items:center !important;
	justify-content:flex-start !important;gap:20px !important;margin:26px 0 14px !important;
}
.cp-trust-item{display:flex !important;align-items:center !important;gap:12px !important}
.cp-gca-logo-slot{
	display:inline-flex !important;align-items:center !important;justify-content:center !important;
	width:48px !important;height:48px !important;flex:0 0 auto !important;
	border:1px dashed #c9d3da !important;border-radius:8px !important;
}
.cp-gca-logo-slot img{max-width:100% !important;max-height:100% !important}
.cp-trust-text{margin:0 !important;
font-size: 14px;
color: #000000;
font-weight: 400;
line-height: 16px;
max-width:260px !important}
.cp-truck-icon{width:26px !important;height:26px !important;flex:0 0 auto !important;fill:none !important;stroke:var(--cp-ink) !important;stroke-width:1.6 !important;stroke-linejoin:round !important}

.cp-wholesale{margin:0 !important;
font-size: 14px;
color: #000000;
font-weight: 400;
line-height: 16px;}
.cp-wholesale a{color:var(--cp-muted) !important;text-decoration:underline !important; font-size: inherit!important;}

/* ==========================================================================
   ABOUT THE PRODUCT
   ========================================================================= */
.cp-about{
	background:#fff !important;
	border-radius:16px !important;
	padding:40px !important;
	box-shadow:0 2px 18px rgba(18,38,58,.06) !important;
	margin:0 0 60px !important;
}
.cp-section-title{margin:0 0 24px !important;
font-size: 40px;
color: #000000;
font-weight: 600;
line-height: 40px;
letter-spacing: 0%;
}
.cp-about-grid{display:grid !important;grid-template-columns:1fr 1fr !important;gap:48px !important}
.cp-about-desc{
font-size: 16px;
color: #000000;
font-weight: 400;
line-height: 24px;
	}
.cp-about-desc p{margin:0 0 1em !important}
.cp-about-desc p:last-child{margin-bottom:0 !important}
.cp-about-bullets{list-style:none !important;margin:0 !important;padding:0 !important;display:flex !important;flex-direction:column !important;gap:14px !important}
.cp-about-bullets li{
	position:relative !important;padding-left:20px !important;
	font-size: 16px;
color: #000000;
font-weight: 400;
line-height: 24px;
}
.cp-about-bullets li::before{
	content:"" !important;position:absolute !important;left:0 !important;top:8px !important;
	width:6px !important;height:6px !important;border-radius:50% !important;background:var(--cp-blue) !important;
}

/* ==========================================================================
   FAQ
   ========================================================================= */
.cp-faq{margin:0 0 60px !important;text-align:center !important}
.cp-faq-title{margin:0 0 28px !important;
font-size: 40px;
color: #000000;
font-weight: 600;
line-height: 40px;
letter-spacing: 0%;
text-transform: capitalize;}
.cp-faq-list{display:flex !important;flex-direction:column !important;gap:16px !important;text-align:left !important}
.cp-faq-item{border:0 !important;border-radius:10px !important;overflow:hidden !important;padding:0 !important}
.cp-faq-head{
	background:var(--cp-faq-head) !important;color:#fff !important;
	padding:16px 20px !important;
	font-size: 24px;
color: #000000;
font-weight: 600;
line-height: 40px;
letter-spacing: 0%;
	border-radius:10px !important;
}
.cp-faq-head .cp-chevron{stroke:#000 !important}
.cp-faq-item.is-open .cp-faq-head{border-radius:10px 10px 0 0 !important}
.cp-faq-body{
	background:var(--cp-faq-body) !important;margin:0 !important;
	padding:18px 20px !important;border-radius:0 0 10px 10px !important;
	font-size: 16px!important;
color: #000000;
font-weight: 400;
line-height: 24px;
letter-spacing: 0%;
}
.cp-faq-body p{margin:0 0 .8em !important}
.cp-faq-body p:last-child{margin-bottom:0 !important}
.cp-faq-body a{color:var(--cp-blue-dark) !important}

/* ==========================================================================
   RELATED PRODUCTS
   ========================================================================= */
.cp-related{margin:0 !important}
.cp-related-title{text-align:center !important}

/* ==========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width:960px){
	.cp-top{grid-template-columns:1fr !important;gap:32px !important}
	.cp-gallery{position:static !important}
	.cp-about-grid{grid-template-columns:1fr !important;gap:24px !important}
	.cp-title{font-size:32px !important}
	.cp-about{padding:28px !important}

	/* Buy-box form fixes for mobile: the weight swatches and grind-type
	   dropdown were rendering with invisible text/backgrounds, which left
	   a blank gap above the order box. See the two rules above
	   (.amount-radio-select / .wc-pao-addon-field.dropdown-toggle) — the
	   fix is applied globally since the bug wasn't width-dependent, but
	   this query is kept for any further mobile-only tightening. */
	.amount-radio-select{ min-width:88px !important; }
	.wc-pao-addon-field.dropdown-toggle,
	.cp-native-form table.variations select{ max-width:100% !important; }

	/* Badge shrinks and re-anchors once the gallery is no longer sticky */
	.cp-badge{
		width:130px !important;
		height:88px !important;
		top:10px !important;
		right:10px !important;
		font-size:14px !important;
		padding:16px 8px 16px !important;
	}
}
@media (max-width:560px){
	.cp-trust-row{flex-direction:column !important;align-items:flex-start !important}
	.cp-order-actions{flex-direction:column !important;align-items:stretch !important}
	.cp-qty{align-self:flex-start !important}
}