/* ==========================================================================
   MASTER SLIDES — sistema visual
   Negro y dorado de Macrofertas, superficies de cristal y luz.
   Se encola únicamente en las páginas del servicio.
   ========================================================================== */

.ms-scope {
	--ms-black:   #08070A;
	--ms-ink:     #0E0C10;
	--ms-panel:   #141118;
	--ms-line:    rgba(237, 181, 20, .16);
	--ms-line-2:  rgba(255, 255, 255, .08);
	--ms-gold:    #EDB514;
	--ms-gold-lo: #B98A0C;
	--ms-cream:   #FFEEC7;
	--ms-white:   #FFFFFF;
	--ms-mut:     #9A93A6;
	--ms-mut-2:   #6E6878;
	--ms-font:    'Rubik', system-ui, -apple-system, sans-serif;
}

/* ------------------------------------------------------------ luz ambiental */

.ms-glow { position: relative; overflow: hidden; isolation: isolate; }

.ms-glow::before {
	content: ''; position: absolute; z-index: -1; pointer-events: none;
	width: 940px; height: 940px; top: -420px; left: 50%;
	transform: translateX(-50%);
	background: radial-gradient(circle, rgba(237,181,20,.16) 0%, rgba(237,181,20,.05) 34%, transparent 66%);
	filter: blur(14px);
}

.ms-glow--left::before  { left: 12%; transform: none; }
.ms-glow--right::before { left: auto; right: -180px; transform: none; }

/* Haz de luz que barre lentamente: da sensación de escenario. */
.ms-beam { position: relative; overflow: hidden; }
.ms-beam::after {
	content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0;
	background: linear-gradient(105deg, transparent 38%, rgba(255,238,199,.055) 47%, rgba(237,181,20,.09) 50%, rgba(255,238,199,.055) 53%, transparent 62%);
	background-size: 260% 100%;
	animation: msSweep 13s cubic-bezier(.45,0,.55,1) infinite;
}
@keyframes msSweep { 0% { background-position: 160% 0 } 100% { background-position: -60% 0 } }

