/* ============================================================
   TRIWOLF Registro · flujo de contratación con el diseño de la landing v3
   (tokens, tipografías, cabecera, botones y pie de landing-triwolf-v3.html).
   ============================================================ */
:root {
	--tw-ink: #0E1110;
	--tw-ink-2: #131715;
	--tw-ink-3: #181D19;
	--tw-line: #4B5E45;
	--tw-line-dim: rgba(75, 94, 69, .34);
	--tw-line-soft: rgba(75, 94, 69, .18);
	--tw-moss: #7E9A6F;
	--tw-sand: #c6ad96;
	--tw-amber: #F59E0B;
	--tw-bone: #E8E5DE;
	--tw-bone-70: rgba(232, 229, 222, .70);
	--tw-bone-45: rgba(232, 229, 222, .45);
	--tw-red-hi: #E5543F;
	--tw-display: 'Saira Condensed', Impact, sans-serif;
	--tw-mono: 'JetBrains Mono', ui-monospace, monospace;
	--tw-body: 'Montserrat', sans-serif;
	--tw-gut: clamp(16px, 5vw, 72px);
}

/* ---------- base de las páginas del flujo ---------- */
/* Lo que recibe el foco (o un scroll a un campo) no queda debajo de la cabecera fija. */
html:has(body.tw-flow) { scroll-padding-top: 96px; }
body.tw-flow {
	margin: 0;
	background: var(--tw-ink);
	color: var(--tw-bone);
	font-family: var(--tw-body);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
body.tw-flow *,
body.tw-flow *::before,
body.tw-flow *::after { box-sizing: border-box; }
body.tw-flow ::selection { background: var(--tw-amber); color: var(--tw-ink); }
body.tw-flow a { color: var(--tw-amber); }
body.tw-flow a:hover { color: var(--tw-bone); }
body.tw-flow :focus-visible { outline: 2px solid var(--tw-amber); outline-offset: 2px; }

.tw-bg {
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 80% 55% at 85% -10%, rgba(75, 94, 69, .28), transparent 70%),
		linear-gradient(90deg, transparent calc(50% - .5px), var(--tw-line-soft) calc(50% - .5px), var(--tw-line-soft) calc(50% + .5px), transparent calc(50% + .5px));
}
.tw-wrap { width: min(1160px, 100% - var(--tw-gut) * 2); margin-inline: auto; position: relative; z-index: 2; }
.tw-mono { font-family: var(--tw-mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--tw-moss); margin: 0; font-weight: 400; }
.tw-h1 { font-family: var(--tw-display); font-weight: 800; text-transform: uppercase; font-size: clamp(40px, 6vw, 72px); line-height: .92; letter-spacing: .01em; margin: 10px 0 0; color: var(--tw-bone); }
.tw-h2 { font-family: var(--tw-display); font-weight: 800; text-transform: uppercase; font-size: clamp(26px, 3vw, 34px); line-height: 1; letter-spacing: .02em; margin: 0; color: var(--tw-bone); }
.tw-main > p:empty { display: none; }

/* ---------- cabecera (nav de la landing) ---------- */
.tw-nav {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(14, 17, 16, .82);
	backdrop-filter: blur(14px) saturate(120%);
	-webkit-backdrop-filter: blur(14px) saturate(120%);
	border-bottom: 1px solid var(--tw-line-dim);
}
.tw-nav-in { display: flex; align-items: center; gap: 24px; height: 68px; }
.tw-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--tw-bone) !important; }
.tw-emblem {
	display: block;
	width: 30px;
	height: 32px;
	background-color: var(--tw-bone);
	-webkit-mask: url(../img/emblem.png) center / contain no-repeat;
	mask: url(../img/emblem.png) center / contain no-repeat;
	transition: background-color .35s;
}
.tw-brand:hover .tw-emblem { background-color: var(--tw-amber); }
.tw-brand b { display: block; font-family: var(--tw-display); font-weight: 800; font-size: 21px; letter-spacing: .14em; line-height: 1; }
.tw-brand small { display: block; font-family: var(--tw-mono); font-size: 8px; letter-spacing: .26em; color: var(--tw-moss); margin-top: 3px; text-transform: uppercase; }
.tw-nav-cta {
	margin-left: auto;
	font-family: var(--tw-mono);
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tw-ink) !important;
	background: var(--tw-sand);
	text-decoration: none;
	padding: 10px 18px;
	border: 1px solid var(--tw-sand);
	transition: background .3s, color .3s;
}
.tw-nav-cta:hover { background: transparent; color: var(--tw-sand) !important; }
body.admin-bar .tw-nav { top: 32px; }

