/* IA Empresarial · Pagos. Solo azul #0B5FA8 y blanco. */
.pg, .pg-result, .pg-account { --a: #0B5FA8; --w: #fff; --a70: rgba(11,95,168,.72); --a20: rgba(11,95,168,.2); --a12: rgba(11,95,168,.12); --a06: rgba(11,95,168,.06); color: var(--a); font-family: var(--f-body, system-ui, sans-serif); }
.pg *, .pg-result *, .pg-account * { box-sizing: border-box; }
.pg [hidden], .pg-account [hidden] { display: none !important; }
.pg-ic { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.pg h2, .pg-result h2, .pg-account h2 { font-family: var(--f-display, Georgia, serif); font-weight: 500; color: var(--a); font-size: clamp(28px, 3.2vw, 40px); line-height: 1.1; margin: 0 0 12px; }
.pg-kicker { font-family: var(--f-mono, monospace); font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 6px; color: var(--a70); }

/* Botones */
.pg-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 24px; border-radius: 999px; border: 1.5px solid var(--a); background: var(--a); color: var(--w) !important; font: 700 16px/1 var(--f-body, sans-serif); text-decoration: none; cursor: pointer; position: relative; overflow: hidden; transition: transform .25s, box-shadow .25s, background-color .25s; }
.pg-btn::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%); transform: translateX(-120%); transition: transform .7s; }
.pg-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(11,95,168,.3); }
.pg-btn:hover::after { transform: translateX(120%); }
.pg-btn.ghost { background: var(--w); color: var(--a) !important; }
.pg-btn.sm { padding: 10px 16px; font-size: 14.5px; }
.pg-btn[disabled] { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.pg-btn.is-loading .pg-ic { animation: pgSpin 1s linear infinite; }

/* Pasos */
.pg-steps { list-style: none; display: flex; justify-content: center; gap: 8px; margin: 0 auto 34px; padding: 6px; border-radius: 999px; background: var(--a06); width: max-content; max-width: 100%; }
.pg-steps li { display: flex; align-items: center; gap: 10px; padding: 9px 18px 9px 10px; border-radius: 999px; font-weight: 700; font-size: 14.5px; transition: background-color .35s, color .35s; }
.pg-steps li span { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--a20); font-size: 13px; }
.pg-steps li.is-on { background: var(--a); color: var(--w); box-shadow: 0 10px 24px rgba(11,95,168,.3); }
.pg-steps li.is-on span { background: var(--w); color: var(--a); border-color: var(--w); }
.pg-steps li.is-done span { background: var(--a12); border-color: transparent; }

/* Planes */
.pg-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; align-items: stretch; margin-bottom: 64px; }
.pg-plan { display: flex; flex-direction: column; border: 1px solid var(--a20); border-radius: 22px; background: var(--w); overflow: hidden; box-shadow: 0 1px 2px rgba(11,95,168,.06), 0 14px 34px rgba(11,95,168,.08); transition: background-color .45s, color .45s, transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s, border-color .45s; }
.pg-plan-media { position: relative; aspect-ratio: 16 / 9; background: var(--a); overflow: hidden; }
.pg-plan-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.pg-plan-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,95,168,.05) 30%, rgba(11,95,168,.65)); }
.pg-chip { position: absolute; z-index: 1; left: 16px; top: 16px; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: var(--w); color: var(--a); font-weight: 700; font-size: 13px; box-shadow: 0 8px 20px rgba(11,95,168,.25); }
.pg-chip.is-solid { background: var(--a); color: var(--w); border: 1px solid rgba(255,255,255,.5); }
.pg-chip .pg-ic { width: 16px; height: 16px; }
.pg-plan-body { display: flex; flex-direction: column; gap: 12px; padding: 24px; flex: 1; }
.pg-plan h3 { margin: 0; font-family: var(--f-display, Georgia, serif); font-weight: 500; font-size: 26px; line-height: 1.15; color: inherit; }
.pg-plan-sum { margin: 0; opacity: .9; }
.pg-price { margin: 4px 0; display: flex; flex-direction: column; }
.pg-price b { font-family: var(--f-display, Georgia, serif); font-weight: 500; font-size: 44px; line-height: 1; }
.pg-price span { font-size: 13.5px; opacity: .8; margin-top: 6px; }
.pg-benef { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 9px; font-size: 15px; }
.pg-benef li { display: flex; gap: 10px; align-items: flex-start; }
.pg-benef .pg-ic { width: 18px; height: 18px; margin-top: 3px; stroke-width: 2.4; }
.pg-plan .pg-btn { margin-top: auto; width: 100%; }
.pg-plan:hover, .pg-plan.is-selected { background: var(--a); color: var(--w); border-color: var(--a); transform: translateY(-10px); box-shadow: 0 34px 64px rgba(11,95,168,.35); }
.pg-plan:hover .pg-plan-media img { transform: scale(1.08); }
.pg-plan:hover .pg-btn, .pg-plan.is-selected .pg-btn { background: var(--w); color: var(--a) !important; border-color: var(--w); }
.pg-plan.is-featured { border: 2px solid var(--a); }
.pg-plan.is-selected .pg-plan-body::before { content: "Plan elegido"; align-self: flex-start; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.2); }