/* Retícula técnica muy tenue, como papel milimetrado de laboratorio. */
.ms-grid::before {
	content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image:
		linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
	background-size: 58px 58px;
	mask-image: radial-gradient(ellipse 78% 62% at 50% 42%, #000 20%, transparent 78%);
	-webkit-mask-image: radial-gradient(ellipse 78% 62% at 50% 42%, #000 20%, transparent 78%);
}

/* Filo dorado superior, separador entre secciones. */
.ms-edge { position: relative; }
.ms-edge::before {
	content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
	width: min(1160px, 92%); height: 1px;
	background: linear-gradient(90deg, transparent, rgba(237,181,20,.42), transparent);
}

/* ------------------------------------------------------------------- chips */

.ms-chips { display: flex; flex-wrap: wrap; gap: 9px; margin: 6px 0 4px; }
.ms-chip {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 15px; border-radius: 999px;
	background: rgba(237,181,20,.055);
	border: 1px solid rgba(237,181,20,.22);
	font: 500 12.5px/1 var(--ms-font); color: var(--ms-cream);
	backdrop-filter: blur(6px);
}
.ms-chip svg { width: 12px; height: 12px; fill: none; stroke: var(--ms-gold); stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }

/* =========================================================== DECK DEL HERO */
/* Vista previa real de diapositivas: es la muestra de producto. Cada lámina  */
/* lleva su propia identidad cromática para enseñar el rango de estilos.      */

.ms-deck { position: relative; width: 100%; max-width: 580px; margin-inline: auto; }
.ms-deck__frame {
	position: relative; aspect-ratio: 16 / 9; border-radius: 14px;
	perspective: 1600px; transform-style: preserve-3d;
}

.ms-deck__slide {
	position: absolute; inset: 0; border-radius: 14px; overflow: hidden;
	background: var(--bg, #100D14);
	color: var(--fg, #FFFFFF);
	border: 1px solid var(--edge, rgba(255,255,255,.12));
	box-shadow: 0 34px 76px -24px rgba(0,0,0,.88), 0 0 0 1px rgba(255,255,255,.03) inset;
	opacity: 0; transform: translateY(16px) scale(.965);
	transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1);
}
.ms-deck__slide.is-on   { opacity: 1; transform: none; z-index: 4; }
.ms-deck__slide.is-p1   { opacity: .34; transform: translateY(-12px) scale(.958); z-index: 3; }
.ms-deck__slide.is-p2   { opacity: .16; transform: translateY(-23px) scale(.926); z-index: 2; }
.ms-deck__slide.is-off  { opacity: 0; transform: translateY(-30px) scale(.9); z-index: 1; }

/* Brillo diagonal sobre la lámina activa: da sensación de superficie pulida. */
.ms-deck__slide.is-on::after {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(118deg, transparent 42%, rgba(255,255,255,.07) 50%, transparent 58%);
	background-size: 300% 100%; animation: msShine 6s ease-in-out .4s infinite;
}
@keyframes msShine { 0%,72% { background-position: 180% 0 } 100% { background-position: -40% 0 } }

.ms-slide__top {
	display: flex; align-items: center; gap: 10px;
	padding: 11px 17px; border-bottom: 1px solid var(--rule, rgba(255,255,255,.07));
}
.ms-slide__mark { font: 700 8.5px/1 var(--ms-font); letter-spacing: 2.2px; color: var(--acc); }
.ms-slide__num  { margin-left: auto; font: 500 9.5px/1 var(--ms-font); letter-spacing: .8px; color: var(--dim); }
.ms-slide__body { padding: 16px 22px 20px; height: calc(100% - 41px); display: flex; flex-direction: column; }
.ms-slide__kicker { margin: 0 0 5px; font: 600 8.5px/1 var(--ms-font); letter-spacing: 1.9px; color: var(--dim); }
.ms-slide__title  { margin: 0 0 12px; font: 600 17px/1.25 var(--ms-font); color: var(--fg); letter-spacing: -.2px; }
.ms-slide__title em { font-style: normal; color: var(--acc); }

/* ---------------------------------------------- temas cromáticos por lámina */

.ms-s--gold    { --bg: linear-gradient(160deg,#14100A,#0B0A08); --fg:#fff; --acc:#EDB514; --dim:#8A8172; --edge:rgba(237,181,20,.26); --rule:rgba(237,181,20,.13) }
.ms-s--navy    { --bg: linear-gradient(160deg,#0C1626,#070D16); --fg:#EAF2FA; --acc:#4FD1E0; --dim:#6E8199; --edge:rgba(79,209,224,.24); --rule:rgba(79,209,224,.12) }
.ms-s--cream   { --bg: linear-gradient(160deg,#FBF8F1,#F1EADC); --fg:#15120C; --acc:#A8801A; --dim:#8B8271; --edge:rgba(21,18,12,.14);  --rule:rgba(21,18,12,.10) }
.ms-s--plum    { --bg: linear-gradient(160deg,#1A0E1E,#100813); --fg:#F6EAF3; --acc:#E0679C; --dim:#8E7387; --edge:rgba(224,103,156,.24); --rule:rgba(224,103,156,.13) }
.ms-s--emerald { --bg: linear-gradient(160deg,#07160F,#040D09); --fg:#E6F5EC; --acc:#5FD9A6; --dim:#6C8B7C; --edge:rgba(95,217,166,.24); --rule:rgba(95,217,166,.12) }
.ms-s--cover   { --bg: radial-gradient(120% 100% at 78% 8%, #221B0C 0%, #0A0907 58%); --fg:#fff; --acc:#EDB514; --dim:#8A8172; --edge:rgba(237,181,20,.32); --rule:rgba(237,181,20,.14) }

/* ------------------------------------------------------ 1 · gráfico de datos */

.ms-chart { width: 100%; flex: 1 1 auto; }
.ms-chart .ax   { stroke: color-mix(in srgb, var(--fg) 18%, transparent); stroke-width: 1; }
.ms-chart .grid { stroke: color-mix(in srgb, var(--fg) 7%, transparent); stroke-width: 1; }
.ms-chart .lbl  { font: 500 7.5px var(--ms-font); fill: var(--dim); }
.ms-chart .bar  { fill: color-mix(in srgb, var(--acc) 22%, transparent); rx: 2.5; }
.ms-chart .bar--hi { fill: color-mix(in srgb, var(--acc) 48%, transparent); }
.ms-chart .ln {
	fill: none; stroke: var(--acc); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
	filter: drop-shadow(0 0 6px color-mix(in srgb, var(--acc) 55%, transparent));
	stroke-dasharray: 300; stroke-dashoffset: 300;
}
.is-on .ms-chart .ln { animation: msDraw 1.5s .25s cubic-bezier(.4,0,.2,1) forwards; }
@keyframes msDraw { to { stroke-dashoffset: 0 } }
.ms-chart .dot { fill: var(--bgdot, #0B0A08); stroke: var(--acc); stroke-width: 2; r: 3.2; opacity: 0; }
.is-on .ms-chart .dot { animation: msFade .3s forwards; }
.is-on .ms-chart .dot:nth-of-type(1) { animation-delay: .55s }
.is-on .ms-chart .dot:nth-of-type(2) { animation-delay: .75s }
.is-on .ms-chart .dot:nth-of-type(3) { animation-delay: .95s }
.is-on .ms-chart .dot:nth-of-type(4) { animation-delay: 1.15s }
.is-on .ms-chart .dot:nth-of-type(5) { animation-delay: 1.35s }
@keyframes msFade { to { opacity: 1 } }

/* --------------------------------------------------- 2 · capas anatómicas */

.ms-layers { display: flex; gap: 16px; flex: 1 1 auto; align-items: center; }
.ms-layers__viz { flex: 0 0 40%; }
.ms-layers__viz > * { opacity: 0; }
.is-on .ms-layers__viz > * { animation: msFade .5s forwards; }
.is-on .ms-layers__viz > *:nth-child(1) { animation-delay: .25s }
.is-on .ms-layers__viz > *:nth-child(2) { animation-delay: .45s }
.is-on .ms-layers__viz > *:nth-child(3) { animation-delay: .65s }
.is-on .ms-layers__viz > *:nth-child(4) { animation-delay: .85s }
.ms-layers__key { flex: 1 1 auto; display: flex; flex-direction: column; gap: 9px; }
.ms-layers__row { display: flex; align-items: center; gap: 9px; font: 500 10.5px/1.2 var(--ms-font); color: var(--fg); opacity: .88; }
.ms-layers__row i { width: 9px; height: 9px; border-radius: 2px; flex: 0 0 auto; }
.ms-layers__row b { margin-left: auto; font: 600 10px/1 var(--ms-font); color: var(--dim); }

/* ------------------------------------------------- 3 · algoritmo / proceso */

.ms-algo { display: flex; flex-direction: column; gap: 7px; flex: 1 1 auto; justify-content: center; }
.ms-algo__node {
	display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 8px;
	background: color-mix(in srgb, var(--fg) 4%, transparent);
	border: 1px solid color-mix(in srgb, var(--fg) 8%, transparent);
	font: 500 10.5px/1.2 var(--ms-font); color: var(--fg); opacity: 0; transform: translateX(-8px);
}
.is-on .ms-algo__node { animation: msSlideIn .45s forwards; }
.is-on .ms-algo__node:nth-child(1) { animation-delay: .2s }
.is-on .ms-algo__node:nth-child(2) { animation-delay: .35s }
.is-on .ms-algo__node:nth-child(3) { animation-delay: .5s }
.is-on .ms-algo__node:nth-child(4) { animation-delay: .65s }
@keyframes msSlideIn { to { opacity: 1; transform: none } }
.ms-algo__node--hi {
	background: color-mix(in srgb, var(--acc) 12%, transparent);
	border-color: color-mix(in srgb, var(--acc) 34%, transparent);
}
.ms-algo__step { font: 700 8.5px/1 var(--ms-font); letter-spacing: 1.4px; color: var(--acc); flex: 0 0 auto; }

/* ------------------------------------------- 4 · lámina editorial (declaración) */

.ms-state { display: flex; flex-direction: column; justify-content: center; flex: 1 1 auto; }
.ms-state__rule { width: 46px; height: 3px; background: var(--acc); border-radius: 2px; margin-bottom: 14px; }
.ms-state__big {
	margin: 0; font: 600 25px/1.18 var(--ms-font); letter-spacing: -.7px; color: var(--fg);
}
.ms-state__big em { font-style: normal; color: var(--acc); }
.ms-state__cite { margin: 14px 0 0; font: 400 10.5px/1.4 var(--ms-font); color: var(--dim); }

/* ------------------------------------------------- 5 · comparativa de casos */

.ms-comp { display: flex; gap: 12px; flex: 1 1 auto; }
.ms-comp__c {
	flex: 1 1 0; border-radius: 9px; padding: 11px 12px; display: flex; flex-direction: column; gap: 8px;
	background: color-mix(in srgb, var(--fg) 4%, transparent);
	border: 1px solid color-mix(in srgb, var(--fg) 8%, transparent);
}
.ms-comp__c--after { border-color: color-mix(in srgb, var(--acc) 36%, transparent); background: color-mix(in srgb, var(--acc) 9%, transparent); }
.ms-comp__lbl { font: 700 8px/1 var(--ms-font); letter-spacing: 1.5px; color: var(--dim); }
.ms-comp__c--after .ms-comp__lbl { color: var(--acc); }
.ms-comp__viz { flex: 1 1 auto; border-radius: 6px; background: color-mix(in srgb, var(--fg) 6%, transparent); position: relative; overflow: hidden; }
.ms-comp__viz svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.ms-comp__m { display: flex; justify-content: space-between; font: 500 9px/1 var(--ms-font); color: var(--dim); }
.ms-comp__m b { color: var(--acc); font-weight: 700; }

/* ------------------------------------------------------------ 6 · portada */

.ms-cover { display: flex; flex-direction: column; justify-content: center; flex: 1 1 auto; }
.ms-cover__k { font: 700 8.5px/1 var(--ms-font); letter-spacing: 2.4px; color: var(--acc); margin-bottom: 12px; }
.ms-cover__t { margin: 0; font: 700 27px/1.12 var(--ms-font); letter-spacing: -1px; color: var(--fg); }
.ms-cover__t span { display: block; color: var(--acc); }
.ms-cover__meta { display: flex; gap: 16px; margin-top: 16px; padding-top: 13px; border-top: 1px solid var(--rule); }
.ms-cover__meta div { font: 500 9.5px/1.45 var(--ms-font); color: var(--dim); }
.ms-cover__meta b { display: block; font: 600 11px/1.3 var(--ms-font); color: var(--fg); }

/* --------------------------------------------------- paginación del deck */

.ms-deck__dots { display: flex; justify-content: center; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.ms-deck__dot {
	width: 22px; height: 3px; border-radius: 2px; border: 0; padding: 0; cursor: pointer;
	background: rgba(255,255,255,.14); transition: background .3s, box-shadow .3s;
}
.ms-deck__dot.is-on { background: var(--ms-gold); box-shadow: 0 0 9px rgba(237,181,20,.65); }
.ms-deck__cap { margin: 10px 0 0; text-align: center; font: 400 11.5px/1.5 var(--ms-font); color: var(--ms-mut-2); }

/* -- Diapositiva 1: gráfico de resultados ---------------------------------- */
.ms-chart { width: 100%; flex: 1 1 auto; }
.ms-chart .ax   { stroke: rgba(255,255,255,.13); stroke-width: 1; }
.ms-chart .grid { stroke: rgba(255,255,255,.055); stroke-width: 1; }
.ms-chart .lbl  { font: 500 7.5px var(--ms-font); fill: var(--ms-mut-2); }
.ms-chart .bar  { fill: rgba(237,181,20,.20); rx: 2.5; }
.ms-chart .bar--hi { fill: rgba(237,181,20,.42); }
.ms-chart .ln {
	fill: none; stroke: var(--ms-gold); stroke-width: 2.2;
	stroke-linecap: round; stroke-linejoin: round;
	filter: drop-shadow(0 0 5px rgba(237,181,20,.55));
	stroke-dasharray: 300; stroke-dashoffset: 300;
}
.is-on .ms-chart .ln { animation: msDraw 1.5s .25s cubic-bezier(.4,0,.2,1) forwards; }
@keyframes msDraw { to { stroke-dashoffset: 0 } }
.ms-chart .dot { fill: #100D14; stroke: var(--ms-gold); stroke-width: 2; r: 3.2; opacity: 0; }
.is-on .ms-chart .dot { animation: msFade .3s forwards; }
.is-on .ms-chart .dot:nth-of-type(1) { animation-delay: .55s }
.is-on .ms-chart .dot:nth-of-type(2) { animation-delay: .75s }
.is-on .ms-chart .dot:nth-of-type(3) { animation-delay: .95s }
.is-on .ms-chart .dot:nth-of-type(4) { animation-delay: 1.15s }
.is-on .ms-chart .dot:nth-of-type(5) { animation-delay: 1.35s }
@keyframes msFade { to { opacity: 1 } }

/* -- Diapositiva 2: capas anatómicas --------------------------------------- */
.ms-layers { display: flex; gap: 16px; flex: 1 1 auto; align-items: center; }
.ms-layers__viz { flex: 0 0 40%; }
.ms-layers__viz path, .ms-layers__viz ellipse { opacity: 0; }
.is-on .ms-layers__viz path, .is-on .ms-layers__viz ellipse { animation: msFade .5s forwards; }
.is-on .ms-layers__viz > *:nth-child(1) { animation-delay: .25s }
.is-on .ms-layers__viz > *:nth-child(2) { animation-delay: .45s }
.is-on .ms-layers__viz > *:nth-child(3) { animation-delay: .65s }
.is-on .ms-layers__viz > *:nth-child(4) { animation-delay: .85s }
.ms-layers__key { flex: 1 1 auto; display: flex; flex-direction: column; gap: 9px; }
.ms-layers__row { display: flex; align-items: center; gap: 9px; font: 500 10.5px/1.2 var(--ms-font); color: #C9C3D2; }
.ms-layers__row i { width: 9px; height: 9px; border-radius: 2px; flex: 0 0 auto; }
.ms-layers__row b { margin-left: auto; font: 600 10px/1 var(--ms-font); color: var(--ms-mut-2); }

/* -- Diapositiva 3: algoritmo de decisión ---------------------------------- */
.ms-algo { display: flex; flex-direction: column; gap: 7px; flex: 1 1 auto; justify-content: center; }
.ms-algo__node {
	display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 8px;
	background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.06);
	font: 500 10.5px/1.2 var(--ms-font); color: #CFC9D8;
	opacity: 0; transform: translateX(-8px);
}
.is-on .ms-algo__node { animation: msSlideIn .45s forwards; }
.is-on .ms-algo__node:nth-child(1) { animation-delay: .2s }
.is-on .ms-algo__node:nth-child(2) { animation-delay: .35s }
.is-on .ms-algo__node:nth-child(3) { animation-delay: .5s }
.is-on .ms-algo__node:nth-child(4) { animation-delay: .65s }
@keyframes msSlideIn { to { opacity: 1; transform: none } }
.ms-algo__node--hi { background: rgba(237,181,20,.09); border-color: rgba(237,181,20,.3); color: var(--ms-cream); }
.ms-algo__step { font: 700 8.5px/1 var(--ms-font); letter-spacing: 1.4px; color: var(--ms-gold); flex: 0 0 auto; }

/* -- Paginación del deck ---------------------------------------------------- */
.ms-deck__dots { display: flex; justify-content: center; gap: 7px; margin-top: 18px; }
.ms-deck__dot {
	width: 26px; height: 3px; border-radius: 2px; border: 0; padding: 0; cursor: pointer;
	background: rgba(255,255,255,.14); transition: background .3s;
}
.ms-deck__dot.is-on { background: var(--ms-gold); box-shadow: 0 0 9px rgba(237,181,20,.65); }
.ms-deck__cap { margin: 9px 0 0; text-align: center; font: 400 11.5px/1 var(--ms-font); color: var(--ms-mut-2); }

/* ================================================================= TARJETAS */

.ms-card {
	position: relative; padding: 26px 24px; border-radius: 14px; height: 100%;
	background: linear-gradient(180deg, rgba(255,255,255,.042), rgba(255,255,255,.014));
	border: 1px solid var(--ms-line-2);
	transition: border-color .25s, transform .25s;
}
.ms-card:hover { border-color: rgba(237,181,20,.30); transform: translateY(-2px); }
.ms-card__icon {
	width: 40px; height: 40px; margin-bottom: 14px; border-radius: 10px;
	display: grid; place-items: center;
	background: rgba(237,181,20,.10); border: 1px solid rgba(237,181,20,.22);
}
.ms-card__icon svg { width: 19px; height: 19px; fill: none; stroke: var(--ms-gold); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ms-card h4 { margin: 0 0 6px; font: 600 12.5px/1.3 var(--ms-font); letter-spacing: 1.1px; text-transform: uppercase; color: var(--ms-white); }
.ms-card p  { margin: 0; font: 400 14.5px/1.6 var(--ms-font); color: var(--ms-mut); }

.ms-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }

/* ============================================================ FLUJO / PASOS */

.ms-flow { display: flex; align-items: stretch; gap: 9px; flex-wrap: wrap; }
.ms-flow__step {
	flex: 1 1 165px; min-width: 155px; display: flex; flex-direction: column; gap: 4px;
	padding: 17px 16px; border-radius: 11px;
	background: rgba(255,255,255,.032); border: 1px solid var(--ms-line-2);
}
.ms-flow__step--last { background: rgba(237,181,20,.08); border-color: rgba(237,181,20,.32); }
.ms-flow__n { font: 700 9.5px/1 var(--ms-font); letter-spacing: 1.5px; color: var(--ms-gold); }
.ms-flow__t { font: 600 12.5px/1.3 var(--ms-font); letter-spacing: .3px; color: var(--ms-white); }
.ms-flow__d { font: 400 11.5px/1.45 var(--ms-font); color: var(--ms-mut-2); }
.ms-flow__arrow { display: flex; align-items: center; color: rgba(237,181,20,.5); }
.ms-flow__arrow svg { width: 20px; height: 10px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 900px) {
	.ms-flow { flex-direction: column; }
	.ms-flow__arrow { transform: rotate(90deg); margin: -3px auto; }
}

/* ================================================================= TIMELINE */

.ms-time { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 0 36px; }
.ms-time li { display: flex; gap: 16px; padding: 19px 0 21px; border-top: 1px solid var(--ms-line-2); }
.ms-time__n { flex: 0 0 auto; padding-top: 3px; font: 700 11.5px/1 var(--ms-font); letter-spacing: 1.3px; color: var(--ms-gold); }
.ms-time h4 { margin: 0 0 5px; font: 600 15.5px/1.3 var(--ms-font); color: var(--ms-white); }
.ms-time p  { margin: 0; font: 400 14.5px/1.55 var(--ms-font); color: var(--ms-mut); }

/* =============================================================== PRINCIPIOS */

.ms-princ { display: grid; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); gap: 12px; }
.ms-princ__i {
	display: flex; align-items: center; gap: 13px; padding: 17px 19px; border-radius: 11px;
	background: rgba(255,255,255,.03); border: 1px solid var(--ms-line-2);
}
.ms-princ__i svg { flex: 0 0 auto; width: 19px; height: 19px; fill: none; stroke: var(--ms-gold); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ms-princ__i span { font: 600 12.5px/1.35 var(--ms-font); letter-spacing: .6px; color: #E4DED0; }

.ms-seal {
	display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; border-radius: 999px;
	border: 1px solid rgba(237,181,20,.42); background: rgba(237,181,20,.075);
	font: 700 10.5px/1 var(--ms-font); letter-spacing: 1.8px; color: var(--ms-gold);
}
.ms-seal svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.8; }

/* ===================================================================== TAGS */

.ms-tags { display: flex; flex-wrap: wrap; gap: 10px; }
.ms-tags span {
	padding: 11px 20px; border-radius: 999px;
	background: rgba(255,255,255,.035); border: 1px solid var(--ms-line-2);
	font: 500 14px/1 var(--ms-font); color: #D6D0DE;
	transition: border-color .2s, color .2s, transform .2s;
}
.ms-tags span:hover { border-color: rgba(237,181,20,.45); color: var(--ms-cream); transform: translateY(-2px); }

/* ================================================================== PRECIOS */

.ms-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(268px, 1fr)); gap: 16px; align-items: stretch; }

.ms-plan {
	position: relative; display: flex; flex-direction: column;
	padding: 30px 26px 28px; border-radius: 16px;
	background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.012));
	border: 1px solid var(--ms-line-2);
	transition: border-color .25s, transform .25s;
}
.ms-plan:hover { border-color: rgba(237,181,20,.32); transform: translateY(-3px); }

.ms-plan--hi {
	background: linear-gradient(180deg, rgba(237,181,20,.13), rgba(237,181,20,.03) 55%, rgba(255,255,255,.012));
	border-color: rgba(237,181,20,.48);
	box-shadow: 0 0 0 1px rgba(237,181,20,.10), 0 24px 60px -26px rgba(237,181,20,.42);
}
.ms-plan--hi::before {
	content: ''; position: absolute; inset: -1px; border-radius: 16px; pointer-events: none;
	background: linear-gradient(135deg, rgba(237,181,20,.55), transparent 42%, transparent 62%, rgba(255,238,199,.35));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude; padding: 1px;
}

.ms-plan__badge {
	position: absolute; top: -11px; left: 26px;
	padding: 5px 13px; border-radius: 999px; background: var(--ms-gold); color: #17140A;
	font: 700 9.5px/1 var(--ms-font); letter-spacing: 1.4px;
	box-shadow: 0 6px 18px -6px rgba(237,181,20,.8);
}
.ms-plan__name { margin: 0 0 2px; font: 600 19px/1.25 var(--ms-font); color: var(--ms-white); }
.ms-plan__price { display: flex; align-items: flex-start; gap: 3px; margin: 8px 0 3px; }
.ms-plan__price s { font: 600 20px/1.4 var(--ms-font); color: var(--ms-gold); text-decoration: none; }
.ms-plan__price b { font: 700 46px/1 var(--ms-font); letter-spacing: -2.2px; color: var(--ms-white); }
.ms-plan__meta  { margin: 0 0 3px; font: 600 13px/1.4 var(--ms-font); color: var(--ms-cream); }
.ms-plan__ideal { margin: 0 0 16px; font: 400 13.5px/1.5 var(--ms-font); color: var(--ms-mut-2); }

.ms-feat { margin: 0 0 22px; padding: 17px 0 0; list-style: none; border-top: 1px solid var(--ms-line-2); display: flex; flex-direction: column; gap: 9px; }
.ms-feat li { position: relative; padding-left: 23px; font: 400 13.8px/1.45 var(--ms-font); color: var(--ms-mut); }
.ms-feat li::before {
	content: ''; position: absolute; left: 2px; top: 4px; width: 9px; height: 5px;
	border-left: 1.9px solid var(--ms-gold); border-bottom: 1.9px solid var(--ms-gold);
	transform: rotate(-45deg);
}

.ms-btn {
	display: block; margin-top: auto; padding: 15px 20px; border-radius: 10px; text-align: center;
	font: 600 13px/1 var(--ms-font); letter-spacing: .9px; text-decoration: none;
	background: rgba(255,255,255,.06); color: var(--ms-white);
	border: 1px solid rgba(255,255,255,.14); transition: all .2s;
}
.ms-btn:hover { background: rgba(237,181,20,.14); border-color: rgba(237,181,20,.5); color: var(--ms-cream); }
.ms-btn--gold {
	background: linear-gradient(180deg, #F5C63A, var(--ms-gold)); color: #17140A; border-color: transparent;
	box-shadow: 0 10px 30px -12px rgba(237,181,20,.75);
}
.ms-btn--gold:hover { background: linear-gradient(180deg, #FFD75C, #F0BC1E); color: #17140A; transform: translateY(-1px); }

/* Pack horizontal */
.ms-pack {
	display: flex; flex-wrap: wrap; align-items: center; gap: 26px;
	padding: 28px 30px; border-radius: 16px; margin-top: 16px;
	background: linear-gradient(120deg, rgba(237,181,20,.10), rgba(255,255,255,.02));
	border: 1px solid rgba(237,181,20,.26);
}
.ms-pack__l { flex: 1 1 340px; }
.ms-pack__r { flex: 0 0 auto; display: flex; flex-direction: column; gap: 10px; min-width: 230px; }
.ms-pack__kicker { font: 700 9.5px/1 var(--ms-font); letter-spacing: 1.9px; color: var(--ms-gold); }
.ms-pack h3 { margin: 6px 0 8px; font: 600 25px/1.2 var(--ms-font); color: var(--ms-white); }
.ms-pack p  { margin: 0; font: 400 14.5px/1.6 var(--ms-font); color: var(--ms-mut); }

/* Bloque de WhatsApp */
.ms-wa {
	display: flex; flex-wrap: wrap; align-items: center; gap: 24px;
	padding: 24px 28px; border-radius: 16px; margin-top: 14px;
	background: rgba(255,255,255,.028); border: 1px solid var(--ms-line-2);
}
.ms-wa__l { flex: 1 1 320px; }
.ms-wa h3 { margin: 0 0 6px; font: 600 19px/1.3 var(--ms-font); color: var(--ms-white); }
.ms-wa p  { margin: 0; font: 400 14px/1.55 var(--ms-font); color: var(--ms-mut); }
.ms-wa__r { flex: 0 0 auto; min-width: 250px; }
.ms-btn--wa {
	display: flex; align-items: center; justify-content: center; gap: 10px;
	background: #25D366; color: #06240F; border-color: transparent;
	box-shadow: 0 10px 28px -12px rgba(37,211,102,.7);
}
.ms-btn--wa:hover { background: #2BE874; color: #06240F; transform: translateY(-1px); }
.ms-btn--wa svg { width: 17px; height: 17px; fill: currentColor; }
.ms-wa__note { margin: 8px 0 0; text-align: center; font: 400 12.5px/1 var(--ms-font); color: var(--ms-mut-2); }

/* ================================================================== EXTRAS */

.ms-xlist { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 0 38px; }
.ms-xlist > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--ms-line-2); }
.ms-xlist span { font: 400 14.5px/1.4 var(--ms-font); color: #C6C0D0; }
.ms-xlist b { font: 600 14.5px/1 var(--ms-font); color: var(--ms-gold); white-space: nowrap; }

/* =================================================================== KSCI */

.ms-ksci { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.ms-ksci span { font: 700 15px/1 var(--ms-font); letter-spacing: 2.6px; color: var(--ms-white); }
.ms-ksci span:last-of-type { color: var(--ms-gold); text-shadow: 0 0 22px rgba(237,181,20,.55); }
.ms-ksci i { font-style: normal; color: rgba(237,181,20,.55); }
@media (max-width: 600px) { .ms-ksci span { font-size: 12.5px; letter-spacing: 1.5px } }

/* ================================================= materiales que aporta */

.ms-give { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: 12px; }
.ms-give__i {
	display: flex; gap: 13px; padding: 17px 18px; border-radius: 11px;
	background: rgba(255,255,255,.028); border: 1px solid var(--ms-line-2);
	transition: border-color .2s;
}
.ms-give__i:hover { border-color: rgba(237,181,20,.3); }
.ms-give__i svg { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; fill: none; stroke: var(--ms-gold); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ms-give__i h4 { margin: 0 0 3px; font: 600 14px/1.3 var(--ms-font); color: var(--ms-white); }
.ms-give__i p  { margin: 0; font: 400 12.8px/1.5 var(--ms-font); color: var(--ms-mut-2); }

/* ====================================== ajustes a los widgets de Elementor */

.ms-scope .elementor-accordion .elementor-tab-title { border-color: var(--ms-line-2) !important; }
.ms-scope .elementor-accordion .elementor-tab-content { border-color: var(--ms-line-2) !important; }

/* ================================================================ FORMULARIO */

.ms-form { max-width: 780px; }
.ms-form__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 20px; }
.ms-field--100 { grid-column: 1 / -1; }
@media (max-width: 700px) { .ms-form__grid { grid-template-columns: 1fr } .ms-field--50 { grid-column: 1 / -1 } }

.ms-field { display: flex; flex-direction: column; gap: 7px; }
.ms-field label { font: 600 13px/1.3 var(--ms-font); color: var(--ms-cream); letter-spacing: .2px; }
.ms-opt { margin-left: 7px; font-weight: 400; font-size: 11.5px; color: var(--ms-mut-2); letter-spacing: 0; }

.ms-field input, .ms-field select, .ms-field textarea {
	width: 100%; padding: 13px 15px; border-radius: 10px;
	background: rgba(255,255,255,.045);
	border: 1px solid rgba(255,255,255,.11);
	color: var(--ms-white);
	font: 400 15px/1.45 var(--ms-font);
	transition: border-color .18s, background .18s, box-shadow .18s;
	appearance: none; -webkit-appearance: none;
}
.ms-field textarea { resize: vertical; min-height: 104px; }
.ms-field input::placeholder, .ms-field textarea::placeholder { color: #5F5A6B; }
.ms-field input:focus, .ms-field select:focus, .ms-field textarea:focus {
	outline: none; border-color: var(--ms-gold);
	background: rgba(237,181,20,.055);
	box-shadow: 0 0 0 3px rgba(237,181,20,.16);
}
.ms-field input:user-invalid, .ms-field textarea:user-invalid { border-color: #D9534F; }
.ms-field select {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23EDB514' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 15px center; background-size: 11px;
	padding-right: 38px; cursor: pointer;
}
.ms-field select option { background: #14111A; color: #fff; }
.ms-field input[type=date] { color-scheme: dark; }
.ms-help { font: 400 12.2px/1.45 var(--ms-font); color: var(--ms-mut-2); }

.ms-consent { display: flex; gap: 11px; align-items: flex-start; margin: 22px 0 4px; cursor: pointer; }
.ms-consent input { width: 18px; height: 18px; margin-top: 2px; flex: 0 0 auto; accent-color: var(--ms-gold); }
.ms-consent span { font: 400 13.5px/1.55 var(--ms-font); color: var(--ms-mut); }

.ms-form__submit { display: block; width: 100%; margin-top: 20px; border: 0; cursor: pointer; font-size: 14px; }
.ms-form__note { margin: 12px 0 0; text-align: center; font: 400 12.8px/1.5 var(--ms-font); color: var(--ms-mut-2); }

.ms-form__error {
	margin-bottom: 20px; padding: 14px 17px; border-radius: 10px;
	background: rgba(217,83,79,.10); border: 1px solid rgba(217,83,79,.36);
	font: 500 14px/1.5 var(--ms-font); color: #F2B4B2;
}

/* Trampa para bots: fuera de pantalla, nunca visible ni enfocable. */
.ms-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Aviso lateral (privacidad clínica, tiempos) */
.ms-note {
	display: flex; gap: 13px; padding: 18px 20px; border-radius: 12px;
	background: rgba(237,181,20,.055); border: 1px solid rgba(237,181,20,.22);
}
.ms-note svg { flex: 0 0 auto; width: 19px; height: 19px; margin-top: 1px; fill: none; stroke: var(--ms-gold); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ms-note h4 { margin: 0 0 5px; font: 600 13.5px/1.3 var(--ms-font); color: var(--ms-cream); }
.ms-note p  { margin: 0; font: 400 13.2px/1.55 var(--ms-font); color: var(--ms-mut); }

/* Pasos del proceso, columna lateral del brief */
.ms-steps { display: flex; flex-direction: column; gap: 2px; }
.ms-steps__i { display: flex; gap: 14px; padding: 14px 0; border-top: 1px solid var(--ms-line-2); }
.ms-steps__i:first-child { border-top: 0; }
.ms-steps__n {
	flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
	background: rgba(237,181,20,.12); border: 1px solid rgba(237,181,20,.3);
	font: 700 10.5px/1 var(--ms-font); color: var(--ms-gold);
}
.ms-steps__i.is-now .ms-steps__n { background: var(--ms-gold); color: #17140A; border-color: var(--ms-gold); }
.ms-steps__t { font: 600 13.5px/1.35 var(--ms-font); color: var(--ms-white); }
.ms-steps__d { font: 400 12.5px/1.5 var(--ms-font); color: var(--ms-mut-2); }

/* ============================================================= COMPROBANTE */

.ms-receipt { display: flex; flex-direction: column; gap: 18px; }

.ms-receipt__head {
	display: flex; flex-wrap: wrap; gap: 26px;
	padding: 18px 22px; border-radius: 12px;
	background: rgba(255,255,255,.035); border: 1px solid var(--ms-line-2);
}
.ms-receipt__head > div { display: flex; flex-direction: column; gap: 3px; }
.ms-receipt__k { font: 700 9px/1 var(--ms-font); letter-spacing: 1.6px; color: var(--ms-mut-2); }
.ms-receipt__head strong { font: 600 15px/1.2 var(--ms-font); color: var(--ms-white); }

.ms-receipt__items {
	padding: 20px 22px; border-radius: 12px;
	background: rgba(255,255,255,.028); border: 1px solid var(--ms-line-2);
}
.ms-receipt__item { display: flex; justify-content: space-between; gap: 14px; padding-bottom: 8px; }
.ms-receipt__item span { font: 600 15px/1.4 var(--ms-font); color: var(--ms-white); }
.ms-receipt__item b { font: 600 15px/1.4 var(--ms-font); color: var(--ms-white); white-space: nowrap; }
.ms-receipt__meta { display: flex; justify-content: space-between; gap: 14px; padding: 3px 0 3px 14px; }
.ms-receipt__meta span { font: 400 12.8px/1.45 var(--ms-font); color: var(--ms-mut-2); }
.ms-receipt__row {
	display: flex; justify-content: space-between; gap: 14px;
	padding: 9px 0 0; margin-top: 9px; border-top: 1px solid var(--ms-line-2);
	font: 400 13.8px/1.4 var(--ms-font); color: var(--ms-mut);
}
.ms-receipt__row:last-child { color: var(--ms-white); font-weight: 600; }
.ms-receipt__items .amount, .ms-receipt__items bdi { color: inherit; }

.ms-receipt__due {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px;
	padding: 22px 24px; border-radius: 14px;
	background: linear-gradient(120deg, rgba(237,181,20,.15), rgba(255,255,255,.02));
	border: 1px solid rgba(237,181,20,.4);
}
.ms-receipt__due span { font: 600 13px/1 var(--ms-font); letter-spacing: 1.2px; text-transform: uppercase; color: var(--ms-cream); }
.ms-receipt__due strong { font: 700 34px/1 var(--ms-font); letter-spacing: -1.4px; color: var(--ms-white); }
.ms-receipt__due bdi { color: inherit; }

.ms-receipt__bank {
	padding: 22px 24px; border-radius: 12px;
	background: rgba(255,255,255,.028); border: 1px solid var(--ms-line-2);
}
.ms-receipt__h { margin: 0 0 6px; font: 600 17px/1.3 var(--ms-font); color: var(--ms-white); }
.ms-receipt__p { margin: 0 0 16px; font: 400 14px/1.55 var(--ms-font); color: var(--ms-mut); }
.ms-receipt__bank dl { margin: 12px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px 26px; }
.ms-receipt__bank dl > div { display: flex; flex-direction: column; gap: 2px; }
.ms-receipt__bank dt { font: 500 11.5px/1 var(--ms-font); color: var(--ms-mut-2); }
.ms-receipt__bank dd { margin: 0; font: 600 15.5px/1.3 var(--ms-font); color: var(--ms-cream); user-select: all; }
.ms-receipt__ref { margin: 16px 0 0; font: 400 13px/1.5 var(--ms-font); color: var(--ms-mut); }
.ms-receipt__ref strong { color: var(--ms-gold); }

.ms-receipt__form {
	padding: 22px 24px; border-radius: 12px;
	background: rgba(255,255,255,.028); border: 1px solid var(--ms-line-2);
}
/* El formulario lo pinta el plugin del motor: se adapta, no se reescribe. */
.ms-receipt__form input[type=file] {
	width: 100%; padding: 14px; border-radius: 10px; color: var(--ms-mut);
	background: rgba(255,255,255,.04); border: 1px dashed rgba(237,181,20,.35);
	font: 400 14px var(--ms-font); cursor: pointer;
}
.ms-receipt__form .button, .ms-receipt__form button {
	margin-top: 12px; padding: 14px 28px; border: 0; border-radius: 10px; cursor: pointer;
	background: linear-gradient(180deg, #F5C63A, var(--ms-gold)); color: #17140A;
	font: 600 13.5px/1 var(--ms-font); letter-spacing: .6px;
}
.ms-receipt__form table { width: 100%; border-collapse: collapse; color: var(--ms-mut); font: 400 14px var(--ms-font); }
.ms-receipt__form td, .ms-receipt__form th { padding: 8px 0; border-bottom: 1px solid var(--ms-line-2); }
.ms-receipt__form img.receipt-preview { max-width: 160px; border-radius: 8px; border: 1px solid var(--ms-line-2); }

.ms-receipt__msg {
	padding: 18px 22px; border-radius: 12px;
	font: 400 14.5px/1.6 var(--ms-font);
}
.ms-receipt__msg--error { background: rgba(217,83,79,.10); border: 1px solid rgba(217,83,79,.36); color: #F2B4B2; }
.ms-receipt__msg--info  { background: rgba(255,255,255,.035); border: 1px solid var(--ms-line-2); color: var(--ms-mut); }
.ms-receipt__msg a { color: var(--ms-gold); }

/* Sello de confirmación */
.ms-done { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%;
	background: rgba(237,181,20,.10); border: 1px solid rgba(237,181,20,.4); margin-bottom: 6px; }
.ms-done svg { width: 28px; height: 28px; fill: none; stroke: var(--ms-gold); stroke-width: 2;
	stroke-linecap: round; stroke-linejoin: round;
	stroke-dasharray: 40; stroke-dashoffset: 40; animation: msCheck .6s .2s ease-out forwards; }
@keyframes msCheck { to { stroke-dashoffset: 0 } }

/* ====================================== EMBUDO OSCURO: FICHA Y CHECKOUT */
/* La landing es negra y dorada; sin esto el cliente saltaba a una ficha de
   producto blanca justo al decidir la compra. Alcance: producto, carrito y
   checkout. Las demás páginas del sitio no se tocan. */

/* Se usa .woocommerce-page además de las clases concretas porque esta hoja solo
   se encola en el embudo de MASTER SLIDES: no hay riesgo de teñir otras
   páginas, y así da igual qué clase exacta ponga WooCommerce en cada paso. */
html:has(body.single-product),
html:has(body.woocommerce-page) { background: #08070A; }

body.single-product,
body.woocommerce-page,
body.woocommerce-cart,
body.woocommerce-checkout {
	background: #08070A !important;
	color: #C6C0D0;
}
body.single-product .site-main,
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main { background: transparent; }

/* Los títulos suelen ser widgets de Elementor, cuyo color viene del CSS por
   página con selectores de tres clases. Sin !important no hay forma de ganar. */
body.single-product h1, body.single-product h2, body.single-product h3,
body.woocommerce-page h1, body.woocommerce-page h2, body.woocommerce-page h3,
body.woocommerce-page h4,
body.woocommerce-page .elementor-heading-title,
body.single-product .elementor-heading-title {
	color: #FFFFFF !important;
}
body.single-product p, body.woocommerce-page p,
body.single-product li, body.woocommerce-page li,
body.single-product td, body.woocommerce-page td,
body.single-product th, body.woocommerce-page th,
body.single-product label, body.woocommerce-page label,
body.woocommerce-page dt, body.woocommerce-page dd {
	color: #C6C0D0;
}

/* Migas de pan y enlaces */
.woocommerce .woocommerce-breadcrumb,
.woocommerce .woocommerce-breadcrumb a { color: #8A8398; }
.woocommerce .woocommerce-breadcrumb a:hover { color: #EDB514; }

/* Precio */
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce div.product .woocommerce-variation-price .price {
	color: #EDB514; font-weight: 600;
}
.woocommerce div.product p.price del { color: #6E6878; }

/* Selector de variación */
.woocommerce div.product form.cart .variations { border: 0; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { border: 0; padding: 6px 0; }
.woocommerce div.product form.cart .variations label { color: #FFEEC7; font-weight: 600; }
.woocommerce div.product form.cart .variations select {
	background-color: rgba(255,255,255,.05);
	border: 1px solid rgba(255,255,255,.14);
	border-radius: 10px; color: #FFFFFF; padding: 13px 15px;
}
.woocommerce div.product form.cart .variations select:focus {
	border-color: #EDB514; box-shadow: 0 0 0 3px rgba(237,181,20,.18); outline: none;
}
.woocommerce div.product form.cart .variations select option { background: #14111A; color: #fff; }
.woocommerce div.product form.cart .reset_variations { color: #8A8398; }
.woocommerce div.product .woocommerce-variation-description p { color: #9A93A6; }

/* Pestañas de descripción */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: rgba(255,255,255,.10); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.10);
	border-radius: 10px 10px 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: #9A93A6; font-weight: 500; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: rgba(237,181,20,.10); border-color: rgba(237,181,20,.32);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #FFEEC7; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs .panel { color: #C6C0D0; }

/* Meta y productos relacionados */
.woocommerce div.product .product_meta { color: #8A8398; border-top: 1px solid rgba(255,255,255,.08); padding-top: 16px; }
.woocommerce div.product .product_meta a { color: #B98A0C; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { color: #FFFFFF; }
.woocommerce ul.products li.product .price { color: #EDB514; }

/* Tablas del carrito y checkout */
.woocommerce table.shop_table,
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-color: rgba(255,255,255,.10); }
.woocommerce table.shop_table thead th { color: #FFEEC7; }
.woocommerce-cart .cart_totals, .woocommerce-checkout #order_review {
	background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08);
	border-radius: 14px; padding: 20px;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout .select2-container .select2-selection {
	background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14);
	color: #FFFFFF; border-radius: 10px; padding: 12px 14px;
}
.woocommerce-checkout #payment { background: rgba(255,255,255,.03); border-radius: 14px; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: rgba(255,255,255,.10); }
.woocommerce-checkout #payment div.payment_box { background: rgba(237,181,20,.08); color: #C6C0D0; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: rgba(237,181,20,.08); }

/* Avisos sobre fondo oscuro */
.woocommerce-info, .woocommerce-message, .woocommerce-error {
	background: rgba(255,255,255,.045); color: #D6D0DE;
}

/* ---------------- Ambiente: luz dorada tenue de acompañamiento ------------ */
/* Mismo lenguaje que la landing, pero mucho más contenido: son capas fijas
   detrás del contenido, para que el negro no quede plano sin robar atención. */

body.single-product::before,
body.woocommerce-page::before {
	content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none;
	background:
		radial-gradient(680px 520px at 12% 4%,  rgba(237,181,20,.10), transparent 62%),
		radial-gradient(760px 600px at 92% 22%, rgba(237,181,20,.065), transparent 66%),
		radial-gradient(900px 700px at 48% 108%, rgba(237,181,20,.075), transparent 64%);
}
/* Retícula técnica apenas perceptible, desvanecida hacia los bordes. */
body.single-product::after,
body.woocommerce-page::after {
	content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none;
	background-image:
		linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: radial-gradient(ellipse 85% 65% at 50% 32%, #000 10%, transparent 76%);
	-webkit-mask-image: radial-gradient(ellipse 85% 65% at 50% 32%, #000 10%, transparent 76%);
}
/* El contenido por encima de las capas de luz. */
body.single-product > *,
body.woocommerce-page > * { position: relative; z-index: 1; }

@media (prefers-reduced-motion: reduce) {
	body.single-product::before, body.woocommerce-page::before { animation: none; }
}

/* ---------------- Elementor: neutralizar los fondos claros del embudo ------ */
/* Carrito y checkout son páginas construidas con Elementor y sus contenedores
   traen fondo blanco propio. Sin esto, el fondo oscuro del body queda tapado. */

/* El carrito y el checkout están montados con secciones y columnas antiguas de
   Elementor, y el gris #F0F5FA del kit se aplica tanto a las secciones como a
   la columna interior. Hay que neutralizar los cinco tipos de contenedor: si
   se olvida .elementor-column, la tarjeta interior sigue clara. */
body.single-product .elementor-section,
body.single-product .elementor-column,
body.single-product .elementor-widget-wrap,
body.single-product .e-con,
body.single-product .e-con-inner,
body.woocommerce-page .elementor-section,
body.woocommerce-page .elementor-column,
body.woocommerce-page .elementor-widget-wrap,
body.woocommerce-page .elementor-widget-container,
body.woocommerce-page .elementor-container,
body.woocommerce-page .e-con,
body.woocommerce-page .e-con-inner {
	background-color: transparent !important;
	background-image: none !important;
}

/* ---------------- Títulos y precios que pintan widgets de Elementor -------- */
/* El kit define su propio color y gana por especificidad. */

body.single-product .product_title,
body.single-product .elementor-widget-woocommerce-product-title .product_title,
body.woocommerce-page .entry-title,
body.woocommerce-page h1,
.woocommerce .related > h2,
.woocommerce .up-sells > h2,
.woocommerce .cross-sells > h2,
.woocommerce-cart .cart_totals > h2,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3 {
	color: #FFFFFF !important;
}

body.single-product .elementor-widget-woocommerce-product-price .price,
body.single-product .elementor-widget-woocommerce-product-price .price .amount,
body.single-product .elementor-widget-woocommerce-product-price bdi,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .price .amount,
.woocommerce ul.products li.product .price bdi {
	color: #EDB514 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 { color: #FFFFFF !important; }
.woocommerce ul.products li.product { background: transparent; }

/* ---------------- Carrito ------------------------------------------------- */

.woocommerce-cart table.shop_table {
	background: rgba(255,255,255,.03);
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 14px; border-collapse: separate; border-spacing: 0; overflow: hidden;
}
.woocommerce-cart table.shop_table th { background: rgba(255,255,255,.03); color: #FFEEC7; }
.woocommerce-cart table.shop_table td { background: transparent; }
.woocommerce-cart table.shop_table td.product-name a { color: #FFFFFF; font-weight: 600; }
.woocommerce-cart table.shop_table td.product-name a:hover { color: #EDB514; }
.woocommerce-cart table.shop_table .variation, .woocommerce-cart table.shop_table dl { color: #9A93A6; }
.woocommerce-cart table.shop_table .amount, .woocommerce-cart table.shop_table bdi { color: #D6D0DE; }
.woocommerce-cart a.remove { color: #C0392B !important; }
.woocommerce-cart a.remove:hover { background: #C0392B; color: #fff !important; }
.woocommerce-cart .cart_totals table.shop_table { background: transparent; border: 0; }
.woocommerce-cart .cart_totals .order-total .amount,
.woocommerce-cart .cart_totals .order-total bdi { color: #EDB514; font-size: 1.25em; }

/* ---------------- Checkout ----------------------------------------------- */

.woocommerce-checkout .woocommerce-checkout-review-order-table {
	background: transparent; border: 0;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table th { color: #FFEEC7; }
.woocommerce-checkout .woocommerce-checkout-review-order-table td,
.woocommerce-checkout .woocommerce-checkout-review-order-table .amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table bdi { color: #D6D0DE; }
.woocommerce-checkout .order-total .amount,
.woocommerce-checkout .order-total bdi { color: #EDB514; font-size: 1.2em; font-weight: 700; }
.woocommerce-checkout .product-name { color: #FFFFFF; }
.woocommerce-checkout .woocommerce-Price-currencySymbol { color: inherit; }

.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields {
	background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08);
	border-radius: 14px; padding: 24px;
}
.woocommerce-checkout .form-row label { color: #C6C0D0; font-weight: 500; }
.woocommerce-checkout .form-row .required { color: #EDB514; border: 0; }
.woocommerce form .form-row input.input-text::placeholder,
.woocommerce form .form-row textarea::placeholder { color: #5F5A6B; }
.woocommerce form .form-row select option { background: #14111A; color: #fff; }

/* Métodos de pago */
.woocommerce-checkout #payment {
	background: rgba(255,255,255,.03);
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 14px; padding: 6px 4px;
}
.woocommerce-checkout #payment ul.payment_methods {
	border-bottom: 1px solid rgba(255,255,255,.08); padding: 14px 18px;
}
.woocommerce-checkout #payment ul.payment_methods li {
	background: transparent; border-radius: 10px; padding: 10px 12px; margin: 0 0 4px;
	transition: background .18s;
}
.woocommerce-checkout #payment ul.payment_methods li:hover { background: rgba(255,255,255,.04); }
.woocommerce-checkout #payment ul.payment_methods li label { color: #D6D0DE; font-weight: 500; }
.woocommerce-checkout #payment ul.payment_methods li input[type=radio] { accent-color: #EDB514; }
.woocommerce-checkout #payment ul.payment_methods li img { background: #fff; border-radius: 6px; padding: 3px 6px; }
.woocommerce-checkout #payment div.form-row { padding: 16px 18px; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text p,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper { color: #8A8398; }
.woocommerce-checkout #payment a { color: #EDB514; }
.woocommerce-checkout #payment #place_order { width: 100%; padding: 18px; font-size: 15px; }

/* Select2 (país/estado) en oscuro */
.woocommerce-checkout .select2-container--default .select2-selection--single {
	background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14);
	border-radius: 10px; height: auto; padding: 8px 6px;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered { color: #fff; }
.select2-dropdown { background: #14111A; border-color: rgba(255,255,255,.14); }
.select2-container--default .select2-results__option { color: #C6C0D0; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: rgba(237,181,20,.22); color: #fff; }
.select2-search--dropdown .select2-search__field { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); color: #fff; }

/* Insignias de pasarela sobre fondo claro propio */
.woocommerce-checkout img[src*="stripe"],
.woocommerce-checkout img[src*="payphone"] { background: #fff; border-radius: 8px; padding: 6px 10px; }

/* ====================================== GALERÍA DEL PRODUCTO */

.woocommerce div.product div.images.woocommerce-product-gallery { margin-bottom: 34px; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: 16px; overflow: hidden; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
	border-radius: 16px;
	border: 1px solid rgba(237,181,20,.16);
	box-shadow: 0 26px 60px -26px rgba(0,0,0,.9);
}

/* Lupa de zoom */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	background: rgba(8,7,10,.72); border: 1px solid rgba(237,181,20,.32);
	border-radius: 50%; top: 18px; right: 18px;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger:hover { background: rgba(237,181,20,.22); }

/* Miniaturas: más aire y la activa con luz dorada */
.woocommerce div.product div.images .flex-control-thumbs {
	display: flex; flex-wrap: wrap; gap: 14px;
	margin: 18px 0 0; padding: 0;
}
.woocommerce div.product div.images .flex-control-thumbs li {
	width: auto; flex: 0 0 calc(33.333% - 10px);
	margin: 0; padding: 0; list-style: none;
}
.woocommerce div.product div.images .flex-control-thumbs img {
	width: 100%; height: auto; display: block; opacity: .5;
	border-radius: 11px;
	border: 1px solid rgba(255,255,255,.10);
	transition: opacity .25s, border-color .25s, box-shadow .25s, transform .25s;
}
.woocommerce div.product div.images .flex-control-thumbs img:hover {
	opacity: .85; border-color: rgba(237,181,20,.4); transform: translateY(-2px);
}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active {
	opacity: 1;
	border-color: rgba(237,181,20,.75);
	box-shadow: 0 0 0 1px rgba(237,181,20,.45),
	            0 0 22px -2px rgba(237,181,20,.55),
	            0 10px 26px -12px rgba(237,181,20,.5);
}

@media (max-width: 600px) {
	.woocommerce div.product div.images .flex-control-thumbs { gap: 10px; }
	.woocommerce div.product div.images .flex-control-thumbs li { flex: 0 0 calc(33.333% - 7px); }
}

/* ================================================ WOOCOMMERCE — MARCA */
/* WooCommerce trae #a46497 (morado) como color por defecto de sus botones y
   avisos. En el embudo de MASTER SLIDES se sustituye por el negro y dorado de
   Macrofertas para que carrito y checkout no rompan la estética. */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
	background: linear-gradient(180deg, #F5C63A, #EDB514);
	color: #17140A;
	border: 0;
	border-radius: 10px;
	padding: 14px 28px;
	font-weight: 600;
	letter-spacing: .5px;
	text-shadow: none;
	transition: background .2s, transform .15s;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover {
	background: linear-gradient(180deg, #FFD75C, #F0BC1E);
	color: #17140A;
	transform: translateY(-1px);
}
.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce input.button:disabled {
	background: #EFEBE1; color: #A79E88; transform: none; cursor: not-allowed;
}

/* Avisos: la banda superior también es morada por defecto. */
.woocommerce-info,
.woocommerce-message { border-top-color: #EDB514; }
.woocommerce-info::before,
.woocommerce-message::before { color: #EDB514; }
.woocommerce-error { border-top-color: #C0392B; }
.woocommerce-error::before { color: #C0392B; }

/* Enlaces y estados dentro del embudo. */
.woocommerce-info a, .woocommerce-message a,
.woocommerce .woocommerce-breadcrumb a { color: #B98A0C; }
.woocommerce-info a:hover, .woocommerce-message a:hover { color: #EDB514; }

/* Pasos del checkout y elementos activos. */
.woocommerce .woocommerce-form-login .button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	background: linear-gradient(180deg, #F5C63A, #EDB514);
	color: #17140A; font-weight: 600;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: linear-gradient(180deg, #FFD75C, #F0BC1E); color: #17140A;
}

/* La barra de cantidad y los campos, con foco dorado en vez de morado. */
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: #EDB514;
	box-shadow: 0 0 0 3px rgba(237,181,20,.18);
	outline: none;
}

/* ============================ CARRITO Y CHECKOUT — ACABADO MODERNO ========= */
/* El carrito y el checkout los renderizan los widgets de Elementor, que montan
   tarjetas blancas propias (.e-cart-section, .e-checkout__*). Se rediseñan como
   paneles de cristal oscuro con un filo dorado superior. */

.e-cart-section,
.e-checkout__container > .e-checkout__column > div,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout #order_review,
.woocommerce-cart .cart_totals {
	position: relative;
	background: linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.018)) !important;
	border: 1px solid rgba(255,255,255,.09) !important;
	border-radius: 18px !important;
	padding: 26px !important;
	box-shadow: 0 24px 60px -30px rgba(0,0,0,.9);
	overflow: hidden;
}
/* Filo dorado superior: da jerarquía sin recargar. */
.e-cart-section::before,
.woocommerce-cart .cart_totals::before,
.woocommerce-checkout .woocommerce-billing-fields::before,
.woocommerce-checkout #order_review::before {
	content: ''; position: absolute; inset: 0 0 auto; height: 1px;
	background: linear-gradient(90deg, transparent, rgba(237,181,20,.55), transparent);
}

.e-cart__container { gap: 26px; }
.e-cart-section + .e-cart-section { margin-top: 22px; }

/* ---------------- Tabla del carrito --------------------------------------- */

.woocommerce-cart table.shop_table.cart {
	background: transparent !important; border: 0 !important;
	box-shadow: none; padding: 0 !important; border-collapse: collapse;
}
.woocommerce-cart table.shop_table.cart thead th {
	background: transparent; border: 0;
	border-bottom: 1px solid rgba(255,255,255,.10);
	padding: 0 12px 14px;
	font: 600 11px/1 var(--ms-font, Rubik, sans-serif);
	letter-spacing: 1.4px; text-transform: uppercase; color: #8A8398;
}
.woocommerce-cart table.shop_table.cart tbody td {
	border: 0; border-bottom: 1px solid rgba(255,255,255,.07);
	padding: 20px 12px; vertical-align: middle; background: transparent;
}
.woocommerce-cart table.shop_table.cart tbody tr:last-child td { border-bottom: 0; }

/* Miniatura del producto: pieza clave para reconocer lo que se compra. */
.woocommerce-cart td.product-thumbnail { width: 88px; padding-right: 0; }
.woocommerce-cart td.product-thumbnail img,
.woocommerce-cart td.product-thumbnail a img {
	width: 72px !important; height: 72px; max-width: none;
	object-fit: cover; display: block;
	border-radius: 12px;
	border: 1px solid rgba(237,181,20,.28);
	box-shadow: 0 8px 22px -10px rgba(0,0,0,.9);
	transition: transform .2s, border-color .2s;
}
.woocommerce-cart td.product-thumbnail img:hover {
	transform: scale(1.04); border-color: rgba(237,181,20,.6);
}

.woocommerce-cart td.product-name a { font-size: 15.5px; }
.woocommerce-cart td.product-name .variation,
.woocommerce-cart td.product-name dl.variation {
	margin: 6px 0 0; font-size: 12.6px; line-height: 1.5; color: #8A8398;
}
.woocommerce-cart td.product-name dl.variation dt { font-weight: 600; color: #9A93A6; }
.woocommerce-cart td.product-name dl.variation dd { margin: 0 0 3px; }
.woocommerce-cart td.product-price,
.woocommerce-cart td.product-subtotal { font-weight: 600; color: #FFFFFF !important; }
.woocommerce-cart td.product-subtotal .amount,
.woocommerce-cart td.product-subtotal bdi { color: #FFFFFF !important; }

.woocommerce-cart .quantity input.qty {
	background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
	color: #fff; border-radius: 9px; padding: 10px 8px; width: 68px; text-align: center;
}

/* Cupón */
.woocommerce-cart .coupon { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.woocommerce-cart .coupon label { display: none; }
.woocommerce-cart .coupon input#coupon_code {
	flex: 1 1 200px; background: rgba(255,255,255,.05);
	border: 1px solid rgba(255,255,255,.14); color: #fff;
	border-radius: 10px; padding: 14px 16px;
}
.woocommerce-cart .coupon input#coupon_code::placeholder { color: #6E6878; }

/* ---------------- Totales -------------------------------------------------- */

.woocommerce-cart .cart_totals h2,
.woocommerce-checkout #order_review_heading {
	margin: 0 0 18px; font-size: 17px; letter-spacing: .3px;
}
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
	border: 0; border-bottom: 1px solid rgba(255,255,255,.07);
	padding: 13px 0; background: transparent;
}
.woocommerce-cart .cart_totals table tr:last-child th,
.woocommerce-cart .cart_totals table tr:last-child td { border-bottom: 0; padding-top: 18px; }
.woocommerce-cart .cart_totals .order-total th { color: #FFFFFF; font-size: 15px; }

/* ---------------- Checkout: legibilidad de los datos ---------------------- */

.woocommerce-checkout .form-row { margin: 0 0 18px; }
.woocommerce-checkout .form-row label {
	display: block; margin-bottom: 7px;
	font: 600 12.5px/1.3 var(--ms-font, Rubik, sans-serif);
	letter-spacing: .3px; color: #FFEEC7 !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
	background: rgba(255,255,255,.055) !important;
	border: 1px solid rgba(255,255,255,.15) !important;
	color: #FFFFFF !important;
	border-radius: 11px !important;
	padding: 14px 16px !important;
	font-size: 15px; line-height: 1.4; width: 100%;
	transition: border-color .18s, background .18s, box-shadow .18s;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	background: rgba(237,181,20,.07) !important;
	border-color: #EDB514 !important;
	box-shadow: 0 0 0 3px rgba(237,181,20,.16) !important;
}
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: #C0392B !important; }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: rgba(95,217,166,.5) !important; }

/* Resumen del pedido con miniatura */
.ms-corev { display: flex; align-items: flex-start; gap: 13px; }
.ms-corev img {
	width: 56px !important; height: 56px; flex: 0 0 auto; object-fit: cover;
	border-radius: 10px; border: 1px solid rgba(237,181,20,.28);
	box-shadow: 0 6px 18px -8px rgba(0,0,0,.9);
}
.ms-corev__n { flex: 1 1 auto; font-weight: 600; color: #FFFFFF; line-height: 1.35; }
.woocommerce-checkout .woocommerce-checkout-review-order-table td,
.woocommerce-checkout .woocommerce-checkout-review-order-table th {
	border: 0; border-bottom: 1px solid rgba(255,255,255,.07); padding: 16px 0;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr:last-child td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr:last-child th { border-bottom: 0; }
.woocommerce-checkout .product-quantity { color: #8A8398; font-weight: 400; }
.woocommerce-checkout .variation { margin: 6px 0 0; font-size: 12.4px; color: #8A8398; }

@media (max-width: 900px) {
	.e-cart-section,
	.woocommerce-checkout .woocommerce-billing-fields,
	.woocommerce-checkout #order_review { padding: 20px !important; border-radius: 14px !important; }
	.woocommerce-cart td.product-thumbnail img { width: 56px !important; height: 56px; }
}

/* ================== CHECKOUT: CONTENEDORES REALES DE ELEMENTOR ============= */
/* Los nombres de clase se tomaron del HTML renderizado con un carrito activo;
   con el carrito vacío el checkout redirige y estas clases no existen. */

.e-checkout__container,
.e-checkout__column,
.e-checkout__column-inner,
.woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .checkout.woocommerce-checkout {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}
.e-checkout__container { display: flex; flex-wrap: wrap; gap: 26px; align-items: flex-start; }
.e-checkout__column-start { flex: 1 1 420px; min-width: 0; }
.e-checkout__column-end { flex: 0 1 380px; min-width: 0; }

/* Un solo panel por columna. Antes cada bloque interno era su propia tarjeta y
   se acumulaban bordes y rellenos: el formulario acababa con cuatro marcos
   concéntricos. Ahora la tarjeta la forma la columna y todo lo de dentro es
   transparente. */
.e-checkout__column-start > .e-checkout__column-inner,
.e-checkout__column-start,
.e-checkout__column-end > .e-checkout__column-inner {
	position: relative;
	background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.016)) !important;
	border: 1px solid rgba(255,255,255,.09) !important;
	border-radius: 18px !important;
	padding: 24px !important;
	box-shadow: 0 24px 60px -30px rgba(0,0,0,.9);
	overflow: hidden;
}
.e-checkout__column-start > .e-checkout__column-inner::before,
.e-checkout__column-start::before,
.e-checkout__column-end > .e-checkout__column-inner::before {
	content: ''; position: absolute; inset: 0 0 auto; height: 1px;
	background: linear-gradient(90deg, transparent, rgba(237,181,20,.5), transparent);
}

/* Todo lo interno pierde su propio marco. */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.e-checkout__order_review,
.e-checkout__order_review-2,
.woocommerce-checkout #order_review,
.woocommerce-checkout #payment {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
}
.woocommerce-checkout .woocommerce-billing-fields::before,
.e-checkout__order_review::before { display: none; }

.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout #order_review_heading { margin: 0 0 18px; }
.woocommerce-checkout .woocommerce-additional-fields { margin-top: 24px !important; padding-top: 24px !important; border-top: 1px solid rgba(255,255,255,.08) !important; }
.woocommerce-checkout #payment { margin-top: 20px !important; padding-top: 20px !important; border-top: 1px solid rgba(255,255,255,.08) !important; }
.e-checkout-secondary-title, .e-woocommerce-coupon-nudge { color: #9A93A6; }

@media (max-width: 900px) {
	.e-checkout__column-start, .e-checkout__column-end { flex: 1 1 100%; }
}

/* ============================ BOTONES: UN SOLO SISTEMA ==================== */
/* Antes convivían el amarillo del kit, el morado de WooCommerce y los estilos
   propios de cada plugin. Aquí se unifican forma, tamaño y tipografía. */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #payment #place_order,
.woocommerce div.product form.cart .single_add_to_cart_button,
.ms-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	min-height: 54px; padding: 16px 30px;
	border: 1px solid transparent !important; border-radius: 12px !important;
	background: linear-gradient(180deg, #F5C63A, #EDB514) !important;
	color: #17140A !important;
	font: 600 14.5px/1.2 var(--ms-font, Rubik, sans-serif) !important;
	letter-spacing: .6px; text-transform: none; text-decoration: none;
	box-shadow: 0 12px 30px -14px rgba(237,181,20,.85);
	transition: background .2s, transform .15s, box-shadow .2s, border-color .2s;
	cursor: pointer;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-checkout #payment #place_order:hover,
.ms-btn:hover {
	background: linear-gradient(180deg, #FFD75C, #F0BC1E) !important;
	color: #17140A !important;
	transform: translateY(-1px);
	box-shadow: 0 16px 36px -14px rgba(237,181,20,1);
}

/* Secundarios: actualizar carrito, aplicar cupón, volver a la tienda */
.woocommerce button[name="update_cart"],
.woocommerce .coupon button.button,
.woocommerce .return-to-shop a.button,
.ms-btn--ghost {
	background: rgba(255,255,255,.05) !important;
	color: #D6D0DE !important;
	border-color: rgba(255,255,255,.16) !important;
	box-shadow: none;
}
.woocommerce button[name="update_cart"]:hover,
.woocommerce .coupon button.button:hover,
.woocommerce .return-to-shop a.button:hover,
.ms-btn--ghost:hover {
	background: rgba(237,181,20,.12) !important;
	color: #FFEEC7 !important;
	border-color: rgba(237,181,20,.45) !important;
}
.woocommerce button[name="update_cart"]:disabled,
.woocommerce button[name="update_cart"][disabled] {
	opacity: .45; cursor: not-allowed; transform: none;
}

/* Botón principal a ancho completo donde es la única acción */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #payment #place_order,
.woocommerce div.product form.cart .single_add_to_cart_button { width: 100%; }

/* PayPal express: se oculta en el carrito desde los ajustes del plugin; esto
   es solo red de seguridad por si vuelve a activarse. */
.woocommerce-cart .ppc-button-wrapper,
.woocommerce-cart #ppc-button-ppcp-gateway { display: none !important; }

/* ============================ PESTAÑAS DEL PRODUCTO ====================== */

.woocommerce div.product .woocommerce-tabs { margin-top: 46px; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 26px; padding: 0;
	border: 0; background: transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0; padding: 0; background: rgba(255,255,255,.04) !important;
	border: 1px solid rgba(255,255,255,.10) !important;
	border-radius: 999px !important; box-shadow: none;
	transition: background .2s, border-color .2s;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block; padding: 12px 24px; color: #9A93A6 !important;
	font: 600 13.5px/1 var(--ms-font, Rubik, sans-serif); letter-spacing: .3px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li:hover {
	background: rgba(255,255,255,.07) !important; border-color: rgba(237,181,20,.3) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: linear-gradient(180deg, rgba(237,181,20,.20), rgba(237,181,20,.08)) !important;
	border-color: rgba(237,181,20,.55) !important;
	box-shadow: 0 8px 24px -12px rgba(237,181,20,.7);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #FFEEC7 !important; }
.woocommerce div.product .woocommerce-tabs .panel {
	padding: 0; margin: 0; border: 0; background: transparent;
}
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

/* ============================ DESCRIPCIÓN DEL PRODUCTO =================== */

.ms-pd { max-width: 74ch; color: #C6C0D0; font-size: 15.5px; line-height: 1.72; }
.ms-pd__lead {
	font-size: 19px; line-height: 1.55; color: #FFEEC7; font-weight: 500;
	padding-left: 18px; border-left: 3px solid #EDB514; margin: 0 0 24px;
}
.ms-pd h3 {
	margin: 34px 0 14px; font-size: 19px; font-weight: 600; color: #FFFFFF !important;
	letter-spacing: -.2px;
}
.ms-pd p { margin: 0 0 15px; }
.ms-pd strong { color: #FFFFFF; font-weight: 600; }
.ms-pd__list, .ms-pd__steps { margin: 0 0 18px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 11px; }
.ms-pd__list li { position: relative; padding-left: 26px; }
.ms-pd__list li::before {
	content: ''; position: absolute; left: 2px; top: 9px; width: 10px; height: 6px;
	border-left: 2px solid #EDB514; border-bottom: 2px solid #EDB514; transform: rotate(-45deg);
}
.ms-pd__steps { counter-reset: ms; }
.ms-pd__steps li { position: relative; padding-left: 40px; counter-increment: ms; }
.ms-pd__steps li::before {
	content: counter(ms, decimal-leading-zero);
	position: absolute; left: 0; top: 1px;
	font: 700 12px/1.5 var(--ms-font, Rubik, sans-serif); letter-spacing: .8px; color: #EDB514;
}
/* Cierre de la descripción: devuelve al selector de paquete sin recargar. */
.ms-pd__cta {
	display: flex; flex-wrap: wrap; align-items: center; gap: 20px;
	margin-top: 34px; padding: 24px 26px; border-radius: 16px;
	background: linear-gradient(120deg, rgba(237,181,20,.13), rgba(255,255,255,.02));
	border: 1px solid rgba(237,181,20,.30);
}
.ms-pd__cta-text {
	flex: 1 1 280px; margin: 0 !important;
	font-size: 14.8px; line-height: 1.6; color: #FFEEC7;
}
.ms-pd__cta-btn {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px; padding: 16px 30px; border-radius: 12px;
	background: linear-gradient(180deg, #F5C63A, #EDB514);
	color: #17140A !important; text-decoration: none;
	font: 600 14px/1 var(--ms-font, Rubik, sans-serif); letter-spacing: .6px;
	box-shadow: 0 12px 30px -14px rgba(237,181,20,.85);
	transition: background .2s, transform .15s, box-shadow .2s;
}
.ms-pd__cta-btn:hover {
	background: linear-gradient(180deg, #FFD75C, #F0BC1E);
	color: #17140A !important; transform: translateY(-1px);
	box-shadow: 0 16px 36px -14px rgba(237,181,20,1);
}

/* El ancla se compensa para que el selector no quede bajo la cabecera fija. */
.ms-anchor { display: block; height: 0; scroll-margin-top: 120px; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ================ CAMPOS DEL CHECKOUT (sin depender de .woocommerce) ====== */
/* El widget de checkout de Elementor NO envuelve el formulario en un div
   .woocommerce, al contrario que el del carrito. Cualquier regla prefijada con
   .woocommerce nunca alcanzaba estos campos y quedaban blancos. Se ancla todo
   a body.woocommerce-page, que sí está siempre presente. */

body.woocommerce-page .form-row { margin: 0 0 18px; }
body.woocommerce-page .form-row label {
	display: block; margin-bottom: 7px;
	font: 600 12.5px/1.35 var(--ms-font, Rubik, sans-serif);
	letter-spacing: .3px; color: #FFEEC7 !important;
}
body.woocommerce-page .form-row .required { color: #EDB514 !important; border: 0; text-decoration: none; }
body.woocommerce-page .form-row .optional { color: #6E6878 !important; }

body.woocommerce-page input.input-text,
body.woocommerce-page textarea,
body.woocommerce-page select,
body.woocommerce-page .select2-container--default .select2-selection--single,
body.woocommerce-page .select2-container .select2-selection {
	background: rgba(255,255,255,.055) !important;
	border: 1px solid rgba(255,255,255,.16) !important;
	color: #FFFFFF !important;
	border-radius: 11px !important;
	padding: 14px 16px !important;
	font-size: 15px !important; line-height: 1.4 !important;
	width: 100%; height: auto !important; min-height: 52px;
	box-shadow: none !important;
	transition: border-color .18s, background .18s, box-shadow .18s;
}
body.woocommerce-page textarea { min-height: 110px; }
body.woocommerce-page input.input-text::placeholder,
body.woocommerce-page textarea::placeholder { color: #6E6878 !important; }

body.woocommerce-page input.input-text:focus,
body.woocommerce-page textarea:focus,
body.woocommerce-page select:focus {
	background: rgba(237,181,20,.08) !important;
	border-color: #EDB514 !important;
	box-shadow: 0 0 0 3px rgba(237,181,20,.18) !important;
	outline: none !important;
}
body.woocommerce-page .woocommerce-invalid input.input-text { border-color: #C0392B !important; }
body.woocommerce-page .woocommerce-validated input.input-text { border-color: rgba(95,217,166,.5) !important; }

/* Select2 desplegado */
body.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: #FFFFFF !important; line-height: 1.4; padding: 0;
}
body.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 12px; }

/* Casillas de términos y privacidad */
body.woocommerce-page .woocommerce-form__label-for-checkbox,
body.woocommerce-page .woocommerce-terms-and-conditions-wrapper label {
	display: flex; align-items: flex-start; gap: 10px; color: #C6C0D0 !important;
	font-weight: 400 !important; font-size: 13.6px !important;
}
body.woocommerce-page input[type=checkbox],
body.woocommerce-page input[type=radio] { accent-color: #EDB514; width: 18px; height: 18px; }

/* ============================ PRECIOS EN OSCURO ========================== */
/* WooCommerce envuelve el símbolo de moneda en su propio span, con color
   heredado del tema: sobre fondo negro desaparecía y se leía « 455.00». Todas
   las piezas del precio heredan el color del contexto. */

body.woocommerce-page .woocommerce-Price-amount,
body.woocommerce-page .woocommerce-Price-currencySymbol,
body.woocommerce-page .amount,
body.woocommerce-page bdi,
body.single-product .woocommerce-Price-amount,
body.single-product .woocommerce-Price-currencySymbol,
body.single-product .amount,
body.single-product bdi {
	color: inherit !important;
}

/* Contextos donde el precio manda: se pintan explícitamente. */
body.woocommerce-page .order-total .woocommerce-Price-amount,
body.woocommerce-page .order-total bdi,
body.woocommerce-page .order-total .woocommerce-Price-currencySymbol,
.ms-receipt__due strong,
.ms-receipt__due strong * { color: #EDB514 !important; }

.woocommerce-cart td.product-price,
.woocommerce-cart td.product-price *,
.woocommerce-cart td.product-subtotal,
.woocommerce-cart td.product-subtotal * { color: #FFFFFF !important; }

.woocommerce-cart .cart-subtotal td, .woocommerce-cart .cart-subtotal td *,
.woocommerce-cart .tax-rate td, .woocommerce-cart .tax-rate td *,
.woocommerce-checkout .cart-subtotal td, .woocommerce-checkout .cart-subtotal td *,
.woocommerce-checkout .tax-rate td, .woocommerce-checkout .tax-rate td * { color: #D6D0DE !important; }

/* El precio del extra dentro del nombre del artículo */
.woocommerce-cart td.product-name .variation .woocommerce-Price-amount,
.woocommerce-cart td.product-name .variation bdi,
.woocommerce-checkout .variation .woocommerce-Price-amount,
.woocommerce-checkout .variation bdi { color: #9A93A6 !important; }

/* ==================== CIERRE DEL CHECKOUT: QUÉ OCURRE DESPUÉS ============= */

.ms-after { margin-top: 26px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.09); }
.ms-after h4 {
	margin: 0 0 16px; font: 600 13.5px/1.3 var(--ms-font, Rubik, sans-serif);
	letter-spacing: .3px; color: #FFEEC7 !important;
}
.ms-after__steps { counter-reset: msa; margin: 0 0 20px; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 13px; }
.ms-after__steps li { position: relative; padding-left: 34px; counter-increment: msa; }
.ms-after__steps li::before {
	content: counter(msa); position: absolute; left: 0; top: 0;
	width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center;
	background: rgba(237,181,20,.13); border: 1px solid rgba(237,181,20,.36);
	font: 700 10.5px/1 var(--ms-font, Rubik, sans-serif); color: #EDB514;
}
.ms-after__steps span { display: block; font: 600 13.6px/1.4 var(--ms-font, Rubik, sans-serif); color: #FFFFFF; }
.ms-after__steps em { display: block; margin-top: 2px; font: 400 12.6px/1.5 var(--ms-font, Rubik, sans-serif); font-style: normal; color: #9A93A6; }

.ms-after__notes { display: flex; flex-direction: column; gap: 10px; }
.ms-after__notes p {
	display: flex; align-items: flex-start; gap: 10px; margin: 0;
	font: 400 12.6px/1.5 var(--ms-font, Rubik, sans-serif); color: #9A93A6 !important;
}
.ms-after__notes svg {
	flex: 0 0 auto; width: 15px; height: 15px; margin-top: 1px;
	fill: none; stroke: #EDB514; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;
}
.ms-after__notes a { color: #EDB514 !important; text-decoration: underline; text-underline-offset: 2px; }

/* ============================ MIGAS DE PAN =============================== */

.woocommerce .woocommerce-breadcrumb {
	display: flex; flex-wrap: wrap; align-items: center; gap: 4px;
	margin: 0 0 26px; padding: 0;
	font: 500 13px/1.5 var(--ms-font, Rubik, sans-serif);
	color: #FFFFFF !important;
}
.woocommerce .woocommerce-breadcrumb a {
	color: #9A93A6 !important; text-decoration: none;
	padding: 5px 2px; transition: color .18s;
}
.woocommerce .woocommerce-breadcrumb a:hover { color: #EDB514 !important; }
/* El separador es un nodo de texto, no un elemento: se tiñe con el color del
   contenedor. Poner font-size:0 en el contenedor lo haría desaparecer y las
   migas quedarían pegadas. */
.woocommerce .woocommerce-breadcrumb { color: rgba(237,181,20,.45) !important; }
.woocommerce .woocommerce-breadcrumb a:last-of-type ~ * { color: #FFFFFF; }

/* ========================================================== accesibilidad */

/* ============================ INFORMACIÓN ADICIONAL ====================== */

.woocommerce div.product .woocommerce-tabs #tab-additional_information table.shop_attributes {
	width: 100%; border: 0; border-collapse: collapse; background: transparent;
}
.woocommerce table.shop_attributes tr { border: 0; }
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	border: 0; border-bottom: 1px solid rgba(255,255,255,.08);
	padding: 16px 0; background: transparent !important; font-style: normal;
}
.woocommerce table.shop_attributes th {
	width: 30%; min-width: 190px; padding-right: 26px; vertical-align: top;
	font: 600 13px/1.5 var(--ms-font, Rubik, sans-serif);
	letter-spacing: .3px; color: #EDB514 !important;
}
.woocommerce table.shop_attributes td,
.woocommerce table.shop_attributes td p {
	font: 400 14.8px/1.65 var(--ms-font, Rubik, sans-serif);
	color: #C6C0D0 !important; margin: 0;
}
.woocommerce table.shop_attributes tr:last-child th,
.woocommerce table.shop_attributes tr:last-child td { border-bottom: 0; }
.woocommerce table.shop_attributes tr:nth-child(odd) th,
.woocommerce table.shop_attributes tr:nth-child(odd) td { background: rgba(255,255,255,.015) !important; }

@media (max-width: 700px) {
	.woocommerce table.shop_attributes th,
	.woocommerce table.shop_attributes td { display: block; width: 100%; min-width: 0; padding: 0; }
	.woocommerce table.shop_attributes th { padding-top: 16px; border: 0; }
	.woocommerce table.shop_attributes td { padding-bottom: 16px; }
}

/* ========================================================== accesibilidad */

@media (prefers-reduced-motion: reduce) {
	.ms-beam::after, .ms-chart .ln, .ms-chart .dot,
	.ms-algo__node, .ms-layers__viz path, .ms-layers__viz ellipse { animation: none !important; }
	.ms-chart .ln { stroke-dashoffset: 0 }
	.ms-chart .dot, .ms-algo__node, .ms-layers__viz path, .ms-layers__viz ellipse { opacity: 1; transform: none }
	.ms-deck__slide { transition: none }
}

@media (max-width: 767px) {
	.ms-deck { max-width: 460px; }
	.ms-plan { padding: 26px 22px 24px; }
	.ms-pack, .ms-wa { padding: 22px 20px; }
	.ms-glow::before { width: 620px; height: 620px; top: -300px; }
}

/* ============ CHECKOUT: REINICIO ACOTADO Y REDECLARACIÓN ================== */
/* Perseguir elemento a elemento no funcionó: entre WooCommerce, el widget de
   Elementor y el CSS por página hay demasiadas capas pintando blanco. Se limpia
   todo dentro de las dos columnas y se devuelve el fondo solo a lo que debe
   tenerlo. El alcance está limitado al checkout, así que no afecta a nada más. */

.e-checkout__column-start *,
.e-checkout__column-end * {
	background-color: transparent !important;
	background-image: none !important;
}

/* --- y ahora, lo que sí lleva fondo ------------------------------------- */

.e-checkout__column-start input.input-text,
.e-checkout__column-start textarea,
.e-checkout__column-start select,
.e-checkout__column-end input.input-text,
.e-checkout__column-end textarea,
.e-checkout__column-end select,
.e-checkout__column-start .select2-container .select2-selection,
.e-checkout__column-end .select2-container .select2-selection {
	background-color: rgba(255,255,255,.06) !important;
	border: 1px solid rgba(255,255,255,.16) !important;
	color: #FFFFFF !important;
	border-radius: 11px !important;
	min-height: 52px;
}
.e-checkout__column-start input.input-text:focus,
.e-checkout__column-start textarea:focus,
.e-checkout__column-start select:focus,
.e-checkout__column-end input.input-text:focus {
	background-color: rgba(237,181,20,.09) !important;
	border-color: #EDB514 !important;
	box-shadow: 0 0 0 3px rgba(237,181,20,.18) !important;
}

/* Descripción del método de pago (la caja blanca bajo Payphone) */
.e-checkout__column-end .payment_box,
.woocommerce-checkout #payment div.payment_box {
	background-color: rgba(237,181,20,.09) !important;
	border: 1px solid rgba(237,181,20,.24) !important;
	border-radius: 11px !important;
	padding: 14px 16px !important;
	margin: 10px 0 4px !important;
	color: #D6D0DE !important;
	font-size: 13.4px; line-height: 1.55;
}
.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
.woocommerce-checkout #payment div.payment_box p { color: #D6D0DE !important; margin: 0; }

/* Logotipos de tarjeta: necesitan fondo claro para leerse */
.e-checkout__column-end .payment_methods img,
.woocommerce-checkout #payment ul.payment_methods img,
.woocommerce-checkout img[src*="logo-cards"] {
	background-color: #FFFFFF !important;
	border-radius: 8px; padding: 5px 9px; max-height: 42px; width: auto;
}

/* Bloque de cupón del widget de Elementor */
.e-coupon-box,
.woocommerce-checkout .checkout_coupon,
.woocommerce-form-coupon-toggle .woocommerce-info {
	background-color: rgba(255,255,255,.04) !important;
	border: 1px solid rgba(255,255,255,.10) !important;
	border-radius: 12px !important;
	padding: 16px 18px !important;
	margin: 0 0 18px !important;
	color: #C6C0D0 !important;
	font-size: 13.6px;
}
.e-coupon-anchor,
.woocommerce-form-coupon-toggle .woocommerce-info a,
.e-show-coupon-form {
	color: #EDB514 !important; text-decoration: underline; text-underline-offset: 2px;
	cursor: pointer; font-weight: 600;
}
.e-coupon-anchor-description { color: #9A93A6 !important; }
.coupon-container-grid { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.coupon-col-1 { flex: 1 1 200px; }
.coupon-col-2 { flex: 0 0 auto; }
.e-coupon-box input[type=text] {
	background-color: rgba(255,255,255,.06) !important;
	border: 1px solid rgba(255,255,255,.16) !important;
	color: #fff !important; border-radius: 10px !important; min-height: 48px;
}

/* Aviso de privacidad y términos */
.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper p {
	color: #8A8398 !important; font-size: 12.8px; line-height: 1.6;
}
.woocommerce-checkout .woocommerce-privacy-policy-text a,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a { color: #EDB514 !important; }

/* Botón de pago: se redeclara porque el reinicio le quitó el degradado */
.e-checkout__column-end #place_order,
.woocommerce-checkout #payment #place_order {
	background-image: linear-gradient(180deg, #F5C63A, #EDB514) !important;
	background-color: #EDB514 !important;
	color: #17140A !important; width: 100%;
}
.e-checkout__column-end #place_order:hover {
	background-image: linear-gradient(180deg, #FFD75C, #F0BC1E) !important;
}

/* El sello del bloque de cierre conserva su fondo */
.ms-after__steps li::before { background-color: rgba(237,181,20,.13) !important; }

/* ============ CHECKOUT: UN SOLO CONTENEDOR POR COLUMNA ==================== */
/* Había dos tarjetas anidadas —la columna y el bloque de campos—, cada una con
   su borde y su relleno. Se deja la columna como único contenedor y todo lo de
   dentro pierde marco y relleno propios. */

.e-checkout__column-start,
.e-checkout__column-end > .e-checkout__column-inner {
	padding: 22px !important;
	border: 1px solid rgba(255,255,255,.07) !important;
	border-radius: 16px !important;
	box-shadow: none !important;
}

/* Nada dentro vuelve a dibujar un marco ni a añadir relleno, salvo los
   elementos que sí lo necesitan: campos, cajas de pago, cupón e imágenes. */
.e-checkout__column-start *:not(input):not(select):not(textarea):not(img):not(.payment_box):not(.e-coupon-box):not(.ms-after__steps li):not(button):not(a.button),
.e-checkout__column-end *:not(input):not(select):not(textarea):not(img):not(.payment_box):not(.e-coupon-box):not(.ms-after__steps li):not(button):not(a.button) {
	border: 0 !important;
	box-shadow: none !important;
}
.e-checkout__column-start > *,
.e-checkout__column-end > *,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout form.checkout,
.e-checkout__order_review,
.e-checkout__order_review-2 {
	padding: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	border-radius: 0 !important;
}

/* Se recuperan las separaciones que sí aportan lectura. */
.woocommerce-checkout .woocommerce-additional-fields {
	margin-top: 22px !important; padding-top: 22px !important;
	border-top: 1px solid rgba(255,255,255,.08) !important;
}
.woocommerce-checkout #payment {
	margin-top: 18px !important; padding-top: 18px !important;
	border-top: 1px solid rgba(255,255,255,.08) !important;
}
.ms-after { border-top: 1px solid rgba(255,255,255,.08) !important; padding-top: 22px !important; }

/* El filo dorado queda solo en el borde superior de cada columna. */
.e-checkout__column-start::before,
.e-checkout__column-end > .e-checkout__column-inner::before {
	content: ''; position: absolute; inset: 0 0 auto; height: 1px;
	background: linear-gradient(90deg, transparent, rgba(237,181,20,.45), transparent);
}
.e-checkout__column-end { position: relative; }
.e-checkout__column-end > .e-checkout__column-inner { position: relative; overflow: hidden; }

/* ============ RESUMEN DEL PEDIDO: UNA COLUMNA, EXTREMOS ALINEADOS ========= */

.woocommerce-checkout .woocommerce-checkout-review-order-table { width: 100%; table-layout: fixed; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th:first-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table td:first-child { width: 68%; text-align: left; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child { width: 32%; text-align: right; }

/* Nombre, cantidad y complementos apilados en una sola columna. */
.woocommerce-checkout td.product-name {
	display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
}
.woocommerce-checkout td.product-name .ms-corev { width: 100%; }
.woocommerce-checkout td.product-name .product-quantity {
	display: block; margin: 0; font: 500 12.6px/1 var(--ms-font, Rubik, sans-serif);
	color: #8A8398 !important;
}
.woocommerce-checkout td.product-name .variation,
.woocommerce-checkout td.product-name dl.variation {
	display: block; width: 100%; margin: 2px 0 0;
	font: 400 12.6px/1.5 var(--ms-font, Rubik, sans-serif); color: #9A93A6 !important;
}
.woocommerce-checkout td.product-name dl.variation dt { font-weight: 600; color: #B8B1C4 !important; }
.woocommerce-checkout td.product-name dl.variation dd { margin: 0 0 4px; }

/* Importes legibles y pegados al borde derecho. */
.woocommerce-checkout td.product-total,
.woocommerce-checkout td.product-total *,
.woocommerce-checkout .cart-subtotal td,
.woocommerce-checkout .cart-subtotal td * { color: #FFFFFF !important; font-weight: 600; }
.woocommerce-checkout .tax-rate td,
.woocommerce-checkout .tax-rate td * { color: #C6C0D0 !important; }
.woocommerce-checkout .cart-subtotal th,
.woocommerce-checkout .tax-rate th,
.woocommerce-checkout .order-total th { color: #C6C0D0 !important; font-weight: 500; text-align: left; }
.woocommerce-checkout .order-total th { color: #FFFFFF !important; font-weight: 600; }
.woocommerce-checkout tfoot td { text-align: right; }

/* ============ ANCHURAS UNIFORMES EN LA COLUMNA IZQUIERDA ================= */
/* «Detalles de pago» quedaba estrechado respecto a «Indicaciones del pedido». */

.e-checkout__column-start > *,
.woocommerce-checkout form.checkout,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}

/* ============ TÍTULO DE MÉTODOS DE PAGO ================================== */

.ms-pay-title {
	margin: 20px 0 12px !important;
	font: 600 13.5px/1.3 var(--ms-font, Rubik, sans-serif) !important;
	letter-spacing: .3px; color: #FFEEC7 !important;
}

/* ============ CUPÓN: AIRE SUPERIOR ======================================= */

.e-coupon-box,
.woocommerce-checkout .checkout_coupon,
.woocommerce-form-coupon-toggle .woocommerce-info { margin-top: 22px !important; }
.e-coupon-box input[type=text] { margin-top: 10px; }

/* ============ NOTAS DE CIERRE: SIN CORTES RAROS ========================== */

.ms-after__notes p { align-items: flex-start; }
.ms-after__notes p > span { flex: 1 1 auto; display: block; }
.ms-after__notes a { white-space: nowrap; }

/* ====== RESUMEN: IMAGEN · BLOQUE DE TEXTO · IMPORTE, EN UNA MISMA FILA ==== */
/* El nombre, la cantidad y los complementos son hermanos en el DOM, no un
   bloque. Con `display:contents` en el envoltorio de la miniatura, todos pasan
   a ser celdas de la misma rejilla: la imagen ocupa la columna 1 en vertical y
   el texto se apila en la columna 2. */

.woocommerce-checkout td.product-name {
	display: grid !important;
	grid-template-columns: 56px minmax(0, 1fr);
	column-gap: 13px; row-gap: 3px;
	align-items: start;
}
.woocommerce-checkout td.product-name .ms-corev { display: contents; }
.woocommerce-checkout td.product-name .ms-corev img {
	grid-column: 1; grid-row: 1 / -1; align-self: start;
	width: 56px !important; height: 56px; margin: 0;
}
.woocommerce-checkout td.product-name .ms-corev__n { grid-column: 2; grid-row: 1; }
.woocommerce-checkout td.product-name .product-quantity,
.woocommerce-checkout td.product-name .variation,
.woocommerce-checkout td.product-name dl.variation { grid-column: 2; margin: 0; }

/* Más aire para el nombre: el importe no necesita un tercio de la fila. */
.woocommerce-checkout .woocommerce-checkout-review-order-table th:first-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table td:first-child { width: 74%; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child { width: 26%; }
.woocommerce-checkout td.product-total { vertical-align: top; padding-top: 16px !important; }

/* ====== CAMPOS A TODO EL ANCHO DE LA COLUMNA ============================= */
/* «Detalles de pago» quedaba unos 28 px más estrecho que «Indicaciones del
   pedido» por rellenos heredados en sus envoltorios. */

.e-checkout__column-start > *,
.woocommerce-checkout form.checkout > *,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper,
.woocommerce-checkout .woocommerce-billing-fields .form-row,
.woocommerce-checkout .woocommerce-additional-fields .form-row {
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
}

/* Las dos medias columnas (nombre y apellido) reparten el ancho con separación
   real, sin depender de los flotados de WooCommerce. */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
	display: flex; flex-wrap: wrap; gap: 0 16px;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-first,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-last {
	width: calc(50% - 8px) !important; flex: 0 0 calc(50% - 8px);
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-wide { flex: 1 1 100%; }
@media (max-width: 640px) {
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-first,
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-last {
		width: 100% !important; flex: 1 1 100%;
	}
}

/* ======================= BRIEF CIENTÍFICO (/proyecto/) =================== */

.ms-proj { display: flex; flex-direction: column; gap: 22px; }

.ms-proj__head {
	display: flex; flex-wrap: wrap; gap: 26px;
	padding: 16px 20px; border-radius: 12px;
	background: rgba(255,255,255,.035); border: 1px solid var(--ms-line-2);
}
.ms-proj__head > div { display: flex; flex-direction: column; gap: 3px; }
.ms-proj__k { font: 700 9px/1 var(--ms-font); letter-spacing: 1.6px; color: var(--ms-mut-2); }
.ms-proj__head strong { font: 600 14.5px/1.2 var(--ms-font); color: var(--ms-white); }

/* Navegación de pasos */
.ms-proj__steps { display: flex; flex-wrap: wrap; gap: 8px; }
.ms-proj__step {
	display: flex; align-items: center; gap: 9px;
	padding: 10px 15px; border-radius: 999px; text-decoration: none;
	background: rgba(255,255,255,.035); border: 1px solid var(--ms-line-2);
	transition: border-color .2s, background .2s;
}
.ms-proj__step i {
	font-style: normal; width: 20px; height: 20px; border-radius: 50%;
	display: grid; place-items: center; flex: 0 0 auto;
	background: rgba(255,255,255,.08); color: var(--ms-mut);
	font: 700 10px/1 var(--ms-font);
}
.ms-proj__step b { font: 500 12.6px/1 var(--ms-font); color: var(--ms-mut); }
a.ms-proj__step:hover { border-color: rgba(237,181,20,.35); background: rgba(255,255,255,.055); }
.ms-proj__step.is-done i { background: rgba(95,217,166,.18); color: #5FD9A6; }
.ms-proj__step.is-done b { color: #C6C0D0; }
.ms-proj__step.is-now {
	background: linear-gradient(180deg, rgba(237,181,20,.18), rgba(237,181,20,.06));
	border-color: rgba(237,181,20,.5);
}
.ms-proj__step.is-now i { background: var(--ms-gold); color: #17140A; }
.ms-proj__step.is-now b { color: var(--ms-cream); }
.ms-proj__step:not(a) { opacity: .5; cursor: default; }

.ms-proj__title { margin: 6px 0 4px; font: 600 22px/1.3 var(--ms-font); color: var(--ms-white); letter-spacing: -.2px; }
.ms-proj__lead { margin: 0 0 18px; font: 400 14.8px/1.65 var(--ms-font); color: var(--ms-mut); }
.ms-proj__lead strong { color: var(--ms-cream); }

/* Campo de archivo */
.ms-file {
	width: 100%; padding: 16px; border-radius: 11px; cursor: pointer;
	background: rgba(255,255,255,.04); border: 1px dashed rgba(237,181,20,.34);
	color: var(--ms-mut); font: 400 14px var(--ms-font);
}
.ms-file:hover { border-color: rgba(237,181,20,.6); background: rgba(237,181,20,.05); }
.ms-file::file-selector-button {
	margin-right: 12px; padding: 9px 16px; border: 0; border-radius: 8px; cursor: pointer;
	background: rgba(237,181,20,.18); color: var(--ms-cream);
	font: 600 12.5px/1 var(--ms-font);
}

/* Archivos ya guardados */
.ms-files { margin: 10px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.ms-files li {
	display: flex; align-items: center; gap: 9px;
	padding: 9px 12px; border-radius: 9px;
	background: rgba(95,217,166,.07); border: 1px solid rgba(95,217,166,.22);
	font: 400 13px/1.3 var(--ms-font); color: #C6C0D0;
}
.ms-files svg { flex: 0 0 auto; width: 14px; height: 14px; fill: none; stroke: #5FD9A6; stroke-width: 1.7; }

/* Radios en línea */
.ms-radios { display: flex; flex-wrap: wrap; gap: 10px; }
.ms-radio {
	display: flex; align-items: center; gap: 9px; cursor: pointer;
	padding: 11px 18px; border-radius: 10px;
	background: rgba(255,255,255,.035); border: 1px solid var(--ms-line-2);
	transition: border-color .18s, background .18s;
}
.ms-radio:has(input:checked) { border-color: rgba(237,181,20,.55); background: rgba(237,181,20,.10); }
.ms-radio input { accent-color: var(--ms-gold); width: 17px; height: 17px; }
.ms-radio span { font: 500 14px/1 var(--ms-font); color: #D6D0DE; }

/* Puerta de acceso y cierre */
.ms-proj__gate h3, .ms-proj__done h3 {
	margin: 0 0 6px; font: 600 21px/1.3 var(--ms-font); color: var(--ms-white);
}
.ms-proj__done { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 20px 0; }
.ms-proj__done .ms-btn { margin-top: 16px; display: inline-flex; width: auto; }

@media (max-width: 700px) {
	.ms-proj__steps { gap: 6px; }
	.ms-proj__step { padding: 9px 12px; }
	.ms-proj__step b { display: none; }
}

/* ====== CHECKOUT: CORRECCIÓN FINAL DE MAQUETA ============================ */
/* Se anula la rejilla sobre el <td>: aplicarla lo saca del contexto de tabla y
   la columna del producto colapsaba a 68 px. La celda vuelve a ser celda y el
   bloque interno (miniatura + texto) se resuelve con flex. */

.woocommerce-checkout td.product-name {
	display: table-cell !important;
	vertical-align: top;
	padding: 18px 14px 18px 0 !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table { table-layout: auto !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th:first-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table td:first-child { width: auto !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child {
	width: 1% !important; white-space: nowrap; text-align: right; vertical-align: top;
	padding: 18px 0 !important;
}

/* Aire sobre la cabecera «Producto · Subtotal» */
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
	padding: 14px 0 12px !important;
	border-bottom: 1px solid rgba(255,255,255,.10) !important;
}

/* El bloque interno: miniatura fija y texto que fluye a todo el ancho */
.ms-corev { display: flex !important; align-items: flex-start; gap: 13px; width: 100%; }
.ms-corev img { flex: 0 0 auto; width: 54px !important; height: 54px; margin: 0; }
.ms-corev__b { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ms-corev__n {
	font: 600 14.6px/1.4 var(--ms-font, Rubik, sans-serif); color: #FFFFFF;
	overflow-wrap: anywhere; hyphens: auto;
}
.ms-corev__q { font: 500 12.4px/1 var(--ms-font, Rubik, sans-serif); color: #8A8398; }
.ms-corev__x {
	display: flex; justify-content: space-between; gap: 10px;
	font: 400 12.5px/1.45 var(--ms-font, Rubik, sans-serif); color: #9A93A6;
}
.ms-corev__x em { font-style: normal; }
.ms-corev__x b { color: #C6C0D0; font-weight: 600; white-space: nowrap; }

/* Lo que WooCommerce pinta aparte ya está dentro del bloque: se oculta. */
.woocommerce-checkout td.product-name > .product-quantity,
.woocommerce-checkout td.product-name > dl.variation,
.woocommerce-checkout td.product-name > .variation { display: none !important; }

/* ====== COLUMNA IZQUIERDA: UN SOLO CONTENEDOR, SIN MARCO ================= */
/* El formulario no necesita tarjeta propia: la página ya es el contenedor. */

.e-checkout__column-start {
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}
.e-checkout__column-start::before { display: none !important; }

/* Más ancho útil y menos aire lateral, sobre todo en móvil. */
.e-checkout__container { gap: 34px; }
.e-checkout__column-start { flex: 1 1 520px; }
.e-checkout__column-end { flex: 0 1 400px; }
.e-checkout__column-end > .e-checkout__column-inner { padding: 22px !important; }

@media (max-width: 900px) {
	.e-checkout__container { gap: 24px; }
	.e-checkout__column-start, .e-checkout__column-end { flex: 1 1 100%; }
	.e-checkout__column-end > .e-checkout__column-inner { padding: 18px !important; }
}
@media (max-width: 600px) {
	body.woocommerce-page .e-checkout__container { gap: 20px; }
	.e-checkout__column-end > .e-checkout__column-inner { padding: 16px !important; border-radius: 14px !important; }
	.ms-corev img { width: 46px !important; height: 46px; }
	.ms-corev__n { font-size: 14px; }
}

/* ====== CHECKOUT EN MÓVIL: ALINEACIÓN UNIFORME ========================== */
/* En pantalla estrecha el resumen conservaba su relleno de tarjeta (22 px) y
   los campos iban al borde: los dos bloques no cuadraban. Debajo de 900 px el
   resumen deja de ser tarjeta y se separa con una línea, de modo que todo
   arranca en la misma vertical. */

@media (max-width: 900px) {
	.e-checkout__column-end > .e-checkout__column-inner {
		background: none !important;
		border: 0 !important;
		border-top: 1px solid rgba(255,255,255,.10) !important;
		border-radius: 0 !important;
		padding: 26px 0 0 !important;
		box-shadow: none !important;
		overflow: visible;
	}
	.e-checkout__column-end > .e-checkout__column-inner::before { display: none !important; }

	/* Un único margen exterior para toda la página del embudo. */
	body.woocommerce-page .elementor-section > .elementor-container,
	body.woocommerce-page .e-checkout__container,
	body.woocommerce-page .e-cart__container {
		padding-left: 20px !important;
		padding-right: 20px !important;
		box-sizing: border-box;
	}
	body.woocommerce-page .e-checkout__column-start,
	body.woocommerce-page .e-checkout__column-end { padding-left: 0 !important; padding-right: 0 !important; }

	/* El carrito sigue el mismo criterio. */
	.e-cart-section { padding: 20px 0 !important; border-left: 0 !important; border-right: 0 !important; border-radius: 0 !important; }
	.e-cart-section + .e-cart-section { margin-top: 0; }
}

@media (max-width: 600px) {
	body.woocommerce-page .elementor-section > .elementor-container,
	body.woocommerce-page .e-checkout__container,
	body.woocommerce-page .e-cart__container {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
	.woocommerce-checkout td.product-name { padding-right: 10px !important; }
	.ms-corev__x { flex-direction: column; gap: 1px; }
	.ms-corev__x b { align-self: flex-start; }
}

/* ====== ANCHURA UNIFORME EN ESCRITORIO =================================== */
/* WooCommerce envuelve los datos de facturación en #customer_details.col2-set
   > .col-1, pensado para un diseño a dos columnas con flotados y relleno. En
   este checkout de una columna eso dejaba el formulario ~30 px más estrecho y
   desplazado respecto a «Indicaciones del pedido». */

.woocommerce-checkout #customer_details,
.woocommerce-checkout .col2-set,
.woocommerce-checkout .col2-set > .col-1,
.woocommerce-checkout .col2-set > .col-2 {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	padding: 0 !important;
	margin: 0 !important;
	background: none !important;
	border: 0 !important;
}
.woocommerce-checkout .col2-set::before,
.woocommerce-checkout .col2-set::after { display: none !important; }

/* La columna vacía (envío) no debe dejar hueco. */
.woocommerce-checkout .col2-set > .col-2:empty { display: none !important; }

/* Ambos bloques comparten el mismo ancho de referencia. */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields .form-row,
.woocommerce-checkout .woocommerce-additional-fields textarea {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}

/* ====== COLUMNA IZQUIERDA: UN ÚNICO CONTENEDOR ========================== */
/* «Detalles de pago» e «Indicaciones del pedido» comparten tarjeta, igual que
   el resumen de la derecha. El ancho interno ya está igualado por el reinicio
   de .col2-set, así que la tarjeta no vuelve a estrechar nada. */

.e-checkout__column-start {
	position: relative;
	background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.016)) !important;
	border: 1px solid rgba(255,255,255,.09) !important;
	border-radius: 18px !important;
	padding: 26px !important;
	box-shadow: 0 24px 60px -30px rgba(0,0,0,.9) !important;
	/* Sin overflow:hidden: recortaba la primera línea del título. */
	overflow: visible;
}
.e-checkout__column-start::before {
	display: block !important;
	content: ''; position: absolute; inset: 0 0 auto; height: 1px;
	background: linear-gradient(90deg, transparent, rgba(237,181,20,.45), transparent);
}

/* El título ya no se corta y las dos secciones respiran igual. */
.woocommerce-checkout .woocommerce-billing-fields > h3 {
	margin: 0 0 20px !important; padding-top: 2px;
}
.woocommerce-checkout .woocommerce-additional-fields {
	margin-top: 24px !important; padding-top: 24px !important;
	border-top: 1px solid rgba(255,255,255,.08) !important;
}

@media (max-width: 900px) {
	.e-checkout__column-start { padding: 20px !important; border-radius: 14px !important; }
}
@media (max-width: 600px) {
	.e-checkout__column-start {
		padding: 18px 16px !important; border-radius: 12px !important;
		box-shadow: none !important;
	}
}

/* ============ FORMULARIO DE COMPROBANTE (motor PeproDev) ================== */
/* El plugin base pinta una tabla clara con textos en inglés. Se reviste con la
   estética del sitio sin tocar su marcado, que es suyo y se actualiza. */

.ms-receipt__form h2,
.ms-receipt__form h3:not(.ms-receipt__h) {
	margin: 0 0 14px !important;
	font: 600 16px/1.3 var(--ms-font, Rubik, sans-serif) !important;
	color: var(--ms-cream) !important;
	text-transform: none;
}
.ms-receipt__form .peprodev_woocommerce_receipt_uploader,
.ms-receipt__form table,
.ms-receipt__form tbody,
.ms-receipt__form tr,
.ms-receipt__form td,
.ms-receipt__form th {
	background: transparent !important;
	border: 0 !important;
	color: var(--ms-mut) !important;
}
.ms-receipt__form table { width: 100%; border-collapse: collapse; display: block; }
.ms-receipt__form tbody { display: flex; flex-direction: column; gap: 16px; width: 100%; }
.ms-receipt__form tr { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.ms-receipt__form th,
.ms-receipt__form td { display: block; padding: 0 !important; width: 100%; }
.ms-receipt__form th {
	font: 600 12.5px/1.3 var(--ms-font, Rubik, sans-serif) !important;
	letter-spacing: .3px; color: var(--ms-cream) !important; text-align: left;
}

/* Estado del comprobante */
.ms-receipt__form .receipt-status,
.ms-receipt__form .receipt-admin-note {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 7px 14px; border-radius: 999px;
	font: 600 12px/1 var(--ms-font, Rubik, sans-serif); letter-spacing: .4px;
	background: rgba(255,255,255,.05); border: 1px solid var(--ms-line-2); color: var(--ms-mut);
}
.ms-receipt__form .receipt-status.upload   { background: rgba(79,209,224,.10); border-color: rgba(79,209,224,.3); color: #9BE3EC; }
.ms-receipt__form .receipt-status.pending  { background: rgba(237,181,20,.12); border-color: rgba(237,181,20,.35); color: var(--ms-cream); }
.ms-receipt__form .receipt-status.approved { background: rgba(95,217,166,.12); border-color: rgba(95,217,166,.35); color: #8FE9C2; }
.ms-receipt__form .receipt-status.rejected { background: rgba(217,83,79,.12); border-color: rgba(217,83,79,.4); color: #F2B4B2; }

/* Vista previa del comprobante ya subido */
.ms-receipt__form img.receipt-preview,
.ms-receipt__form .receipt-img img {
	width: 132px !important; height: 132px; object-fit: cover;
	border-radius: 12px; border: 1px solid var(--ms-line-2);
	box-shadow: 0 10px 26px -12px rgba(0,0,0,.9);
}
.ms-receipt__form img.receipt-preview.approved { border-color: rgba(95,217,166,.5); }
.ms-receipt__form img.receipt-preview.pending  { border-color: rgba(237,181,20,.5); }
.ms-receipt__form img.receipt-preview.rejected { border-color: rgba(217,83,79,.5); }

/* Selector de archivo */
.ms-receipt__form input[type=file] {
	width: 100%; padding: 18px; cursor: pointer;
	border-radius: 12px; color: var(--ms-mut);
	background: rgba(255,255,255,.04);
	border: 1px dashed rgba(237,181,20,.34);
	font: 400 14px var(--ms-font, Rubik, sans-serif);
	transition: border-color .2s, background .2s;
}
.ms-receipt__form input[type=file]:hover {
	border-color: rgba(237,181,20,.6); background: rgba(237,181,20,.05);
}
.ms-receipt__form input[type=file]::file-selector-button {
	margin-right: 14px; padding: 10px 18px; border: 0; border-radius: 9px; cursor: pointer;
	background: rgba(237,181,20,.18); color: var(--ms-cream);
	font: 600 12.5px/1 var(--ms-font, Rubik, sans-serif);
}

/* Botón de envío */
.ms-receipt__form .start-upload,
.ms-receipt__form .button,
.ms-receipt__form button,
.ms-receipt__form input[type=submit] {
	display: inline-flex; align-items: center; justify-content: center;
	width: 100%; min-height: 54px; margin-top: 4px;
	padding: 16px 30px; border: 0 !important; border-radius: 12px; cursor: pointer;
	background: linear-gradient(180deg, #F5C63A, #EDB514) !important;
	color: #17140A !important;
	font: 600 14.5px/1 var(--ms-font, Rubik, sans-serif) !important; letter-spacing: .6px;
	box-shadow: 0 12px 30px -14px rgba(237,181,20,.85);
	transition: background .2s, transform .15s;
}
.ms-receipt__form .start-upload:hover,
.ms-receipt__form button:hover {
	background: linear-gradient(180deg, #FFD75C, #F0BC1E) !important; transform: translateY(-1px);
}

/* Indicador de subida y avisos del motor */
.ms-receipt__form .receipt_uploading-loader { filter: hue-rotate(35deg) saturate(1.4); }
.ms-receipt__form toast, .ms-receipt__form .toast {
	background: rgba(255,255,255,.06) !important; color: var(--ms-cream) !important;
	border: 1px solid rgba(237,181,20,.3) !important; border-radius: 10px;
	font: 500 13.5px/1.5 var(--ms-font, Rubik, sans-serif);
}
.ms-receipt__form a { color: var(--ms-gold) !important; }

/* ============ ENTREGA DEL BRIEF TRAS EL PEDIDO =========================== */

.ms-handoff {
	position: relative; margin: 0 0 34px; padding: 30px 32px; border-radius: 18px;
	background: linear-gradient(120deg, rgba(237,181,20,.14), rgba(255,255,255,.02));
	border: 1px solid rgba(237,181,20,.34);
	box-shadow: 0 24px 60px -30px rgba(0,0,0,.9);
}
.ms-handoff__k { font: 700 9.5px/1 var(--ms-font, Rubik, sans-serif); letter-spacing: 2px; color: #EDB514; }
.ms-handoff h2 {
	margin: 10px 0 10px !important;
	font: 600 26px/1.2 var(--ms-font, Rubik, sans-serif) !important;
	letter-spacing: -.5px; color: #FFFFFF !important;
}
.ms-handoff p { margin: 0 0 12px; font: 400 15px/1.65 var(--ms-font, Rubik, sans-serif); color: #C6C0D0; }
.ms-handoff p strong { color: #FFEEC7; }
.ms-handoff__id {
	display: inline-block; padding: 10px 16px; border-radius: 10px;
	background: rgba(0,0,0,.28); border: 1px solid rgba(237,181,20,.28);
	font-size: 14px !important;
}
.ms-handoff__id strong { letter-spacing: 1px; user-select: all; }
.ms-handoff .ms-btn { display: inline-flex; width: auto; margin-top: 8px; }
.ms-handoff__note { margin: 14px 0 0 !important; font-size: 12.8px !important; color: #8A8398 !important; }

@media (max-width: 600px) {
	.ms-handoff { padding: 22px 18px; border-radius: 14px; }
	.ms-handoff h2 { font-size: 21px !important; }
	.ms-handoff .ms-btn { width: 100%; }
}

/* ============ AVISOS DEL MOTOR DE COMPROBANTES ========================== */
/* El plugin usa un elemento propio <toast> con la variable --toast-bg.
   Se reviste con la paleta del sitio en lugar del verde azulado y el rojo
   planos que trae de fábrica. */

toast {
	--toast-bg: rgba(20,17,24,.96) !important;
	border: 1px solid rgba(237,181,20,.34) !important;
	border-radius: 12px !important;
	box-shadow: 0 18px 44px -18px rgba(0,0,0,.95) !important;
	color: #FFEEC7 !important;
	font: 500 14.5px/1.5 var(--ms-font, Rubik, sans-serif) !important;
	letter-spacing: .2px;
	padding: 15px 22px !important;
}
/* El motor marca el error tiñendo el fondo; se respeta la señal, con su color. */
toast[style*="c0392b"], toast[style*="C0392B"],
toast[style*="rgb(192"], toast.error {
	--toast-bg: rgba(58,16,16,.97) !important;
	border-color: rgba(217,83,79,.5) !important;
	color: #F6C9C7 !important;
}
toast[style*="27ae60"], toast.success {
	--toast-bg: rgba(11,38,28,.97) !important;
	border-color: rgba(95,217,166,.45) !important;
	color: #B6EFD5 !important;
}

/* ============ ÁREA DE TRABAJO DEL BRIEF CIENTÍFICO ===================== */
/* El pie del sitio solo ofrece salidas —blog, contacto, legales— que compiten
   con la única tarea de esta página: terminar el brief. Se oculta. */
body.ms-workspace footer.site-footer,
body.ms-workspace .site-footer,
body.ms-workspace [data-elementor-type="footer"],
body.ms-workspace .elementor-location-footer {
	display: none !important;
}
body.ms-workspace { padding-bottom: 64px; }

/* ============ ÁREA DE TRABAJO DEL BRIEF CIENTÍFICO ===================== */
/* El pie del sitio solo ofrece salidas —blog, contacto, legales— que compiten
   con la única tarea de esta pantalla: terminar el brief y subir el material. */
body.ms-workspace footer.site-footer,
body.ms-workspace .site-footer,
body.ms-workspace [data-elementor-type="footer"],
body.ms-workspace .elementor-location-footer {
	display: none !important;
}
body.ms-workspace { padding-bottom: 72px; }