.tw-main { padding: clamp(28px, 4vw, 48px) 0 clamp(56px, 7vw, 96px); min-height: 60vh; }

/* ---------- pasos: 1 Plan · 2 Tus datos · 3 Pago ---------- */
.tw-steps { list-style: none; display: flex; margin: 0 0 clamp(24px, 3vw, 36px); padding: 0; border: 1px solid var(--tw-line-dim); background: var(--tw-ink); }
.tw-steps li {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	border-right: 1px solid var(--tw-line-dim);
	font-family: var(--tw-mono);
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tw-bone-45);
	margin: 0;
}
.tw-steps li:last-child { border-right: 0; }
.tw-steps-n {
	flex: 0 0 26px;
	height: 26px;
	display: grid;
	place-items: center;
	border: 1px solid var(--tw-line);
	font-size: 11px;
	letter-spacing: 0;
}
.tw-steps li.is-current { color: var(--tw-bone); background: rgba(245, 158, 11, .07); box-shadow: inset 0 -2px 0 var(--tw-amber); }
.tw-steps li.is-current .tw-steps-n { background: var(--tw-amber); border-color: var(--tw-amber); color: var(--tw-ink); }
.tw-steps li.is-done { color: var(--tw-bone-70); }
.tw-steps li.is-done .tw-steps-n { border-color: var(--tw-moss); color: var(--tw-moss); }

/* ---------- botones ---------- */
.tw-btn,
body.tw-flow .tw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	font-family: var(--tw-mono);
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 17px 22px;
	border: 1px solid var(--tw-amber);
	background: var(--tw-amber);
	color: var(--tw-ink);
	cursor: pointer;
	border-radius: 0;
	transition: background .3s, color .3s;
}
.tw-btn i { display: block; width: 14px; height: 1px; background: currentColor; position: relative; transition: width .3s; }
.tw-btn i::after { content: ""; position: absolute; right: 0; top: -3px; width: 5px; height: 5px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }
.tw-btn:hover,
body.tw-flow .tw-btn:hover { background: transparent; color: var(--tw-amber); }
.tw-btn:hover i { width: 22px; }
.tw-link {
	background: none;
	border: 0;
	padding: 0;
	margin-top: 14px;
	display: inline-block;
	font-family: var(--tw-mono);
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tw-amber);
	cursor: pointer;
	text-decoration: none;
}
.tw-link:hover { color: var(--tw-bone); }
.tw-link[hidden] { display: none; }

/* ---------- registro: formulario + resumen ---------- */
.tw-reg {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
	gap: clamp(20px, 3vw, 36px);
	align-items: start;
	font-family: var(--tw-body);
	color: var(--tw-bone);
}
.tw-reg-main { display: grid; gap: clamp(16px, 2vw, 24px); min-width: 0; }
.tw-block {
	position: relative;
	margin: 0;
	min-width: 0;
	border: 1px solid var(--tw-line-dim);
	background: linear-gradient(180deg, var(--tw-ink-2), var(--tw-ink));
	padding: clamp(20px, 2.6vw, 32px);
}
.tw-block::before,
.tw-block::after { content: ""; position: absolute; width: 12px; height: 12px; border: 1px solid var(--tw-line); pointer-events: none; }
.tw-block::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.tw-block::after { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }
.tw-block-title {
	float: left;
	width: 100%;
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 0 0 20px;
	padding: 0;
	font-family: var(--tw-display);
	font-weight: 800;
	text-transform: uppercase;
	font-size: clamp(24px, 2.6vw, 30px);
	line-height: 1;
	letter-spacing: .02em;
	color: var(--tw-bone);
}
.tw-block-title + * { clear: both; }
.tw-block-n { font-family: var(--tw-mono); font-weight: 400; font-size: 11px; letter-spacing: .2em; color: var(--tw-amber); }