/* Comparación */
.pg-compare { margin-bottom: 64px; }
.pg-compare h2 { text-align: center; }
.pg-table-wrap { overflow-x: auto; border-radius: 18px; border: 1px solid var(--a20); }
.pg-table { width: 100%; border-collapse: collapse; font-size: 15.5px; }
.pg-table th, .pg-table td { padding: 14px 18px; text-align: center; border-bottom: 1px solid var(--a06); }
.pg-table th:first-child { text-align: left; font-weight: 600; }
.pg-table thead th { background: var(--a); color: var(--w); font-weight: 700; }
.pg-table tbody tr { transition: background-color .25s; }
.pg-table tbody tr:hover { background: var(--a06); }
.pg-table td .pg-ic { stroke-width: 2.6; }
.pg-table td:last-child { background: var(--a06); font-weight: 700; }
.pg-no { opacity: .4; }

/* Checkout */
.pg-checkout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); gap: 28px; align-items: start; margin-bottom: 64px; scroll-margin-top: 100px; }
.pg-checkout.is-in { animation: pgIn .5s cubic-bezier(.2,.7,.2,1); }
@keyframes pgIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.pg-form { background: var(--w); border: 1px solid var(--a20); border-radius: 22px; padding: 28px; box-shadow: 0 14px 34px rgba(11,95,168,.08); }
.pg-lede { margin: 0 0 18px; }
.pg-form fieldset { border: 0; margin: 0 0 18px; padding: 0; }
.pg-form legend { font-weight: 700; margin-bottom: 10px; font-size: 15.5px; }
.pg-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pg-seg label { cursor: pointer; }
.pg-seg input { position: absolute; opacity: 0; }
.pg-seg span { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 14px; border-radius: 14px; border: 1.5px solid var(--a20); font-weight: 700; transition: background-color .3s, color .3s, border-color .3s; }
.pg-seg input:checked + span { background: var(--a); color: var(--w); border-color: var(--a); box-shadow: 0 10px 22px rgba(11,95,168,.25); }
.pg-seg input:focus-visible + span { box-shadow: 0 0 0 4px var(--a20); }
.pg-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; margin-bottom: 20px; }
.pg-span2 { grid-column: span 2; }
.pg-f { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }
.pg-f input, .pg-f select { width: 100%; border: 1.5px solid var(--a20); border-radius: 12px; padding: 12px 14px; font: 400 16px var(--f-body, sans-serif); color: var(--a); background: var(--w); transition: border-color .25s, box-shadow .25s; }
.pg-f input:focus, .pg-f select:focus { outline: none; border-color: var(--a); box-shadow: 0 0 0 4px var(--a12); }
.pg-f input[readonly] { background: var(--a06); }
.pg-f input.is-bad, .pg-consent input.is-bad + span { border-color: var(--a); box-shadow: 0 0 0 4px var(--a20); }
.pg-doc { flex-direction: row; gap: 10px; }
.pg-doc label { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.pg-doc .pg-dv { flex: 0 0 72px; }
.pg-check-inline { flex-direction: row; align-items: center; align-self: end; padding-bottom: 12px; gap: 10px; }
.pg-check-inline input { width: 20px; height: 20px; accent-color: #0B5FA8; }
.pg-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pg-consent { display: grid; gap: 10px; }
.pg-consent label { display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; line-height: 1.5; padding: 12px 14px; border-radius: 12px; background: var(--a06); cursor: pointer; }
.pg-consent label[hidden] { display: none; }
.pg-consent input { width: 20px; height: 20px; margin-top: 1px; flex: none; accent-color: #0B5FA8; }
.pg-consent a { color: var(--a); font-weight: 700; }
.pg-error { margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; border: 2px solid var(--a); font-weight: 600; }
.pg-alert { display: flex; gap: 12px; padding: 16px; border-radius: 14px; background: var(--a); color: var(--w); margin-bottom: 18px; font-size: 15px; }
.pg-alert a { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; color: var(--w); font-weight: 700; }
.pg-form-nav { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pg-pay { flex: 1; min-width: 240px; }
.pg-summary { position: sticky; top: 96px; border-radius: 22px; overflow: hidden; background: var(--a); color: var(--w); box-shadow: 0 30px 60px rgba(11,95,168,.35); }
.pg-sum-media { position: relative; aspect-ratio: 16 / 8; background: rgba(255,255,255,.1); }
.pg-sum-media img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.pg-sum-media .pg-chip { top: auto; bottom: 14px; }
.pg-sum-body { padding: 24px; }
.pg-sum-body .pg-kicker { color: rgba(255,255,255,.8); }
.pg-sum-body h3 { margin: 0 0 16px; font-family: var(--f-display, Georgia, serif); font-weight: 500; font-size: 26px; color: var(--w); }
.pg-sum-body dl { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin: 0 0 12px; font-size: 15px; }
.pg-sum-body dd { margin: 0; text-align: right; font-weight: 700; }
.pg-sum-body .pg-total { padding-top: 12px; border-top: 1px solid rgba(255,255,255,.3); font-size: 18px; }
.pg-sum-body dd.pg-total { font-family: var(--f-display, Georgia, serif); font-size: 30px; font-weight: 500; }
.pg-sum-note { font-size: 13.5px; opacity: .9; margin: 0 0 14px; }
.pg-methods { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.pg-methods span { display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; border-radius: 999px; background: rgba(255,255,255,.14); font-size: 13px; font-weight: 600; }
.pg-methods .pg-ic { width: 16px; height: 16px; }
.pg-secure { display: flex; gap: 10px; font-size: 13.5px; line-height: 1.45; margin: 10px 0 0; opacity: .95; }

/* FAQ y legal */
.pg-faq { margin-bottom: 40px; }
.pg-faq h2 { text-align: center; }
.pg-faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pg-faq details { border: 1px solid var(--a20); border-radius: 16px; background: var(--w); transition: background-color .35s, color .35s; }
.pg-faq summary { cursor: pointer; list-style: none; padding: 18px 50px 18px 20px; font-weight: 700; position: relative; }
.pg-faq summary::-webkit-details-marker { display: none; }
.pg-faq summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--a06); font-size: 20px; transition: transform .3s; }
.pg-faq details[open] { background: var(--a); color: var(--w); }
.pg-faq details[open] summary::after { content: "–"; background: rgba(255,255,255,.2); }
.pg-faq details p { margin: 0; padding: 0 20px 18px; }
.pg-faq details a { color: inherit; font-weight: 700; }
.pg-legal { border-top: 1px solid var(--a20); padding-top: 18px; font-size: 13.5px; color: var(--a70); text-align: center; }
.pg-legal a { color: var(--a); }

/* Resultado */
.pg-result { display: flex; justify-content: center; padding: 10px 0 40px; }
.pg-res-card { width: min(640px, 100%); text-align: center; padding: 44px 32px; border-radius: 26px; border: 1px solid var(--a20); background: var(--w); box-shadow: 0 24px 60px rgba(11,95,168,.12); animation: pgIn .5s cubic-bezier(.2,.7,.2,1); }
.pg-res-card.is-ok { background: var(--a); color: var(--w); }
.pg-res-card.is-ok h2 { color: var(--w); }
.pg-res-ic { display: inline-flex; align-items: center; justify-content: center; width: 76px; height: 76px; border-radius: 50%; background: var(--a); color: var(--w); margin-bottom: 16px; }
.pg-res-ic .pg-ic { width: 38px; height: 38px; stroke-width: 2.4; }
.pg-res-card.is-ok .pg-res-ic { background: var(--w); color: var(--a); animation: pgPop .6s cubic-bezier(.2,1.6,.4,1); }
@keyframes pgPop { from { transform: scale(.3); } }
.pg-res-ref { font-size: 14.5px; opacity: .9; }
.pg-res-note { padding: 12px 16px; border-radius: 14px; background: rgba(255,255,255,.15); }
.pg-res-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 18px; }
.pg-res-card.is-ok .pg-btn { background: var(--w); color: var(--a) !important; border-color: var(--w); }
.pg-res-card.is-ok .pg-btn.ghost { background: transparent; color: var(--w) !important; }
.pg-small { font-size: 13.5px; opacity: .85; }
.pg-spin { width: 34px; height: 34px; border-radius: 50%; border: 3px solid rgba(255,255,255,.35); border-top-color: var(--w); animation: pgSpin .9s linear infinite; }
@keyframes pgSpin { to { transform: rotate(360deg); } }

/* Cuenta */
.pg-account { padding-bottom: 40px; }
.pg-login { display: flex; justify-content: center; }
.pg-login-card { width: min(480px, 100%); padding: 36px 30px; border-radius: 24px; border: 1px solid var(--a20); background: var(--w); box-shadow: 0 24px 60px rgba(11,95,168,.12); text-align: center; }
.pg-login-card form { text-align: left; margin-top: 18px; }
.pg-login-card form p { margin: 0 0 14px; }
.pg-login-card label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.pg-login-card input[type=text], .pg-login-card input[type=password] { width: 100%; border: 1.5px solid var(--a20); border-radius: 12px; padding: 12px 14px; font: 16px var(--f-body, sans-serif); color: var(--a); }
.pg-login-card input:focus { outline: none; border-color: var(--a); box-shadow: 0 0 0 4px var(--a12); }
.pg-login-card .login-remember label { display: flex; gap: 8px; align-items: center; font-weight: 400; }
.pg-login-card input[type=submit] { width: 100%; padding: 14px; border-radius: 999px; border: 0; background: var(--a); color: var(--w); font: 700 16px var(--f-body, sans-serif); cursor: pointer; }
.pg-login-links { font-size: 14px; }
.pg-login-links a { color: var(--a); font-weight: 700; }
.pg-acc-head { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-bottom: 24px; }
.pg-acc-head > div { flex: 1; min-width: 200px; }
.pg-acc-head h2 { margin: 0; }
.pg-acc-head p { margin: 2px 0 0; }
.pg-avatar { display: inline-flex; align-items: center; justify-content: center; width: 68px; height: 68px; border-radius: 50%; background: var(--a); color: var(--w); font-family: var(--f-display, Georgia, serif); font-size: 32px; }
.pg-acc-grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 20px; }
.pg-acc-card { padding: 26px; border-radius: 22px; border: 1px solid var(--a20); background: var(--w); box-shadow: 0 14px 34px rgba(11,95,168,.08); }
.pg-acc-card .pg-res-ic { width: 56px; height: 56px; }
.pg-acc-card .pg-res-ic .pg-ic { width: 28px; height: 28px; }
.pg-acc-card h3 { margin: 0 0 8px; font-family: var(--f-display, Georgia, serif); font-weight: 500; font-size: 26px; }
.pg-acc-card.is-active { background: var(--a); color: var(--w); }
.pg-acc-card.is-active h3 { color: var(--w); }
.pg-acc-card.is-active .pg-res-ic { background: var(--w); color: var(--a); }
.pg-acc-card.is-active .pg-btn { background: var(--w); color: var(--a) !important; border-color: var(--w); }
.pg-acc-card.is-active .pg-btn.ghost { background: transparent; color: var(--w) !important; }
.pg-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.2); font-weight: 700; font-size: 14px; margin: 0 0 6px; }
.pg-badge.is-free { background: var(--a06); }
.pg-badge .pg-ic { width: 16px; height: 16px; }
.pg-acc-btns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.pg-orders { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.pg-orders li { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--a06); }
.pg-orders small { display: block; opacity: .75; }
.pg-ord-r { text-align: right; }
.pg-st { display: block; font-style: normal; font-size: 12.5px; font-weight: 700; }

