/* RED:43 — RPL login presentation, scoped to the Rede Portal da Luz host. */
.portal-social .portal-login-page{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);align-items:center;gap:clamp(32px,7vw,96px);width:min(1120px,100%);margin:clamp(32px,6vh,72px) auto 80px;padding:clamp(12px,2vw,28px)}
.portal-social .portal-login-presentation{position:relative;isolation:isolate;min-width:0;padding:clamp(8px,2vw,24px) 0}
.portal-social .portal-login-presentation:before{position:absolute;z-index:-1;top:5%;left:-16%;width:min(490px,90vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(24,119,242,.09),rgba(24,119,242,0) 68%);content:"";pointer-events:none}
.portal-social .portal-login-brand{display:flex;align-items:center;gap:18px;margin-bottom:34px;color:#1877F2;font-size:clamp(24px,3vw,36px);font-weight:800;line-height:1.12;letter-spacing:-.035em}
.portal-social .portal-login-brand img{display:block;flex:none;width:82px;height:82px;border-radius:20px;object-fit:contain;box-shadow:0 10px 30px rgba(24,119,242,.16)}
.portal-social .portal-login-eyebrow{margin:0 0 12px;color:#9a7926;font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.portal-social .portal-login-presentation h1{max-width:620px;margin:0 0 20px;color:#173d63;font-size:clamp(38px,4.6vw,58px);font-weight:750;line-height:1.08;letter-spacing:-.04em}
.portal-social .portal-login-description{max-width:590px;margin:0;color:#526577;font-size:18px;line-height:1.75}
.portal-social .portal-login-form-column{min-width:0}
.portal-social .portal-login-card{width:100%;max-width:430px;margin:0 auto;padding:30px;border:1px solid #e0e8ef;border-radius:18px;background:#fff;box-shadow:0 16px 48px rgba(28,59,88,.12);gap:12px}
.portal-social .portal-login-card h2{margin:0 0 8px;color:#223b53;font-size:23px;line-height:1.3}
.portal-social .portal-login-card label{margin-top:2px;color:#34485b}
.portal-social .portal-login-card input:not([type=checkbox]){min-height:50px;border-color:#d7e0e8;border-radius:10px;padding:11px 13px}
.portal-social .portal-login-card input:focus{border-color:#1877F2;box-shadow:0 0 0 3px rgba(24,119,242,.13)}
.portal-social .portal-login-card .check-row{font-weight:500}
.portal-social .portal-login-submit,.portal-social .portal-create-account,.portal-social .portal-google-login{width:100%;min-height:50px;border-radius:10px;font-size:16px}
.portal-social .portal-login-submit{margin-top:4px;border-color:#1877F2;background:#1877F2;font-size:17px;font-weight:750}
.portal-social .portal-login-submit:hover{background:#1268d8}
.portal-social .portal-forgot-password{align-self:center;margin:0 0 4px;color:#1769c2;font-size:14px;font-weight:650}
.portal-social .portal-login-card .portal-google-login{border-color:#d7e0e8;background:#fff;color:#34485b}
.portal-social .portal-login-card .portal-create-account{border-color:#d9e7f5;background:#eef6ff;color:#1769c2;font-weight:700}
.portal-social .portal-login-card .portal-create-account:hover,.portal-social .portal-login-card .portal-google-login:hover{background:#e8f2fc}
@media(max-width:800px){.portal-social .portal-login-page{position:relative;left:50%;transform:translateX(-50%);grid-template-columns:minmax(0,1fr);gap:24px;width:100vw;max-width:100vw;margin:22px 0 52px calc(50% - 50vw);padding:14px 22px}.portal-social .portal-login-presentation{padding:8px 2px}.portal-social .portal-login-brand{gap:13px;margin-bottom:22px;font-size:clamp(23px,5vw,30px)}.portal-social .portal-login-brand img{width:66px;height:66px;border-radius:16px}.portal-social .portal-login-presentation h1{max-width:570px;font-size:clamp(34px,7vw,46px)}.portal-social .portal-login-description{font-size:16px;line-height:1.65}.portal-social .portal-login-card{max-width:none;padding:24px}}
@media(max-width:420px){.portal-social .portal-login-page{gap:18px;margin-top:14px;padding:10px}.portal-social .portal-login-brand{gap:11px;margin-bottom:18px;font-size:22px}.portal-social .portal-login-brand img{width:58px;height:58px;border-radius:14px}.portal-social .portal-login-presentation h1{font-size:clamp(31px,8.5vw,36px)}.portal-social .portal-login-card{padding:20px 17px;border-radius:15px}.portal-social .portal-login-card h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){.portal-social .portal-login-card *{scroll-behavior:auto!important;transition:none!important}}
/* Keep every login child inside the available viewport. */
.portal-social .portal-login-page,.portal-social .portal-login-page *{box-sizing:border-box;min-width:0}
.portal-social .portal-login-form-column{width:100%}
@media(max-width:800px){
    .portal-social .page-shell{width:100%;max-width:100%}
    .portal-social .portal-login-page{overflow-x:clip}
    .portal-social .portal-login-presentation h1,.portal-social .portal-login-description{overflow-wrap:anywhere}
    .portal-social .portal-login-card{width:100%;max-width:100%}
    .portal-social .portal-login-card input:not([type=checkbox]){width:100%;max-width:100%}
}
@media(max-width:800px){
    .portal-login-body .page-shell{width:100vw;max-width:100vw;margin-left:0;margin-right:0;padding:0 12px}
    .portal-login-body .portal-login-page{position:static;left:auto;transform:none;width:min(620px,calc(100vw - 48px));max-width:620px;margin:22px auto 52px;padding:14px 10px}
}
@media(max-width:420px){.portal-login-body .portal-login-page{margin-top:14px;padding-top:10px;padding-bottom:10px}}

/* RED:47 mobile fit */
@media(max-width:800px){
    .portal-login-body{width:100%;max-width:100%;overflow-x:clip}
    .portal-login-body .page-shell{display:block;width:100%;max-width:100%;margin:16px 0 64px;padding:0 12px;overflow-x:clip}
    .portal-login-body .portal-login-page{position:static;left:auto;transform:none;display:grid;grid-template-columns:minmax(0,1fr);width:100%;max-width:620px;margin:22px auto 52px;padding:12px 0;overflow:visible}
    .portal-login-body .portal-login-presentation,.portal-login-body .portal-login-form-column{width:100%;max-width:100%;min-width:0}
    .portal-login-body .portal-login-brand{width:100%;max-width:100%;gap:clamp(8px,2.5vw,13px);font-size:clamp(19px,5.6vw,29px)}
    .portal-login-body .portal-login-brand span{flex:1 1 0;min-width:0;overflow-wrap:anywhere;white-space:normal}
    .portal-login-body .portal-login-presentation h1{width:100%;max-width:100%;font-size:clamp(30px,8vw,46px);overflow-wrap:anywhere;word-break:normal}
    .portal-login-body .portal-login-description{width:100%;max-width:100%;overflow-wrap:anywhere}
    .portal-login-body .portal-login-card{width:100%;max-width:100%;min-width:0;margin:0;padding:clamp(16px,5.1vw,24px)}
    .portal-login-body .portal-login-card input:not([type=checkbox]),.portal-login-body .portal-login-card button,.portal-login-body .portal-login-card a.button{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
    .portal-login-body .portal-login-card .check-row{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px;white-space:normal}
    .portal-login-body .portal-login-card .check-row span{flex:1 1 180px;min-width:0;overflow-wrap:anywhere}
}
@media(max-width:360px){
    .portal-login-body .portal-login-page{gap:16px}
    .portal-login-body .portal-login-brand{gap:8px;font-size:19px}
    .portal-login-body .portal-login-presentation h1{font-size:30px}
    .portal-login-body .portal-login-card{padding:16px 14px}
}
/* RED:54D — descrições temáticas e arte RED:50 ampliada sem cortar os celulares. */
.portal-social .portal-login-topics-title{max-width:620px;margin:22px 0 12px;color:#173d63;font-size:23px;font-weight:750;line-height:1.2;letter-spacing:-.02em}
.portal-social .portal-login-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:640px}
.portal-social .portal-login-topic-card{min-width:0;padding:12px 13px;border:1px solid #dbe7f2;border-radius:13px;background:rgba(255,255,255,.9);box-shadow:0 5px 16px rgba(28,59,88,.045)}
.portal-social .portal-login-topic-card h3{margin:0 0 5px;color:#1769c2;font-size:15px;font-weight:750;line-height:1.25}
.portal-social .portal-login-topic-card p{margin:0;color:#526577;font-size:13px;line-height:1.48;overflow-wrap:anywhere}
.portal-social .portal-login-extra-topics{margin:10px 0 0;color:#526577;font-size:13px;line-height:1.5}
.portal-social .portal-login-extra-topics strong{color:#315b82}
.portal-social .portal-login-extra-topics span{padding:0 4px;color:#c19636}
.portal-social .portal-login-illustration-frame{position:relative;width:100%;max-width:100%;aspect-ratio:1.0;margin:14px 0 0;overflow:hidden;isolation:isolate}
.portal-social .portal-login-illustration{position:absolute;top:0;left:50%;display:block;width:132%;max-width:none;height:100%;margin:0;transform:translateX(-50%);object-fit:contain;object-position:center}
/* RED:54F — ampliacao de 10% da arte sem alterar o tamanho do formulario. */
@media(min-width:801px){.portal-social .portal-login-illustration-frame{width:110%;max-width:none}}
@media(max-width:800px){.portal-social .portal-login-illustration-frame{width:110%;max-width:none;margin-left:-5%;margin-right:-5%}}
@media(max-width:800px){.portal-social .portal-login-topics-title{margin-top:18px;font-size:21px}.portal-social .portal-login-topic-grid{grid-template-columns:minmax(0,1fr);gap:8px}.portal-social .portal-login-topic-card{padding:10px 12px}.portal-social .portal-login-topic-card h3{font-size:14px}.portal-social .portal-login-topic-card p{font-size:14px;line-height:1.45}.portal-social .portal-login-extra-topics{font-size:13px}.portal-social .portal-login-illustration-frame{margin:14px auto 0}}