/* paso 1: tarjetas de plan */
.tw-picks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; clear: both; }
.tw-pick {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-areas: "ix name" "ix price";
	column-gap: 14px;
	align-items: center;
	padding: 14px 16px 14px 14px;
	border: 1px solid var(--tw-line-dim);
	background: rgba(14, 17, 16, .55);
	cursor: pointer;
	transition: border-color .25s, background .25s;
}
.tw-pick:hover { border-color: var(--tw-line); }
.tw-pick:focus-within { outline: 2px solid var(--tw-amber); outline-offset: 2px; }
.tw-pick.is-checked,
.tw-pick:has(input:checked) { border-color: var(--tw-amber); background: rgba(245, 158, 11, .07); }
.tw-pick input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.tw-pick-ix { grid-area: ix; width: 44px; font-family: var(--tw-display); font-weight: 800; font-size: 34px; line-height: .8; color: transparent; -webkit-text-stroke: 1px var(--tw-line); }
.tw-pick.is-checked .tw-pick-ix { -webkit-text-stroke-color: var(--tw-amber); }
.tw-pick-name { grid-area: name; font-family: var(--tw-display); font-weight: 700; text-transform: uppercase; font-size: 19px; line-height: 1.05; letter-spacing: .02em; }
.tw-pick-price { grid-area: price; font-family: var(--tw-display); font-weight: 700; font-size: 18px; color: var(--tw-sand); line-height: 1.3; }
.tw-pick-price em,
.tw-sum-price em { font-style: normal; font-family: var(--tw-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; margin-left: 4px; color: var(--tw-bone-45); }
.tw-picker.is-chosen .tw-picks { grid-template-columns: 1fr; }
.tw-picker.is-chosen .tw-pick:not(.is-checked) { display: none; }

/* resumen del plan */
.tw-sum {
	position: sticky;
	top: 92px;
	border: 1px solid var(--tw-line-dim);
	background: var(--tw-ink-2);
	padding: clamp(20px, 2.4vw, 28px);
}
body.admin-bar .tw-sum { top: 124px; }
.tw-sum-empty { margin: 14px 0 0; font-size: 14px; color: var(--tw-bone-45); }
.tw-sum-name { font-family: var(--tw-display); font-weight: 800; text-transform: uppercase; font-size: clamp(30px, 3vw, 38px); line-height: .98; letter-spacing: .01em; margin: 14px 0 0; color: var(--tw-bone); }
.tw-sum-price { font-family: var(--tw-display); font-weight: 800; font-size: 46px; line-height: 1; margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--tw-line-soft); }
.tw-sum-for { margin-top: 12px; font-size: 14px; color: var(--tw-bone-70); }
.tw-sum-for p { margin: 0; }
.tw-cond { margin: 8px 0 0; font-family: var(--tw-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--tw-sand); }
.tw-more { margin-top: 16px; border-top: 1px solid var(--tw-line-dim); }
.tw-more summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 0 2px;
	font-family: var(--tw-mono);
	font-size: 12px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--tw-amber);
}
.tw-more summary::-webkit-details-marker { display: none; }
.tw-more summary:hover { color: var(--tw-bone); }
.tw-pm { flex: 0 0 14px; width: 14px; height: 14px; position: relative; }
.tw-pm::before,
.tw-pm::after { content: ""; position: absolute; background: currentColor; transition: transform .35s; }
.tw-pm::before { left: 0; top: 6px; width: 14px; height: 1px; }
.tw-pm::after { left: 6px; top: 0; width: 1px; height: 14px; }
.tw-more[open] .tw-pm::after { transform: scaleY(0); }
.tw-more-in { padding-top: 12px; }
.tw-more-in p { margin: 0 0 10px; font-size: 13.5px; color: var(--tw-bone-70); }
.tw-more-in h3 { margin-top: 16px; font-size: 10px; }
.tw-inc { list-style: none; margin: 8px 0 0; padding: 0; }
.tw-inc li { display: flex; gap: 10px; padding: 7px 0; border-top: 1px solid var(--tw-line-soft); font-size: 13.5px; color: var(--tw-bone-70); margin: 0; }
.tw-inc li::before { content: "—"; color: var(--tw-moss); flex: 0 0 auto; }

