/* Rera Craft — global front-end styles */

/* ---- Logo (header) ---- */
.rc-logo { text-align: center; line-height: 1.1; }
.rc-logo a { text-decoration: none; display: inline-block; }
.rc-logo__word {
	display: block;
	font-family: var(--wp--preset--font-family--display, serif);
	font-weight: 600;
	font-size: 1.375rem;
	color: var(--wp--preset--color--plum, #3A2E2F);
	letter-spacing: 0.18em;
}
.rc-logo__rule {
	display: block;
	font-size: 0.5rem;
	color: var(--wp--preset--color--sage, #8FA48C);
	letter-spacing: 0.3em;
	margin-top: 2px;
}

/* ---- Footer logo + links ---- */
.rc-footer-logo { line-height: 1.1; margin-bottom: 0.75rem; }
.rc-footer-logo__word {
	display: block;
	font-family: var(--wp--preset--font-family--display, serif);
	font-weight: 600;
	font-size: 1.25rem;
	color: var(--wp--preset--color--ivory, #FBF5F1);
	letter-spacing: 0.18em;
}
.rc-footer-logo__rule {
	display: block;
	font-size: 0.5rem;
	color: var(--wp--preset--color--sage, #8FA48C);
	letter-spacing: 0.3em;
	margin-top: 2px;
}
.rc-footer-links a {
	color: inherit;
	opacity: 0.85;
	text-decoration: none;
}
.rc-footer-links a:hover { opacity: 1; text-decoration: underline; }

/* ---- Header search icon ---- */
.wp-block-search.wp-block-search__button-only {
	display: flex;
	align-items: center;
}
.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper {
	align-items: center;
}
.wp-block-search.wp-block-search__button-only .wp-block-search__button {
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	color: var(--wp--preset--color--plum, #3A2E2F);
	padding: 0;
	margin: 0;
	min-width: 0;
	height: 24px;
}
.wp-block-search.wp-block-search__button-only .wp-block-search__button svg { fill: currentColor; }

/* ---- Currency switcher (header) ---- */
.rc-currency-switcher {
	position: relative;
	font-family: var(--wp--preset--font-family--body, sans-serif);
}
.rc-currency-switcher__active {
	display: inline-block;
	border: 0.5px solid #C9A98F;
	border-radius: 20px;
	padding: 4px 10px;
	font-size: 0.7rem;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--plum, #3A2E2F);
	cursor: pointer;
}
.rc-currency-switcher__menu {
	position: absolute;
	top: 120%;
	right: 0;
	background: #fff;
	border: 0.5px solid #E4D8CF;
	border-radius: 10px;
	padding: 6px;
	display: none;
	flex-direction: column;
	min-width: 90px;
	z-index: 40;
	box-shadow: 0 6px 20px rgba(58,46,47,0.12);
}
.rc-currency-switcher:hover .rc-currency-switcher__menu { display: flex; }
.rc-currency-switcher__menu a {
	padding: 6px 10px;
	font-size: 0.8rem;
	color: var(--wp--preset--color--plum, #3A2E2F);
	text-decoration: none;
	border-radius: 6px;
}
.rc-currency-switcher__menu a:hover,
.rc-currency-switcher__menu a.is-active { background: var(--wp--preset--color--ivory-2, #EFE4DC); }

/* ---- Product page features ---- */
.rc-addons {
	border: 1px dashed #C9A98F;
	border-radius: 8px;
	padding: 12px 14px;
	margin: 14px 0;
}
.rc-addons__label {
	display: block;
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sage-dark, #7E9179);
	margin-bottom: 8px;
}
.rc-addon {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.85rem;
	color: var(--wp--preset--color--text-muted, #6B5D5A);
	margin-bottom: 6px;
	cursor: pointer;
}
.rc-addon__price { margin-left: auto; color: var(--wp--preset--color--rose, #B76A73); }
.rc-note-field { margin: 12px 0; }
.rc-note-field label {
	display: block;
	font-size: 0.75rem;
	letter-spacing: 0.05em;
	margin-bottom: 4px;
	color: var(--wp--preset--color--plum, #3A2E2F);
}
.rc-note-field textarea {
	width: 100%;
	border: 0.5px solid #D4C4B8;
	border-radius: 8px;
	padding: 8px 10px;
	font-family: inherit;
	font-size: 0.85rem;
	resize: vertical;
}
.rc-fulfilment {
	font-size: 0.85rem;
	color: var(--wp--preset--color--text-muted, #6B5D5A);
	margin: 10px 0;
}
.rc-fulfilment__icon { color: var(--wp--preset--color--rose, #B76A73); }
.rc-reassurance {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	font-size: 0.82rem;
	color: var(--wp--preset--color--text-muted, #6B5D5A);
}
.rc-reassurance li {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 3px 0;
}
.rc-reassurance__icon { color: var(--wp--preset--color--sage, #8FA48C); font-weight: 500; }

/* ---- Product page eyebrow + currency note ---- */
.rc-product-eyebrow {
	font-size: 0.7rem;
	letter-spacing: 0.15em;
	color: var(--wp--preset--color--sage, #8FA48C);
	margin: 0 0 4px;
}
.rc-product-currency-note {
	font-size: 0.75rem;
	color: var(--wp--preset--color--text-muted, #6B5D5A);
	margin: -0.5rem 0 1rem;
}

/* ---- WooCommerce look & feel ---- */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--wp--preset--font-family--body, sans-serif);
	font-size: 0.9rem;
	color: var(--wp--preset--color--plum, #3A2E2F);
}
.woocommerce ul.products li.product .price {
	color: var(--wp--preset--color--rose, #B76A73);
	font-family: var(--wp--preset--font-family--display, serif);
	font-weight: 600;
	font-size: 1.2rem;
	display: block;
	margin-top: 2px;
}
.woocommerce ul.products li.product img { border-radius: 8px; }

/* ---- Shop toolbar (result count + sorting) ---- */
.woocommerce .woocommerce-result-count {
	float: left;
	font-size: 0.8rem;
	color: var(--wp--preset--color--text-muted, #6B5D5A);
	margin: 0 0 1.5rem;
}
.woocommerce .woocommerce-ordering {
	float: right;
	margin: 0 0 1.5rem;
	clear: none;
}
.woocommerce ul.products { clear: both; transition: opacity 0.15s ease; }
.woocommerce ul.products li.rc-no-products {
	width: 100% !important;
	text-align: center;
	color: var(--wp--preset--color--text-muted, #6B5D5A);
	font-size: 0.9rem;
	padding: 2rem 0;
}
.woocommerce .woocommerce-ordering select.orderby {
	appearance: none;
	-webkit-appearance: none;
	background: var(--wp--preset--color--ivory, #FBF5F1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236B5D5A' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;
	border: 0.5px solid #D4C4B8;
	border-radius: 16px;
	padding: 8px 34px 8px 16px;
	font-family: var(--wp--preset--font-family--body, sans-serif);
	font-size: 0.8rem;
	color: var(--wp--preset--color--plum, #3A2E2F);
	cursor: pointer;
}
.woocommerce .woocommerce-ordering select.orderby:focus-visible {
	outline: 2px solid var(--wp--preset--color--rose, #B76A73);
	outline-offset: 2px;
}
.woocommerce ul.products li.product { position: relative; }
.rc-badge {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
	font-size: 0.65rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 2px 9px;
	border-radius: 10px;
	color: var(--wp--preset--color--ivory, #FBF5F1);
}
.rc-badge--bestseller { background: var(--wp--preset--color--rose, #B76A73); }
.rc-badge--new { background: var(--wp--preset--color--sage, #8FA48C); }
.woocommerce span.onsale {
	background: var(--wp--preset--color--sage, #8FA48C);
	color: var(--wp--preset--color--ivory, #FBF5F1);
	border-radius: 12px;
}
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .single_add_to_cart_button {
	background: var(--wp--preset--color--rose, #B76A73) !important;
	color: var(--wp--preset--color--ivory, #FBF5F1) !important;
	border-radius: 24px !important;
	font-family: var(--wp--preset--font-family--body, sans-serif) !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.8rem !important;
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .single_add_to_cart_button:hover {
	background: var(--wp--preset--color--rose-dark, #9E545D) !important;
}
.woocommerce div.product .product_title {
	font-family: var(--wp--preset--font-family--display, serif);
	color: var(--wp--preset--color--plum, #3A2E2F);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--wp--preset--color--rose, #B76A73);
	font-family: var(--wp--preset--font-family--display, serif);
	font-size: 2rem;
	font-weight: 600;
	display: block;
	margin-bottom: 4px;
}

/* ---- Quantity stepper ---- */
.quantity {
	display: inline-flex;
	align-items: stretch;
	border: 0.5px solid #D4C4B8;
	border-radius: 22px;
	overflow: hidden;
	vertical-align: middle;
}
.quantity .rc-qty__btn {
	background: transparent;
	border: none;
	color: var(--wp--preset--color--text-muted, #6B5D5A);
	font-size: 1rem;
	line-height: 1;
	width: 36px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}
.quantity .rc-qty__btn:hover { color: var(--wp--preset--color--rose, #B76A73); }
.quantity input.qty {
	width: 40px;
	border: none;
	border-left: 0.5px solid #D4C4B8;
	border-right: 0.5px solid #D4C4B8;
	text-align: center;
	font-size: 0.85rem;
	color: var(--wp--preset--color--plum, #3A2E2F);
	padding: 8px 4px;
	-moz-appearance: textfield;
}
.quantity input.qty::-webkit-inner-spin-button,
.quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.quantity input.qty:focus-visible {
	outline: 2px solid var(--wp--preset--color--rose, #B76A73);
	outline-offset: -2px;
}

/* ---- Shop grid loading overlay ---- */
/* clear:both is required — result-count/ordering float above the grid, and
   Woo's clear used to live on ul.products. Wrapping that ul in this div without
   clearing lets the wrap start beside the floats and cover the sort <select>,
   making it look present but unclickable (elementFromPoint hits the wrap). */
.rc-shop-grid-wrap {
	position: relative;
	clear: both;
}
.rc-shop-grid-wrap.is-loading > ul.products {
	opacity: 0.25;
	pointer-events: none;
}
.rc-shop-grid-wrap > ul.products {
	transition: opacity 0.2s ease;
}
.rc-shop-loading {
	/* Fixed + viewport-centered rather than absolute-within-the-grid: the
	   grid can be several rows tall, and centering within its own box would
	   often land the message below the fold relative to wherever the user
	   is scrolled (e.g. right after clicking a sidebar checkbox at the top
	   of the page). */
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 100;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1.75rem 2.25rem;
	background: var(--wp--preset--color--ivory, #FBF5F1);
	border-radius: 16px;
	box-shadow: 0 12px 40px rgba(58, 46, 47, 0.18);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease;
	pointer-events: none;
}
.rc-shop-grid-wrap.is-loading .rc-shop-loading {
	opacity: 1;
	visibility: visible;
}
.rc-shop-loading__logo { line-height: 1.1; margin-bottom: 14px; }
.rc-shop-loading__word {
	display: block;
	font-family: var(--wp--preset--font-family--display, serif);
	font-weight: 600;
	font-size: 1.5rem;
	color: var(--wp--preset--color--plum, #3A2E2F);
	letter-spacing: 0.18em;
	animation: rc-loading-pulse 1.4s ease-in-out infinite;
}
.rc-shop-loading__rule {
	display: block;
	font-size: 0.55rem;
	color: var(--wp--preset--color--sage, #8FA48C);
	letter-spacing: 0.3em;
	margin-top: 3px;
}
.rc-shop-loading__text {
	font-family: var(--wp--preset--font-family--display, serif);
	font-size: 1.1rem;
	color: var(--wp--preset--color--rose, #B76A73);
	margin: 0 0 6px;
}
.rc-shop-loading__slogan {
	font-size: 0.8rem;
	color: var(--wp--preset--color--text-muted, #6B5D5A);
	max-width: 260px;
	margin: 0;
}
@keyframes rc-loading-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.45; }
}
@media (prefers-reduced-motion: reduce) {
	.rc-shop-loading__word { animation: none; }
}

/* ---- Cart / checkout block polish ---- */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-cart .wc-block-components-button,
.woocommerce-message a.button {
	border-radius: 24px !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-family: var(--wp--preset--font-family--body, sans-serif) !important;
}
.woocommerce-message {
	border-top-color: var(--wp--preset--color--sage, #8FA48C);
	background: var(--wp--preset--color--ivory-3, #F4EBE4);
	color: var(--wp--preset--color--plum, #3A2E2F);
}
.wc-block-components-notice-banner.is-success {
	background: var(--wp--preset--color--ivory-3, #F4EBE4);
	border-color: var(--wp--preset--color--sage, #8FA48C);
	color: var(--wp--preset--color--plum, #3A2E2F);
}

/* ---- Responsive: shop sidebar + grid stack on mobile ---- */
@media (max-width: 781px) {
	.rc-shop-layout {
		flex-direction: column;
	}
	.rc-shop-sidebar {
		width: 100%;
	}
	.rc-shop-sidebar__categories {
		display: flex;
		flex-wrap: wrap;
		gap: 4px 16px;
		line-height: 1.6;
		margin-bottom: 1rem;
	}
	.rc-shop-sidebar__categories li { list-style: none; }
	.woocommerce .woocommerce-result-count,
	.woocommerce .woocommerce-ordering {
		float: none;
		display: block;
		margin-bottom: 0.75rem;
	}
	/* Force a readable 2-col shop grid — WC smallscreen CSS is not always
	   enough against columns-3 float widths inside the sidebar layout. */
	.woocommerce ul.products li.product {
		width: 48% !important;
		margin-right: 4% !important;
		clear: none !important;
	}
	.woocommerce ul.products li.product:nth-child(2n) {
		margin-right: 0 !important;
	}
	.woocommerce ul.products li.product:nth-child(2n+1) {
		clear: both !important;
	}
}
@media (max-width: 480px) {
	.woocommerce ul.products li.product {
		width: 100% !important;
		margin-right: 0 !important;
		clear: both !important;
	}
}

/* Skip link + focus visibility (accessibility floor) */
a:focus-visible, button:focus-visible {
	outline: 2px solid var(--wp--preset--color--rose, #B76A73);
	outline-offset: 2px;
}

/* ---- Contact Form 7 ---- */
.wpcf7-form {
	max-width: 32rem;
	margin: 2rem auto 0;
	font-family: var(--wp--preset--font-family--body, sans-serif);
}
.wpcf7-form p { margin-bottom: 1.1rem; }
.wpcf7-form label {
	display: block;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted, #6B5D5A);
	margin-bottom: 6px;
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
	width: 100%;
	background: var(--wp--preset--color--ivory, #FBF5F1);
	border: 1px solid var(--wp--preset--color--clay, #E0D3C9);
	border-radius: 10px;
	padding: 12px 14px;
	font-family: inherit;
	font-size: 0.95rem;
	color: var(--wp--preset--color--plum, #3A2E2F);
	transition: border-color 0.2s ease;
}
.wpcf7-form textarea { min-height: 140px; resize: vertical; }
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--rose, #B76A73);
}
.wpcf7-form .wpcf7-submit {
	background: var(--wp--preset--color--rose, #B76A73);
	color: var(--wp--preset--color--ivory, #FBF5F1);
	border: none;
	border-radius: 24px;
	padding: 14px 32px;
	font-family: var(--wp--preset--font-family--body, sans-serif);
	font-weight: 500;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s ease;
}
.wpcf7-form .wpcf7-submit:hover { background: var(--wp--preset--color--rose-dark, #9E545D); }
.wpcf7-form .wpcf7-submit:disabled { opacity: 0.6; cursor: default; }
.wpcf7-form .wpcf7-spinner { margin-left: 10px; }
.wpcf7-form .wpcf7-not-valid-tip {
	color: var(--wp--preset--color--rose-dark, #9E545D);
	font-size: 0.78rem;
	margin-top: 4px;
}
.wpcf7-form .wpcf7-response-output {
	border-radius: 10px;
	padding: 12px 16px;
	font-size: 0.85rem;
	margin-top: 1.5rem;
}
.wpcf7-form.sent .wpcf7-response-output {
	background: var(--wp--preset--color--sage, #8FA48C);
	color: var(--wp--preset--color--ivory, #FBF5F1);
	border: none;
}
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.spam .wpcf7-response-output {
	background: var(--wp--preset--color--ivory-3, #F4EBE4);
	color: var(--wp--preset--color--rose-dark, #9E545D);
	border: 1px solid var(--wp--preset--color--rose, #B76A73);
}

/* ---- Instagram feed (Smash Balloon) ---- */
.rc-instagram-section #sb_instagram { max-width: 1200px; margin: 2rem auto 0; padding: 0; }
.rc-instagram-section #sb_instagram #sbi_images { justify-content: center; }
.rc-instagram-section #sb_instagram .sbi_item {
	border: 2px solid var(--wp--preset--color--plum, #3A2E2F);
	border-radius: 10px;
	overflow: hidden;
}
.rc-instagram-section #sb_instagram .sbi_photo_wrap,
.rc-instagram-section #sb_instagram .sbi_photo { border-radius: 8px; }
.rc-instagram-section #sb_instagram .sbi_follow_btn a {
	background: var(--wp--preset--color--rose, #B76A73) !important;
	border-radius: 24px !important;
	font-family: var(--wp--preset--font-family--body, sans-serif) !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.8rem !important;
}
.rc-instagram-section .wpcf7-contact-form-not-found,
.rc-instagram-section .sbi_error_message_container {
	max-width: 32rem;
	margin: 1.5rem auto 0;
	text-align: center;
	font-size: 0.85rem;
	color: var(--wp--preset--color--text-muted, #6B5D5A);
}
