/*
 * Página de Grading (PageController + views/front/page.php) y bloques de
 * grading en Mi cuenta y en el pedido.
 * Mismo lenguaje que FrikiCoins: morado de marca con filo dorado, tarjetas
 * blancas con sombra suave, Bebas Neue para titulares, botones del tema.
 */

.ltw-grading-page .entry-header { display: none; }
.ltw-grading-page article .max-w-prose { max-width: none; }
.ltw-grading-page .site-main { padding-top: 32px; }

.ltw-gr,
.ltw-gr-account,
.ltw-gr-order {
	--gr-brand: #510395;
	--gr-deep: #3a016f;
	--gr-gold: #f7c62f;
	--gr-soft: #f8f1fe;
	--gr-card: #fcf8ff;
	--gr-line: #ece4f5;
	--gr-border: #e1e1e1;
	--gr-text: #232323;
	--gr-muted: #6d6578;
	--gr-ok: #1f6b2a;
	--gr-error: #a1261d;
	--gr-shadow: 0 1px 2px rgba(27, 6, 45, .04), 0 10px 30px rgba(81, 3, 149, .07);
	color: var(--gr-text);
}

.ltw-gr {
	display: grid;
	gap: 64px;
}

.ltw-gr h2,
.ltw-gr h3,
.ltw-gr-account h2,
.ltw-gr-order h2 { font-family: "Bebas Neue", sans-serif; font-weight: 400; letter-spacing: .02em; }

.ltw-gr [hidden] { display: none !important; }

/* Botones (los del tema: Bebas, mayúsculas, radio 8) */
.ltw-gr__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 6px 22px;
	border: 1px solid transparent;
	border-radius: 8px;
	font-family: "Bebas Neue", sans-serif;
	font-size: 19px;
	letter-spacing: 1px;
	line-height: 1;
	text-decoration: none !important;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .25s ease-out, color .25s ease-out, border-color .25s ease-out, box-shadow .25s ease-out, opacity .2s;
}

.ltw-gr__btn svg { width: 18px; height: 18px; }
.ltw-gr__btn:disabled { opacity: .5; cursor: not-allowed; }

.ltw-gr__btn--gold {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border-color: #e2ad12;
	background: linear-gradient(180deg, #ffe27a 0%, #f7c62f 100%);
	box-shadow: 0 8px 20px rgba(247, 198, 47, .35);
	color: #3d2a00 !important;
}

.ltw-gr__btn--gold::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #fff;
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s ease-out;
}

.ltw-gr__btn--gold:not(:disabled):hover::after,
.ltw-gr__btn--gold:focus-visible::after { opacity: .3; }