/* paso 2: datos */
.tw-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; clear: both; }
.tw-reg-field { display: block; margin: 0 0 16px; }
.tw-reg-label {
	display: block;
	margin-bottom: 7px;
	font-family: var(--tw-mono);
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tw-bone-70);
}
.tw-reg-hint { color: var(--tw-bone-45); letter-spacing: .1em; text-transform: none; }
.tw-reg-field input,
.tw-reg-field select {
	width: 100%;
	height: 52px;
	margin: 0;
	background: var(--tw-ink);
	border: 1px solid var(--tw-line);
	border-radius: 0;
	padding: 0 14px;
	font-family: var(--tw-body);
	font-size: 15px;
	color: var(--tw-bone);
	appearance: none;
	-webkit-appearance: none;
	transition: border-color .2s;
}
.tw-reg-field input::placeholder { color: rgba(232, 229, 222, .32); }
.tw-reg-field input:hover,
.tw-reg-field select:hover { border-color: var(--tw-moss); }
.tw-reg-field input:focus,
.tw-reg-field select:focus { outline: none; border-color: var(--tw-amber); box-shadow: 0 0 0 1px var(--tw-amber); }
.tw-reg-field input:-webkit-autofill { -webkit-box-shadow: 0 0 0 40px var(--tw-ink) inset; -webkit-text-fill-color: var(--tw-bone); }
.tw-reg-field select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23F59E0B' d='M6 8L0 0h12z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 38px;
}
.tw-reg-field select option { background: var(--tw-ink-2); color: var(--tw-bone); }
.tw-reg-password { position: relative; display: block; }
.tw-reg-password input { padding-right: 48px; }
.tw-reg-pw-toggle {
	position: absolute;
	right: 6px;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: 0;
	cursor: pointer;
	font-size: 15px;
	padding: 8px 10px;
	color: var(--tw-bone-45);
}
.tw-reg-pw-toggle:hover { color: var(--tw-amber); }
.tw-reg-submit { width: 100%; margin-top: 8px; }
.tw-reg-note { margin: 14px 0 0; font-size: 13px; color: var(--tw-bone-45); }
.tw-reg-note strong { color: var(--tw-bone); font-weight: 600; }
.tw-reg--logged .tw-btn { margin-top: 6px; width: 100%; }
.tw-reg-error {
	border: 1px solid var(--tw-red-hi);
	background: rgba(200, 57, 44, .14);
	color: var(--tw-bone);
	padding: 14px 16px;
	font-size: 14px;
}
.tw-reg-error small { color: var(--tw-bone-70); }
.tw-reg-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* foto de perfil */
.tw-reg-avatar { display: flex; align-items: center; gap: 16px; margin: 0 0 22px; clear: both; }
.tw-reg-avatar-wrap { position: relative; width: 72px; height: 72px; flex: 0 0 72px; }
.tw-reg-avatar-circle {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: var(--tw-ink);
	border: 1px dashed var(--tw-line);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--tw-line);
	font-size: 26px;
}
.tw-reg-avatar-preview { width: 100%; height: 100%; object-fit: cover; }
.tw-reg-avatar-preview:not([hidden]) + i { display: none; }
.tw-reg-avatar-camera {
	position: absolute;
	bottom: -2px;
	right: -2px;
	width: 26px;
	height: 26px;
	background: var(--tw-amber);
	color: var(--tw-ink);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	border: 2px solid var(--tw-ink-2);
	pointer-events: none;
}
.tw-reg-avatar-label { font-family: var(--tw-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--tw-amber); cursor: pointer; }
.tw-reg-avatar-label span { color: var(--tw-bone-45); }
.tw-reg-avatar-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.tw-reg-avatar-input:focus-visible + * { outline: 2px solid var(--tw-amber); }

/* ============================================================
   WooCommerce · checkout de bloques, confirmación y Mi cuenta
   ============================================================ */
body.tw-flow .wc-block-checkout,
body.tw-flow .woocommerce { color: var(--tw-bone); font-family: var(--tw-body); }
body.tw-flow .wc-block-components-sidebar-layout { margin-bottom: 0; }
body.tw-flow .wc-block-components-main,
body.tw-flow .wc-block-components-sidebar { padding-top: 0; }
body.tw-flow .wc-block-checkout__main { border: 1px solid var(--tw-line-dim); background: linear-gradient(180deg, var(--tw-ink-2), var(--tw-ink)); padding: clamp(20px, 2.6vw, 32px) !important; }
body.tw-flow .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block,
body.tw-flow .wc-block-components-checkout-order-summary__content { border-color: var(--tw-line-dim) !important; background: var(--tw-ink-2); }
body.tw-flow .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block { border: 1px solid var(--tw-line-dim); }

body.tw-flow .wc-block-components-title,
body.tw-flow .wc-block-components-checkout-step__title,
body.tw-flow .wc-block-components-checkout-order-summary__title-text,
body.tw-flow .wc-block-components-order-summary .wc-block-components-panel__button {
	font-family: var(--tw-display) !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	letter-spacing: .03em;
	font-size: 24px !important;
	line-height: 1.1 !important;
	color: var(--tw-bone) !important;
}
body.tw-flow .wc-block-components-checkout-step { border-color: var(--tw-line-dim); }
body.tw-flow .wc-block-components-checkout-step__container::after { display: none; }
body.tw-flow .wc-block-components-checkout-step__description,
body.tw-flow .wc-block-checkout__login-prompt,
body.tw-flow .wc-block-components-checkout-step__heading-content { color: var(--tw-bone-45); font-size: 13px; }
body.tw-flow .wc-block-components-checkout-step__heading-content a,
body.tw-flow .wc-block-checkout__login-prompt { color: var(--tw-amber); }

