/* =========================================================
   Sabalka Holistik — estilos del tema
   ========================================================= */

:root {
	--plum: #4A2B63;
	--plum-2: #6A4BA3;
	--ink: #2A1F3D;
	--body: #4A4458;
	--violet: #6B3FA0;
	--lilac: #C9AFF0;
	--lilac-2: #E6DAF5;
	--lilac-3: #EDE4FA;
	--on-dark: #EFE8FA;
	--gold: #C9973F;
	--white: #FFFFFF;
	--line: #D6CCE6;
	--radius: 22px;
	--wrap: 1320px;
	--f-cinzel: 'Cinzel', Georgia, serif;
	--f-serif: 'Cormorant Garamond', Georgia, serif;
	--f-sans: 'Instrument Sans', 'Helvetica Neue', Arial, sans-serif;
	--ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--white);
	color: var(--ink);
	font-family: var(--f-sans);
	font-size: 16px;
	line-height: 1.6;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--plum); text-decoration: none; }
a:hover { color: var(--violet); }
button { font-family: inherit; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

.sb-wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.sb-center { text-align: center; }
.sb-cinzel { font-family: var(--f-cinzel); font-weight: 600; }
.sb-skip { position: absolute; left: -999px; top: 8px; z-index: 100; background: var(--gold); color: var(--ink); padding: 10px 16px; border-radius: 999px; }
.sb-skip:focus { left: 8px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Tipografía */
.sb-h1, .sb-h2, .sb-h3 { font-family: var(--f-serif); font-weight: 600; color: var(--plum); margin: 0; line-height: 1.05; }
.sb-h1 { font-size: clamp(2.4rem, 5vw, 4rem); }
.sb-h2 { font-size: clamp(2.2rem, 4.2vw, 3.6rem); margin-bottom: 20px; }
.sb-h2 a { color: inherit; }
.sb-h3 { font-size: 28px; color: var(--ink); margin-bottom: 8px; }
.sb-eyebrow { margin: 0 0 12px; font-size: 14px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--violet); }
.sb-lead { margin: 0 0 28px; font-size: 18px; line-height: 1.7; color: var(--body); }
.sb-lead p { margin: 0 0 12px; }
.sb-link { display: inline-block; margin-top: 20px; font-weight: 600; }

/* Botones */
.sb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 52px; padding: 0 32px; border-radius: 999px;
	border: 2px solid var(--ink); font-weight: 600; font-size: 16px; cursor: pointer;
	transition: transform .25s, box-shadow .25s, background .25s, color .25s;
}
.sb-btn:hover { transform: translateY(-3px); box-shadow: 0 10px 0 -2px var(--plum); }
.sb-btn--gold { background: var(--gold); color: var(--ink); }
.sb-btn--gold:hover { color: var(--ink); }
.sb-btn--dark { background: var(--plum); border-color: var(--plum); color: var(--white); }
.sb-btn--dark:hover { color: var(--white); }
.sb-btn--ghost { background: transparent; border-color: var(--white); color: var(--white); }
.sb-btn--ghost:hover { color: var(--white); box-shadow: 0 10px 0 -2px var(--gold); }

.sb-pill { display: inline-block; padding: 8px 16px; border-radius: 999px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.sb-pill--gold { background: var(--gold); color: var(--ink); }
.sb-pill--dark { background: var(--plum); color: var(--white); }

.sb-round {
	width: 52px; height: 52px; border-radius: 50%; border: 2px solid var(--plum);
	background: var(--white); color: var(--plum); cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	transition: transform .3s, background .3s;
}
.sb-round:hover { transform: scale(1.08); }
.sb-round--solid { background: var(--plum); color: var(--white); }
.sb-round--light { width: 44px; height: 44px; border-color: var(--white); background: transparent; color: var(--white); }

.sb-dots { display: flex; justify-content: center; gap: 8px; }
.sb-dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 5px; background: var(--line); cursor: pointer; transition: width .4s, background .4s; }
.sb-dots button[aria-current="true"] { width: 30px; background: var(--plum); }
.sb-dots--light button { background: rgba(255,255,255,.55); }
.sb-dots--light button[aria-current="true"] { background: var(--gold); }

/* Cintas en movimiento */
.sb-marquee { display: flex; width: max-content; animation: sb-marquee 30s linear infinite; }
.sb-marquee__item { white-space: nowrap; padding-right: 40px; }
.sb-marquee--slow { animation-duration: 46s; }
.sb-marquee--rev { animation-direction: reverse; }
@keyframes sb-marquee { to { transform: translateX(-50%); } }