@media (max-width: 900px) {
	.pg-checkout { grid-template-columns: 1fr; }
	.pg-summary { position: relative; top: 0; order: -1; }
	.pg-faq-grid, .pg-acc-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.pg-steps li { padding: 8px 12px 8px 8px; font-size: 13px; gap: 6px; }
	.pg-steps li span { width: 24px; height: 24px; }
	.pg-form { padding: 20px 16px; border-radius: 18px; }
	.pg-grid { grid-template-columns: 1fr; }
	.pg-span2 { grid-column: auto; }
	.pg-price b { font-size: 38px; }
	.pg-table th, .pg-table td { padding: 10px; font-size: 14px; }
	.pg-res-card { padding: 34px 20px; }
	.pg-plan:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) { .pg *, .pg-result *, .pg-account * { animation: none !important; transition: none !important; } }

/* v1.1 · Grupos de planes, cuenta con registro, herramientas y tienda */
.pg-group-h { text-align: center; max-width: 760px; margin: 8px auto 26px; }
.pg-group-h p:last-child { margin: 0; font-size: 17px; line-height: 1.55; color: var(--a70); }
.pg-compare-lede { text-align: center; max-width: 720px; margin: -4px auto 22px; color: var(--a70); line-height: 1.55; }
.pg-compare-h { font-family: var(--f-display, Georgia, serif); font-weight: 500; font-size: 24px; margin: 30px 0 12px; }
.pg-login-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 480px)); justify-content: center; gap: 24px; align-items: start; }
.pg-login-2 .pg-login-card { width: 100%; }
.pg-reg-card { background: var(--a06); }
.pg-reg-card input[type=email] { width: 100%; border: 1.5px solid var(--a20); border-radius: 12px; padding: 12px 14px; font: 16px var(--f-body, sans-serif); color: var(--a); background: var(--w); }
.pg-reg-card input[type=text], .pg-reg-card input[type=password] { background: var(--w); }
.pg-reg .pg-consent { margin: 4px 0 14px; }
.pg-reg .pg-consent label { background: var(--w); font-weight: 400; display: flex; }
.pg-reg .pg-btn { width: 100%; justify-content: center; }
.pg-reg .pg-error { margin: 0 0 12px; }
.pg-acc-tools, .pg-shop-mine .pg-acc-tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin-bottom: 20px; }
.pg-tool.is-active { border: 2px solid var(--a); }
.pg-tool .pg-small { margin: 6px 0 0; }
.pg-shop { padding-bottom: 30px; }
.pg-shop-mine { margin-bottom: 56px; }
.pg-shop-hist { margin-top: 6px; }
.pg-shop-hist th small { display: block; font-weight: 400; font-size: 12.5px; color: var(--a70); font-family: var(--f-mono, monospace); }
.pg-shop-hist td:last-child { font-weight: 600; }
.pg-shop-empty { text-align: center; }
.pg-shop-login { margin-bottom: 40px; }
.pg-shop-login a { color: var(--a); font-weight: 700; }
.pg-shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 22px; }
.pg-plan.is-owned { border: 2px solid var(--a); }
.pg-plan.is-owned .pg-chip { left: 12px; right: 12px; justify-content: center; font-size: 12.5px; }
.pg-shop-note { display: flex; align-items: center; justify-content: center; gap: 8px; text-align: center; margin-top: 28px; flex-wrap: wrap; }
@media (max-width: 900px) { .pg-login-2 { grid-template-columns: minmax(0, 1fr); } }

