/* ICANCROCHET - announcement bar, price row, focus states, image ground
   -------------------------------------------------------------------------- */

/* ------------------------------------------------- announcement bar */
/* Matches the Shopify bar: a solid brand strip with bold, generously
   spaced white text - never an underlined link. */
.ic-announce {
	background: #e00189;
	color: #fff;
	text-align: center;
	padding: 15px 24px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: .01em;
}

.ic-announce a,
.ic-announce a:hover,
.ic-announce a:focus,
.ic-announce a:visited {
	color: #fff;
	text-decoration: none !important;
	border-bottom: 0 !important;
	box-shadow: none !important;
	display: inline-block;
	max-width: 1100px;
}

@media (max-width: 921px) {
	.ic-announce {
		padding: 13px 20px;
		font-size: 15px;
	}
}

@media (max-width: 600px) {
	.ic-announce {
		padding: 12px 26px;
		font-size: 14.5px;
		line-height: 1.45;
	}
}

/* ------------------------------------------------------- price row */
/* Price, compare-at price and the discount badge stay on one line at every
   width; the type scales down rather than wrapping. */
.ic-price {
	display: flex !important;
	align-items: baseline;
	flex-wrap: nowrap !important;
	gap: clamp(6px, 1.4vw, 12px);
	min-width: 0;
}

.ic-price .ic-price-now {
	flex: 0 1 auto;
	white-space: nowrap;
	font-size: clamp(23px, 4.4vw, 34px);
	line-height: 1.15;
}

.ic-price .ic-price-was {
	flex: 0 1 auto;
	white-space: nowrap;
	font-size: clamp(13px, 2.3vw, 17px);
}

.ic-price .ic-badge-off {
	flex: 0 0 auto;
	white-space: nowrap;
	align-self: center;
	font-size: clamp(9.5px, 1.7vw, 12px);
	font-weight: 800;
	letter-spacing: .02em;
	text-transform: uppercase;
	padding: 5px 9px;
	border-radius: 999px;
	background: #fff0f7;
	color: #e00189;
	border: 1px solid #f6cfe3;
}

@media (max-width: 380px) {
	.ic-price {
		gap: 5px;
	}

	.ic-price .ic-badge-off {
		padding: 4px 7px;
	}
}

/* --------------------------------------------- image loading ground */
/* Lazy images reserve their box before the file arrives. Left alone the
   pink page background shows through that box, which reads as a flash on
   load and as an empty gap while scrolling. A white ground inside the
   reserved box removes both without hiding anything. */
.woocommerce div.product div.images.woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image {
	background: #fff;
}

.woocommerce-product-gallery__image {
	border-radius: 10px;
	overflow: hidden;
}

.ic-landing .elementor-widget-image,
.ic-landing .elementor-widget-image .elementor-widget-container,
.ic-landing .e-hosted-video {
	background: #fff;
}

.ic-landing .elementor-widget-image img {
	display: block;
	background: #fff;
}

/* --------------------------------------------------- focus states */
/* The site uses no blue. Replace every browser default with the brand
   ring - visible for keyboard users, invisible on a mouse click. */
.icr-more,
.icr-write-btn,
.icr-bar-row,
.icr-shot,
.icrc-slide,
.icr-card,
.ic-btn,
.ic-sticky-btn,
.single_add_to_cart_button,
.ic-cc-open-link {
	-webkit-tap-highlight-color: transparent;
}

.icr-more:focus,
.icr-write-btn:focus,
.icr-bar-row:focus,
.icr-shot:focus,
.icrc-slide:focus,
.icr-card:focus,
.single_add_to_cart_button:focus,
.ic-cc-open-link:focus {
	outline: none;
	box-shadow: none;
}

.icr-more:focus-visible,
.icr-write-btn:focus-visible,
.icr-bar-row:focus-visible,
.icr-shot:focus-visible,
.icrc-slide:focus-visible,
.icr-card:focus-visible,
.single_add_to_cart_button:focus-visible,
.ic-cc-open-link:focus-visible,
.ic-ft a:focus-visible,
.ic-fx-back:focus-visible {
	outline: 3px solid rgba(224, 1, 137, .45);
	outline-offset: 2px;
	border-radius: 8px;
}

.icr-more:active,
.icr-more:focus,
.icr-more:hover {
	background: #e00189;
	color: #fff;
	border-color: #e00189;
}

.icr-shot,
.icr-shot img,
.icrc-slide,
.icrc-thumb,
.icr-card img {
	border: 0;
	outline-color: rgba(224, 1, 137, .45);
}

.icr-shot:focus img,
.icr-shot:active img,
.icr-card a:focus img {
	background: transparent;
	box-shadow: none;
}

::selection {
	background: rgba(224, 1, 137, .18);
}

input:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: #e00189 !important;
	box-shadow: 0 0 0 3px rgba(224, 1, 137, .14) !important;
}

/* ------------------------------------------------- mobile CTA row */
@media (max-width: 921px) {
	.woocommerce div.product form.cart,
	.woocommerce div.product form.cart .button,
	.single_add_to_cart_button {
		width: 100%;
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
		display: block;
		text-align: center;
		float: none !important;
	}

	.woocommerce div.product form.cart .quantity {
		display: none;
	}

	.ic-landing .elementor-widget-button .elementor-button-wrapper {
		text-align: center;
	}

	.ic-landing .elementor-widget-button .elementor-button {
		display: inline-flex;
		justify-content: center;
		margin-left: auto;
		margin-right: auto;
	}
}

/* ------------------------------------------------------- FAQ icons */
.elementor-toggle .elementor-toggle-icon {
	transition: transform .22s ease;
}

.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-closed {
	display: none;
}

/* --------------------------------------------- buttons never run past the edge */
/* .ic-btn carries white-space:nowrap, which is right for short labels and wrong
   for a long one on a phone: the button grew to 484px inside a 390px screen and
   the label was simply cut off. Long labels now wrap instead. */

a.ic-btn,
button.ic-btn {
	max-width: 100%;
	box-sizing: border-box;
}

@media (max-width: 640px) {

	a.ic-btn,
	button.ic-btn {
		white-space: normal;
		line-height: 1.3;
	}

	.ic-howto-cta a.ic-btn {
		display: block;
		width: 100%;
		text-align: center;
		padding: 14px 18px;
		font-size: 15px;
	}
}