/* campos */
body.tw-flow .wc-block-checkout .wc-block-components-text-input input,
body.tw-flow .wc-block-checkout .wc-block-components-textarea,
body.tw-flow .wc-block-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
body.tw-flow .wc-block-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
body.tw-flow .wc-block-components-totals-coupon .wc-block-components-text-input input {
	background-color: var(--tw-ink) !important;
	border: 1px solid var(--tw-line) !important;
	border-radius: 0 !important;
	color: var(--tw-bone) !important;
	font-family: var(--tw-body);
	box-shadow: none !important;
}
body.tw-flow .wc-block-checkout .wc-blocks-components-select .wc-blocks-components-select__container { background: var(--tw-ink) !important; border-radius: 0; }
body.tw-flow .wc-block-checkout .wc-blocks-components-select .wc-blocks-components-select__expand { fill: var(--tw-amber); }
body.tw-flow .wc-block-checkout .wc-blocks-components-select .wc-blocks-components-select__select option { background: var(--tw-ink-2); color: var(--tw-bone); }
body.tw-flow .wc-block-checkout .wc-block-components-text-input input:focus,
body.tw-flow .wc-block-checkout .wc-blocks-components-select .wc-blocks-components-select__select:focus,
body.tw-flow .wc-block-checkout .wc-block-components-textarea:focus { border-color: var(--tw-amber) !important; box-shadow: 0 0 0 1px var(--tw-amber) !important; outline: none; }
body.tw-flow .wc-block-checkout .wc-block-components-text-input input:-webkit-autofill { -webkit-box-shadow: 0 0 0 40px var(--tw-ink) inset !important; -webkit-text-fill-color: var(--tw-bone); }
body.tw-flow .wc-block-checkout .wc-block-components-text-input label,
body.tw-flow .wc-block-checkout .wc-blocks-components-select .wc-blocks-components-select__label,
body.tw-flow .wc-block-components-totals-coupon .wc-block-components-text-input label { color: var(--tw-bone-45) !important; }
body.tw-flow .wc-block-components-validation-error,
body.tw-flow .wc-block-components-validation-error > p { color: var(--tw-red-hi); }
body.tw-flow .wc-block-checkout .wc-block-components-text-input.has-error input { border-color: var(--tw-red-hi) !important; }
body.tw-flow .wc-block-checkout .wc-block-components-text-input.has-error label { color: var(--tw-red-hi) !important; }

/* casillas y opciones */
body.tw-flow .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { background: var(--tw-ink); border: 1px solid var(--tw-line); border-radius: 0; }
body.tw-flow .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--tw-amber); border-color: var(--tw-amber); }
body.tw-flow .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--tw-ink); }
body.tw-flow .wc-block-components-checkbox label { color: var(--tw-bone-70); }
body.tw-flow .wc-block-components-radio-control__option,
body.tw-flow .wc-block-components-radio-control-accordion-option { color: var(--tw-bone); }
body.tw-flow .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option,
body.tw-flow .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option { box-shadow: none !important; border: 1px solid var(--tw-line-dim); margin-bottom: -1px; }
body.tw-flow .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body.tw-flow .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { border-color: var(--tw-amber); background: rgba(245, 158, 11, .06); position: relative; z-index: 1; }
body.tw-flow .wc-block-components-radio-control .wc-block-components-radio-control__input { background: var(--tw-ink); border: 1px solid var(--tw-line); }
body.tw-flow .wc-block-components-radio-control .wc-block-components-radio-control__input:checked { border-color: var(--tw-amber); }
body.tw-flow .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before { background: var(--tw-amber); }
body.tw-flow .wc-block-components-radio-control__description,
body.tw-flow .wc-block-components-radio-control__secondary-description,
body.tw-flow .wc-block-components-radio-control-accordion-content { color: var(--tw-bone-70); }
body.tw-flow .wc-block-components-radio-control__label { font-weight: 600; }

