:root { --portal-ink:#172033; --portal-muted:#647289; --portal-border:#e3e8ef; --portal-soft:#fff9f6; }
.portal { overflow-x:clip; color:var(--portal-ink); background:#fff; font-family:Nunito,Arial,sans-serif; }
.portal *, .portal *::before, .portal *::after { box-sizing:border-box; }
.portal__shell { width:min(calc(100% - 56px),1392px); margin-inline:auto; }
.portal__header { min-height:76px; display:grid; grid-template-columns:250px 1fr auto; align-items:center; gap:28px; }
.portal__brand { display:flex; align-items:center; width:100%; height:64px; overflow:hidden; }
.portal__brand img { display:block; width:230px; max-height:58px; object-fit:contain; object-position:left center; clip-path:inset(0 0 9% 0); }
.portal__nav { display:flex; justify-content:center; align-items:center; gap:clamp(24px,3.5vw,54px); }
.portal__nav a { color:var(--portal-ink); font-size:15px; font-weight:800; text-decoration:none; white-space:nowrap; }
.portal__nav a:hover,.portal__nav a:focus-visible { color:var(--portal-primary); }
.portal__header-actions { display:flex; gap:12px; }
.portal__button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:11px 22px; border:1px solid var(--portal-primary); border-radius:8px; background:var(--portal-primary); color:#fff; font:800 15px/1 Nunito,Arial,sans-serif; text-decoration:none; cursor:pointer; transition:transform .16s ease,box-shadow .16s ease; }
.portal__button:hover,.portal__button:focus-visible { color:#fff; box-shadow:0 8px 18px color-mix(in srgb,var(--portal-primary) 30%,transparent); transform:translateY(-1px); }
.portal__button--outline { min-width:160px; background:#fff; color:var(--portal-primary); }.portal__button--outline:hover,.portal__button--outline:focus-visible{color:var(--portal-primary)}
.portal__button--storefront{min-width:184px}.portal__header-actions .portal__button:last-child{min-width:166px}.portal__menu-toggle{display:none}
.portal__hero { position:relative; min-height:367px; isolation:isolate; background:linear-gradient(90deg,rgba(255,250,247,.98) 0%,rgba(255,250,247,.90) 31%,rgba(255,250,247,.26) 61%,rgba(255,250,247,.12) 100%),var(--portal-hero-image) center/cover no-repeat; }
.portal__hero-grid { min-height:367px; display:grid; grid-template-columns:minmax(0,1fr) 338px; align-items:center; gap:24px; }
.portal__hero-copy { max-width:490px; padding-bottom:47px; }
.portal__eyebrow { margin:0 0 14px; color:#16999b; font-size:13px; font-weight:900; letter-spacing:.17em; text-transform:uppercase; }
.portal__hero h1 { max-width:455px; margin:0; font-family:Georgia,serif; font-size:43px; line-height:1.08; letter-spacing:-.027em; }
.portal__description { max-width:410px; margin:18px 0 25px; font-size:16px; line-height:1.5; }
.portal__hero-cta { min-height:54px; padding-inline:23px; font-size:16px; }
.portal__login-card { width:100%; margin:0; padding:16px 28px; border:1px solid #dbe1e9; border-radius:14px; background:rgba(255,255,255,.98); box-shadow:0 12px 28px rgba(30,38,48,.10); }
.portal__login-card h2{margin:0 0 3px;font-size:18px;font-weight:900}.portal__login-card>p{margin:0 0 8px;color:var(--portal-muted);font-size:11px;line-height:1.3}.portal__field{margin-top:6px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.portal__input-wrap{position:relative;display:flex;align-items:center}.portal__input-wrap>i{position:absolute;z-index:1;left:12px;color:#77859a}.portal__input-wrap input{width:100%;min-height:35px;padding:7px 38px 7px 33px;border:1px solid #d7dde5;border-radius:7px;background:#fff;color:var(--portal-ink);font:inherit;font-size:12px;outline:0}.portal__input-wrap input:focus{border-color:var(--portal-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--portal-primary) 16%,transparent)}
.portal__password-toggle{position:absolute;z-index:3;right:2px;width:34px;height:31px;border:0;border-radius:6px;background:transparent;color:#6e7b8e;cursor:pointer}.portal__password-toggle:hover,.portal__password-toggle:focus-visible{background:#f4f6f8;color:var(--portal-primary)}
.portal__login-options{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0;font-size:11px}.portal__login-options label{white-space:nowrap;margin:0}.portal__login-options a,.portal__register-copy a{color:var(--portal-primary);font-weight:800;text-decoration:none}.portal__button--submit,.portal__button--secondary{width:100%;min-height:36px;padding-block:8px;font-size:13px}.portal__button--secondary{border-color:#77aeea;background:#fff;color:#287fd5}.portal__button--secondary:hover,.portal__button--secondary:focus-visible{color:#287fd5}.portal__divider{display:flex;align-items:center;gap:12px;margin:8px 0;color:#8b96a6;font-size:11px}.portal__divider::before,.portal__divider::after{content:'';flex:1;height:1px;background:var(--portal-border)}.portal__register-copy{text-align:center;margin:8px 0 0!important;font-size:11px!important}.portal__error{padding:8px;border:1px solid #e5a0a0;border-radius:7px;background:#fff5f5;color:#b72b2b!important;font-weight:700}
.portal__brands{position:relative;z-index:2;margin-top:-1px;padding:10px 20px 13px;border:1px solid var(--portal-border);border-radius:12px;background:#fff;box-shadow:0 4px 16px rgba(34,42,52,.09)}.portal__section-label{margin:0 0 8px;text-align:center;font-size:13px;font-weight:900;letter-spacing:.10em;text-transform:uppercase}.portal__brand-carousel{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:8px}.portal__brand-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.portal__brand-track::-webkit-scrollbar{display:none}.portal__brand-logo{display:grid;flex:1 0 145px;min-height:52px;padding:6px 14px;border-right:1px solid var(--portal-border);place-items:center;scroll-snap-align:start}.portal__brand-logo img{display:block;width:100%;max-width:130px;height:42px;object-fit:contain}.portal__carousel-button{width:34px;height:34px;border:1px solid #d7dde5;border-radius:50%;background:#fff;color:var(--portal-ink);cursor:pointer}
.portal__section{padding:24px 0 16px}.portal__section-heading{margin-bottom:18px}.portal__section-heading h2{margin:0;font-size:31px;line-height:1.12}.portal__section-heading p:not(.portal__eyebrow){margin:8px 0 0;color:var(--portal-muted);font-size:16px}
.portal__category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.portal__category-card{display:grid;grid-template-columns:62px minmax(0,1fr) minmax(0,48%);aspect-ratio:16/7;overflow:hidden;border-radius:10px;background:color-mix(in srgb,var(--category-color) 11%,#fff);color:var(--portal-ink);text-decoration:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}.portal__category-icon{display:grid;grid-column:1;grid-row:1;place-self:start center;width:42px;height:42px;margin-top:16px;place-items:center;border-radius:50%;background:var(--category-color);color:#fff;font-size:17px}.portal__category-copy{display:flex;grid-column:2;grid-row:1;min-width:0;flex-direction:column;align-items:flex-start;justify-content:center;padding:15px 8px 15px 0}.portal__category-card h3{margin:0 0 6px;font-family:Georgia,serif;font-size:21px;line-height:1.08}.portal__category-description{margin:0 0 9px;font-size:13px;line-height:1.28}.portal__category-card strong{margin-top:auto;color:var(--category-color);font-size:13px}.portal__category-media{grid-column:3;grid-row:1;min-width:0;background:var(--category-image) right center/cover no-repeat}
.portal__commercial{padding:16px 0 31px}.portal__commercial-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(390px,1fr);gap:20px;align-items:end}.portal__commercial-title{margin:0 0 10px}.portal__commercial-title h2{margin:0;font-size:17px;letter-spacing:.06em;text-transform:uppercase}.portal__commercial-title .portal__eyebrow{display:none}.portal__promotion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.portal__promotion-card{display:grid;grid-template-columns:29% minmax(0,1fr) 29%;height:132px;overflow:hidden;border:1px solid var(--portal-border);border-radius:9px;background:#fff;color:var(--portal-ink);text-decoration:none}.portal__promotion-badge{display:grid;grid-column:1;grid-row:1;place-items:center;padding:8px;text-align:center;background:#fff0ef;color:var(--portal-primary);font-size:26px;font-weight:900;line-height:.95}.portal__promotion-card:nth-child(2) .portal__promotion-badge{background:#eff9e9;color:#36a947}.portal__promotion-card:nth-child(3) .portal__promotion-badge{background:#fff4dc;color:#ed9c00}.portal__promotion-copy{display:flex;grid-column:2;grid-row:1;min-width:0;flex-direction:column;justify-content:center;gap:7px;padding:12px 5px 12px 12px}.portal__promotion-title{font-size:13px;font-weight:800;line-height:1.22}.portal__promotion-card small{color:var(--portal-muted);font-size:12px}.portal__promotion-media{grid-column:3;grid-row:1;min-width:0;background:var(--promotion-image) right bottom/contain no-repeat}.portal__promotion-note{margin:9px 0 0;color:var(--portal-muted);font-size:11px}.portal__benefit-stack{display:grid;gap:10px}.portal__benefit-card{display:grid;grid-template-columns:82px minmax(0,1fr) 34%;height:94px;overflow:hidden;border:1px solid var(--portal-border);border-radius:9px;background:#edf7ff}.portal__benefit-card--payments{background:#f3faee}.portal__benefit-icon{display:grid;grid-column:1;grid-row:1;place-self:center;width:58px;height:58px;place-items:center;border-radius:50%;background:#2580d9;color:#fff;font-size:25px}.portal__benefit-card--payments .portal__benefit-icon{background:#39ad44}.portal__benefit-copy{display:flex;grid-column:2;grid-row:1;min-width:0;flex-direction:column;justify-content:center;padding:10px 4px}.portal__benefit-card h2{margin:0 0 4px;font-size:16px}.portal__benefit-card p{margin:0;font-size:12px;line-height:1.34}.portal__benefit-media{grid-column:3;grid-row:1;min-width:0;background:var(--benefit-image) right center/contain no-repeat}
@media(max-width:1120px){.portal__shell{width:min(calc(100% - 40px),984px)}.portal__header{grid-template-columns:190px 1fr;gap:18px;padding:10px 0}.portal__header-actions{grid-column:1/-1;justify-content:flex-end}.portal__brand img{width:184px}.portal__hero-grid{grid-template-columns:minmax(0,1fr) 320px}.portal__hero h1{font-size:38px}.portal__category-card{aspect-ratio:16/7}.portal__commercial-grid{grid-template-columns:1fr}.portal__benefit-stack{grid-template-columns:1fr}.portal__promotion-card{height:132px}}
@media(max-width:820px){.portal__shell{width:min(calc(100% - 28px),680px)}.portal__header{grid-template-columns:1fr auto;padding:9px 0}.portal__menu-toggle{display:block;border:0;background:transparent;padding:10px;cursor:pointer}.portal__menu-toggle span{display:block;width:24px;height:2px;margin:5px;background:var(--portal-ink)}.portal__nav{display:none;grid-column:1/-1;flex-direction:column;align-items:stretch;gap:0}.portal__nav.is-open{display:flex}.portal__nav a{padding:12px 0;border-top:1px solid var(--portal-border)}.portal__header-actions{grid-column:1/-1;justify-content:stretch}.portal__header-actions .portal__button{flex:1}.portal__hero{background:linear-gradient(90deg,rgba(255,250,247,.95),rgba(255,250,247,.62)),var(--portal-hero-mobile-image) 60% center/cover no-repeat}.portal__hero-grid{min-height:0;grid-template-columns:1fr;padding:34px 0}.portal__hero-copy{max-width:520px;padding-bottom:15px}.portal__login-card{max-width:520px;margin:0}.portal__brands{width:100%;border-radius:0}.portal__benefit-stack{grid-template-columns:1fr}.portal__promotion-note{margin-bottom:8px}}
@media(max-width:480px){.portal__shell{width:min(calc(100% - 24px),100%)}.portal__brand{height:55px}.portal__brand img{width:152px;max-height:50px}.portal__header-actions{flex-direction:column}.portal__header-actions .portal__button{width:100%}.portal__hero-grid{padding:30px 0}.portal__hero-copy{padding-bottom:22px}.portal__hero h1{font-size:35px}.portal__description{font-size:16px}.portal__login-card{padding:19px 16px}.portal__login-options{align-items:flex-start;flex-direction:column}.portal__brands{padding:10px 8px}.portal__brand-logo{flex-basis:125px}.portal__brand-logo img{max-width:114px;height:38px}.portal__section{padding-top:31px}.portal__section-heading h2{font-size:28px}.portal__category-grid{grid-template-columns:1fr}.portal__category-card{grid-template-columns:49px minmax(0,1fr) minmax(122px,42%);min-height:152px;aspect-ratio:16/7}.portal__category-icon{width:38px;height:38px;margin-top:13px;font-size:15px}.portal__category-copy{padding:13px 4px 12px 0}.portal__category-card h3{margin-bottom:5px;font-size:17px}.portal__category-description{margin-bottom:7px;font-size:12px;line-height:1.25}.portal__category-card strong{font-size:12px}.portal__commercial{padding-top:20px}.portal__promotion-grid{grid-template-columns:1fr}.portal__promotion-card{grid-template-columns:78px minmax(0,1fr) 92px;min-height:124px;height:124px}.portal__promotion-badge{font-size:23px}.portal__promotion-copy{gap:5px;padding:10px 4px 10px 10px}.portal__promotion-title{font-size:12px}.portal__promotion-card small{font-size:11px}.portal__benefit-card{grid-template-columns:68px minmax(0,1fr) 96px;min-height:112px;height:112px}.portal__benefit-icon{width:48px;height:48px;font-size:20px}.portal__benefit-card h2{font-size:15px}.portal__benefit-card p{font-size:11px;line-height:1.28}.float.portal__floating-hidden{opacity:0;pointer-events:none}}

/* Responsive integrity: preserve the approved visual composition without
   allowing its independent icon, copy and media areas to collide. */
@media (min-width:821px) and (max-width:1120px){
  .portal__category-card{grid-template-columns:54px minmax(0,1fr) minmax(152px,44%)}
  .portal__category-icon{width:40px;height:40px;margin-top:14px;font-size:16px}
  .portal__category-copy{padding:13px 7px 13px 0}
  .portal__category-card h3{font-size:clamp(17px,1.9vw,20px)}
  .portal__category-description{font-size:clamp(11px,1.3vw,13px)}
  .portal__category-card strong{font-size:12px}
  .portal__promotion-card{grid-template-columns:27% minmax(0,1fr) 31%;height:auto;min-height:126px}
  .portal__benefit-card{grid-template-columns:76px minmax(0,1fr) 33%;height:auto;min-height:92px}
}

@media (min-width:641px) and (max-width:820px){
  .portal__category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .portal__category-card{grid-template-columns:46px minmax(0,1fr) minmax(118px,42%);aspect-ratio:16/7}
  .portal__category-icon{width:36px;height:36px;margin-top:12px;font-size:14px}
  .portal__category-copy{padding:10px 5px 10px 0}
  .portal__category-card h3{font-size:clamp(15px,2vw,18px);line-height:1.1}
  .portal__category-description{margin-bottom:6px;font-size:clamp(10px,1.45vw,12px);line-height:1.23}
  .portal__category-card strong{font-size:11px}
  .portal__promotion-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .portal__promotion-card{grid-template-columns:76px minmax(0,1fr) 94px;height:auto;min-height:124px}
  .portal__benefit-card{grid-template-columns:70px minmax(0,1fr) 116px;height:auto;min-height:108px}
}

@media (max-width:640px){
  .float.portal__floating-hidden{opacity:0;pointer-events:none}
  .portal__categories{padding:24px 0}
  .portal__category-grid{grid-template-columns:1fr;gap:12px}
  .portal__category-card{grid-template-columns:54px minmax(0,1fr) minmax(132px,40%);min-height:168px;aspect-ratio:auto}
  .portal__category-icon{width:42px;height:42px;margin-top:15px;font-size:16px}
  .portal__category-copy{padding:15px 7px 15px 0}
  .portal__category-card h3{font-size:clamp(18px,5vw,21px);line-height:1.1}
  .portal__category-description{margin-bottom:8px;font-size:clamp(12px,3.5vw,14px);line-height:1.28}
  .portal__category-card strong{font-size:13px}
  .portal__commercial-grid{gap:18px}
  .portal__promotion-grid{grid-template-columns:1fr;gap:10px}
  .portal__promotion-card{grid-template-columns:80px minmax(0,1fr) 96px;height:auto;min-height:126px}
  .portal__promotion-badge{font-size:clamp(25px,8vw,34px);line-height:.92}
  .portal__promotion-copy{padding:13px 6px 12px 12px}
  .portal__promotion-title{font-size:clamp(13px,4vw,16px);line-height:1.17}
  .portal__promotion-copy small{font-size:clamp(11px,3.4vw,13px)}
  .portal__benefit-card{grid-template-columns:70px minmax(0,1fr) 106px;height:auto;min-height:118px}
  .portal__benefit-icon{width:52px;height:52px;font-size:21px}
  .portal__benefit-copy{padding:13px 6px 12px 0}
  .portal__benefit-card h2{font-size:clamp(16px,4.6vw,20px);line-height:1.12}
  .portal__benefit-card p{font-size:clamp(11px,3.4vw,13px);line-height:1.28}
  .portal__category-copy,.portal__promotion-copy,.portal__benefit-copy{min-width:0;overflow-wrap:anywhere}
}

/* Fourth promotion: a large label gets its own column, never overlapping copy. */
#promociones .portal__promotion-card:nth-child(4){grid-template-columns:42% minmax(0,1fr) 26%!important}
#promociones .portal__promotion-card:nth-child(4) .portal__promotion-badge{position:static!important;display:grid!important;grid-column:1!important;grid-row:1!important;place-items:center!important;width:auto!important;height:auto!important;padding:7px!important;border-radius:0!important;background:#fff0ef!important;color:var(--portal-primary)!important;font-size:clamp(18px,1.8vw,24px)!important;line-height:.96!important;white-space:nowrap!important;overflow:hidden!important}
#promociones .portal__promotion-card:nth-child(4) .portal__promotion-copy{display:flex!important;grid-column:2!important;grid-row:1!important;min-width:0!important;justify-content:center!important;padding:12px 5px 12px 12px!important}
#promociones .portal__promotion-card:nth-child(4) .portal__promotion-media{grid-column:3!important;grid-row:1!important;min-width:0!important;background-position:right bottom!important}
#promociones .portal__promotion-card:nth-child(4) .portal__promotion-title{font-size:13px!important;line-height:1.18!important;overflow-wrap:anywhere!important}
@media (max-width:640px){#promociones .portal__promotion-card:nth-child(4){grid-template-columns:38% minmax(0,1fr) 27%!important}#promociones .portal__promotion-card:nth-child(4) .portal__promotion-badge{font-size:clamp(20px,7vw,28px)!important}}