.sb-ticker { background: var(--violet); color: var(--white); overflow: hidden; padding: 10px 0; font-size: 14px; font-weight: 500; }
.sb-band { background: var(--lilac-3); border-block: 2px solid var(--plum); overflow: hidden; padding: 16px 0; font-family: var(--f-serif); font-weight: 600; font-size: 34px; color: var(--plum); }

/* Encabezado */
.sb-header { background: var(--white); border-bottom: 2px solid var(--plum); position: sticky; top: 0; z-index: 40; }
.admin-bar .sb-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .sb-header { top: 0; position: relative; } }
.sb-header__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: 14px; padding-bottom: 12px; }
.sb-brand { display: flex; align-items: center; gap: 14px; color: var(--ink); }
.sb-brand:hover { color: var(--ink); }
.sb-brand__mark { width: 60px; height: 60px; border-radius: 50%; border: 2px solid var(--gold); }
.sb-brand__text { display: flex; flex-direction: column; gap: 4px; }
.sb-brand__name { font-family: var(--f-cinzel); font-weight: 600; font-size: 26px; line-height: 1; letter-spacing: .06em; }
.sb-brand__tag { font-family: var(--f-cinzel); font-weight: 500; font-size: 11px; letter-spacing: .42em; color: var(--violet); }
.sb-header__actions { display: flex; gap: 10px; }
.sb-iconbtn {
	position: relative; width: 44px; height: 44px; border-radius: 50%;
	border: 2px solid var(--plum); background: transparent; color: var(--plum);
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
}
.sb-iconbtn--solid { background: var(--plum); color: var(--white); }
.sb-iconbtn--solid:hover { color: var(--white); }
.sb-cart-count {
	position: absolute; top: -6px; right: -6px; min-width: 22px; height: 22px; padding: 0 5px;
	border-radius: 11px; background: var(--gold); color: var(--ink); font-size: 12px; font-weight: 600;
	display: flex; align-items: center; justify-content: center;
}
.sb-cart.is-bumped .sb-cart-count { animation: sb-bump .5s ease; }
@keyframes sb-bump { 40% { transform: scale(1.4); } }
.sb-menu-toggle { display: none; }

.sb-nav { padding: 0 24px 14px; }
.sb-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 34px; font-size: 15px; font-weight: 500; }
.sb-menu a { position: relative; color: var(--plum); }
.sb-menu a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px; background: var(--violet); transform: scaleX(0); transition: transform .4s; }
.sb-menu a:hover::after, .sb-menu .current-menu-item a::after { transform: scaleX(1); }

@media (max-width: 760px) {
	.sb-brand__mark { width: 48px; height: 48px; }
	.sb-brand__name { font-size: 19px; }
	.sb-brand__tag { font-size: 9px; letter-spacing: .3em; }
	.sb-menu-toggle { display: inline-flex; }
	.sb-nav { display: none; padding-bottom: 18px; }
	.sb-nav.is-open { display: block; }
	.sb-menu { flex-direction: column; align-items: center; gap: 14px; font-size: 17px; }
}

/* Secciones */
.sb-section { position: relative; padding: 100px 0; overflow: hidden; }
.sb-section--white { background: var(--white); border-block: 2px solid var(--plum); }
.sb-section--lilac { background: var(--lilac-3); border-block: 2px solid var(--plum); }
.sb-row-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 40px; }
.sb-row-head .sb-h2 { margin: 0; }
.sb-row-head__btns { display: flex; gap: 10px; }

/* Hojas decorativas */
.sb-leaves { position: absolute; width: 200px; height: 260px; pointer-events: none; z-index: 0; }
.sb-leaves--left { left: -24px; bottom: -12px; transform-origin: 0 100%; animation: sb-sway 6s ease-in-out infinite; }
.sb-leaves--right { right: -24px; top: 0; transform: scaleX(-1); transform-origin: 100% 0; animation: sb-sway-r 7s ease-in-out infinite; }
.sb-footer .sb-leaves--left { top: -20px; bottom: auto; opacity: .45; }
@keyframes sb-sway { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(5deg); } }
@keyframes sb-sway-r { 0%, 100% { transform: scaleX(-1) rotate(-5deg); } 50% { transform: scaleX(-1) rotate(5deg); } }