/* botón de pagar */
body.tw-flow .wc-block-components-checkout-place-order-button,
body.tw-flow .wc-block-components-button.contained,
body.tw-flow .woocommerce .button,
body.tw-flow .woocommerce button.button,
body.tw-flow .woocommerce a.button,
body.tw-flow .woocommerce input.button {
	background: var(--tw-amber) !important;
	color: var(--tw-ink) !important;
	border: 1px solid var(--tw-amber) !important;
	border-radius: 0 !important;
	font-family: var(--tw-mono) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	letter-spacing: .16em;
	text-transform: uppercase;
	min-height: 54px;
	padding: 14px 22px;
	box-shadow: none !important;
	transition: background .3s, color .3s;
}
body.tw-flow .wc-block-components-checkout-place-order-button:hover,
body.tw-flow .wc-block-components-button.contained:hover,
body.tw-flow .woocommerce .button:hover { background: transparent !important; color: var(--tw-amber) !important; }
body.tw-flow .wc-block-components-checkout-return-to-cart-button { display: none !important; }
body.tw-flow .wc-block-checkout__actions_row { justify-content: flex-end; }
body.tw-flow .wc-block-components-checkout-place-order-button { width: 100%; }
body.tw-flow .wc-block-checkout__terms,
body.tw-flow .wc-block-checkout__terms span { color: var(--tw-bone-45); font-size: 12.5px; }
body.tw-flow .wc-block-components-button:not(.is-link):focus { box-shadow: 0 0 0 2px var(--tw-ink), 0 0 0 4px var(--tw-amber) !important; }
body.tw-flow .wc-block-components-button.is-link,
body.tw-flow .wc-block-components-panel__button,
body.tw-flow .wc-block-components-totals-coupon-link { color: var(--tw-amber) !important; }

/* resumen del pedido */
body.tw-flow .wc-block-components-order-summary-item__image > img { border: 1px solid var(--tw-line-dim); background: var(--tw-ink); }
body.tw-flow .wc-block-components-order-summary-item__image > img[src*="woocommerce-placeholder"] { filter: invert(1) brightness(.35); }
body.tw-flow .wc-block-components-order-summary-item__quantity { background: var(--tw-amber); border-color: var(--tw-amber); color: var(--tw-ink); box-shadow: none; }
body.tw-flow .wc-block-components-product-name { font-family: var(--tw-display); font-weight: 700; text-transform: uppercase; font-size: 19px; letter-spacing: .02em; color: var(--tw-bone); }
body.tw-flow .wc-block-components-product-metadata,
body.tw-flow .wc-block-components-product-metadata__description,
body.tw-flow .wc-block-components-order-summary-item__total-price,
body.tw-flow .wc-block-components-product-price { color: var(--tw-bone-70); }
body.tw-flow .wc-block-components-totals-wrapper,
body.tw-flow .wc-block-components-order-summary,
body.tw-flow .wc-block-components-totals-coupon,
body.tw-flow .wc-block-components-panel { border-color: var(--tw-line-soft) !important; }
body.tw-flow .wc-block-components-totals-item__label { color: var(--tw-bone-70); }
body.tw-flow .wc-block-components-totals-item__value { color: var(--tw-bone); font-weight: 600; }
body.tw-flow .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.tw-flow .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: var(--tw-display); font-weight: 800; font-size: 26px; color: var(--tw-bone); text-transform: uppercase; }
body.tw-flow .wc-block-components-totals-item__description { color: var(--tw-bone-45); }

/* avisos */
body.tw-flow .wc-block-components-notice-banner,
body.tw-flow .woocommerce-message,
body.tw-flow .woocommerce-info,
body.tw-flow .woocommerce-error,
body.tw-flow .woocommerce-notice {
	background: var(--tw-ink-2) !important;
	color: var(--tw-bone) !important;
	border: 1px solid var(--tw-line) !important;
	border-left: 3px solid var(--tw-amber) !important;
	border-radius: 0 !important;
	font-size: 14px;
}
body.tw-flow .wc-block-components-notice-banner.is-error,
body.tw-flow .woocommerce-error { border-left-color: var(--tw-red-hi) !important; }
body.tw-flow .wc-block-components-notice-banner > svg { fill: var(--tw-ink); background: var(--tw-amber); }
body.tw-flow .wc-block-components-notice-banner.is-error > svg { background: var(--tw-red-hi); }
body.tw-flow .woocommerce-message::before,
body.tw-flow .woocommerce-info::before { color: var(--tw-amber); }

/* esqueleto de carga del checkout */
body.tw-flow .wc-block-checkout.is-loading .wc-block-components-sidebar-layout > * { opacity: .4; }

