/* ==========================================================================
   S&C Widgets — componentes compartidos
   Botones, tarjeta de producto, píldoras, flechas de carrusel, campos y mensajes.
   Los valores salen de las variables del tema (--sc-*) con respaldo propio.
   ========================================================================== */

.sc-section {
	--sc-c-primary: var(--sc-color-primary, #F2A5C8);
	--sc-c-primary-dark: var(--sc-color-primary-dark, #D9649B);
	--sc-c-light: var(--sc-color-light, #F7D4E6);
	--sc-c-lighter: var(--sc-color-lighter, #FDEBF2);
	--sc-c-text: var(--sc-color-text, #111);
	--sc-c-muted: var(--sc-color-muted, #555);
	--sc-c-border: var(--sc-color-border, #EDEDED);
	--sc-f-sans: var(--sc-font-sans, "DM Sans", sans-serif);
	--sc-f-serif: var(--sc-font-serif, "Playfair Display", serif);
	--sc-f-script: var(--sc-font-script, "Caveat", cursive);
	--sc-pad-x: var(--sc-gutter, clamp(16px, 5vw, 100px));

	position: relative;
	color: var(--sc-c-text);
	font-family: var(--sc-f-sans);
}

.sc-inner {
	width: 100%;
	max-width: calc(var(--sc-container, 1240px) + var(--sc-pad-x) * 2);
	margin-inline: auto;
	padding-inline: var(--sc-pad-x);
}

.sc-section em {
	font-family: var(--sc-f-serif);
	font-style: italic;
	font-weight: 400;
}

/* Texto pequeño en mayúsculas del diseño (párrafos, etiquetas). */
.sc-caps {
	font-size: 11px;
	line-height: 1.75;
	text-transform: uppercase;
	letter-spacing: .01em;
}

.sc-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--sc-c-primary-dark);
}

/* Icono flor (imagen) */
.sc-flower {
	display: inline-block;
	width: var(--sc-icon-size, 14px);
	height: auto;
	flex: none;
	vertical-align: middle;
}

.sc-icon { width: var(--sc-icon-size, 1em); height: var(--sc-icon-size, 1em); flex: none; }
.sc-deco { display: block; color: var(--sc-c-primary); }

/* ---------- Botones ---------- */
.sc-btn {
	--sc-btn-icon: 30px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 44px;
	padding: 6px 26px;
	border: 1px solid var(--sc-c-primary);
	border-radius: 999px;
	background: transparent;
	color: var(--sc-c-text);
	font-family: var(--sc-f-sans);
	font-size: 10px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: .03em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
	-webkit-tap-highlight-color: transparent;
}
.sc-btn:hover { background: var(--sc-c-primary); color: var(--sc-c-text); }
.sc-btn:active { transform: scale(.98); }
.sc-btn[disabled], .sc-btn.is-loading { opacity: .6; pointer-events: none; }

.sc-btn__icon {
	display: inline-grid;
	place-items: center;
	width: var(--sc-btn-icon);
	height: var(--sc-btn-icon);
	border-radius: 50%;
	background: var(--sc-c-primary);
	color: var(--sc-c-text);
	transition: transform .3s ease;
}
.sc-btn__icon svg, .sc-btn__icon i { width: 12px; height: 12px; font-size: 12px; }
.sc-btn:hover .sc-btn__icon { transform: rotate(45deg); }

.sc-btn--arrow { padding: 4px 4px 4px 26px; justify-content: space-between; gap: 32px; }
.sc-btn--arrow:hover { background: var(--sc-c-lighter); }

.sc-btn--solid { background: var(--sc-c-primary); border-color: var(--sc-c-primary); }
.sc-btn--solid:hover { background: var(--sc-c-primary-dark); border-color: var(--sc-c-primary-dark); color: #fff; }

.sc-btn--soft {
	background: rgba(255, 255, 255, .28);
	border-color: var(--sc-c-primary);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.sc-btn--soft:hover { background: rgba(255, 255, 255, .7); }

.sc-btn--white {
	background: #fff;
	border-color: #fff;
	padding: 6px 6px 6px 40px;
	justify-content: space-between;
	gap: 40px;
}
.sc-btn--white .sc-btn__label { text-decoration: underline; text-underline-offset: 3px; flex: 1; text-align: center; }
.sc-btn--white:hover { background: var(--sc-c-lighter); border-color: var(--sc-c-lighter); }

/* ---------- Píldoras de filtro ---------- */
.sc-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.sc-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	padding: 4px 18px;
	border: 1px solid var(--sc-c-primary);
	border-radius: 999px;
	background: #fff;
	font-size: 9px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--sc-c-text);
	transition: background-color .2s ease;
	white-space: nowrap;
}
.sc-pill:hover { background: var(--sc-c-lighter); }
.sc-pill.is-active { background: var(--sc-c-primary); }

/* ---------- Flechas ---------- */
.sc-arrows { display: flex; gap: 8px; }
.sc-arrow {
	display: inline-grid;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 1px solid var(--sc-c-primary);
	border-radius: 50%;
	background: #fff;
	color: var(--sc-c-text);
	transition: background-color .2s ease, opacity .2s ease;
}
.sc-arrow svg { width: 14px; height: 14px; }
.sc-arrow:hover { background: var(--sc-c-lighter); }
.sc-arrow[disabled] { opacity: .35; cursor: default; }

/* ---------- Tarjeta de producto ---------- */
.sc-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.sc-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	border-radius: 6px;
	background: var(--sc-c-light);
}
.sc-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.sc-card:hover .sc-card__media img { transform: scale(1.04); }
.sc-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	padding: 4px 12px;
	border-radius: 999px;
	background: #fff;
	font-size: 9px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--sc-c-text);
}
.sc-card__quick {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #fff;
	color: var(--sc-c-text);
	transition: background-color .2s ease;
}
.sc-card__quick svg { width: 12px; height: 12px; }
.sc-card__quick:hover { background: var(--sc-c-primary); color: var(--sc-c-text); }
.sc-card__info {
	display: grid;
	grid-template-columns: 1fr auto;
	column-gap: 12px;
	row-gap: 4px;
	align-items: baseline;
	padding-top: 16px;
}
.sc-card__title {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-family: var(--sc-f-sans);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: .01em;
}
.sc-card__title a { color: inherit; }
.sc-card__price { font-size: 11px; white-space: nowrap; }
.sc-card__price del { opacity: .5; margin-right: 4px; }
.sc-card__price ins { text-decoration: none; }
.sc-card__subtitle {
	grid-column: 1 / -1;
	margin: 0;
	font-size: 10px;
	text-transform: uppercase;
	color: var(--sc-c-primary-dark);
	letter-spacing: .01em;
}
.sc-card__cta { width: 100%; margin-top: 18px; }
.sc-card .added_to_cart { display: none; }
.sc-card__cta.added .sc-btn__label::after { content: " ✓"; }

/* ---------- Campos ---------- */
.sc-field { display: grid; gap: 8px; }
.sc-field__label { font-size: 11px; color: var(--sc-c-text); }
.sc-input {
	width: 100%;
	min-height: 40px;
	padding: 8px 18px;
	border: 1px solid var(--sc-c-primary);
	border-radius: 999px;
	background: #fff;
	color: var(--sc-c-text);
	font-family: var(--sc-f-sans);
	font-size: 11px;
	outline: none;
	transition: border-color .2s ease, box-shadow .2s ease;
}
textarea.sc-input { min-height: 96px; border-radius: 16px; resize: vertical; }
.sc-input:focus { border-color: var(--sc-c-primary-dark); box-shadow: 0 0 0 3px rgba(242, 165, 200, .3); }
.sc-input::placeholder { color: #9b9b9b; }

.sc-checkbox { display: inline-flex; align-items: flex-start; gap: 10px; font-size: 11px; cursor: pointer; }
.sc-checkbox input {
	appearance: none;
	flex: none;
	width: 16px;
	height: 16px;
	margin: 1px 0 0;
	border: 1px solid var(--sc-c-primary-dark);
	border-radius: 3px;
	background: #fff;
	display: grid;
	place-items: center;
	cursor: pointer;
}
.sc-checkbox input:checked { background: var(--sc-c-primary); }
.sc-checkbox input:checked::after { content: ""; width: 8px; height: 4px; border: 1.5px solid #111; border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); }

.sc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.sc-form-msg { min-height: 1em; margin: 10px 0 0; font-size: 11px; }
.sc-form-msg.is-success { color: #1d7a45; }
.sc-form-msg.is-error { color: #c0392b; }

/* ---------- Utilidades ---------- */
.sc-visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

@media (max-width: 767px) {
	.sc-br { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.sc-section *, .sc-section *::before, .sc-section *::after { transition: none !important; animation: none !important; }
}

/* ---------- Decoraciones flotantes ---------- */
.sc-decos { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.sc-deco-item {
	position: absolute;
	height: auto;
	max-width: none;
	transform: translate(-50%, -50%) rotate(var(--sc-rotate, 0deg));
}

/* ---------- Collage ---------- */
.sc-collage {
	--sc-collage-shadow: rgba(0, 0, 0, .14);
	position: relative;
	width: 100%;
	max-width: 100%;
}
.sc-collage__layer {
	position: absolute;
	height: auto;
	max-width: none;
	transform: rotate(var(--sc-rotate, 0deg));
}
.sc-collage__layer.has-shadow { filter: drop-shadow(0 10px 18px var(--sc-collage-shadow)); }
.sc-collage__layer--paperclip svg { width: 100%; height: auto; }
.sc-collage__layer--binder svg { width: 100%; height: auto; }
.sc-collage__layer--card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .5em;
	padding: 7% 6%;
	aspect-ratio: 4 / 3;
	background: #f6ece7 center / cover no-repeat;
	text-align: center;
	container-type: inline-size;
}
.sc-collage__card-title { margin: 0; font-size: clamp(12px, 10cqi, 24px); letter-spacing: .02em; }
.sc-collage__card-title em { font-size: 1.05em; }
.sc-collage__card-tag {
	margin: 0;
	padding: .2em 1.2em;
	background: var(--sc-c-primary);
	font-size: clamp(5px, 3.2cqi, 8px);
	text-transform: uppercase;
	letter-spacing: .04em;
}
.sc-collage__card-text { margin: 0; font-size: clamp(6px, 4.4cqi, 10px); text-transform: uppercase; line-height: 1.6; max-width: 90%; }
.sc-collage__card-sign { margin: 0; font-family: var(--sc-f-script); font-size: clamp(12px, 10cqi, 26px); }

@media (max-width: 767px) {
	.sc-hide-mobile { display: none !important; }
}

/* ---------- Selector de cantidad ---------- */
.sc-qty { display: inline-flex; align-items: center; gap: 10px; }
.sc-qty__btn {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 1.5px solid var(--sc-c-primary);
	border-radius: 50%;
	background: #fff;
	color: var(--sc-c-text);
	transition: background-color .2s ease;
}
.sc-qty__btn:hover { background: var(--sc-c-lighter); }
.sc-qty__btn svg { width: 12px; height: 12px; }
.sc-qty__input {
	width: 34px;
	min-height: 0;
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 12px;
	text-align: center;
	-moz-appearance: textfield;
	box-shadow: none !important;
}
.sc-qty__input::-webkit-outer-spin-button,
.sc-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* ---------- Aviso de donación ---------- */
.sc-donation {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 12px 16px;
	border-radius: 8px;
	background: var(--sc-c-lighter);
	font-size: 8px;
	line-height: 1.7;
	letter-spacing: .01em;
	text-transform: uppercase;
}
.sc-donation .sc-flower { --sc-icon-size: 18px; }

/* ---------- Avisos de WooCommerce dentro de widgets ---------- */
.sc-notices:empty { display: none; }
.sc-notices .woocommerce-message,
.sc-notices .woocommerce-info,
.sc-notices .woocommerce-error {
	margin: 0 0 20px;
	padding: 14px 18px;
	border-radius: 10px;
	background: var(--sc-c-lighter);
	list-style: none;
	font-size: 12px;
}
.sc-notices .woocommerce-error { background: #fdecec; color: #8a1f1f; }
.sc-notices .button { display: none; }

.sc-card { position: relative; }