/* Portada */
.sb-hero { position: relative; background: var(--plum); color: var(--white); overflow: hidden; }
.sb-hero__sky { position: absolute; inset: -15% 0; z-index: 0; pointer-events: none; opacity: .8; }
.sb-hero__sky svg { width: 100%; height: 100%; display: block; }
[data-parallax] { will-change: translate; }
.sb-hero__inner { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 56px; padding-top: 64px; padding-bottom: 80px; }
.sb-hero__copy { flex: 1 1 480px; min-width: 0; }
.sb-hero__copy .sb-pill { margin-bottom: 24px; }
.sb-hero__title { margin: 0 0 24px; font-family: var(--f-serif); font-weight: 600; font-size: clamp(3rem, 6.2vw, 5.6rem); line-height: 1.02; }
.sb-hero__text { margin: 0 0 36px; max-width: 520px; font-size: 19px; line-height: 1.6; color: var(--on-dark); }
.sb-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; }
.sb-hero__media { flex: 1 1 420px; min-width: 0; position: relative; display: flex; justify-content: center; }

.sb-in { animation: sb-rise 1.1s var(--ease) both; }
.sb-hero__copy .sb-in:nth-child(2) { animation-delay: .15s; }
.sb-hero__copy .sb-in:nth-child(3) { animation-delay: .3s; }
.sb-hero__copy .sb-in:nth-child(4) { animation-delay: .45s; }
@keyframes sb-rise { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
.sb-pop { animation: sb-pop .8s cubic-bezier(.2, .8, .2, 1.2) .2s both; }
@keyframes sb-pop { from { opacity: 0; transform: scale(.88) rotate(-5deg); } to { opacity: 1; transform: none; } }

.sb-carousel { width: min(100%, 470px); display: flex; flex-direction: column; align-items: center; gap: 22px; }
.sb-arch {
	position: relative; width: 100%; aspect-ratio: 4 / 5; overflow: hidden;
	background: #F4ECF8; border: 3px solid var(--gold); border-radius: 240px 240px 24px 24px;
	box-shadow: 0 0 0 10px rgba(201, 151, 63, .18);
}
.sb-slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.08); pointer-events: none; transition: opacity .9s ease, transform 1.4s var(--ease); }
.sb-slide.is-active { opacity: 1; transform: none; pointer-events: auto; }
.sb-slide > img { width: 100%; height: 100%; object-fit: cover; }
.sb-slide__gem { width: 100%; height: 100%; background: var(--slide-bg, var(--lilac-2)); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 70px 32px 40px; text-align: center; }
.sb-slide__gem svg { width: 64%; max-width: 250px; height: auto; }
.sb-slide__name { margin: 0; font-size: 28px; letter-spacing: .08em; color: var(--ink); }
.sb-slide__text { margin: 0; max-width: 300px; color: #3E3350; }
.sb-carousel__controls { display: flex; align-items: center; gap: 14px; }
.sb-breathe { animation: sb-breathe 9s ease-in-out infinite; }
@keyframes sb-breathe { 50% { transform: scale(1.04); } }

.sb-badge { position: absolute; left: max(0px, calc(50% - 290px)); top: 4%; width: 130px; height: 130px; animation: sb-spin 24s linear infinite; z-index: 2; }
@keyframes sb-spin { to { transform: rotate(360deg); } }
.sb-bob { animation: sb-bob 6s ease-in-out infinite; }
@keyframes sb-bob { 50% { transform: translateY(-14px); } }
.sb-tw { transform-box: fill-box; transform-origin: center; animation: sb-twinkle 2.8s ease-in-out infinite; }
.sb-tw--late { animation-delay: 1.2s; }
@keyframes sb-twinkle { 0%, 100% { opacity: 0; transform: scale(.2); } 50% { opacity: 1; transform: scale(1); } }

@media (max-width: 760px) {
	.sb-hero__inner { padding-top: 40px; gap: 40px; }
	.sb-badge { width: 96px; height: 96px; left: 0; }
}

/* De la tierra */
.sb-split { display: flex; flex-wrap: wrap; align-items: center; gap: 64px; }
.sb-split > * { flex: 1 1 420px; min-width: 0; }
.sb-illus { background: #F6D9A8; border: 2px solid var(--plum); border-radius: 28px; overflow: hidden; aspect-ratio: 5 / 4; box-shadow: 12px 12px 0 var(--plum); }
.sb-illus svg { width: 100%; height: 100%; display: block; }

/* Pieza destacada */
.sb-featured__inner { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; }
.sb-gallery { flex: 1 1 480px; min-width: 0; }
.sb-gallery__stage {
	position: relative; aspect-ratio: 1 / 1; overflow: hidden;
	background: var(--stage-bg, var(--lilac-2)); border: 2px solid var(--plum); border-radius: 28px;
	display: flex; align-items: center; justify-content: center;
}
.sb-gallery__main { width: 100%; height: 100%; object-fit: cover; transition: opacity .35s; }
.sb-gallery__main.is-fading { opacity: 0; }
.sb-gallery__gem { width: 46%; height: auto; }
.sb-gallery__tag { position: absolute; top: 18px; left: 18px; z-index: 2; }
.sb-gallery__thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.sb-thumb { padding: 0; border: 2px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--white); cursor: pointer; aspect-ratio: 1 / 1; transition: transform .3s, border-color .3s; }
.sb-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sb-thumb:hover { transform: translateY(-3px); }
.sb-thumb[aria-pressed="true"] { border-color: var(--plum); }
.sb-featured__info { flex: 1 1 420px; min-width: 0; }
.sb-price { margin: 0 0 22px; font-size: 26px; font-weight: 600; color: var(--ink); }
.sb-price del { opacity: .5; font-size: .8em; margin-right: 8px; }
.sb-price ins { text-decoration: none; }
.sb-featured__buy { margin-bottom: 30px; }
.sb-admin-hint { background: #FFF6E0; border: 1px dashed var(--gold); border-radius: 14px; padding: 14px 18px; font-size: 14px; }

.sb-perks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.sb-perks li { background: var(--perk-bg); border-radius: 18px; padding: 16px 10px; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--ink); }
.sb-perks .sb-icon { width: 28px; height: 28px; color: var(--plum); }

/* Catálogo */
.sb-filters { display: flex; flex-wrap: wrap; gap: 10px; }
.sb-chip { min-height: 44px; padding: 0 20px; border-radius: 999px; border: 2px solid var(--plum); background: transparent; color: var(--plum); font-size: 14px; font-weight: 600; cursor: pointer; transition: background .3s, color .3s; }
.sb-chip[aria-pressed="true"] { background: var(--plum); color: var(--white); }
.sb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 26px; }
.sb-card { background: var(--white); border: 2px solid var(--plum); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; transition: transform .5s var(--ease), box-shadow .5s; }
.sb-card:hover { transform: translateY(-8px); box-shadow: 8px 8px 0 var(--plum); }
.sb-card.is-hidden { display: none; }
.sb-card__media { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: var(--card-bg, var(--lilac-2)); border-bottom: 2px solid var(--plum); overflow: hidden; }
.sb-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.sb-card:hover .sb-card__media img { transform: scale(1.06); }
.sb-card__media svg { width: 42%; height: auto; transition: transform .9s var(--ease); }
.sb-card:hover .sb-card__media svg { transform: rotate(-8deg) scale(1.08); }
.sb-card__sale { position: absolute; top: 14px; left: 14px; }
.sb-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.sb-card__cat { margin: 0 0 4px; font-size: 13px; font-weight: 600; color: var(--violet); }
.sb-card__title { margin: 0 0 16px; font-family: var(--f-serif); font-weight: 600; font-size: 24px; line-height: 1.1; }
.sb-card__title a { color: var(--plum); }
.sb-card__foot { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.sb-card__price { font-weight: 600; color: var(--ink); }
.sb-card__price del { opacity: .5; font-size: .85em; }
.sb-card__price ins { text-decoration: none; }
.sb-card .button, .sb-card .added_to_cart {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px;
	border: 2px solid var(--plum); background: var(--lilac-3); color: var(--plum); font-weight: 600; font-size: 14px;
}
.sb-card .button:hover { background: var(--plum); color: var(--white); }
.sb-card .button.loading { opacity: .6; }
.sb-card .added_to_cart { border-color: transparent; background: transparent; padding: 0; text-decoration: underline; }
.sb-more { margin: 44px 0 0; }

/* Promesa */
.sb-promise { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 56px; }
.sb-promise > :first-child { flex: 1 1 320px; }
.sb-promise__grid { flex: 2 1 560px; min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }
.sb-card-box { background: var(--white); border: 2px solid var(--plum); border-radius: var(--radius); padding: 30px; }
.sb-card-box p { margin: 0; color: var(--body); line-height: 1.7; }
.sb-num { display: inline-flex; width: 48px; height: 48px; border-radius: 50%; align-items: center; justify-content: center; margin-bottom: 18px; font-family: var(--f-serif); font-weight: 600; font-size: 24px; }
.sb-num--violet { background: var(--violet); color: var(--white); }
.sb-num--gold { background: var(--gold); color: var(--ink); }
.sb-num--rose { background: #E0A3AE; color: var(--ink); }
.sb-num--plum { background: var(--plum); color: var(--white); }

/* Momentos (carrusel) */
.sb-moments { padding-bottom: 80px; }
.sb-track {
	display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	scrollbar-width: none; padding: 12px 24px 20px max(24px, calc((100vw - var(--wrap)) / 2 + 24px));
	scroll-padding-left: max(24px, calc((100vw - var(--wrap)) / 2 + 24px));
}
.sb-track::-webkit-scrollbar { display: none; }
.sb-tile {
	flex: 0 0 min(78vw, 300px); min-height: 340px; scroll-snap-align: start;
	background: var(--tile-bg); border: 2px solid var(--plum); border-radius: 26px; padding: 30px;
	display: flex; flex-direction: column; justify-content: space-between;
	transition: transform .5s var(--ease);
}
.sb-tile:hover { transform: rotate(-2deg) translateY(-8px); }
.sb-tile__icon { width: 72px; height: 86px; transition: transform .8s var(--ease); }
.sb-tile:hover .sb-tile__icon { transform: scale(1.12) rotate(8deg); }
.sb-tile .sb-h3 { font-size: 30px; }
.sb-tile p { margin: 0; color: #2E2440; }
.sb-moments .sb-dots { margin-top: 18px; }

/* Eslogan */
.sb-slogan { background: var(--violet); color: var(--white); border-block: 2px solid var(--ink); overflow: hidden; padding: 64px 0; }
.sb-slogan__big { font-family: var(--f-serif); font-weight: 600; font-size: clamp(3rem, 8vw, 7rem); line-height: 1; }
.sb-slogan__small { margin-top: 20px; font-size: 17px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--lilac-2); }

/* Preguntas */
.sb-faq { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 16px; align-items: start; margin-top: 40px; }
.sb-faq__item { background: var(--white); border: 2px solid var(--plum); border-radius: 20px; transition: background .4s; }
.sb-faq__item[open] { background: var(--open-bg); }
.sb-faq__item summary { list-style: none; cursor: pointer; min-height: 64px; padding: 18px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 17px; font-weight: 600; color: var(--ink); }
.sb-faq__item summary::-webkit-details-marker { display: none; }
.sb-faq__icon { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--plum); color: var(--white); display: flex; align-items: center; justify-content: center; transition: transform .4s; }
.sb-faq__item[open] .sb-faq__icon { transform: rotate(45deg); }
.sb-faq__item p { margin: 0; padding: 0 24px 22px; color: var(--body); line-height: 1.7; animation: sb-rise .5s var(--ease); }

/* Pie de página */
.sb-footer { position: relative; overflow: hidden; background: var(--plum); color: var(--on-dark); padding: 88px 0 36px; }
.sb-footer a { color: var(--on-dark); }
.sb-footer a:hover { color: var(--gold); }
.sb-footer__inner { position: relative; z-index: 1; }
.sb-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 44px; padding-bottom: 52px; border-bottom: 1px solid rgba(239, 232, 250, .3); }
.sb-footer__brand img { width: 84px; height: 84px; border-radius: 50%; border: 2px solid var(--gold); margin-bottom: 16px; }
.sb-footer__brand p { margin: 0 0 8px; }
.sb-footer__name { font-size: 24px; letter-spacing: .06em; color: var(--white); }
.sb-footer__tag { font-size: 11px; letter-spacing: .4em; color: var(--lilac); }
.sb-footer__title { margin: 0 0 14px; font-family: var(--f-sans); font-size: 16px; font-weight: 600; color: var(--gold); }
.sb-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.sb-footer__links a, .sb-footer__links span { display: inline-flex; align-items: center; gap: 8px; }
.sb-footer__col p { margin: 0 0 16px; }
.sb-footer__giant { margin: 40px 0 0; font-size: clamp(2.2rem, 9vw, 8.5rem); line-height: .9; letter-spacing: .04em; color: var(--plum-2); text-align: center; }
.sb-footer__legal { margin: 20px 0 0; text-align: center; font-size: 13px; color: #CBBCE6; }

/* Aviso de carrito */
.sb-toast {
	position: fixed; left: 50%; bottom: 28px; z-index: 60; transform: translateX(-50%);
	display: flex; align-items: center; gap: 10px; padding: 14px 24px; border-radius: 999px;
	background: var(--white); color: var(--ink); border: 2px solid var(--plum); box-shadow: 6px 6px 0 var(--plum);
	font-weight: 600; animation: sb-toast .5s var(--ease) both;
}
.sb-toast .sb-icon { color: var(--violet); }
.sb-toast[hidden] { display: none; }
@keyframes sb-toast { from { opacity: 0; transform: translate(-50%, 24px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* Animación al hacer scroll */
.js .sb-reveal { opacity: 0; transform: translateY(40px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.js .sb-reveal.is-visible { opacity: 1; transform: none; }

/* Páginas internas */
.sb-page-head { background: var(--lilac-3); border-bottom: 2px solid var(--plum); padding: 56px 0 44px; }
.sb-content, .sb-shop { padding-top: 56px; padding-bottom: 96px; }
.sb-content { max-width: 1100px; }
.sb-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.sb-404 .sb-404__gem { width: 120px; margin: 0 auto 24px; }
.sb-404 .sb-btn { margin: 6px; }
.sb-notices:empty { display: none; }
.sb-notices { padding-top: 16px; }

/* =========================================================
   WooCommerce
   ========================================================= */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce .single_add_to_cart_button, .woocommerce-page .button,
.sb-featured__buy .button {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px; padding: 0 30px !important; border-radius: 999px !important;
	border: 2px solid var(--ink) !important; background: var(--violet) !important; color: var(--white) !important;
	font-family: var(--f-sans); font-weight: 600 !important; font-size: 16px !important; line-height: 1 !important;
	transition: transform .25s, box-shadow .25s;
}
.woocommerce .button:hover, .sb-featured__buy .button:hover { transform: translateY(-3px); box-shadow: 0 10px 0 -2px var(--plum); }
.woocommerce .button.alt, .woocommerce a.checkout-button, .woocommerce #place_order { background: var(--plum) !important; }
.woocommerce .button:disabled, .woocommerce .button.disabled { opacity: .5 !important; }

.woocommerce .quantity .qty, .sb-featured__buy .qty {
	width: 84px; min-height: 52px; border: 2px solid var(--plum); border-radius: 999px; text-align: center;
	font-size: 17px; font-weight: 600; color: var(--ink); background: var(--white);
}
.sb-featured__buy form.cart, .woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.sb-featured__buy form.variations_form, .woocommerce div.product form.variations_form { display: block; }
.woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.variations { margin-bottom: 18px; border: 0; }
.variations th, .variations td { display: block; padding: 0; text-align: left; border: 0; }
.variations label { font-weight: 600; font-size: 14px; }
.variations select {
	min-height: 48px; min-width: 220px; margin: 6px 0 14px; padding: 0 18px; border-radius: 999px;
	border: 2px solid var(--plum); background: var(--white); font-family: inherit; font-size: 15px; color: var(--ink);
}
.reset_variations { font-size: 14px; }
.woocommerce-variation-price .price { font-size: 22px; font-weight: 600; }

input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], textarea, select,
.woocommerce form .form-row .input-text, .woocommerce form .form-row select {
	border: 2px solid var(--line); border-radius: 14px; padding: 12px 16px; font-family: inherit; font-size: 15px; color: var(--ink); background: var(--white);
}
input:focus, textarea:focus, select:focus { border-color: var(--plum); outline: none; }
.woocommerce form .form-row label { font-weight: 600; font-size: 14px; }

/* Catálogo de WooCommerce */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 26px; margin: 0 !important; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important; padding: 0 0 22px !important;
	background: var(--white); border: 2px solid var(--plum); border-radius: var(--radius); overflow: hidden;
	display: flex; flex-direction: column; text-align: left; transition: transform .5s var(--ease), box-shadow .5s;
}
.woocommerce ul.products li.product:hover { transform: translateY(-8px); box-shadow: 8px 8px 0 var(--plum); }
.woocommerce ul.products li.product a img { margin: 0 0 16px !important; aspect-ratio: 1 / 1; object-fit: cover; border-bottom: 2px solid var(--plum); background: var(--lilac-2); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0 20px !important; font-family: var(--f-serif); font-weight: 600; font-size: 24px !important; color: var(--plum); line-height: 1.1; }
.woocommerce ul.products li.product .price { padding: 0 20px; color: var(--ink) !important; font-weight: 600; font-size: 16px !important; }
.woocommerce ul.products li.product .button { margin: auto 20px 0 !important; min-height: 44px; font-size: 14px !important; background: var(--lilac-3) !important; color: var(--plum) !important; border-color: var(--plum) !important; align-self: flex-start; }
.woocommerce ul.products li.product .added_to_cart { margin: 8px 20px 0; font-weight: 600; }
.woocommerce span.onsale { min-height: 0; min-width: 0; line-height: 1; padding: 8px 14px; border-radius: 999px; background: var(--gold); color: var(--ink); font-weight: 600; top: 14px !important; left: 14px !important; right: auto !important; margin: 0 !important; }
.woocommerce .woocommerce-result-count { color: var(--body); }
.woocommerce .woocommerce-ordering select { border-radius: 999px; border-color: var(--plum); }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; gap: 8px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { border: 2px solid var(--plum); border-radius: 50%; min-width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--plum); color: var(--white); }
.woocommerce .woocommerce-breadcrumb { color: var(--body); margin-bottom: 28px; }

/* Ficha de producto */
.woocommerce div.product div.images img { border-radius: 24px; border: 2px solid var(--plum); }
.woocommerce div.product div.images .flex-control-thumbs li img { border-radius: 12px; border-width: 2px; margin-top: 10px; }
.woocommerce div.product .product_title { font-family: var(--f-serif); font-weight: 600; font-size: clamp(2.2rem, 4vw, 3.4rem); color: var(--plum); line-height: 1.05; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ink) !important; font-size: 26px !important; font-weight: 600; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--body); font-size: 17px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--plum); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-color: var(--plum); background: var(--lilac-3); border-radius: 14px 14px 0 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--white); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--plum); font-weight: 600; }
.woocommerce div.product .woocommerce-tabs h2 { font-family: var(--f-serif); color: var(--plum); }
.woocommerce .related > h2, .woocommerce .upsells > h2, .cross-sells > h2 { font-family: var(--f-serif); font-weight: 600; font-size: 2.4rem; color: var(--plum); }
.product_meta { font-size: 14px; color: var(--body); }