/* ---------- confirmación del pedido ---------- */
.tw-ty-head { margin: 0 0 24px; }
.tw-ty-plan { margin: 14px 0 0; font-family: var(--tw-display); font-weight: 700; text-transform: uppercase; font-size: 22px; letter-spacing: .04em; color: var(--tw-sand); }
body.tw-flow .woocommerce-thankyou-order-received { display: none; }
body.tw-flow .woocommerce-order { max-width: 860px; }
body.tw-flow ul.woocommerce-order-overview {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	margin: 0 0 28px;
	padding: 0;
	border: 1px solid var(--tw-line-dim);
}
body.tw-flow ul.woocommerce-order-overview li {
	margin: 0;
	padding: 14px 16px;
	border: 0;
	border-right: 1px solid var(--tw-line-dim);
	font-family: var(--tw-mono);
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tw-bone-45);
	float: none;
}
body.tw-flow ul.woocommerce-order-overview li:last-child { border-right: 0; }
body.tw-flow ul.woocommerce-order-overview::before,
body.tw-flow ul.woocommerce-order-overview::after { display: none; }
body.tw-flow ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: 6px;
	font-family: var(--tw-body);
	font-size: 14px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--tw-bone);
	word-break: break-word;
}
.tw-next {
	margin: 0 0 32px;
	border: 1px solid var(--tw-amber);
	background: linear-gradient(160deg, rgba(245, 158, 11, .10), rgba(14, 17, 16, .6) 70%);
	padding: clamp(22px, 3vw, 34px);
}
.tw-next-list { list-style: none; counter-reset: tw-next; margin: 18px 0 22px; padding: 0; display: grid; gap: 0; }
.tw-next-list li {
	counter-increment: tw-next;
	display: grid;
	grid-template-columns: 34px 1fr;
	column-gap: 14px;
	padding: 14px 0;
	border-top: 1px solid var(--tw-line-soft);
	margin: 0;
}
.tw-next-list li::before { content: "0" counter(tw-next); grid-row: span 2; font-family: var(--tw-mono); font-size: 11px; letter-spacing: .14em; color: var(--tw-amber); padding-top: 4px; }
.tw-next-list b { font-family: var(--tw-display); font-weight: 700; text-transform: uppercase; font-size: 19px; letter-spacing: .03em; line-height: 1.2; }
.tw-next-list span { font-size: 14px; color: var(--tw-bone-70); }
body.tw-flow .woocommerce-order h2,
body.tw-flow .woocommerce-MyAccount-content h2,
body.tw-flow .woocommerce-MyAccount-content h3,
body.tw-flow .woocommerce h2 {
	font-family: var(--tw-display);
	font-weight: 800;
	text-transform: uppercase;
	font-size: 26px;
	letter-spacing: .03em;
	line-height: 1.1;
	color: var(--tw-bone);
	margin: 28px 0 14px;
}
body.tw-flow .woocommerce table.shop_table,
body.tw-flow .woocommerce table.shop_table_responsive,
body.tw-flow .woocommerce-orders-table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--tw-line-dim);
	border-radius: 0;
	background: var(--tw-ink-2);
	color: var(--tw-bone);
	font-size: 14px;
}
body.tw-flow .woocommerce table.shop_table th,
body.tw-flow .woocommerce table.shop_table td {
	border: 0;
	border-top: 1px solid var(--tw-line-soft);
	padding: 12px 14px;
	text-align: left;
	color: var(--tw-bone);
	background: transparent;
}
body.tw-flow .woocommerce table.shop_table thead th { font-family: var(--tw-mono); font-size: 10px; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: var(--tw-bone-45); border-top: 0; }
body.tw-flow .woocommerce table.shop_table tfoot th { color: var(--tw-bone-70); font-weight: 400; }
body.tw-flow .woocommerce-customer-details address,
body.tw-flow .woocommerce address {
	border: 1px solid var(--tw-line-dim) !important;
	border-radius: 0 !important;
	padding: 16px 18px;
	font-style: normal;
	color: var(--tw-bone-70);
	background: var(--tw-ink-2);
}
body.tw-flow .woocommerce-bacs-bank-details,
body.tw-flow .wc-bacs-bank-details { color: var(--tw-bone-70); }

