/* ─── Wells Fargo design tokens ─── */
:root{
  --wf-red:#d71e28;
  --wf-yellow:#ffcd41;
  --wf-text:#3b3331;
  --wf-text-muted:#665e5c;
  --wf-bg-warm:#f4f0ed;
  --wf-periwinkle:#5a469b;
  --wf-border:#9c9191;
  --wf-border-light:#e2dede;
  --wf-error:#bf2d19;
  --wf-disabled-bg:#e2dede;
  --wf-disabled-text:#b5adad;
}

@font-face{font-family:"Wells Fargo Sans";src:url("https://www17.wellsfargomedia.com/assets/fonts/wellsfargosans-rg.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Wells Fargo Sans";src:url("https://www17.wellsfargomedia.com/assets/fonts/wellsfargosans-sbd.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Wells Fargo Sans";src:url("https://www17.wellsfargomedia.com/assets/fonts/wellsfargosans-bd.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Wells Fargo Sans";src:url("https://www17.wellsfargomedia.com/assets/fonts/wellsfargosans-lt.woff2") format("woff2");font-weight:300;font-display:swap}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:"Wells Fargo Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:15px;
  line-height:1.25;
  color:var(--wf-text);
  background:var(--wf-bg-warm);
  display:flex;
  flex-direction:column;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--wf-periwinkle);text-decoration:none}
a:hover{text-decoration:underline}
input,button{font:inherit;color:inherit}
input{border:0;background:transparent;outline:none;width:100%}
button{cursor:pointer;border:0;background:none}

/* ─── masthead ─── */
.masthead{background:var(--wf-red);box-shadow:inset 0 -4px var(--wf-yellow);height:60px;flex-shrink:0}
.masthead__inner{max-width:1080px;margin:0 auto;padding:0 20px;height:100%;display:flex;align-items:center;justify-content:space-between}
.masthead__logo img{display:block;height:23px;width:auto}
.masthead__nav{display:flex;align-items:center;gap:20px;color:#fff;font-size:13px}
.masthead__nav a{color:#fff}
.masthead__search{display:flex;align-items:center;background:#fff;border-radius:8px;height:36px;overflow:hidden;padding:0 8px;gap:6px}
.masthead__search input{width:120px;height:100%;font-size:12px;color:#3b3331}
.masthead__search input::placeholder{color:#888}
.masthead__search button{padding:4px;display:flex;align-items:center}

/* ─── page ─── */
.page{flex:1 1 auto;width:100%;max-width:1080px;margin:0 auto;padding:32px 20px 48px}

/* ─── card ─── */
.card{
  width:100%;max-width:870px;
  margin:32px auto 24px;
  background:#fff;
  border-radius:12px;
  box-shadow:0 0 16px rgba(59,51,49,.15);
  padding:48px 56px 40px;
}
.card__heading{font-size:34px;font-weight:300;color:#000;text-align:center;margin-bottom:8px}
.card__intro{text-align:center;color:var(--wf-text-muted);margin-bottom:32px;font-size:15px}
#loginForm{max-width:435px;min-width:340px;margin:0 auto}
@media (max-width:600px){#loginForm{max-width:100%;min-width:0}}

/* ─── fields ─── */
.field{margin-bottom:20px}
.field__label{display:block;font-size:13px;font-weight:600;color:var(--wf-text);margin-bottom:8px;letter-spacing:.02em}
.field__box{
  position:relative;
  border:1px solid var(--wf-border);
  border-radius:18px;
  min-height:60px;
  padding:8px 16px 6px;
  background:#fff;
  transition:border-color .12s,box-shadow .12s;
}
.field__box:hover{border-color:var(--wf-periwinkle);box-shadow:0 0 0 1px var(--wf-periwinkle)}
.field__box:focus-within{border-color:var(--wf-periwinkle);box-shadow:0 0 0 3px var(--wf-periwinkle)}
.field__box label{display:block;font-size:13px;line-height:16px;color:var(--wf-text-muted);margin-bottom:2px}
.field__box input{font-size:19px;line-height:28px;padding:0 0 8px;color:#141414}
.field__box input::placeholder{color:#9c9191}
.field__toggle{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--wf-periwinkle);font-size:14px;font-weight:600;padding:6px 4px}

/* ─── checkbox ─── */
.checkbox{margin:8px 0 20px}
.checkbox__row{display:flex;align-items:center;gap:10px;font-size:15px;cursor:pointer}
.checkbox__row input{width:20px;height:20px;accent-color:var(--wf-text);cursor:pointer;flex-shrink:0}
.checkbox__note{font-size:13px;line-height:16px;color:var(--wf-text-muted);margin-top:6px;padding-left:30px}

/* ─── buttons ─── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:100%;height:44px;border-radius:24px;
  font-size:17px;font-weight:600;line-height:22px;
  padding:10px 16px;
  transition:background .12s,border-color .12s,color .12s;
}
.btn--primary{background:var(--wf-red);color:#fff;border:1px solid var(--wf-red)}
.btn--primary:hover:not([disabled]){background:#b01c24;border-color:#b01c24}
.btn--primary[disabled]{background:var(--wf-disabled-bg);border-color:var(--wf-disabled-bg);color:var(--wf-disabled-text);cursor:not-allowed}
.btn--secondary{background:#fff;color:var(--wf-text);border:1px solid var(--wf-text)}
.btn--secondary:hover{background:#141414;color:#fff;border-color:#141414}
.btn--compact{width:auto;padding:10px 22px;height:auto}

/* ─── or divider ─── */
.or{display:flex;align-items:center;gap:12px;color:#141414;font-size:15px;margin:16px 0}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--wf-border-light)}
.or span{padding:0 4px}
.passkey-note{text-align:center;font-size:13px;color:var(--wf-text-muted);margin-top:12px}
.forgot{display:block;text-align:center;font-size:15px;font-weight:600;color:var(--wf-periwinkle);margin-top:24px}

/* ─── phone segments ─── */
.phone{display:flex;align-items:center;gap:8px;border:1px solid var(--wf-border);border-radius:18px;padding:8px 16px;transition:border-color .12s,box-shadow .12s}
.phone:focus-within{border-color:var(--wf-periwinkle);box-shadow:0 0 0 3px var(--wf-periwinkle)}
.phone input{font-size:19px;line-height:28px;text-align:center;padding:8px 0;letter-spacing:.04em;width:100%;max-width:80px}
.phone input:nth-child(3){max-width:88px}
.phone input:nth-child(5){max-width:110px}
.phone__sep{color:#9c9191;font-size:19px;line-height:28px}

/* ─── otp panel ─── */
.otp{margin-top:14px;padding:14px 16px;border:1px solid var(--wf-border-light);border-radius:14px;background:var(--wf-bg-warm)}
.otp__row{display:flex;gap:10px;align-items:stretch}
.otp__input{flex:1;border:1px solid var(--wf-border);border-radius:10px;background:#fff;padding:10px 14px;font-size:16px;letter-spacing:.18em;text-align:center;font-family:"SF Mono",Menlo,monospace}
.otp__input:focus{border-color:var(--wf-periwinkle);box-shadow:0 0 0 3px var(--wf-periwinkle)}
.otp__meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--wf-text-muted);margin-top:10px}
.otp__timer{font-family:"SF Mono",Menlo,monospace;font-weight:600;color:var(--wf-text);padding:2px 8px;background:#fff;border:1px solid var(--wf-border-light);border-radius:6px}
.otp__status{margin-top:10px;font-size:13px;color:var(--wf-error)}
.otp__status--ok{color:#067647}

/* ─── card row ─── */
.card-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.card-row .field__box{margin:0}
.address-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-top:12px}
.address-row .field__box{margin:0}
@media (max-width:480px){.address-row{grid-template-columns:1fr 1fr 1fr;gap:8px}}

/* ─── form error ─── */
.form-error{color:var(--wf-error);font-size:13px;text-align:center;margin:8px 0 12px}

/* ─── disclosures ─── */
.disclosures{max-width:870px;margin:0 auto;font-size:13px;color:var(--wf-text-muted);line-height:1.5}
.disclosures__box{border:1px solid #141414;padding:16px;background:#fff;margin-bottom:12px;color:#141414;font-size:15px;line-height:19px}
.disclosures__box strong{font-weight:600}
.disclosures__box ul{margin:8px 0 0 20px}
.disclosures__box li{margin-bottom:2px}

/* ─── footer ─── */
.footer{background:var(--wf-bg-warm);border-top:1px solid #b5adad;padding:24px 20px;font-size:13px;line-height:16px;flex-shrink:0}
.footer__links{max-width:1080px;margin:0 auto 12px;list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:0}
.footer__links li{padding:0 14px;border-right:1px solid #b5adad}
.footer__links li:last-child{border-right:0}
.footer__links a{color:var(--wf-text)}
.footer__copy{text-align:center;color:var(--wf-text-muted);font-size:12px}

/* ─── responsive ─── */
@media (max-width:768px){
  .card{padding:32px 24px 28px;margin:16px auto;border-radius:8px}
  .card__heading{font-size:26px}
  .masthead__nav{gap:12px;font-size:12px}
  .masthead__nav a:nth-child(2),.masthead__nav a:nth-child(3){display:none}
  .masthead__search input{width:80px}
  .footer__links li{padding:0 8px;font-size:12px}
  .card-row{grid-template-columns:1fr}
}
@media (max-width:480px){
  .masthead__nav a:first-child{display:none}
  .card{padding:24px 18px}
}