/* Selector de pasarela */
.pg-gw { margin: 22px 0 6px; }
.pg-gw .pg-small { margin: 0 0 12px; }
.pg-gw-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
.pg-gw-op { cursor: pointer; position: relative; }
.pg-gw-op input { position: absolute; opacity: 0; }
.pg-gw-op span { display: flex; flex-direction: column; gap: 3px; height: 100%; padding: 14px 16px; border-radius: 14px; border: 1.5px solid var(--a20); transition: background-color .25s, color .25s, border-color .25s, box-shadow .25s; }
.pg-gw-op b { font-size: 16px; }
.pg-gw-op small { font-size: 12px; opacity: .75; font-weight: 600; }
.pg-gw-op em { font-style: normal; font-size: 12.5px; line-height: 1.35; opacity: .85; margin-top: 4px; }
.pg-gw-op:hover span { border-color: var(--a); }
.pg-gw-op input:checked + span { background: var(--a); color: var(--w); border-color: var(--a); box-shadow: 0 10px 22px rgba(11,95,168,.25); }
.pg-gw-op input:focus-visible + span { box-shadow: 0 0 0 4px var(--a20); }
/* Módulos sueltos de Gestión IA */
.pg-mod .pg-kicker { margin: 0; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; opacity: .8; }
.pg-mod .pg-seg { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.pg-mod .pg-seg label { flex: 1 1 auto; }
.pg-mod .pg-seg span { font-size: 13.5px; padding: 7px 10px; justify-content: center; }
.pg-per .pg-seg span, .pg-mod .pg-seg span { padding: 8px 10px; font-size: 13.5px; }

/* ---------- Cuentas con la marca (1.6.0) ---------- */
.pg-auth { display: flex; justify-content: center; padding: 8px 0 40px; }
.pg-auth .pg-login-card { text-align: left; }
.pg-auth .pg-login-card > .pg-res-ic { margin: 0 auto 16px; display: flex; }
.pg-auth .pg-login-card > h2, .pg-auth .pg-login-card > p { text-align: center; }
.pg-login-card input[type=email] { width: 100%; border: 1.5px solid var(--a20); border-radius: 12px; padding: 12px 14px; font: 16px var(--f-body, sans-serif); color: var(--a); }
.pg-pass { position: relative; display: block; }
.pg-pass input { padding-right: 76px !important; }
.pg-ver { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: var(--a06); color: var(--a); font: 700 13px var(--f-body, sans-serif); padding: 7px 10px; border-radius: 8px; cursor: pointer; }
.pg-recordar { display: flex !important; gap: 8px; align-items: center; font-weight: 400 !important; font-size: 14px !important; margin: 0 0 14px; }
.pg-recordar input { accent-color: #0B5FA8; width: 18px; height: 18px; }
.pg-in .pg-btn, .pg-rec .pg-btn, .pg-rst .pg-btn, .pg-del .pg-btn { width: 100%; }
.pg-fuerza { margin: -4px 0 14px; }
.pg-fuerza span { display: block; height: 6px; width: 0; border-radius: 99px; background: var(--a); transition: width .3s; }
.pg-fuerza small { display: block; margin-top: 6px; font-size: 13px; opacity: .8; }
.pg-ok-box { padding: 16px 18px; border-radius: 14px; background: var(--a); color: var(--w); margin-top: 16px; }
.pg-ok-box p { margin: 0; }
.pg-del-card p { text-align: left !important; }

/* Academia: constancias por curso */
.pg-cursos .pg-plan-body { padding-top: 22px; }
.pg-cursos-l { list-style: none; margin: 10px 0 14px; padding: 0; display: grid; gap: 8px; }
.pg-cursos-l li { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; padding: 9px 10px; border-radius: 12px; border: 1px solid rgba(11,95,168,.18); }
.pg-cursos-l li span { font-weight: 600; font-size: 15px; }
.pg-cursos-l li b { font-size: 15px; white-space: nowrap; }
.pg-btn.sm { padding: 7px 12px; font-size: 13.5px; min-height: 0; }
@media (max-width: 420px) { .pg-cursos-l li { grid-template-columns: 1fr auto; } .pg-cursos-l li .pg-btn { grid-column: 1 / -1; } }
.pg-cursos-l .pg-btn.sm { width: auto; margin-top: 0; }

/* ---------- Ingreso con redes (1.9.0): Google, Microsoft, Apple, Facebook, LinkedIn y Yahoo ---------- */
/* La interfaz usa solo azul y blanco; los logos conservan sus colores oficiales porque así lo exigen las normas de marca de cada red. */
.pg-social, .pg-soc-aviso, .pg-soc-sep, .pg-soc-nota, .pg-chk-social { --a: #0B5FA8; --w: #fff; --a70: rgba(11,95,168,.72); --a20: rgba(11,95,168,.2); --a12: rgba(11,95,168,.12); --a06: rgba(11,95,168,.06); }
.pg-social { display: grid; gap: 10px; margin: 18px 0 4px; text-align: left; }
.pg-soc-mas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pg-soc-mas .pg-soc:last-child:nth-child(odd) { grid-column: 1 / -1; }
.pg-social.is-compacto .pg-soc-mas { grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); }
.pg-social.is-compacto .pg-soc-mas .pg-soc:last-child:nth-child(odd) { grid-column: auto; }
.pg-soc { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 10px 14px; border-radius: 999px; border: 1.5px solid var(--a20); background: var(--w); color: var(--a) !important; font: 700 15px/1.2 var(--f-body, system-ui, sans-serif); text-decoration: none !important; transition: border-color .2s, box-shadow .2s, transform .2s; position: relative; }
.pg-soc:hover, .pg-soc:focus-visible { border-color: var(--a); box-shadow: 0 8px 22px var(--a12); transform: translateY(-1px); outline: none; }
.pg-soc:focus-visible { box-shadow: 0 0 0 4px var(--a20); }
.pg-soc-logo { width: 20px; height: 20px; flex: none; display: block; }
.pg-soc span { white-space: nowrap; }
.pg-soc-mas .pg-soc { padding: 10px 12px; font-size: 14.5px; gap: 8px; }
.pg-soc.is-go { pointer-events: none; opacity: .75; }
.pg-soc.is-go::after { content: ""; position: absolute; right: 14px; width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--a20); border-top-color: var(--a); animation: pgSocGira .8s linear infinite; }
@keyframes pgSocGira { to { transform: rotate(360deg); } }
.pg-social.is-compacto .pg-soc { min-height: 42px; font-size: 14px; }
.pg-soc-nota { margin: 8px 0 0; font-size: 13px; line-height: 1.45; color: var(--a70); text-align: center; }
.pg-soc-sep { display: flex; align-items: center; gap: 12px; margin: 18px 0 2px; color: var(--a70); font-size: 13.5px; }
.pg-soc-sep::before, .pg-soc-sep::after { content: ""; flex: 1; height: 1px; background: var(--a20); }
.pg-soc-aviso { max-width: 984px; margin: 0 auto 18px; padding: 14px 18px; border-radius: 14px; background: var(--a); color: var(--w); font: 600 15px/1.5 var(--f-body, system-ui, sans-serif); }
.pg-soc-aviso.is-error { background: #FEF3F2; color: #B42318; border: 2px solid #FDA29B; } /* 1.9.12: el error se ve como error */
.pg-soc-aviso, .pg-soc-fin-card, #registro, #ingresar { scroll-margin-top: 96px; } /* el encabezado fijo no tapa la tarjeta */
.pg-soc-big { display: flex; width: 56px; height: 56px; margin: 0 auto 14px; align-items: center; justify-content: center; border-radius: 50%; background: var(--a06); border: 1px solid var(--a20); }
.pg-soc-big .pg-soc-logo { width: 28px; height: 28px; }
.pg-soc-fin .pg-consent label { display: flex; gap: 10px; font-weight: 400; font-size: 14px; line-height: 1.45; }
.pg-soc-fin .pg-consent input { accent-color: #0B5FA8; width: 18px; height: 18px; flex: none; margin-top: 2px; }
.pg-soc-fin .pg-btn { width: 100%; }
.pg-soc-fin input[readonly] { background: var(--a06); }
.pg-soc-fin small { display: block; margin-top: 6px; }
.pg-soc-lista { list-style: none; margin: 12px 0; padding: 0; display: grid; gap: 8px; }
.pg-soc-lista li { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--a20); }
.pg-soc-lista .pg-soc-logo { width: 20px; height: 20px; }
.pg-soc-li-n { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.pg-soc-li-n small { font-size: 12.5px; opacity: .8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pg-soc-ok { font-weight: 700; font-size: 13px; }
.pg-soc-lista .pg-btn.sm { flex: none; }
.pg-chk-social { margin: 0 0 22px; padding: 16px 18px; border-radius: 16px; background: var(--a06); border: 1px solid var(--a20); }
.pg-chk-social p { margin: 0 0 4px; font-size: 15px; line-height: 1.5; }
.pg-chk-social .pg-social { margin-top: 10px; }
@media (prefers-reduced-motion: reduce) { .pg-soc, .pg-soc.is-go::after { transition: none; animation: none; } }
.pg-soc-cod .pg-soc-cod-txt { font-size: 15px; line-height: 1.5; text-align: center; }
.pg-soc-cod .pg-soc-cod-in { width: 100%; text-align: center; font: 700 28px/1.2 var(--f-mono, ui-monospace, monospace) !important; letter-spacing: .35em; padding: 12px 10px !important; border: 1.5px solid var(--a20, rgba(11,95,168,.2)); border-radius: 12px; color: #0B5FA8; }
.pg-soc-cod .pg-btn { width: 100%; }
.pg-linkbtn { background: none; border: 0; padding: 4px; color: #0B5FA8; font: 700 14px var(--f-body, system-ui, sans-serif); text-decoration: underline; cursor: pointer; }
.pg-linkbtn:disabled { text-decoration: none; opacity: .8; cursor: default; }
.pg-soc-cod .pg-login-links { text-align: center; }

/* Códigos de descuento y cortesía */
.pg-codigo legend, .pg-canje h3 { margin-bottom: 6px; }
.pg-codigo-row { display: flex; gap: 8px; align-items: stretch; }
.pg-codigo-row input { flex: 1; min-width: 0; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.pg-codigo-msg { min-height: 1.2em; margin: 6px 0 0; color: #B42318; }
.pg-codigo-msg.is-ok { color: #067647; }
.pg-desc { color: #067647; }
.pg-alert.is-ok { border-color: rgba(6, 118, 71, .35); background: rgba(6, 118, 71, .06); color: #067647; }
.pg-ver-todas { grid-column: 1 / -1; text-align: center; }

/* 1.9.8 · Códigos a la vista: registro y planes */
.pg-reg-cod { margin: 4px 0 14px; border: 1.5px dashed var(--a); border-radius: 12px; padding: 10px 14px; }
.pg-reg-cod summary { cursor: pointer; font-weight: 700; }
.pg-reg-cod[open] summary { margin-bottom: 8px; }
.pg-reg-cod input { text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.pg-reg-cod p { margin: 6px 0; }
.pg-error.is-ok { border-color: #067647; color: #067647; }
.pg-cod-aviso { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 18px; padding: 12px 14px; border: 1.5px dashed var(--a); border-radius: 14px; font-size: 15px; }
.pg-cod-aviso .pg-ic { flex: 0 0 auto; width: 22px; height: 22px; margin-top: 1px; }

/* 1.9.14 · Google o Microsoft, la forma recomendada */
.pg-soc-reco { margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: #ECFDF3; border: 1px solid #ABEFC6; color: #05603A; font-size: 14.5px; line-height: 1.45; }
.pg-soc-reco b { color: #05603A; }
.pg-soc-badge { display: inline-block; margin-right: 4px; padding: 2px 8px; border-radius: 999px; background: #067647; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .02em; vertical-align: 1px; }
.pg-reg-aviso { display: block; margin-top: 4px; }
/* 1.10.0 (revisión): las notas pequeñas del registro van sin transparencia y en un azul más oscuro: #0A4F8C sobre el fondo de la tarjeta (#f0f5fa) da 7,6:1 (antes #2d76b4, 4,38:1; WCAG 1.4.3 pide 4,5:1). */
.pg-reg-card .pg-small, .pg-reg-aviso { opacity: 1; color: #0A4F8C; }

/* 1.9.15 · Modo de pruebas, avisos de vencimiento y estados de reversión */
.pg-alert-prueba { background: var(--w); color: var(--a); border: 2px dashed var(--a); }
.pg-avisos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 0 0 10px; }
.pg-avisos .pg-ic { width: 16px; height: 16px; }
.pg-avisos span { flex: 1 1 200px; min-width: 0; }
.pg-link { background: none; border: 0; padding: 0; color: var(--a); font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
.pg-link:hover, .pg-link:focus-visible { text-decoration-thickness: 2px; }
.pg-link[disabled] { opacity: .6; cursor: progress; }
.pg-st.st-reversado, .pg-st.st-reembolsado, .pg-st.st-contracargo, .pg-st.st-revisar { color: #B42318; }

/* 1.9.16 · Confirmación de la baja de los avisos (el enlace del correo abre esta caja; la baja se hace con el botón) */
.pg-account.pg-avisos-wrap { padding-bottom: 0; max-width: 984px; margin: 0 auto 4px; }
.pg-avisos-confirmar { background: var(--w); color: var(--a); border: 1.5px solid var(--a); }
.pg-avisos-confirmar > div { min-width: 0; }
.pg-avisos-confirmar form { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0 0; }
.pg-avisos-confirmar .pg-btn.ghost { margin-top: 0; }
.pg-alert.pg-avisos-msg:not(.is-ok) { background: var(--w); color: var(--a); border: 1.5px solid var(--a); }

/* 1.10.0 · Mis compras con comprobante, verificación en dos pasos, renovar con un clic y ayuda */
.pg-acc-wide { grid-column: 1 / -1; }
.pg-orders small { opacity: 1; } /* 1.10.0: contraste suficiente (antes .75 quedaba en 3,6:1) */
.pg-orders li { flex-wrap: wrap; }
.pg-orders li > div:first-child { flex: 1 1 220px; min-width: 0; overflow-wrap: anywhere; }
.pg-ord-acc { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: 8px; }
.pg-ord-acc .pg-btn { margin: 0; min-height: 40px; }
.pg-ord-acc .pg-btn .pg-ic { width: 16px; height: 16px; }
.pg-2fa details { margin: 10px 0; }
.pg-2fa summary { cursor: pointer; font-weight: 700; min-height: 32px; }
.pg-2fa label { display: block; font-weight: 700; margin: 8px 0 4px; }
.pg-2fa-qr { width: 200px; max-width: 100%; aspect-ratio: 1; background: #fff; padding: 8px; border: 1px solid var(--a20); border-radius: 12px; margin: 10px 0; }
.pg-2fa-qr svg { width: 100%; height: 100%; display: block; }
.pg-2fa-codigos { margin-top: 12px; padding: 14px; border-radius: 12px; border: 2px solid var(--a); background: var(--w); }
.pg-2fa-codigos pre { font-size: 17px; line-height: 1.7; columns: 2; background: var(--a06); padding: 10px 14px; border-radius: 10px; white-space: pre-wrap; }
.pg-2fa code { font-size: 15px; letter-spacing: 1px; overflow-wrap: anywhere; }
.pg-renovar .pg-btn { margin-top: 8px; }
.pg-ayuda-indice { margin: 0 0 18px; line-height: 2; }
.pg-ayuda-sec { padding: 18px 20px; border-radius: 16px; border: 1px solid var(--a20); background: var(--w); margin: 0 0 14px; }
.pg-ayuda-sec h3 { margin: 0 0 8px; font-size: 21px; }
.pg-ayuda-sec ol { padding-left: 20px; }
@media (max-width: 480px) { .pg-2fa-codigos pre { columns: 1; } .pg-ayuda-sec { padding: 14px; } }