/* Mi cuenta (shortcode clásico) */
body.tw-flow .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--tw-line-dim); }
body.tw-flow .woocommerce-MyAccount-navigation li { margin: 0; border-top: 1px solid var(--tw-line-soft); }
body.tw-flow .woocommerce-MyAccount-navigation li:first-child { border-top: 0; }
body.tw-flow .woocommerce-MyAccount-navigation a { display: block; padding: 12px 16px; font-family: var(--tw-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--tw-bone-70); text-decoration: none; }
body.tw-flow .woocommerce-MyAccount-navigation li.is-active a,
body.tw-flow .woocommerce-MyAccount-navigation a:hover { color: var(--tw-amber); background: rgba(245, 158, 11, .06); }
body.tw-flow .woocommerce form .form-row label { font-family: var(--tw-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--tw-bone-70); }
body.tw-flow .woocommerce form .form-row input.input-text,
body.tw-flow .woocommerce form .form-row select,
body.tw-flow .woocommerce form .form-row textarea {
	background: var(--tw-ink);
	border: 1px solid var(--tw-line);
	border-radius: 0;
	color: var(--tw-bone);
	padding: 13px 14px;
	font-size: 15px;
}
body.tw-flow .woocommerce form.login,
body.tw-flow .woocommerce form.register,
body.tw-flow .woocommerce form.lost_reset_password { border: 1px solid var(--tw-line-dim); border-radius: 0; background: var(--tw-ink-2); padding: clamp(20px, 2.6vw, 32px); }

/* ---------- pie ---------- */
.tw-foot { border-top: 1px solid var(--tw-line-dim); padding: 44px 0 36px; position: relative; z-index: 2; }
.tw-foot-in { display: flex; gap: 32px; justify-content: space-between; flex-wrap: wrap; align-items: flex-start; }
.tw-emblem--foot { width: 40px; height: 43px; background-color: var(--tw-line); margin-bottom: 14px; }
.tw-foot-nav { display: flex; gap: 26px; flex-wrap: wrap; }
.tw-foot-nav a { font-family: var(--tw-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--tw-bone-45) !important; text-decoration: none; }
.tw-foot-nav a:hover { color: var(--tw-amber) !important; }

/* ---------- responsive ---------- */
@media (max-width: 960px) {
	.tw-reg { grid-template-columns: 1fr; }
	.tw-reg-main { display: contents; }
	.tw-picker { order: 1; }
	.tw-sum { order: 2; position: static; }
	.tw-reg-main > .tw-block:not(.tw-picker) { order: 3; }
}
@media (max-width: 640px) {
	body.tw-flow .wc-block-components-checkout-order-summary__title { padding: 16px; }
	.tw-nav-in { height: 60px; }
	.tw-brand small { display: none; }
	.tw-nav-cta { font-size: 9.5px; padding: 9px 13px; }
	.tw-steps li { flex-direction: column; align-items: flex-start; gap: 6px; padding: 10px 12px; font-size: 9.5px; letter-spacing: .12em; }
	.tw-steps-n { flex: none; width: 24px; height: 24px; }
	.tw-picks,
	.tw-grid { grid-template-columns: 1fr; }
	.tw-sum-price { font-size: 40px; }
	body.tw-flow ul.woocommerce-order-overview li { border-right: 0; border-bottom: 1px solid var(--tw-line-dim); }
}
@media (max-width: 782px) {
	body.admin-bar .tw-nav { top: 46px; }
}
@media (prefers-reduced-motion: reduce) {
	body.tw-flow *,
	.tw-reg * { transition-duration: .01ms !important; }
}

/* ===== Landing: tarjetas de planes ([triwolf_planes]) ===== */
.tw-planes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
	max-width: 1100px;
	margin: 24px auto;
	padding: 0 16px;
	box-sizing: border-box;
	font-family: var(--tw-body);
	color: var(--tw-bone);
}
.tw-plan-card { display: flex; flex-direction: column; background: var(--tw-ink-2); border: 1px solid var(--tw-line-dim); padding: 20px; box-sizing: border-box; }
.tw-plan-media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--tw-ink); margin-bottom: 16px; }
.tw-plan-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tw-plan-name { font-family: var(--tw-display); font-weight: 800; text-transform: uppercase; font-size: 24px; margin: 0 0 4px; }
.tw-plan-price { font-family: var(--tw-display); font-size: 20px; font-weight: 700; color: var(--tw-sand); margin-bottom: 10px; }
.tw-plan-price del { opacity: .6; font-weight: 400; }
.tw-plan-desc { font-size: 14px; color: var(--tw-bone-70); line-height: 1.5; margin-bottom: 20px; }
.tw-plan-desc p { margin: 0 0 8px; }
.tw-planes a.tw-plan-cta,
.tw-plan-cta {
	margin-top: auto;
	display: block;
	text-align: center;
	background: var(--tw-amber);
	color: var(--tw-ink);
	padding: 14px 18px;
	text-decoration: none;
	font-family: var(--tw-mono);
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	transition: background .15s ease;
}
.tw-plan-cta:hover { background: transparent; color: var(--tw-amber); box-shadow: inset 0 0 0 1px var(--tw-amber); }
.tw-planes-empty { max-width: 1100px; margin: 24px auto; text-align: center; color: var(--tw-bone-70); }