/* Avisos */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	border-radius: 16px; border: 2px solid var(--plum) !important; background: var(--lilac-3) !important; color: var(--ink);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--violet) !important; }
.woocommerce-error { border-color: #A33A4F !important; background: #FBEAEE !important; }

/* Carrito, pago y cuenta (clásicos) */
.woocommerce table.shop_table { border: 2px solid var(--plum); border-radius: 20px; overflow: hidden; border-collapse: separate; }
.woocommerce table.shop_table th { background: var(--lilac-3); color: var(--plum); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-color: var(--line); padding: 14px 16px; }
.woocommerce-cart .cart-collaterals .cart_totals h2, .woocommerce-checkout h3 { font-family: var(--f-serif); color: var(--plum); font-size: 2rem; }
.woocommerce-checkout #payment { background: var(--lilac-3) !important; border-radius: 20px; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 16px; border-radius: 12px; font-weight: 600; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--plum); color: var(--white); }

/* Carrito y pago en bloques (WooCommerce moderno) */
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	border-radius: 999px !important; background: var(--plum) !important; color: var(--white) !important; min-height: 52px; font-weight: 600 !important;
}
.wc-block-components-title, .wc-block-cart .wc-block-cart__totals-title { font-family: var(--f-serif) !important; color: var(--plum); }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input { border-radius: 14px !important; }

/* Responsive */
@media (max-width: 760px) {
	.sb-section { padding: 72px 0; }
	.sb-perks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sb-band { font-size: 26px; }
	.sb-illus { box-shadow: 8px 8px 0 var(--plum); }
	.sb-row-head { margin-bottom: 28px; }
}

/* Menos movimiento si la persona lo prefiere */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.js .sb-reveal { opacity: 1; transform: none; }
	[data-parallax] { translate: none !important; will-change: auto; }
}