.ltw-gr__btn--line { border-color: rgba(255, 255, 255, .65); color: #fff !important; }
.ltw-gr__btn--line:hover { background: #fff; color: var(--gr-brand) !important; }

.ltw-gr__btn--primary { background: var(--gr-brand); color: #fff !important; }
.ltw-gr__btn--primary:not(:disabled):hover { background: var(--gr-deep); }

.ltw-gr__btn--outline { border-color: var(--gr-brand); background: #fff; color: var(--gr-brand) !important; }
.ltw-gr__btn--outline:not(:disabled):hover { background: var(--gr-soft); }

.ltw-gr-link {
	padding: 0;
	border: 0;
	background: none;
	color: var(--gr-brand);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.ltw-gr__pill {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	padding: 3px 12px;
	border: 1px solid #e4d6f2;
	border-radius: 999px;
	background: var(--gr-soft);
	color: var(--gr-brand);
	font-family: "Bebas Neue", sans-serif;
	font-size: 19px;
	line-height: 1.2;
	white-space: nowrap;
}

/* ------------------------------------------------------------------ */
/* Cabecera: clara, como las de categoría (título grande, texto, imagen  */
/* en tarjeta blanca), y la franja de garantías morada de la home.       */
/* ------------------------------------------------------------------ */

.ltw-gr__intro {
	/* 32 del tema + 16 = 48 arriba, igual que abajo hasta la franja */
	padding-top: 16px;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	gap: 40px;
	align-items: center;
}

.ltw-gr__eyebrow {
	margin: 0 0 6px !important;
	color: var(--gr-brand);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.ltw-gr .ltw-gr__title {
	margin: 0 0 14px;
	color: var(--gr-text);
	font-family: "Bebas Neue", sans-serif;
	font-size: clamp(48px, 6vw, 80px);
	font-weight: 400;
	letter-spacing: .01em;
	line-height: .92;
}

.ltw-gr__lead {
	max-width: 560px;
	margin: 0 !important;
	color: var(--gr-muted);
	font-size: clamp(16px, 1.3vw, 18px);
	line-height: 1.6;
}

.ltw-gr__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
}

/* Ilustración: un slab en una tarjeta blanca, como la imagen de un producto */
.ltw-gr__intro-art {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 360px;
	padding: 32px;
	border: 1px solid var(--gr-border);
	border-radius: 16px;
	background:
		radial-gradient(60% 60% at 50% 45%, #f1e4fd 0%, rgba(241, 228, 253, 0) 70%),
		#fff;
	box-shadow: 0 12px 12px rgba(13, 4, 22, .07);
}

.ltw-gr__slab {
	width: 190px;
	padding: 12px;
	border: 1px solid #d9c9ee;
	border-radius: 16px;
	background: linear-gradient(160deg, #ffffff 0%, #f3ecfb 100%);
	box-shadow: inset 0 0 0 4px rgba(255, 255, 255, .9), 0 22px 36px rgba(58, 1, 111, .22);
	transform: rotate(5deg);
}

.ltw-gr__slab-label {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	padding: 8px 12px;
	border-radius: 8px;
	background: linear-gradient(180deg, #ffe27a, #f7c62f);
	color: #3d2a00;
}

.ltw-gr__slab-label span { font-family: "Bebas Neue", sans-serif; font-size: 22px; line-height: 1; }
.ltw-gr__slab-label strong { grid-row: span 2; font-family: "Bebas Neue", sans-serif; font-size: 44px; font-weight: 400; line-height: 1; }
.ltw-gr__slab-label small { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.ltw-gr__slab-card {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 63 / 88;
	margin-top: 10px;
	border: 6px solid #fff3c4;
	border-radius: 8px;
	background:
		radial-gradient(60% 50% at 50% 40%, rgba(255, 255, 255, .5), transparent 70%),
		linear-gradient(160deg, #8f3fe0, #3a016f);
}

.ltw-gr__slab-card svg { width: 64px; height: 64px; fill: var(--gr-gold); stroke: #e2ad12; }

/* Precio y datos clave bajo la entradilla: una línea limpia, misma letra
 * que el texto, icono morado fino y el precio en negrita morada */
.ltw-gr__pricing {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 22px;
	margin: 20px 0 0 !important;
	color: var(--gr-text);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
}

.ltw-gr__pricing span { display: inline-flex; align-items: center; gap: 0 .3em; white-space: nowrap; }

.ltw-gr__pricing svg { flex: 0 0 auto; width: 18px; height: 18px; margin-right: 3px; color: var(--gr-brand); }

.ltw-gr__pricing strong { color: var(--gr-brand); font-size: 17px; font-weight: 800; }

@media (max-width: 600px) {
	.ltw-gr__pricing { gap: 8px 18px; font-size: 14.5px; }
	/* El precio en su línea; seguro y devolución, debajo */
	.ltw-gr__pricing span:first-child { flex-basis: 100%; }
	.ltw-gr .ltw-gr__slabs { max-width: 340px; margin: 0 auto; }
}

/* Franja de garantías (features-list de la home), a todo el ancho */
.ltw-gr__features {
	position: relative;
	overflow: hidden;
	width: 100vw;
	/* Mismo aire a la vista que sobre el banner (la cabecera del tema tiene
	 * ~18 px transparentes bajo la caja morada) */
	margin: 14px calc(50% - 50vw) 0;
	background: #410674;
	color: #fff;
}

.ltw-gr__features-glow {
	position: absolute;
	top: -313px;
	left: 38px;
	width: 978px;
	height: 978px;
	border-radius: 978px;
	background: radial-gradient(50% 50% at 50% 50%, #9330e8 0, rgba(81, 3, 149, 0) 100%);
	pointer-events: none;
}

.ltw-gr__features ul {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0 auto;
	padding: 0 16px;
	list-style: none;
}

.ltw-gr__features li {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0;
	padding: 24px 40px;
	font-size: 18px;
	text-transform: uppercase;
}

.ltw-gr__features-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;
	color: var(--gr-brand);
}

.ltw-gr__features-icon svg { width: 22px; height: 22px; }

@media (max-width: 900px) {
	.ltw-gr__intro { grid-template-columns: 1fr; gap: 24px; }
	.ltw-gr__intro-art { min-height: 260px; }
	.ltw-gr__slab { width: 150px; }
	.ltw-gr__features li { padding: 10px 20px; font-size: 15px; }
	.ltw-gr__features ul { justify-content: flex-start; padding: 14px 8px; }
}

@media (max-width: 700px) {
	.ltw-gr { gap: 48px; }
	.ltw-gr__cta > * { flex: 1 1 100%; }
	.ltw-gr__features { margin-top: 24px; }
}

/* ------------------------------------------------------------------ */
/* Secciones                                                            */
/* ------------------------------------------------------------------ */

.ltw-gr__head { margin-bottom: 24px; }

.ltw-gr__head h2 {
	margin: 0 !important;
	font-size: clamp(34px, 4vw, 48px) !important;
	line-height: 1 !important;
}

.ltw-gr__head p {
	max-width: 760px;
	margin: 6px 0 0 !important;
	color: var(--gr-muted);
}

.ltw-gr__head a { color: var(--gr-brand); font-weight: 600; }

.ltw-gr__note {
	max-width: 900px;
	margin: 16px 0 0 !important;
	color: var(--gr-muted);
	font-size: 14px;
	line-height: 1.55;
}

/* Tarifas */
.ltw-gr__tiers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ltw-gr__tier {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0;
	padding: 24px 26px 22px;
	border: 1px solid #efe5f9;
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--gr-shadow);
}

.ltw-gr__tier + .ltw-gr__tier { border-top: 3px solid var(--gr-gold); }

.ltw-gr__tier-head h3 { margin: 0 !important; font-size: 34px !important; line-height: 1 !important; }
.ltw-gr__tier-head p { margin: 4px 0 0 !important; color: var(--gr-muted); font-weight: 600; }

.ltw-gr__prices { width: 100%; margin: 0 !important; border: 0 !important; border-collapse: collapse; }

.ltw-gr__prices th,
.ltw-gr__prices td {
	padding: 12px 0 !important;
	border: 0 !important;
	border-top: 1px solid var(--gr-line) !important;
	background: none !important;
	font-size: 15px;
	text-align: left;
}

.ltw-gr__prices th { color: var(--gr-muted); font-weight: 500; }

.ltw-gr__prices td {
	color: var(--gr-brand);
	font-family: "Bebas Neue", sans-serif;
	font-size: 28px;
	line-height: 1;
	text-align: right;
}

.ltw-gr__prices tr.is-volume th { color: var(--gr-text); font-weight: 700; }

.ltw-gr__tier-meta {
	display: grid;
	gap: 8px;
	margin: auto 0 0;
	padding: 14px 0 0;
	border-top: 1px solid var(--gr-line);
	list-style: none;
}

.ltw-gr__tier-meta li { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--gr-muted); font-size: 14px; }
.ltw-gr__tier-meta svg { flex: 0 0 auto; width: 20px; height: 20px; color: var(--gr-brand); }

/* Pasos */
.ltw-gr__steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: step;
}

.ltw-gr__steps li {
	position: relative;
	margin: 0;
	padding: 20px 20px 20px;
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--gr-shadow);
	counter-increment: step;
}

.ltw-gr__steps li::before {
	content: counter(step, decimal-leading-zero);
	position: absolute;
	top: 14px;
	right: 18px;
	color: #eedffd;
	font-family: "Bebas Neue", sans-serif;
	font-size: 64px;
	line-height: 1;
}

.ltw-gr__step-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 12px;
	background: var(--gr-brand);
	color: #fff;
}

.ltw-gr__steps h3 { margin: 14px 0 6px !important; font-size: 24px !important; line-height: 1 !important; }
.ltw-gr__steps p { margin: 0 !important; color: var(--gr-muted); font-size: 14px; line-height: 1.5; }
.ltw-gr__steps .ltw-gr__step-icon { width: 44px; height: 44px; }
.ltw-gr__steps li::before { font-size: 54px; }

/* Menú de anclas: tarjeta blanca como las de producto (borde, radio 12,
 * sombra suave), fino para no comerse la pantalla. Fijo bajo la cabecera del
 * tema al hacer scroll (su altura la pone el JS en --gr-sticky-top); la
 * sección actual, subrayada en dorado. */
.ltw-gr__nav {
	position: sticky;
	top: calc(var(--gr-sticky-top, 0px) + 8px);
	z-index: 50;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 4px;
	margin-top: -40px;
	padding: 6px 8px 6px 12px;
	border: 1px solid var(--gr-border);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 12px 12px rgba(13, 4, 22, .07);
}

.ltw-gr__nav a {
	position: relative;
	padding: 10px 12px;
	color: var(--gr-text) !important;
	font-family: Inter, sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	text-decoration: none !important;
	white-space: nowrap;
	transition: color .2s;
}

.ltw-gr__nav a::after {
	content: "";
	position: absolute;
	right: 12px;
	bottom: 4px;
	left: 12px;
	height: 3px;
	border-radius: 3px;
	background: var(--gr-gold);
	opacity: 0;
	transform: scaleX(.4);
	transition: opacity .25s ease-out, transform .25s ease-out;
}

.ltw-gr__nav a:hover,
.ltw-gr__nav a.is-current { color: var(--gr-brand) !important; }
.ltw-gr__nav a.is-current::after { opacity: 1; transform: none; }

/* Llamada principal: el botón principal del tema (morado) */
.ltw-gr__nav a.is-main {
	margin-left: auto;
	padding: 9px 18px;
	border: 1px solid var(--gr-brand);
	border-radius: 8px;
	background: var(--gr-brand);
	color: #fff !important;
	font-family: "Bebas Neue", sans-serif;
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 1px;
	line-height: 1;
	text-transform: uppercase;
}

.ltw-gr__nav a.is-main::after { display: none; }
.ltw-gr__nav a.is-main:hover,
.ltw-gr__nav a.is-main.is-current { border-color: #410674; background: #410674; }

/* Las secciones quedan por debajo de la cabecera y del menú al saltar */
.ltw-gr__section { scroll-margin-top: calc(var(--gr-sticky-top, 0px) + var(--gr-nav-height, 52px) + 24px); }

@media (max-width: 700px) {
	.ltw-gr__nav { flex-wrap: nowrap; margin-top: -32px; padding: 4px 6px; overflow-x: auto; scrollbar-width: none; }
	.ltw-gr__nav::-webkit-scrollbar { display: none; }
	.ltw-gr__nav a { flex: 0 0 auto; padding: 11px 10px; font-size: 13.5px; }
	.ltw-gr__nav a::after { right: 10px; left: 10px; }
	.ltw-gr__nav a.is-main { margin-left: 4px; padding: 9px 14px; font-size: 16px; }
}

/* Columna de contenido (y, en pantallas anchas, el menú a su izquierda) */
.ltw-gr__layout,
.ltw-gr__content { display: grid; gap: 64px; min-width: 0; }

.ltw-gr__nav-title { display: none; }

/* Pantalla ancha: menú lateral fijo a la izquierda, en vertical. La sección
 * actual se marca con la barra dorada a la izquierda. */
@media (min-width: 1240px) {
	.ltw-gr__layout {
		grid-template-columns: 200px minmax(0, 1fr);
		gap: 40px;
		align-items: start;
	}

	.ltw-gr__nav {
		top: calc(var(--gr-sticky-top, 0px) + 24px);
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 2px;
		margin-top: 0;
		padding: 16px 12px 12px;
	}

	.ltw-gr__nav-title {
		display: block;
		margin: 0 0 6px !important;
		padding: 0 12px;
		color: var(--gr-muted);
		font-family: Inter, sans-serif;
		font-size: 11.5px;
		font-weight: 700;
		letter-spacing: .08em;
		line-height: 1.4;
		text-transform: uppercase;
	}

	.ltw-gr__nav a { padding: 9px 12px; border-radius: 8px; white-space: normal; }
	.ltw-gr__nav a:hover { background: var(--gr-soft); }
	.ltw-gr__nav a.is-current { background: var(--gr-soft); }

	.ltw-gr__nav a::after {
		top: 8px;
		right: auto;
		bottom: 8px;
		left: 0;
		width: 3px;
		height: auto;
		transform: scaleY(.4);
	}

	.ltw-gr__nav a.is-main {
		margin: 10px 0 0;
		padding: 13px 14px;
		text-align: center;
	}

	/* El menú ya no está encima: sólo cuenta la cabecera del tema */
	.ltw-gr__section { scroll-margin-top: calc(var(--gr-sticky-top, 0px) + 24px); }
	.ltw-gr__content .ltw-gr-summary { top: calc(var(--gr-sticky-top, 0px) + 24px); }
	.ltw-gr__content .ltw-gr-builder__body { grid-template-columns: minmax(0, 1fr) 310px; gap: 28px; }
}

/* Antes de enviar: preparación y servicios adicionales, lado a lado */
.ltw-gr__before {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	gap: 18px;
	align-items: stretch;
}

.ltw-gr__panel {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px 26px 22px;
	border: 1px solid #efe5f9;
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--gr-shadow);
}

.ltw-gr__panel h3 {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 !important;
	font-size: 30px !important;
	line-height: 1 !important;
}

.ltw-gr__panel h3 svg {
	flex: 0 0 auto;
	box-sizing: content-box;
	padding: 10px;
	border-radius: 12px;
	background: var(--gr-brand);
	color: #fff;
}

.ltw-gr__panel-lead { margin: 0 !important; color: var(--gr-muted); font-size: 15px; }

.ltw-gr__pack {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: pack;
}

.ltw-gr__pack li {
	position: relative;
	display: grid;
	justify-items: center;
	gap: 8px;
	margin: 0;
	padding: 0 4px;
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	counter-increment: pack;
}

.ltw-gr__pack li::before {
	content: counter(pack);
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 2px solid #e4d6f2;
	border-radius: 50%;
	background: var(--gr-soft);
	color: var(--gr-brand);
	font-family: "Bebas Neue", sans-serif;
	font-size: 22px;
	font-weight: 400;
}

/* Flecha entre pasos */
.ltw-gr__pack li + li::after {
	content: "";
	position: absolute;
	top: 20px;
	right: calc(50% + 24px);
	left: calc(-50% + 24px);
	height: 2px;
	background: #e4d6f2;
}

.ltw-gr__rules {
	display: grid;
	gap: 8px;
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
}

.ltw-gr__rules li {
	margin: 0;
	padding: 10px 14px;
	border-left: 3px solid var(--gr-brand);
	border-radius: 8px;
	background: var(--gr-card);
	color: var(--gr-muted);
	font-size: 14px;
	line-height: 1.45;
}

.ltw-gr__rules strong { color: var(--gr-text); }
.ltw-gr__rules li.is-warn { border-left-color: var(--gr-gold); background: #fffaf0; }

.ltw-gr__extras {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ltw-gr__extras li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0;
	padding: 12px 0;
	border-top: 1px solid var(--gr-line);
}

.ltw-gr__extras li:last-child { padding-bottom: 0; }
.ltw-gr__extras li > div { display: grid; gap: 2px; min-width: 0; }
.ltw-gr__extras strong { font-size: 15px; }
.ltw-gr__extras span:not(.ltw-gr__pill) { color: var(--gr-muted); font-size: 13.5px; line-height: 1.4; }
.ltw-gr__extras .ltw-gr__pill { flex: 0 0 auto; font-size: 17px; }

@media (max-width: 480px) {
	.ltw-gr__panel { padding: 20px 18px; }
	.ltw-gr__panel h3 { font-size: 26px !important; }
	.ltw-gr__pack li { font-size: 12px; }
}

/* ------------------------------------------------------------------ */
/* Formulario del envío                                                 */
/* ------------------------------------------------------------------ */

.ltw-gr-builder__main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; min-width: 0; }

/* Sin columna explícita, el paso más ancho (botones, pasos) ensanchaba el
 * panel más que la pantalla en móvil */
.ltw-gr-step { grid-template-columns: minmax(0, 1fr); min-width: 0; }

.ltw-gr-builder__companies {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
}

.ltw-gr-builder__companies legend { width: 100%; margin-bottom: 6px; font-weight: 700; }

.ltw-gr-choice input { position: absolute; opacity: 0; }

.ltw-gr-choice span {
	display: inline-flex;
	padding: 8px 18px;
	border: 1px solid var(--gr-border);
	border-radius: 999px;
	background: #fff;
	font-family: "Bebas Neue", sans-serif;
	font-size: 20px;
	cursor: pointer;
}

.ltw-gr-choice input:checked + span { border-color: var(--gr-brand); background: var(--gr-brand); color: #fff; }
.ltw-gr-choice input:focus-visible + span { outline: 2px solid var(--gr-brand); outline-offset: 2px; }

.ltw-gr-builder__notice {
	padding: 12px 16px;
	border-left: 4px solid var(--gr-brand);
	border-radius: 10px;
	background: var(--gr-soft);
	color: var(--gr-brand);
	font-size: 14px;
	font-weight: 600;
}

.ltw-gr-builder__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }

/* Una carta */
.ltw-gr-cards {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ltw-gr-card {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 16px 18px 14px;
	border: 1px solid var(--gr-border);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 12px 12px rgba(13, 4, 22, .04);
	transition: border-color .2s;
}

.ltw-gr-card:focus-within { border-color: #c9a6ef; }
.ltw-gr-card.is-invalid { border-color: var(--gr-error); }

.ltw-gr-card__head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }

.ltw-gr-card__num {
	color: var(--gr-text);
	font-family: "Bebas Neue", sans-serif;
	font-size: 22px;
	line-height: 1;
}

.ltw-gr-card__service select {
	min-height: 0 !important;
	padding: 4px 30px 4px 12px !important;
	border: 1px solid #e4d6f2 !important;
	border-radius: 999px !important;
	background-color: var(--gr-soft) !important;
	color: var(--gr-brand) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	cursor: pointer;
}

.ltw-gr-card__price {
	margin-left: auto;
	color: var(--gr-brand);
	font-family: "Bebas Neue", sans-serif;
	font-size: 24px;
	line-height: 1;
}

.ltw-gr-card__actions { display: inline-flex; gap: 2px; }

.ltw-gr-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: none;
	color: var(--gr-muted);
	cursor: pointer;
}

.ltw-gr-icon:hover { background: var(--gr-soft); color: var(--gr-brand); }
.ltw-gr-icon--danger:hover { background: #fbe9e8; color: var(--gr-error); }

.ltw-gr-card__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}

/* Juego y carta arriba; idioma, año, estado y valor debajo */
.ltw-gr-field--description { grid-column: span 3; }

.ltw-gr-field { display: grid; gap: 4px; min-width: 0; margin: 0 !important; }

.ltw-gr-field > span {
	color: var(--gr-muted);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
}

.ltw-gr-field input,
.ltw-gr-field select,
.ltw-gr-field textarea,
.ltw-gr-summary textarea {
	width: 100%;
	min-width: 0;
	min-height: 42px;
	margin: 0 !important;
	padding: 8px 10px;
	border: 1px solid var(--gr-border);
	border-radius: 8px;
	background: #fff;
	color: var(--gr-text);
	font: inherit;
	font-size: 15px !important;
	line-height: 1.4 !important;
	box-sizing: border-box;
}

.ltw-gr-field select { padding-right: 28px !important; text-overflow: ellipsis; }

.ltw-gr-field textarea,
.ltw-gr-summary textarea { min-height: 0; resize: vertical; }

.ltw-gr-field input:focus,
.ltw-gr-field select:focus,
.ltw-gr-field textarea:focus,
.ltw-gr-summary textarea:focus {
	border-color: var(--gr-brand);
	outline: 0;
	box-shadow: 0 0 0 3px rgba(81, 3, 149, .12);
}

.ltw-gr-card__options { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }

.ltw-gr .ltw-gr-toggle {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
	font-size: 14px;
	cursor: pointer;
}

.ltw-gr .ltw-gr-toggle input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 0 !important;
	accent-color: var(--gr-brand);
}

.ltw-gr-toggle small { color: var(--gr-muted); }

.ltw-gr-card__options .ltw-gr-link { margin-left: auto; }

.ltw-gr-card__row {
	display: grid;
	grid-template-columns: minmax(0, 260px) 1fr;
	gap: 6px 14px;
	align-items: end;
	padding: 12px 14px;
	border-radius: 10px;
	background: var(--gr-card);
}

.ltw-gr-card__hint { margin: 0 !important; color: var(--gr-muted); font-size: 13px; line-height: 1.4; }

.ltw-gr-card__more {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	padding-top: 12px;
	border-top: 1px dashed var(--gr-line);
}

.ltw-gr-field--price_url { grid-column: span 2; }
.ltw-gr-field--wide { grid-column: 1 / -1; }

.ltw-gr-card__alert {
	margin: 0 !important;
	color: var(--gr-error);
	font-size: 13.5px;
	font-weight: 600;
}

@media (max-width: 600px) {
	.ltw-gr-card { padding: 14px; }
	.ltw-gr-card__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ltw-gr-field--description { grid-column: 1 / -1; order: -1; }
	.ltw-gr-field--value { grid-column: 1 / -1; }
	.ltw-gr-card__head { flex-wrap: nowrap; gap: 6px; }
	.ltw-gr-card__price { font-size: 21px; }
	.ltw-gr-icon { width: 30px; height: 30px; }
	.ltw-gr-card__more { grid-template-columns: 1fr; }
	.ltw-gr-field--price_url { grid-column: auto; }
	.ltw-gr-card__row { grid-template-columns: 1fr; }
	.ltw-gr-card__options .ltw-gr-link { margin-left: 0; }
	.ltw-gr-builder__tools .ltw-gr__btn { flex: 1 1 auto; }
}

/*
 * Cartas plegables: sólo una abierta a la vez (builder.js). Plegada se ve su
 * número, un resumen (nombre · idioma · valor), el precio y las acciones.
 */
.ltw-gr-card { grid-template-columns: minmax(0, 1fr); min-width: 0; }

/* Carta abierta: datos de la carta, su valor y, en un panel aparte, la
 * protección (seguro, Semi-Rigid) y los extras */
.ltw-gr-card__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.ltw-gr-card__grid > .ltw-gr-field { grid-column: span 2; }
.ltw-gr-card__grid > .ltw-gr-field--description,
.ltw-gr-card__grid > .ltw-gr-field--price_url,
.ltw-gr-card__grid > .ltw-gr-field--note { grid-column: span 4; }
.ltw-gr-card__grid--more > .ltw-gr-field { grid-column: span 3; }
.ltw-gr-card__grid--more:has(.ltw-gr-field--current_grade) > .ltw-gr-field--note { grid-column: 1 / -1; }

.ltw-gr-card__grid--value {
	padding-top: 14px;
	border-top: 1px dashed var(--gr-line);
}

.ltw-gr-card__extras {
	display: grid;
	gap: 12px;
	padding: 14px;
	border: 1px solid #efe5f9;
	border-radius: 12px;
	background: #fff;
}

.ltw-gr-card__tiles {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
}

.ltw-gr-field--note textarea { min-height: 44px !important; }

/* Semi-Rigid, con la misma tarjeta que el seguro pero en morado (más
 * específico: las reglas del seguro van después) */
.ltw-gr .ltw-gr-insure.ltw-gr-insure--semi { border-color: #d9c6ef; }
.ltw-gr .ltw-gr-insure--semi .ltw-gr-insure__icon { border-color: #d9c6ef; color: #9b6cd1; }
.ltw-gr .ltw-gr-insure--semi .ltw-gr-insure__price { color: var(--gr-brand); }
.ltw-gr .ltw-gr-insure.ltw-gr-insure--semi:hover { border-color: #b98ce6; }
.ltw-gr .ltw-gr-insure--semi:has(input:focus-visible) { outline-color: var(--gr-brand); }
.ltw-gr .ltw-gr-insure.ltw-gr-insure--semi.is-on { border: 1px solid #c9a6ef; background: #f8f1fe; }
.ltw-gr .ltw-gr-insure--semi.is-on .ltw-gr-insure__icon { border-color: var(--gr-brand); background: var(--gr-brand); color: #fff; }

/* Carta plegada: resumen y etiquetas, como en el carrito */
.ltw-gr-card__summary {
	display: grid;
	flex: 1 1 auto;
	gap: 5px;
	min-width: 0;
}

.ltw-gr .ltw-gr-card__tags { justify-content: flex-start; }

/* El servicio y el precio no se encogen: el resumen se recorta antes */
.ltw-gr-card__head .ltw-gr-card__service,
.ltw-gr-card__head .ltw-gr-card__price,
.ltw-gr-card__head .ltw-gr-card__actions { flex: 0 0 auto; }

@media (max-width: 600px) {
	.ltw-gr-card__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ltw-gr-card__grid > .ltw-gr-field { grid-column: span 1; }
	.ltw-gr-card__grid > .ltw-gr-field--description,
	.ltw-gr-card__grid > .ltw-gr-field--value,
	.ltw-gr-card__grid > .ltw-gr-field--price_url,
	.ltw-gr-card__grid--more > .ltw-gr-field { grid-column: 1 / -1; }
	.ltw-gr-card__extras { padding: 12px; }
}
.ltw-gr-card__body { display: grid; gap: 14px; }
.ltw-gr-card__body[hidden] { display: none; }

.ltw-gr-card.is-collapsed { gap: 0; }

.ltw-gr .ltw-gr-card__toggle {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	gap: 10px;
	min-width: 0;
	margin: 0;
	padding: 4px 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.ltw-gr-card__brief {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	color: var(--gr-muted);
	font-size: 14px;
	font-weight: 600;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ltw-gr-card.is-open .ltw-gr-card__brief { visibility: hidden; }

.ltw-gr-card__chevron {
	flex: 0 0 auto;
	color: var(--gr-brand);
	transition: transform .2s;
}

.ltw-gr-card.is-open .ltw-gr-card__chevron { transform: rotate(180deg); }

.ltw-gr-card.is-collapsed:hover { border-color: #c9a6ef; }

.ltw-gr-builder__main .ltw-gr-card.is-collapsed { padding-block: 10px; }

.ltw-gr-card__head { flex-wrap: nowrap; }
.ltw-gr-card__head .ltw-gr-card__price { margin-left: 0; white-space: nowrap; }
.ltw-gr-card__num { white-space: nowrap; }

@media (max-width: 600px) {
	/* En móvil la cabecera va en dos filas: carta y resumen arriba; servicio,
	 * precio y acciones debajo */
	.ltw-gr .ltw-gr-card__head { flex-wrap: wrap; row-gap: 4px; }
	.ltw-gr .ltw-gr-card__toggle { flex: 1 0 100%; }
	.ltw-gr-card__head .ltw-gr-card__service { margin-right: auto; }
	.ltw-gr-card.is-open .ltw-gr-card__brief { visibility: hidden; }
	.ltw-gr-card .ltw-gr-field--price_url { grid-column: 1 / -1; }
}

/* Plantilla: descargarla y subirla rellena */
.ltw-gr .ltw-gr-dialog__template,
.ltw-gr-dialog__template {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 0 !important;
	padding: 16px !important;
	border: 1px dashed #d9c6ef;
	border-radius: 12px;
	background: #fcf9ff;
}

.ltw-gr .ltw-gr-dialog__btn,
.ltw-gr-dialog__btn {
	position: relative;
	display: inline-flex !important;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	margin: 0 !important;
	padding: 10px 14px;
	border: 1px solid #510395;
	border-radius: 10px;
	background: #fff;
	color: #510395 !important;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .15s, color .15s;
}

.ltw-gr .ltw-gr-dialog__btn:hover,
.ltw-gr-dialog__btn:hover { background: #f8f1fe; }
.ltw-gr .ltw-gr-dialog__btn--upload,
.ltw-gr-dialog__btn--upload { background: #510395; color: #fff !important; }
.ltw-gr .ltw-gr-dialog__btn--upload:hover,
.ltw-gr-dialog__btn--upload:hover { background: #410674; }
.ltw-gr-dialog__btn--upload:has(input:focus-visible) { outline: 2px solid #510395; outline-offset: 2px; }

.ltw-gr-dialog__btn input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.ltw-gr-dialog__template small,
.ltw-gr-dialog__template .ltw-gr-dialog__error { grid-column: 1 / -1; }
.ltw-gr-dialog__template small { color: var(--gr-muted); font-size: 13px; line-height: 1.45; text-align: center; }

.ltw-gr .ltw-gr-dialog__error,
.ltw-gr-dialog__error {
	padding: 8px 12px;
	border-radius: 8px;
	background: #fbe9e8;
	color: #a1261d !important;
	font-size: 13.5px !important;
	font-weight: 600;
}

/* «o pega las filas» */
.ltw-gr .ltw-gr-dialog__or,
.ltw-gr-dialog__or {
	display: flex;
	align-items: center;
	gap: 12px;
	color: #9a92a5 !important;
	font-size: 12.5px !important;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.ltw-gr-dialog__or::before,
.ltw-gr-dialog__or::after { content: ""; flex: 1 1 auto; height: 1px; background: #efe5f9; }

@media (max-width: 600px) {
	.ltw-gr .ltw-gr-dialog__template,
	.ltw-gr-dialog__template { grid-template-columns: minmax(0, 1fr); }
}

/* Resumen */
.ltw-gr-summary {
	position: sticky;
	/* Bajo la cabecera del tema y el menú de anclas (los mide el JS) */
	top: calc(var(--gr-sticky-top, 0px) + var(--gr-nav-height, 52px) + 24px);
	display: grid;
	gap: 16px;
	padding: 22px 22px 20px;
	border: 1px solid #efe5f9;
	border-top: 4px solid var(--gr-gold);
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--gr-shadow);
}

.ltw-gr-summary h3 { margin: 0 !important; font-size: 30px !important; line-height: 1 !important; }

.ltw-gr-summary__empty { margin: 0 !important; color: var(--gr-muted); font-size: 14px; }

.ltw-gr-summary__list { display: grid; gap: 8px; margin: 0; }

.ltw-gr-summary__list > div { display: flex; justify-content: space-between; gap: 12px; }
.ltw-gr-summary__list dt { margin: 0; font-size: 14.5px; font-weight: 600; }
.ltw-gr-summary__list dt small { display: block; color: var(--gr-muted); font-size: 12.5px; font-weight: 500; }
.ltw-gr-summary__list dd { margin: 0; font-size: 14.5px; font-weight: 600; white-space: nowrap; }

.ltw-gr-summary__volume {
	margin: 0 !important;
	padding: 8px 12px;
	border-radius: 8px;
	background: #fff8e1;
	color: #7a5600;
	font-size: 13px;
	font-weight: 600;
}

.ltw-gr-summary__volume.is-on { background: #e3f4e4; color: var(--gr-ok); }

.ltw-gr-summary__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 0 !important;
	padding-top: 12px;
	border-top: 1px solid var(--gr-line);
	font-weight: 700;
}

.ltw-gr-summary__total small { color: var(--gr-muted); font-weight: 500; }
.ltw-gr-summary__account { margin: 10px 0 0 !important; padding: 9px 12px; border-radius: 10px; background: var(--gr-card); color: var(--gr-muted); font-size: 13px; line-height: 1.45; }

.ltw-gr-summary__total strong {
	color: var(--gr-brand);
	font-family: "Bebas Neue", sans-serif;
	font-size: 34px;
	font-weight: 400;
	line-height: 1;
}

.ltw-gr-summary__group { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; }
.ltw-gr-summary__group legend { margin-bottom: 6px; font-size: 14px; font-weight: 700; }

.ltw-gr-summary__tip {
	margin: -2px 0 4px !important;
	padding: 8px 10px;
	border-radius: 8px;
	background: #fffaf0;
	color: #6b4e00;
	font-size: 12.5px;
	line-height: 1.4;
}

.ltw-gr-summary__tip a { color: var(--gr-brand); font-weight: 700; }

.ltw-gr-field__help { color: var(--gr-muted); font-size: 12.5px; line-height: 1.35; }

.ltw-gr .ltw-gr-radio,
.ltw-gr .ltw-gr-check {
	display: grid !important;
	grid-template-columns: auto 1fr;
	gap: 8px;
	align-items: start;
	margin: 0 !important;
	font-size: 13.5px;
	line-height: 1.4;
	cursor: pointer;
}

.ltw-gr .ltw-gr-radio input,
.ltw-gr .ltw-gr-check input {
	width: 16px;
	height: 16px;
	margin: 2px 0 0 !important;
	accent-color: var(--gr-brand);
}

.ltw-gr-check a { color: var(--gr-brand); font-weight: 600; }

.ltw-gr-summary__note { display: grid; gap: 4px; margin: 0 !important; font-size: 14px; font-weight: 700; }

.ltw-gr-summary__errors {
	padding: 10px 14px;
	border-radius: 10px;
	background: #fbe9e8;
	color: var(--gr-error);
	font-size: 13.5px;
}

.ltw-gr-summary__errors ul { margin: 0; padding-left: 1.1em; }
.ltw-gr-summary__errors li { margin: 0 0 4px; }

.ltw-gr-summary__submit { width: 100%; min-height: 52px; }

.ltw-gr-summary__hint { margin: -6px 0 0 !important; color: var(--gr-muted); font-size: 12.5px; text-align: center; }

@media (max-width: 1100px) {
	.ltw-gr-summary { position: static; }
}

/* Pegar desde Excel */
.ltw-gr-dialog {
	width: min(720px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	padding: 0;
	border: 0;
	border-radius: 18px;
	box-shadow: 0 30px 80px rgba(27, 6, 45, .35);
}

.ltw-gr-dialog::backdrop { background: rgba(27, 6, 45, .55); }

.ltw-gr-dialog__form { display: grid; gap: 18px; padding: 30px 32px 26px; }
.ltw-gr-dialog h3 { margin: 0 !important; font-family: "Bebas Neue", sans-serif; font-size: 32px; font-weight: 400; line-height: 1; }
.ltw-gr-dialog p { margin: 0 !important; color: var(--gr-muted, #6d6578); font-size: 14.5px; line-height: 1.5; }

/* Las columnas, numeradas y en el orden del Excel */
.ltw-gr .ltw-gr-dialog__cols,
.ltw-gr-dialog__cols {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: -4px 0 0 !important;
	padding: 0 !important;
	list-style: none;
	counter-reset: ltw-col;
}

.ltw-gr-dialog__cols li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 !important;
	padding: 5px 12px 5px 6px;
	border-radius: 999px;
	background: #f8f1fe;
	color: #510395;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	counter-increment: ltw-col;
}

.ltw-gr-dialog__cols li::before {
	content: counter(ltw-col);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #510395;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
}

.ltw-gr-dialog textarea {
	width: 100%;
	min-height: 170px;
	padding: 14px 16px;
	border: 1px solid #e1e1e1;
	border-radius: 12px;
	font-family: ui-monospace, monospace;
	font-size: 13px;
	line-height: 1.6;
	box-sizing: border-box;
	resize: vertical;
}

.ltw-gr-dialog textarea:focus { border-color: #510395; outline: 0; box-shadow: 0 0 0 3px rgba(81, 3, 149, .12); }

.ltw-gr-dialog__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 2px;
	padding-top: 18px;
	border-top: 1px solid #efe5f9;
}

@media (max-width: 600px) {
	.ltw-gr-dialog__form { gap: 14px; padding: 22px 18px 18px; }
	.ltw-gr-dialog__actions > * { flex: 1 1 auto; }
}

/* Línea de tiempo de los 7 pasos (seguimiento, Mi cuenta) */
.ltw-gr-timeline {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ltw-gr-timeline li {
	position: relative;
	margin: 0;
	padding: 0 0 14px 30px;
	color: #9a92a5;
	font-size: 14px;
}

.ltw-gr-timeline li::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 4px;
	width: 12px;
	height: 12px;
	border: 2px solid #d8cde6;
	border-radius: 50%;
	background: #fff;
	box-sizing: border-box;
}

.ltw-gr-timeline li::after {
	content: "";
	position: absolute;
	top: 17px;
	bottom: 0;
	left: 9px;
	width: 2px;
	background: #e6ddf0;
}

.ltw-gr-timeline li:last-child { padding-bottom: 0; }
.ltw-gr-timeline li:last-child::after { display: none; }

.ltw-gr-timeline li.is-done { color: var(--gr-text); }
.ltw-gr-timeline li.is-done::before { border-color: var(--gr-brand); background: var(--gr-brand); }
.ltw-gr-timeline li.is-done::after { background: var(--gr-brand); }

.ltw-gr-timeline li.is-current { color: var(--gr-text); }
.ltw-gr-timeline li.is-current::before {
	top: 1px;
	left: 1px;
	width: 18px;
	height: 18px;
	border: 4px solid var(--gr-gold);
	background: var(--gr-brand);
}

.ltw-gr-timeline strong { font-weight: 700; }
.ltw-gr-timeline time { margin-left: 8px; color: var(--gr-muted); font-size: 12.5px; }
.ltw-gr-timeline p { margin: 2px 0 0 !important; color: var(--gr-muted); font-size: 13.5px; }

/* ------------------------------------------------------------------ */
/* Preguntas, condiciones y llamada final                               */
/* ------------------------------------------------------------------ */

@media (min-width: 1024px) {
	.ltw-gr__section--faq {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
		gap: 48px;
		align-items: start;
	}

	.ltw-gr__section--faq .ltw-gr__head { position: sticky; top: 24px; margin: 0; }
}

.ltw-gr__faq { display: grid; gap: 10px; }

.ltw-gr__faq details,
.ltw-gr__conditions details {
	border: 1px solid transparent;
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--gr-shadow);
	transition: border-color .2s;
}

.ltw-gr__faq details[open],
.ltw-gr__conditions details[open] { border-color: #dbb6fb; }

.ltw-gr__faq summary,
.ltw-gr__conditions summary {
	position: relative;
	padding: 18px 56px 18px 22px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	list-style: none;
	cursor: pointer;
}

.ltw-gr__faq summary::-webkit-details-marker,
.ltw-gr__conditions summary::-webkit-details-marker { display: none; }

.ltw-gr__faq summary::after,
.ltw-gr__conditions summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	width: 28px;
	height: 28px;
	margin-top: -14px;
	border-radius: 8px;
	background:
		var(--gr-soft)
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23510395' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E")
		center / 16px no-repeat;
	transition: transform .2s;
}

.ltw-gr__faq details[open] summary::after,
.ltw-gr__conditions details[open] summary::after { transform: rotate(45deg); }

.ltw-gr__answer { padding: 0 22px 20px; color: var(--gr-muted); font-size: 15.5px; line-height: 1.65; }
.ltw-gr__answer p { margin: 0 0 10px; }
.ltw-gr__answer p:last-child { margin-bottom: 0; }
.ltw-gr__answer ul { margin: 0; padding-left: 1.2em; }
.ltw-gr__answer li { margin: 0 0 8px; }
.ltw-gr__answer a { color: var(--gr-brand); font-weight: 600; }

.ltw-gr__final {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px 28px;
	padding: 32px 36px;
	border-bottom: 4px solid var(--gr-gold);
	border-radius: 20px;
	background:
		radial-gradient(50% 120% at 100% 0%, rgba(255, 255, 255, .14), transparent 70%),
		linear-gradient(135deg, #6a12c4 0%, var(--gr-brand) 50%, var(--gr-deep) 100%);
	box-shadow: 0 20px 50px rgba(81, 3, 149, .24);
	color: #fff;
}

.ltw-gr__final > div { flex: 1 1 280px; }
.ltw-gr__final h2 { margin: 0 0 4px !important; color: #fff; font-size: clamp(30px, 3.4vw, 40px) !important; line-height: 1 !important; }
.ltw-gr__final p { margin: 0 !important; color: rgba(255, 255, 255, .85); }

@media (max-width: 700px) {
	.ltw-gr__final { padding: 26px 22px; }
	.ltw-gr__final .ltw-gr__btn { flex: 1 1 100%; }
}

/* ------------------------------------------------------------------ */
/* Mi cuenta → Mis gradeos y bloque del pedido                          */
/* ------------------------------------------------------------------ */

.ltw-gr-account { display: grid; gap: 20px; }

.ltw-gr-account__intro {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	padding: 20px 24px;
	border: 1px solid #e4d6f2;
	border-radius: 12px;
	background: var(--gr-soft);
}

.ltw-gr-account__intro h2 { margin: 0 !important; font-size: 30px !important; line-height: 1 !important; }
.ltw-gr-account__intro p { margin: 4px 0 0 !important; color: var(--gr-muted); font-size: 14px; }

.ltw-gr-batch,
.ltw-gr-order {
	padding: 22px 24px 19px;
	border: 1px solid var(--gr-border);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 12px 12px rgba(13, 4, 22, .07);
}

.ltw-gr-batch__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px 16px;
	margin-bottom: 14px;
}

.ltw-gr-batch__head h3,
.ltw-gr-order h2 { margin: 0 !important; font-family: "Bebas Neue", sans-serif; font-size: 26px !important; font-weight: 400; line-height: 1 !important; }
.ltw-gr-batch__head a { color: var(--gr-brand); font-size: 14px; font-weight: 600; }

.ltw-gr-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }

.ltw-gr-list > li {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 4px 16px;
	align-items: center;
	margin: 0;
	padding: 12px 14px;
	border-radius: 10px;
	background: var(--gr-card);
}

.ltw-gr-list__code {
	color: var(--gr-brand);
	font-family: "Bebas Neue", sans-serif;
	font-size: 22px;
	letter-spacing: .04em;
	line-height: 1;
}

.ltw-gr-list__name { min-width: 0; font-weight: 600; }
.ltw-gr-list__name small { display: block; color: var(--gr-muted); font-size: 13px; font-weight: 500; }

.ltw-gr-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 999px;
	background: #fff;
	color: var(--gr-brand);
	font-size: 12.5px;
	font-weight: 700;
	white-space: nowrap;
}

.ltw-gr-status.is-done { background: #e3f4e4; color: var(--gr-ok); }
.ltw-gr-status.is-cancelled { background: #f1eef5; color: #6d6578; }

.ltw-gr-progress {
	grid-column: 2 / -1;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 4px;
}

.ltw-gr-progress span { height: 5px; border-radius: 3px; background: #e6ddf0; }
.ltw-gr-progress span.is-done { background: var(--gr-brand); }
.ltw-gr-progress span.is-current { background: var(--gr-gold); }

.ltw-gr-list__grade { grid-column: 2 / -1; margin: 0 !important; font-size: 14px; }
.ltw-gr-list__grade strong { color: var(--gr-brand); }

.ltw-gr-order { display: grid; gap: 14px; margin: 0 0 24px; }
.ltw-gr-order p { margin: 0 !important; color: var(--gr-muted); font-size: 15px; line-height: 1.55; }
.ltw-gr-order address {
	padding: 12px 16px;
	border-left: 4px solid var(--gr-gold);
	border-radius: 10px;
	background: #fffaf0;
	color: var(--gr-text);
	font-style: normal;
	font-weight: 600;
}

@media (max-width: 600px) {
	.ltw-gr-list > li { grid-template-columns: auto minmax(0, 1fr); }
	.ltw-gr-list > li .ltw-gr-status { grid-column: 2; justify-self: start; }
	.ltw-gr-progress,
	.ltw-gr-list__grade { grid-column: 1 / -1; }
}

/* ------------------------------------------------------------------ */
/* Asistente del envío: pasos, opciones, preparación y revisión         */
/* ------------------------------------------------------------------ */

.ltw-gr-builder { display: grid; gap: 20px; }

.ltw-gr-builder__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 32px;
	align-items: start;
}

@media (max-width: 1100px) {
	.ltw-gr-builder__body { grid-template-columns: 1fr; }
}

.ltw-gr-stepper {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.ltw-gr-stepper li { margin: 0; }

.ltw-gr-stepper button {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--gr-border);
	border-radius: 12px;
	background: #fff;
	color: var(--gr-muted);
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	text-align: left;
	cursor: pointer;
	transition: border-color .2s, color .2s, background-color .2s;
}

.ltw-gr-stepper button span {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--gr-soft);
	color: var(--gr-brand);
	font-family: "Bebas Neue", sans-serif;
	font-size: 19px;
	font-weight: 400;
}

.ltw-gr-stepper button[aria-current="step"] {
	border-color: var(--gr-brand);
	color: var(--gr-text);
	box-shadow: inset 0 -3px 0 var(--gr-gold);
}

.ltw-gr-stepper button[aria-current="step"] span { background: var(--gr-brand); color: #fff; }
.ltw-gr-stepper button.is-done { color: var(--gr-text); }
.ltw-gr-stepper button.is-done span { background: #e3f4e4; color: var(--gr-ok); }
.ltw-gr-stepper button:hover { border-color: #c9a6ef; }

@media (max-width: 600px) {
	.ltw-gr-stepper button { flex-direction: column; gap: 4px; padding: 10px 6px; font-size: 12.5px; text-align: center; }
}

.ltw-gr-step { display: grid; gap: 16px; }

.ltw-gr-step__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 12px 20px;
	padding-top: 4px;
}

.ltw-gr-step__nav .ltw-gr-link,
.ltw-gr-step__nav .button-text { margin-right: auto; }
.ltw-gr-step__nav .ltw-gr__btn { min-height: 52px; padding: 6px 28px; }

.ltw-gr-step__errors {
	padding: 12px 16px;
	border-radius: 10px;
	background: #fbe9e8;
	color: var(--gr-error);
	font-size: 14px;
}

.ltw-gr-step__errors ul { margin: 0; padding-left: 1.1em; }
.ltw-gr-step__errors li { margin: 0 0 4px; }

/* Desplegable de los servicios adicionales en el paso 1 */
.ltw-gr-info {
	border: 1px solid #efe5f9;
	border-radius: 12px;
	background: var(--gr-card);
}

.ltw-gr-info summary {
	padding: 14px 18px;
	color: var(--gr-brand);
	font-size: 14.5px;
	font-weight: 700;
	cursor: pointer;
}

.ltw-gr-info > p { margin: 0 18px 4px !important; color: var(--gr-muted); font-size: 14px; }
.ltw-gr-info .ltw-gr__extras { padding: 0 18px 14px; }

/* Opciones de entrega y devolución en tarjetas */
.ltw-gr-options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 10px;
	margin: 0;
	padding: 0;
	border: 0;
}

.ltw-gr-options legend {
	grid-column: 1 / -1;
	margin-bottom: 10px;
	font-family: "Bebas Neue", sans-serif;
	font-size: 26px;
	line-height: 1;
}

.ltw-gr .ltw-gr-option {
	position: relative;
	display: grid !important;
	grid-template-columns: auto 1fr;
	gap: 12px;
	align-items: start;
	margin: 0 !important;
	padding: 14px 16px;
	border: 1px solid var(--gr-border);
	border-radius: 12px;
	background: #fff;
	font-size: 14px;
	line-height: 1.45;
	cursor: pointer;
	transition: border-color .2s, box-shadow .2s;
}

.ltw-gr-option input { position: absolute; opacity: 0; pointer-events: none; }

.ltw-gr-option__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--gr-soft);
	color: var(--gr-brand);
}

.ltw-gr-option__icon svg { width: 22px; height: 22px; }

.ltw-gr-option:hover { border-color: #c9a6ef; }
.ltw-gr-option:has(input:checked) { border-color: var(--gr-brand); box-shadow: inset 0 0 0 1px var(--gr-brand); }
.ltw-gr-option:has(input:checked) .ltw-gr-option__icon { background: var(--gr-brand); color: #fff; }
.ltw-gr-option:has(input:focus-visible) { outline: 2px solid var(--gr-brand); outline-offset: 2px; }

/* Cómo preparar las cartas, dentro del paso 2: lista compacta */
.ltw-gr-prepare {
	display: grid;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid #efe5f9;
	border-radius: 12px;
	background: #fff;
}

.ltw-gr-prepare__title { margin: 0 !important; color: var(--gr-text); font-size: 14px; font-weight: 700; }

.ltw-gr-prepare__steps {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ltw-gr-prepare__steps li {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 10px 12px;
	border-radius: 10px;
	background: var(--gr-card);
}

/* Flecha entre pasos */
.ltw-gr-prepare__steps li + li::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -16px;
	width: 8px;
	height: 8px;
	border-top: 2px solid #c9a6ef;
	border-right: 2px solid #c9a6ef;
	transform: translateY(-50%) rotate(45deg);
}

.ltw-gr-prepare__steps svg { flex: 0 0 auto; color: var(--gr-brand); }
.ltw-gr-prepare__steps span { display: grid; min-width: 0; line-height: 1.2; }
.ltw-gr-prepare__steps strong { font-size: 13.5px; }
.ltw-gr-prepare__steps small { color: var(--gr-muted); font-size: 12px; }

.ltw-gr-prepare__notes {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ltw-gr-prepare__notes li {
	position: relative;
	margin: 0;
	padding-left: 22px;
	color: var(--gr-muted);
	font-size: 13px;
	line-height: 1.4;
}

.ltw-gr-prepare__notes li::before {
	position: absolute;
	top: 0;
	left: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	font-size: 10px;
	font-weight: 800;
	line-height: 1;
}

.ltw-gr-prepare__notes li.is-no::before { content: "✕"; background: #fbe9e8; color: var(--gr-error); }
.ltw-gr-prepare__notes li.is-tip::before { content: "↺"; background: var(--gr-soft); color: var(--gr-brand); }
.ltw-gr-prepare__notes li.is-post::before { content: "!"; background: #fff4d6; color: #7a5600; }
.ltw-gr-prepare__notes li[hidden] { display: none; }

@media (max-width: 760px) {
	.ltw-gr-prepare__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.ltw-gr-prepare__steps li + li::before { display: none; }
}

/* Revisión */
.ltw-gr-review {
	display: grid;
	gap: 14px;
	padding: 18px 20px;
	border: 1px solid var(--gr-border);
	border-radius: 12px;
	background: #fff;
}

.ltw-gr-review h3 { margin: 0 !important; font-size: 24px !important; line-height: 1 !important; }

.ltw-gr-review__cards { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }

.ltw-gr-review__cards li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 6px 14px;
	align-items: center;
	margin: 0;
	padding: 10px 0;
	border-top: 1px solid var(--gr-line);
}

.ltw-gr-review__cards strong { display: block; font-size: 14.5px; }
.ltw-gr-review__cards small { color: var(--gr-muted); font-size: 12.5px; }
.ltw-gr-review__cards b { color: var(--gr-brand); font-family: "Bebas Neue", sans-serif; font-size: 20px; font-weight: 400; }

.ltw-gr-review__tags { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }

.ltw-gr-review__tags em {
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--gr-soft);
	color: var(--gr-brand);
	font-size: 11.5px;
	font-style: normal;
	font-weight: 700;
}

.ltw-gr-review__shipping { display: grid; gap: 8px; margin: 0; padding-top: 12px; border-top: 1px solid var(--gr-line); }
.ltw-gr-review__shipping div { display: grid; grid-template-columns: 140px 1fr; gap: 12px; }
.ltw-gr-review__shipping dt { color: var(--gr-muted); font-size: 13.5px; font-weight: 600; }
.ltw-gr-review__shipping dd { margin: 0; font-size: 14px; }

@media (max-width: 600px) {
	.ltw-gr-review__cards li { grid-template-columns: minmax(0, 1fr) auto; }
	.ltw-gr-review__tags { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; }
	.ltw-gr-review__shipping div { grid-template-columns: 1fr; gap: 2px; }
}

/* ------------------------------------------------------------------ */
/* Asistente: panel blanco con los pasos como barra de progreso         */
/* ------------------------------------------------------------------ */

.ltw-gr-builder__main {
	gap: 20px;
	padding: 8px 26px 24px;
	border: 1px solid var(--gr-border);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 12px 12px rgba(13, 4, 22, .07);
}

.ltw-gr-builder__main .ltw-gr-stepper {
	display: flex;
	gap: 0;
	margin: 0 -26px;
	padding: 0 14px;
	border-bottom: 1px solid var(--gr-line);
}

.ltw-gr-builder__main .ltw-gr-stepper li { flex: 1 1 0; }

.ltw-gr-builder__main .ltw-gr-stepper button {
	justify-content: center;
	padding: 16px 8px 14px;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: inset 0 -3px 0 transparent;
}

.ltw-gr-builder__main .ltw-gr-stepper button:hover { border: 0; color: var(--gr-brand); }

.ltw-gr-builder__main .ltw-gr-stepper button[aria-current="step"] {
	border: 0;
	color: var(--gr-brand);
	box-shadow: inset 0 -3px 0 var(--gr-gold);
}

/* Las cartas, en lila muy claro dentro del panel blanco */
.ltw-gr-builder__main .ltw-gr-card {
	padding: 14px 16px 12px;
	border-color: #efe5f9;
	background: var(--gr-card);
	box-shadow: none;
}

.ltw-gr-builder__main .ltw-gr-card:focus-within { border-color: #c9a6ef; background: #fff; }

.ltw-gr-card__row { background: #fff; border: 1px solid #efe5f9; }

.ltw-gr-field input,
.ltw-gr-field select,
.ltw-gr-field textarea {
	min-height: 44px;
	padding: 8px 12px;
	background-color: #fff;
}

/* El tema fija la altura de los campos (54 px): aquí van más compactos */
.ltw-gr .ltw-gr-field input,
.ltw-gr .ltw-gr-field select { height: 44px !important; min-height: 44px !important; padding: 8px 12px !important; }
.ltw-gr .ltw-gr-field select { padding-right: 32px !important; }

.ltw-gr .ltw-gr-field input::placeholder,
.ltw-gr .ltw-gr-field textarea::placeholder { color: #b3abbd; font-style: italic; }

.ltw-gr-field textarea { min-height: 0; }

.ltw-gr-builder__tools { gap: 10px; }
.ltw-gr-builder__tools .button-secondary { gap: 8px; }
.ltw-gr-builder__tools svg { width: 18px; height: 18px; }

.ltw-gr-step__nav {
	margin: 4px -26px -24px;
	padding: 16px 26px;
	border-top: 1px solid var(--gr-line);
	border-radius: 0 0 16px 16px;
	background: #fcfaff;
}

.ltw-gr-step__nav .button-primary { min-width: 220px; }

.ltw-gr-info { background: #fff; }

.ltw-gr-builder__main .ltw-gr-prepare { border-color: #efe5f9; }
.ltw-gr-builder__main .ltw-gr-review { border-color: #efe5f9; background: var(--gr-card); }

.ltw-gr-summary { border-top: 1px solid #efe5f9; }
.ltw-gr-summary h3 { font-size: 28px !important; }

@media (max-width: 600px) {
	.ltw-gr-builder__main { padding: 4px 14px 18px; }
	.ltw-gr-builder__main .ltw-gr-stepper { margin: 0 -14px; padding: 0; }
	.ltw-gr-step__nav { margin: 4px -14px -18px; padding: 14px; }
	.ltw-gr-step__nav .button-primary { flex: 1 1 100%; min-width: 0; }
	.ltw-gr-step__nav .button-text { order: 2; margin: 0 auto; }
}

/* ------------------------------------------------------------------ */
/* Seguro: destacado en cada carta y ofrecido en el resumen             */
/* ------------------------------------------------------------------ */

.ltw-gr .ltw-gr-insure {
	position: relative;
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr) auto auto;
	gap: 12px;
	align-items: center;
	margin: 0 !important;
	padding: 12px 14px;
	border: 1px dashed #c6dcc8;
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
	transition: border-color .2s, background-color .2s;
}

.ltw-gr-insure input { position: absolute; opacity: 0; pointer-events: none; }

.ltw-gr-insure__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 2px solid #c6dcc8;
	border-radius: 10px;
	color: #6f9a74;
	transition: background-color .2s, color .2s, border-color .2s;
}

.ltw-gr-insure__text { display: grid; gap: 2px; min-width: 0; }
.ltw-gr-insure__text strong { font-size: 14.5px; }
.ltw-gr-insure__text small { color: var(--gr-muted); font-size: 12.5px; line-height: 1.35; }

.ltw-gr-insure__badge {
	padding: 3px 9px;
	border-radius: 999px;
	background: var(--gr-gold);
	color: #3d2a00;
	font-size: 11.5px;
	font-style: normal;
	font-weight: 700;
	white-space: nowrap;
}

.ltw-gr-insure__price { color: var(--gr-ok); font-size: 15px; white-space: nowrap; }

.ltw-gr-insure:hover { border-color: #8fbf95; }
.ltw-gr-insure:has(input:focus-visible) { outline: 2px solid var(--gr-ok); outline-offset: 2px; }

.ltw-gr .ltw-gr-insure.is-on { border: 1px solid #8fbf95; background: #f1f9f2; }
.ltw-gr-insure.is-on .ltw-gr-insure__icon { border-color: var(--gr-ok); background: var(--gr-ok); color: #fff; }

@media (max-width: 600px) {
	.ltw-gr .ltw-gr-insure { grid-template-columns: auto minmax(0, 1fr) auto; }
	.ltw-gr-insure__badge { grid-column: 2; grid-row: 2; justify-self: start; }
	.ltw-gr-insure__price { grid-column: 3; grid-row: 1; }
}

/* Oferta «Asegurar todas» */
.ltw-gr-offer {
	display: grid;
	gap: 8px;
	padding: 14px 16px;
	border: 1px solid #c6dcc8;
	border-radius: 12px;
	background: #f1f9f2;
}

.ltw-gr-offer p { margin: 0 !important; }

.ltw-gr-offer__title {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #1f4f26;
	font-size: 15px;
}

.ltw-gr-offer__title svg { flex: 0 0 auto; color: var(--gr-ok); }
.ltw-gr-offer__text { color: #3f5f43; font-size: 13.5px; line-height: 1.45; }

.ltw-gr .ltw-gr-offer__button {
	justify-self: start;
	border-color: var(--gr-ok) !important;
	background: var(--gr-ok) !important;
	color: #fff !important;
}

.ltw-gr .ltw-gr-offer__button:hover { border-color: #17521f !important; background: #17521f !important; }
.ltw-gr-offer.is-compact .ltw-gr-offer__button { justify-self: stretch; }

.ltw-gr-offer.is-done {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	color: var(--gr-ok);
	font-size: 13.5px;
	font-weight: 700;
}

/* ------------------------------------------------------------------ */
/* Resumen: líneas en gris oscuro, el morado sólo para el total         */
/* ------------------------------------------------------------------ */

.ltw-gr-summary__lines { display: grid; gap: 14px; }

.ltw-gr-sum { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }

.ltw-gr-sum li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	padding: 9px 0;
	border-bottom: 1px solid var(--gr-line);
	font-size: 14.5px;
}

.ltw-gr-sum li:first-child { padding-top: 0; }

.ltw-gr-sum li > span { display: grid; gap: 1px; color: var(--gr-text); font-weight: 600; }
.ltw-gr-sum li small { color: var(--gr-muted); font-size: 12.5px; font-weight: 500; }
.ltw-gr-sum li b { color: var(--gr-text); font-weight: 600; white-space: nowrap; }

.ltw-gr-sum li.is-insurance > span { grid-template-columns: auto 1fr; column-gap: 6px; }
.ltw-gr-sum li.is-insurance svg { grid-row: span 2; width: 16px; height: 16px; margin-top: 2px; color: var(--gr-ok); }
.ltw-gr-sum li.is-insurance b { color: var(--gr-ok); }
.ltw-gr-sum li.is-reward b { color: #8a5a00; }
.ltw-gr-sum li.is-reward > span { grid-template-columns: auto 1fr; column-gap: 6px; }
.ltw-gr-sum li.is-reward > span::before { content: ""; grid-row: span 2; width: 14px; height: 14px; margin-top: 3px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #ffe27a, #f7c62f 60%, #c99400); }

.ltw-gr-volume { display: grid; gap: 6px; }
.ltw-gr-volume p { margin: 0 !important; color: var(--gr-muted); font-size: 12.5px; font-weight: 600; }

.ltw-gr-volume__bar {
	display: block;
	height: 6px;
	overflow: hidden;
	border-radius: 3px;
	background: #efe7f7;
}

.ltw-gr-volume__bar i { display: block; height: 100%; border-radius: 3px; background: var(--gr-gold); }
.ltw-gr-volume.is-on p { color: var(--gr-ok); }
.ltw-gr-volume.is-on .ltw-gr-volume__bar i { background: var(--gr-ok); }

.ltw-gr-builder__body .ltw-gr-summary__total { padding-top: 0; border-top: 0; }

/* ------------------------------------------------------------------ */
/* Revisión: neutra; verde para el seguro, morado sólo en enlaces        */
/* ------------------------------------------------------------------ */

.ltw-gr-builder__main .ltw-gr-review { background: #fff; }

.ltw-gr-review__tags em {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: #f1eef5;
	color: #4a4256;
}

.ltw-gr-review__tags em svg { width: 13px; height: 13px; }
.ltw-gr-review__tags em.is-insured { background: #e3f4e4; color: var(--gr-ok); }
.ltw-gr-review__tags em.is-uninsured { border: 1px dashed #d8cbe6; background: none; color: #9a92a5; }

.ltw-gr-review__cards b {
	color: var(--gr-text);
	font-family: Inter, sans-serif;
	font-size: 15px;
	font-weight: 600;
}

/* Ilustración de la cabecera: slabs en abanico y el sello oficial de CGC,
 * sueltos sobre el fondo de la página (sin caja), con un brillo detrás */
.ltw-gr .ltw-gr__intro-art {
	flex-direction: column;
	gap: 4px;
	min-height: 0;
	padding: 0;
	border: 0;
	background: radial-gradient(50% 46% at 50% 46%, rgba(222, 196, 250, .65) 0%, rgba(222, 196, 250, 0) 100%);
	box-shadow: none;
}
.ltw-gr__slabs { display: block; width: 100%; max-width: 470px; height: auto; }

/* Compañías bajo la ilustración, con su logotipo: la activa a color, las
 * próximas en gris con «Próximamente» debajo */
.ltw-gr__logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 0;
	margin: -6px 0 0;
	padding: 0;
	list-style: none;
}

.ltw-gr__logos li {
	display: grid;
	justify-items: center;
	gap: 5px;
	margin: 0;
	padding: 0 22px;
	border-left: 1px solid var(--gr-line);
}

.ltw-gr__logos li:first-child { border-left: 0; }
.ltw-gr__logos img { display: block; width: auto; height: 26px; }
.ltw-gr__logos li.is-active img { height: 46px; }
.ltw-gr__logos li:not(.is-active) img { filter: grayscale(1); opacity: .45; }
.ltw-gr__logos strong { color: var(--gr-muted); font-family: "Bebas Neue", sans-serif; font-size: 24px; font-weight: 400; line-height: 1; }
.ltw-gr__logos li.is-active strong { color: var(--gr-brand); }

.ltw-gr__logos small {
	color: #9a92a5;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1;
	text-transform: uppercase;
}

@media (max-width: 600px) {
	.ltw-gr .ltw-gr__intro-art { padding: 0; }
	.ltw-gr__logos { flex-wrap: nowrap; }
	.ltw-gr__logos li { padding: 0 12px; }
	.ltw-gr__logos li.is-active img { height: 34px; }
	.ltw-gr__logos img { height: 18px; }
	.ltw-gr__logos small { font-size: 9px; letter-spacing: .06em; }
}

/* ------------------------------------------------------------------ */
/* ¿Cómo va mi gradeo? (el seguimiento está en Mi cuenta)              */
/* ------------------------------------------------------------------ */

.ltw-gr-follow {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	gap: 32px;
	align-items: center;
	padding: 26px 30px;
	border: 1px solid var(--gr-border);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 12px 12px rgba(13, 4, 22, .07);
}

.ltw-gr-follow__list { display: grid; gap: 14px; margin: 0 0 20px !important; padding: 0 !important; list-style: none; }
.ltw-gr-follow__list li { display: flex; gap: 12px; align-items: flex-start; margin: 0 !important; color: var(--gr-muted); font-size: 14.5px; line-height: 1.45; }
.ltw-gr-follow__list li strong { display: block; color: var(--gr-text); font-size: 15px; }
.ltw-gr-follow__list svg { flex: 0 0 auto; width: 22px; height: 22px; margin-top: 1px; fill: none; stroke: var(--gr-brand); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ltw-gr-follow__note { margin: 12px 0 0 !important; color: var(--gr-muted); font-size: 13px; }

.ltw-gr-follow__demo { padding: 20px 22px 22px; border-radius: 14px; background: var(--gr-card); }
.ltw-gr-follow__demo-head { margin: 0 0 18px !important; color: var(--gr-text); font-size: 14px; font-weight: 700; }
.ltw-gr-follow__demo-head span { margin-right: 6px; padding: 2px 8px; border-radius: 999px; background: #fff; color: var(--gr-muted); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

@media (max-width: 900px) {
	.ltw-gr-follow { grid-template-columns: 1fr; gap: 22px; padding: 20px 18px; }
}

/* Las fases en horizontal */
.ltw-gr-hsteps {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ltw-gr-hsteps li {
	position: relative;
	display: grid;
	justify-items: center;
	align-content: start;
	gap: 6px;
	margin: 0;
	padding: 0 4px;
	text-align: center;
}

/* Línea que une cada paso con el anterior */
.ltw-gr-hsteps li + li::before {
	content: "";
	position: absolute;
	top: 15px;
	right: calc(50% + 18px);
	left: calc(-50% + 18px);
	height: 3px;
	border-radius: 2px;
	background: #ebe3f4;
}

.ltw-gr-hsteps span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 2px solid #e4d6f2;
	border-radius: 50%;
	background: #fff;
	color: #9a92a5;
	font-family: "Bebas Neue", sans-serif;
	font-size: 18px;
	line-height: 1;
}

.ltw-gr-hsteps strong { color: #9a92a5; font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.ltw-gr-hsteps time { color: var(--gr-muted); font-size: 11.5px; }

.ltw-gr-hsteps li.is-done span { border-color: var(--gr-ok); background: var(--gr-ok); color: #fff; font-family: Inter, sans-serif; font-size: 15px; font-weight: 700; }
.ltw-gr-hsteps li.is-done strong { color: var(--gr-text); }
.ltw-gr-hsteps li.is-done + li::before,
.ltw-gr-hsteps li.is-done + li.is-current::before { background: var(--gr-ok); }

.ltw-gr-hsteps li.is-current span { border-color: var(--gr-brand); background: var(--gr-brand); color: #fff; box-shadow: 0 0 0 5px #efe3fb; }
.ltw-gr-hsteps li.is-current strong { color: var(--gr-brand); font-weight: 700; }

.ltw-gr-hsteps.is-preview span { color: var(--gr-brand); background: var(--gr-card); }
.ltw-gr-hsteps.is-preview strong { color: var(--gr-muted); }


@media (max-width: 760px) {

	/* En móvil los pasos van en vertical */
	.ltw-gr-hsteps { grid-template-columns: 1fr; gap: 10px; }
	.ltw-gr-hsteps li { grid-template-columns: 32px 1fr auto; justify-items: start; align-items: center; gap: 12px; padding: 0; text-align: left; }
	.ltw-gr-hsteps li + li::before { top: -10px; right: auto; left: 15px; width: 3px; height: 10px; }
	.ltw-gr-hsteps.is-preview li:nth-child(n+4) { display: none; }
}

/* ------------------------------------------------------------------ */
/* Paso 2: ida y vuelta                                                */
/* ------------------------------------------------------------------ */

.ltw-gr-leg { display: grid; gap: 12px; }

.ltw-gr-leg + .ltw-gr-leg { padding-top: 18px; border-top: 1px solid var(--gr-line); }

.ltw-gr-leg__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }

.ltw-gr-leg__head h3 {
	margin: 0 !important;
	font-family: Inter, sans-serif !important;
	font-size: 17px !important;
	font-weight: 700;
	letter-spacing: 0 !important;
	line-height: 1.3 !important;
}

.ltw-gr-leg__badge {
	padding: 3px 10px;
	border-radius: 6px;
	background: #fff4d6;
	color: #7a5600;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ltw-gr-leg__badge.is-back { background: #e3f4e4; color: var(--gr-ok); }
.ltw-gr-leg__path { margin-left: auto; color: var(--gr-muted); font-size: 13px; font-weight: 600; }

/* Las opciones: tarjeta neutra, la elegida con borde morado y su círculo */
.ltw-gr .ltw-gr-options { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }

.ltw-gr .ltw-gr-option {
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	padding: 14px 14px 14px 12px;
	border: 1px solid var(--gr-border);
	background: #fff;
}

.ltw-gr .ltw-gr-option .ltw-gr-option__icon {
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: #f4f2f7;
	color: #6d6578;
}

.ltw-gr-option__text { display: grid; gap: 2px; min-width: 0; }
.ltw-gr-option__text strong { color: var(--gr-text); font-size: 14.5px; line-height: 1.3; }
.ltw-gr-option__text small { color: var(--gr-muted); font-size: 12.5px; line-height: 1.4; }

.ltw-gr-option__check {
	align-self: start;
	width: 20px;
	height: 20px;
	border: 2px solid #cfc7d9;
	border-radius: 50%;
	background: #fff;
	transition: border-color .2s, box-shadow .2s;
}

.ltw-gr-option__tag {
	display: inline-block;
	margin-left: 4px;
	padding: 1px 7px;
	border-radius: 999px;
	background: #e3f4e4;
	color: var(--gr-ok);
	font-size: 10.5px;
	font-style: normal;
	font-weight: 800;
	letter-spacing: .04em;
	line-height: 1.5;
	text-transform: uppercase;
	vertical-align: 2px;
}

.ltw-gr .ltw-gr-option:has(input:checked) {
	border-color: var(--gr-brand);
	background: #fcf9ff;
	box-shadow: 0 0 0 1px var(--gr-brand);
}

.ltw-gr .ltw-gr-option:has(input:checked) .ltw-gr-option__icon { background: #efe3fb; color: var(--gr-brand); }
.ltw-gr-option:has(input:checked) .ltw-gr-option__check { border-color: var(--gr-brand); box-shadow: inset 0 0 0 4px #fff; background: var(--gr-brand); }
