.portal-banners{display:grid;gap:.7rem;margin:1rem 0}.portal-banner{display:flex;align-items:center;gap:1rem;border:1px solid #c6a05b!important;background:linear-gradient(125deg,#501018,#251514)!important;padding:1rem!important;min-width:0}.portal-banner img{width:100px;height:100px;object-fit:cover;border-radius:14px}.portal-banner h2{font-size:1.1rem;margin:.2rem 0;color:#ffe0a0}.portal-banner p{font-size:.9rem;margin:.3rem 0;white-space:pre-line;overflow-wrap:anywhere}.portal-banner a{color:#ffe0a0;font-weight:700}.portal-banner small{font-size:.65rem;letter-spacing:.12em}.portal-news{margin-block:1rem}.portal-news img{max-height:260px;width:100%;object-fit:cover;border-radius:12px}.plain-content{white-space:pre-wrap;overflow-wrap:anywhere}.consultation-messages{display:flex;flex-direction:column;gap:.7rem;max-height:60vh;overflow:auto;padding:.5rem;overscroll-behavior:contain}.consultation-message{padding:.8rem 1rem;max-width:88%;border-radius:15px;overflow-wrap:anywhere}.consultation-message.customer{align-self:flex-end;background:#44161d;border:1px solid #93604f}.consultation-message.team{align-self:flex-start;background:#27231b;border:1px solid #c7a361}.consultation-message strong{font-size:.8rem;color:#ffe0a0}.consultation-message p{white-space:pre-wrap;margin:.4rem 0}.consultation-message small{font-size:.7rem;color:#cfbca5}.consultation textarea{width:100%;box-sizing:border-box;resize:vertical}.consultation form{margin-top:1rem}.consultation form small{display:block;margin:.6rem 0;color:#cfbca5}@media(max-width:480px){.portal-banner img{width:64px;height:84px}.portal-banner{gap:.6rem}.portal-banner p{font-size:.8rem}.consultation-message{max-width:94%}}
@media(max-width:600px){.portal-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;gap:4px;margin-bottom:6px}.portal-tools a{white-space:normal;text-align:center;padding:8px 9px;font-size:.75rem;display:grid;place-items:center;min-width:0}}
.stack-form textarea{display:block;width:100%;box-sizing:border-box;margin-top:.5rem;min-height:100px;border:1px solid #906548;border-radius:14px;padding:.8rem;color:#fff0df;background:#210a10;font:inherit;resize:vertical}.stack-form textarea:focus{outline:2px solid #d6ad66;outline-offset:2px}.stack-form label{display:block}.promo-code-form input[type=checkbox]{width:22px;height:22px;vertical-align:middle;margin-right:.6rem;accent-color:#d6ad66}
.stack-form textarea{font-size:16px}

/* Lenguaje visual compartido del centro de beneficios y atención. */
.portal-tools-hub { min-width:0; margin:22px 0; }
.portal-tools-hub .section-title h2 { margin:0; color:#fff0bd; font-size:1.2rem; }
.portal-tools-home .portal-tools { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0; padding:0; }
.portal-tools .portal-tool { display:flex; align-items:center; gap:10px; min-width:0; min-height:74px; padding:14px; text-align:left; white-space:normal; border:1px solid #d6af664d; border-radius:16px; background:linear-gradient(135deg,#4b1722f5,#260c15f5); color:#f9e8ce; box-shadow:inset 0 1px #fff0b71a; }
.portal-tool-icon,.benefit-icon { display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px; border:1px solid #edc77f66; border-radius:13px; color:#ffe0a0; background:linear-gradient(135deg,#f4cd7830,#ba89460d); }
.portal-tool-icon svg { width:23px; height:23px; }
.portal-tool-copy { display:grid; gap:5px; flex:1; min-width:0; }
.portal-tool-copy strong { font-size:.78rem; line-height:1.35; letter-spacing:0; }
.portal-tool-copy small { font-size:.68rem; line-height:1.4; color:#d6bfb4; }
.portal-tool-arrow { color:#e6c386; font-size:1.1rem; }
.portal-tools .portal-tool-premium { border-color:#ecc7749c; background:radial-gradient(ellipse at top left,#d3a74e20,transparent 80%),linear-gradient(135deg,#52202a,#2d1118); }
.portal-tools .portal-tool-estadisticas { border-color:#caa96780; }
.portal-tools-interior { margin:0 0 22px; }
.portal-tools-home .portal-tools-menu>summary { display:none; }
.portal-tools-interior .portal-tools-menu { min-width:0; border:1px solid #c8a2614d; border-radius:14px; background:#280c15e8; }
.portal-tools-interior .portal-tools-menu>summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:10px 14px; cursor:pointer; list-style:none; color:#f7deb1; font-size:.77rem; font-weight:750; }
.portal-tools-menu>summary::-webkit-details-marker { display:none; }
.portal-tools-menu>summary:focus-visible { outline:2px solid #f3d391; outline-offset:3px; border-radius:14px; }
.portal-tools-menu-action { display:flex; align-items:center; gap:8px; color:#d7b680; font-size:.72rem; white-space:nowrap; }
.portal-tools-menu-action>span { transition:transform .15s ease; }
.portal-tools-menu[open] .portal-tools-menu-action>span { transform:rotate(45deg); }
.portal-tools-interior .portal-tools { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:0; padding:0 10px 10px; }
.portal-tools-interior .portal-tool { min-height:48px; padding:9px 10px; gap:7px; border-radius:10px; background:#3c1620c4; }
.portal-tools-interior .portal-tool-icon { width:22px; height:22px; flex-basis:22px; border:0; background:none; }
.portal-tools-interior .portal-tool-icon svg { width:20px; height:20px; }
.portal-tools-interior .portal-tool-copy strong { font-size:.75rem; }
@media(max-width:700px) { .portal-tools-interior .portal-tools { grid-template-columns:repeat(2,minmax(0,1fr)); } .portal-tools-interior .portal-tool-copy strong { font-size:.69rem; } }
.portal-tools .portal-tool[aria-current=page] { border-color:#efd08c; color:#ffe8b1; background:linear-gradient(135deg,#8a54293d,#431b26); box-shadow:inset 0 -2px #e9c478; }
.portal-tool:focus-visible { outline:3px solid #ffe2a3; outline-offset:3px; }
@media(hover:hover) { .portal-tools .portal-tool:hover { border-color:#efcf8b; background-color:#56222d; } }
@media(max-width:700px) { .portal-tools-home .portal-tools { grid-template-columns:repeat(2,minmax(0,1fr)); } .portal-tools-home .portal-tool { padding:12px 10px; gap:8px; } .portal-tools-home .portal-tool-icon { width:31px; height:34px; flex-basis:31px; border-radius:10px; } .portal-tools-home .portal-tool-copy strong { font-size:.76rem; } .portal-tools-home .portal-tool-copy small { font-size:.69rem; } .portal-tool-arrow { display:none; } }

.benefit-page { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; max-width:1120px; margin:0 auto; min-width:0; }
.benefit-page>* { min-width:0; max-width:100%; }
.benefit-hero { position:relative; isolation:isolate; overflow:hidden; padding:clamp(24px,4vw,38px); border:1px solid #e4bf73b3; border-radius:26px; color:#fff0d6; background:radial-gradient(ellipse at top right,#d6ac5526,transparent 70%),linear-gradient(125deg,#581b28f5,#230d16f7); box-shadow:inset 0 1px #fff1c04d,0 16px 40px #16050b52; }
.benefit-hero::after { content:''; position:absolute; z-index:-1; width:240px; height:240px; border:1px solid #e8bd5f21; right:-90px; top:-110px; border-radius:50%; box-shadow:0 0 0 28px #e8bd5f08,0 0 0 58px #e8bd5f06; pointer-events:none; }
.benefit-hero-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.benefit-icon { width:52px; height:52px; flex-basis:52px; border-radius:17px; color:#542413; background:linear-gradient(135deg,#fff0bf,#d9ae5c 60%,#f3d991); border-color:#ffedb3; box-shadow:inset 0 1px #fff7df,0 5px 16px #13050b40; }
.benefit-icon svg { width:30px; height:30px; }
.benefit-hero h1 { max-width:24ch; margin:0 0 12px; color:#ffedbe; font-size:clamp(1.8rem,5vw,3.1rem); line-height:1.09; letter-spacing:-.045em; }
.benefit-hero p { max-width:60ch; margin:0; color:#ead4c8; font-size:.94rem; line-height:1.6; }
.benefit-hero .eyebrow { margin-bottom:10px; font-size:.63rem; color:#ddb97a; }
.benefit-tag { display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border:1px solid #dfbf7b59; border-radius:30px; color:#f3dca5; background:#14050b30; font-size:.68rem; font-weight:750; }
.benefit-panel { padding:clamp(20px,3vw,28px); border-color:#bd975047; background:linear-gradient(140deg,#36121bef,#200c14f5); border-radius:22px; }
.benefit-panel h2,.benefit-details h2 { margin:0 0 12px; color:#ffebbc; font-size:1.25rem; line-height:1.25; }
.benefit-panel h3 { color:#ffebbc; }
.benefit-page p { font-size:.88rem; line-height:1.65; }
.benefit-panel>p:last-child { margin-bottom:0; }
.benefit-page .microcopy { text-align:left; font-size:.74rem; color:#cdb6aa; }
.benefit-page .stack-form { gap:16px; }
.benefit-page label { font-size:.85rem; line-height:1.5; color:#f0ddc6; }
.benefit-page .stack-form label { display:grid; gap:7px; }
.benefit-page .benefit-choice,.benefit-choice { display:flex!important; align-items:flex-start; gap:10px!important; padding:12px; border:1px solid #d2ac602b; border-radius:12px; background:#13050b33; font-size:.76rem; line-height:1.55; color:#e7d0bb; }
.benefit-page .benefit-choice input[type=checkbox],.benefit-choice input[type=checkbox] { flex:0 0 20px; width:20px; height:20px; min-height:20px; margin:1px 0 0; accent-color:#dcb96f; }
.benefit-page input:not([type=hidden]):not([type=checkbox]),.benefit-page select,.benefit-page textarea { width:100%; max-width:100%; font-size:16px; border-radius:12px; min-height:46px; }
.benefit-page .button { font-size:.83rem; min-height:46px; }
.benefit-page .button.action-create { animation:none; }
.benefit-page .button.action-create::after { animation:none; }
.benefit-state { display:flex; align-items:flex-start; gap:12px; padding:17px 19px; border:1px solid #caa5684d; border-radius:17px; color:#ead5b9; background:#3d27194d; }
.benefit-state>svg { flex:0 0 23px; width:23px; height:23px; color:#e4bd75; }
.benefit-state strong { display:block; margin-bottom:4px; color:#ffe3aa; font-size:.9rem; }
.benefit-state p { margin:0; font-size:.79rem; line-height:1.6; }
.benefit-empty { display:grid; justify-items:center; text-align:center; gap:10px; padding:27px 14px; color:#dbc5b7; }
.benefit-empty .portal-tool-icon { width:46px; height:46px; }
.benefit-empty h3 { margin:0; font-size:1rem; color:#f1dfbf; }
.benefit-empty p { margin:0; max-width:40ch; font-size:.8rem; }
.benefit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; }
.benefit-details { border:1px solid #c9a25842; border-radius:18px; padding:0!important; overflow:hidden; background:#2d111aeb; }
.benefit-details>summary { padding:18px 20px; cursor:pointer; font-size:.85rem; font-weight:750; color:#f2d8a5; line-height:1.5; }
.benefit-details>summary::marker { color:#b69251; }
.benefit-details-body { display:grid; gap:12px; padding:0 20px 20px; }
.benefit-details-body>p { margin:0; }
.benefit-details p { font-size:.79rem; color:#d4bfb1; }
.benefit-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; margin-top:18px; padding-top:16px; border-top:1px solid #bc965838; font-size:.78rem; color:#dec39a; }
.benefit-section-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px; }
.benefit-section-heading h2 { margin:0; }
.benefit-section-heading>span { font-size:.72rem; color:#c8aa8a; }
.benefit-back { display:inline-flex; align-items:center; gap:8px; width:fit-content; font-size:.8rem; color:#f0cf8e; }
.benefit-page .table-wrap,.benefit-page .plus-table { max-width:100%; overflow-x:auto; }
.benefit-page table { width:100%; border-collapse:collapse; font-size:.8rem; }
.benefit-page th,.benefit-page td { text-align:left; padding:12px; border-bottom:1px solid #c9a66b30; }
.benefit-page th { color:#dbc095; font-weight:650; font-size:.73rem; }
.benefit-page td { color:#efddc9; }
.benefit-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.benefit-summary article { display:grid; gap:12px; align-content:start; }
.benefit-summary small { font-size:.73rem; color:#c8ac8c; }
.benefit-summary strong { color:#ffdfa4; font-size:clamp(1.2rem,3vw,2rem); overflow-wrap:anywhere; }
.benefit-date-filter { grid-template-columns:repeat(2,minmax(0,1fr)) auto; align-items:end; }
.comparison-number { display:block; margin:18px 0; color:#ffe1a0; font-size:4rem; font-weight:850; line-height:1; letter-spacing:-.05em; }
.comparison-card dl { margin:18px 0 0; display:grid; gap:13px; padding-top:17px; border-top:1px solid #bc985a38; }
.comparison-card dl>div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:7px; font-size:.77rem; }
.comparison-card dt { color:#c4ac94; }
.comparison-card dd { margin:0; color:#ead2ac; }
@media(max-width:700px) { .benefit-summary { grid-template-columns:1fr; } .benefit-summary article { display:flex; align-items:center; justify-content:space-between; gap:16px; } .benefit-date-filter { grid-template-columns:repeat(2,minmax(0,1fr)); } .benefit-date-filter>.button { grid-column:1/-1; } }
.renewal-panel .benefit-details-body>form { margin:0; }
.renewal-panel .benefit-details-body>strong { color:#fae4ae; font-size:.9rem; }
.renewal-status { display:inline-block; margin-left:8px; padding:3px 8px; border:1px solid #c6a46a45; border-radius:8px; font-size:.65rem; color:#d4bb93; vertical-align:middle; }
.renewal-conditions { padding-top:8px; border-top:1px solid #bc985a33; }
.renewal-conditions>summary { color:#c4ab91; font-size:.73rem; cursor:pointer; }
.renewal-conditions p { margin:10px 0 0; font-size:.73rem; }
@media(max-width:700px) { .benefit-grid { grid-template-columns:minmax(0,1fr); } .benefit-page { gap:14px; } .benefit-hero { padding:24px 20px; } .benefit-hero h1 { font-size:1.95rem; } .benefit-panel { padding:20px 17px; } .benefit-hero p { font-size:.85rem; } }

.code-input-wrap { position:relative; }
.benefit-page .promo-code-form input[name=codigo] { font-size:1.2rem; letter-spacing:.13em; font-weight:800; text-transform:uppercase; min-height:60px; text-align:center; border-color:#c7a15d99; background:#1c0911; }
.promo-code-form .button { width:100%; }
.benefit-steps { display:grid; gap:16px; margin:0; padding:0; list-style:none; counter-reset:benefit-step; }
.benefit-steps li { display:flex; gap:12px; font-size:.83rem; line-height:1.6; color:#dcc5b7; counter-increment:benefit-step; }
.benefit-steps li::before { content:counter(benefit-step,decimal-leading-zero); flex:0 0 27px; color:#e9c789; font-weight:800; }
.benefit-steps strong { display:block; color:#f3e1bd; }
.code-history-row,.consultation-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 0; border-bottom:1px solid #c7a15d2e; }
.code-history-row>div,.consultation-row>div { min-width:0; }
.code-history-row strong { color:#ffe4a6; }
.code-history-row small,.consultation-row small { display:block; margin-top:6px; color:#c8afa1; font-size:.72rem; }
.code-history-row>strong { white-space:nowrap; }
.consultation-row strong { display:block; font-size:.92rem; color:#f7e7c7; }
.consultation-row .benefit-tag { font-size:.65rem; }
.consultation-row:focus-visible { outline:2px solid #e6c279; outline-offset:4px; }
.consultation-status { color:#ccaf86; font-size:.72rem; }
.consultation-form-note { display:flex; align-items:center; gap:8px; margin:0; color:#cbb29e; font-size:.73rem; }
.consultation-form-note svg { width:18px; height:18px; }
.benefit-page .consultation { padding:0; overflow:hidden; }
.benefit-page .consultation-messages { max-height:62vh; min-height:180px; padding:20px 15px; gap:14px; background:#1808115c; }
.benefit-page .consultation-message { padding:13px 15px; border-radius:17px; }
.benefit-page .consultation-message.customer { background:linear-gradient(140deg,#6a2432,#471827); border-color:#ad6e7266; border-bottom-right-radius:5px; }
.benefit-page .consultation-message.team { background:linear-gradient(140deg,#4c3820,#2a211b); border-color:#cfad6359; border-bottom-left-radius:5px; }
.benefit-page .consultation-message strong { color:#ffdda0; }
.consultation-composer { padding:20px; border-top:1px solid #caa15d3b; }
.benefit-page .consultation-composer form { margin:0; }
.consultation-composer .button { justify-self:end; }
.consultation [data-consulta-conexion]:empty { display:none; }
.consultation [data-consulta-conexion] { margin:0; padding:10px 20px; font-size:.74rem; }
.consultation .benefit-pagination { padding:12px 20px; margin:0; }
